2009-08-26 15 views
7

Trabajé y finalicé un proyecto de PKI que utilizaba un HSM para generar: almacenar claves y realizar funciones de cifrado. Utilicé PKCS # 11 para interactuar con nuestra aplicación para firmar/verificar y cifrar/descifrar. Nuestra plataforma es Windows.Software de seguridad Módulo/kit de herramientas que reemplaza a HSM para desarrollar funciones de cifrado

Ahora buscamos ofrecer una solución alternativa de bajo costo reemplazando el HSM con un módulo de seguridad de software. Debo señalar aquí que soy consciente de los inconvenientes de no usar un HSM. Es una compensación entre la seguridad Vs Cost.

Encontré que Microsoft proporciona la próxima generación de CryptoAPI (CNG), almacén de claves y servicios de certificado. Mi administración senior no está inclinada a usar software de código abierto. También encontré kits de herramientas de oferta criptogénica y RSA para realizar soluciones basadas en software.

¿Alguien ha encontrado kits de herramientas de módulos de seguridad de software comercial para realizar funciones de generación de claves, almacenamiento de claves y criptografía?

Lenguaje de programación - C/C++

Gracias

Raj

Respuesta

2

Su mejor opción debe ser encontrar un software de biblioteca PKCS # 11. Debería haber varias implementaciones en el mercado: sé que la empresa para la que trabajo vende una. De esa manera, aún podría volver a un HSM compatible con PKCS # 11 y las modificaciones necesarias en la aplicación deberían ser mínimas.

Sus otras opciones son CryptoAPI o CNG de Microsoft o un kit de herramientas de RSA, Cryptomathic u otro proveedor. Eso probablemente requerirá más trabajo para reescribir la aplicación. Realmente no veo ninguna ventaja en esta opción, excepto que CryptoAPI y CNG son gratuitos.

+0

¿Se refiere a la "biblioteca de software PKCS # 11" como envoltorios de la biblioteca cryptoki PKCS # 11? Si este es el caso, ¿de qué manera crees que esto es diferente de las funciones que he escrito para firmar/encriptar, etc.? Puedes indicarme algunos proveedores en "biblioteca de software PKCS # 11". ¿Estos proveedores también proporcionan funciones de gestión de claves o debo confiar en el sistema operativo y en otra biblioteca para almacenar/acceder a las claves? De qué manera el para 1 de su respuesta difiere de para2. Estoy realmente muy confundido aquí. Disculpas, si sueno demasiado ignorante. – Raj

+0

PKCS # 11 especifica una API (Cryptoki).Ha estado programando en contra de esta API y, presumiblemente, tenía una DLL que implementó esta API con un HSM que realizaba las operaciones. Varias compañías (incluida Cryptomathic, que es mi empleador) venden "software PKCS # 11 libraries". Una biblioteca de software PKCS # 11 sería una DLL que implementaría la biblioteca PKCS # 11, pero asignando las funciones a una implementación de software pura (y almacenando las claves en archivos (cifrados)). La administración de claves se puede realizar a través de la API PKCS # 11, pero también puede obtener una herramienta separada (dependiendo del proveedor). –

+0

Mi segundo párrafo acaba de volver a enumerar las opciones, ya sabía de: otras API criptográficas. –

7

Puede usar SoftHSM, que es una implementación de software puro PKCS # 11. Está siendo utilizado por el proyecto OpenDNSSEC precisamente para ser intercambiado en casos en que un HSM real no esté disponible, por lo que también podría funcionar para usted. Sin embargo, tiene licencia de BSD, así que supongo que a su gerencia puede no gustarle sobre esa base.

Si está buscando un servicio de bajo costo pero comercial (no estoy seguro de si está buscando específicamente algo que sea propietario, qué CryptoAPI es, o de algo comercialmente compatible, que CryptoAPI no lo es, a menos que tener un contrato con Microsoft), reescribir su aplicación para usar Win32 CryptoAPI parece ser la única opción viable para mí. Los kits de herramientas de RSA no son baratos, según mi experiencia.

+1

Gracias Jack. Tienes razón. Si va a ser el caso 2, planeo ir con GNC ya que la MS es la eliminación progresiva de cryptoAPI. También Mozilla NSS tiene este token virtual de implementación de PKCS # 11 también. – Raj

2

Tengo un cliente que utilizó la implementación del software PKCS # 11 que viene con el NSS de Mozilla como un reemplazo directo para el HSM. Están en Linux usando ruby-pkcs11, por lo que su kilometraje puede variar.

+0

Hola Sander- Este proyecto ha terminado. Pero estoy ansioso por ver NSS. Miré las fuentes de ejemplo de Mozilla, etc .; Pero mi problema es ¿qué versión/o desde dónde - para descargar el NSS? El mío será Windows. – Raj

+0

@Raj el hogar de la biblioteca está en https://developer.mozilla.org/en/NSS, pero no parecen publicar binarios. Afortunadamente, ¡cada copia de Firefox parece tener una! Puede encontrar libsoftokn3.dll en la instalación de Firefox (no tengo una máquina con Windows a mano para verificar). Me parece que puedo simplemente colocar libsoftokn3.so en un programa trivial PKCS # 11 en mi host Linux. –

Cuestiones relacionadas