È possibile che la mia password abbia più di una combinazione di password?

28

La mia password può avere più di una combinazione di password?

Ho letto le combinazioni fisiche (il lucchetto che apri con i numeri) e ho appreso che un lucchetto a combinazione può avere più di una combinazione possibile.

Avevo anche il mio primo telefono, un normale telefono Nokia (non uno smartphone) protetto da password e ho potuto aprire il dispositivo con una password che non era esattamente la password esatta per il telefono. Ad esempio, se la password è stata impostata su 4545 e ho digitato 1111 il telefono è ancora sbloccato. O se la password del telefono è stata impostata su 4114 e ho digitato, diciamo, 2141, il telefono è ancora sbloccato.

La domanda è: se la mia password per il mio PC portatile era !78ghA,NJ58*#3&* , è possibile che una prossima combinazione funzioni dietro la mia schiena o funzionerà solo se esiste una vulnerabilità?

    
posta Henry WH Hack v2.1.2 12.01.2016 - 12:59
fonte

2 risposte

44

Nella maggior parte dei sistemi protetti da password di solito è possibile, ma molto improbabile.

Dietro molti meccanismi di convalida della password è l'uso delle funzioni di hash salate. Per semplicità, dimentichiamo di salare per un momento.

Quando un utente imposta la sua password, hash(password) viene memorizzata nel database Quando l'utente effettua il login presentando password' , hash(password') viene confrontato con hash(password) . Se corrisponde, l'utente può accedere.

Ricordiamo, tuttavia, che le funzioni di hash ottengono dati di lunghezza illimitata e la trasformano in dati di dimensioni limitate, es. 128 bit. Pertanto, non è difficile capire che ci può essere più di un messaggio che produce lo stesso hash da una determinata funzione. Questo si chiama collisione ed è ciò di cui ti preoccupi.

La cosa è che le funzioni di hash sono così casuali che non dovresti trovare o produrre facilmente una collisione. È teoricamente "possibile", ma praticamente "impossibile", se si utilizza una buona funzione di hash moderna.

    
risposta data 12.01.2016 - 14:19
fonte
10

In primo luogo, con la teoria matematica - sì (anche se in pratica puoi ignorare completamente questo per le funzioni e i numeri di hash moderni ottenibili con il calcolo in questo universo). Se il sistema non memorizza la password in testo normale o tramite crittografia reversibile, ma invece la blocca (come è buona pratica) ci sono un'infinità di potenziali password che generano un hash che corrisponde al tuo hash (assumendo un hash crittografico ideale funzione).

Ad esempio, se la tua password era password = '!78ghA,NJ58*#3&*' e hanno usato un hash sha256 salato (nota che questo dovrebbe essere rafforzato in chiave con molti round per rendere brute-force più difficile) con un sale a 3 byte: d7 35 e6 quindi il tuo hash della password sarebbe 4fe5bbb74a21fb6d20785ce7fce1cd51d6fc87c5a55f65d75e8f37096ed54a53 (in python puoi calcolarlo con):

>>> import hashlib
>>> salt = '\xd7\x35\xe6'
>>> password = '!78ghA,NJ58*#3&*'
>>> hashlib.sha256(salt + password).hexdigest()
'4fe5bbb74a21fb6d20785ce7fce1cd51d6fc87c5a55f65d75e8f37096ed54a53'

Nota che questo hash è 256 bit. Quindi ci sono solo 2 256 ~ 10 77 possibili hash. Se le funzioni di hash funzionano bene e seleziona gli hash in modo uniforme per tutti i possibili input (la funzione hash funge da oracle casuale ) , dopo aver provato significativamente più di 10 77 hash, alcuni hash si scontreranno (provati dal principio di piccionaia ). Se hai provato 10 80 hash, dovresti trovare circa 1000 password che corrispondono a un determinato hash.

Tuttavia, 10 77 è un numero estremamente grande; è approssimativamente il numero di atomi nell'universo osservabile. O se ogni atomo nel sistema solare (~ 10 57 ) calcolasse ciascuno un hash ogni nanosecondo ci vorrebbero circa 3000 anni prima di calcolare 10 hash 77 , quindi questo non è qualcosa di cui ti devi preoccupare in pratica.

(Se hai provato 5 miliardi di hash al secondo per 100 anni e avevi una password molto strong, la possibilità di trovare casualmente una password diversa che corrisponda al tuo hash a 256 bit è 1 in 7.4 x 10 57 ; questo è come la probabilità di acquistare 7 biglietti powerball nelle settimane successive e vincere il jackpot le prime 6 volte e poi giocare una settima volta e abbinare 5 numeri (senza powerball) per vincere solo $ 1 milione.)

Certo, questo non significa in pratica che la tua password sia unica. Ho eseguito personalmente un sistema VPN Cisco distribuito in natura che tronca una password casuale di 12 caratteri in 8 caratteri senza avvisare l'utente (ho scoperto inizialmente quando ho digitato troppo velocemente e lasciato un personaggio e ha funzionato ancora, e poi ha fatto tentativi ed errori). Quindi, finché i primi 8 caratteri sono corretti, puoi digitare quello che vuoi dopo e funzionerà.

Questo non è un caso isolato; Ad esempio, Microsoft ha usato per silenziosamente troncare le password di Windows Live ID a 16 caratteri anche se ora informa l'utente che limita le password a 16 caratteri:

Windows Live ID passwords were always limited to 16 characters—any additional password characters were ignored by the sign-in process. When we changed "Windows Live ID" to "Microsoft account," we also updated the sign-in page to let you know that only the first 16 characters of your password are necessary.”

È anche possibile che un sistema di autenticazione mal progettato eliminerà i caratteri speciali dal centro della tua password. Il mio amico ha scoperto che T-Mobile ha fatto questo nel 2011 quando ha usato i suoi funzione "password dimenticata" mal progettata che gli ha inviato la sua password in testo semplice che nel suo caso ha rimosso i caratteri speciali dalla sua password.

    
risposta data 12.01.2016 - 19:10
fonte

Leggi altre domande sui tag