MD5 è adatto per il single sign on?

1

Stiamo utilizzando un'applicazione che offre un unico segno ai loro sistemi che viene quindi incorporato come iframe (ovvero l'URL è visibile nell'origine della pagina)

La sicurezza SSO deriva dall'utilizzo di MD5 per l'hash di un numero di componenti insieme e l'hash risultante viene quindi utilizzato nell'URL.

Ad esempio, c'è una chiave del server che viene mescolata con l'indirizzo e-mail dell'utente e la data corrente, supponendo che la chiave del server sia ABCDEF, la data è 20161007125600 e l'e-mail è [email protected]

Quando questo viene sottoposto a hash, crea un hash di 973897b9cdc4381ae4202a162d28052d e l'URL per l'iframe è qualcosa del tipo:

https://server.com?hash=973897b9cdc4381ae4202a162d28052d

Supponendo che posso decrittografare l'hash alla fine con:

[email protected]

Poiché tutte le stringhe usano lo stesso identico layout, posso facilmente dividerlo nell'indirizzo e-mail, nella data e nella chiave. Così facendo ora posso creare un hash di [email protected] e passare l'MD5 di questo nell'URL e accedere come [email protected]

Questo è "sicuro"? Sto analizzando questo? Si tratta di una società piuttosto ampia e consolidata, quindi suppongo che abbiano testato questo argomento in modo estensivo, ma sono così contrario a MD5 che mi ha dato i sensi e vorrei scoprire se è qualcosa di cui preoccuparsi.

    
posta bhttoan 07.10.2016 - 13:59
fonte

2 risposte

2

Non stai assolutamente sovra-analizzando. Quello che stanno facendo non è sicuro. Il motivo non ha solo a che fare con il fatto che stanno usando MD5. È piuttosto che i cosiddetti "hash keyed" (che è fondamentalmente quello che descrivi) non sono considerati sicuri. Il metodo alternativo è HMAC. Vedi la descrizione su wikipedia . Il difetto a cui mi riferisco sopra è descritto nel paragrafo "principi di progettazione".

    
risposta data 07.10.2016 - 14:04
fonte
1

Funzione di derivazione della chiave

Consiglierei di rimuovere il campo della posta elettronica e utilizzare una funzione di derivazione della chiave PBKDF2 per generare il tuo hash con qualche migliaio di giri con un algoritmo di hash sicuro come SHA-256 o SHA-512.

Vettore di inizializzazione casuale

Usa un IV casuale (16 byte o più) generato da un generatore di numeri casuali sicuro di crittografia (come / dev / urandom) e invia l'IV insieme agli altri dati.

Funzione di hashing sicura

MD5 è lungo 32 caratteri, lungo 16 byte. SHA2-256 è lungo 64 caratteri, 32 byte, SHA-512 è lungo 128 caratteri, 64 byte. Quindi un'altra ragione per passare a SHA-256 o SHA-512 è che l'hash stesso è più difficile da forzare.

    
risposta data 07.10.2016 - 14:23
fonte

Leggi altre domande sui tag