ventajas una tarjetas tarjeta inteligentes inteligente funciones funcionamiento ejemplos desventajas desactivar c++ c unix smartcard

c++ - una - tarjetas inteligentes funcionamiento



iniciando la programaciĆ³n de tarjetas inteligentes (4)

¿Cómo se puede empezar con la programación de tarjetas inteligentes? Estoy preguntando aquí sobre todo el conjunto de herramientas que necesita para comenzar: libros, tutoriales, hardware, etc.

Estoy planeando jugar con un par de programadores de tarjetas inteligentes y soy bastante nuevo en este campo.

Edición: Estoy más interesado en programadores que juegan bien con sistemas operativos similares a Unix. Además, no estoy seguro de cómo funciona esto ... pero me gustaría programarlos en C / C ++


Es muy tarde para dar una respuesta, pero me gustaría agregar un complemento a la respuesta de @bignum.

Bueno, puede comenzar a jugar con el desarrollo de tarjetas inteligentes Java y me gustaría recomendar un buen libro para comprender el know how para principiantes y desarrolladores. " Tecnología de tarjeta Java para tarjetas inteligentes ".

Si su presupuesto de bolsillo lo permite, puede comprar una " Tarjeta de seguridad móvil " para investigar y desarrollar los applets de tarjetas inteligentes utilizando el conocimiento obtenido del libro mencionado anteriormente.

Y también puede referir o usar un proyecto de API de tarjeta inteligente BUSCAR ANDROID alojado en googlecode para una experiencia de primera mano.


Java está comenzando a tener un gran control en el mercado de SmartCard, impulsado por jugadores muy grandes (como IBM).

Hay países enteros donde las personas llevan una tarjeta Java en el bolsillo. Por ejemplo, hay más de 10 millones de ciudadanos belgas cuya tarjeta de identificación nacional (obligatoria para tener con ellos) es una tarjeta Java que ejecuta el "applet" BELPIC.

Si no me equivoco, todo el sistema de salud de Brasil también se basa en la (s) tarjeta (s) de Java.

Con respecto a SmartCard y Linux, aquí está el howto de Linux SmartCard (tenga en cuenta que el howto está lleno de la palabra clave "Java" en todas partes):

http://www.faqs.org/docs/Linux-HOWTO/Smart-Card-HOWTO.html

Luego hay un .pdf llamado "Explorando SmartCards" de junio de 2008 que analiza el gran lío que es el mundo de "SmartCard" y que básicamente comienza explicando que "SmartCard" es tan descriptivo como decir "computadora": eso es , no muy descriptivo; )


Si busca en Google, puede encontrar kits de desarrollo de tarjetas inteligentes que ofrecen un programador, algunas tarjetas de muestra y manuales, a un costo razonable.

También ayuda tener una comprensión de la criptografía (especialmente la criptografía de clave pública) y algo de práctica en el empaquetado de datos en estructuras realmente muy pequeñas.

Las tarjetas inteligentes van desde las increíblemente tontas (una tienda de memoria segura de 1kb) hasta las bastante sofisticadas (he visto las publicidades que ejecutan un marco .NET reducido).

Probablemente las tarjetas inteligentes más utilizadas son las unidades producidas por Mifare, que generalmente se hacen como boletos de viaje pero también se usan como tarjetas de fidelidad o incluso permisos de acceso.


Siempre que necesité acceder a tarjetas inteligentes para usarlas en aplicaciones de seguridad, ha sido a través de:

  • Microsoft CryptoAPI
  • una biblioteca PKCS#11 para la tarjeta.

Para acceder a una tarjeta utilizando el CryptoAPI de Microsoft, se necesita una tarjeta específica para proveedores de servicios criptográficos (CSP). El CSP se encuentra debajo de la capa CryptoAPI.

Sin embargo, si está desarrollando en Unix / Linux usando ''C / C ++'', probablemente querrá echar un vistazo al estándar PKCS#11 de RSA. El estándar especifica una API ''C'' llamada Cryptoki (Interfaz de token criptográfico) que proporciona una abstracción común sobre todos los tipos de dispositivos criptográficos. Casi todos los proveedores de tarjetas inteligentes proporcionan una biblioteca PKCS # 11 para sus tarjetas que puede programar en contra del uso de la API de Cryptoki.

Si desea acceder a la tarjeta inteligente / lector en un nivel inferior, puede utilizar API como PC / SC o CT-API.

  • PC / SC estándar de facto para el acceso con tarjeta inteligente implementado en Windows, Linux y Mac OS X

  • CT-API proporciona una funcionalidad mínima; No es muy adecuado para aplicaciones modernas.

Si está interesado en escribir applets de Java que se ejecutan en tarjetas inteligentes, es probable que desee consultar http://java.sun.com/javacard/

Recursos que pueden ser de utilidad.

  • OpenSC es un conjunto de bibliotecas y herramientas para tarjetas inteligentes. Está diseñado para funcionar con tarjetas de soporte PKCS # 11. OpenCT proporciona controladores para lectores de tarjetas y tokens que se componen de una tarjeta y un lector (es decir, tokens de usb y otros dispositivos "completos").

  • http://www.linuxnet.com/ MUSCLE - El movimiento para el uso de tarjetas inteligentes en un entorno Linux

  • PKCS#15 - Estándar de formato de información de token criptográfico

  • Manual de tarjetas inteligentes

  • Una presentación sobre PKCS # 11 dada en la RSA conf en 2009.

  • PyKCS11 Una envoltura de Python alrededor de PKCS # 11. Este tipo de envoltorios puede proporcionar una interfaz de nivel superior más simple que trabajar directamente a nivel de Cryptoki.

  • Alianza de tarjetas inteligentes