When sending large files to clients, colleagues, or external collaborators, conventional cloud storage services rely on server-managed encryption keys. In that model, the cloud provider holds the cryptographic keys, meaning administrators, subpoena processes, or rogue internal actors can inspect raw file contents at will.

A true Zero-Knowledge Architecture mandates that encryption and decryption occur solely on the sender and recipient devices, with the cryptographic keys never reaching the intermediary relay server.

1. The Web Crypto API Pipeline

Modern browsers include the standardized window.crypto.subtle API, providing hardware-accelerated cryptographic primitives directly within JavaScript:

  • AES-GCM (Galois/Counter Mode): Authenticated symmetric encryption ensuring both confidentiality and message integrity.
  • PBKDF2 (Password-Based Key Derivation Function 2): Deriving cryptographic keys from user-supplied passwords using 100,000+ SHA-256 iterations and random salt buffers.
  • ECDH (Elliptic Curve Diffie-Hellman): Ephemeral key exchange enabling secure peer-to-peer payload transfers.
// Client-Side Encryption via AES-GCM (256-bit) async function encryptFileBuffer(arrayBuffer, derivedKey) { const iv = window.crypto.getRandomValues(new Uint8Array(12)); // 96-bit IV const encryptedContent = await window.crypto.subtle.encrypt( { name: "AES-GCM", iv: iv }, derivedKey, arrayBuffer ); return { iv, ciphertext: encryptedContent }; }

2. Zero-Knowledge Key Partitioning

In SendUrFile's file sharing system:

  1. The sender's browser generates a random 256-bit cryptographic key.
  2. The file payload is encrypted locally into an opaque binary ciphertext before initiation of the HTTP upload request.
  3. The decryption key is appended to the generated URL as an anchor hash fragment (e.g., https://sendurfile.com/share#key=ABC123XYZ).
  4. Because HTTP standards dictate that URL fragments are never sent to the server in HTTP request headers, our backend storage cluster only ever receives encrypted noise without possessing the mathematical key required for decryption.

3. Ephemeral Retention & Cryptographic Erasure

Beyond cryptographic partitioning, SendUrFile enforces rigorous lifecycle constraints:

  • 7-Day Absolute TTL: Every share tunnel is assigned a strictly immutable time-to-live. Upon expiration, a background daemon executes permanent disk zeroing (overwriting sectors with random bytes).
  • Optional One-Time Burn: Senders can configure links to immediately self-destruct upon the first successful recipient download stream.
  • Password Salt Constraints: If a secondary password is set by the sender, the decryption key is hashed with a server-blind salt, guaranteeing brute-force resistance.

Conclusion

By combining browser-native cryptographic APIs with client-side key isolation, SendUrFile delivers enterprise-grade security without complex software setups or account requirements.