FIPS 140-2 C # Hash de contraseña

1

Es el siguiente algoritmo, que utiliza RNGCryptoServiceProvider & Rfc2898DeriveBytes, ¿suficiente para implementar un hash de contraseña FIPS 140-2 en Windows Server 2008R2?

var provider = new System.Security.Cryptography.RNGCryptoServiceProvider();
byte[] salt = new byte[8];
provider.GetBytes(salt);
var iterations = 100000;
var pbkdf2 = new System.Security.Cryptography.Rfc2898DeriveBytes(password, salt, iterations);
var hash = pbkdf2.GetBytes(32);

enlace Implementación de referencia de la comprobación y comprobación de contraseñas de C #

    
pregunta Brian Watson 21.03.2014 - 22:22
fuente

1 respuesta

2

Los hashes de contraseña, en sí mismos, no son parte de FIPS 140-2.

Para intentar responder de todos modos, eso depende, ¿solo necesita usar FIPS 140-2 algoritmos ? Para el hashing, eso es SHA-1 y la familia SHA-2. Para un generador de números aleatorios, FIPS 140-2 no se aplica, están en publicaciones especiales NIST completamente separadas.

RFC2898DeriveBytes es PBKDF2-HMAC-SHA-1; también hay un ejemplo de C # no validado de PBKDF2-HMAC-SHA-256/384/512 por @JimmiTh en mi colección GitHub , si quieres usarlas también.

Si realmente necesita utilizar soluciones validadas FIPS 140-2 , primero necesita saber qué nivel de validación necesita (nivel 1, 2, 3 o 4), y luego necesita encontrar soluciones que fueron validadas por el NIST en ese nivel.

En ambos casos, necesita profundizar en lo que significa "hashing de contraseñas" en el contexto de FIPS 140-2, ya que el "hashing de contraseñas" no forma parte de FIPS 140-2. Obtenga asesoramiento legal o normativo sobre cómo puede usar exactamente los algoritmos FIPS 140-2 detalles; PBKDF2-HMAC-SHA-xxx probablemente esté permitido, pero asegúrese.

Es posible que la interpretación de su organización de la letra de las regulaciones que los señalan a FIPS 140-2 contradiga las mejores prácticas normales. Una vez que se refiera a los estándares de cualquier gobierno nacional, necesita saber mucho más sobre los requisitos.

    
respondido por el Anti-weakpasswords 22.03.2014 - 03:20
fuente

Lea otras preguntas en las etiquetas