Transfers DynamoDB
- stores metadata (filename, size, keys) for transfers, but not the file contentsTransfers Lambda
- simple API wrapper around Transfers DynamoDB
Transfers API Gateway
- HTTP gateway sitting in front of Transfers Lambda
Sessions DynamoDB
- stores API Gateway websocket IDs of file owners so receivers can request files and coordinate WebRTCCoord Lambda
- allows sender/receiver to communicate in order to set up WebRTC connectionsCoord API Gateway
- Websocket gateway sitting in front of Coord Lambda
, keeping websockets openk
, the passphrase p
and the encrypted blob.p
should be securely shared outside the app. Without this, an attacker cannot gain access to the plaintext contents.k
is stored in an untrusted database with an expiration time of one hour. This key is not useful without passphrase p
.k
with passphrase p
is generated using Web Crypto's generateKey (AES-GCM)k
in the sender's browser with Web Crypto's encryptk
is exported using Web Crypto's exportKeyk
is stored on the server (without passphrase p
) for the receiver to retrievek
from the serverk
is imported using Web Crypto's importKeyk
and passphrase p
(shared outside the app)