Vai al contenuto
Allin

Cifrare un file, poi mandare la chiave per un'altra strada

Pubblicato il 06/08/2026 · 12 min di lettura · Strumenti per sviluppatori

Daniel Okonkwo

Daniel OkonkwoSviluppatore front-end e redattore Tech presso Allin

Performance web · Formati di file

Verificato su 4 fonti

Vedi il profilo
In breve

Lo strumento di cifratura dei file gira interamente nel tuo browser e usa AES-256-GCM tramite l'API WebCrypto. Leggendo il codice pubblicato ed eseguendolo: la tua passphrase viene allungata con PBKDF2-HMAC-SHA256 su 150 000 iterazioni fino a una chiave da 256 bit; a ogni cifratura vengono generati un sale casuale di 16 byte e un nonce casuale di 12 byte; entrambi sono scritti in chiaro in testa al file .enc, seguiti dal testo cifrato e da un tag di autenticazione a 128 bit. Il sovraccarico misurato è costante: 44 byte, da un file da 1 MB a uno da 1 GB. Cifrare due volte lo stesso file con la stessa passphrase dà due uscite diverse. Invertire un bit del testo cifrato, o un bit del nonce, fa fallire la decifratura invece di restituire in silenzio dati rovinati. È una costruzione solida, e non è lì che le persone sbagliano. L'errore è la consegna: il file cifrato e la passphrase percorrono la stessa strada. Un allegato cifrato più «la password è Marseille2019» nello stesso thread non è cifratura, è un rinvio — chi legge la casella ha entrambe le metà. Un secondo canale significa un altro mezzo, possibilmente su un altro dispositivo e un altro account: il file per e-mail, la passphrase detta a voce al telefono. E poiché il contenitore .enc non ha alcuna intestazione — i primi byte sono il sale grezzo — nulla di standard lo apre: chi lo riceve ha bisogno dello stesso strumento. Se la passphrase si perde, il file è perso con lei. È il progetto che funziona, non un difetto.

Cifrare è la metà facile. Ecco esattamente che cosa fa lo strumento al tuo file — cifrario, derivazione della chiave, sale, nonce — e perché un allegato cifrato con la password nello stesso thread non protegge nulla.

Che cosa fa davvero lo strumento al tuo file

Vale la pena essere precisi, perché «AES-256» su un pulsante non dice quasi nulla: le stesse tre lettere coprono costruzioni eccellenti e costruzioni rotte. Questa chiama l'implementazione WebCrypto del browser in modalità AES-GCM, cioè cifratura autenticata: non nasconde soltanto il contenuto, dimostra anche che il contenuto non è stato alterato. La chiave è da 256 bit. Il tag di autenticazione è da 128 bit, e puoi verificarlo senza leggere una riga di codice: un testo in chiaro da 71 byte ha dato un cifrato da 87 byte, esattamente i sedici byte in più che la RFC 5116 prevede per AES-256-GCM.

Una passphrase non è una chiave: va trasformata in una. Lo strumento usa PBKDF2-HMAC-SHA256 su 150 000 iterazioni, con un sale di 16 byte preso dalla sorgente casuale crittografica del browser. Il sale è nuovo a ogni cifratura, ed è ciò che impedisce a una tabella precalcolata di coprire più file in una volta. Il nonce è di 12 byte e cambia anch'esso ogni volta — verificato cifrando due volte lo stesso file con la stessa passphrase e confrontando: sale diverso, nonce diverso, cifrato diverso. Entrambi sono salvati in chiaro in testa all'uscita, e questo è corretto, non sciatto. Un sale e un nonce non sono segreti; devono solo essere unici, e chi decifra ne ha bisogno per ricostruire la chiave.

La metà di autenticazione non è un ornamento. Inverti un solo bit in qualunque punto del cifrato e la decifratura rifiuta; inverti un solo bit del nonce salvato e rifiuta anche; dagli una passphrase che differisce di una maiuscola e rifiuta. In ogni caso ottieni un errore, mai un file pieno di spazzatura dall'aria plausibile. Questa distinzione conta più di quanto sembri: una modalità senza autenticazione, come AES-CBC senza un controllo d'integrità separato, restituisce dati rovinati senza fiatare, e un attaccante in grado di modificare il file in transito riesce a volte a indirizzare quel danno.

L'errore che fanno tutti: la chiave viaggia con il file

La forma è questa. Cifri il foglio degli stipendi, alleghi il file .enc a un'e-mail e — dato che il destinatario ovviamente ne ha bisogno — scrivi la passphrase nello stesso messaggio. Oppure in un messaggio successivo, che sembra più prudente e non lo è. Oppure in una risposta sullo stesso thread, che è peggio, perché ora entrambe le metà stanno in un'unica conversazione che qualunque ricerca farà emergere insieme. Qualunque sia la variante, hai messo una serratura e attaccato la chiave alla porta.

Il motivo per cui «te la mando in una seconda e-mail» non funziona è che non cambia chi può leggere. La cifratura in transito non è il modello di minaccia qui: la posta tra grandi fornitori è già cifrata sul filo. Ciò da cui ti stai davvero difendendo è qualcuno che legge la casella: un account compromesso, un telefono lasciato sbloccato, un indirizzo di famiglia condiviso, un datore di lavoro con accesso legale all'archivio, un backup trapelato, un thread inoltrato che ha raccolto un destinatario di troppo. Ognuno di questi casi espone la seconda e-mail esattamente quanto la prima. Due messaggi nella stessa casella sono un solo canale usato due volte.

Che cos'è davvero un secondo canale

Un secondo canale deve differire in ciò che davvero cede. Vale la pena separare tre assi. Un mezzo diverso — e-mail contro voce contro carta — perché un protocollo compromesso non consegni entrambe le metà. Un account diverso — la tua casella di lavoro contro una messaggistica personale — perché una sola credenziale non apra entrambe. E un dispositivo diverso, perché un telefono rubato o infetto non tenga il file e la passphrase l'uno accanto all'altra. Manda il file da un portatile e la passphrase dall'app di messaggistica dello stesso portatile, e avrai spostato la chiave dall'altra parte della scrivania, non fuori dalla stanza.

Ecco perché una passphrase dettata al telefono è davvero migliore, e non soltanto antiquata. Non lascia copie: nessun messaggio da cercare dopo, nessun backup che trapeli, nessun thread inoltrato per sbaglio, nessun archivio che un amministratore possa aprire fra due anni. Intercettarla richiede essere in linea nell'istante in cui viene pronunciata, un attacco molto più stretto e molto più costoso che leggere con comodo una casella. Dà anche qualcosa che nessun canale offre da solo: riconosci la voce, quindi sai chi l'ha ricevuta. Detta lentamente, usa l'alfabeto NATO per tutto ciò che è ambiguo e falla ripetere.

Quello che si dimentica: chi riceve deve poterlo aprire

Un file cifrato che dall'altra parte nessuno riesce a decifrare non è sicurezza, è una consegna fallita — e la riparazione abituale è peggiore del problema iniziale, perché finisce con qualcuno che rimanda il file in chiaro «solo per questa volta». Verifica quindi l'altro capo prima di inviare. Il file .enc che questo strumento produce non ha alcuna intestazione: i suoi primi byte sono il sale casuale grezzo, senza numero magico, senza versione, senza nome dell'algoritmo e senza il nome del file originale. È una disposizione su misura. Non è uno ZIP, non è un messaggio OpenPGP, non è un file age, non è l'uscita di openssl enc — e nessuno di questi lo aprirà.

La conseguenza pratica però è buona: poiché lo strumento gira interamente nel browser, chi riceve non deve installare nulla, creare un account o affidare il file a un server. Apre la stessa pagina, carica il file .enc, digita la passphrase e preme decifra, e il testo in chiaro atterra nei suoi download. Non viene caricato nulla, in nessuna direzione. Quindi la frase da mandare insieme al file non è il suggerimento della password: è quale pagina aprire. E quella frase mandala sullo stesso canale del file, visto che non è un segreto; solo la passphrase cambia strada.

Quando la passphrase è persa

Non si può fare nulla. Né il sito, né un'assistenza, né tu. Non esiste alcun account che ne tenga copia, nessuna chiave di recupero, nessun deposito e nessuna porta di servizio: la chiave non è mai esistita altrove se non nella memoria della scheda che l'ha creata, ed era derivata dalla passphrase al volo. Perdi la passphrase e il file è un blocco di rumore che resterà rumore. Vale la pena dirlo chiaramente, perché si dà per scontato che esista una via di recupero, come per la password di una webmail.

Ed è il progetto che funziona, non che fallisce. Una via di recupero è per definizione un secondo ingresso, e da un secondo ingresso può passare anche un attaccante — o un tribunale può costringere qualcuno ad aprirlo. La risposta giusta non è sperare in una porta di servizio ma riporre la passphrase in un posto duraturo prima di averne bisogno: una scheda del gestore di password legata al nome del file, o carta in un cassetto se il file conterà ancora fra cinque anni. Scegli una passphrase che tu possa dettare, perché probabilmente dovrai farlo. Quattro o cinque parole senza legame battono una singola parola storpiata su entrambi i fronti: è più robusta e sopravvive alla lettura ad alta voce.

Una debolezza onesta: il numero di iterazioni

Non è il cifrario l'anello più sottile qui, è la derivazione della chiave. PBKDF2 esiste per rendere costoso indovinare, e il suo costo è fissato dal numero di iterazioni. Questo strumento ne usa 150 000. La OWASP Password Storage Cheat Sheet, il riferimento da cui parte la maggior parte dei difensori, oggi raccomanda 600 000 per PBKDF2-HMAC-SHA256. La cifra pubblicata ne è un quarto, il che quadruplica la produttività di un attaccante che indovina fuori linea. Misurate su un core, 150 000 iterazioni richiedono circa 36 millisecondi per tentativo: un core comune prova all'incirca 28 passphrase al secondo; l'hardware specializzato va molto oltre, e PBKDF2 gli è più favorevole di una funzione avida di memoria come Argon2id.

Questo non rende lo strumento insicuro, e non cambia nulla del cifrario, del sale o del nonce, che sono giusti. Sposta da dove viene la sicurezza: con una derivazione più leggera, il peso ricade di più sulla passphrase stessa. Una passphrase di quattro parole estratte a caso da un elenco ampio resta fuori portata in entrambi i casi; una parola di dizionario con un numero in fondo non è mai stata protetta dal numero di iterazioni. Scegli la passphrase come se non esistesse alcuno stiramento, e la differenza fra 150 000 e 600 000 smette di riguardarti.

Mandare il file da una parte e la passphrase dall'altra: quali abbinamenti separano davvero le due metà
Il file passa perLa passphrase passa perDavvero separato?Che cosa serve a un attaccante
Allegato e-mailLo stesso messaggioNoLeggere la casella una volta
Allegato e-mailSeconda e-mail, stesso indirizzoNoLeggere la casella una volta
Link condiviso su cloudCommento sullo stesso fileNoL'account cloud
Allegato e-mailMessaggio di testo a un telefonoIn parteLa casella e il telefono — ma un backup del telefono può contenerli entrambi
Allegato e-mailDetta a voce al telefonoLa casella più essere in linea in quell'istante
Link condiviso su cloudMessaggistica cifrata end-to-end, altro accountDue account distinti su due servizi
Consegnato su una chiavetta USBDetta di persona, nulla di scrittoAccesso fisico a entrambi, nello stesso momento
Cifratura di fileCifra o decifra qualsiasi file con una password (AES-256).Prova lo strumento

Domande frequenti

AES-256-GCM basta da solo?
Per la cifratura in sé sì: è una modalità autenticata standard e l'implementazione del browser è la stessa che serve HTTPS. Ma un cifrario protegge solo ciò che protegge la chiave. Qui la chiave deriva dalla tua passphrase, quindi il vero soffitto di robustezza è la passphrase, e il vero modo di fallire è mandarla sullo stesso canale del file. AES-256-GCM non può nulla né per l'una né per l'altro.
Perché il sale sta in chiaro all'inizio del file?
Perché non è un segreto e non doveva esserlo. Un sale esiste perché la stessa passphrase produca una chiave diversa ogni volta, il che impedisce a una tabella precalcolata di attaccare molti file in una volta. Deve solo essere unico, non nascosto. Lo stesso vale per il nonce. Chi decifra ha bisogno di entrambi per ricostruire la chiave, quindi devono viaggiare con il cifrato: nasconderli significherebbe cifrarli, il che richiederebbe una chiave, e si torna al punto di partenza.
Posso mandare la passphrase in una seconda e-mail?
No, ed è la versione più diffusa dell'errore. Due e-mail allo stesso indirizzo finiscono nella stessa casella, nello stesso archivio e nello stesso backup. Chi può leggere l'una legge l'altra, e una ricerca sul nome del mittente le tira su affiancate. Non è un secondo canale, è lo stesso canale usato due volte. Cambia mezzo — la voce, o una messaggistica su un altro account — altrimenti la cifratura compra solo il tempo di scorrere lo schermo.
Chi riceve può aprire il file .enc con 7-Zip, GPG o openssl?
No. Il contenitore ha una disposizione su misura — 16 byte di sale, 12 di nonce, poi cifrato e tag — senza numero magico, senza byte di versione e senza identificatore di algoritmo, quindi nessuno strumento standard riesce nemmeno a riconoscerlo. Chi riceve apre la stessa pagina nel proprio browser, carica il file, digita la passphrase e preme decifra; non si installa nulla e non si carica nulla. Digli quale pagina aprire nello stesso messaggio del file. Quella parte non è segreta.
Ho perso la passphrase: davvero non c'è nulla da fare?
Davvero nulla. La chiave è esistita soltanto dentro la scheda che l'ha creata, derivata dalla passphrase al momento della cifratura; nessuna copia è conservata da nessuna parte, da nessuno. Non c'è chiave di recupero, né deposito, né via di assistenza, e questa assenza è voluta: qualunque percorso di recupero è un secondo ingresso, che anche un attaccante potrebbe usare. Se ricordi la passphrase a grandi linee, provare varianti a mano è l'unica opzione, e ogni tentativo costa circa un ventesimo di secondo.

Articoli che potrebbero interessarti

Tutte le guide
SpiegazioneEntropia delle password: che cosa un misuratore di robustezza non può sapereL'entropia misura il processo che ha prodotto una password, non i caratteri che contiene. H = L x log2(R) è vera solo quando ogni carattere è stato scelto davvero a caso — ed è esattamente per questo che un misuratore che valuta una password inventata da un umano in base alle classi di caratteri sta misurando la cosa sbagliata.GuidaCiò che un gestore di password non può misurareL'entropia dà un prezzo a un solo attacco: l'indovinare offline contro un hash rubato. Sopra i 90 bit circa la cifra non decide più nulla — e l'indicatore di questo sito ha sottostimato una password casuale di 20 caratteri in 300 estrazioni su 300.GuidaMettere in sicurezza una rete Wi-Fi domestica: la chiave, il protocollo e la rete ospitiLa sorgente casuale del generatore verificata riga per riga, cosa elimina davvero SAE, perché la modalità di transizione ne restituisce gran parte, e ciò che ogni guida sulla rete ospiti tralascia.GuidaGenerare correttamente una chiave segreta di applicazioneCome distinguere un generatore di chiavi segrete solido da uno dubbio, con questo come esempio svolto: quale fonte casuale chiama, come calcolare l'entropia da soli e che cosa si rompe davvero il giorno in cui si ruota la chiave.TutorialCome creare una password forteLa lunghezza batte la complessità. Ecco perché una frase di quattro parole è forte, perché non riutilizzare mai una password, e come un gestore lo rende facile.SpiegazioneChe cosa c'è dentro un JWT — e che cosa non proteggeUn JWT è firmato, non cifrato. Chiunque abbia il token può decodificare il payload e leggerne ogni claim. Ecco un token reale, decodificato senza alcuna chiave, più i tre attacchi che la firma deve fermare e l'unico problema che non può risolvere.

Strumenti correlati

Il cifrario, la derivazione della chiave, il sale, il nonce e la struttura del contenitore qui descritti sono stati letti nel codice dello strumento e confermati eseguendolo nell'agosto 2026; il software cambia, quindi verifica prima di appoggiarti a un numero preciso. Questa è un'indicazione generale per gestire i tuoi file, non un audit di sicurezza della tua organizzazione, e i dati regolamentati o classificati seguono regole che nessuno strumento da browser può soddisfare da solo.

Fonti

Hai notato un errore in questo articolo?