Sicurezza della password

I sistemi che utilizzano le password per l’autenticazione devono avere un modo per controllare qualsiasi password inserita per ottenere l’accesso. Se le password valide vengono semplicemente memorizzate in un file di sistema o in un database, un utente malintenzionato che ottiene un accesso sufficiente al sistema otterrà tutte le password utente, dando all’aggressore l’accesso a tutti gli account sul sistema attaccato e possibilmente ad altri sistemi in cui gli utenti utilizzano lo stesso o password simili. Un modo per ridurre questo rischio è archiviare solo un hash crittografico di ciascuna password invece della password stessa. Gli hash crittografici standard, come la serie Secure Hash Algorithm (SHA), sono molto difficili da invertire, quindi un utente malintenzionato che si impossessa del valore hash non può recuperare direttamente la password. Tuttavia, la conoscenza del valore hash consente all’autore dell’attacco di testare rapidamente le ipotesi offline. Sono ampiamente disponibili programmi di cracking delle password che testeranno un gran numero di password di prova contro un hash crittografico sottratto.

I miglioramenti nella tecnologia informatica continuano ad aumentare la velocità con cui le password indovinate possono essere testate. Ad esempio, nel 2010, il Georgia Tech Research Institute ha sviluppato un metodo per utilizzare GPGPU per decifrare le password molto più velocemente. Elcomsoft ha inventato l’uso di schede grafiche comuni per un più rapido recupero della password nell’agosto 2007 e presto ha depositato un brevetto corrispondente negli Stati Uniti. Nel 2011 erano disponibili prodotti commerciali che richiedevano la capacità di testare fino a 112.000 password al secondo su un computer desktop standard, utilizzando un processore grafico di fascia alta per quel tempo. Un dispositivo del genere decifrerà una password di 6 lettere in un solo giorno in un giorno. Si noti che il lavoro può essere distribuito su molti computer per una maggiore velocità proporzionale al numero di computer disponibili con GPU comparabili. Sono disponibili hash di allungamento chiave speciali che richiedono un tempo relativamente lungo per il calcolo, riducendo la velocità con cui è possibile indovinare. Sebbene sia considerata una buona pratica utilizzare l’estensione della chiave, molti sistemi comuni non lo fanno.

Un’altra situazione in cui è possibile indovinare rapidamente è quando la password viene utilizzata per formare una chiave crittografica. In questi casi, un utente malintenzionato può verificare rapidamente se una password indovinata decodifica correttamente i dati crittografati. Ad esempio, un prodotto commerciale dichiara di testare 103.000 password WPA PSK al secondo.

Se un sistema di password memorizza solo l’hash della password, un utente malintenzionato può pre-calcolare i valori hash per le varianti di password comuni e per tutte password più corte di una certa lunghezza, consentendo un recupero molto rapido della password una volta ottenuto il suo hash. Elenchi molto lunghi di hash delle password precalcolati possono essere archiviati in modo efficiente utilizzando tabelle arcobaleno. Questo metodo di attacco può essere sventato memorizzando un valore casuale, chiamato sale crittografico, insieme all’hash. Il sale viene combinato con la password durante il calcolo dell’hash, quindi un utente malintenzionato che precomputa una tabella arcobaleno dovrebbe memorizzare per ogni password il proprio hash con ogni possibile valore salt. Ciò diventa impossibile se il sale ha un intervallo sufficientemente ampio, ad esempio un numero a 32 bit. Sfortunatamente, molti sistemi di autenticazione di uso comune non utilizzano i sali e le tabelle arcobaleno sono disponibili su Internet per molti di questi sistemi.

Entropia come misura della forza della password Modifica

È usuale in l’industria dei computer per specificare la forza della password in termini di entropia dell’informazione che è misurata in bit ed è un concetto della teoria dell’informazione. Invece del numero di tentativi necessari per trovare la password con certezza, viene fornito il logaritmo in base 2 di quel numero, che è comunemente indicato come il numero di “bit di entropia” in una password, sebbene questa non sia esattamente la stessa quantità come entropia dell’informazione. Una password con un’entropia di 42 bit calcolata in questo modo sarebbe forte quanto una stringa di 42 bit scelta a caso, ad esempio da un lancio di moneta equo. In altre parole, una password con un’entropia di 42 bit richiederebbe 242 (4.398.046.511.104) tentativi per esaurire tutte le possibilità durante una ricerca di forza bruta. Pertanto, aumentando di un bit l’entropia della password, il numero di tentativi richiesti raddoppia, rendendo il compito di un attaccante due volte più difficile. In media, un attaccante dovrà provare la metà del numero possibile di password prima di trovare quella corretta.

Password casuali Modifica

Articolo principale: generatore di password casuali

Le password casuali consistono in una stringa di simboli di lunghezza specificata presi da un insieme di simboli usando una selezione casuale processo in cui ogni simbolo ha la stessa probabilità di essere selezionato. I simboli possono essere singoli caratteri da un set di caratteri (ad esempio, il set di caratteri ASCII), sillabe progettate per formare password pronunciabili o anche parole da un elenco di parole (formando così una passphrase ).

La forza delle password casuali dipende dall’entropia effettiva del generatore di numeri sottostante; tuttavia, queste spesso non sono veramente casuali, ma pseudocasuali.Molti generatori di password disponibili pubblicamente utilizzano generatori di numeri casuali trovati nelle librerie di programmazione che offrono un’entropia limitata. Tuttavia, la maggior parte dei sistemi operativi moderni offre generatori di numeri casuali crittograficamente potenti adatti per la generazione di password. È anche possibile utilizzare normali dadi per generare password casuali. Vedi metodi più forti. I programmi di password casuali spesso hanno la capacità di garantire che la password risultante sia conforme a una politica di password locale; ad esempio, producendo sempre una combinazione di lettere, numeri e caratteri speciali.

Per le password generate da un processo che seleziona casualmente una stringa di simboli di lunghezza, L, da un insieme di N possibili simboli, il numero di possibili password può essere trovato aumentando il numero di simboli alla potenza L, cioè NL. L’aumento di L o N rafforzerà la password generata. La forza di una password casuale misurata dall’entropia delle informazioni è solo il logaritmo in base 2 o log2 del numero di password possibili, assumendo che ogni simbolo nella password sia prodotto indipendentemente. Pertanto l’entropia delle informazioni di una password casuale, H, è data dalla formula:

H = log 2 ⁡ NL = L log 2 ⁡ N = L log ⁡ N log ⁡ 2 {\ displaystyle H = \ log _ {2} N ^ {L} = L \ log _ {2} N = L {\ log N \ over \ log 2}}

dove N è il numero di simboli possibili e L è il numero di simboli nella password. H è misurato in bit. Nell’ultima espressione, log può essere in qualsiasi base.

Entropia per simbolo per diversi set di simboli
Set di simboli Simbolo contare N Entropia per simbolo H
Numeri arabi (0-9) (ad es. PIN) 10 3.322 bit
numeri esadecimali (0–9, A – F) (ad es. chiavi WEP) 16 4.000 bit
Alfabeto latino senza distinzione tra maiuscole e minuscole (a – z o A – Z) 26 4.700 bit
Alfanumerico senza distinzione tra maiuscole e minuscole (a – z o A – Z, 0–9) 36 5.170 bit
Alfabeto latino con distinzione tra maiuscole e minuscole (a – z, A – Z) 52 5.700 bit
Maiuscolo alfanumerico sensibile (a – z, A – Z, 0–9) 62 5.954 bit
Tutti i caratteri ASCII stampabili eccetto lo spazio 94 6.555 bit
Tutti i caratteri del supplemento Latin-1 94 6.555 bit
Tutti i caratteri ASCII stampabili 95 6.570 bit
Tutti i caratteri ASCII estesi stampabili 218 7,768 bit
Binario (0–255 o 8 bit o 1 byte) 256 8.000 bit
Elenco parole Diceware 7776 12,925 bit per parola

Un byte binario viene solitamente espresso utilizzando due esadecimali caratteri.

Per trovare la lunghezza, L, necessaria per ottenere l’intensità H desiderata, con una password estratta a caso da un insieme di N simboli, si calcola:

L = H log 2 ⁡ N {\ displaystyle L = {H \ over \ log _ {2} N}}

arrotondato fino al numero intero successivo più grande.

La tabella seguente utilizza questa formula per mostrare le lunghezze richieste delle password generate in modo casuale per ottenere le entropie delle password desiderate per i set di simboli comuni:

Lunghezze L di password veramente generate casualmente richieste per ottenere l’entropia della password desiderata H per i set di simboli contenenti N simboli
Password desiderata
entropia H
Numeri
arabi
Esadecimale Maiuscolo insensitive distingue tra maiuscole e minuscole Tutto ASCII Tutto esteso
ASCII
Diceware
elenco di parole
alfabeto
latino
alfabeto

alfabeto
latino
alfabetico
numerico
caratteri stampabili
8 bit (1 byte) 3 2 2 2 2 2 2 2 1 parola
32 bit (4 byte) 10 8 7 7 6 6 5 5 3 parole
40 bit (5 byte ) 13 10 9 8 8 7 7 6 4 parole
64 bit (8 byte) 20 16 14 13 12 11 10 9 5 parole
80 bit (10 byte) 25 20 18 16 15 14 13 11 7 parole
96 bit (12 byte) 29 24 21 19 17 17 15 13 8 parole
128 bit (16 byte) 39 32 28 25 23 22 20 17 10 parole
160 bit (20 byte) 49 40 35 31 29 27 25 21 13 parole
192 bit (24 byte) 58 48 41 38 34 33 30 25 15 parole
224 bit (28 byte) 68 56 48 44 40 38 35 29 18 parole
256 bit (32 byte) 78 64 55 50 45 43 39 33 20 parole

Password generate dall’uomo Modifica

Le persone sono notoriamente scarse nel raggiungimento entropia sufficiente per produrre password soddisfacenti. Secondo uno studio che ha coinvolto mezzo milione di utenti, l’entropia media delle password è stata stimata a 40,54 bit. Alcuni maghi di scena sfruttano questa incapacità di divertirsi, in modo minore, indovinando presunte scelte casuali (di numeri, diciamo) fatte dai membri del pubblico.

Quindi, in un’analisi di oltre 3 milioni di password di otto caratteri , la lettera “e” è stata utilizzata più di 1,5 milioni di volte, mentre la lettera “f” è stata utilizzata solo 250.000 volte. Una distribuzione uniforme avrebbe avuto ogni carattere utilizzato circa 900.000 volte. Il numero più comune utilizzato è “1”, mentre le lettere più comuni sono a, e, o e r.

Gli utenti raramente fanno pieno uso di set di caratteri più grandi per formare le password. Ad esempio, i risultati di hacking ottenuti da uno schema di phishing di MySpace nel 2006 hanno rivelato 34.000 password, di cui solo l’8,3% utilizzava maiuscole, numeri e simboli misti.

La piena forza associata all’uso dell’intero set di caratteri ASCII ( numeri, lettere maiuscole e minuscole e caratteri speciali) si ottiene solo se ogni possibile password è ugualmente probabile. Questo sembra suggerire che tutte le password devono contenere caratteri di ciascuna delle diverse classi di caratteri, forse lettere maiuscole e minuscole, numeri e caratteri non alfanumerici. In effetti, tale requisito è un modello nella scelta della password e ci si può aspettare che riduca il “fattore di lavoro” di un aggressore (nei termini di Claude Shannon). Questa è una riduzione della “forza” della password. Un requisito migliore sarebbe quello di richiedere che una password NON contenga alcuna parola in un dizionario online, o un elenco di nomi, o qualsiasi modello di targa da qualsiasi stato (negli Stati Uniti) o paese (come nell’UE). Se sono necessarie scelte basate su modelli, è probabile che gli esseri umani le utilizzino in modi prevedibili, come l’inizializzazione di una lettera, l’aggiunta di uno o due numeri e un carattere speciale. Questa prevedibilità significa che l’aumento della sicurezza della password è minore rispetto alle password casuali.

Pubblicazione speciale NIST 800-63-2Edit

La pubblicazione speciale NIST 800-63 del giugno 2004 (revisione 2) ha suggerito uno schema per approssimare l’entropia delle password generate dall’uomo:

Usando questo schema, si stima che una password di otto caratteri selezionata dall’uomo senza caratteri maiuscoli e caratteri non alfabetici OR con uno dei due set di caratteri abbia 18 bit di entropia. La pubblicazione del NIST ammette che al momento dello sviluppo erano disponibili poche informazioni sulla selezione delle password nel mondo reale. Ricerche successive sull’entropia delle password selezionate dall’uomo utilizzando dati del mondo reale appena disponibili hanno dimostrato che lo schema NIST non fornisce una metrica valida per la stima dell’entropia delle password selezionate dall’uomo. La revisione di giugno 2017 di SP 800-63 (Revisione 3) elimina questo approccio.

Considerazioni sull’usabilità e sull’implementazione Modifica

Poiché le implementazioni della tastiera nazionale variano, non tutti i 94 caratteri ASCII stampabili possono essere utilizzati ovunque. Ciò può rappresentare un problema per un viaggiatore internazionale che desiderava accedere al sistema remoto utilizzando una tastiera su un computer locale. Vedi layout della tastiera. Molti dispositivi portatili, come i tablet e gli smartphone, richiedono sequenze di turni complesse o lo scambio di app della tastiera per inserire caratteri speciali.

I programmi di autenticazione variano in base ai caratteri consentiti nelle password. Alcuni non riconoscono le differenze tra maiuscole e minuscole (ad esempio, la “E” maiuscola è considerata equivalente alla “e” minuscola), altri proibiscono alcuni degli altri simboli. Negli ultimi decenni, i sistemi hanno consentito più caratteri nelle password, ma esistono ancora limitazioni. I sistemi variano anche nella lunghezza massima delle password consentite.

In pratica, le password devono essere sia ragionevoli e funzionali per l’utente finale, sia abbastanza forti per lo scopo previsto. Le password troppo difficili da ricordare possono essere dimenticate e quindi è più probabile che vengano scritte su carta, cosa che alcuni considerano un rischio per la sicurezza. Al contrario, altri sostengono che costringere gli utenti a ricordare le password senza assistenza può contenere solo password deboli e quindi rappresenta un rischio maggiore per la sicurezza. Secondo Bruce Schneier, la maggior parte delle persone è brava a proteggere i propri portafogli o borsette, che è un “ottimo posto” per memorizzare una password scritta.

Leave a Reply

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *