1. Encrypt before transport
Authenticated encryption such as AES-GCM protects confidentiality and detects tampering when keys and nonces are handled correctly. Browser-side encryption can keep the application server from needing the plaintext file.
2. Transfer in chunks
Large encrypted files can be divided into chunks. This supports retry, progress reporting and bounded requests.
3. Control access
Storage still needs authorisation. Media access is protected by authenticated sessions, room matching, signed transfer tokens, expiry and quota controls.
4. Expire when appropriate
Expiry reduces the retention window. It cannot undo a copy already made by a recipient.
5. Remember the recipient
Once the recipient can open the file, they can potentially copy or photograph it. Application encryption cannot control the recipient's device.
A five-question check
- Is the file encrypted before storage?
- How is the key delivered?
- How is the recipient authorised?
- How long does ciphertext remain?
- What happens after expiry?