Skip to main content

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.

Metadata

Release files for globaleaks-eph-fs 0.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for globaleaks-eph-fs 0.0.3
File Size Uploaded
globaleaks_eph_fs-0.0.3.tar.gz 22.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for globaleaks-eph-fs 0.0.3
File Interpreter ABI Platform
globaleaks_eph_fs-0.0.3-py3-none-any.whl Python 3 none any Details

Total release size: 45.0 kB

Release files / globaleaks_eph_fs-0.0.3.tar.gz

Download URL globaleaks_eph_fs-0.0.3.tar.gz
Size 22.7 kB
Tags Source
SHA-256 checksum
How to use checksums
5d7a657dd4d55979462086f88a07003dc3afc81c517ff42205d283bbcbbaa7df
BLAKE2b-256 checksum
How to use checksums
19ef2d20f9219ae4fdbe1e240cae123e346124d4f271d57522a9527a214ceffb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.12.3

Release files / globaleaks_eph_fs-0.0.3-py3-none-any.whl

Download URL globaleaks_eph_fs-0.0.3-py3-none-any.whl
Size 22.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fd20c97eca1bcc7cd4bad0e76553c4c4bb98b2b354219baff27f03d08e2905f3
BLAKE2b-256 checksum
How to use checksums
7822edb03e97e979eaea52ce24b7a4246440f22f41c3c90a1637bb3512b67d47
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.12.3

Release history Release notifications | RSS feed

This release

0.0.3 This release

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page