2013-05-23 35 views
6

Ehi solo una semplice domanda, come per capire un po 'di più sulle funzioni di hash, so come funzionano e cosa fanno ma quanto sono sicuri?Quanto è sicuro MD5 e SHA1

Apprezzerei una risposta semplice e non collegamenti in quanto non li trovo mai utili.

risposta

22

Con la tecnologia odierna, entrambi possono essere cracked. Ci sono anche hash dictionaries che aiutano a trovare cosa significa hash per le stringhe corte.

Se sono sicuri o meno, molto dipende da cosa si desidera proteggere. Se stai costruendo un sistema bancario online, non sono raccomandati affatto (a seconda di dove nel sistema bancario online vengono utilizzati). Ad esempio, se li implementate solo per l'hashing della password dell'utente online, dipende anche da: il sito web vale la pena crollare, quanti utenti avete, ecc.

Un consiglio generale è quello di studiare prima il livello di sicurezza che voi vuoi raggiungere lo scenario e decidere quali tecnologie (in questo caso l'hashing) usi. Non esiste anche una sicurezza al 100%. Inoltre, non investire troppo tempo in un problema di sicurezza e ignorare altri che potrebbero non essere ovvi o tecnici (errori umani, sicurezza per oscurità, ingegneria umana).

Check this out:

  1. generare l'hash per una piccola parola here. Ad esempio, password ha l'hash MD5: 5f4dcc3b5aa765d61d8327deb882cf99
  2. ora vai here e chiedere indietro per il testo.

L'esempio sopra riportato è solo uno dei molti (metodo di attacco del dizionario) possibile per decifrarli. Inoltre, gli articoli di Wikipedia di ciascun algoritmo di sicurezza forniscono un elenco di vulnerabilità.

VEDERE ANCHE:

LATERALE NOTA

Mai siti web Let generano un hash di una password reale che si ha (in caso di necessità da qualche parte per test o altri motivi). Sempre utilizzare le password di prova o generare hash sul computer locale. Le persone che costruiscono database hash (hacker o meno), forniscono anche strumenti di hash online per catturare gli hash.

+0

Grazie mille utile – user2160949

+0

Se lo trovi utile, votalo! Non (solo) per la mia reputazione, ma per gli altri che hanno la stessa domanda. –

0

Ecco il confronto tra MD5 e SHA1. Puoi avere un'idea chiara di quale è meglio.

enter image description here

+0

Per completezza, c'è già un "attacco riuscito" su SHA-1 in cui Google ha trovato due messaggi diversi che generano lo stesso hash. MD5 è insicuro come può essere. Se puoi, non usare nessuno dei due, ma vai su SHA-512 o altre funzioni hash più sicure. – Ordoshsen

0

Quando si parla di sicurezza hash vs forza bruta non dovremmo prendere un po 'di più in considerazione?

Prima di tutto, i dati offuscati md5 sono memorizzati nell'area attendibile oppure no. In altre parole, crediamo che il nostro amministratore di db non provi a leggere le password degli utenti dal database e la forza bruta li inverta. Questo può essere considerato attendibile o tecnicamente garantito tramite alcune procedure di sicurezza (l'amministratore di DB potrebbe non avere accesso alla tabella che memorizza gli hash delle password, questo può essere accessibile solo per il responsabile della sicurezza).

Un altro è la possibilità di login + password hash pair hijacking dalla transazione client o client-server. Se non ci sono cavalli di Troia nel client e la comunicazione tra client e server è protetta da TLS, la coppia deve essere protetta dagli attacchi man-in-the-middle.

Ciò che rimane per l'utente malintenzionato è (a parte l'ingegneria sociale, xss e l'interruzione di sicurezza dell'hosting) per inviare successivamente il numero di richieste generate al server di accesso e vedere se si è riusciti. Questo può essere gestito anche:

  • dopo che entrambi login successo e insuccesso ci può essere qualche casuale tempo di ritardo prima che il servizio risponde a rallentare processo di forza bruta
  • processo di login possono accodare le richieste d'accesso in parallelo da stesso IP e accessi in parallelo con lo stesso nome di login (di far rispettare la regola di cui sopra)
  • ci può essere implementato limite per gli accessi non riusciti, dopo che è stato superato l'account è bloccato e avviso di sicurezza è stato lanciato

credo che quando sopra le regole sono implementate l'hash MD5 è abbastanza sicuro. In effetti è ugualmente sicuro come password semplice :) Per riassumere se crediamo che il nostro hash md5 sia sicuro possiamo semplicemente lasciare le password scoperte. La svolta è al giorno d'oggi non c'è affatto l'uso di md5 (in materia di password offuscante). Quello che dovresti fare è lasciarlo nella memoria nella zona fidata o usare uno strumento più potente (come SHA) quando non si deve gestire la zona fidata. E a mio parere, la zona di fiducia è ancora a rischio di interruzione della sicurezza del server (servizio di hosting), quindi non importa semplicemente confondere le password con SHA (o meglio) :) Questo non dovrebbe essere costoso per indurire l'hashing della password stessa e porta dei benefici (riduce i rischi) quindi il mio consiglio è di non rivedere mai più questa discussione.

Ancora con SHA hashing devono essere implementate tutte le regole di sicurezza parlate. Soprattutto TLS che impedisce di compromettere la coppia di login + password (non importa che la password sia inviata in chiaro o con hash con md5 o sha possa consentire l'accesso con successo). Anche i tentativi di accesso devono essere monitorati. Anche se riteniamo che il nostro sito sia a prova di forza bruta, è bene sapere che qualcuno sta cercando di infrangere la sicurezza.