Fission Web Native File System (WNFS) IPFS Security Working Group β€” Lightning Talk

Constraints πŸ“±Mass Market Use Case β€’ User controlled β€” data & ID, local first, &c β€’ Vanilla browser, incl. mobile (browser is a hostile environment) β€’ No plugins, no hardware wallets β€’ As-good-or-better security than web 2 β€’ User friendly, don’t assume expertise, common UX expectations β€’ Subgraph access control (re-share subsets of data you have access to)

File System boris.fission.name πŸ›  High Level Layout Public Photos Avatars Private Apps Shared By Me Photos Apps Family Photos My Gallery Keys and Keys Keysand and Pointers Pointers Pointers Shared w/ Me Keys and Pointers

Common Concepts πŸ› πŸŒ Virtual Nodes Raw Node File Node Raw Data Metadata Directory Node Index Metadata

File System Generation 0 πŸ›  The z-dimension: versioning & events Photos@r0 ChildEvent Vacation Avatars@r0 beach.png caricature.jpg Generation 1 Photos@r1 InsertNew Revision 0 headshot.png Revision 1 πŸ•™ Avatars@r1

Private Nodes 🀫

Private Nodes πŸ›  Components CBOR Binary Encrypted Node πŸ”’ 256-bit AES-GCM + πŸ”‘ Virtual Node = Index πŸ”‘ πŸ”‘ Metadata πŸ”‘

Private Nodes Namefilters β€’ Constraints: β€’ bareFilter β€’ Deterministic β€’ β€’ parentFilte β€’ AND bloom(SHA(aesKey) Versioned β€’ AND bloom(SHA(aesKey ++ revision) β€’ Addressable β€’ Saturation β€’ Prove subpath for UCAN β€’ nameFilter AND bloom(SHA(nameFilter) β€’ Minimal knowledge β€’ Repeat until threshold bits flipped ) ) ) r β€’ AES keys ~ path segments but secret

Private Nodes 🌐 Private Data Store Pre x Tree 16^3 = 4,096 items (weight 16) 16^4 = 65,536 items fi Append-only Quick Read/Write Merkleized Concurrency Friendly πŸ”‘

Private Nodes πŸ” Serverless Auth in the Browser (UCAN) β€’ OCAP, provable chains, revocable β€’ Non-exportable RSA2048/Ed25519