EncSend EncSend
Concetto di sicurezza

Modello di sicurezza EncSend

Questa pagina descrive l implementazione attuale: quali dati sono cifrati lato client, come vengono gestiti link e chiavi, quali controlli di accesso sono attivi e dove si trovano i limiti del modello.

Crittografia lato client prima di tutto

I messaggi vengono cifrati nel browser con Web Crypto (AES-GCM). Il server memorizza solo testo cifrato e metadati.

Chiavi nei frammenti URL

Le chiavi di decifratura sono trasportate in frammenti URL come #k o #rk e non vengono inviate al server.

Livello password opzionale

I link protetti da password usano hash lato server piu un wrapping aggiuntivo della chiave lato client con PBKDF2-SHA-256.

Controlli di durata

Scadenze, limiti di visualizzazione o invio e politiche di lettura unica limitano l accesso ai contenuti sensibili.

Flusso dati: invio di un segreto

  1. Il browser genera materiale di chiave del link a 256 bit.
  2. Il messaggio viene cifrato con una chiave payload casuale tramite AES-GCM.
  3. La chiave payload viene wrappata con una chiave derivata dalla chiave del link tramite HKDF-SHA-256.
  4. Facoltativamente, questa chiave wrappata viene ulteriormente cifrata con un livello basato su password (PBKDF2-SHA-256).
  5. Il server memorizza solo encrypted_payload, encrypted_key, metadati crittografici e campi di politica di accesso.
  6. Dopo la corretta decifratura locale, il client conferma la visualizzazione; con lettura unica, il segreto viene poi contrassegnato come distrutto.

Flusso dati: richiesta di messaggio sicuro

  1. Il proprietario genera un URL di richiesta con un token pubblico casuale.
  2. I mittenti esterni cifrano localmente nel browser con il materiale di chiave ricavato dal frammento URL.
  3. Il server memorizza gli invii come testo cifrato e applica limiti di invio e scadenza.
  4. Il proprietario legge gli invii tramite decifratura locale; il testo in chiaro non viene elaborato lato server.
  5. Per la lettura multi-dispositivo, la chiave della richiesta puo essere memorizzata anche come artefatto owner-wrapped.

Controllo degli accessi e resistenza agli abusi

I token di accesso pubblici vengono generati casualmente, memorizzati solo come hash SHA-256 nel database e validati tramite hash_equals.

Le password dei link non vengono mai memorizzate in chiaro e sono verificate contro hash lato server. Le sessioni password per i link pubblici sono limitate nel tempo e configurabili.

Il rate limiting e attivo sugli endpoint critici, inclusi controlli password, invii pubblici, login e flussi di verifica.

Le operazioni del proprietario sono protette da autenticazione, stato e-mail verificato e policy di autorizzazione; le modifiche sensibili di recupero richiedono una recente conferma della password.

Recupero del proprietario e key vault

EncSend fornisce artefatti di recupero cifrati opzionali per scenari multi-dispositivo:

  • Profilo crypto del proprietario: chiave master cifrata (AES-GCM), basata su passphrase con PBKDF2-SHA-256.
  • Key vault utente: backup cifrato delle chiavi di segreti e richieste conservate localmente.
  • Chiavi di richiesta owner-wrapped per richiesta e chiavi di segreto owner-wrapped per segreto; i batch di rotazione delle chiavi di richiesta includono supporto ai retry.

Audit e tracciabilita

Le azioni rilevanti per la sicurezza vengono registrate, ad esempio emissione di link, accessi negati, passaggi di challenge password, creazione di invii e aggiornamenti del recupero.

  • Le tabelle degli eventi di accesso conservano tipo di evento, timestamp, user-agent e metadati contestuali.
  • I log di audit sono interrogabili dagli utenti finali (propri eventi) e dagli amministratori (vista globale).
  • Una migrazione dedicata rimuove le colonne degli indirizzi IP dalle tabelle di sessione e di evento.

Limiti importanti del modello

  • La sicurezza del browser resta critica: le chiavi locali vengono memorizzate nella cache del browser e richiedono un ambiente client rinforzato.
  • JavaScript e Web Crypto sono obbligatori per flussi sicuri di creazione e decifratura locale.
  • La sicurezza del trasporto (HTTPS, hardening del reverse proxy e policy TLS) deve essere applicata a livello infrastrutturale.
  • L hashing delle password protegge l archiviazione lato server ma non sostituisce password robuste.