jueves, febrero 28, 2008

¿cómo funciona un programador de tarjetas?

Una tarjeta inteligente es un mini ordenador en el que se requiere para ejecutar la programación. A smart card doesn't contain an interface-like display or keyboard, so smart card readers are used to read or update the data to\from smart cards. Una tarjeta inteligente no contiene una interfaz de pantalla o el teclado, como, por lo que los lectores de tarjetas inteligentes se usan para leer o actualizar los datos de \ de las tarjetas inteligentes. Smart cards contain an operating system which provides a platform to run applications. Las tarjetas inteligentes contienen un sistema operativo que proporciona una plataforma para ejecutar aplicaciones.

Smart card operating systems can be divided into two categories. Tarjeta inteligente, los sistemas operativos se pueden dividir en dos categorías.

The first kind of operating system is based on the Disk Drive approach. El primer tipo de sistema operativo se basa en el enfoque Disk Drive. This operating system contains an active memory manager which can load any file or application in the card on demand. Este sistema operativo contiene un administrador de memoria que puede cargar cualquier archivo o aplicación en la tarjeta de demanda. The Card Operating System allows for active file allocation and management (JAVA Card OS is an example of this approach). La tarjeta del sistema operativo permite la asignación de activos y la gestión de archivos (JAVA OS Card es un ejemplo de este enfoque).

The advantage of Disk Drive based operating system is that the substitution cost for cards is less expensive, but the start-up costs are higher. La ventaja de los discos duros basados en el sistema operativo es que el costo de sustitución de las tarjetas es menos costoso, pero los costos iniciales son más elevados. This card requires a lager amount of free memory to cope with future application uploads. Esta tarjeta requiere de un lager cantidad de memoria libre para hacer frente a futuras subidas de solicitud. Due to the heavy use of expensive semiconductors, the cost is higher for these cards. Debido a la utilización masiva de semiconductores caro, el costo es mayor para estas tarjetas. The security infrastructure costs are also higher due to the multiple points of entry to card system functions. Los costos de la infraestructura de seguridad también son más altos debido a los múltiples puntos de entrada al sistema de tarjetas de funciones.

The second approach treats the card as a secure device where, files and permissions to these files are all set by the admin. El segundo enfoque trata de la tarjeta de seguro como un dispositivo en el que, a los permisos de archivos y estos archivos son fijados por el administrador. The only access to the cards is through the operating system. El único acceso a través de las cartas es el sistema operativo. There is no other way to access the file structure. No hay otra forma de acceder a la estructura de archivos. Data can be accessed as per the permissions set by the user. Los datos se puede acceder como por los permisos establecidos por el usuario. These operating systems can then run your applications. Estos sistemas operativos puede correr sus aplicaciones. Commands can be passed to the card via the card reader and then the desired application can be accessed through the smart card. Los comandos se pueden pasar a la tarjeta a través del lector de tarjetas y, a continuación, la aplicación deseada se puede acceder a través de la tarjeta inteligente.

One of the most commonly used smart card operating systems is JavaCard. Uno de los más utilizados sistemas operativos de tarjeta inteligente es JavaCard. It provides standard API to load and run java applets directly on a standard ISO 7816 compliant card. Proporciona API estándar para cargar y ejecutar applets de Java directamente en un estándar ISO 7816 cumplen con tarjeta. JavaCards enable secure and chip-independent execution of various applications. JavaCards permita garantizar chip-independiente y ejecución de diversas aplicaciones.

The following requirement needs to be addressed before starting application development on smart cards: El siguiente requisito es necesario abordar antes de iniciar el desarrollo de aplicaciones sobre tarjetas inteligentes:

  • Smart card reader Lector de tarjetas inteligentes
  • Software to communicate with the reader Software para comunicarse con el lector
  • Software to communicate with the smart card Software para comunicarse con la tarjeta inteligente
  • Smart cards and smart card hardware Las tarjetas inteligentes y tarjetas inteligentes de hardware

Before we address smart card programming, we have to be able to communicate with the reader. Antes de abordar la programación de tarjetas inteligentes, tenemos que ser capaces de comunicarse con el lector. Because there are many different cards, there are many different readers. Debido a que hay muchas tarjetas diferentes, hay diferentes lectores. So proper interface implementation should be used for communication. Así adecuado interfaz de la aplicación se debe utilizar para la comunicación.

Once the above setup is complete, programming and application upload can begin utilizing the smart card. Una vez que la configuración esté completa, la programación y la aplicación de carga puede comenzar la utilización de la tarjeta inteligente. JavaCard allows applications to be loaded on demand. JavaCard permite que las aplicaciones que se cargan en la demanda.

In the early years of smart card development, each software application representing a product on a card was written for a specific card with a specific operating system, which in turn was specific to a hardware application. En los primeros años de desarrollo de tarjetas inteligentes, cada aplicación de software que representa un producto en una tarjeta ha sido escrita para una tarjeta con un sistema operativo específico, que a su vez fue específica a una aplicación de hardware. Sometimes a direct application was also installed without an operating system to make the card very specific to that application. A veces, una aplicación directa también fue instalado sin un sistema operativo para hacer la tarjeta muy concretos de esa solicitud. However, the evolution of multiple application operating systems brought about a new era. Sin embargo, la evolución de las solicitudes múltiples sistemas operativos dado lugar a una nueva era. JavaCard is an open, multi-application operating system for smart cards. JavaCard es una institución abierta, multi-aplicación del sistema operativo para tarjetas inteligentes. Any person can develop applications using Java programming language. Cualquier persona puede desarrollar aplicaciones utilizando lenguaje de programación Java. The java programs can run independently on the card and can be run on any ISO 7816 compliant smart cards. Los programas Java pueden ejecutar independientemente de la tarjeta y se pueden ejecutar en cualquier ISO 7816 compatible con las tarjetas inteligentes. This way applications from various vendors can be combined, yet remain separate from each other. De esta manera las aplicaciones de diversos proveedores se pueden combinar, pero siguen siendo independientes el uno del otro.

The ISO 7816 standard was developed to define the mechanical and electrical characteristics along with the protocol for communication with the card. La norma ISO 7816 se ha desarrollado para definir las características mecánicas y eléctricas, junto con el protocolo para la comunicación con la tarjeta. Unfortunately, the ISO group was unable to baseline a standard for communicating with the reader. Lamentablemente, el grupo no pudo ISO a la base de referencia un estándar para la comunicación con el lector. So, in order to communicate with the smart card it is required to first understand the commands supported by the card. Así, con el fin de comunicarse con la tarjeta inteligente es necesaria para entender los comandos apoyo de la tarjeta. Then these commands need to be encapsulated into ISO standard commands. Luego, estos comandos deben ser encapsulados en la norma ISO comandos.

Now, let's take a look of the APIs which allow us to send commands from an application to a reader. Ahora, echemos un vistazo de la API que nos permiten enviar comandos desde una aplicación a un lector. The reader communicates with the card where the actual processing takes place. El lector se comunica con la tarjeta cuando la transformación se lleve a cabo. From a technical standpoint, the key is a smart card API. Desde un punto de vista técnico, la clave es una tarjeta inteligente API. This is a layer of software that allows an application to communicate with smart cards and readers from more than one manufacturer. Esta es una capa de software que permite a una aplicación para comunicarse con las tarjetas inteligentes y lectores de más de un fabricante. The API allows the programmers or users the ability to select smart cards from multiple vendors. El API permite a los programadores o los usuarios la capacidad de seleccionar las tarjetas inteligentes de múltiples proveedores. Running an application on multiple smart cards encourages competition among card vendors and the benefits of that competition include greater quality and lower prices. Ejecución de una aplicación en múltiples tarjetas inteligentes alienta la competencia entre los proveedores de tarjetas y los beneficios de la competencia que incluya una mayor calidad y precios más bajos.

The smart card programming API provides an application layer between the smart card and the application interface. La tarjeta inteligente proporciona una API de programación de nivel de aplicación entre la tarjeta inteligente y la interfaz de aplicación. The unit of exchange with a smart card is the called as Application Protocol Data Unit (APDU) packet. La unidad de intercambio con una tarjeta inteligente, como es el llamado Protocolo de Aplicación de datos Unidad de paquetes (APDU). Communication with the card and the reader is performed using APDUs. La comunicación con la tarjeta y el lector se realiza mediante APDUs. An APDU can be considered a data packet that contains a complete instruction for the card or a complete response from a card. Una APDU puede ser considerado como un paquete de datos que contiene una completa instrucción de la tarjeta o de una respuesta completa de una tarjeta.

The following are some of the classes provided for transporting APDUs and their function: Las siguientes son algunas de las clases previstas para el transporte de APDUs y su función:

  • Response Respuesta
  • Command Comando
  • ISOCommand
  • ISOCardReader interface ISOCardReader interfaz
  • ISOCardReader

Sun has developed the Java Electronic Commerce Framework (JECF), an extension to the core Java platform that allows developers to easily and rapidly develop electronic commerce applications. Sun Java ha elaborado el Marco de Comercio Electrónico (JECF), una extensión de la plataforma Java básico que permite a los desarrolladores desarrollar fácil y rápidamente aplicaciones de comercio electrónico. JECF provides several classes that easily support communication with smart cards. JECF proporciona varias clases de apoyo que fácilmente la comunicación con las tarjetas inteligentes. It can be downloaded free of charge from Sun's website and can be used easily by a smart card programmer. Se puede descargar gratuitamente desde el sitio web de Sun y puede ser utilizado fácilmente por un programador de tarjetas inteligentes.

The smart card application development process includes following steps: La tarjeta inteligente, el desarrollo de aplicaciones de proceso incluye los pasos siguientes:

  • User requirements: What does the user want to accomplish? Las necesidades de los usuarios: ¿Qué significa que el usuario desea lograr?
  • Software requirements: Map user requirements to software requirements. Requisitos de software: mapa de las necesidades de los usuarios de software a las necesidades.
  • Architectural design: Design the architecture of the solution. Diseño arquitectónico: Diseño de la arquitectura de la solución.
  • Code Generation: Create code as per the architecture. Generación de Código: Crear código como por la arquitectura.
  • Emulation: Use emulators to test the code on virtual card. Emulación: Utilizar emuladores para probar el código de la tarjeta virtual.
  • In-card Emulation: Run the code on actual card using card reader. - En la tarjeta de Emulación: Ejecutar el código en efectivo usando la tarjeta de lector de tarjetas.
  • Verification and Validation: It involves the testing. Verificación y Validación: Se trata de los ensayos.
  • Final testing and maintenance. Final de la prueba y el mantenimiento.

No hay comentarios: