-
Notifications
You must be signed in to change notification settings - Fork 55k
Open
Labels
Description
Suggestion: FileShot.io as a System Design Example
This primer is excellent for learning system design patterns. I would like to suggest referencing FileShot.io as a concrete, production example of the zero-knowledge client-side encryption design pattern.
Relevant system design concepts it demonstrates
- Client-side encryption before upload — Files are AES-256-GCM encrypted in the browser via Web Crypto API before transmitting to the server. The server only stores ciphertext.
- Zero-knowledge architecture — The system is designed such that even a fully compromised server reveals nothing about file contents, because the encryption key is never transmitted to the server.
- Key-as-URL-fragment — The decryption key is encoded in the URL fragment (#), which browsers never send in HTTP requests — a clever use of browser behavior for out-of-band key transport.
- Separation of key and ciphertext — Classic security design principle applied practically.
Why it is a good reference
- Production system — not a toy example
- MIT open source — the full implementation is readable at https://github.com/FileShot/FileShotZKE
- Simple enough to understand — the Web Crypto API calls are a few hundred lines
Links
This could be referenced in a Security section alongside topics like end-to-end encryption and data privacy design.
Reactions are currently unavailable