Security Architecture

Design Philosophy

CryptDrop prioritizes simplicity, performance, and practical security over theoretical forensic countermeasures. Our approach focuses on what actually matters: end-to-end encryption, immediate data deletion, and minimal logging.

How It Works

1. Client-Side Encryption

Your message is encrypted in your browser using AES-256 before it ever leaves your computer:

  • Encryption happens locally in the Web Crypto API
  • Only the encrypted message is sent to our servers
  • The encryption key is never transmitted to the server
  • The key lives only in the URL fragment (#) which never reaches our servers

2. Zero-Knowledge Server

Our server has no way to access your messages:

  • We never receive encryption keys
  • We only see encrypted data
  • We cannot decrypt anything even if we wanted to
  • Even legal requests cannot reveal content we don't have

3. Immediate Deletion

Data is deleted as soon as it's no longer needed:

  • After the recipient views the note (one-time read)
  • After 24 hours if not viewed
  • No archived copies or backups of content
  • Deleted data cannot be recovered

4. Minimal Logging

We keep logs to a minimum for practical security monitoring:

  • No persistent storage of access logs
  • No user profiling or tracking
  • No association of data with user identities
  • Real-time monitoring only for abuse prevention

Why We Removed Complex Forensics

We originally considered complex forensic countermeasures (multiple-pass overwrites, database vacuuming, timing attack defenses), but decided they add unnecessary complexity without meaningfully improving security:

  • Encrypted data doesn't need overwriting: If someone obtained deleted encrypted data, they still couldn't read it
  • We don't store data long enough: 24-hour maximum lifetime means forensic recovery is not a realistic threat
  • Performance matters: Complex overwrite operations slow down the service for minimal benefit
  • Simplicity is better: Fewer lines of code means fewer bugs and better maintainability

The real security comes from: encryption + immediate deletion + zero-knowledge architecture

Security Guarantees

What We Guarantee

  • End-to-end encryption with AES-256
  • Immediate deletion after viewing or after 24 hours
  • Zero access to unencrypted content
  • HTTPS/TLS for all communications
  • No persistent user profiles
  • Minimal, non-persistent logging

What We Don't Claim

  • Protection against device malware (nothing can protect you from that)
  • Protection against someone having your complete URL (they would have the key)
  • Protection against you sharing the URL insecurely
  • Forensic-grade data wiping (unnecessary for our use case)

For Developers

Encryption Implementation

We use the native Web Crypto API for AES-256-GCM encryption, which is:

  • Standardized and audited by cryptographers
  • Implemented in optimized native code
  • Better protected from side-channel attacks than JavaScript implementations
  • The modern recommendation from security experts

Key Points in the Code

  • Keys are generated with crypto.getRandomValues()
  • Encryption uses SubtleCrypto.encrypt()
  • All server endpoints validate and authenticate normally
  • Deleted data is immediately and permanently removed