ipfs / ipfs-docs

📚IPFS documentation platform
https://docs.ipfs.tech
299 stars 411 forks source link

Explain how data encryption works with IPFS. #298

Closed johnnymatthews closed 3 years ago

johnnymatthews commented 4 years ago

IPFS deals with encryption in interesting ways. We need a general overview of how IPFS manages encryption, including:

This overview should be similar in size and layout to the IPFS Gateway overview. This bounty will likely lead to further investigation and research bounties regarding IPFS encryption.

autonome commented 4 years ago

I'd love to see:

Having this in a cookbook format might be really helpful, where builders can read through various recipes.

Having a number of examples for existing common tools and frameworks would be ideal.

autonome commented 4 years ago

@carsonfarmer told a good story about how they're doing encrypted content in Textile, should def reach out for input and source material.

jessicaschilling commented 4 years ago

FYI - @ericlscace might be worth contacting about writing this if we can't do in-house (believe it's in his past professional wheelhouse).

johnnymatthews commented 4 years ago

I actually already had @EricLScace in mind! Pinged him an email yesterday with some initial details. Eric if you're reading this, this is the issue I was talking about :)

EricLScace commented 4 years ago

Emailed you back, Johnny. Let's talk later today/tomorrow.

carsonfarmer commented 4 years ago

Cool yes happy to help out there. Additionally, see this discussion re: IPLD signatures and encryption. There's some traction there that myself and @oed have been pursuing more generally: https://github.com/ipld/js-codec-interface/issues/5

autonome commented 4 years ago

See also ipfs/notes#270

EricLScace commented 4 years ago

@carsonfarmer Thanks for those links. I'll give them a close read before preparing this document. The plan is first to prepare something that explains why IPFS doesn't encrypt data at rest on behalf of the data's users... and to differentiate between encryption at rest vs encryption while in transit. A separate second document (or set of documents) will look into best practices for protecting data in IPFS to the level needed by the nature of the data.

I would value your review of both as each gets into a useful-to-look-at state.

carsonfarmer commented 4 years ago

Happy to review when ready 👍

ianopolous commented 4 years ago

If you want to reference a design for encrypted content on ipfs that has been audited by professional cryptographers (super important for anything in this space), then have a look at Peergos. It also includes access control (granting and revoking R, RW or making public), trustless servers and privacy focused sovereign identity. https://book.peergos.org https://github.com/peergos/peergos

johnnymatthews commented 4 years ago

How's progress @EricLScace?

yusefnapora commented 3 years ago

Here's a link to the dag-jose explainer we talked about in the sync meeting: https://www.memoryandthought.me/golang,/ipfs/2020/09/04/dag-jose-project.html

Also the js implementation repo: https://github.com/ceramicnetwork/js-dag-jose#jwe-encryption-usage

johnnymatthews commented 3 years ago

Tasks

Page set up

Encryption content