From 53f7484c41a15014ac7f0a9970c1b0d0573b5f04 Mon Sep 17 00:00:00 2001 From: Jay Graber Date: Thu, 5 Mar 2020 19:25:53 -0800 Subject: [PATCH] Add to draft --- protocols/peergos.md | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/protocols/peergos.md b/protocols/peergos.md index d51f944..dbb80bc 100644 --- a/protocols/peergos.md +++ b/protocols/peergos.md @@ -4,7 +4,9 @@ Peergos is an e2e encrypted distributed file storage service. At the base layer, ### Identity -There is a global append-only log for the public key to username mappings. This is mirrored on every node in the peergos system. (how is consensus guaranteed?) +There is a global append-only log for the public key to username mappings. This is mirrored on every node in the peergos system. (how is consensus guaranteed? Is the corenode same as the peergos nodes?) + +Login and key management: A peergos user's private keys are derived every time log in using their username and password. Specifically, a signing keypair, boxing keypair, and symmetric key is derived. ### Data storage @@ -15,3 +17,19 @@ The user lists the IPFS node id of the server (hash of its public key). It synch ### Social Users can follow each other. Follow requests are sent through a user’s storage server, which is contacted via its public key. Follows are one-way, and allow sharing files and sending messages. + +### Privacy and Access Control + +Files are encrypted on the peergos nodes, which only have access to metadata. + +Access to files gained through social follows can be revoked by rotating cryptographic keys. + +Access is controlled through cryptographic capabilities: + +- the file owner's public signing key is used to look up the filesystem +- the label is used to look up the file +- after retrieval, it is decrypted using the base key given to the person who has access + +A user can publish a capability of a file or folder they control which makes it publicly visible. + +A user can also share links to files, like a google doc "share" link, which lets anyone who views it at that special URL to view the file. However, the file is not transmitted unencrypted over the network, as the key to decrypt it is in the URL itself, and is interpreted locally in the browser.