E se sviluppassi il mio algoritmo di hash per creare password complesse da quelle semplici?

1

Mi è venuta in mente questa idea, ma non riesco a capire se va bene o male, forse puoi aiutare. Il mio obiettivo è: voglio creare password estremamente forti per i miei account principali (gmail, skype e così via). Voglio avere password diverse per tutti i miei account che sono più lunghi di 20 caratteri e che contiene caratteri maiuscoli + minuscoli, numeri e caratteri speciali. Cosa faresti per riuscirci?

È abbastanza impossibile ricordare anche una sola password così mi è venuta in mente questa idea: cosa succede se sviluppo un algoritmo di hashing (semplice e segreto) che trasforma password facili (anche 3 o 4 caratteri) in potenti?

In questo scenario dovrei solo ricordare "cane" per il mio Gmail, "nero" per Yahoo e così via. Quando devi effettuare il login, devi solo elaborare la tua password facile nel tuo script fatto a mano che la converte, piuttosto che copia-incolla.

Penso che questo metodo sia eccellente per alcune ragioni:

se il tuo hashing algo è irreversibile e segreto, non c'è modo di capire le "password facili" avendo (anche molte) delle password complesse (comunque devi essere davvero sfortunato se qualcuno è riuscito a hackerare tutti i tuoi account principali su gmail, forum, messaggistica istantanea e così via)

Devo solo ricordare parole estremamente semplici per tutti i miei account mentre le mie "password finali" saranno a prova di bomba per molti anni

se ben fatto, un algo hashing facile può essere solo ricordato e utilizzato su carta invece di creare una sceneggiatura (che potrebbe essere eventualmente rubata). l'algoritmo può essere facile perché non hai bisogno di un effetto valanga estremamente buono (non farai decine di migliaia di password, forse solo 100 o 200 in pochi anni?

Anche se un cracker è riuscito a capire le formule nell'algoritmo di hashing, non ci sono tabelle arcobaleno pubbliche per il tuo algoritmo e dubito strongmente che il tuo account Gmail sia così prezioso che chiunque potrebbe iniziare a crearne uno. Questo metodo è pensato solo per le password di tutti i giorni, non per le situazioni ad alto rischio in cui è coinvolto NSA, ed è buono perché l'algoritmo è correlato solo alle tue password, perché non è pubblico. MD5 è utilizzato da migliaia di siti Web, ecco perché le persone hanno iniziato a sprecare tempo / denaro per risolverlo. Il mio algo personale sarà solo mio, quindi nessuno sarà interessato a investire denaro per crackarlo

Qual è la tua opinione?

PS. scusa per il mio pessimo inglese:)

    
posta Ross Genee 08.07.2014 - 09:45
fonte

5 risposte

9

Non eseguire il rollpoint della tua crittografia.

Ti cullerà in un falso senso di sicurezza e potrebbe essere dannoso se lo pubblichi e altre persone inizino ad usarlo. La forza dell'algoritmo di hashing non deriva dall'opacità del suo design; al contrario, beneficia delle migliaia di menti esperte che la guardano.

La tua idea di base non è senza merito, però. Ma se utilizzerai le parole hash come password, potresti anche cercare un algoritmo di hashing controllato che sia noto difficile da invertire.

Even if a cracker managed to understand the formulas in your hashing algorithm, there are no public rainbow tables for your algorithm

A proposito, l'uso corretto di sali sconfigge completamente questo problema per gli algoritmi pubblici!

    
risposta data 08.07.2014 - 09:58
fonte
5

if your hashing algo is irreversible and secret

Questa è sempre una cattiva pratica di progettazione. Non appena questo algoritmo diventa noto all'attaccante (e lo sarà), sei condannato. Quindi tutti i progetti dovrebbero assumere che gli algoritmi siano noti all'attaccante. Le chiavi dovrebbero essere mantenute segrete, non l'algoritmo - le chiavi possono essere facilmente sostituite, ma l'algoritmo non può.

Per favore, per favore non inventare e pubblicare i propri hash "forti" a meno che tu non sia veramente competente nel campo. Altre persone potrebbero finire per usare i tuoi algoritmi pensando che siano "sicuri".

Se vuoi qualcosa di facile da ricordare, scrivi un breve poema. Questo fornisce abbastanza bit per essere sicuro e dovrebbe essere abbastanza facile da ricordare.

    
risposta data 08.07.2014 - 09:49
fonte
5

Non è possibile rendere più strong una password debole senza utilizzare una fonte di entropia aggiuntiva. Hashing non aggiunge alcuna entropia e quindi la password risultante è debole come quella che hai iniziato.

Anche l'utilizzo di un algoritmo di hash "segreto" è una decisione sbagliata dal momento che stai basando la tua sicurezza esclusivamente sul mantenimento segreto dell'algoritmo. Ciò significa che non puoi discuterne con nessuno o dare a qualcun altro l'accesso all'algoritmo. Una volta che si perde, è necessario modificare la configurazione completa poiché tutta la segretezza è nel modo in cui l'algoritmo funziona. Questo è chiamato sicurezza dall'oscurità.

    
risposta data 08.07.2014 - 10:14
fonte
3

Questa non è una buona idea rispetto all'uso di un gestore di password e di password effettive. Se l'algoritmo di "hashing" è in grado di essere fatto nella tua testa, allora semplicemente non è sicuro e SARÀ vulnerabile a attacchi di analisi abbastanza semplici. Se è abbastanza complesso richiedere un'applicazione con più iterazioni, potrebbe o meno essere vulnerabile a semplici attacchi di analisi, ma non è quindi più difficile dell'utilizzo di un gestore di password, che fornirebbe molto, FAR maggiore sicurezza.

La cosa fondamentale da ricordare è che una password derivata non è significativamente più sicura della password da cui è basata. Se la password è iniziata in modo semplice e l'algoritmo di derivazione è stato scoperto, diventa banale creare una tabella arcobaleno contro password semplici e vengono rivelate rapidamente.

A meno che tu non sia un crittografo con centinaia di migliaia di dollari da investire nei test e nella revisione, non creerai un algoritmo che sia più sicuro degli hash esistenti e che tu possa essere anche marginalmente certo che non ha grossi punti deboli.

Ciò detto, se tutto quello che stai proteggendo sono alcuni account personali sui quali non hai bisogno di una particolare sicurezza, le probabilità che qualcuno si preoccupi di capire il tuo sistema (anche se è relativamente facile da fare) sono probabilmente abbastanza Minimo se ti preoccupi solo degli hacker criminali e non sei un target ad alto rischio, quindi in questo senso, SE sei in realtà un obiettivo a basso valore e non lo utilizzi su nessun account di valore, quindi potrebbe fornire una sicurezza leggermente migliore rispetto all'utilizzo di password semplici, ma farebbe molto poco contro un attaccante specifico dopo averlo specificamente.

Utilizzare gli standard stabiliti è semplicemente una pratica migliore, più strong, più sicura poiché sono stati ben progettati e hanno avuto milioni, se non miliardi, di dollari di verifica fatti contro di loro.

    
risposta data 08.07.2014 - 15:42
fonte
0

In realtà l'ho fatto una volta per aggirare una serie davvero ridicola di complessità delle password e restrizioni di carattere. In genere è un'idea cattiva ; tuttavia sarebbe utile se fossero stati violati in parte a causa dei propri requisiti di password danneggiati dal cervello.

    
risposta data 03.12.2014 - 03:17
fonte

Leggi altre domande sui tag