¿Cuál es el estado de la interoperabilidad de la tarjeta inteligente / computadora?

3

Las tarjetas inteligentes son el único dispositivo realmente seguro que se puede usar, entre otras cosas, para la identificación electrónica. Sin embargo, existen problemas de usabilidad derivados de la falta de estandarización.

Por lo general, para usar una tarjeta inteligente, el usuario debe instalar algún middleware (propietario). Para usar eso en un navegador, se necesitan cosas más específicas (ActiveX, apllets de Java). Debido a que la usabilidad cae significativamente. Por ejemplo, la solución estonia requiere la instalación de complementos de navegador y módulos (s) pkcs11 para permitir la comunicación con su ID nacional tarjetas.

He leído mucho, pero honestamente, estoy un poco perdido. Así que me gustaría pedir una aclaración sobre múltiples aspectos (estándares y proyectos). ¿Qué parte de todo el flujo cubren estos temas, cuál es su estado, cuán ampliamente adoptados son, etc.?

Y otra pregunta: ¿cree que habrá una manera, en un futuro próximo, para que una tarjeta inteligente de implementación estándar se use en un navegador de implementación estándar en un sistema operativo de implementación estándar sin la necesidad de instalar nada? ?

    
pregunta Bozho 28.10.2015 - 12:55
fuente

1 respuesta

4

Por su pregunta, parece que usted solicita solo tarjetas inteligentes PKI, por lo que omitiré otros tipos de tarjetas inteligentes.

Algo de teoría primero. Las computadoras hablan con todas las tarjetas inteligentes utilizando comandos APDU . Son interfaces de muy bajo nivel y son en su mayoría diferentes para todas las tarjetas. Hay razones prácticas y políticas para esto. La razón práctica es que cada tarjeta puede tener una funcionalidad específica que es difícil de estandarizar. La razón política es que el proveedor de tarjetas inteligentes no quiere que los clientes puedan cambiar fácilmente las tarjetas con una más barata de otro fabricante. Pero para que la tarjeta inteligente sea utilizable, debe haber una API estándar. Por lo tanto, cada proveedor proporciona middleware que exporta API estándar (PKCS # 11, CryptoAPI, TokenD) y traduce estas llamadas de función de alto nivel a una serie de comandos APDU. Como esta tarea no es tan fácil, todos los middlewares propietarios tienen errores. Hubo muchos intentos de especificación o interfaz de tarjeta inteligente unificada, pero todos fallaron, porque los proveedores continuaron creando y vendiendo tarjetas propietarias.

En cuanto a estándares / proyectos:

  • ISO / IEC 24727 - No tenía experiencia personal con este estándar, pero parece que fue otro intento fallido de estandarización de API. Como todos ellos tiene una adopción muy limitada. Creo que sólo Giesecke & Devrient creó tarjetas que lo implementan.
  • ISO 7816-4: este estándar define los comandos de bajo nivel para algunas operaciones de tarjeta como seleccionar archivos y leer en binario, pero no cubre los comandos más útiles como la firma o la generación de claves.
  • PKCS # 11 - De Wikipedia: el estándar PKCS # 11 define una API independiente de la plataforma para tokens criptográficos. Hay muchas aplicaciones que pueden usar la interfaz PKCS # 11 y es solo la interfaz de tarjeta inteligente que soporta Mozilla, por lo que cada tarjeta inteligente PKI tiene middleware que lo implementa. Por lo general, no todas las funciones están implementadas y algunas se implementan de una manera no estándar. Parece que los proveedores de middleware prueban su implementación solo con Firefox, y no hay garantía de que otras aplicaciones PKCS # 11 funcionen correctamente.
  • PKCS # 15 - Otro intento de solucionar un problema de middleware propietario. Nunca lo he usado y AFAIK no hay ningún software importante que lo use.
  • abrir tarjeta electrónica: no importa, ya que ninguna tarjeta la implementa.
  • OpenSC: este es un middleware de código abierto para muchas tarjetas diferentes. Algunas compañías han escrito y apoyan activamente a los controladores OpenSC para sus tarjetas, algunos controladores de tarjetas se escriben según las especificaciones del público y otros tienen ingeniería inversa. La mayoría de las tarjetas con especificación pública son tarjetas nacionales de identificación electrónica como IAS-ECC o US PIV . Algunas empresas pequeñas como Aventra también publican sus comandos APDU.

Sobre el uso de tarjetas inteligentes en los navegadores: todos los navegadores principales pueden usar certificados almacenados en tarjetas inteligentes para la autenticación de clientes SSL.

ActiveX, applets de Java o extensiones de navegador se usan para firmas vinculantes, ya que ningún navegador tiene soporte integrado para ellas. Hubo algunos intentos de agregar la funcionalidad necesaria a WebCryptoAPI, parece Como los vendedores de navegadores están en contra. Puede leer esta discusión para obtener más información: enlace . Por lo tanto, no creo que en un futuro próximo se pueda firmar un documento en el navegador sin complementos o complementos adicionales.

Editar:

Para que TLS clientAuth funcione con tarjeta inteligente, sin instalación adicional, el sistema operativo o el navegador deben incluir middleware de tarjeta inteligente.

Creo que Windows viene con un software intermedio de tarjeta inteligente preinstalado, pero muchas tarjetas diferentes tienen su software intermedio en la actualización de Windows, y se instala automáticamente cuando la tarjeta está conectada. De esta manera, la autenticación del cliente funcionará con todos los navegadores modernos, excepto Firefox. Como Firefox no usa la interfaz criptográfica estándar de Windows (CryptoAPI), necesita una instalación adicional o, al menos, una configuración manual.

Las versiones anteriores de OS X también incluían soporte para algunas tarjetas, pero se eliminaron después de 10.6.

    
respondido por el Vasil Badev 28.10.2015 - 21:24
fuente

Lea otras preguntas en las etiquetas