Generatore di password

Una password che viene dal generatore crittografico di numeri casuali del tuo browser, con la lunghezza e i gruppi di caratteri che scegli. Nasce sulla tua macchina e non viene inviata da nessuna parte — per una password non è una gentilezza ma tutto il punto: una che ha attraversato la rete per arrivare a te è una che qualcun altro ha potuto vedere.

20

Esclude l, I, 1, O e 0. Utile se devi leggerla dallo schermo, e costa qualche bit.

  • Dove gira Non viene caricato nulla, perché non c’è nessun file: il calcolo avviene in questa pagina.
  • Nessuna coda, nessun account Risponde alla velocità della tua macchina e non chiede mai chi sei.
  • Tutte le volte che vuoi Non si conta né si limita nulla: rispondere di nuovo non ci costa niente.

Come funziona

  1. Scegli una lunghezza. Venti è un buon valore di partenza; più lunga non costa niente.
  2. Spunta i gruppi di caratteri che ti servono. Alcuni sistemi rifiutano ancora i simboli, ed è per questo che si possono disattivare.
  3. Premi Genera. La password compare subito, insieme alla sua forza.
  4. Copiala direttamente nel tuo gestore di password. Non provare a ricordarla: il gestore serve a questo.

Da dove viene la casualità

I caratteri sono estratti con `crypto.getRandomValues`, il generatore crittografico del browser, alimentato dalla riserva di entropia del sistema operativo. L’alternativa, `Math.random`, esiste in ogni browser ed è esclusa qui: il suo algoritmo è pubblico, il suo stato interno è piccolo e ricostruirlo da poche uscite è un problema risolto, con codice pubblicato. Un generatore costruito su di esso produce password il cui spazio di chiavi reale è la dimensione di quello stato, per quanto lunga sembri la password.

A occhio le due cose non si distinguono. Proprio per questo vale la pena dire quale viene usato, e per questo in questo progetto c’è un test che fallisce se `Math.random` compare in quel file.

La distorsione che hanno quasi tutti i generatori

Trasformare un byte casuale in un carattere casuale si scrive di solito `byte % dimensione`, ed è sottilmente sbagliato ogni volta che 256 non è divisibile per la dimensione dell’alfabeto. Con ventisei lettere, i byte da 0 a 255 coprono `a`–`v` dieci volte ciascuna e `w`–`z` solo nove: le prime ventidue escono circa l’11% più spesso.

È un difetto piccolo ed è reale, ed è di gran lunga il più comune nei generatori di questo tipo. Il rimedio è scartare i valori di quella coda breve e ripescare, il che costa un ciclo e meno di due estrazioni per carattere in media. È quello che succede qui.

Che cosa significa il valore di entropia

L’entropia si esprime in bit ed è il modo onesto di descrivere la forza di una password: ogni bit raddoppia il numero di tentativi necessari. Venti caratteri presi da tutti e quattro i gruppi fanno circa 130 bit, cioè all’incirca 2^130 possibilità — un numero senza significato fisico, che è esattamente il punto.

Rende visibili anche i compromessi. Togliere i simboli da una password di venti caratteri costa circa 11 bit. Togliere i caratteri che si confondono ne costa circa 3. Aggiungere quattro caratteri ne guadagna circa 26. Per questo la lunghezza batte sempre la complessità: quei quattro caratteri in più valgono più di tutti i simboli della tastiera, e si accettano meglio su una password che non digiterai mai a mano.

Ogni gruppo selezionato compare di sicuro

Se spunti le cifre, la password contiene una cifra. Non è automatico: estrarre venti caratteri a caso da un alfabeto misto lascia una probabilità concreta di non prenderne nessuno da uno dei gruppi, e il risultato è una password che una policy rifiuta e che devi rigenerare.

I caratteri che lo garantiscono vengono messi per primi e poi tutto viene mescolato, altrimenti ogni password comincerebbe con una minuscola, poi una maiuscola, poi una cifra, poi un simbolo — uno schema che toglie i primi caratteri dal problema di chi indovina. La garanzia costa una frazione di bit, ben sotto l’arrotondamento del numero mostrato.

Un generatore è solo metà del lavoro

Una password forte che riusi è una password debole, perché la sua forza smette di contare nel momento in cui uno qualsiasi dei siti che la conoscono viene violato. Il valore di generarle sta nel dare a ogni account la sua, e funziona solo se qualcosa se le ricorda per te.

Quindi usa un gestore di password, uno qualsiasi, compreso quello già integrato nel browser. Il generatore qui serve nel momento in cui sei davanti a un modulo; ciò che lo rende utile è che il risultato finisca dove potrai ritrovarlo.

Generatore di password: domande frequenti

La password viene inviata a un server?

No, e questo è lo strumento del sito in cui conta di più. La genera il tuo browser ed esiste solo nella pagina finché non la copi. Non viene caricato niente, non viene registrato niente e non serve un account. Un generatore di password che gira su un server è un generatore la cui uscita qualcun altro ha visto.

Quanto deve essere lunga la password?

Sedici è un minimo ragionevole e venti è meglio. Oltre la trentina non c’è più nulla da guadagnare contro un attaccante realistico, quindi la lunghezza è limitata solo da ciò che il sistema accetta. Dato che dovresti incollarla e non digitarla, la lunghezza non ti costa nulla.

Conviene disattivare i caratteri che si confondono?

Solo se devi leggere la password dallo schermo per scriverla altrove: su un televisore, da un foglio stampato, su un apparecchio senza appunti. Riduce l’alfabeto e costa qualche bit, che il valore di entropia ti mostra nel momento in cui lo attivi.

Può uscire due volte la stessa password?

In nessun senso utile. Con le impostazioni predefinite ci sono circa 2^130 risultati possibili: una ripetizione non capiterebbe nemmeno se ogni persona viva ne generasse una al secondo per tutta l’età dell’universo.

È gratis?

Sì, senza account e senza limiti a quante ne generi. Gira sulla tua macchina, quindi lasciarti premere di nuovo il pulsante non ci costa niente.