PhantomFiles.io Security and Threat Model

Overview

PhantomFiles.io is designed to provide secure, ephemeral file sharing with end-to-end encryption. This document outlines the security measures implemented and the threat model considered in the design of the service.

Security Measures

1. End-to-End Encryption

2. Filename Encryption

3. Secure Storage

4. Secured File Room Concept

5. Ephemeral Storage

6. Rate Limiting

7. Authentication

Threat Model

What We Protect Against

  1. Unauthorized Access to File Contents: Files are encrypted client-side, making them unreadable even if intercepted during transmission or accessed directly in the R2 storage bucket(s).
  2. Metadata Leakage: Filenames are encrypted, limiting the information an attacker could gain from them.
  3. Long-term Data Persistence: The 24-hour lifespan of Secured File Rooms ensures file data doesn't persist indefinitely. Note that this doesn't apply to the My Vault feature.
  4. Brute Force Attacks: Rate limiting on key endpoints makes it difficult to brute force room names or file listings.
  5. Service Operator Access: As the service operator can only see encrypted filenames, file sizes, and upload timestamps, they cannot access decrypted file contents or original filenames.

Potential Vulnerabilities and Limitations

  1. Secured File Room Security: (As stated earlier) If a Secured File Room name is guessed or intercepted, an attacker could potentially access and download the encrypted files within the 24-hour window.
  2. Client-Side Security: The security of the encryption key depends on the security of the user's device and browser.
  3. Timing Attacks: An attacker might infer the existence of a room by timing differences in responses, even with rate limiting.
  4. Legal Compliance: While the service operator cannot access file contents, they may be compelled to provide available metadata (encrypted filenames, file sizes, timestamps) to legal authorities.
  5. Cloudflare R2 Security: The service relies on the security of Cloudflare R2 for storing encrypted files. If malicious actors were able to exfiltrate user-uploaded files, they would likely be unable to decrypt them given our derivation settings and password requirement for generating encryption key

Best Practices for Users

  1. Use strong, unique passwords for encryption.
  2. Keep Secured File Room names confidential and transmit them securely.
  3. Be aware that Secured File Rooms and their files are currently only available for 24 hours.
  4. Understand that while the service is designed for security and privacy, it's not intended for storing or transmitting illegal content.

Last updated: October 3rd, 2024