Scrivere «non salviamo la tua password» su una pagina web costa esattamente quanto scrivere qualsiasi altra cosa: niente. È una frase, non una garanzia. La scrive allo stesso modo chi dice la verità e chi non la dice, e dal tuo lato dello schermo le due si vedono identiche.
È questo il problema di fondo di qualunque sito che ti chieda una password per «analizzarla». Anche se il servizio è impeccabile — codice pulito, buone intenzioni, gente onesta —, tu non hai modo di saperlo. Il server è una scatola chiusa. Gli mandi il dato più sensibile che hai e confidi che dall’altra parte succeda quello che ti hanno promesso.
E c’è un dettaglio che di solito sfugge: una promessa di non salvare non protegge nemmeno da ciò che non dipende da chi promette. Un server onesto può avere log che nessuno ha mai riletto, un proxy in mezzo, un backup automatico, un dipendente nuovo o, semplicemente, una giornata storta. La password è già uscita dalla tua macchina. Quello che succede dopo è fuori dalla tua portata e, molto spesso, anche dalla sua.
L’unica risposta che non chiede di credere a niente
La soluzione non è promettere meglio. È non avere bisogno del dato.
Se la tua password non esce mai dal browser, la domanda «cosa ci fanno?» smette di avere senso. Non c’è un «loro». Non c’è un server che la riceve, né log in cui compaia, né backup che la contenga, né dipendente che possa leggerla. La fiducia non viene gestita meglio: viene tolta dal problema.
È questo che fa password.es. Il controllo analizza quello che scrivi nel tuo browser, con il tuo processore. Il testo che digiti non viaggia da nessuna parte perché non c’è nessuna parte dove viaggiare.
Da dove esce il caso
Il generatore ha la stessa impostazione. Per fare una password casuale serve del caso, e ci sono due modi per procurarselo: chiederlo a un server o chiederlo al browser. Chiederlo a un server sarebbe assurdo: il server conoscerebbe la password prima di te.
Quindi lo chiediamo al browser, con crypto.getRandomValues(). È l’API standard
della piattaforma web per la casualità crittografica — quella che esiste
esattamente per questo, a differenza di Math.random(), che va bene per
mescolare le carte in un gioco e non per niente che debba resistere a qualcuno
che ci abbia interesse —. Chi produce il caso è il browser stesso, sulla tua
macchina. Noi non partecipiamo: il risultato compare sul tuo schermo e lì resta.
Come controllarlo senza fidarti di me
Tutto quello che hai letto finora resta, per ora, un paragrafo scritto dalle stesse persone che hanno fatto il sito. Cioè: esattamente ciò di cui ti stavo dicendo di diffidare. Quindi non credermi. Guarda.
Apri gli strumenti per sviluppatori del tuo browser — F12, oppure
Cmd+Option+I su un Mac —, vai alla scheda Rete (Network), lasciala aperta
ed entra nel controllo. Vedrai caricarsi la pagina. Adesso svuota la lista, fai
clic sul campo della password e scrivi.
Ecco cosa vedrai, e qui conviene essere precisi invece che venditori:
- Al clic sul campo parte una richiesta. Non è la tua password — non hai
ancora scritto niente —: è la libreria che fa l’analisi, un file chiamato
zxcvbn-it-it.min.jsche porta dentro di sé gli elenchi di parole, nomi, schemi di tastiera e password note con cui viene fatto il confronto. Si scarica da password.es appena tocchi il campo, così arriva mentre digiti. Parte dallo stesso dominio, è un file statico ed è lo stesso per chiunque apra questa pagina — il sito ha varie versioni a seconda della lingua, e questa carica quella italiana —. - Da lì in poi, scrivi quello che vuoi: la lista resta ferma. Una lettera, venti, cancella, ricomincia, incolla un testo lungo. Zero richieste. Il contatore non si muove. Il dizionario è già nel tuo browser e la ricerca avviene contro la memoria della tua macchina.
Questa distinzione è tutta la differenza. Non è che ti fidi del fatto che la richiesta non porti con sé la tua password: è che la richiesta non c’è. Non serve interpretare niente né capire il codice; basta guardare un contatore che non sale.
L’inventario completo, difetti inclusi
Visto che l’argomento è «controlla di persona», sarebbe strano nascondere quello che troveresti controllando. L’inventario onesto di password.es:
Non c’è analytics. Né Google Analytics, né un’alternativa discreta, né un pixel. Ce n’era uno ed è stato tolto da tutte le pagine. Non ci sono cookie. Il sito non ne scrive nessuno. Una cosa salvata nel tuo browser c’è: se preferisci il tema chiaro o scuro, nell’archiviazione locale del tuo dispositivo. Non viene mai inviata da nessuna parte e puoi cancellarla dallo stesso ispettore. Non c’è registrazione, non ci sono account né moduli: non c’è dove lasciare un dato nemmeno volendo.
E il difetto, perché c’è: la pagina chiede due caratteri tipografici ai server di Google quando si carica. Questo significa che Google vede che qualcuno con il tuo IP ha caricato una pagina di questo dominio, come su tantissimi siti. Non vede quello che scrivi — quella richiesta avviene prima e non si ripete più —, ma è una richiesta a terzi, la vedrai in quella stessa scheda Rete e non avrebbe alcun senso dirti di aprire l’ispettore e insieme non nominarla. È nella lista delle cose da sistemare.
Perché lo raccontiamo
Avremmo potuto scrivere «zero richieste, privacy totale» e dormire sonni tranquilli. Sarebbe suonato meglio e sarebbe stato falso nei dettagli: c’è una richiesta di dizionario e ci sono dei caratteri tipografici. Un argomento che crolla quando qualcuno lo verifica non era un argomento: era pubblicità.
La versione precisa è meno rotonda e regge all’esame: quello che scrivi tu non esce dal tuo browser, e questo si vede in trenta secondi con uno strumento che hai già installato.
E attenzione, perché la cosa ti torna indietro come criterio generale. La prossima volta che un sito ti chiede la password per qualunque motivo, apri quella scheda e guarda se compare una richiesta quando premi un tasto. Se compare, la tua password se n’è andata. Non conta cosa dica l’informativa sulla privacy, quanto sia carino il lucchetto del modulo o quanto seria sembri l’azienda. E se il sito ti mostra la password già analizzata dopo un giro di rotella, sai bene da dove è passata.
La regola di cui si parla meno in sicurezza non riguarda le password: riguarda la verifica. Fidarsi va bene. Controllare è meglio, e qui è gratis.
Fonti: l’architettura di password.es stesso, verificabile con l’ispettore di
qualsiasi browser — il controllo scarica dal proprio dominio, al focus sul campo,
la libreria di analisi con i suoi elenchi (zxcvbn-it-it.min.js) e non emette
nessuna richiesta mentre si scrive ·
crypto.getRandomValues(), l’API standard della Web Crypto API per la casualità
crittografica · il codice del sito non contiene analytics, pixel né cookie;
l’unico dato salvato in locale è la preferenza del tema · i caratteri tipografici
sono serviti da Google Fonts.