BroadNet
Strumento gratuito per sviluppatori · funziona nel tuo browser

Calcolatore di sicurezza OTP.

Configura uno schema di password monouso (lunghezza, set di caratteri, scadenza e limite di tentativi) e visualizza lo spazio esatto delle combinazioni, l'entropia in bit, le probabilità di un tentativo corretto, la resistenza agli attacchi di forza bruta e un punteggio di sicurezza con consigli concreti per il rafforzamento. I calcoli sono precisi e vengono eseguiti interamente nel tuo browser.

Configura il tuo schema OTP
6

Numero di cifre o caratteri nel codice (da 4 a 12).

Dimensione dell'alfabeto: 10

Per quanto tempo il codice rimane valido prima di essere ruotato o scadere.

Sono consentiti i tentativi di verifica prima che il codice venga bloccato o invalidato.

tentativi / secondo

Tasso di probabilità presunto per il calcolo automatico. Utilizzato solo per stimare il tempo necessario per il calcolo con forza bruta: lasciare vuoto se sconosciuto.

Prova un esempio
Analisi della forza
ForteValutazione della forza
Combinazioni totali
1,000,000
≈ 1.000e+6 · alfabeto ^ lunghezza
Entropia
19.9 pezzi
lunghezza × log₂(alfabeto)
Probabilità di indovinare per tentativo
1 in 1,000,000
Possibilità entro il limite di tentativi(5×)
1 in 200,000
5.00e-4%
È ora di provare ogni codice
È ora di provare ogni codice
13.9 ore
Tempo medio per un colpo
6.9 ore
Numero di tentativi possibili per periodo di validità: 6.000e+3

Il limite di tentativi pone un limite al numero di tentativi consentiti a un attaccante reale di raggiungere 5: il blocco, non la frequenza, è il vincolo determinante.

A questo ritmo, il codice scade molto prima che lo spazio disponibile si esaurisca: un attacco di forza bruta online è di fatto impossibile. La sicurezza si basa sul limite di tentativi e sulla breve durata di validità, non sulla sola lunghezza del codice.
Soglie di valutazione (probabilità di indovinare entro il limite di tentativi)
  • Molto forte: 1 su 1.000.000 o migliore (soddisfa l'obiettivo di riferimento del NIST)
  • Forte — meglio di 1 su 100.000
  • Discreto — migliore di 1 su 10.000
  • Debole — peggiore di 1 su 10.000

Questa valutazione debole/discreta/forte/molto forte è un'euristica dello strumento stesso, non uno standard esterno. Valuta la probabilità di una risposta corretta entro il limite di tentativi rispetto alle soglie indicate di seguito. Lo spazio delle combinazioni, l'entropia e le probabilità sono calcoli matematici esatti.

Raccomandazioni
  • I codici OTP numerici sono lo standard per gli SMS e sono facili da usare, ma lo spazio limitato a disposizione fa sì che la sicurezza dipenda dalla limitazione della frequenza di invio e dalla breve scadenza, non dal codice stesso. È fondamentale che entrambi gli aspetti siano ben definiti.
  • Implementare un blocco rigido lato server dopo alcuni tentativi falliti. Senza di esso, la "probabilità entro il limite di tentativi" di cui sopra è priva di significato e l'intero spazio diventa vulnerabile agli attacchi di forza bruta.
  • Riduci il periodo di validità. Un codice valido per diversi minuti offre a un malintenzionato molto più tempo per tentare di indovinarlo rispetto a uno valido per 30-60 secondi.
  • Per operazioni di alto valore come pagamenti o recupero dell'account, è consigliabile aggiungere l'associazione del dispositivo, l'autenticazione a più fattori o un secondo fattore di autenticazione. Un codice OTP da solo è un singolo segreto condiviso su un unico canale.

La risposta breve

Quanto è forte, in realtà, una coppia OTP?

La forza intrinseca di un codice OTP risiede semplicemente nel suo spazio di combinazioni: la dimensione dell'alfabeto elevata alla lunghezza del codice. Un codice numerico a 6 cifre ha un milione di combinazioni e circa 19,9 bit di entropia, un valore irrisorio per gli standard crittografici. Ciò che lo rende effettivamente sicuro non è il codice in sé, ma i controlli ad esso associati: un limite rigoroso di tentativi prima del blocco e una breve finestra di scadenza. Con un blocco dopo 5 tentativi, la probabilità di indovinare un codice a 6 cifre è di 5 su 1.000.000, ovvero circa 1 su 200.000. Rimuovendo il blocco, lo stesso codice può essere decifrato in pochi secondi. Questo strumento calcola sia i calcoli matematici che le probabilità pratiche, tenendo conto del blocco, in modo da poter comprendere esattamente da dove deriva la sicurezza del vostro sistema.

La matematica alla base della forza di una coppia OTP

Il numero totale di combinazioni è pari all'alfabeto moltiplicato per la lunghezza, calcolato esattamente con l'aritmetica dei numeri interi grandi, quindi anche gli spazi più grandi vengono visualizzati con la cifra decimale. L'entropia in bit è pari alla lunghezza × log₂(alfabeto); ogni carattere aggiuntivo aggiunge log₂(alfabeto) bit. La probabilità di una singola ipotesi casuale è 1 ÷ combinazioni. Con un limite di tentativi pari a N, la probabilità di almeno un successo è approssimativamente N ÷ combinazioni, che esprimiamo come un chiaro '1 su X' e una percentuale. Se si fornisce una frequenza di attacco ipotizzata, il tempo necessario per provare ogni codice è combinazioni ÷ frequenza, e il tempo medio per un successo è la metà di questo valore, ma un vero attaccante viene fermato prima da quale dei due eventi si verifica per primo: il blocco dei tentativi o la scadenza del codice.

Cosa dice la norma NIST 800-63B

La pubblicazione speciale NIST 800-63B considera un codice OTP breve come un segreto a bassa entropia la cui sicurezza dipende dalla limitazione dei tentativi, non dalla lunghezza. Indica ai verificatori di limitare la frequenza dei tentativi di autenticazione falliti e raccomanda di mantenere la probabilità di un tentativo online riuscito, per tutta la durata di vita dell'autenticatore, al di sotto di circa 1 su 1.000.000. In altre parole, un codice a 6 cifre è accettabile solo se il verificatore limita i tentativi e fa scadere rapidamente il codice: la sola lunghezza non è ciò che lo rende sicuro. Il livello "molto forte" in questo strumento è allineato con l'obiettivo di 1 su 1.000.000; le etichette dei livelli sono frutto di una nostra euristica, non di una classificazione NIST.

Confronto tra i comuni schemi OTP

Cifre precise per configurazioni tipiche, ipotizzando un blocco dopo 5 tentativi. Codici più lunghi o con lettere più grandi offrono un margine di sicurezza, ma il limite di tentativi è ciò che conta di più.

Confronto tra i comuni schemi OTP
SchemaCombinazioniEntropiaPossibilità su 5 tentativi
Numerico a 4 cifre10,00013.3 pezzi1 in 2,000
Numerico a 6 cifre1,000,00019.9 pezzi1 in 200,000
Numerico a 8 cifre100,000,00026.6 pezzi1 in 20,000,000
Alfanumerico a 6 caratteri2,176,782,33631.0 pezzi1 in 435,356,467
A 8 caratteri case-sensitive218,340,105,584,89647.6 pezzi1 in 43,668,021,116,979

Domande frequenti

Un codice OTP a 6 cifre è sicuro?

Di per sé, no: un codice numerico a 6 cifre ha solo un milione di combinazioni e circa 19,9 bit di entropia. La sua sicurezza, in pratica, si ottiene grazie a un limite rigoroso di tentativi e a una breve scadenza: con un blocco di 5 tentativi, la probabilità di indovinarlo è di circa 1 su 200.000. Rimuovendo il blocco, diventa facilmente violabile con la forza bruta in pochi secondi. La sicurezza deriva dai controlli, non dalle cifre.

Come viene calcolata l'entropia dell'OTP?

L'entropia in bit è pari alla lunghezza del codice moltiplicata per il logaritmo in base 2 della dimensione dell'alfabeto. Un codice numerico a 6 cifre è pari a 6 × log₂(10) ≈ 19,9 bit; un codice alfanumerico a 8 caratteri, sensibile alle maiuscole/minuscole, è pari a 8 × log₂(62) ≈ 47,6 bit. Ogni carattere aggiunto contribuisce con log₂(alfabeto) bit in più.

Perché il limite di tentativi è più importante della lunghezza?

Poiché le OTP online vengono indovinate una richiesta alla volta, non calcolate offline, se il sistema di verifica blocca l'account dopo 5 tentativi errati, un malintenzionato ha al massimo 5 possibilità di successo contro l'intero sistema, indipendentemente dalla velocità con cui invia le richieste. Questo singolo controllo trasforma un codice con un milione di combinazioni in un codice con una probabilità di successo di circa 1 su 200.000. Senza di esso, lo stesso codice non offre praticamente alcuna protezione.

Un codice più lungo o alfanumerico può essere d'aiuto?

Aumenta l'entropia e riduce la probabilità di indovinare, il che è utile per flussi di alto valore o quando la limitazione della frequenza è debole. Tuttavia, penalizza anche l'usabilità: i codici più lunghi e con lettere maiuscole e minuscole sono più difficili da digitare e più soggetti a errori tramite SMS o chiamate vocali. Per la maggior parte dei flussi, un codice numerico a 6 cifre con un blocco rigoroso e una scadenza breve rappresenta il giusto compromesso; riservate i codici più lunghi alle azioni ad alto rischio.

Cosa significa l'indice di resistenza?

Si tratta di un'euristica proprietaria dello strumento, non di uno standard esterno. Valuta la probabilità di una risposta corretta entro il limite di tentativi configurato: 1 su 1.000.000 o superiore è considerata "molto forte" (in linea con l'obiettivo di riferimento del NIST), superiore a 1 su 100.000 è "forte", superiore a 1 su 10.000 è "discreta" e qualsiasi valore inferiore è considerato "debole". Lo spazio delle combinazioni, l'entropia e le probabilità sottostanti sono calcolati con precisione matematica.

Questo strumento invia la mia configurazione da qualche parte?

No. Ogni calcolo viene eseguito nel tuo browser utilizzando l'aritmetica dei numeri interi di grandi dimensioni per lo spazio delle combinazioni. Nulla viene trasmesso, registrato o memorizzato. Puoi disconnetterti dalla rete e continuerà a funzionare.

Integrare l'OTP nel tuo prodotto?

BroadNet fornisce codici monouso tramite SMS e voce, con controlli di limitazione, scadenza e consegna che rendono sicuri i codici brevi. Contatta il nostro team per discutere del tuo flusso di verifica.