ferry Documentation

Encryption at Rest & GDPR Compliance Plan 🛡️⚖️

This document outlines the architectural considerations and implementation strategy for bringing technical data protection and GDPR (“DSGVO”) compliance to Ferry.

🎯 Primary Goals

  1. Technical Sovereignty: Ensure that data stored on third-party infrastructure (e.g., German Docker hosters) is unreadable without the local master_encryption_key.
  2. Compliance: Provide built-in tools for IP anonymization and data minimization.
  3. CAS Integrity: Implement encryption in a way that does not break Content-Addressable Storage (deduplication).

🔐 Encryption at Rest (EaR)

The CAS Challenge

Traditional encryption uses random Nonces/IVs, resulting in different ciphertexts for the same plaintext. This would break deduplication. To solve this, Ferry will use Convergent Encryption.

Technical Specification

Migration Strategies

Strategy 1: Soft Migration (Lazy)

Strategy 2: Hard Migration (Batch)


👤 GDPR (“DSGVO”) Features

IP Anonymization

Database Field Encryption


🚀 Target Release: v2.0

Due to the significant impact on the storage layer and database schema, this feature set is targeted for a v2.0 release.

Planned Milestones

  1. v1.x: Introduce master_encryption_key in init-config (reserved for future use).
  2. v2.0-beta: Implement Convergent Encryption in FileStorage with lazy-read support.
  3. v2.0-final: Add IP anonymization and CLI migration tools.