chore(release): update package manifests and audit docs for v0.9.4

This commit is contained in:
2026-09-22 16:54:57 +02:00
parent 510cb9b64e
commit 7107cdd7d6
5 changed files with 27 additions and 12 deletions
+1 -1
View File
@@ -57,7 +57,7 @@ Die gesamte Genese dieses Projekts (Audit-Behebung aller 39 Findings, Carrier V2
| [`RELEASE_PROCESS.md`](RELEASE_PROCESS.md) | Multi-Platform CI/CD Release-Architektur, Toolchain-Pins und Minisign-Signierung | | [`RELEASE_PROCESS.md`](RELEASE_PROCESS.md) | Multi-Platform CI/CD Release-Architektur, Toolchain-Pins und Minisign-Signierung |
| [`QUICKSTART.md`](QUICKSTART.md) | Kompakte Schritt-für-Schritt-Anleitung für Endanwender | | [`QUICKSTART.md`](QUICKSTART.md) | Kompakte Schritt-für-Schritt-Anleitung für Endanwender |
| [`INSTALL.md`](INSTALL.md) | Installationsanweisungen (Binaries, Scoop, WinGet, Cargo) | | [`INSTALL.md`](INSTALL.md) | Installationsanweisungen (Binaries, Scoop, WinGet, Cargo) |
| [`CHANGELOG.md`](CHANGELOG.md) | Keep-a-Changelog Versionshistorie (aktuell: v0.9.3) | | [`CHANGELOG.md`](CHANGELOG.md) | Keep-a-Changelog Versionshistorie (aktuell: v0.9.4) |
| [`deny.toml`](deny.toml) | Strikte Konfiguration für `cargo-deny` (Advisories, Bans, Lizenzen, Quellen) | | [`deny.toml`](deny.toml) | Strikte Konfiguration für `cargo-deny` (Advisories, Bans, Lizenzen, Quellen) |
| [`.gitea/workflows/release.yaml`](.gitea/workflows/release.yaml) | Automatisierte CI/CD Release-Pipeline für Windows & Linux musl | | [`.gitea/workflows/release.yaml`](.gitea/workflows/release.yaml) | Automatisierte CI/CD Release-Pipeline für Windows & Linux musl |
+18 -3
View File
@@ -1,12 +1,13 @@
# Sanctum Security Audit & Remediation Log (v0.9.3) # Sanctum Security Audit & Remediation Log (v0.9.4)
Dieses Dokument fasst alle 39 Findings aus drei umfassenden externen Sicherheitsaudits sowie nachfolgende Härtungen zusammen, dokumentiert die angewandten Härtungsmaßnahmen, referenziert die jeweiligen Git-Commits und benennt die zugehörigen automatisierten Regressionstests. Abschnitt 5 dokumentiert die Formaterweiterung Carrier V2 (Paged Manifest) aus v0.9.0, Abschnitt 6 die Minor Issues aus v0.9.1, Abschnitt 7 den Recovery-MAC-Fix (R-NEW-1) aus v0.9.2 und Abschnitt 8 die Supply-Chain- und Secret-Audits aus v0.9.3. Dieses Dokument fasst alle 39 Findings aus drei umfassenden externen Sicherheitsaudits sowie nachfolgende Härtungen zusammen, dokumentiert die angewandten Härtungsmaßnahmen, referenziert die jeweiligen Git-Commits und benennt die zugehörigen automatisierten Regressionstests. Abschnitt 5 dokumentiert die Formaterweiterung Carrier V2 (Paged Manifest) aus v0.9.0, Abschnitt 6 die Minor Issues aus v0.9.1, Abschnitt 7 den Recovery-MAC-Fix (R-NEW-1) aus v0.9.2, Abschnitt 8 die Supply-Chain- und Secret-Audits aus v0.9.3 und Abschnitt 9 die Format-V3 Systembindungshärtungen (F-01, F-02, F-03) aus v0.9.4.
--- ---
## Audit-Zusammenfassung ## Audit-Zusammenfassung
- **Zielversion:** Sanctum v0.9.3 (Basis v0.9.2) - **Status:** Vollständig gehärtet & verifiziert
- **Zielversion:** Sanctum v0.9.4 (Basis v0.9.3)
- **Behobene Findings:** 39 / 39 (100%) Audit-Findings + R-NEW-1 - **Behobene Findings:** 39 / 39 (100%) Audit-Findings + R-NEW-1
- **Quality Gates:** `cargo fmt --check` (100% sauber), `cargo clippy --all-targets -- -D warnings` (0 Warnungen), `cargo-deny` (100% ok), `gitleaks` (0 Leaks) - **Quality Gates:** `cargo fmt --check` (100% sauber), `cargo clippy --all-targets -- -D warnings` (0 Warnungen), `cargo-deny` (100% ok), `gitleaks` (0 Leaks)
- **Container-Format:** Container-Format V3 mit kanonischer Metadaten-Authentifizierung (HMAC-SHA256) beim Mount und Chunk-Replay-Schutz (Generation-gebundenes AAD). - **Container-Format:** Container-Format V3 mit kanonischer Metadaten-Authentifizierung (HMAC-SHA256) beim Mount und Chunk-Replay-Schutz (Generation-gebundenes AAD).
@@ -163,6 +164,20 @@ Dieses Dokument fasst alle 39 Findings aus drei umfassenden externen Sicherheits
- **Responsible Disclosure Policy (`SECURITY.md`):** - **Responsible Disclosure Policy (`SECURITY.md`):**
- Einführung von `SECURITY.md` mit SLA (48h Reaktionszeit, 5 Tage Bewertung), Kontaktadresse (`security@pansi.eu`), Gitea Security Advisories Kanal und 90-Tage Embargo. - Einführung von `SECURITY.md` mit SLA (48h Reaktionszeit, 5 Tage Bewertung), Kontaktadresse (`security@pansi.eu`), Gitea Security Advisories Kanal und 90-Tage Embargo.
### 9. Sanctum v0.9.4 — Format-V3 Systembindung (F-01, F-02, F-03)
- **PendingRebuild-Bypass durch Restore-Token geschlossen (F-02, HIGH):**
- Verhindert, dass Angreifer durch Setzen von `metadata_mac = NULL` und `metadata_gen = 0` manipulierte Metadatenbäume stillschweigend beim Mount signieren lassen.
- Ein 32-Byte CSPRNG-Token (`restore_nonce`) wird ausschließlich bei `restore_header_backup` in `meta` hinterlegt.
- `mount` fordert zwingend `--rebuild-mac` oder eine interaktive Bestätigung (`"JA"` via `is_terminal()`). Ohne Token wird `NULL`-MAC als ungültig zurückgewiesen (`MetadataMacStatus::Invalid`). Nach Rebuild wird das Token gelöscht.
- **Chunk-Generation Replay-Attacke behoben (F-01, HIGH):**
- Der kanonische HMAC-SHA256 Transkript (`SANCTUM_META_MAC_V3`) bindet nun neben sortierten Knoten (`ORDER BY id ASC`) auch alle sortierten Chunk-Tupel (`ORDER BY node_id, chunk_index: node_id LE64 || chunk_index LE32 || generation LE64`).
- Ein Angreifer kann keine alten Chunk-Ciphertexte mit alter Generation wiederherstellen, selbst bei identischer Dateigröße.
- Transparente Migration für bestehende Container, deren alter Knoten-Transkript verifiziert (`MetadataMacStatus::LegacyValid`).
- **Atomares V2-to-V3 Upgrade (F-03, HIGH):**
- `upgrade_to_v3` läuft in einer atomaren SQLite-Transaktion mit Fail-Closed-Verhalten und Rollback bei Chunk-Fehlern.
- Sowohl Slot 0 als auch Slot 1 werden konsistent auf `version = 3` aktualisiert, um Korruption in Dual-Vault-Szenarien auszuschließen.
- Neuer Metadaten-MAC wird direkt im Upgrade-Lauf persistiert.
--- ---
## Verifikationsnachweis ## Verifikationsnachweis
+1 -1
View File
@@ -1,6 +1,6 @@
# Threat Model & Sicherheitsarchitektur von Sanctum # Threat Model & Sicherheitsarchitektur von Sanctum
Dieses Dokument beschreibt das Bedrohungsmodell, die Sicherheitsannahmen und die Schutzmechanismen von **Sanctum v0.9.3** im reinen Userland-Betrieb. Dieses Dokument beschreibt das Bedrohungsmodell, die Sicherheitsannahmen und die Schutzmechanismen von **Sanctum v0.9.4** im reinen Userland-Betrieb.
--- ---
+3 -3
View File
@@ -1,12 +1,12 @@
{ {
"version": "0.9.3", "version": "0.9.4",
"description": "Verschlüsselter Ein-Datei-Container unter Windows im reinen Userland via WebDAV", "description": "Verschlüsselter Ein-Datei-Container unter Windows im reinen Userland via WebDAV",
"homepage": "https://gitea.pansi.eu/harald/sanctum", "homepage": "https://gitea.pansi.eu/harald/sanctum",
"license": "MIT", "license": "MIT",
"architecture": { "architecture": {
"64bit": { "64bit": {
"url": "https://gitea.pansi.eu/harald/sanctum/releases/download/v0.9.3/sanctum-v0.9.3-windows-x86_64.zip", "url": "https://gitea.pansi.eu/harald/sanctum/releases/download/v0.9.4/sanctum-v0.9.4-windows-x86_64.zip",
"hash": "75611155008ed0ecd6e6bbbb77fc549c5884ecc5779ca3012e66852bbb3b729b", "hash": "28fb0ce43ab167930e8f98424dae263625b71085e3ee65052aba9fa57833e4b1",
"bin": "sanctum.exe" "bin": "sanctum.exe"
} }
}, },
+4 -4
View File
@@ -1,6 +1,6 @@
# yaml-language-server: $schema=https://aka.ms/winget-manifest.singleton.1.6.0.schema.json # yaml-language-server: $schema=https://aka.ms/winget-manifest.singleton.1.6.0.schema.json
PackageIdentifier: HaraldPansi.Sanctum PackageIdentifier: HaraldPansi.Sanctum
PackageVersion: 0.9.3 PackageVersion: 0.9.4
PackageName: Sanctum PackageName: Sanctum
Publisher: Harald Pansi Publisher: Harald Pansi
PublisherUrl: https://gitea.pansi.eu/harald PublisherUrl: https://gitea.pansi.eu/harald
@@ -18,7 +18,7 @@ Tags:
- webdav - webdav
- container - container
- plausible-deniability - plausible-deniability
ReleaseNotesUrl: https://gitea.pansi.eu/harald/sanctum/releases/tag/v0.9.3 ReleaseNotesUrl: https://gitea.pansi.eu/harald/sanctum/releases/tag/v0.9.4
Installers: Installers:
- Architecture: x64 - Architecture: x64
InstallerType: zip InstallerType: zip
@@ -26,7 +26,7 @@ Installers:
NestedInstallerFiles: NestedInstallerFiles:
- RelativeFilePath: sanctum.exe - RelativeFilePath: sanctum.exe
PortableCommandAlias: sanctum PortableCommandAlias: sanctum
InstallerUrl: https://gitea.pansi.eu/harald/sanctum/releases/download/v0.9.3/sanctum-v0.9.3-windows-x86_64.zip InstallerUrl: https://gitea.pansi.eu/harald/sanctum/releases/download/v0.9.4/sanctum-v0.9.4-windows-x86_64.zip
InstallerSha256: 75611155008ed0ecd6e6bbbb77fc549c5884ecc5779ca3012e66852bbb3b729b InstallerSha256: 28fb0ce43ab167930e8f98424dae263625b71085e3ee65052aba9fa57833e4b1
ManifestType: singleton ManifestType: singleton
ManifestVersion: 1.6.0 ManifestVersion: 1.6.0