{"type":"excalidraw","version":2,"source":"https://AwesomeSystemDesign.dev","elements":[{"angle":0,"strokeColor":"#6577aa","backgroundColor":"#eef1fc","fillStyle":"solid","strokeWidth":1.5,"strokeStyle":"solid","roughness":0.7,"opacity":100,"version":1,"versionNonce":1,"isDeleted":false,"groupIds":["step-1"],"frameId":null,"roundness":null,"boundElements":[{"type":"text","id":"shape-1"}],"updated":0,"link":null,"locked":false,"id":"shape-0","type":"rectangle","seed":41,"x":16,"y":16,"width":288,"height":68,"customData":{"revealStep":1}},{"angle":0,"strokeColor":"#394557","backgroundColor":"transparent","fillStyle":"solid","strokeWidth":1.5,"strokeStyle":"solid","roughness":0.7,"opacity":100,"version":1,"versionNonce":1,"isDeleted":false,"groupIds":["step-1"],"frameId":null,"roundness":null,"boundElements":null,"updated":0,"link":null,"locked":false,"id":"shape-1","type":"text","seed":114,"x":36,"y":35.7,"width":248,"height":28.6,"fontSize":22,"fontFamily":1,"text":"Encryption Model","originalText":"Encryption Model","textAlign":"left","verticalAlign":"middle","containerId":"shape-0","lineHeight":1.3,"autoResize":false,"customData":{"revealStep":1}},{"angle":0,"strokeColor":"#628572","backgroundColor":"#edf5ee","fillStyle":"solid","strokeWidth":1.5,"strokeStyle":"solid","roughness":0.7,"opacity":100,"version":1,"versionNonce":1,"isDeleted":false,"groupIds":["step-2"],"frameId":null,"roundness":null,"boundElements":[{"type":"text","id":"shape-3"}],"updated":0,"link":null,"locked":false,"id":"shape-2","type":"rectangle","seed":187,"x":16,"y":128,"width":288,"height":236.20000000000002,"customData":{"revealStep":2}},{"angle":0,"strokeColor":"#394557","backgroundColor":"transparent","fillStyle":"solid","strokeWidth":1.5,"strokeStyle":"solid","roughness":0.7,"opacity":100,"version":1,"versionNonce":1,"isDeleted":false,"groupIds":["step-2"],"frameId":null,"roundness":null,"boundElements":null,"updated":0,"link":null,"locked":false,"id":"shape-3","type":"text","seed":260,"x":36,"y":146,"width":248,"height":200.20000000000002,"fontSize":22,"fontFamily":1,"text":"In-Transit:\n• TLS 1.3 for all API\nand block transfer\nconnections\n• Certificate pinning\nin desktop/mobile\nclients","originalText":"In-Transit:\n• TLS 1.3 for all API\nand block transfer\nconnections\n• Certificate pinning\nin desktop/mobile\nclients","textAlign":"left","verticalAlign":"middle","containerId":"shape-2","lineHeight":1.3,"autoResize":false,"customData":{"revealStep":2}},{"angle":0,"strokeColor":"#a68a53","backgroundColor":"#fff7e6","fillStyle":"solid","strokeWidth":1.5,"strokeStyle":"solid","roughness":0.7,"opacity":100,"version":1,"versionNonce":1,"isDeleted":false,"groupIds":["step-3"],"frameId":null,"roundness":null,"boundElements":[{"type":"text","id":"shape-5"}],"updated":0,"link":null,"locked":false,"id":"shape-4","type":"rectangle","seed":333,"x":16,"y":408.20000000000005,"width":288,"height":350.6,"customData":{"revealStep":3}},{"angle":0,"strokeColor":"#394557","backgroundColor":"transparent","fillStyle":"solid","strokeWidth":1.5,"strokeStyle":"solid","roughness":0.7,"opacity":100,"version":1,"versionNonce":1,"isDeleted":false,"groupIds":["step-3"],"frameId":null,"roundness":null,"boundElements":null,"updated":0,"link":null,"locked":false,"id":"shape-5","type":"text","seed":406,"x":36,"y":426.20000000000005,"width":248,"height":314.6,"fontSize":22,"fontFamily":1,"text":"At-Rest\n(Server-Side):\n• AES-256-GCM\nencryption for all\nblocks in object\nstorage\n• Keys managed by\nKMS (per-tenant or\nglobal)\n• Dropbox uses Vault\nfor key management","originalText":"At-Rest\n(Server-Side):\n• AES-256-GCM\nencryption for all\nblocks in object\nstorage\n• Keys managed by\nKMS (per-tenant or\nglobal)\n• Dropbox uses Vault\nfor key management","textAlign":"left","verticalAlign":"middle","containerId":"shape-4","lineHeight":1.3,"autoResize":false,"customData":{"revealStep":3}},{"angle":0,"strokeColor":"#9180ac","backgroundColor":"#f4effb","fillStyle":"solid","strokeWidth":1.5,"strokeStyle":"solid","roughness":0.7,"opacity":100,"version":1,"versionNonce":1,"isDeleted":false,"groupIds":["step-4"],"frameId":null,"roundness":null,"boundElements":[{"type":"text","id":"shape-7"}],"updated":0,"link":null,"locked":false,"id":"shape-6","type":"rectangle","seed":479,"x":16,"y":802.8000000000001,"width":288,"height":693.8000000000001,"customData":{"revealStep":4}},{"angle":0,"strokeColor":"#394557","backgroundColor":"transparent","fillStyle":"solid","strokeWidth":1.5,"strokeStyle":"solid","roughness":0.7,"opacity":100,"version":1,"versionNonce":1,"isDeleted":false,"groupIds":["step-4"],"frameId":null,"roundness":null,"boundElements":null,"updated":0,"link":null,"locked":false,"id":"shape-7","type":"text","seed":552,"x":36,"y":820.8000000000001,"width":248,"height":657.8000000000001,"fontSize":22,"fontFamily":1,"text":"Client-Side Encryption\n(optional,\nzero-knowledge):\n• User provides\npassphrase → derive\nkey via Argon2\n• Client encrypts\nblocks before upload\n• Server stores\nencrypted blocks\n(cannot read\ncontent)\n• Tradeoffs:\nMaximum privacy\n(server is\nzero-knowledge)\nNo server-side\nsearch, dedup,\npreview, or sharing\nlinks\nLost passphrase =\nlost data (no\nrecovery)","originalText":"Client-Side Encryption\n(optional,\nzero-knowledge):\n• User provides\npassphrase → derive\nkey via Argon2\n• Client encrypts\nblocks before upload\n• Server stores\nencrypted blocks\n(cannot read\ncontent)\n• Tradeoffs:\nMaximum privacy\n(server is\nzero-knowledge)\nNo server-side\nsearch, dedup,\npreview, or sharing\nlinks\nLost passphrase =\nlost data (no\nrecovery)","textAlign":"left","verticalAlign":"middle","containerId":"shape-6","lineHeight":1.3,"autoResize":false,"customData":{"revealStep":4}},{"angle":0,"strokeColor":"#6577aa","backgroundColor":"#eef1fc","fillStyle":"solid","strokeWidth":1.5,"strokeStyle":"solid","roughness":0.7,"opacity":100,"version":1,"versionNonce":1,"isDeleted":false,"groupIds":["step-5"],"frameId":null,"roundness":null,"boundElements":[{"type":"text","id":"shape-9"}],"updated":0,"link":null,"locked":false,"id":"shape-8","type":"rectangle","seed":625,"x":16,"y":1540.6000000000001,"width":288,"height":550.8000000000001,"customData":{"revealStep":5}},{"angle":0,"strokeColor":"#394557","backgroundColor":"transparent","fillStyle":"solid","strokeWidth":1.5,"strokeStyle":"solid","roughness":0.7,"opacity":100,"version":1,"versionNonce":1,"isDeleted":false,"groupIds":["step-5"],"frameId":null,"roundness":null,"boundElements":null,"updated":0,"link":null,"locked":false,"id":"shape-9","type":"text","seed":698,"x":36,"y":1558.6000000000001,"width":248,"height":514.8000000000001,"fontSize":22,"fontFamily":1,"text":"Convergent Encryption\n(for dedup with\nencryption):\n• Key =\nhash(plaintext\ncontent)\n• Same content →\nsame key → same\nciphertext\n• Enables dedup on\nencrypted blocks\n• Risk: confirms\nexistence of known\nplaintext\n(chosen-plaintext)\n• Mitigation: use\nper-user salt mixed\nwith content hash","originalText":"Convergent Encryption\n(for dedup with\nencryption):\n• Key =\nhash(plaintext\ncontent)\n• Same content →\nsame key → same\nciphertext\n• Enables dedup on\nencrypted blocks\n• Risk: confirms\nexistence of known\nplaintext\n(chosen-plaintext)\n• Mitigation: use\nper-user salt mixed\nwith content hash","textAlign":"left","verticalAlign":"middle","containerId":"shape-8","lineHeight":1.3,"autoResize":false,"customData":{"revealStep":5}}],"appState":{"viewBackgroundColor":"#fbfbf8","gridSize":null},"files":{}}