2011-02-03 9 views
17

Ogni volta che cerco di utilizzare MD5 su un computer Windows XP con FIPS abilitato, sto ricevendo un System.InvalidOperationException.Esiste un algoritmo di hashing alternativo a MD5 per i sistemi abilitati per FIPS?

C'è un algoritmo alternativo che dovrei usare al posto di MD5 su FIPS?

+0

RAPIDA NOTA: Se FIPS Policy algoritmo è abilitato su Windows Server, il la i provider di crittografia predefiniti situati nella libreria System.Cryptography si SPEGNERANNO. Tienilo a mente quando scegli le soluzioni perché i provider di System.Cryptography NON SARANNO PIÙ DISPONIBILI. TROPPO STATO POLICY: HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Lsa \ fipsalgorithmpolicy –

risposta

13

MD5 non è conforme a FIPS. È possibile utilizzare al posto del MD5 uno dei seguenti algoritmi di hashing:

+2

HMACSHA1 e MACTripleDES sono entrambi con chiave e servono a scopi diversi per gli hash semplici. Non sono davvero sostituti diretti per MD5. – LukeH

+0

Hai ragione, ma l'utilizzo di una chiave costante può essere sufficiente per essere una sostituzione valida. SHA1CryptoServiceProvider, probabilmente è il più appropriato in questo caso. Tutti gli HMACSHAxxx hanno bisogno di una chiave :( – Borja

+0

Going with SHA1CryptoServiceProvider – qazwsx

12

Quando si applica la conformità FIPS nelle impostazioni dei criteri di protezione di Windows, si asserisce che si utilizzerà solo algoritmi di crittografia e hashing con certificazione FIPS. MD5 è non uno di questi algoritmi di hashing approvati, ed è per questo che viene lanciata l'eccezione.

La soluzione è semplice: scegliere un algoritmo di hashing diverso. .NET Framework offre molte altre opzioni nel numero System.Security.Cryptography namespace. Seleziona una delle famiglie di algoritmi SHA. Non riesco a immaginare alcun motivo per cui dovresti usare MD5 rispetto a una delle alternative.

+1

Sono tutti conformi a FIPS o quale è un'alternativa migliore a MD5 compatibile con FIPS? – qazwsx

+2

@qazwsx: qualsiasi famiglia SHA è conforme a FIPS. Sono ordinati in ordine alfabetico sulla pagina, quindi vedrai l'intero gruppo verso il basso. Non conosco alcun motivo valido per non utilizzare SHA512. –

+3

@CodyGray "Non riesco a immaginare alcun motivo per cui dovresti usare MD5 rispetto a una delle alternative." Quando si interagisce con un sistema di terze parti che desidera qualcosa di hash MD5. –

Problemi correlati