2011-02-03 14 views
17

Cada vez que trato de usar MD5 en una máquina con Windows XP que tiene FIPS habilitado, obtengo un System.InvalidOperationException.¿Hay un algoritmo hash alternativo para MD5 para sistemas habilitados para FIPS?

¿Hay algún algoritmo alternativo que deba usar en lugar de MD5 en FIPS?

+0

rápido Nota: Si FIPS Política algoritmo está habilitado en su Windows Server, el del los proveedores de criptografía predeterminados ubicados dentro de la biblioteca System.Cryptography se APAGARÁN. Tenga esto en cuenta cuando elija soluciones porque los proveedores de System.Cryptography ya no estarán disponibles. DEMASIADO, VER ESTADO DE LA POLÍTICA: HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ Lsa \ fipsalgorithmpolicy –

Respuesta

13

MD5 no cumple con FIPS. Se puede utilizar en lugar de la MD5 uno de los siguientes algoritmos hash:

+2

HMACSHA1 y MACTripleDES están codificados, y tienen un propósito diferente a los hashes simples. En realidad no son reemplazos directos para MD5. – LukeH

+0

Tiene razón, pero usar una tecla constante puede ser suficiente para ser un reemplazo válido. El SHA1CryptoServiceProvider, probablemente sea el más apropiado en este caso. Todos los HMACSHAxxx necesitan una clave :( – Borja

+0

Ir con SHA1CryptoServiceProvider – qazwsx

12

Cuando aplica el cumplimiento de FIPS en la configuración de la política de seguridad de Windows, está afirmando que solo va a utilizar algoritmos de cifrado y hash certificados por FIPS. MD5 es no uno de estos algoritmos de hashing aprobados, y es por eso que se lanza la excepción.

La solución alternativa es simple: elija un algoritmo hash diferente. .NET Framework proporciona muchas otras opciones en el System.Security.Cryptography namespace. Seleccione una de las familias de algoritmos SHA. No puedo imaginar ninguna razón por la que tendrías que usar MD5 en lugar de una de las alternativas.

+1

¿Son todos FIPS compatibles o cuál es una mejor alternativa a MD5 que es compatible con FIPS? – qazwsx

+2

@qazwsx: Cualquiera de la familia SHA cumple con FIPS. Están ordenados alfabéticamente en la página, por lo que verá todo el grupo hacia abajo. No conozco ninguna razón de peso para no usar SHA512. –

+3

@CodyGray "No puedo imaginar ninguna razón por la que tendrías que usar MD5 en lugar de una de las alternativas". Al interactuar con un sistema de terceros que quiere algo MD5 hash. –

Cuestiones relacionadas