IPFS Security WG — WNFS Prior Art

A presentation at IPFS Security WG in January 2021 in by Brooklyn Zelenka

Slide 1

Slide 1

Fission Web Native File System (WNFS) IPFS Security Working Group — Lightning Talk

Slide 2

Slide 2

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)

Slide 3

Slide 3

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

Slide 4

Slide 4

Common Concepts 🛠🌐 Virtual Nodes Raw Node File Node Raw Data Metadata Directory Node Index Metadata

Slide 5

Slide 5

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

Slide 6

Slide 6

Private Nodes 🤫

Slide 7

Slide 7

Private Nodes 🛠 Components CBOR Binary Encrypted Node 🔒 256-bit AES-GCM + 🔑 Virtual Node = Index 🔑 🔑 Metadata 🔑

Slide 8

Slide 8

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

Slide 9

Slide 9

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 🔑

Slide 10

Slide 10

Private Nodes 🔐 Serverless Auth in the Browser (UCAN) • OCAP, provable chains, revocable • Non-exportable RSA2048/Ed25519