¿Cómo puedo elegir una buena API / proveedor de seguridad para implementar AES en un sistema de producción?

1

Sabemos que no debemos rodar nuestro propio criptografía, aparentemente eso incluye escribir nuestras propias implementaciones del lenguaje incluido en las extensiones de criptografía. Así que eso plantea la pregunta, ¿cómo podemos encontrar un proveedor de seguridad adecuado o una API que debamos usar y por qué?

En el caso de Java 8, me he encontrado con Apache Commons, OWASP ESAPI (que el mismo autor de parece recomendar) y Bouncy Castle. Si bien no quiero limitar el alcance de la pregunta a estos tres proveedores, creo que estos podrían ser ejemplos útiles para comparar lo que se debe buscar en una API / proveedor de seguridad, ya que parecen ser algo populares.

¿En qué aspectos debería enfocarse uno cuando se busca una implementación adecuada de una API criptográfica? ¿Dónde se puede encontrar más información sobre el tema? ¿Y cómo se pueden evitar las API de cifrado que funcionan mal o que no funcionan correctamente?

    
pregunta Daniel V 12.06.2017 - 18:03
fuente

1 respuesta

1

Comenzando

Primero, antes de sumergirse en el mundo de las bibliotecas criptográficas, debe comprender las capacidades de su equipo de desarrollo. ¿Tiene desarrolladores o tiene usuarios avanzados con conocimientos de desarrollo de sudo?

Esto es importante porque probablemente determina la capacidad de una persona para entender el propósito de una API, en lugar de implementarla y cruzar los dedos.

Crypto-Modules

Si desea la Respuesta más corta, busque una que sea compatible con FIPS PUB 140-2 . Si no está familiarizado, es básicamente el estándar del gobierno para los módulos criptográficos. Como mínimo, sugiero consultar la Wiki y obtener una comprensión general de la norma.

La mayoría de las bibliotecas criptográficas que valen la pena de implementación tienen al menos el nivel 1 certificado. Puede encontrar una lista de ellos aquí .

Interfaces de nivel alto frente a nivel bajo

Cuando la gente dice que no desempeñe su propia Criptografía, tienden a querer decir, no reinventar la rueda proverbial. I.E No construya sus propias bibliotecas basadas en lo que cree que deberían ser los algoritmos. (Siga con FIPS) Ya que establecimos que no va a hacer esto (¿verdad?), Entonces la pregunta es cómo utilizar mejor estas herramientas.

Algunas bibliotecas le ofrecen una interfaz para las funciones de bajo nivel, como las Extensiones de criptografía de Java ( JCE ). Estas bibliotecas tienen todos los algoritmos y objetos necesarios para la criptografía, pero probablemente requerirán que un desarrollador abstraiga esas funciones en la mayoría de los casos.

Algunas bibliotecas ofrecen una interfaz de alto nivel, como OpenSSL , que retira mucho trabajo de bajo nivel y usted acaba de hacer las llamadas. Muchos pueden argumentar que deberías usar esto, sin embargo, como muchos desarrolladores experimentaron al usar las bibliotecas OpenSSL de la mejor manera, si no sabes lo que estás usando en el nivel más alto, puedes terminar investigando para descubrir si eres vulnerable.

También existe la criptografía como servicio. Personalmente, no tengo mucho conocimiento sobre ellos. Por lo general, ofrecen una API (como REST) para que usted también envíe sus necesidades criptográficas.

    
respondido por el Shane Andrie 13.06.2017 - 00:41
fuente

Lea otras preguntas en las etiquetas