Skip to main content

An ephemeral ChaCha20-encrypted filesystem implementation using fusepy and cryptography suitable for privacy-sensitive applications, such as whistleblowing platforms.

Project description

GLOBALEAKS-EPH-FS

An ephemeral ChaCha20-encrypted filesystem implementation using fusepy and cryptography suitable for privacy-sensitive applications, such as whistleblowing platforms.

Status build workflow Codacy Badge Codacy Badge

Overview

GLOBALEAKS-EPH-FS provides an ephemeral, ChaCha20-encrypted filesystem implementation using Python, FUSE, and Cryptography. This filesystem is designed for temporary, secure storage with strong encryption, making it ideal for privacy-sensitive applications like whistleblowing platforms.

Threat Model

Assumptions

  • The filesystem is designed to pass confidential files to antivirus scanners (e.g., ClamAV, MAT2).
  • The filesystem is ephemeral, meaning files are temporarily encrypted and erased after use.
  • The filesystem operates in environments where privacy and confidentiality are crucial.
  • The filesystem assumes that only authorized users, without root access or elevated privileges, interact with the system.

Potential Threats & Mitigations

  1. Unauthorized File Access:

    • Threat: Unauthorized users may attempt to access confidential files stored in the filesystem.
    • Mitigation:
      • Data is primarily managed in RAM. The files are decrypted only temporarily in memory during processing and are never stored in plaintext on disk.
      • Filesystem permissions control access, allowing only authorized users to read files automatically decrypted on-access.
  2. Metadata Exposure:

    • Threat: Sensitive metadata, such as filenames, directory structures, or file sizes, could be exposed to unauthorized users or stored in operating system caches.
    • Mitigation: UUID4 filenames are used, preventing any identifiable information from being exposed. This approach also mitigates risks from OS-level cache leaks, as filenames are randomized and non-meaningful.
  3. Data Tampering or Integrity Issues:

    • Threat: An attacker could attempt to tamper with files by modifying their content or structure.
    • Mitigation: Filesystem permissions restrict write access to authorized users only, preventing unauthorized modifications to files.

Conclusion

The ephemeral filesystem provides robust protection for confidential files through ChaCha20 encryption, randomized UUID4 filenames, and strict filesystem permissions that limit access and modification to authorized users. These features address the risks of unauthorized access, metadata exposure, and data tampering, ensuring the privacy and integrity of sensitive data during the scanning process.

Installation

To install the package, use pip:

pip install globaleaks-eph-fs

Usage

Command-Line Interface (CLI)

To mount the filesystem from the command line:

globaleaks-eph-fs [--storage_directory <directory>] <mountpoint>
  • --storage_directory STORAGE_DIRECTORY (optional): The directory used for storage. If not provided, a temporary directory will be used.
  • <mountpoint>: The path where the filesystem will be mounted.

Python API

You can also use globaleaks-eph-fs within your Python code. Here's an example:

from globaleaks_eph_fs import mount_globaleaks_eph_fs

eph_fs_thread = mount_globaleaks_eph_fs("/mnt/globaleaks-eph-fs")

eph_fs_thread.join()

Features

  • ChaCha20 Encryption: All data stored in the filesystem is encrypted with ChaCha20.
  • FUSE Integration: Mount the filesystem as a virtual disk using FUSE.
  • Temporary Storage: The filesystem is ephemeral and can use a temporary directory for storage.
  • Metadata Free: The filesystem preserves only files content enforcing random uuid4 files' names.

Requirements

  • Python 3.7+
  • fusepy for FUSE support
  • cryptography for encryption

License

This project is licensed under the AGPLv3 License - see the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

globaleaks_eph_fs-0.0.3.tar.gz (22.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

globaleaks_eph_fs-0.0.3-py3-none-any.whl (22.3 kB view details)

Uploaded Python 3

File details

Details for the file globaleaks_eph_fs-0.0.3.tar.gz.

File metadata

  • Download URL: globaleaks_eph_fs-0.0.3.tar.gz
  • Upload date:
  • Size: 22.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.3

File hashes

Hashes for globaleaks_eph_fs-0.0.3.tar.gz
Algorithm Hash digest
SHA256 5d7a657dd4d55979462086f88a07003dc3afc81c517ff42205d283bbcbbaa7df
MD5 2d557fe7107ab6710b9e61a67fd68e07
BLAKE2b-256 19ef2d20f9219ae4fdbe1e240cae123e346124d4f271d57522a9527a214ceffb

See more details on using hashes here.

File details

Details for the file globaleaks_eph_fs-0.0.3-py3-none-any.whl.

File metadata

File hashes

Hashes for globaleaks_eph_fs-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 fd20c97eca1bcc7cd4bad0e76553c4c4bb98b2b354219baff27f03d08e2905f3
MD5 260604c42d48d1143915fad0fa558bb5
BLAKE2b-256 7822edb03e97e979eaea52ce24b7a4246440f22f41c3c90a1637bb3512b67d47

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page