Uso de tarjetas inteligentes para cifrado de correo electrónico y SSH

6

Supongamos que tengo una pequeña organización, cada usuario tiene una Macbook Pro reciente, puede comprar un lector de tarjetas inteligentes de aproximadamente $ 25 en Amazon, y quiero usar pares de llaves donde las claves privadas están en tarjetas inteligentes personales para realizar el cifrado de correo electrónico y la autenticación SSH .

Parece que la mayoría de estos lectores están orientados hacia la infraestructura del DOD CAC o Federal PIV. No necesito integrarme con estas cosas, quiero ser propietario de la CA raíz o simplemente poner manualmente las claves públicas de todos en algún tipo de directorio.

¿Cuáles son los diferentes tipos de tarjetas inteligentes disponibles en el mercado y qué debo mantener (o evitar) para que algo funcione de manera confiable a pequeña escala utilizando software de código abierto? Parece que los muchos proveedores tienen diferentes implementaciones y no está claro qué tan interoperables son (si es que todos) están fuera de su software empresarial basado en Windows.

Básicamente, estoy buscando hacer algo similar a lo que hace Yubikey Neo, pero con tarjetas genéricas (idealmente con múltiples proveedores) y lectores. Entiendo que las recomendaciones de productos específicos están fuera de tema, solo busco un resumen de qué palabras buscar / buscar para encontrar tarjetas que puedan usarse para este propósito.

Términos que he encontrado:

  • ISO7816 parece ser una interfaz eléctrica estándar, pero no estoy seguro de si esto significa que todas las tarjetas y lectores compatibles con ISO7816 son interoperables a nivel de software.

  • CCID parece ser un protocolo estándar superpuesto en USB para la comunicación con lectores de tarjetas.

  • PKCS # 11 y PCKS # 15 parecen ser primitivos de cifrado de clave pública de alto nivel que, por ejemplo, Thunderbird puede consumir desde una tarjeta inteligente.

¿Puedo usar tarjetas y lectores ISO7816 compatibles con CCID e ISO7816, o hay más que eso?

    
pregunta jacobbaer 02.09.2015 - 00:19
fuente

3 respuestas

1

Estoy realmente interesado en lo que hace Yubikey Neo porque tiene muchos modos abiertos / genéricos (como los que compré dos), incluida la presentación de una interfaz CCID, la aplicación de soporte OpenPGP en la tarjeta y la oferta de código abierto y soporte U2F especificación.

Creo que lo que estás buscando en última instancia es una tarjeta CCID + con los applets adecuados. Las tarjetas OpenPGP pueden ser suficientes para esto.

    
respondido por el Jeff Ferland 02.09.2015 - 02:37
fuente
0

Al parecer, la respuesta es: usar JavaCard. Si bien todos los fabricantes de tarjetas inteligentes tienen un software patentado de administración de cifrado, puede usar GlobalPlatform para cargar un applet compatible con OpenSC en cualquier JavaCard en blanco y obtener la funcionalidad PKCS # 11 de caja blanca.

Comprando un par de tarjetas Java ahora.

    
respondido por el jacobbaer 02.09.2015 - 07:43
fuente
0

Estoy experimentando con tarjetas inteligentes y he tenido cierto éxito al hacer una PKI pequeña y usar un Tarjeta compatible con OpenSC (en mi caso es una tarjeta OpenPGP pero el lado PGP no importa, por lo que cualquier tarjeta PKI funcionará). El uso de OpenSC garantiza que su tarjeta sea compatible en todas las plataformas principales, ya que proporcionan su middleware para Windows, Mac y Linux, y proporcionan módulos PKCS11 que se pueden usar con Firefox y la mayoría de las otras aplicaciones como SSH. Para una mejor compatibilidad con Windows (por ejemplo, Internet Explorer no puede usar OpenSC) sería mejor tener tarjetas compatibles con OpenSC y que tengan sus propios controladores para Windows, por lo que las aplicaciones que usan CAPI (Internet Explorer , Outlook, e incluso para iniciar sesión) también pueden usarlos.

Primero, configure una autoridad de certificación. Este conjunto de tutoriales proporciona archivos de configuración de OpenSSL limpios y legibles: experimente por algunos días / semanas primero - ejecutar una PKI segura no es fácil y debe tomar muchas precauciones. En la producción para una pequeña empresa, también recomendaría usar una tarjeta inteligente PKI para almacenar la clave privada de CA. OpenSC proporciona un módulo PKCS11 y OpenSSL puede aprovechar eso. Guarde esa tarjeta en un lugar seguro al lado de otros activos valiosos, y sáquela solo cuando necesite emitir un nuevo certificado, si es posible en presencia de otra persona, de modo que tenga un registro de auditoría y para evitar que empleados deshonestos utilicen la tarjeta CA de manera indebida. Si sigue ese enlace, le sugiero que consulte los tutoriales avanzados / expertos. Si bien el "simple" puede parecer tentador, carece de partes críticas como CRLs y OCSP, y definitivamente los necesitará en caso de que necesite revocar certificados (tarjeta perdida / Robado, empleado despedido, etc.).

Una vez que haya configurado la CA, inicialice las tarjetas, cambie los PIN y genere las claves (consulte la documentación de OpenSC), luego genere una CSR (utilizando OpenSSL con el módulo OpenSC PKCS11, ya que OpenSC no proporciona una herramienta para esto). ) y firme eso con su CA. Finalmente, coloque el certificado resultante en la tarjeta y listo.

Sin embargo, tenga en cuenta que para el cifrado de correo electrónico si utiliza una tarjeta inteligente, sus empleados no podrán descifrar sus correos electrónicos en un dispositivo móvil o cualquier dispositivo que no tenga un lector de tarjetas (a menos que genere el La clave privada está fuera de la tarjeta y luego les permite importarla en el teléfono, pero eso anularía la ventaja principal de las tarjetas, ya que la clave ahora puede ser robada silenciosamente usando malware.

    
respondido por el André Borie 11.08.2016 - 18:51
fuente

Lea otras preguntas en las etiquetas