Strategie per memorizzare / ricordare password molto lunga?

2

Se la crittografia a prova futura è - in teoria - possibile richiederà una password lunga.

Quali sono alcune delle strategie per archiviare o ricordare molto a lungo - in questo caso usato raramente - password?

Ad esempio, ad un certo punto, Wikileaks ha condiviso i cavi diplomatici crittografati grezzi con la comunità per impedire lo spegnimento della password in seguito. Se ho ragione, la password era una stringa molto lunga di caratteri casuali. Non memorizzare tale password in modo sicuro è altrettanto difficile quanto archiviare il segreto?

Che ne dici di usare un lungo versetto tratto da una Bibbia, la dichiarazione di indipendenza o un simile testo "statico" che rimarrà invariato in 100 anni? Cosa ne pensi di tale strategia?

    
posta daniel.sedlacek 18.02.2013 - 13:20
fonte

4 risposte

3

Il pregio di una password è di rendere possibile agli umani di ricordarlo . Se vuoi memorizzare la password, allora non stai parlando di ricordare; a quel punto potreste dimenticare questa "lunga frase segreta", che diventa solo una seccatura. Memorizza una chiave casuale che non deve essere così lunga (16 byte saranno sufficienti nella pratica, l'ultra-paranoico andrà a 32 byte, ovvero 256 bit, ovvero ovviamente overkill totale ) .

Inoltre, un lungo verso della Bibbia è una frase di testo molto povera perché ci sono circa 31000 versetti nella Bibbia , rendendo così 31000 possibili passphrase - meno di 15 bit di entropia, che è patetico. Come al solito, non è la lunghezza che conta, ma la casualità; non quale sia la password, ma quale potrebbe essere stato .

    
risposta data 18.02.2013 - 13:35
fonte
3

Saresti sorpreso di quanto entropia possa avere una passphrase relativamente breve.

Supponiamo, per un minuto, che la crittografia simmetrica a 128 bit sia sufficiente per il lasso di tempo a cui sei interessato. Questa è un'ipotesi abbastanza sicura; per avere anche una possibilità su un milione di probabilità di indovinare la chiave corretta in 100 anni (che è il lasso di tempo della tua domanda collegata) richiederebbe un sistema di computer in grado di calcolare approssimativamente 1.079e23 (cioè 108 hexillion ) chiavi possibili per secondi . Anche dato il ritmo esponenziale della tecnologia, è estremamente improbabile che anche i governi abbiano accesso a quel tipo di potenza di calcolo nei prossimi 100 anni. Quindi, un hash di quella lunghezza dovrebbe essere considerato adeguato.

Ora capisci che l'hashing non aumenta l'entropia; se ci sono solo 1 milione di possibilità per una password utilizzata per generare una chiave, allora non importa se la lunghezza della chiave risultante è 32 o 256; tutto ciò che un utente malintenzionato deve fare, conoscendo il milione di possibilità, è semplicemente provare ognuno di questi invece di forzare l'intero spazio delle chiavi. Pertanto, per garantire che la forza della crittografia non possa essere aggirata dall'indovinare una password debole, dovremmo avere una passphrase che fornisce almeno 128 bit di entropia. Supponendo un calcolo di entropia di circa 1,5 bit per lettera quando si usano le parole comuni del dizionario inglese e una media di 6,5 lettere per parola del dizionario (imponendo una dimensione minima di 4 lettere) la passphrase risultante dovrebbe essere lunga solo 13 parole.

Ecco se le parole scelte erano completamente casuali, e quindi conoscendo ogni parola precedente non avresti ancora la minima idea di quale sarebbe la parola successiva. Sarebbe difficile, ma non impossibile, memorizzare 13 parole e trasmetterle ai tuoi discendenti; potresti formare un poema delle parole con un sistema implicito nell'incorporare le parole effettive della passphrase con il riempitivo. Se la tua passphrase fosse di per sé una frase significativa, dovrebbe essere più lunga perché il numero di parole che avrebbe significato dopo una data combinazione sarebbe ridotto, riducendo così l'entropia della frase. Probabilmente potresti cavartela con un paragrafo di un'opera letteraria. Piu oscuro, meglio è; praticamente tutto il lavoro di Shakespeare è fuori, come lo sono tutti i testi sacri come la Bibbia, il Corano, il Mahabharata, ecc. Una dichiarazione completamente originale sarebbe la migliore. Ad ogni modo, se rendi la frase significativa hai bisogno di più parole; probabilmente più vicino a 20 o 25 parole, senza contare le parole con tre lettere o meno.

    
risposta data 18.02.2013 - 19:43
fonte
2

Ricordare una frase chiave generata ad alta entropia nella tua testa è abbastanza facile ( xkcd rilevante , anche se considero sicuro per gli attacchi di crittografia offline 100+ bit di entropia).

La condivisione tra pochi individui fidati aiuta a garantire la ridondanza, in modo che venga conservata nel caso in cui venga investito da un autobus o si sviluppi amnesia. Certo, questo espande il pool di persone che possono perdere la password o essere costrette a perderlo ( xkcd rilevante ). Se si dispone di molte di tali password, è opportuno mantenere un elenco crittografato di queste password (decifrato solo localmente su macchine attendibili). Ha senso avere molte di queste password, dal momento che non si desidera mai riutilizzare le password in particolare su più entità ( rilevanti xkcd ).

Per una crittografia a lungo termine a prova di futuro, suggerisco nuovamente di ricordare una passphrase tra persone fidate, documentando una funzione di derivazione chiave e utilizzando uno standard ben documentato per la crittografia come AES256 che si aspettava che il tipo di legge di Moore aumentasse il potere computazionale niente da attaccare nel periodo di ~ 100 anni.

Indipendentemente, non utilizzare una passphrase oltre a una sorta di funzione di derivazione della chiave fatta in casa per generare un one-time-pad (come la risposta accettata). Il one-time-pad è garantito solo quando il pad usa e getta è veramente casuale e l'output di una funzione di derivazione della chiave fatta in casa NON è casuale. Quando un one-time-pad probabilmente ha pattern identificabili (ad esempio, generato da hashing iterativo con una passphrase suddivisa in alcuni pattern come questa risposta ), questi modelli possono essere sfruttati e potenzialmente abbastanza facilmente. Questo sta creando il tuo cifrario e non dovrebbe essere fatto a meno che tu non sia un cripto-esperto che ha presentato il tuo schema a molti altri cripto-esperti e nessuno ha fatto progressi. È molto meglio usare qualcosa come AES che finora si è dimostrato resistente agli attacchi, piuttosto che creare in fretta il proprio codice.

    
risposta data 18.02.2013 - 21:28
fonte
1

Un modo è quello di costruire la password da una frase semplice, e ricordare sia la frase facile che la password stessa.

Ad esempio, prendi una stringa di password breve. Esegui SHA-256 su di esso per ottenere un hash. Ora, taglia l'hash in due metà e l'hash ogni metà. Metti i due nuovi hash uno accanto all'altro. Taglia questo hash in quarti quattro , hash ciascuno, li stringa insieme. Ripeti alcune volte (devi ricordare quante volte). Metti tutti gli hash uno accanto all'altro e hai una password molto lunga e dall'aspetto casuale. Per generarlo, è necessario conoscere il seme iniziale e l'algoritmo esatto di generazione. Il seme può essere reso facile da ricordare, così come l'algoritmo (il precedente non è troppo difficile da ricordare)

Si noti che questo è solo un esempio, è necessario creare il proprio algoritmo e tenerlo in testa . Nessuno può forzare la tua testa 1 (e quindi è impossibile per loro capire il tuo algoritmo di hashing e probabilmente non sapranno che ne stai usando uno), quindi dovranno solo provare forza bruta direttamente il tuo file criptato. Con una password apparentemente casuale e lunga, è difficile.

1 A meno che non provino a farlo tramite l'ingegneria sociale, il che è effettivamente possibile. La cosa più semplice da fare: non parlare dell'algoritmo a nessuno (o alla stringa seme). Comprendi che sei l'unico che ha bisogno di sapere uno di questi. Inoltre, se si utilizza la password come password per alcuni siti (al contrario di una chiave di crittografia per un file), è necessario assicurarsi di non cadere per phishing o un attacco simile.

    
risposta data 18.02.2013 - 13:38
fonte

Leggi altre domande sui tag