Files
sanctum/CHANGELOG.md
T
harald abf395627a
Sanctum Release / Build & Release (Windows x86_64) (push) Canceled after 0s
chore: release v0.3.0
2026-09-09 22:00:04 +02:00

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