¿Cómo uso C # para cifrar / descifrar datos donde la clave privada está en una tarjeta inteligente, módulo de seguridad de hardware, chip TPM, etc.?

4

¿Alguien sabe de un ejemplo de código C # para interactuar con una tarjeta inteligente, un módulo de seguridad de hardware, chips TPM (etc.), que me permita cifrar y descifrar datos?

Mi objetivo es permitir que mi aplicación sea compatible con una variedad de almacenes de claves, y si el administrador decide que quieren que la clave privada resida en esos dispositivos, quiero poder admitir eso.

¿Existe una forma coherente o universal de acceder a estos dispositivos? ¿Hay algún camino a través de C #?

    
pregunta random65537 19.01.2011 - 23:11
fuente

1 respuesta

6

En el mundo de Windows, la criptografía con hardware especial pasa por los "Proveedores de servicios criptográficos" (CSP). Un CSP es un módulo registrado en el sistema operativo, que ofrece acceso a este tipo de hardware.

Desde C #, puede consultar RSACryptoServiceProvider , que puede crearse con algunos parámetros que designar un CSP específico.

El mundo que no es de Windows tiende a usar PKCS # 11 para eso. Google encuentra algunos paquetes de software que aparentemente pueden usar una DLL PKCS # 11 (es decir, el controlador para el hardware criptográfico) de C #; p.ej. pkcs11.net y NCryptoki ( el primero parece ser de código abierto, no el segundo).

    
respondido por el Thomas Pornin 19.01.2011 - 23:21
fuente

Lea otras preguntas en las etiquetas