• v0.4.0 9d1a4d3ad7

    Sanctum v0.4.0 (Windows x86_64)
    Sanctum Release / Build & Release (Windows x86_64) (push) Canceled after 0s
    Stable

    harald released this 2026-09-14 13:36:59 +02:00 | 12 commits to main since this release

    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.4.0] - 2026-09-10

    Added

    • Distribution & Package Ecosystem:
      • Offizielles Scoop-Manifest (packages/scoop/sanctum.json) für One-Click CLI-Installation und nahtlose Upgrades unter Windows.
      • Windows Package Manager (Winget) Manifest (packages/winget/HaraldPansi.Sanctum.yaml) zur systemweiten Paketverwaltung.
      • Vollständiger Installations-Leitfaden (INSTALL.md) für Scoop, Winget, Standalone-Binaries und cargo install.
    • Cross-Platform Architektur (Linux & macOS Vorbereitung):
      • Neues Plattform-Abstraktionsmodul src/platform/mod.rs für OS-unabhängiges Speicherschutz- und Mount-Handling.
      • POSIX-Memory-Hardening mit mlock und munlock Systemaufrufen für Unix-Systeme.
      • Plattformübergreifendes Datei- und Ordneröffnen (explorer.exe unter Windows, xdg-open unter Linux, open unter macOS).
      • Native WebDAV-VFS-Einbindung für Linux GNOME/KDE via gio mount.
    • Chaos Engineering & Live-Crash-Resilienz:
      • tests/live_crash_resilience_test.rs: Umfassende automatisierte Stresstests mit Multi-Worker Schreibabbrüchen, asynchronen Panic-Simulationen und Validierung der SQLite WAL-Konsistenz (Null Korruption).
    • Legal, Compliance & Software Bill of Materials (SBOM):
      • LEGAL.md: Rechtliche Leitlinien, US EAR § 742.15(b) & EU Dual-Use Exportkontroll-Klassifizierung, DSGVO Art. 25 Zero-Data-Erklärung und Haftungsausschluss nach § 521 BGB.
      • THIRD_PARTY_LICENSES.md: Lückenloses Lizenzaudit aller 231 Abhängigkeiten (100% permissive Lizenzen, 0% Copyleft) zur strikten Compliance mit Apache-2.0 Section 4.
      • Aufnahme von LEGAL.md und THIRD_PARTY_LICENSES.md in das offizielle Release-Distributionsarchiv (package-release.ps1).
    • OpSec & Disaster Recovery UX:
      • QUICKSTART.md: Druckbare 24-Wörter BIP-39 Notfallkarte zur sicheren analogen Verwahrung des Notfallschlüssels (Air-Gapped Vault Paper Backup).

    [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.

    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).
    Downloads