¿Un sistema SW construido con Microsoft CNG puede ser compatible con FIPS 140-2 Nivel 2?

5

Tenemos que diseñar y construir un sistema que firme archivos con datos sensibles, como evidencias / pruebas. El proceso de firma es simple, básicamente calcule MD5 del contenido del archivo y cifre el resultado de MD5 con 3DES. El problema principal es el almacenamiento y la gestión de claves.

La agencia gubernamental proporcionará las claves mediante una tarjeta inteligente (Cryptoflex) o enviando un archivo cifrado con nuestro certificado.

La pregunta es, ¿se puede construir un sistema de este tipo utilizando exclusivamente módulos de software, no HSM o similar, siendo este sistema compatible con FIPS 140-2 Nivel 2?

La idea es cargar las claves en Windows CNG utilizando el software KSP de Windows (Windows Server 2008 R2) y luego, solicitar que CNG realice las operaciones criptográficas sobre los datos que deben firmarse.

Alternativamente, el sistema podría ser CC-1 de bajo nivel o compatible con EAL 5.

Microsoft CNG es FIPS 140-2 Nivel 1 y parece que hay planes para cumplir con el Nivel 2. También se indica que se puede utilizar para construir un sistema que cumpla con el nivel 2. Nuestra pregunta es sobre evitar HSM o cualquier solución HW para almacenar las claves y / o realizar operaciones criptográficas. La carga de claves con un lector de tarjetas inteligentes está bien porque es un dispositivo barato (< 100 $?).

Se puede usar cualquier otra biblioteca de software, junto con Microsoft CNG o un reemplazo completo como algunas implementaciones de PKCS # 11. La biblioteca debe ser .Net, preferiblemente .Net 4. La última y última / difícil pregunta es si estamos pensando en ejecutar este software en Microsoft IIS como una aplicación web (solo en la intranet), interactuar con la base de datos local y el sistema de archivos local. Esto es un problema. ¿Debería diseñarse como una aplicación de Windows independiente?

Cualquier consejo es apreciado.

    
pregunta David Oliván Ubieto 19.06.2012 - 08:54
fuente

2 respuestas

5

Bien, estas son muchas preguntas para una respuesta, y creo que probablemente solo pueda acertar a dos de ellas ... pero aquí va:

FIPS 140-2 Nivel 2

Los requisitos de FIPS 140-2 se centran alrededor de cómo se administran, protegen, manipulan y almacenan las claves. Para referencia, estoy leyendo los Requisitos de seguridad del sitio del NIST.

Lo que estoy viendo es que en la transición del Nivel 1 al Nivel 2, el estándar agrega requisitos relacionados con el almacenamiento físico del material clave, lo que es más sorprendente a nivel de manipulación. Los requisitos pasan de trabajar en el Nivel 1, donde el almacenamiento de claves podría ser software, a los requisitos donde no puedo ver de ninguna manera que pueda guardar las claves en la memoria de una PC o computadora portátil estándar; debe tener una ubicación física protegida para el material clave.

Eso no quiere decir que la ubicación física protegida deba ser un HSM de $ 10,000, si estoy leyendo el Módulos criptográficos validados bien, hay algunos casos en los que los proveedores de lo que parecen ser productos basados en SmartCard están validados hasta el Nivel 3. Ciertamente, algunos productos de SmartCard proporcionan evidencia de manipulación indebida .

Según mi experiencia, cuando opera su almacén de claves en el software, realmente no puede llamar al sistema global una solución FIPS 140-2 de nivel 2, porque no puede hacer esa manipulación. A prueba de pruebas lo suficientemente fuerte. Pero puede obtener módulos de software que pueden "operar en un modo FIPS 140-2 Nivel 2", lo que significa que interactuarán con un dispositivo que puede proporcionar evidencia de manipulación a este nivel y el módulo lo hará en una forma compatible con los estándares que no mueve la llave a ningún lugar al que no debería ir.

Para intentar concretar la pregunta: si puede encontrar un producto de tarjeta inteligente que cumpla con FIPS 140-2 nivel 2 (y creo que puede), puede hacer que una solución de costo más bajo que HSM funcione, pero tiene para darse cuenta de que la tarjeta inteligente tendrá que estar presente cada vez que desee que su solución realice operaciones de cifrado, ya que quitar las llaves de la tarjeta destruirá el propósito de evitar la manipulación indebida. Por lo tanto, no estoy seguro de que vaya a "Cargar claves usando un lector de tarjetas inteligentes", lo que para mí implica intentar quitar las claves protegidas de la tarjeta.

Estándares alternativos: CC-1 y EAL 5

Estoy un poco confundido aquí ya que estos no son exactamente lo mismo. EAL 5 es para un nivel de verificación bastante estricto de que un producto cumple con su comportamiento de seguridad definido. Pero no es lo mismo que las protecciones clave proporcionadas por FIPS 140-2. Con frecuencia, he desarrollado sistemas que han tenido que usar ambos , porque ofrecen diferentes tipos de seguridad. Tener un nivel EAL realmente alto lo protegerá de diferentes maneras que tener FIPS de Nivel 2.

Sería muy reacio a recomendar el intercambio de estos: debe diseñar un sistema que se proteja al nivel de los riesgos en el medio ambiente y el valor de la información / operaciones que protege. El intercambio entre estándares no va a hacer eso, lo hará el análisis de seguridad.

Intranet o independiente

Esto realmente tiene que basarse en las necesidades de una aplicación. Dónde lo ubique, cómo controle el acceso, qué propósitos tendrán la Intranet o los usuarios locales, y qué necesita proteger, determinará dónde lo coloque y qué protecciones necesitará para ello.

Ciertamente, cuanto más accesible sea la aplicación, más amplia será el área de ataque. Pero los sistemas en línea también pueden ser más fáciles de actualizar y mantener, y si la disponibilidad en una crisis supera la inaccesibilidad en caso de ataque, en línea puede ser mejor que un cliente independiente.

Me desconfiaría de los consejos sobre este punto que no provienen de una discusión bastante completa de su propósito y producto.

    
respondido por el bethlakshmi 23.11.2012 - 21:10
fuente
2

Los servicios de seguridad de Netscape tienen un software FIPS-140 nivel 2 certificado, pero no en Windows: enlace

Existen envolturas de .Net para PKCS # 11: enlace

Pero (i) no espere usar MD5 en módulos compatibles con FIPS (ii) lea la diferencia entre HMAC y "hash and encrypt" y repiense su esquema de "firma".

    
respondido por el armb 31.01.2013 - 10:55
fuente

Lea otras preguntas en las etiquetas