Cos'è Cifratura lato client?
La cifratura lato client è la pratica di cifrare i dati sul dispositivo dell'utente — tipicamente in un browser o un'app nativa — prima di trasmetterli a un server, garantendo che il server riceva e archivi solo dati cifrati.
La cifratura lato client è il meccanismo tecnico che abilita i sistemi zero-knowledge e con cifratura end-to-end. Eseguendo la cifratura prima che i dati lascino il dispositivo dell'utente, il plaintext non attraversa mai la rete e non esiste mai sul server. Questo protegge simultaneamente da intercettazioni di rete, violazioni lato server e minacce insider.
Nelle applicazioni web, la cifratura lato client si affida tipicamente alla Web Crypto API, un'interfaccia nativa del browser per le operazioni crittografiche. È preferibile alle librerie di crittografia JavaScript perché la Web Crypto API esegue codice nativo compilato, è resistente agli attacchi di timing e beneficia dell'accelerazione hardware sui dispositivi moderni.
Il principale compromesso della cifratura lato client è che il server non può elaborare o cercare nei dati cifrati. Funzionalità come la ricerca lato server, l'analisi dei contenuti o la trasformazione dei dati diventano impossibili perché il server non può genuinamente leggere i dati. Per la condivisione di segreti, questo compromesso è ideale — il server deve solo archiviare un blob e applicare le regole di accesso, non comprendere il contenuto.
Come Vaulted usa Cifratura lato client
Ogni segreto condiviso tramite Vaulted viene cifrato lato client usando la Web Crypto API prima che il browser effettui qualsiasi richiesta di rete. Il browser genera una chiave AES-256-GCM casuale, cifra il plaintext e invia al server solo il ciphertext e l'IV risultanti. La chiave di cifratura viene inserita nel frammento dell'URL, che il browser non include mai nelle richieste HTTP. Ciò significa che il plaintext esiste solo nella memoria del browser del mittente e del destinatario — mai sulla rete, mai sul server.