Files
sanctum/CHANGELOG.md
T
harald 6cb48f55d9
Sanctum Release / Build & Release (Windows x86_64) (push) Canceled after 0s
docs(compliance): add LEGAL.md, THIRD_PARTY_LICENSES.md, and update packaging
2026-09-10 15:14:51 +02:00

10 KiB

Changelog

Alle nennenswerten Änderungen an diesem Projekt werden in dieser Datei dokumentiert.

Das Format basiert auf Keep a Changelog und dieses Projekt folgt den Richtlinien von Semantic Versioning.

[0.3.1] - 2026-09-10

Added

  • Human Factors & OpSec-UX (HF-01 bis HF-04):
    • Maskierte interaktive Notfallschlüssel-Eingabe: --recovery-key ohne CLI-Argument liest die 24 BIP-39-Wörter via rpassword ein, ohne Klartextspuren in der PowerShell-Historie (ConsoleHost_history.txt) zu hinterlassen.
    • BIP-39 Resilienz & Tippfehler-Diagnose: Automatische String-Normalisierung (Kleinschreibung, Whitespace- und Satzzeichenbereinigung) sowie Levenshtein-Kandidatenvorschläge (\le 2 Distanz) bei Eingabefehlern.
    • Stealth-Mount Modus (--stealth / -s): Vollständig lautloser Betrieb ohne Banner, Token-Ausgabe, Mount-Pfade oder Box-Rahmen.
    • VFS Carrier-Schutz im Decoy-Vault: Umfassender Lösch-, Schreib-, Truncate- und Umbenennungsschutz der Alibi-Trägerdatei (FsError::Forbidden) bei Zugriff über Slot 0.
  • Chaos Engineering & Crash-Resilienz (CHAOS-01 bis CHAOS-03):
    • Transaktionale Crash-Consistency (CHAOS-01): Bündelung von Chunk-Write und Dateigrößen-Aktualisierung (write_chunk_and_update_size) in einer einzigen atomaren SQLite-Transaktion (tx.commit()) für vollständige Resilienz gegen plötzlichen Stromausfall.
    • Path Fuzzing & Injection Guard (CHAOS-02): Strikte Validierung aller VFS-Pfade und Knotennamen gegen Null-Bytes (\0) und ASCII-Steuerzeichen (< 0x20).
    • Fault Recovery bei Disk Full (CHAOS-03): Sofortige Invalidierung des In-Memory-Chunk-Caches bei Schreibfehlern zur Vermeidung kaskadierender Drop-Panics bei vollem Zieldatenträger.
  • DFIR & Windows Host-Memory Hardening:
    • Win32 VirtualLock Speicherschutz: Physische Verriegelung des Root-DEK im RAM zur Unterbindung von Auslagerungen in pagefile.sys oder swapfile.sys.
    • Windows Defender Controlled Folder Access (CFA / Ransomware-Schutz) Diagnose mit gezielter Hilfestellung.
  • Legal, Compliance & Export-Control (LEGAL-01 bis LEGAL-03):
    • LEGAL.md: Umfassende rechtliche Dokumentation inkl. Exportkontroll-Klassifizierung (US EAR § 742.15(b) & EU Dual-Use GSN), Aufklärung über Plausible Deniability bei Key-Disclosure-Gesetzen, EU/DACH-Haftungsbeschränkung gem. § 521 BGB (Schenkungsrecht) sowie DSGVO Art. 25 Zero-Data-Erklärung.
    • THIRD_PARTY_LICENSES.md: Lückenlose Attribution aller ~230 statisch eingebundenen Crates (Apache-2.0, MIT, BSD, SQLite Public Domain) zur strikten Erfüllung von Section 4 der Apache-2.0-Lizenz.
    • Automatisierte Aufnahme von LEGAL.md und THIRD_PARTY_LICENSES.md in das Release-Packaging (package-release.ps1).

Changed

  • Visuelle Parität & Plausible Deniability beim Mounten (HF-01):
    • Beseitigung verräterischer Konsolenausgaben (magenta hervorgehobene Hinweise auf Hidden Vault / Slot 1) und Harmonisierung des Explorer-Verhaltens für beide Safes.
    • Vereinheitlichung der Ausgaben von sanctum verify und sanctum recovery-key zur Vermeidung von Rückschlüssen auf vorhandene Hidden-Vault-Slots.
  • Interaktiver Assistent für sanctum restore-header bei Aufruf ohne CLI-Parameter.

[0.3.0] - 2026-09-09

Added

  • Modell A: Steganografischer Carrier & Plausible Deniability Phase 2:
    • Zwei-Schichten-AEAD (DEK_0 + DEK_1) zur vollständigen Abwehr von Chunks-Accounting-Angriffen.
    • Physische Dateigrößen-Invarianz: Versteckte Schreibvorgänge verändern die Host-Dateigröße um exakt 0 Bytes.
    • Virtuelles Carrier-Dateisystem (CarrierFs) mit reserviertem Block 0 für Manifest und Block-Allokationsbitmap.
    • Schreib-, Lösch- und Umbenennungsschutz der Alibi-Trägerdatei im Decoy-Mount (FsError::Forbidden).
  • CLI & Disaster Recovery Erweiterungen:
    • sanctum backup & sanctum restore: Dedizierte CLI-Befehle für konsistente Online-Sicherungen.
    • sanctum restore-header --slot <0|1>: Gezielte Wiederherstellung für Decoy- oder Hidden-Vault-Header.
    • sanctum init --carrier-file <NAME> --carrier-size <MB>: Frei konfigurierbare Alibi-Trägerdatei mit forensischen Sicherheitsprüfungen.
  • SRE & Production Resilience:
    • Nativer Win32 SetConsoleCtrlHandler: Synchrones Aushängen und WAL-Checkpointing bei Schließen des Konsolenfensters (CTRL_CLOSE_EVENT, CTRL_LOGOFF_EVENT, CTRL_SHUTDOWN_EVENT).
    • Stale Mount Self-Healing: Automatische Erkennung und Bereinigung verwaister Windows-Netzlaufwerke (Systemfehler 85).
    • Automatische Erkennung und Diagnosehilfe für den Windows WebClient-Dienst (Fehler 67).
  • Red Team & Threat Model Hardening:
    • WebDAV Loopback Protection: Dynamisches 128-Bit Session-Token im URL-Pfad (Schutz vor unprivilegierten lokalen Prozessen & CSRF).
    • Anti-DNS-Rebinding & Anti-Spoofing: Strikte Fail-Closed Host-Header-Validierung.
    • Anti-Slowloris & Connection Limiting: Begrenzung auf maximal 64 gleichzeitige WebDAV-Verbindungen und 15s Header-Read-Timeout.
    • Decompression-Bomb-Schutz: Strikter 1-MB-Größen-Guard vor LZ4-Dekomprimierung zur Vermeidung von Speichererschöpfung (CWE-400).
    • Verzeichnis-Hijacking-Schutz: Dynamische Bindung verschlüsselter Knotennamen an die parent_id via AEAD-AAD.
    • Vollständige RAM-Zeroization: Schutz sensibler Daten im Heap via zeroize::Zeroize bei Puffer-Swaps und Drop.

Changed

  • Standardname der Trägerdatei auf forensisch plausiblen Typ system_backup.dat geändert.
  • Heap- und Schreiboptimierung: Reduzierung der CSPRNG-Padding-Generierung auf den tatsächlichen Slack-Bereich (~30-fache Schreibbeschleunigung).
  • Inaktivitäts-Tracking: self.touch() reagiert nur noch auf echte I/O-Interaktionen (open, read, write) und ignoriert passive Explorer-Hintergrundabfragen (metadata, read_dir).
  • LZ4-Kompression: Schwellenwert von mindestens 64 Bytes Ersparnis eingeführt (compressed.len() + 64 <= plaintext.len()).

[0.2.0] - 2026-09-08

Added

  • Transparente LZ4-Kompression:
    • lz4_flex Integration mit Frame-Format vor der AEAD-Verschlüsselung.
    • Adaptiver Fallback: Chunks werden nur komprimiert, wenn mindestens 64 Bytes gespart werden.
    • Transparente On-the-Fly Dekompression bei Leseoperationen.
  • Disaster Recovery & Integrität:
    • BIP-39 Mnemonic Seed Phrases (24 Wörter) für Master-Key Recovery.
    • sanctum recovery-key: Export und Anzeige des BIP-39 Notfallschlüssels.
    • sanctum backup & sanctum restore: Konsistente Online-Sicherungen via SQLite Backup API mit WAL-Flush.
    • sanctum verify: Vollständige kryptografische Integritätsprüfung aller AEAD-Chunks und B-Tree-Validierung.
  • Windows Explorer Integration & Bedienkomfort:
    • sanctum register & sanctum unregister: Windows-Kontextmenü im Explorer (HKCU\Software\Classes\.sanctum, "In Sanctum öffnen", Icon-Zuordnung).
    • Intelligente Erkennung freier Laufwerksbuchstaben (von Z: abwärts).
    • Automatisches Öffnen des gemounteten Laufwerks im Windows Explorer.
    • System-Tray Icon (tray-icon) im Windows Infobereich mit Status und schnellem Unmount.
  • Explorer Anti-Leak Shield & OpSec:
    • Windows Anti-Leak Filter: Blockiert thumbs.db, desktop.ini, *.tmp, Office-Lockfiles (~$*) und NTFS Alternative Data Streams (:Zone.Identifier).
    • Activity Tracking & Inaktivitäts-Timeout: Automatischer Unmount bei Leerlauf.
    • Windows Session Lock Monitor: Registrierung für WTS_SESSION_LOCK mit sicherem Auto-Unmount beim Sperren des PCs.
  • Storage Compaction & Anti-Forensics:
    • SQLite Incremental Auto-Vacuum (PRAGMA auto_vacuum = INCREMENTAL;) zur physikalischen Freigabe ungenutzter Dateiseiten an das Host-Dateisystem.
    • Kryptografisches Chunk-Shredding: Chunks werden vor dem Löschen/Abschneiden mit CSPRNG-Zufallsrauschen überschrieben.
    • sanctum compact: Manuelles oder beim Aushängen automatisches Freigeben von Freelist-Pages.
    • Plausible Deniability (Hidden Vault): Dual-Slot Header-Architektur. Unbenutzte Slots enthalten ununterscheidbares CSPRNG-Rauschen.
    • sanctum init --with-hidden: Erstellung zweier getrennter Safes (Decoy & Hidden) mit individuellen Passphrasen und BIP-39 Recovery-Karten.
    • Vollständige Dateinamen-Verschlüsselung für den Hidden Vault.
  • Passwort-Verwaltung (sanctum passwd):
    • Sofortiges Ändern des Master-Passworts über DEK-Rewrapping mit neuem Argon2id-Salt und KEK-Parametern ohne Neuverschlüsselung der Nutzdaten. Multi-Slot fähig.

[0.1.0] - 2026-09-07

Added

  • Sanctum CLI (sanctum.exe): Eigenständige, hochperformante Userland-Anwendung zur Verwaltung verschlüsselter Ein-Datei-Container unter Windows 10/11.
  • Kryptografie & Schlüsselableitung:
    • Argon2id KDF (M=64\,\text{MB}, T=3, P=4) zur Ableitung des KEK aus dem Master-Passwort.
    • AES-256-GCM DEK-Wrapping mit Nonce und Authentifizierungs-Tag.
    • 1-MB Chunk AEAD-Verschlüsselung mit AAD (node_id || chunk_index) zum vollständigen Schutz gegen Swap- und Block-Vertauschungsangriffe.
    • Speichersicherheit: Verwendung von zeroize::Zeroizing für sensible kryptografische Schlüssel im RAM.
  • Speicherschicht:
    • SQLite3-Container im WAL-Modus (PRAGMA journal_mode = WAL;, PRAGMA synchronous = NORMAL;, PRAGMA page_size = 8192;).
    • Automatische Checkpoints (PRAGMA wal_checkpoint(TRUNCATE)).
    • Dynamisches Wachstum bis über 100 GB in exakt einer Host-Datei (.sanctum).
  • WebDAV & Windows Explorer Integration:
    • Eingebetteter WebDAV-Server auf 127.0.0.1 (dav-server + hyper).
    • Automatisches Einhängen über Windows-Bordmittel (net use <DRIVE>: http://127.0.0.1:<PORT>/ /persistent:no) ohne Administratorrechte und ohne Treiber (kein WinFsp, kein Dokan).
    • Volle Unterstützung für DavFileSystem, DavFile, Metadaten und symlink_metadata für WebDAV MOVE/Rename-Operationen im Explorer.
    • Saubere URL-Decodierung bei Pfaden mit Leerzeichen, Kommas und Umlauten.
  • CLI & UX:
    • Automatische Windows-Konsolen-Initialisierung auf UTF-8 (CP 65001) und Virtual Terminal Processing.
    • Strukturierte Statusausgabe (init, mount, unmount) mit Status-Boxen und Fortschrittsanzeige.
    • Automatischer Shutdown-Handler (Ctrl+C) mit sicherem Aushängen des Netzlaufwerks und WAL-Checkpointing.
  • Release Management:
    • Automatisches Packaging-Skript scripts/package-release.ps1 mit SHA-256 Checksummen.
    • Gitea Actions CI/CD Pipeline (.gitea/workflows/release.yaml).