fix(security): implement P1 loopback session token, P2 AAD filename binding, and P4 memory zeroization

This commit is contained in:
2026-09-09 21:24:07 +02:00
parent 98bfac718f
commit 771c08ff0f
7 changed files with 323 additions and 64 deletions
+7 -1
View File
@@ -14,7 +14,7 @@ use dav_server::{
};
use futures_util::stream;
use tracing::{debug, error, warn};
use zeroize::Zeroizing;
use zeroize::{Zeroize, Zeroizing};
use crate::carrier::CarrierFs;
use crate::crypto::{decrypt_chunk, encrypt_chunk, CHUNK_SIZE};
@@ -200,6 +200,9 @@ impl SanctumFile {
if !is_current {
self.flush_cached_chunk()?;
if let Some((_, ref mut data, _)) = self.cached_chunk {
data.zeroize();
}
let payload = match self.db.read_chunk(self.node_id, chunk_index).map_err(|e| {
error!("Fehler beim Lesen des Chunks #{chunk_index}: {e}");
@@ -236,6 +239,9 @@ impl Drop for SanctumFile {
if let Err(e) = self.flush_cached_chunk() {
warn!("Fehler beim automatischen Flush im SanctumFile::drop: {:?}", e);
}
if let Some((_, ref mut data, _)) = self.cached_chunk {
data.zeroize();
}
let now = SystemTime::now()
.duration_since(UNIX_EPOCH)
.map(|d| d.as_secs())