Cuestión de importancia de FIPS en implementaciones de seguridad

15

Soy de lejos, no soy un experto en seguridad, pero tengo experiencia en el tema trabajando en Java (JCA, JCE y JSSE).
De todos modos, recientemente hubo una discusión sobre el cumplimiento de FIPS.
Miré esto y las bibliotecas de SUN no son compatibles con FIPS per se.
Además, Bouncy Castle, que uso ampliamente, y que yo sepa se considera como la mejor biblioteca de seguridad, tampoco cumple con FIPS. Entonces, mi pregunta es, ¿qué tan importante es proporcionar una implementación que sea estrictamente compatible con FIPS? Como un ejemplo simple, al crear un sitio seguro , ¿se debe indicar explícitamente si cumple con FIPS o no?
Cualquier aportación sobre esto es muy bienvenida.

Gracias.

    
pregunta Jim 26.05.2011 - 21:59
fuente

4 respuestas

14

Para una biblioteca de software, estoy de acuerdo con @Lizbeth: FIPS 140-2 Nivel 1 es para bibliotecas de software como Bouncy Castle, Sun Java y NSS (biblioteca de Java con certificación FIPS). La diferencia es que una biblioteca de software compatible con FIPS se ha probado de forma independiente para cumplir con un conjunto de requisitos de seguridad. Algunas industrias tienen leyes que requieren un cierto nivel de diligencia de seguridad y FIPS es una de las formas de exigir eso.

Cuando obtiene bibliotecas de software anteriores, FIPS puede importar mucho más porque se trata de un nivel de calidad para funciones de alto nivel que se vuelven cada vez más caras y protectoras:

  • Nivel 1 - requisitos básicos - puede implementarse en software o hardware
  • Nivel 2: revestimientos a prueba de falsificaciones y autenticación basada en roles: esto significa que el hardware PUEDE ser manipulado, pero será obvio. No se puede hacer en SW.
  • Nivel 3: impide el acceso a parámetros de seguridad críticos y proporciona autenticación basada en ID.
  • Nivel 4: se reduce a cero cuando se manipula

Hay productos en todos los niveles; por lo general, no necesitarás el nivel 2 o superior si estás hablando de una aplicación web de riesgo bastante bajo. Pero para aplicaciones de alto riesgo, donde el compromiso del material clave sería un gran negocio, los niveles crecientes de FIPS 140-2 se convierten en la norma. No he estado cerca del mundo de productos de módulos de seguridad de hardware por un tiempo, pero solía ser casi un requisito para ingresar al mercado de alta seguridad: gubernamental o financiero. Si estás cobrando más de $ 10,000 por tu dispositivo, quieres probar que hará lo que dices que hace.

    
respondido por el bethlakshmi 26.05.2011 - 23:40
fuente
17

La razón más común por la que necesita cumplir con FIPS es que la ley requiera que su compañía o por otras razones de cumplimiento. La conformidad con FIPS significa que su encriptación ha sido validada por un organismo autorizado y no hay fallas inherentes. Tampoco hay fallas descubiertas en muchas otras bibliotecas de encriptación como bouncycastle.

El razonamiento detrás de FIPS vs no FIPS es que FIPS se basa en el hecho de que nadie ha encontrado un problema, pero en realidad no dice si alguien ha mirado antes. FIPS está probado en base a pruebas activas y estándares de seguridad.

Al final, no mejora su postura general de seguridad, pero hará que la administración se sienta mejor si se trata de FIPS.

    
respondido por el Lizbeth 26.05.2011 - 22:57
fuente
9

El cumplimiento de FIPS (o los equivalentes europeos, como los niveles de EAL) es un requisito en algunos mercados o para lograr algunas propiedades legales; por ejemplo, en Francia, las marcas de tiempo se consideran pruebas legales (la carga de la prueba recae en la parte que reclama que la marca de tiempo no es vinculante) solo si la autoridad de sello de tiempo pasó por un proceso de certificación, en el que se requiere que se utiliza un HSM (Módulo de seguridad de hardware) "certificado" para almacenar y usar la clave privada de la autoridad. Si eso ocurriera en los Estados Unidos en lugar de en Francia, el "HSM certificado" sería "un HSM que cumple con el nivel 4 de FIPS-140".

En las áreas de propiedad privada (por ejemplo, los bancos) los requisitos para las certificaciones y / o los niveles de FIPS 140 provienen de las compañías de seguros: los bancos pueden obtener cobertura a tasas insanas pero factibles porque pueden probar que usan reglas de seguridad estrictas y FIPS 140 niveles son tales reglas. VISA y MasterCard son especialmente estrictas con respecto a la seguridad (se trata de dinero, por lo que es importante ).

En términos más prácticos, los niveles de FIPS 140 se obtienen demostrando que se logran algunas características de seguridad (consulte la respuesta de @bethlakshmi), que involucra tanto al hardware como al software. Dado que, en general, la corrección del software no se puede probar, el proceso de certificación implica que el sistema se desarrolló con toda la artesanía debida (prueba de unidad, revisiones de código, control de versiones de código fuente autenticado, e incluso verificaciones de antecedentes de los propios desarrolladores). Esto implica tiempo, dinero (piense más de 100 mil dólares) y una gran cantidad de papel. Por lo tanto, el significado real y práctico de conformidad con FIPS 140 es que alguien invirtió mucho tiempo y dinero en la idea de que el sistema no es absolutamente inseguro. Esto no significa que el sistema sea seguro, sino que al menos hubo un esfuerzo sustancial e inversión para lograr ese objetivo.

La mayoría de los proyectos de código abierto utilizan un modelo de bazar que es eficiente para producir un buen código rápido, pero es totalmente incompatible con una certificación proceso. Además, la mayoría de los proyectos de código abierto tienen poca o ninguna financiación. Esto explica por qué Bouncy Castle no es compatible con FIPS, e incluso grandes empresas como Sun (ahora Oracle) han preferido no ejecutar ese proceso. Una vez más, no ser compatible con FIPS no significa "inseguro" o incluso que el sistema no podría ser declarado como compatible con FIPS, solo que a nadie le pareció que valiera la pena el esfuerzo de pasar por los costosos aros administrativos de los FIPS formales. cumplimiento.

    
respondido por el Thomas Pornin 27.05.2011 - 16:09
fuente
8

Para agregar a las excelentes respuestas anteriores de los carteles anteriores, voy a dar un ejemplo.

OpenSSL existe en tanto una versión certificada de FIPS como una versión regular que no es (bueno El subsistema está validado por FIPS).

Cuando se encuentra una vulnerabilidad en OpenSSL en un área que también afecta al módulo validado por FIPS, la solución generalmente se inserta muy rápidamente en la distribución regular de OpenSSL, mientras que los usuarios de la versión de FIPS quedan vulnerables hasta que se certifique una versión actualizada. .

Este es un caso de cumplimiento de FIPS (y la cantidad de papel que implica su publicación) va activamente en contra de la seguridad.

    
respondido por el Bruno Rohée 28.05.2011 - 19:45
fuente

Lea otras preguntas en las etiquetas