Whitepaper su sicurezza e privacy (panoramica)Capitolo 4
Capitolo 4 Autenticazione, autorizzazione e controllo degli accessi
Questo capitolo definisce il modello di identità di FileBolt, i livelli di token e i confini del controllo degli accessi. Caricamento e download usano token di accesso di breve durata (sessioni lato server, basate su lookup, con scadenza e ambito limitato) per regolare l'accesso al testo cifrato e al manifest. Le azioni di gestione del mittente usano token di login di lunga durata memorizzati sul client. Il sistema DEVE supportare la revoca e i dati di audit DEVONO essere visibili solo al mittente.
4.0 Riepilogo
- Token di accesso di breve durata: regola l'accesso al testo cifrato/manifest; sessione lato server (lookup); DEVE essere associato al transferId; DEVE avere un ambito limitato; DEVE scadere.
- Token di login di lunga durata: usato per la gestione del mittente (eliminazione/revoca/audit); memorizzato sul client; NON DEVE essere usato dai destinatari per accedere al testo cifrato.
- Separazione tra chiavi e autorizzazione: i token controllano solo l'accesso al testo cifrato; la capacità di decifrare deriva dalla CEK nel frammento dell'URL (vedi il capitolo 5).
4.1 Modello di identità
- Il sistema supporta un modello di identità per utenti a pagamento ai fini della gestione del mittente.
- L'accesso del mittente PUÒ usare un magic link monouso; il client memorizza un token di login di lunga durata dopo l'autenticazione riuscita.
- I destinatari non hanno bisogno di un account per i download predefiniti (vedi la documentazione UX); l'accesso è controllato tramite link/token.
4.2 Modello di autorizzazione e livelli di token
Si usano due tipi di token, con una rigorosa separazione delle responsabilità:
- Token di accesso di breve durata (sessione / lookup): per il caricamento/download del testo cifrato e la lettura del manifest; DEVE essere associato al transferId; DEVE scadere; DEVE avere un ambito limitato per operazione.
- Token di login di lunga durata: per le azioni di gestione del mittente; NON DEVE concedere la capacità di decifrare.
4.2.2 Esempi di ambito
upload_chunk: carica uno o più blocchi di testo cifrato per uno specifico transferId.read_manifest: legge il manifest di uno specifico transferId.download_chunk: scarica uno o più blocchi di testo cifrato per uno specifico transferId.
4.3 Autorizzazione al caricamento
- Le API di caricamento DEVONO convalidare l'ambito del token e l'associazione al transferId prima di accettare il testo cifrato.
- I caricamenti dei blocchi DOVREBBERO essere idempotenti per (transferId, fileId, chunkIndex).
- In caso di token non valido o di mancata corrispondenza, il sistema DEVE bloccarsi (fail closed).
4.4 Autorizzazione al download
- L'accesso al manifest e al testo cifrato DEVE richiedere un token valido e con ambito limitato; i token DEVONO avere una durata limitata.
- I destinatari NON DEVONO poter enumerare altri trasferimenti né accedere a blocchi esterni al transferId associato.
- Si PUÒ applicare una limitazione della frequenza per prevenire gli abusi (vedi il capitolo 7) senza compromettere la ripresa dei trasferimenti.
4.5 Revoca e invalidazione anticipata
- I mittenti DEVONO poter revocare un trasferimento; la revoca DEVE rendere i token inutilizzabili per gli accessi successivi.
- La revoca DOVREBBE avviare, ove possibile, la pulizia o l'accelerazione del TTL del testo cifrato.
- L'UX per il destinatario DEVE indicare chiaramente lo stato revocato/scaduto e il passo successivo (contattare il mittente).
4.6 Audit e isolamento dei permessi
- Le prove di consegna (download, conteggi) DEVONO essere visibili per impostazione predefinita solo al mittente.
- Le API di audit DEVONO richiedere l'autenticazione del mittente e DEVONO essere isolate dai token di accesso dei destinatari.
4.7 Log e minimizzazione dei dati sensibili
- I log NON DEVONO contenere frammenti di URL, CEK o materiale da cui si possano derivare chiavi.
- I log DOVREBBERO ridurre al minimo i dati personali e concentrarsi sugli eventi rilevanti per la sicurezza (errori dei token, revoche, limiti di frequenza).
- I messaggi di errore DEVONO essere utili per agire, ma non devono rivelare segreti.
4.8 ID delle affermazioni correlati
- Per la corrispondenza di riferimento, vedi l'Appendice: ID delle affermazioni.