Professional Documents
Culture Documents
Escuela Politécnica Nacional: Escuela de Ingeniería
Escuela Politécnica Nacional: Escuela de Ingeniería
ESCUELA DE INGENIERÍA
Yo, Roberto Luis Chimborazo Toro, declaro bajo juramento que el trabajo aquí
descrito es de mi autoría; que no ha sido previamente presentado para ningún
grado o calificación profesional; y, que he consultado las referencias bibliográficas
que se incluyen en este documento.
Certifico que el siguiente trabajo fue realizado por Roberto Luis Chimborazo Toro,
bajo mi supervisión.
*P
AGRADECIMIENTO
Aprovecho estas líneas para darles las gracias a mi padre Luis Chimborazo quien
con su sacrificio diario me ha permitido íiegar hasta estas instancias de mi vida y
ser quien soy y a mi madre Rosa Toro quien en el poco tiempo que estuvo a mi
lado supo ser muy cariñosa y la mejor madre del mundo.
A mis hermanos Ruth, Danny, Dorys y Germán por estar allí cuando los necesité.
El fruto de este trabajo se (o dedico a quien cree que todo lo bueno que está por
venir depende de uno y de las ganas de trabajar por una vida mejor, a todo aquel
que sabe que con sus manos puede construir lo que desee construir, a quien mira
lo bueno de la vida y lo hace ver aun mejor, el que recoge las malas experiencias
y aprende de ellas, quien cree que nada es imposible, en pocas palabras se lo
dedico a mi padre.
Hoy en día las Tarjetas Inteligentes son un elemento muy utilizado por los
ciudadanos de otros países, esto por la facilidad de uso de estos elementos y por
el gran número de aplicaciones que tienen. Dadas estas características es
importante conocer un poco más de esta tecnología que en poco tiempo será muy
utilizada por nosotros.
Tarjetas Inteligentes
Capítulo 1
1.1 INTRODUCCIÓN l
1.2 ESTÁNDARES 4
Técnicas de seguridad
4.1 IDENTIFICACIÓN DEL USUARIO 149
4.1.1 IDENTIFICACIÓN DEL USUARIO USANDO UN PIN 152
4.1.1.1 Probabilidad de adivinar un PIN 154
4.1.1.2 Probando la autenticidad de un terminal 156
4.2 SEGURIDAD DE LA TARJETA INTELIGENTE 156
4.2.1 CLASIFICACIÓN DE ATAQUES Y ATACANTES 158
4.2.1.1 Clasificación de ataques 159
4.2.1.2 Clasificación de atacantes 161
4.2.1.3 Clasificación de la atracción de un ataque 162
4.3 CRIPTOGRAFÍA 164
4.3.1 ALGORITMOS CRIPTOGRÁFICOS SIMÉTRICOS 167
4.3.1.1 El Algoritmo DES 167
4.3.1.2 El Algoritmo IDEA 169
4.3.1.3 Modos de operación délos algoritmos de encripción 170
orientados a bloques
4.3.1.4 Encripción múltiple 172
4.3.2 ALGORITMOS CRIPTOGRÁFICOS ASIMÉTRICOS 173
4.3.2.1 El Algoritmo RSA 174
4.4 ATAQUES Y CONTRAMEDIDAS DURANTE EL 175
DESARROLLO
4.4.1 DESARROLLO DEL MICROCONTROLADORDE LATÍ 175
4.4.1.1 Protección: Criterio de Diseño 175
4.4.1.2 Protección: Números de CHIP ambiguos 176
4.4.2 DESARROLLO DEL SISTEMA OPERATIVO DE LA TI 177
4.4.2.1 Protección: Principios de desarrollo 177
4.4.2.2 Protección: Distribución del conocimiento 179
4.5 ATAQUES Y CONTRAMEDIDAS DURANTE EL PROCESO 179
DE FABRICACIÓN
4.5.1 PROTECCIÓN: AUTENTICACIÓN EN LOS PASOS DE 180
FABRICACIÓN
4.6 ATAQUES Y CONTRAMEDIDAS DURANTE EL USO DE 181
LA TARJETA
4.6.1 ATAQUES AL NIVEL FÍSICO 181
4.6.1.1 Análisis estático de los microcontroladores de TIs 182
4.6.1.1.1 Protección: Tecnología del semiconductor 182
4.6.1.1.2 Protección: Diseño del chip 183
4.6.1.1.3 Protección: Bus es sobre el chip 183
4.6.1.1.4 Protección: Diseño de la memoria 184
4.6.1.1.5 Protección: Capas protectoras (Escudos) 184
4.6.1.1.6 Protección: Scrambling de la Memoria 186
4.6.1.1.7 Protección: Encripción de la Memoria 186
4.6.1.2 Análisis dinámico de los microcontroladores de TIs 187
4.6.1.2.1 Protección: Monitoreo de la capa pasiva 187
4.6.1.2.2 Protección: Control de voltaje 188
4.6.1.2.3 Protección: Monitoreo de frecuencia 188
4.6.1.2.4 Protección: Scrambling de los buses 189
4.6.1.2.5 Análisis dinámico y defensa: Medición del 190
consumo de energía del CPU
4.6.1.2.6 Análisis y defensa: Medición de la radiación 193
electromagnética del CPU
4.6.2 ATAQUES AL NIVEL LÓGICO 193
4.6.2.1 Ataque y defensa: Tarjeta inteligente falsa 194
4.6.2.2 Ataque y defensa: Interrupción de energía 195
4.6.2.3 Ataque y defensa: Análisis de energía por comparación 196
del PIN
4.6.2.4 Ataque y defensa: Análisis de tiempo por comparación del 197
PIN
4.6.2.5 Ataque y defensa: Algoritmos criptográficos libres de 198
ruido
4.6.2.6 Manipulación: Análisis diferencial por defecto (DFA) 199
4.6.2.7 Ataque y defensa: Perturbando el procesador 200
Capítulo 5
Aplicaciones de las tarjetas inteligentes
5.1 TARJETAS INTELIGENTES EN LOS SISTEMAS DE PAGO 202
5.1.1 TRANSACCIONES PE PAGO USANDO TARJETAS 203
5.2 TARJETAS INTELIGENTES EN 206
TELECOMUNICACIONES
5.3 TARJETAS INTELIGENTES SIN CONTACTOS PARA 209
VIAJES AÉREOS
5.4 TARJETAS DE SEGURO MEDICO 211
5.5 SISTEMAS DE PEAJE ELECTRÓNICO 213
5.6 FIRMAS DIGITALES 216
5.7 OTRAS APLICACIONES
Capítulo 6
Diseño de un ejemplo de aplicación
6.1 OBJETIVOS 222
6.2 APLICACIÓN PROPUESTA 222
6.2.1 ANTECEDENTES 223
6.2.2 REQUERIMIENTOS 223
6.2.3 CARACTERÍSTICAS DEL PROBLEMA 224
6.2.4 HERRAMIENTAS UTILIZADAS EN LA SOLUCIÓN 226
6.2.4.1 Lector y Programador 226
6.2.4.2 Kit 226
6.2.4.3 Memory Card SLE4428 227
6.3 IMPLEMENTACIÓN DE LA APLICACIÓN 227
6.3.1 MAPA DE MEMORIA 227
6.3.2 ETAPA DE ESCRITURA 232
6.3.3 ETAPA DE LECTURA 237
6.3.4 PROPIEDADES DE SEGURIDAD 240
6.4 DETALLE DE COSTOS 242
CONCLUSIONES Y RECOMENDACIONES 244
Anexo A
Líneas de código
A.l PROGRAMA DE ESCRITURA (Escritor.frm) A-l
A.2 PROGRAMA DE LECTURA (Lector.frm) A-9
A.3 MÓDULO (Modulo.bas) A-14
Anexo B
Tarjeta SLE442S
B.l CARACTERÍSTICAS B-l
B.2 DESCRIPCIÓN FUNCIONAL B-2
B.3 CARACTERÍSTICAS DE SEGURIDAD B-3
B.4 DATOS TÉCNICOS B-5
Anexo C
Librería ACSR 20
C.l DESCRIPCIÓN C-i
C.2 VELOCIDAD DE COMUNICACIÓN C-2
C.3 API ACSR C-2
C.3.1 ESTRUCTURA DEL INTERPAZ DE DATOS C-3
C.3.1.1 AC_APDU C-3
C.3.1.2 AC SESSION C-4
C.3.1.3 ACJNFO C-5
C.3.2 PROTOTIPOS DE FUNCIONES DE INTERFAZ C-6
C.3.2.1 AC__Open C-6
C.3.2.2 AC_Close C-7
C.3.2.3 AC_StartSession • C-S
C.3.2.4 AC_EndSession C-9
C.3.2.5 ACJExchange C-10
C.3.2.6 AC_GetInfo C-ll
C.3.3 C01VIANDOS ACI C-12
C.3.3.1 ACI_Read C-13
C.3.3.2 ACI_Write C-13
C.3.3.3 ACI_Verify C-13
Anexo D
Lector y Programador ACR30
D.l INTRODUCCIÓN D-l
D.2 TIPOS DE TARJETAS SOPORTADOS D-l
D.2.1 MEMORY CAJRDS (INTERFAZ SINCRÓNICA) D-2
D.2.2 TARJETAS BASADAS EN MICROCONTROLADORES D-2
(INTERFAZ ASINCRÓNICA)
D.3 INTERFAZ DE LA TARJETA INTELIGENTE D-2
D.3.1 SU3VHNISTRO DE ENERGÍA A LA TARJETA INTELIGENTE D-3
(VCC)
D.3.2 VOLTAJE DE PROGRAMACIÓN (VPP) D-3
D.3.3 SELECCIÓN DEL TIPO DE TARJETA D-3
D.3.4 INTERFAZ PARA TARJETAS BASADAS EN D-4
MICROCONTROLADOR
D.3.5 PROTECCIÓN DE DESPLAZAMIENTO DE LA TARJETA D-4
D.4 SUMINISTRO DE ENERGÍA D-4
D.5 INTERFAZ SERIAL D-4
D.5.1 PARÁMETROS DE COMUNICACIÓN D-5
D.6 PROTOCOLO DE COMUNICACIÓN D-5
IX
índice de figuras
Tarjetas Inteligentes
Capítulo 1
Figura 1.1 Medidas y ubicación de los contactos en una TI (Referencia: 6
[FREETUTORIALS])
Figura 1.2 Distribución de los contactos (Referencia: [FREETUTORIALS]) 7
Figura 1.3 Clasificación de las Tarjetas Inteligentes, (Referencia: 12
[ROOTSHELL])
Figura 1,4 Arquitectura de una Memory Card (Referencia: [ROOTSHELL]) 14
Figura 1.5 Arquitectura simplificada de una Tarjeta con chip (Referencia: 15
[ROOTSHELL])
Figura 1.6 Tarjetas con contacto (Referencia: [NETHANDBOOK]) 16
Figura 1.7 Tarjeta sin contactos (Referencia: [NETHANDBOOK]) 17
Capítulo 2
Características físicas y propiedades eléctricas
Figura 2.1 Definición de las dimensiones de una tarjeta de formato ID-1. 31
(Referencia: [WOLFGANG])
Figura 2.2 El formato ID-1: Espesor: 0,76 mm ± 0,08 mm; radio de la esquina: 32
3,18 mm ± 0,30 mm. Las dimensiones mostradas indican el lado de
la tarjeta excluyendo tolerancias. (Referencia: [WOLFGANG])
Figura 2.3 Formato ID-000. (Referencia: [WOLFGANG]) 32
Figura 2.4 Formato ID-00. (Referencia: [WOLFGANG]) 33
Figura 2.5 Tamaño relativo de los formatos ID-1, ID-00 e ID-000. (Referencia: 33
[WOLFGANG])
Figura 2.6 Prueba de encorvamiento. (Referencia: [FREETUTORIALS]) 36
Figura 2.7 Prueba de torsión. (Referencia: [FREETUTORIALS]) 37
Figura 2.8 Prueba de resistencia a una descarga eléctrica estática. (Referencia: 37
[FREETUTORIALS])
Figura 2.9 Posición de los contactos relativa al cuerpo de la tarjeta. (Referencia: 38
[WOLFGANG])
Figura 2.10 Dimensiones mínimas de los contactos como se especifica en 38
ISO/IEC 7816-2. (Referencia: [WOLFGANG])
Figura 2.11 Diferentes formas de acomodar el chip, el campo de estampado en 39
relieve y la banda magnética en una TI, de acuerdo con el estándar
ISO 7816-2. (Referencia: [WOLFGANG])
Figura 2.12 Fabricación del chip. (Referencia: [GUTHERY]) 40
Fisura 2.13 Elementos de un módulo de Tarjeta Inteligente. (Referencia: 41
[GUTHERY])
Figura 2.14 Inserción dei módulo en el cuerpo de la tarjeta (Referencia: 41
[GUTHERY])
Figura 2.15 Comparación de las 3 clases de voltaje y rangos de frecuencia fijados 48
como se especifica en el estándar ISO/IEC 7S16-3 y en la enmienda
1. (Referencia: [WOLFGANG])
Figura 2.16 Fotografía de la zona de contacto entre un cable y una almohadilla 51
del microcontrolador de una TI, ampliada 1000 veces (Referencia:
[WOLFGANG])
Figura 2.17 Consumo de comente en el microcontrolador versus frecuencia de 54
reloj en el modo de operación normal. El consumo de comente en el
modo de dormido con el reloj aplicado también es linealmente
dependiente de la frecuencia de reloj y es aproximadamente 50 jiA a
5 MHz, dependiendo del tipo de microcontrolador. (Referencia:
[WOLFGANG])
Figura 2.18 Circuito del canal E/S entre el terminal y la tarjeta inteligente. 62
(Referencia: [WOLFGANG])
Figura 2.19 Secuencias de activación y desactivación de las tarjetas inteligentes 65
acorde al estándar ISO/IEC 7816-3, los intervalos ti y t2 yacen en los
rangos 400/f <tl <40.000/f y t2 <200/f, 40.000/f <t3. IR: Reset
interno, AL: Reset asincrónico, SH: Reset sincrónico. (Referencia:
[WOLFGANG])
Figura 2.20 Reset de la tarjeta cuando espera una respuesta sincrónica. 66
(Referencia: [CARDWERK])
Figura 2.21 Acomodamiento básico de una memoria dividida en algunos bancos 70
y el flujo de programa asociado. Este ejemplo muestra dos subruíinas
localizadas en dos diferentes bancos de memoria que son llamadas
desde una región común de memoria. Los números en paréntesis
indican la secuencia de eventos en el proceso. (Referencia:
[WOLFGANG])
Figura 2.22 Comparación del área de una sola celda-bit para varios tipos de 72
memoria. (Referencia: [WOLFGANG])
Figura 2.23 Clasificación de memorias de microcontroladores de TIs, las PROM 73
y EPROM ya no se usan en microcontroladores modernos, las FRAM
están empezando a usarse en TIs. (Referencia: [WOLFGANG])
Figura 4.6 Operación del algoritmo DES para encriptar datos. (Referencia: 168
[WOLFGANG])
Figura 4.7 Encripción de datos con un algoritmo de encripción orientado al 171
bloque en el modo ECB. (Referencia: [WOLFGANG])
Figura 4.8 Encripción de datos con un algoritmo de encripción orientado al 172
bloque en el modo CBC. (Referencia: [WOLFGANG])
Figura 4.9 Principio de operación de encripción de datos usando triple DES. 173
(Referencia: [WOLFGANG])
Figura 4.10 Encripción y deencripción usando un algoritmo de llave pública. 174
(Referencia: [WOLFGANG])
Figura 4.11 Clasiñcación de los puntos de ataque sobre un microcontrolador de 181
TIs al nivel físico. (Referencia: [WOLFGANG])
Figura 4.12 Comparación de un cabello humano con la estructura del 182
semiconductor de un microcontrolador de TIs, magnificado lOOOx.
(Referencia: [WOLFGANG])
Figura 4.13 Fotografía de varias celdas RAM magnificada 3000x, sin protección 185
de capas metálicas adicionales. La fotografía de abajo muestra los
potenciales eléctricos de las mismas celdas RAM que han sido
medidos usando un haz de electrones con el chip en operación. La
distribución de ceros y unos en la RAM puede ser reconocida
claramente. (Referencia: [WOLFGANG])
Figura 4.14 Comparación de una memoria' convencional y una memoria 186
desordenada usada en un microcontrolador de TI. (Referencia:
[WOLFGANG])
Figura 4.15 Capa pasiva moderna magnificada SOOOx. La separación de pistas es 187
4 um y el principio de funcionamiento de este detector se basa en la
medición de resistencia. (Referencia; [WOLFGANG])
Figura 4.16 Scrambling de buses en un microcontrolador de TIs, ilustrando el uso 190
de un bus de datos de 8 bits entre el CPU y la RAM. Las líneas del
bus de datos mostradas aquí representan los flujos de información.
(Referencia: [WOLFGANG])
Figura 4.17 Diagrama del circuito de conexiones a un microcontrolador de TIs 191
para hacer mediciones simples de corriente usando resistencias en
serie. (Referencia: [WOLFGANG])
Figura 4.18 Vista de la parte posterior de un módulo de TI abierto, el chip de la 195
izquierda es un microcontrolador PIC que está conectado a una
memoria EEPROM a la derecha por cables y caminos. Este tipo de
módulo es usado típicamente para clonar una TI y otros tipos de
ataques sobre sistemas de TIs. (Referencia: [WOLFGANG])
Figura 4.19 Ejemplo del procedimiento de un nuevo balance en un monedero 195
electrónico. (Referencia: [WOLFGANG])
XIV
Figura 4.20 Ejemplo de una rutina no robusta para el envío del contenido de un 200
buffer de transmisión, la cual puede ser atacada exitosamente por la
perturbación del procesador. (Referencia: [WOLFGANG])
Capítulo 5
Aplicaciones de las tarjetas inteligentes
Figura 5.1 Esquema sencillo de un medio de pagos actual. (Referencia: 203
[LBURUTEGIA])
Figura 5.2 Tarjetas inteligentes de crédito. (Referencia: [INGENICO]) 220
Figura 5.3 Esquema sencillo de una TI multiaplicación. (Referencia: 221
[LBURUTEGIA])
Capítulo 6
Diseño de un ejemplo de aplicación
Figura 6.1 División de la memoria EEPROM de la Memory Card 228
Figura 6.2 Secuencia de Bytes escritos para cada registro y codificación de los 229
campos Año3 Nota, Período, Tipo de aprobación, Número de
matrícula, Créditos, Número de Materia
Figura 6.3 Diagrama de ñujo de la aplicación de escritura de curriculum en la 232
tarjeta
Figura 6.4 Diagrama de flujo del bloque Escribir en tarjeta 233
Fisura 6.4 Diagrama de flujo del bloque Escribir en tarjeta (Continuación) 234
Figura 6.5 Pantalla del interfaz del escritor con un número único válido 235
ingresado
Figura 6.6 Mensaje de Error al ingresar número único no válido 235
Figura 6.7 Ejemplo de escritura satisfactoria de curriculum en la tarjeta 236
Figura 6.8 Diagrama de flujo de la aplicación de lectura de la tarjeta 238
Fisura 6.8 Diagrama de flujo de la aplicación de lectura de la tarjeta 239
(Continuación)
Figura 6.9 Pantalla de lectura exitosa 240
Anexo A
Líneas de código
Figura A.l Formulario de Escritor A-16
Figura A.2 Formulario de Lector A-17
Anexo B
Tarjeta SLE 4428
Figura B.l Diagrama de bloque de operación de SLE 4428 B-2
Anexo C
Librería ACSR 20
Figura C.l Arquitectura de la librería ACSR20 C-l
XVI
índice de tablas
Tarjetas Inteligentes
Capítulo 1
Tabla 1.1 Detalle histórico del desarrollo de la TI. (Referencia: 3
[NETHANDBOOK])
Tabla 1.2 Partes del estándar ISO 7816. (Referencia: [CARDWERK]) 6
Tabla 1.3 Descripción de los contactos, (Referencia: [CARDWERK]) 8
Capítulo 2
Características físicas y propiedades eléctricas
Tabla 2.1 Resumen de los tres parámetros eléctricos (voltaje, corriente y tasa de 49
reloj) para los estándares internacionales e industriales más
importantes. (Referencia: [WOLFGANG])
Tabla 2.2 Características eléctricas de E/S bajo condiciones de operación 60
normales. (Referencia: [CARDWERK])
Tabla 2.3 Características eléctricas de VPP bajo condiciones de operación 60
normales. (Referencia: [CARDWERK])
Tabla 2.4 Características eléctricas de CLK bajo condiciones de operación 61
normales. (Referencia: [CARDWERK])
Tabla 2.5 Características eléctricas de RST bajo condiciones de operación 61
normales. (Referencia: [CARDWERK])
Tabla 2.6 Características eléctricas de VCC (Clase A) bajo condiciones de 61
operación normales. (Referencia: [CARDWERK])
Capítulo 3
Sistemas operativos, protocolos de transmisión y comandos de
las tarjetas inteligentes
Tabla 3.1 Elementos de datos de la ATR y su asignación según el estándar 97
ISO/IEC 7816-3. (Referencia: [WOLFGANG])
Tabla 3.2 Resumen de protocolos de transmisión de acuerdo con ISO/IEC 7816- 100
3. (Referencia: [WOLFGANG])
Tabla 3.3 Tiempos de transmisión para algunos comandos típicos usando el 108
protocolo T=0. (Referencia: [WOLFGANG])
Tabla 3.4 Tiempos de transmisión para algunos comandos típicos usando el 110
protocolo T=l. (Referencia: [WOLFGANG])
Tabla 3.5 Etiquetas para objetos de datos de texto plano. (Referencia: 123
[WOLFGANG])
Tabla 3.6 Etiquetas para objetos de datos de autenticación. (Referencia: 123
[WOLFGANG])
Tabla 3.7 Etiquetas para objetos de datos de confidencialidad. (Referencia: 124
[WOLFGANG])
Tabla 3.8 Funcionalidad del comando SELECT FILE acorde el estándar ISO/IEC 132
7816-4. (Referencia: [WOLFGANG])
Tabla 3.9 Funcionalidad del comando SEEK acorde el estándar GSM 11.11, 141
(Referencia: [WOLFGANG])
Capítulo 4
Técnicas de seguridad
Tabla 4.1 Criterio para determinar el esfuerzo y costo requerido para un ataque 163
sobre los componentes de seguridad de hardware o software, basado en
los prerrequisitos para un ataque. (Referencia: [WOLFGANG])
Tabla 4.2 Tiempos de cómputo típicos para DES. (Referencia: [WOLFGANG]) 169
Tabla 4.3 Tiempos de cómputo típicos para IDEA. (Referencia: [WOLFGANG]) 170
Capítulo 6
Diseño de un ejemplo de aplicación
Tabla 6.1 Tamaño del campo correspondiente a datos a ser almacenados 231
Anexo B
Tarjeta SLE 4428
Tabla B.l Contactos de la tarjeta SLE 4428 B-2
Tabla B.2 Datos técnicos de la tarjeta SLE 4428 B-5
Anexo C
Librería ACSR 20
Tabla C.l Parámetros de la estructura AC_APDU C-4
Tabla C.2 Parámetros de la estructura AC_SESSION C-5
Tabla C.3 Parámetros de la estructura AC_MFO C-5
Tabla C.4 Parámetros de la función AC_Open C-7
Tabla C.5 Parámetros de la función AC_Close C-7
Tabla C.6 Parámetros de entrada de la función AC_StartSession C-8
Tabla C.l Parámetros de salida de la función AC_StartSessíon C-9
Tabla C.8 Parámetros de entrada de la función AC_EndSession C-10
Tabla C.9 Parámetros de entrada de la función AC_Exchange C-10
Tabla C.10 Parámetros de salida de la función AC_Exchange C-ll
Tabla C.ll Parámetros de entrada de la función AC_GetInfo C-ll
Tabla C.12 Parámetros de salida de la función AC Getlnfo C-12
XV111
Tarjetas Inteligentes
Capítulo 1
1.1 INTRODUCCIÓN
•*
Tarjetas Inteligentes - Capítulo 1
El origen remoto de la T! como medio de pago se sitúa en New York en el
año 1.950. Un hombre de negocios, llamado Frank McNamara, invitó a comer a
un restaurante a unos clientes suyos. Al ir a pagar la cuenta descubrió con
sorpresa que no portaba dinero suficiente. Este hecho le hizo reflexionar, y llegó a
la conclusión de que no era lógico que hombres de negocios como él no pudiesen
disponer de su capacidad financiera, bien fuese en forma de saldos bancarios o
en forma de capacidad crediticia, estando condicionados por el efectivo disponible
que portasen en cada momento. Como consecuencia de sus reflexiones se puso
en contacto con los 27 restaurantes de New York más frecuentados por hombres
de negocios y promovió la emisión de la primera tarjeta de crédito: Diners Club
(Club de Comidas). Al cabo de un año se habían emitido más de 42.000 tarjetas y
se había facturado más de un millón de dólares por medio de dicha tarjeta.
Año Suceso
1971 EE.UU.., la patente para una tarjeta de crédito y los planes contables se
archivan, teniendo capacidad para almacenar información y para responder
a los sistemas controlados por computadora. Esta patente fue la base para
una tarjeta con un chip incorporado.
1974 La idea de una tarjeta verdaderamente "inteligente" fue concebida por
Roland Moreno, periodista francés que pensó en una tarjeta de crédito con
un microprocesador.
1976/79 Una compañía de computadoras francesa (CU Honeywell BulT) desarrolla
una tarjeta inteligente conjuntamente con Motorola,
1980 El Laboratorio Nacional de Comunicaciones lleva a cabo pruebas de la
tarjeta inteligente en Francia.
1982 Francia comienza a utilizar las tarjetas en los puntos de uso y puntos de
venta, las tarjetas son fabricadas por France Telecom.
1983 Deutsche Bundespost comienza a investigar la tecnología de la tarjeta
inteligente y su aplicabilidad a los sistemas de teléfono en Alemania.
1983 EE.UU. El Departamento de Defensa prueba la tarjeta con "Circuito
Integrado" para los sistemas de identificación militar.
1984/85 El gobierno francés apoya a la banca francesa, Groupement des Caites
Bancaires, en un proyecto para poner tarjetas inteligentes en ejecución en
una escala total; 16 millones de tarjetas se crean y se ponen en uso.
1986 France Telecom pone en el mercado 7 millones de tarjetas de teléfono para
su uso.
1988 Primera tarjeta bancaria fabricada para Groupement des Caries Bancaires.
1993 La investigación en los diversos sistemas de pago revela que el intercambio
de la información entre las tarjetas y los lectores inteligentes requiere
especificaciones. Aparece la primera tarjeta GSM-SIM.
1994 Especificaciones de EMV creadas para el efectivo electrónico.
1996 1.5 millones de tarjetas sin contactos son publicadas en Corea para pagar el
autobús. Las TIs fueron utilizadas en los juegos olímpicos del verano de
1996 en Atlanta. Los usos no son solo para las telecomunicaciones y
transacciones financieras., sino se extienden a otras industrias, poniendo la
base para el uso futuro. Aparece la primer tarjeta RSA 1024 bits
"criptopro ees ador"
1997 Primera tarjeta de IC Java.
2000 Primera tarjeta de IC Windows 2000.
2000 Primera tarjeta de IC para SunRay Workstation.
Futuro Tarjetas multi-plataforma y tarjetas de múltiples usos con nuevas
aplicaciones (Ej. pago de alquiler, Intranet, incrementar el uso del Internet
para las compras, etc.).
1.2 ESTÁNDARES
Este estándar define los requisitos para fas tarjetas a ser utilizadas en
transacciones financieras. Especifica las características físicas, disposición,
técnicas de registro, sistema de numeración y procedimientos de registro. Se
define tomando como referencia los estándares ISO 7810, ISO 7811 e ISO 7812.
En detalle el estándar define las dimensiones físicas de la tarjeta de forma más
exacta, como sigue,
1.2.5.1 Descripción
9.32 nuil
Se podría decir que la mayor parte de ISO 7816 parte 3 es importante para
los fabricantes o desarrolladores de terminales que desean establecer una
comunicación con una TI. A medida que uno se va adentrando en el estándar ISO
Tarjetas Inteligentes - Capítulo 1
7816-3 se observa que guarda una estrecha relación con las líneas de código del
software de entrada/salida. Dicho software permitiría a la tarjeta comunicarse con
un puerto serial/paralelo/USB/PCMCIA de un microcontrolador o de una PC. En
otra palabras trata sobre las señales electrónicas y protocolos que participan en el
procesamiento de datos y la transmisión de información.
La parte 6 del estándar ISO 7816 detalla el transporte físico de los datos
del dispositivo y la transacción de datos, la solicitud de reinicio (ATR) y los
protocolos de transmisión. Las especificaciones permiten dos protocolos de
transmisión: protocolo del carácter (T=0) o protocolo del bloque (T=1). Una tarjeta
puede soportar cualquiera pero no ambos, (nota: Algunos fabricantes de tarjetas
no adhieren ni uno ni otro de estos protocolos. El protocolo de transmisión para
tales tarjetas se describe como T=14).
1.3 CLASIFICACIÓN
Las Tls son los miembros más jóvenes de la familia de las tarjetas
plásticas. Una TI se define como:
En un lenguaje más simple una TI se puede definir como una tarjeta con un
microprocesador encajado en ella.
Cuando se clasifica las Tls por los componentes que contienen, las mismas
pueden ser divididas en dos categorías. Aquellas con un procesador se llaman
Tarjetas con Chip, Chip Cards o Tarjetas con Microprocesador y aquellas sin chip
se llaman Tarjetas de Memoria o Memory Cards.
La tecnología simple de estas tarjetas les permite ser fabricadas con bajo costo.
Estas tarjetas pueden almacenar datos desde 100 Bytes hasta 8 KB. Las Tarjetas
de Memoria encuentran la aceptación amplia en el segmento de telefonía
prepagada debido a su simplicidad. Otras áreas posibles donde pueden ser
utilizadas incluyen las máquinas de venta, transporte, estacionamiento
prepagado.
EEPRGM
(Datos de aplicación)
Segundad
InterfazE/S
Lógicíi
¿L
ROM
fc
(Datos Permanentes)
Seguridad Lógica-
Bus
LiterfazE/S
Figura 1.5 Arquitectura simplificada de una Tarjeta con chip (Referencia; [ROOTSHELL])
Tarjetas Inteligentes - Capítulo 1
Las tarjetas con chip son más costosas que las tarjetas de memoria. Su
coste se encuentra en el rango desde los $2 a $20 dependiendo de las
características disponibles. Estas tarjetas pueden contener aplicaciones
múltiples y proporcionar una seguridad robusta. Tales tarjetas se utilizan en el
control de acceso, monederos electrónicos, crédito y otras tarjetas financieras,
viajes, boletos y otras aplicaciones donde se requiere de alta seguridad. Una
versión simplificada de la arquitectura interna de una tarjeta con chip se muestra
en la Figura 1.5.
Superficie de
Contacto
Tárjete de
Contacto
Reverso de
I la taijeta
Anverso Antena
de la tarjeta
Las Tarjetas Combi al igual que las Tarjetas Híbridas son aquellas que
cuentan tanto con el interfaz para tarjetas de contacto como para tarjetas sin
contacto, facilitando así su utilización. Por ejemplo, una tarjeta de contacto podría
incrustarse dentro de una síot que tiene una batería y una antena y puede
comunicarse con un lector de tarjetas sin contacto, creando de esta forma una
tarjeta capaz de comunicarse con cualquiera de los dos lectores. Otras tarjetas
podrían ser más simples con dos chips, uno para ios lectores de tarjetas de
contacto y otro para los lectores de tarjetas sin contactos, estas últimas son las
llamadas Tarjetas Híbridas, conviene señalar que ambos chips no se comunican
dentro de la tarjeta. Ahora, una Tarjeta Combi es aquella que posee un solo chip
que lleva ambos interfaces incluidos y por tanto las aplicaciones del interfaz sin
contacto pueden comunicarse con las aplicaciones del interfaz de contacto. En
ambos tipos de tarjetas el interfaz sin contacto es usado para aplicaciones que
requieren rápidos tiempos de transacción y el interfaz de contacto es usado para
esas aplicaciones que requieren la mayor seguridad posible.
1. MultOS 4. StarCOS
2. JavaCard 5. MFC
3. Cyberflex
1.4 APLICACIONES
1. Activadores: se denomina así a las tarjetas, ya que por un lado, son los
elementos que ponen en funcionamiento (activan) al hardware con el que se
relacionan y por otro lado, con su utilización a través de dichos equipos
Tarjetas Inteligentes - Capítulo 1
(interfaces) activan la relación de clientela con el emisor haciendo dicha relación
operativa.
2. Interfaces: es el hardware que pone en contacto al usuario del activador
con su intermediario financiero, bien sea directamente o bien sea a través de un
operador de medios de pago.
3. Intermediarios: pueden ser vistos desde una perspectiva "personal"
(describiendo quienes son), pero es más adecuada su visión como impulsores de
grandes redes de distribución y de gestión operativa, ya que, en última instancia,
posibilitan por adición la interrelación entre todos los agentes finales del mercado
"real" (compradores y vendedores).
4. Usuarios finales: son los clientes particulares (en aras de simplificar,
bien sean personas físicas o jurídicas) y los comerciantes o vendedores al detalle.
En una visión global de este esquema hay que observar el papel central de
los intermediarios, muy especialmente de las entidades financieras, que
posibilitan, mediante la emisión de tarjetas y la creación de infraestructuras
interconectadas de interfaces y operadores, la operatoria final de los agentes no
financieros. Las entidades financieras, con toda su infraestructura de medios de
pago ya existente en el mercado, van a ser unos de los principales impulsores de
la introducción de la tarjeta inteligente, activando principalmente su aplicación
como monedero electrónico.
Este entorno, cada vez más sofisticado tecnológicamente (lo que no implica
que tenga que ser operativamente más complejo), es caldo de cultivo perfecto
para la introducción de la tecnología de la TI. Ya que, como se ha explicado
antes, la tarjeta inteligente posee una mayor capacidad de almacenar información,
puede gestionar activamente tanto la información que posee como la que recibe
de otro dispositivo y, muy importante, se puede insertar en procedimientos
operativos de muy alta seguridad, nos hallamos ante un elemento que puede
perfectamente incorporarse junto con otros dispositivos en redes operativas de
alto valor añadido. Por ello cada vez más nos vamos a ir encontrando en un
entorno en el que todo tipo de dispositivos (ATMs, TPSs, TPVs, PCs, TV digital,
teléfonos particulares y públicos, vehículos...) tendrán incorporado un
lector/grabador de tarjetas inteligentes.
Por lo anterior, cada vez serán más los entornos en que se podrá utilizar la
Ti, incluso en algunos entornos (Ej. Internet) podrá llegara ser obligatorio para la
realización de determinadas operaciones (accesos a bases de datos, comercio
electrónico), ya que las tarjetas inteligentes son el vehículo idóneo como soporte
de certificados SET (Secure Electronic Transaction), que posibilitarán la
realización de todo tipo de transacciones electrónicas de forma totalmente segura.
Por todo ello, por lo menos, podemos prever sin dificultad la integración de
esta tecnología en los actuales sistemas de medios de pago. Las Tls no van a
Tarjetas Inteligentes - Capítulo 1
aportar nada novedoso en sí mismo ai entorno de servicios y productos de las
entidades financieras pero sí van a posibilitar una materialización de la relación de
clientela financiera mucho más conveniente y satisfactoria para los clientes, que
van a poder disponer de forma más efectiva de aquellos productos y servicios que
atiendan adecuadamente sus necesidades. Y, además, posibilitarán la
disponibilidad de otros servicios adicionales de mayor valor añadido que los
servicios auxiliares que hoy en día se anexan a las tarjetas financieras de banda
magnética.
SI
• Un expediente portátil de una o más aplicaciones es necesario o deseable.
• Los expedientes probablemente requieren la puesta ai día en un cierto
plazo.
• Los expedientes se interconectarán con más de un sistema automatizado.
• La seguridad y confidencialidad de los expedientes son importantes.
ENTONCES
Capítulo 2
2.1.1 FORMATOS DE LA TI
Con la variedad de tarjetas disponibles hoy en día, las cuales son usadas
para todos los posibles propósitos y tienen un amplio rango de dimensiones, es a
menudo difícil determinar si una tarjeta particular es realmente una tarjeta ID-1. A
más del chip incrustado, una de las mejores características de identificación es el
espesor de la tarjeta. Si mide 0.76 mm y la tarjeta contiene un microcontrolador,
ésta puede ser considerada como una TI según el estándar ISO.
El formato convencional de una tarjeta ID-1 tiene la ventaja de ser muy fácil
de manipular. El formato de la tarjeta está especificado de tal forma que no sea
muy larga, como para poder llevarlo en una billetera, ni tan pequeño como para
perderla fácilmente. En suma, la flexibilidad de las tarjetas las hace más
convenientes que un objeto rígido.
El espesor debe ser 0,76 mm (0,03 pulgadas), con una tolerancia de ± 0,08
mm (± 0,003 pulgadas). Basados en estas definiciones, las dimensiones de una
tarjeta ID-1 pueden ser representadas como se muestra en la Figura 2.2.
= 3.18mm
54 mm
Figura 2.2 El formato ID-1: Espesor: 0,76 mm ± 0,08 rnm; radío de la esquina: 3,18 mm ± 0,30
.mm. Las dimensiones mostradas indican el lado de la tarjeta excluyendo tolerancias. (Referencia:
[WOLFGANG])
25 mm •
= 3,18mm
SI
33 mm
66 mm 0,76mm
16,40 mm
_
N
Figura 2.5 Tamaño relativo de los formatos ID-l, ID-00 e ID-000. (Referencia: [WOLFGANG])
Tarjetas Inteligentes - Capítulo 2 35
• Propiedades de encorvamiento
• Propiedades de torsión,
• Electricidad estática,
1500Ü
1500 V
IV '*
III
ni M'' lirnitn - i i n p r i n ruu
Hrniití superior dr l I0-25mm
,„«- máximo
/ .
, , . i U 123i mm mínimo
¡i ., d Idíjcta .T, ,__ ..„ - ,
-N * III 1 /.S; mm máximo
- I -^ -^ IV !9.S7mm mínimo
i i
}1 Cí z f - c3 C B A
ü* 1
| C2 |
i
.
1 C'i I
i i
. —— ,
1 C5 1
| C6 j
i
B
D
A
C
19^23 mm mínimo
20,93 mm mínimo
21,7? mm máximo
23,47 mm mínimo
L——J L=~ £ 243 1 mm máximo
| C4 | | C& | F 26,01 mm mínimo
G 26.S5 mm máximo
S?
lír nile izq uier do de ^ H 23,55 mm mínimo
la ta ríela
Figura 2.9 Posición de los contactos relativa al cuerpo de la tarjeta. (Refe?-encia; [WOLFGANG])
2 mm
.7 mm
Figura 2.10 Dimensiones mínimas de los contactos como se especifica en ISO/IEC 7816-2.
(Referencia: [WOLFGANG])
Figura 2.11 Diferentes formas de acomodar el chip, el campo de estampado en relieve y la banda
magnética en unaTI, de acuerdo con el estándar ISO 7816-2. (Referencia: [WOLFGANG])
Chip individual
cuadrado de 5rnm
Hostia de Silicio
diámetro >1QO rnrn
2 Referencia: [WOLFGANG]
Tarjetas Inteligentes - Capítulo 2 41
Contactos de una
Tarjeta Inteligente
Microcir cuitarla
Energía
Reset
Lamina de contacto
Pegamento Pegamento
Cuerpo de la tarjeta
4. Inserción del chip en la tarjeta. Una vez que el módulo y la tarjeta estén
preparados, los dos se reúnen durante una operación de inserción. Un agujero se
hace en la tarjeta y el módulo se pega en él. Este agujero es producido
Tarjetas Inteligentes - Capítulo 2 42
3 Referencia: [WOLFGANG]
4 Referencia: [WOLFGANG]
Tarjetas Inteligentes - Capítulo 2 45
4MHz-
SMHz-
2MH2-
1 MHz-
Figura 2.15 Comparación de las 3 clases de voltaje y rangos de frecuencia fijados como se
especifica en el estándar ISO/EEC 7816-3 y en la enmienda 1. (Referencia: [WOLFGANG])
Las Tls tienen ya sea seis u ocho contactos sobre el lado frontal, los cuales
forman el interfaz eléctrico entre el terminal y el microcontrolador en la tarjeta.
Todas las señales eléctricas se pasan a través de esos contactos. Sin embargo,
de acuerdo a ISO/IEC 7816-2, dos de los ocho contactos (C4 y C8) están
reservados para los contactos auxiliares AUX1 y AUX2, los cuales podrían ser
usados en el futuro para interfaces tales como USB.
Hasta finales de los ochentas, fue necesario aplicar un voltaje externo para
programar y borrar la EEPROM, dado que los controladores usados entonces no
tenían bombas de carga. El contacto C6 fue reservado para este propósito. Sin
embargo, desde inicios de los 90s éstas han sido prácticamente estandarizadas
para generar este voltaje directamente en el chip usando una bomba de carga,
portante este contacto no ha sido usado desde hace mucho. No obstante, éste no
puede ser empleado por algunas otras funciones, ya que éstas podrían tener
conflictos con el estándar ISO. De este modo, toda TI tiene un contacto que no
tiene una función real, pero el cual debe mantenerse presente. Toda vez que el
contacto de voltaje de programación yace entre otros dos que son necesarios
para la operación de la tarjeta, éste no puede ser simplemente eliminado. Esto
reduce en algo los inconvenientes de tener un contacto superfluo.
Figura 2.16 Fotografía de la zona de contacto entre un cable y una almohadilla del
microcontrolador de una TI, ampliada 1000 veces (Referencia: [WOLFGAKG])
O IBA
O MHz 1 MHz 5 MHz 10 MHz 15 MHz 20 MHz
tasa de reloj
Esta fórmula es útil para calcular un valor estimado inicial, pero hay que
recordar que el consumo de corriente no solo depende de la frecuencia del reloj,
sino también del suministro de voltaje, la temperatura y por supuesto del tipo de
chip.
parte porque permite a los osciladores ya presentes en los terminales ser usados
como la fuente de la señal de reloj para el chip.
Toda vez que las Tls succionan solo unos pocos microamperios desde la
línea de reloj, apagar el reloj podría a primera vista parecer un poco curioso. Sin
embargo, la cantidad de potencia ahorrada dentro del terminal es substancial, por
tanto esto puede ser meritorio en ciertas aplicaciones.
Tabla 2.2 Características eléctricas de E/S bajo condiciones de operación normales. (Referencia:
[CARDWERK])
Tabla 2.3 Características eléctricas de VPP bajo condiciones de operación normales. (Referencia:
[CARDWERK])
Tabla 2.4 Características eléctricas de CLK bajo condiciones de operación normales. (Referencia:
[CARDWERK])
Tabla 2.5 Características eléctricas de RST bajo condiciones de operación normales. (Referencia:
[CAKDWERK])
Tabla 2.6 Características eléctricas de VCC (Clase A) bajo condiciones de operación normales.
(Referencia: [CARDWERBC])
en el terminal está ligada al nivel de +5V vía una resistencia de 20kQ, como se
muestra en la Figura 2.18, esto, en combinación con la convención acordada de
no enviar nunca un nivel activo 5V evita cualquier problema que podría ocurrir si
las dos partes intentan manejar la línea de datos a dos diferentes niveles como
resultado de un error de comunicación. Cuando" sea que la línea de E/S tenga que
ser puesta en un nivel +5V durante las comunicaciones, la parte en cuestión
simplemente pone su salida en un estado de alta impedancia y la línea se levanta
a! nivel de +5V por la resistencia.
terrninai tarjeta inteligente
línea BS
datos
GND
Figura 2.18 Circuito del canal E/S entre el terminal y la tarjeta inteligente. (Referencia:
[WOLFGANG])
Por otro lado, un reset frío ocurre cuando todas las líneas de suministro se
colocan en los estados que especifica el estándar ISO. La operación de reseteo
de ia tarjeta se detalla más adelante.
Los circuitos eléctricos no deben ser activados hasta que los contactos
estén conectados al terminal esto como se dijo antes para evitar posibles daños a
cualquier tarjeta que quiera establecer una sesión.
La señal de reloj se aplica al contacto CLK al tiempo TO. La línea E/S será
puesta en estado Z dentro de 200 ciclos de reloj de la señal de reloj (t2) que está
siendo aplicada al contacto CLK (tiempo Í2 luego de TO).
GND
VCC
VPP
E/S
(IR)
iiiiiiiiniminmiiiniimimii3
E/S
(SH)
; r T2 í
70 T1
región indefinida
Figura 2.19 Secuencias de activación y desactivación de las tarjetas inteligentes acorde al estándar
ISO/EEC 7S16-3, los intervalos ti y t2 yacen en los rangos 400/f < ti < 40.000/f y t2 < 200/f,
40.000/f < t3. IR: Reset interno, AL: Reset asincrónico, SH: Reset sincrónico. (Referencia:
[WOLFGANG])
Con una tarjeta que responde sincrónicamente, el terminal coloca todas las
líneas a estado L (ver Figura 2.20). VCC es energizado, VPP es puesto en estado
idle, CLK y RST se mantiene en estado L, E/S se pone en modo de recepción en
e! terminal, RST deberá mantenerse en estado H por al menos 50 ps (t12), antes
del retorno otra vez al estado L
reloj mientras el reset está en alto. El intervalo de tiempo entre la bajada de los
bordes sobre los contactos CLK y RST es t11.
Vcc / '
VPP
t!2
Reset / \
tío ti
•x,1 '.?
Reloj / 1 \. 2 \i e / 3 \7
ti 3
Figura 2.20 Reset de la tarjeta cuando espera una respuesta sincrónica, (Referencia:
[CARDWERK])
El primer bit de datos se obtiene como una ATR sobre la línea E/S mientras
CLK está en estado L y es válido después de un intervalo t13 desde la caída de la
señal sobre RST.
NOTAS:
1) Se asume que el estado interno de la tarjeta está definido antes del reset. Por
esto el diseño de la tarjeta tiene que evitar la operación impropia.
9 Referencia: [WOLFGANG]
10 Referencia: [WOLFGANG]
Tarjetas Inteligentes - Capítulo 2 69
Región de memoria
común
conmutador al banco ^^s,
de memoria 1 banco cJe m
(D
cambio de (2)
registro
1 ^T ^
Í4) \)
conmutador al banco
de memoria 2
•-v- •v^
Ijaneo detr
i•
Figura 2.21 Acomodamiento básico de una memoria dividida en algunos bancos y el flujo de
programa asociado. Este ejemplo muestra dos subrutinas localizadas en dos diferentes bancos de
memoria que son llamadas desde una región común de memoria. Los números en paréntesis
indican la secuencia de eventos en el proceso. (Referencia: [WOLFGANG])
El primer paso dentro del lenguaje de 32 bits tuvo lugar en 1993 con el
proyecto European CASCADE ('Chip Architecíure for Smart Card and portable
Tarjetas Inteligentes - Capítulo 2 71
"Referencia: [VVOLFGANG]
Tarjetas Inteligentes - Capítulo 2 72
H—H H H
20 jim 14 um 14 Jim I4um
Figura 2.22 Comparación del área de una sola celda-bit para varios tipos de memoria.
(Referencia: [WOLFGANG])
Todos los datos de variables de aplicación, junto con algunas partes del
sistema operativo, pueden de este modo ser guardadas en la EEPROM para
hacer un uso óptimo de la misma, la cual toma una cantidad relativamente grande
de espacio sobre la matriz y es por lo tanto costosa.
— ROM
— PROM
— EPROM
— EEPROM
— Flash EEPROM
'—FRAM
Como su nombre lo indica esta memoria solo puede ser leída mas no
escrita, esto implica que no requiere energía para mantener los datos
almacenados.
Una ROM de Tls contiene la mayoría de rutinas del COS, así como varias
funciones de test y diagnóstico. Esos programas están construidos dentro del chip
por su fabricante cuando éste es construido. Esto se'hace por la preparación de
una plantilla de la ROM del código de programa y luego usando esa plantilla para
'quemar' el programa en el chip usando un proceso litográfico. En este caso los
datos, los cuales son los mismos para una carrera de producción, también pueden
ser ingresados en la ROM en el proceso de fabricación.
Tarjetas Inteligentes - Capítulo 2 74
¿-y
cargando los capacitores de la bomba de carga descargando los capacitores de la bomba de carga
„„„ _r-n__jrzL
5V
fittro/buffer capacitor I
Figura 2.25 Principio de operación de un circuito de una bomba de carga durante la carga
(izquierda) y descarga (derecha). (Referencia: [WOLFGANG])
En las Tls, [a RAM es la memoria usada para mantener datos que son
almacenados o alterados durante una sesión. El número de acceso es ilimitado,
la memoria RAM necesita una fuente de energía para su operación. Si la energía
es apagada o falla temporalmente, el contenido de la RAM será indefinido.
Una celda RAM consiste de algunos transistores, conectados tal que ellos
trabajan como un multivibrador biestable. El estado de este multivibrador
representa el valor almacenado de un bit en la RAM. La RAM usada en Tls es
estática (SRAM), lo cual significa que su contenido no tiene que ser refrescada
periódicamente. Esto es debido a que no depende de un reloj externo, en
contraste a una RAM dinámica (DRAM). Es importante para la RAM ser estática,
ya que debe ser posible parar la señal de reloj de una TI. Con RAM dinámica,
esto podría causar que la información almacenada se pierda.
Referencia: [V/OLFGANG]
Tarjetas Inteligentes - Capítulo 3 78
Capítulo 3
Sistemas operativos, protocolos de transmisión y comandos de
las tarjetas inteligentes.
A inicios de 1990, existían muy pocos SOs para Tls. Esto sucedió en parte
debido a la memoria de capacidad muy limitada con la que contaban los
procesadores en aquellos días. Por lo que el SO era diseñado para una
determinada aplicación y no contaba con una librería de rutinas amplia en la
ROM. La estructura de esos SOs era en su mayoría monolítica y solo podía ser
modificada con un alto costo. Luego se empezaron a diseñar SOs estratificados
(divididos en capas), en nuestros días aun mantienen esta estructura pero con
innumerables refinamientos.
Uno de los primeros COS2 fue STARCOS, este SO, que inició su desarrollo
en 1990, habilitó muchas aplicaciones para ser almacenadas, usadas y
administradas independientemente en una sola TI, incluso en aquellas tempranas
fechas. Con el paso del tiempo, e! término COS llegó a ser aceptado a través de
todo el mundo como una designación para un sistema operativo de tarjetas
inteligentes. Éste, a menudo forma parte del nombre del SO como en 'STARCOS'
Los COSs en su evolución han pasado por las mismas fases que los
demás SOs. El programa original de propósito especial para una soia aplicación
fue en varias ocasiones generalizado y extendido. El resultado final fue un SO
estructurado y de propósito general que era fácil de usar.
Los SOs modernos para GSM tienen cualidades tales como administración
de memoria, múltiples árboles de archivos y otras, lo cual les brindaba
características muy cercanas a las que proveían los SOs multiaplicación. Ellos
pueden administrar muchas aplicaciones independientemente mientras prevé la
interacción entre ellas. La mayoría de ellos también tienen muy complejos estados
de máquina y muy amplios sets de comandos y algunos de ellos soportan muchos
protocolos de transmisión de datos. Un moderno SO para Tls debe ser capaz de
correr la tercera parte del código de programa en la tarjeta. Todo SO moderno
tiene una estructura dividida en capas, donde únicamente la capa mas baja
depende del hardware.
aplicación
aplicación aplicación
1 Sis. Operativo |
hardware
Sis. Operativo
hardware hardware
Figura 3.1 Representación esquemática del desarrollo histórico de los COSs. (Referencia:
[WOLFGANG])
otras partes del software del COS normalmente no poseen procesos que
dependen del tiempo de manera crítica.
Dado que las Tls son usadas en áreas de aplicación en las cuales la
seguridad es un factor muy importante, el usuario de la tarjeta y/o e! proveedor de
la aplicación deben tener una confianza considerable en la integridad del
productor del sistema operativo. Lo más reciente tiene cada oportunidad para
tomar ventaja desleal del sistema entero por medio de aberturas de seguridad
deliberadamente introducidas. Por ejemplo, consideremos una TI que se carga
con cierto valor de dinero y que el comando para cargar dicha suma ha sido
manipulado de tal forma que puede ser recargado sin autorización. Tales
escenarios son la razón por la que pocos sistemas operativos han llegado a ser
establecidos para su funcionamiento hoy en día. El riesgo de que un ostensible
sistema operativo seguro contenga un caballo de Troya es significativamente
más grande si éste viene de un pequeño y desconocido vendedor que si viene'de
una firma bien conocida en este campo. Sin embargo, recientemente ha habido
un esfuerzo creciente para evaluar los COS de acuerdo al 1TSEC o su sucesor,
Criterio Común, para conseguir un nivel más alto de inteligibilidad y seguridad
considerando tales escenarios.
Figura 3.2 La figura de la izquierda muestra el particionamiento típico de una RAM de 256 bytes
para un COS programado en assembler y la figura de la derecha la organización de la memoria de
una RAM de 6 Kbytes para una TI de telecomunicaciones de alto rendimiento cuyo sistema
operativo ha sido generado usando lenguaje C. (Referencia: [WOLFGANG])
datos de fábrica
sisteme operativo
[EDC
programa de [a aplicación
ÍEDC
región de archivo
memoria libre
Figura 3.3 Ejemplo de la partición de una EEPROM para un COS. (Referencia: [WOLFGANG])
Sobre la porción protegida del sistema operativo, existe una región que
contiene código de programa de aplicación adicional. Si se necesita, esta región
Tarjetas Inteligentes - Capítulo 87
memoria
refilón DF1 (archivo dedicado O
mamerto Ubre
memoria de
reglón DF2 (archivo dedicado 2)
Figura 3.4 Particionamiento simple de la región de archivos de un COS que soporta algunas
aplicaciones independientes y físicamente separadas. (Referencia: [WOLFGANG])
3.1.4 ARCHIVOS DE LA TI
que los datos sean compartidos entre dos aplicaciones de una forma
técnicamente estética. En este caso, es importante que las específicas
condiciones de acceso en las dos cabeceras sean idénticas.
EF internos
EF de trabajo
Figura 3.5 Clasificación de estructuras de archivos de Tls de acuerdo con el estándar ISO/DEC
7816-4. (Referencia: [WOLFGANG])
Nivel DF
Figura 3.6 Los varios tipos de archivos en un árbol de archivos de una TI. (Referencia:
[WOLFGANG])
3.1.4.2.1 Archivos MF
3.1.4.2.2 Archivos DF
3.1.4.2.3 Archivos EF
Todos los datos de aplicación deben ser leídos o escritos desde el terminal
o en otras palabras, todos los datos que se desea sean para el mundo externo
(visto por la TI), son localizados en los EFs de trabajo. Los datos que contienen
tales archivos no son usados por el sistema operativo.
Toda vez que el MF es una clase especial de DF, esto no quiere decir que
en una TI de Simple Aplicación, todos los archivos de aplicación puedan ser
colocados directamente bajo el MF. En una TI típica de Simple Aplicación todos
los EFs pueden ser colocados ya sea directamente bajo el MF o en un solitario
DF. Las Tls con algunas aplicaciones tienen un correspondiente número de DFs,
en los cuales se colocan los EFs pertenecientes a la aplicación.
?f^,-e
EN 1 546-3
Capa OSI 7 EMV
capa aplicación GSM 11. 11, GSM 11.14
* I TSS1.1t3e.TS31. 111, TS 102.222
1
Capa OSI 2 ISO/EC7816-3 (T^O,T=1)
Capa enlace ISO/IEC 10526-4
USB spacif ¡catión (USB)
t 1
Capa OS1 1
1 1 ISQ/IEC7816-3 (contüa-Typa ixircis
ISO/IEC10536 (contactas caitis)
Caps física
ISO/IEC14443
ISCV1EC15803
Figura 3.7 El modelo OSI para comunicaciones entre el terminal y la TI. (Referencia:
[WOLFGANG])
En la práctica a menudo sucede que las Tls no soportan todas las opciones
de protocolos de transmisión, dada la [imitada memoria disponible.
Tarjetas Inteligentes - Capítulo 3 96
Es muy raro que un ATR tenga una longitud máxima permitida. A menudo
consiste de solo unos pocos bytes. Particularmente en aplicaciones en donde se
requiere que la tarjeta esté en uso rápidamente después de la secuencia de
activación, el ATR debería ser particularmente corto. Un ejemplo típico es el pago
de peaje usando una TI que se use como dinero electrónico. Si un vehículo pasa
a través de la compuerta de peaje rápidamente, esto debe ser posible para
debitar confiadamente de la tarjeta en el poco tiempo disponible.
Tarjetas Inteligentes - Capítulo 3 97
Tabla 3.1 Elementos de datos de la ATR y su asignación según el estándar ISO/IEC 7S16-3.
(Referencia: [WOLFGANG])
Elementos de datos Designación
TS Carácter inicial
TO Carácter de formato
TA1,TB1,TC1,TD13... Caracteres de iníerfaz
T1/T2, ... , Tk Caracteres históricos
TCK Carácter de veriñcación
Tarjetas Inteligentes - Capítulo 3 98
I—>| b1...b4
protocolo T T_Ü~
V
Existen varias vías por las cuales la comunicación con una TI puede ser
establecida. Existen también un número de métodos diferentes para la
resincronización de comunicaciones si ocurriera una perturbación. La
implementación exacta de los comandos, las correspondientes respuestas y los
procedimientos usados en el evento de errores de transmisión están definidos en
la forma del protocolo de transmisión. Un total de 15 protocolos de transmisión
han sido identificados y definidos en términos de sus funciones básicas. Esos
protocolos, los cuales son designados como T=' (por protocolo de transmisión)
mas un número secuencial, están resumidos en la Tabla 3.2.
Tabla 3.2 Resumen de protocolos de transmisión de acuerdo con ISO/DEC 7816-3. (Referencia:
[WOLFGANG])
Protocolo Significado
T=0 Asincrónico, halfduplex, orientado al byte, especificado en ISO/IEC 7816-3
Asincrónico, halfduplex, orientado a! bloque, especificado en ISO/IEC 7816-3 Enmienda 1
T=2 Asincrónico, fuil dúplex, orientado a! bloque, especificado en ISO/IEC 7816-4
full dúplex, no especificado aun
T=4 Asincrónico, halfduplex, orientado al byte, extensión de T=03 no especificado aun
T=5...T=13 Reservado para uso futuro, no especificado aun
T=14 Para uso nacional, no estandarizado por ISO
T=15 Reservado para uso futuro, no especificado aun
Aquí los datos son transmitidos usando tres líneas. La líneas de datos
bidireccional es utilizada tanto por el terminal como por la tarjeta para el
intercambio de bits. La línea de reloj transmite el reloj generado por el terminal a
la tarjeta. Este reloj provee la referencia para la transmisión de datos sincrónica.
La tercera conexión necesaria para la transmisión de datos es la línea de control.
Ésta determina lo que el chip hace, basado en los estados de las otras dos líneas.
Tarjetas Inteligentes - Capítulo 3 104
V ^ J
longitud de los datos es proporcionada solo por el parámetro P3. Éste indica la
longitud del comando o respuesta y está también especificado en el estándar
ISO/IEC 7816-3.
nign -
low •|_
i i i i t i i r
A V J A „ A
1 ' \t deinicio n \t de iniciobyle de dato n
tiempo de
segundad
Figura 3.10 Un byte transmitido vía el interfaz E/S sin errores usando el protocolo T—0.
(Referencia: [WOLFGANG])
niyri
low
1 \ i
~|
i
t
V
biíd e inicio n
"V
byte de dato n
J
bit de pa
\d
n
1
blí de inicio
t
indicador de error
Figura 3.11 Un error de transmisión se Índica en el protocolo T=0 por un nivel bajo en el interfaz
E/S durante el tiempo de seguridad, (Referencia: [WOLFGANG])
procedimiento (PB). Este byte ACK es codificado igual que el byte de comando
recibido. Al recibir el PB, el terminal envía exactamente el número de bytes de
datos indicados por el byte P3. Ahora la tarjeta ha recibido el comando completo y
puede procesarlo y generar una respuesta.
4- GET RESPONSE
P3=canrtidad de datos a ser
[datos][SW1][SW2] enviados [CLAJMS.P1 ,P2,P3]
~^ Secuencia comando-respuesta
completa.
Figura 3.12 Una secuencia de comunicación típica T=0 con datos tanto en el comando como en la
respuesta. (Referencia: [WOLFGANG])
Tabla 3.3 Tiempos de transmisión para algunos comandos típicos usando el protocolo T=0.
(Referencia: [WOLFGANG])
Comando Datos de usuario Datos de protocolo Tiempo deTx de datos
READ BINARY C: 5 bytes 18,75ms
R: 2+8 bytes
UPDATE BINARY C: 5+8 bytes 18,75ms
R: 2 bytes
ENCRYPT C: 5+8 bytes C: 5 bytes 37,50 ms
R: 2+8 bytes R: 2 bytes
otras capas que no sean las que están directamente involucradas con la
interpretación y modificación del contenido de ios datos transmitidos.
contiene los datos para la capa aplicación, e! cual es ya sea una APDU comando
enviado a la tarjeta o una APDU respuesta desde la tarjeta.
Tabla 3.4 Tiempos de transmisión para algunos comandos típicos usando el protocolo T=l.
(Referencia: [WOLFGANG])
Bloque S £-
(petición de extensión de tiempo -> Bloque
de espera)
4- Bloque S
" (aceptación de extensión de tiempo
-$ de esperad
Figura 3.14 Procedimiento para la extensión del tiempo de espera. (Referencia: [WOLFGANG])
Los datos de capa aplicación deben ser particionados tal que ninguno de
los segmentos resultantes sea más largo que el máximo tamaño del bloque del
receptor. Entonces el primer segmento es colocado en un campo de información
según lo acordado en el protocolo 7=1, provisto con campos de prólogo y epílogo
y enviado al receptor. El bit M (bit 'más datos1) se pone en el campo PCB del
bloque para indicar al receptor que la función encadenamiento de bloques está
siendo usada y que datos encadenados están siendo colocados en los bloques
que siguen. 7an pronto como el receptor ha recibido satisfactoriamente este
bloque de información con el primer segmento de datos de usuario, indica que
está listo para recibir el siguiente bloque I encadenado por medio del envío de un
bloque R cuyo número de secuencia N(R) es el mismo del contador de secuencia
de envío del siguiente bloque 1. Luego el siguiente bloque es enviado al receptor.
Este intercambio recíproco de bloques I y R continua hasta que el remitente emite
un bloque I con un bit M en el campo PCB indicando que éste es el último bloque
de la cadena (bit M=0). Luego de que este bloque ha sido recibido, el receptor
tiene todos los datos de capa aplicación y puede procesar el bloque completo.
s \
f
Terminal Bloque 1 1 Bloque 1 2
Figura 3.15 Ejemplo del encadenamiento de bloques para la transmisión de datos desde el terminal
a la tarjeta. (Referencia: [WOLFGANG])
Las APDUs que cumplen con el estándar ISO/IEC 7816-4 tienen por
finalidad ser independientes de la capa protocolo de transmisión.
Consecuentemente, el contenido y formato de una APDU no debe cambiar
cuando se usa un protocolo de transmisión diferente. Esto se aplica sobre todo a
los dos protocolos estándar, T=0 y T-1. Esta demanda de independencia del
protocolo afecta la estructura de las APDUs, dado que debe ser posible
transmitirla transparentemente usando tanto el protocolo orientado al byte T=0 y el
protocolo orientado al bloque T=1.
^ ^v J
Cabecera
Los dos bytes parámetro son principalmente usados para proveer más
información acerca del comando seleccionado por el byte instrucción. Dado que
de este modo ellos funcionan como conmutadores que seleccionan varias
opciones de comando.
desde la tarjeta (en el campo Le7). Segundo, contiene los datos para el comando
que son enviados a la tarjeta. Si el valor del campo Le es '00', el terminal espera
que la tarjeta devuelva la máxima cantidad de datos disponibles para el comando.
Ésta es la única excepción para la descripción numérica de la longitud.
Los campos Le y Le usualmente son un byte largo, pero ellos pueden ser
convertidos en campos que están cada tres bytes largos. Tales campos pueden
ser utilizados para representar longitudes sobre 65536, dado que el primer byte
contiene la secuencia de escape '00'. El estándar define estos tres bytes de
especificación de longitud para futuras aplicaciones. Debido a las limitaciones de
los actuales tamaños de memoria, éstas aun no han sido implementadas. Las
partes previamente descritas de la APDU comando pueden ser combinadas para
producir los cuatro casos generales ilustrados en la Figura 3.17
Figura 3.17 Los cuatro posibles casos de una APDU comando. (Referencia: [WOLFGANG])
V
Cuerpo Trailer
Código de regreso
(SW1 II SW2)
Figura 3.2-0 Esquema de clasificación del código de regreso como está definido en el estándar
ISO/IEC 7816-4. Los códigos de regreso C63XX' y '65XX' indican que los datos en la memoria no
volátil (EEPROM) han sido alterados, mientras que los restantes códigos C 6X' indican que esto no
ha ocurrido. (Referencia: [WOLFGANG])
Una tarea algo más difícil es aislar eléctricamente el contacto E/S, montar
un contacto falso encima de él y luego usar cables delgados para conectar ambos
contactos a una computadora. Con esta configuración, es fácil permitir que solo
ciertos comandos alcancen a la tarjeta o insertar comandos 'exteriores' dentro de
la secuencia de comunicaciones.
Estos dos tipos de ataques típicos pueden dar resultado sólo si los datos
secretos pasan sobre la línea E/S sin protección. La transmisión de datos por lo
Tarjetas Inteligentes - Capítulo 3 121
tanto debería ser diseñada tal que si algún atacante está en posición de escuchar
a escondidas una transmisión de datos e insertar sus propios bloques de
mensajes, esto no le permite tener ninguna ventaja.
Mecanismo de seguridad
algoritmo de criptografía
llave
argumento
De acuerdo con el estándar, todos los datos que no están codificados con
BER-TLV, lo cual significa que deben ser incrustados en objetos de datos (data
objets). Algunas etiquetas diferentes son usadas, como se muestras en la Tabla
3.5 el Bit 1 de cada etiqueta indica si el objeto de datos está incluido en los
cálculos de suma de verificación de criptografía. Si este bit no está puesto (Ej.
'BO'), el objeto de datos no está incluido en los cálculos, mientras que si está
puesto (Ej. B1), el objeto de datos está incluido.
Tabla 3.5 Etiquetas para objetos de datos de texto plano. (Referencia: [WOLFGANG])
Etiqueta Significado
'BO', e BT Codificado BER-TLV; contiene objetos de datos relacionados con
intercambio de mensajes seguro
'B2VB3' Codificado BER-TLV; contiene objetos de datos no relacionados con
intercambio de mensajes seguro
'SOySl' Datos no codificados con BER-TLV
C 99' Información de estado para intercambio de mensajes seguro
Etiqueta Significado
C SE' Suma de verificación criptográfica
'9A', Valor inicial para una firma digital
IBA1
£ 9E' Firma digital
Etiqueta' Significado
'S2V83' Criptograma; el texto plano es codificado BER-TLV e incluye objetos
de datos para intercambio de mensajes seguro.
e 84', £ 85 } Criptograma; el texto plano es codificado BER-TLV y no incluye
objetos de datos para intercambio de mensajes seguro.
'S6VS7' Indica el método de relleno usado:
'01'-relleno con 'SO 00 ...'
'02' -sin relleno
Etiqueta Significado
*823, '83' Criptograma; el texto plano es codificado BER-TLV e incluye objetos
de datos para intercambio de mensajes seguro.
'84','85' Criptograma; e! texto plano es codificado BER-TLV y no incluye
objetos de datos para intercambio de mensajes seguro.
£ S6', '87' Indica el método de relleno usado:
'Oí'- relleno con J SO 00 ...'
'02'- sin relleno
criptográfica (CCS o MAC) para proteger las APDUs contra manipulación durante
la transmisión. El procedimiento de 'modo combinado', por otro lado, es utilizado
para encriptar completamente los datos de aplicación, de modo que un atacante
no pueda sacar ninguna conclusión acerca del contenido de los datos de
comandos y respuestas que son intercambiados. Un contador de secuencia de
envío solamente es utilizado con uno de esos procedimientos. Este contador,
cuyo valor inicial es un número generado al azar, es incrementado por cada
comando y cada respuesta. Esto permite a ambas partes determinar si un
comando o respuesta ha sido omitido o insertado. Cuando un contador de
secuencia de envío se usa en combinación con el procedimiento de 'modo
combinado', APDUs idénticas aparecen como diferentes. Esto es conocido como
'diversidad1.
Dos bits en el byte clase (bit 1 y bit 2) son usados para determinar cuál
comando pertenece a cuál aplicación. Esto permite hasta cuatro canales lógicos,
así hasta cuatro sesiones con aplicaciones en la tarjeta pueden correr en paralelo.
Sin embargo, existe una limitación con respecto a la comunicación con varias
aplicaciones en la TI, la cual es que los procesos externos que accedan a la
tarjeta deben ser mutuamente sincronizados y no tiene permiso de interpaginar
sus comandos, dado que la APDU respuesta de la tarjeta no contiene ninguna
información acerca del canal lógico del comando que fue originado. Esto implica
que es imposible determinar externamente cuál código de regreso ha sido
Tarjetas Inteligentes - Capítulo 3 126
Algunos comandos son soportados por casi todos los COSs y tienen un
limitado número de opciones. Para tales comandos, las APDU comandos y
respuestas son completamente decodificados en su descripción.
Tabla 3.8 Funcionalidad del comando SELECT FILE acorde el estándar ISO/IEC 7816-4.
(Referencia: [WOLFGANG])
SELECT FILE
Comando * FID (si EF, DF o MF)
o
Nombre DF (si DF)
O
Camino al archivo desde el DF seleccionado en ese momento
O
Camino al archivo desde el MF
O
Switch: Selecciona el siguiente DF de nivel mas alto
O
Primer, último, siguiente, anterior DF (Si un AID parcial es
transmitido)
* Switch: Devuelve información acerca del archivo seleccionado
Respuesta * información del archivo seleccionado
* código de retorno
SELECT FILE
Comando [F1D=13F 00';
información adicional del archivo
no es necesario]
Búsqueda del archivo con FIO = '3F 00'
1F (archivo encontrado)
TH6N devuelvo code » OK
ELSE devuelvo code = archivo no
encontrado
Respuesta [código de regreso]
Figura 3.22 Secuencia de prueba del procesamiento del comando SELECT FILE. (Referencia:
[WOLFGANG])
Tarjetas Inteligentes - Capítulo 3 133
Los comandos read y write ante todo dan soporte al uso de Tls para el
almacenamiento seguro de datos. Estos comandos pueden ser usados para
escribir datos en los EFs apropiados y a continuación leer esos datos. Si esos
EFs tienen condiciones de acceso específicas, solo a usuarios autorizados se les
permitirá leerlos. Los datos son de esta manera almacenados en la tarjeta con
protección contra accesos desautorizados.
Externamente, esta memoria puede ser apreciada como un solo archivo con una
estructura transparente. Las primeras Tls fueron construidas de acuerdo al mismo
principio y las definiciones de comandos para la lectura y escritura transparente
de archivos data de este tiempo. Más tarde, cuando oíros tipos de estructuras de
archivos fueron definidos, nuevos comandos específicamente adaptados a esas
estructuras fueron definidos para usarlos con tales archivos. Como resultado,
existen dos tipos diferentes de acceso a los archivos.
Por esta razón esta clase de comandos debe ser dividida en comandos
para acceder a EF con estructuras transparentes y comandos para acceder a EFs
con otro tipo de estructura (cíclica, lineal fija y lineal variable). Sin embargo
algunos estándares (tales como EN 1546 para monederos electrónicos)
explícitamente establecen que los comandos de lectura de archivos con
estructura transparente podrían también ser usados para leer archivos con otros
tipos de estructuras. En cualquier caso, tales comandos pueden ser usados para
obtener datos adicionales acerca de la estructura interna del archivo.
permiten la selección implícita del archivo antes de que el acceso a los datos
ocurra, usando un parámetro corto suplementario FID.
WRITE BLNARY
Comando [offset = 3 bytes, número de taytes
a ser escritos = 2, dato = 'FO FO']
Respuesta [código de regreso] EF (código de regreso = O PC5
THENWRÍTEB1NARY satisfactorio
ELSE abortar
UP.DATE BtNARY
Comando [offset = 5 bytes. número de byies
a ser escritos= '2, daía = 'FO FO1]
Respuesta [código de regreso] ÍF (código de regresa = OfCj
THEN UPDATEBINARY satisfactorio
ELSE abortar
Figura 3.23 Accesando un archivo con una estructura transparente. (Referencia: [WOLFGANG])
ser definido separadamente para cada sistema operativo, dado que éste no puede
ser el mismo estado de borrar físicamente la memoria.
Figura 3.24 Ejemplo de acceso de escritura a un EF con una estructura transparente usando la
secuencia de comandos mostrada en la Figura 3.23. (Referencia: [WOLFGANG])
(a) contenido del archivo con READ BINARY
(b) contenido del archivo con WRITE BINARY
(c) contenido del archivo con UPDATE BLNTARY
El valor de este puntero puede ser colocado usando un comando READ, WRITE,
ÚRDATE RECORD o SEEK. El puntero del archivo en uso en esos momentos es
guardado mientras el archivo este seleccionado. Después que una selección
explícita o implícita de otro archivo es realizada satisfactoriamente, el valor del
puntero nuevamente es indefinido.
Juanita
Onket Enzo
is Black Sun
Figura 3.25 Accediendo a un archivo que tiene una estructura orientada al registro. (Referencia:
[WOLFGANG])
Fl<?t€Íi~rChiistian 09912111222
Figura 3.26 Ejemplo de una lista de números telefónicos en un archivo con una estructura e jíneal
fija'. (Referencia: [WOLFGANG])
ser usado para anexar registros a los archivos orientados a registros existentes,
Los datos para el nuevo registro entero son provistos junto con el comando. Una
relativamente compleja administración de memoria, en términos de Tls, es un
prerrequisito para la disponibilidad de este comando con su funcionalidad
completa. La función del administrador de memoria es crear un enlace entre el
nuevo registro y los ya presentes en el archivo. Luego es posible, dentro de los
límites de memoria disponible, añadir un número arbitrario de nuevos registros.
Sin embargo, a menudo el número de nuevos registros que pueden ser añadidos
es restringido para ahorrar recursos de memoria. En este caso, cuando es creado
un archivo orientado a registros, se reserva memoria como necesaria para añadir
futuros registros. Más tarde este espacio puede ser llenado usando comandos
APPEND RECORD. Una vez que se gasta este espacio libre, el comando
APPEND RECORD no puede ser usado otra vez en este archivo.
ÚRDATE RECORD
Comando[" Vera ". primero]
procesando el comando
Respuesta [código de regreso] LF ( código de regreso = O EQ
THEN ÜPDATE BINARY satisfactorio
ELSE abortar
ÜPDATE RECORD
Comando [" patty ".siguiente]
procesando ei comando
Respuesta [código de regreso] [F( código de regreso = OECj
THHN ÜPDATE BTNARY satisfactorio
ELSE abortar
READ RECORD
Comando \o de registro = 2]
procesando e! comando
Respuesta [" patty 11 |[ código de regreso ] T.F (código de regreso = O K1
THEN READ B.INARY satisfactorio
ELSE abortar
•ni1 n
Off09t
peírón de búsqueda m-byte
Tabla 3.9 Funcionalidad del comando SEEK acorde el estándar GSM 11.11. (Referencia:
[WOLFGANG])
SEEK
Comando * longitud de la cadena buscada
* cadena buscada
* offset
* modo de búsqueda (hacia delante desde el inicio, hacia atrás desde el
final, hacia delante desde la siguiente posición, hacia atrás desde la
posición previa)
* switch: devuelve el número de registro del registro localizado
Respuesta * número de registro (si es seleccionado por el switch)
* código de retorno
Tarjetas Inteligentes - Capítulo 3 142
SEEK
Comaffo'o [ buscar cadena = "Paity"||
dirección de búsqueda =" hacia atrás desde
el final" || enviar número de registro]
tesouesia [número de registro - 1 ] [ ]F franmi ccde = O3O
código de regreso] THEN "Patty" encontrado
ELSE "Pariy" no encontrado
En muchos SOs, las llaves usadas para autenticación son protegidas por
un contador de reintentos. Si el terminal intenta autenticaciones no satisfactorias
un número determinado de veces, la tarjeta bloquea la llave asociada para evitar
que se hagan pruebas de autenticación adicionales. Éste es un procedimiento
perfectamente aceptable con respecto a la seguridad del sistema, pero eso tiene
un inconveniente. E! reseteo del contador de reintentos para la llave de
autenticación a su valor inicial a menudo involucra muy complejos, difíciles
íogísticamente y costosos procedimientos administrativos. Consecuentemente,
algunos sistemas no tienen contadores de reintentos para llaves de autenticación.
Tarjetas Inteligentes - Capítulo 3 144
Por razones de seguridad, sólo llaves específicas para la tarjeta deberían usarse
para autenticación. Esas llaves pueden ser generadas desde una única función de
la tarjeta. Un número de serie o número de producción del chip es muy adecuado
para este propósito. Tales números no confidenciales (y por tanto públicos)
pueden ser leídos desde la tarjeta usando un comando adecuado. Actualmente no
existen estándares al respecto; aquí usamos el comando GET CHIP NUMBER. El
nombre del comando cambia de un SO a otro, como lo hacen los datos que son
intercambiados.
Capítulo 4
Técnicas de seguridad
Desde épocas remotas, una variedad de técnicas han sido usadas para la
identificación diferenciada de personas. En el campo de tecnología de la
información es una computadora la que debe identificar a un usuario en lugar de
una persona como en el pasado. A pesar de su éxito al realizar actividades
autómatas, las computadoras aun tienen tremenda dificultad en realizar tareas
inteligentes. Consecuentemente, el ingresar una contraseña vía un teclado ha
llegado a ser el método de identificación preferido. Los esfuerzos necesarios para
la comparación son mínimos, dado que esencialmente todo lo que la computadora
tiene que hacer es comparar la contraseña ingresada con un valor de referencia
almacenado y hacer una simple decisión de si/no. La comparación de
contraseñas eficazmente equivale a hacer una decisión referente a la
autenticidad de la identidad de la persona que está siendo probada.
Tarjetas Inteligentes - Capítulo 4 150
Básicamente existen sólo tres métodos que se pueden usar para identificar
una persona. Si se usa una contraseña, lo que se prueba es que la persona
conoce un secreto particular. Si e! o ella lo conocen, la conclusión es que la
persona sea el o ella quien dice ser. La segunda opción es para probar si una
persona posee un objeto particular. La tercera posibilidad es para probar
específicamente, características corporales únicas de una persona.
modificable puede ser alterado de acuerdo a los deseos del usuario o cambiado a
un número que el usuario encuentre fácil de recordar. Existe un peligro en esto,
dado que los números que muchas personas encuentran fáciles de recordar son
por ejemplo: "1234", "4711" y "0815". La TI no hace un chequeo para el uso de
tales números triviales, dado que no existe suficiente espacio de memoria para
almacenar la tabla necesaria. Sin embargo, sería perfectamente concebible para
el terminal, prohibir que el PIN sea cambiado a tales números. Para cambiar un
PIN, siempre es necesario ingresar el PIN, dado que de otro modo el atacante
podría siempre cambiar el PIN existente a uno de su propiedad.
x = mn (4.1)
P= V (4 2}
/mn { }
Donde:
¡ : número de intentos
n : número de posiciones
sido probadas contra cualquier ataque. Si los esfuerzos puestos en los ataques
están creciendo a niveles lo suficientemente altos, es posible conseguir el acceso
a cualquier sistema y manipularlo. Sin embargo, cada atacante potencial hace un
conciente o inconsciente análisis costo/beneficio para sí y sus objetivos. La
recompensa de quebrantar un sistema debe valer el tiempo, el dinero y el
esfuerzo invertidos en aquello que el atacante debe estar dispuesto a pagar para
conseguir su objetivo. Independientemente de si la recompensa es dinero o
prestigio dentro de un grupo con los mismos intereses, si no vale el esfuerzo,
nadie invertirá muchas energías en quebrantar un sistema o una TI.
¡ SEGURIDAD DE tA TI
PROTECCIÓN PASIVA
PROTECCIÓN ACTIVA
En principio, los ataques sobre las Tls pueden dividirse en tres tipos
diferentes: ataques al nivel social, ataques al nivel físico y ataques al nivel lógico.
Naturalmente, los tipos de ataques mixtos también ocurren en la práctica. Por
ejemplo, un ataque al nivel físico podría preparar la vía para un ataque
subsiguiente al nivel lógico.
Los ataques al nivel social son ataques que principalmente están dirigidos
contra las personas que trabajan con Tls. Éstos pueden ser diseñadores del chip
trabajando para fabricantes de semiconductores, diseñadores de software o, más
adelante en el ciclo de la vida de la TI, el portador de la tarjeta. Estos ataques solo
pueden ser parcialmente contrarestados por las medidas técnicas. Deben ser
contrarestados en primer lugar por las medidas organizacionales. Adquirir
disimuladamente un PIN mirándolo mientras es tecleado puede ser impedido
fácilmente suministrando pantallas visuales sobre cada lado del teclado. Los
ataques al nivel social en contra de los programadores de tarjetas se vuelven
inútiles por la construcción de los procedimientos públicos usados. En este caso,
la seguridad depende solo de las llaves secretas y de los conocimientos que
tenga el desarrollador de software no le sirven a un atacante. Los ataques sobre
las Tls al nivel físico usualmente requieren equipo técnico, dado que es necesario
obtener acceso físico al hardware del microcontrolador de la TI en una forma u
otra. Tales ataques pueden ser ya sea estáticos, lo cual significa que no es
Tarjetas Inteligentes - Capítulo 4 160
necesario un suministro de energía aplicado al microcontrolador o dinámicos, con
el microcontrolador funcionando. Los ataques físicos estáticos no imponen
restricciones de tiempo sobre el atacante, quien puede hacer su trabajo con su
propio ritmo. Con un ataque dinámico, por contraste, el atacante debe tener
equipos de acceso rápido para la adquisición y evaluación de ios datos.
Hasta ahora, la mayoría de ataques exitosos sobre Tls han sido a nivel
lógico. Esos ataques crecen de la pura reflexión o cálculo mental. Esta categoría
incluye criptoanalisis clásico, así como ataques que explotan los defectos
conocidos de los COS y caballos de Troya en el código ejecutable de las
aplicaciones de Tls.
Los ataques durante el desarrollo tienen relación con el diseño del sistema,
desarrollo del chip, desarrollo del sistema operativo y la generación de
aplicaciones, El término 'producción1 se usa en este contexto para referirse en
general a todo proceso utilizado para hacer hardware. Este cubre la totalidad del
rango desde la fabricación de la hostia por los fabricantes de semiconductores
hasta la personalización y envío de la tarjeta al usuario. El uso de la tarjeta se
refiere a la fase en la cual las Tls están en el campo, lo cual significa cuando han
sido usadas por el portador.
Tarj cías Inteligentes - Capítulo 4 161
4.2.1.2 Clasificación de atacantes
Tabla 4.1 Criterio para determinar el esfuerzo y costo requerido para un ataque sobre los
componentes de seguridad de hardware o software, basado en los prerrequisitos para un ataque.
(Referencia: [WOLFGANG])
4.3 CRIPTOGRAFÍA
OBJETIVOS DE LA CRIPTOGRAFÍA
CONFIDENCIALIDAD
INTEGRIDAD
AUTENTICIDAD
NO REPUDIACIÓN
Técnicas criptográficas
•ÍAsi métrico
-MD5
- RSA
-RPE-MD
Curvas elípticas
SHA.-1
•—DSA
Baradocr.DES
Generación deüaves
probar todas las llaves posibles con el conocimiento previo de una pareja de texto
plano y texto cifrado.
encriptíóii decri-páón
ent(lls;ve;texta plano) dec(llñYe;texto cifrado)
llave secreta
•57' igp -ge1 «ge» $71 'g-j' •££' < ^ 'F5' QB1 '371 'AE1 'AS1 'F91 'AA1 '94'
Figura 4.6 Operación del algoritmo DES para encriptar datos. (Referencia:
[WOLFGANG])
Las llaves para el algoritmo DES pueden ser creadas usando un generador
de números ramdómicos que produce un número ramdómico de 8 bytes, el cual
luego es chequeado contra las cuatro llaves débiles y las 12 llaves semi-débiles.
Si los valores calculados no coinciden con alguna de estas llaves fácilmente
quebrantables, se calculan los bits de paridad y el resultado es una llave DES.
llave
•o
bloque texto plano í bloque texto plano 2 bloque texto plano3
El primer bloque texto plano pasa por una operación XOR con un vector de
inicialización (a menudo conocido como IV) y luego es encriptado con el algoritmo
DES. El resultado es el texto cifrado, el cual a su vez pasa por una operación
XOR con el siguiente bioque de texto plano. El proceso continúa de esta manera
Tarjetas Inteligentes - Capítulo 4 172
con los siguientes bloques. Como una regla, el vector de inicialización esta
preconfigurado como nulo. Sin embargo, en algunos sistemas, un número
ramdómico de sesión específica es escrito en el vector de inicialización como un
sustituto de una llave temporal. Este número naturalmente debe ser conocido
cuando los datos son subsecuentemente deencriptados.
llave
vector deiruciáUzación
1
bloque texto airado!] bloque texto cifrado 2 bíoquó texto cifrado 3
El algoritmo triple DES tiene algunos nombres, tales como TDES, DES-3,
3-DES y 2-DES. Actualmente, los términos 'triple DES' y '3-DES' solo significan
que tres llaves de 56 bytes de longitud son usadas. Si la primera y la tercera
llaves son la misma, éste es conocido como 2-DES, pero si las tres llaves son
todas diferentes, la designación que a menudo se usa es 3-DES. La longitud de
llave siempre debe ser establecida con triple DES para que ninguna ambigüedad
se presente en el algoritmo.
4
encrpcn -í .. T .
encnpaon decnpaon j decnpaón
decripáón encripción
y v
encripción decripáon
Figura 4.9 Principio de operación de encripción de datos usando triple DES. (Referencia:
[WOLFGANG])
Dos años más tarde, Ronald L. Rivest, Adi Shamir presentan un algoritmo
que se basa en el criterio antes mencionado. Este algoritmo, el cual es conocido
como algoritmo RSA por las iniciales de sus inventores, es el algoritmo asimétrico
de criptografía más conocido y versátil que está en uso en la actualidad. Su
principio de operación muy simple se basa en la aritmética de enteros grandes.
Las dos llaves se generan de dos números primos grandes.
encripción: y
deencripción: x:
donde
x - texto plano
y = texto cifrado
e = llave pública
d = llave privada
secretas podrían ser determinadas de las Tis reales. Para evitar tal estrategia de
ataque desde el propio inicio, incluyendo cualquier comando de descarga de
datos es no deseado en el programa aun cuando esto ayudaría a disminuir el
costo de tiempo de desarrollo intensivo. No obstante, la presión de una fecha tope
y la complejidad constantemente creciente de ios Sistemas Operativos de Tis han
conducido a la socavación de este principio. Para garantizar que estas órdenes
que acompañan el proceso de desarrollo no están incluidas en Tis reales bajo
ninguna circunstancia, se realizan pruebas especiales durante el proceso de
fabricación de Tis para asegurar la inexistencia de tales órdenes.
Éste es un método muy efectivo para hacer las tarjetas más resistentes a
ataques 'desde adentro' ya que al menos dos desabolladores tienen que convenir
en el proceso de desarrollo en cualquier momento. Además, las inspecciones del
código fuente interno se realizan de forma regular para asegurar la calidad y para
monitorear el proceso de desarrollo.
difícil obtener información del chip con la ayuda de un procedimiento analítico. Por
consiguiente, la tecnología de semiconductores con tamaños estructurales de un
micrómetro y menos actualmente son consideradas como seguras. En e! futuro,
esto ciertamente cambiará.
Las así llamadas celdas estándar las cuales, por ejemplo, contienen un
procesador central o ciertos tipos de memoria, a menudo se usan para el diseño
de componentes relacionados con semiconductores. La ventaja cae en el hecho
de que los fabricantes de semiconductores pueden utilizar esos elementos
estándar para producir rápidamente una variedad de diferentes chips de alta
calidad. Este procedimiento fue desarrollado para la producción en masa de
productos que no toman en cuenta aspectos de segundad. Por tanto, esto no se
usa en la producción de microcontroladores de Tls debido a las siguientes
razones: la estructura y modo de funcionamiento de las celdas estándar es de
conocimiento público, lo cual le provee a un posible atacante de mucha
información que haría su trabajo más fácil.
Todos los buses internos en el chip conectan al procesador con los tres
tipos diferentes de memoria, ROM, EEPROM y RAM, no se dirigen a! exterior y
por consiguiente no pueden ser contactados. No hay posibilidad de que un
atacante intercepte o tenga influencia en los buses de direcciones, datos o control
del microcontrolador para obtener conocimientos respecto del contenido de
memoria. Usualmente, los buses son integrados en las capas más bajas del
semiconductor, lo cual dificulta el hecho de poder contactarlos directamente
desde la superficie. Adicionalmente, los buses en el chip son puestos en desorden
(scrambled) ya sea estáticamente, individualmente por chip o individualmente por
sesión, de modo que la función de los circuitos individuales de bus no pueden ser
Tarjetas Inteligentes - Capítulo 4 184
determinados por fuentes externas. Existen microcontroladores de Tls con la
característica de cambiar constantemente el proceso de scrambling de los buses
incluso durante una sesión que está ejecutándose.
Figura 4.13 Fotografía de varias celdas RAM magnificada 3000x: sin protección de capas
metálicas adicionales. La fotografía de abajo muestra los potenciales eléctricos de las
mismas celdas RAM que han sido medidos usando un haz de electrones con el chip en
operación. La distribución de ceros y unos en la RAM puede ser reconocida claramente.
(Referencia: [WOLFGANG])
00 01 02 OS 04 05 06 07 OS 09 06 01 19 03 04 05 40 07 10 09
10 11 12 13 14 15 16 17 1S 10 15 11 12 13 14 18 15
20 21 22 20 21 22 17 00 02
30 GO
40 09
Si un ataque tuvo éxito y los datos fueron leídos desde la memoria, sería
necesario contar con la llave pública para que la información obtenida pueda ser
entendida. Esto incrementa el esfuerzo requerido por parte del atacante dado que
ya sea debería conocer la ubicación de la llave almacenada o leer todos los datos
disponibles en el chip.
Figura 4.15 Capa pasiva moderna magnificada SOOOx. La separación de pistas es 4 uní y
el principio de funcionamiento de este detector se basa en la medición de resistencia.
(Referencia: [WOLFGANG])
ser removida químicamente, por lo que el chip está sujeto a un alto riesgo de
oxidación, lo cual puede destruirlo rápidamente. Un circuito sensor puede
determinar mediante la medición de resistencia o capacitancia si la capa pasiva
se encuentra en cada momento en su lugar. Si la capa no está o si sufrió algún
daño, una interrupción en el software del chip puede ser disparada o el chip por
completo podría ser desconectado del hardware, lo cual previene confiablemente
todo análisis dinámico.
f 1!
4 [U
IJ "
GPU CPU í [í RAM
t ir
_;s ,L,
p
_
ÍTT
L_ ir—i i£fl—
CPU; •i rr ' RA/vl CPU
T -ff
RAM
i U
i M • i '!X
!
4.6.1.2.4 Análisis dinámico y defensa: Medición del consumo de energía del CPU,
to volirnster
Vcc GND
reset -RST RFU
dock -CLK
data unnsf-r
GND
Figura 4.17 Diagrama del circuito de conexiones a un microcontrolador de Tls para hacer
mediciones simples de corriente usando resistencias en serie. (Referencia: [WOLFGANG])
Con este tipo de Tls falsas, sería posible al menos grabar un parte de las
comunicaciones con un terminal y subsecuentemente evaluar esta información.
Después de varios intentos, probablemente sería posible realizar parte de las
comunicaciones de forma exacta a la de una TI genuina. El hecho de que esta
tarjeta pueda tomar alguna ventaja es dudoso, ya que todas las aplicaciones
profesionalmente diseñadas tienen protección criptográfica para las actividades
importantes. Mientras no se conozca la llave secreta, el ataque no podrá ir más
allá de la primera autenticación. Este tipo de ataques solo pueden ser exitosos si
se conoce la llave secreta o la aplicación corre completamente sin ningún tipo de
protección criptográfica. Es altamente dudoso que algún beneficio que pudiera
obtenerse de este tipo de ataque sea lo suficientemente alto como para satisfacer
el esfuerzo que demanda.
Tarjetas Inteligentes - Capítulo 4 195
2.deducMOEUR 90 EUR
Los diseñadores de COS conocen una contramedida efectiva para este tipo
de ataque, la cual es el uso de operaciones atómicas. La característica de una
operación atómica es que es indivisible, lo que significa que esta operación es
realizada completamente o no del todo.
Existen dos métodos básicos para evitar este ataque. La defensa más
simple consiste en incrementar siempre el contador de reintentos antes de hacer
la comparación y luego decrementarlo según sea el caso. En este caso, el
Tarjetas Inteligentes - Capítulo 4 197
atacante no puede obtener una ventaja, independientemente de cuando él
interrumpe la energía a la tarjeta, dado que el contador de reintentos ya ha sido
incrementado. El segundo método de defensa es más complicado, pero provee
similar protección. En esta aproximación, el contador de reintentos es
incrementado después de una comparación negativa y escrito en una celda que
no está usada en la EEPROM después de una comparación positiva. Los dos
accesos de escritura ocurren al mismo tiempo en el proceso, por tanto el atacante
no puede sacar conclusiones con respecto al resultado de la comparación. El
aprende el resultado de la comparación solo después de recibir el código de
retorno y en este punto es muy tarde evitar un acceso de escritura al contador de
reintentos por corte de energía.
Hasta hace pocos años atrás, éste aun era un efectivo tipo de ataques
sobre las Tls. Sin embargo, hoy es un tipo de ataque conocido y las rutinas de
comparación son construidas tal que todos los dígitos de un PIN siempre son
comparados. Consecuentemente, no existe tiempo de diferencia entre un
resultado positivo o negativo luego de la comparación.
misma longitud para todas las combinaciones de datos en texto plano, datos en
texto cifrado y llaves.
Un tipo de ataque que es similar al uso de DFA para atacar la llave secreta
de un algoritmo criptográfico consiste en intentar afectar la ejecución del código
de programa perturbando la operación del procesador.
N\d con
ofíransmiTbuffoiy
start addr&ss
pointer
end addr&ss
C end
Figura 4.20 Ejemplo de una rutina no robusta para el envío del contenido de un buffet de
transmisión, la cual puede ser atacada exitosamente por la perturbación del procesador.
(Referencia: [WOLFGANG])
Tarjetas Inteligentes - Capítulo 4 201
Capítulo 5
Aplicaciones de las tarjetas inteligentes
Las Tls son adecuadas por su naturaleza para las aplicaciones de sistemas
de pago, dado que ellas pueden almacenar datos de manera fácil y segura y su
tamaño conveniente y robustez hacen que sea fácil de usar para todos. Los
sistemas de pago electrónico y el dinero electrónico ofrecen beneficios
significativos a todos los involucrados. Para los bancos y comerciantes, reducen
el costo asociado con el manejo de efectivo. Los monederos electrónicos que
están fuera de línea eliminan en gran medida los costos de telecomunicaciones
de datos para las transacciones de pago. Se reduce el riesgo de hurto y
vandalismo, dado que los sistemas electrónicos no contienen dinero que pueda
ser robado. Para los comerciantes, el hecho de que todas las transacciones sean
realizadas rápidamente también es un argumento persuasivo, dado que esto
significa que la administración de dinero puede ser optimizada. El dinero
electrónico puede ser transferido mediante cualquier canal de telecomunicaciones
deseadas, así no es necesario recolectar regularmente el dinero desde las
máquinas.
Tarjetas Inteligentes - Capítulo 5 203
Los clientes también se benefician de los nuevos métodos de pago, aunque
en menor grado. No siempre será necesario tener dinero en la mano y es posible
realizar pagos rápidamente a una máquina de venías o un dispensador de
boletos.
Operadores
tíBRí adiós
da pago
Tarjetas de crédito
Tarjetas de débito
Monederos electrónicos
2 Referencia: [WOLFGANG]
Tarjetas Inteligentes - Capítulo 5 209
Otra ventaja de este sistema es la forma en la que trata con las tarjetas
extraviadas o defectuosas. Éste es un asunto difícil, el cual hasta ahora ha sido
descuidado en otros sistemas que usan tarjetas multiaplicación. Si las
aplicaciones han sido cargadas en la tarjeta después de la personalización,
cuando el portador recibe una nueva tarjeta, el o ella deben contactar a todos los
proveedores de las aplicaciones para recargarlas en su tarjeta. Gracias al sistema
de arquitectura centralizada, la tarjeta inteligente de Lufthansa no tiene este
problema. Si se pierde una tarjeta o se vuelve defectuosa, el cliente recibe una
tarjeta nueva y la tarjeta antigua es bloqueada de lo ancho del sistema por medio
de su número. Esto no requiere una gran cantidad de esfuerzo logístico, dado que
todos los aeropuertos a los que sirve Lufthansa tienen acceso a los datos
necesarios la red bien establecida de Lufthansa.
Tarjetas Inteligentes - Capítulo 5 211
Sistema 1
Sistema 2
Sistema 3
PAGOS SEGUROS POR INTERNET: Las T!s ofrecen un medio seguro para
pagar por Internet que los consumidores exigen a medida que crece el comercio
electrónico. La adopción de normas comunes por parte de los emisores de
Tarjetas Inteligentes - Capítulo 5 220
tarjetas permitirá una interoperabilidad internacional de las tarjetas, de forma que
los pagos podrán hacerse a través de las fronteras nacionales.
Capítulo 6
Diseño de un ejemplo de aplicación
6.1 OBJETIVOS
6.2.1 ANTECEDENTES
6.2.2 REQUERIMIENTOS
• Datos administrativos
• Datos académicos
intentar aprobar dicha materia por dos ocasiones más como máximo. Es decir
que un estudiante podría terminar su carrera en el peor de los casos tomado
cada materia un máximo de 3 veces, lo que arrojaría un número de registros
de materia aproximadamente igual a 210, pero en la práctica ningún
estudiante tendrá entre sus planes terminar la carrera en aproximadamente 15
años que es lo que implicaría realizar lo antes expuesto. Por esta razón se ha
determinado que el 66% del valor anterior de registros sería un valor
aceptable. Lo que quiere decir 140 registros.
Por otro lado tenemos que ios datos de los registros son en su mayoría datos
numéricos, como: nota, número de matricula, período, año, créditos.
6.2.4.2 Kit
El kit, llamado AC-Kit Smart Card Development Pack, provee las siguientes
facilidades:
Como su nombre lo indica ésta es una Memory Card y cuenta con una
EEPROM de 1 KByte, posee también protección de escritura y seguridad lógica.
54
Número de 48
Cédula 42
Número 36
Único 30
24
18
Espacio utilizado por el fabricante 12
(Solo lectura) 6
0
Byte 1
Año
255 Años
Byte2
b8 bit 9 de nota I b7| b6| b5| bits no utilizados b4|b3 bit 10 y bit 9 de materia b2|b1 Matrícula
O O
0 1
bits de Nota 1 O
: Byte 4 +1 bit del Byte 2 1 1
Byíe 3
: Nota Máxirna= 51,2 8 bits de Materia
Byte 3 + 2 bits del Byte 2
1024 Materias
Byíe 5
b8|b7|Aprobac¡ón|bS|b5 Período b4 b3 b2 b1 Créditos
0 0 E 0 0 1 0 0 0 0 0
0 1 A 0 1 2 0 0 0 1 1
1 0 F 1 0 3 0 0 1 0 2
¡ 1 1 X 1 1 4 0 0 1 1 3
0 1 0 0 4
0 1 0 1 5
0 1 1 0 6
0 1 1 1 7
1 0 0 0 8
1 0 0 1 9
1 D 1 0 1Ü
1 0 1 1 11
1 1 0 0 12
1 1 0 1 13
1 1 1 0 14
1 1 1 1 20
Figura 6.2 Secuencia de Bytes escritos para cada registro y codificación, de los campos
Año, Nota, Período, Tipo de aprobación, Número de matrícula, Créditos, Número de
Materia.
Tarjetas Inteligentes - Capítulo 6 230
A partir del Byte ubicado en la dirección 174 (HAE) se escriben los registros
de cada materia utilizando para el efecto 6 Bytes por registro, en los primeros 5
bytes se encuentran codificados los datos de cada registro como se muestra en la
figura 6.2 y en el Byte número 6 el resultado de una operación XOR entre los
cinco anteriores.
INICIO)
Información:
Nombre, Número de Cédula, Materias
Ingrese Número único
tomadas. Número de materias aprobadas,
del estudiante
Créditos aprobados.
iFIN
Escribir cadena de
caracteres correspondiente
al número de cédula
¿EXISTIÓ
algún error al
abrir puerto: ¿Existió algún
Error al guardar
error al guardar
número de cédula
N. de cédula?
Transmitir código
de verif ¡copión
Registro 1 a registro final
¿Existió error
al transmitir código Error al transmitir
de verificación? código de verificación
Existió
Mostrar Byies escritos
error al guardar
y dirección del primer
N. único?
Byte escrito.
"
Error al guardar
Número de registros.
¿Existió algún
Número de materias
error al guardar
aprobadas o Total de
datos?
créditos acumulados.
Escritura satisfactoria!!!
Una vez que un número único válido ha sido ingresado en el ¡nterfaz visual
se muestran los datos del estudiante como se muestra en la figura 6.5, Caso
contrario se muestra el mensaje de error de la figura 6.6.
¿. ESCRITOR Q
n i- —.O
C a-.17^
aoar ~ llI
r-- .i i r- - J-L Lj .. t.
r- C U R R I C U L U M ACADÉMICO r n T i i n i A M T 1 1
Año Per M a l Nota C>d Aprb Código Materia
1339 2 1 3£ 7 E IGF117 ALG-EBRA LINEAL L^
1933 2 1 33 7 A IG-F127 CALCULO r")
1933 2 1 30 3 A IGFJL38 FÍSICA GENERAL I
1939 2 1 30 4 E IGF144 QUÍMICA GENERAL I
2000 1 1 31 6 E IGF216 ECUACIONES DIFERENCIALES
2000 1 1 31 6 E IGF22S CALCULO VECTORIAL
2000 1 1 30 8 E IGF23S FÍSICA GENERAL II
2000 1 1 25 4 A IGF244 QUÍMICA GENERAL II
2000 1 1 35 2 E IGF2S2 COMPUTACIÓN [v]
[-DISTRIBUCIÓN DE BYTES TM u r u n n i A
Dirección <= Byte 1 Xo r B^ite 2 Xor Byte 3 Xor B^te 4 Xor Byte 5 = Byte 6
i
Figura 6.5 Pantalla del interfaz del escritor con un número único válido ingresado.
ERROR!!!
^ESCRITOR \M¿
Buscar oaiir
Buscar | |38209Ü5 Grabar Salir |
>i i_
Nombre r-Mat. Apr. -
[ |CHIM8QR¿ZQ TORO ROBERTO LUIS )l 8033941 45 [219 1*
- u u n n i u u L U M MURUC.MIUU no i U U I H H i I L
Año Per Mat Nota Crd Aprb Código Hatería
1399 2 1 3S 7 E IGF117 ALGEBRA LINEAL |-/v]
1993 2 1 33 7 A IG-F127 CALCULO j"™]
1399 2 1 30 8 A IGF 13 8 FÍSICA GENERAL I
1399 2 1 30 4 E IG-F144 QUIHICA G-El-JEBAL I
2000 1 1 31 6 E IGF216 ECUACIONES DIFERENCIALES
2000 1 1 31 6 E IG-F226 CALCULO VECTORIAL
2000 1 1 30 8 E IG-F238 FÍSICA GENERAL II
2000 1 1 25 4 A IGF244 QUÍMICA GENERAL II
2000 1 1 35 2 E IGF252 COHPUTACION (vj
i - L M b 1 H I U U U U N U t 0 1 1 tu UN M t M U h l A '
Dirección <= Byte 1 Xor Byte 2 Xor Byte 3 Xor Byte 4 Xor Byte 5 = Byte G
OAE= 174 - < = ( 6 3 =39 ) Í83 =13SJ (20 =45 ) (SE =94 J (17 =23 ) = ( 3 F -143)UJ
OB4= 130 < = ( 6 3 =93 J (83 =136) (2E =4S i (4A =74 ) (57 =87 ) = ( D 8 =2lS) H
OEA= 18S - < = C 6 3 =33 ) (38 =136) (2F =47 J (2C =44 ) (£3 =88 ) = (BO =176)
OCO= 132 <=Í63 =33 ) (88 =136) (30 =48 ) (2C =44 ) (14 =20 ) = ( E 3 =227)
OCS= 138 -<=(64 =100) (88 =136) ¡31 =49 ) (36 =54 ) (6 =S ) = ( E D =237)
— JLUUJ 1BG -J.OG/ \¿¿. -OU } ^JD -it i i. D -O } —\JÍZ —¿.3&¡
Por otro lado para leer los registros se requiere realizar primero la
decodificación de aquellos datos que están escritos en la tarjeta como son: nota,
año, período, créditos, tipo de aprobación y código de la materia, este último no
es el código que aparece en el curriculum sino un número entre 1 y 857 utilizado
para optimizar la aplicación. Con este número se consulta la base de datos, más
precisamente la tabla SAENOMAT para obtener el nombre de la materia y el
código respectivo. De la misma forma se procede con cada registro.
Tarjetas Inteligentes - Capítulo ó 238
Esta tarjeta
no contiene
datos val i dos
¿Existió
algún error al
abrir puerto?
Leer cadena de caracteres
correspondiente al número único
Cave anotar que para cada registro se realiza la comprobación de que los
datos no hayan sido alterados, esto tomando en cuenta los Bytes de control de
errores anteriormente mencionados y que fueron escritos como es lógico en la
etapa de escritura. El interfaz de usuario para el proceso de lectura es el
mostrado en la figura 6.11.
Tarjetas Inteligentes — Capítulo 6 239
¿ Existió aloXin
error al leer
nombre?
dLos dalos han
sido alí erados?
El Nombre del
¿Los daios non
Estudiante ha
sido alterados?
si do alterado
e. LECTOR Ujnjil
C el
-.17»
r-Leer N u m único- O II I |
|:;uL;¡J',LJJL;!jL : UUUUÜ^
Esto permite saber si los datos han sido alterados y por tanto mostrar un
mensaje que indica esta situación. Además la forma de codificar los datos
(materia, nota, créditos, tipo de aprobación, etc.) es tal que los datos no pueden
ser intuidos directamente al leer los bytes que conforman los diferentes registros.
Por otro lado cuando se habla del código de verificación con que cuenta la
tarjeta, se habla de un código que debe ser transmitido a la tarjeta para que ésta
permita que se puedan escribir o borrar los datos que contiene en su memoria
EEPROM.
• Código de verificación
Lector y programador; $ 30
1 a 49 $ 2,30
50 a 99 $2,10
Como se puede apreciar los costos son muy bajos por lo que un estudiante
bien podría adquirir una tarjeta de éstas para almacenar su curriculum.
Tarjetas Inteligentes - Capítulo 6 243
Visto de esta forma se deberán adquirir tantas tarjetas como alumnos estén
estudiando en la carrera y el costo de las tarjetas será menor mientras más
tarjetas se compren. Por otro lado se requieren tantos lectores-programadores
como sitios autorizados para realizar la actualización de información en la tarjeta
existan y tantos lectores como sitios donde se requiera acceder a la información
almacenada en la tarjeta existan.
Tarjetas Inteligentes - Conclusiones y Recomendaciones 244
CONCLUSIONES Y RECOMENDACIONES
Las tarjetas inteligentes son muy variadas, pero esto no implica dificultad a
[a hora de usarlas en los diferentes ámbitos de la vida diaria, en otras palabras se
han vuelto un elemento tan cotidiano que no se requieren muchos conocimientos
para manipular una tarjeta inteligente, esto se debe en parte a los estándares que
se relacionan con ellas, los cuales ponen la base sobre la que se sitúa el
desempeño total de las tarjetas inteligentes. Los estándares más conocidos son el
ISO7816, el cual presenta una base muy sólida en cuanto a las características
físicas, propiedades eléctricas y protocolos de transmisión. El estándar EMV que
provee un juego de reglas para las tarjetas inteligentes utilizadas en aplicaciones
de pago. Además existen muchos otros, los cuales son emitidos por organismos
de estandarización mundial, nacional, gubernamental o industrial y que tienen
también mucha importancia dependiendo del área de aplicación para la que se
está utilizando la tarjeta inteligente.
El camino que han recorrido las tarjetas inteligentes hasta llegar a estos
días es muy largo, lo que ha permitido que este elemento sea probado con éxito
en muchas aplicaciones y se mantenga aun vigente con mucha demanda. La
clave de esto es esencialmente su facilidad de uso, visto desde el punto de vista
del usuario final, para quien en muy fácil llevar una tarjeta inteligente consigo e
insertarla en un lector (si se traía de una tarjeta con contactos) o simplemente
pasar cerca de él (si es una tarjeta sin contactos) para realizar una transacción.
este punto es importante mencionar que en lo que tiene que ver con los
microprocesadores la tendencia es llegar a usar microprocesadores de 32 bits,
que permitirían contar con tarjetas inteligentes de alto desempeño, mientras que
por el lado del sistema operativo se busca optimizarlo al máximo, lo que implica
ocupar el menor espacio físico y contar con la mayor funcionalidad.
[WOLFGANG]
WOLFGANG, Rankl; WOLFGANG, Effing. Smart Card Handbook. Tercera
Edición. Editorial John Wiley & Sons, Ltd; Estados Unidos de Norteamérica;
2004.
[GUTHERY]
GUTHERY, Scott; JURGENSEN, Tim. Smart Card Developer's Kit Editorial
Macmillan Computer Publishing; Estados Unidos de Norteamérica; 1998.
[MCKINNEY]
MCKINNEY, Bruce. Programación avanzada con Microsoft Visual Basic 5.0.
McGrawHill, España, 1997.
[FREETUTORIALS]
INTRODUCTION TO SMART CARDS.
www.smartcard.co.uk/downloads/freetutorials.pdf
[NETHANDBOOK]
http://www.nethandbook.com/schist.htm
[CARDWERK]
www.cardwerk.com
[ROOTSHELL]
www.rootshell.be/-dhar/downloads/ SmartCards~lntroduction.pdf
[INGENICO]
http://www.ingenico-
ca.com/app/index.cfm?locationid=5488cfuseaction=datafile.displayFile
[LIBURUTEGIA]
suseOO.su.ehu.es/liburutegia/Iiburuak/congresos/014/12247255.pdf
[DYDIA]
http://www.didya.com
[ACS]
http://www.acs.com.hk
Tarjetas Inteligentes - Anexo A
Anexo A
Líneas de código
•Bloque para buscar el curriculum de un alumno luego de haber ingresado su número único
Private Sub Commandl_Click()
Dim db As Connection
Set db = New Connection
db.CursorLocation = adUseClient
db.Open "PROVIDER=MSDASQL;dsn=E5critor;uid=;pwd=;"
Set adoPrimaryRS = New Recordset
adoPrimaryRS.Open "SELECT SAEMATER.CODEST,SAEESTUD.NOMEST, SAEESTUD.TOTCRED,
SAEESTUD.CÉDULA/SAEMATER.ANOMAT, SAEMATER.CODMAT, SAENOMMA.NOMMAT, SAEMATER.SUMATOM,
SAEMATER.SEMMAT, SAEMATER.NUMMTR, SAEMATER.APRUEBM, SAEMATER.CREDMAT, Sñ-SNOMMA. NUMMAT FROM
SAEMATER/ SAENOMMA/SAEESTUD WHERE SAEESTUD.CODEST = SAEMATER.CODEST AND SAEMATER.CODMAT =
SAENOMMA.CODMAT AND SAEMATER.CODEST = '" & TeXtl.Text 5 '" Order by SAEMATER.ANOMAT,
SAEMATER.SEMMAT,SAEMATER.CODMAT ", db, adOpenStatic, adLockOptimistic
Dim oText As TextBox
'Enlaza los cuadros de texto con el proveedor de datos
For Each oText In Me.txtFields
Set oText.DataSource = adoPrimaryRS
Next
mbDataChanged = False
If txtFields{9).Text = "" Then
TextS.Text = ""
Liscl.Clear
List2.Clear
MsgBox "No existe Número único o no hay materias registradas!!!", vbOKOnly,"ERROR"
Exit Sub
Else
Frame2.Visible = True
Command2.Visible = True
Commandl.Enabled = False
Listl.Clear
List2.Clear
End If
'Mostrar en el primer list los registros de materias tomadas por el estudiante, luego de
'haber verificado que su número único existe y tiene materias registradas en la base de
'datos
MatAprob = O
Tarjetas Inteligentes - Anexo A A-3
If adoPrimaryRS.RecordCount < 141 Then
For NumReg = 1 To adoPrimaryRS.RecordCount
'Contar materias aprobadas
If txtFields(8).Text = "A" Or txtFields(8).Text = "E" Then
MatAprob = MatAprob + 1
End If
sAno = CStr(txtFieldsÍOJ)
sCodMat = CStr(txtFields(1))
sMateria = CStr(txtFields(2))
sNota = CStr(txtFields(3)}
sPeriodo = CStr(txtFields(4))
sCreditos = CStr(txtFields(6))
sMatricula = CStr(txtFields(7))
sAprobacion = CStr(txtFields(8))
Listl.Addltem (sAno + " " + sPeriodo + " " * sMatricula -í- " " 4 - sNota + "
" + sCreditos + " " + sAprobacion + " " + sCodMat + " " + sMateria)
1 Pase al siguiente registro
Cali Siguiente
Next NumReg
TextS.Text = MatAprob
Cali Primero
Else
Listl.Addltem ("i¡¡ El número de registros es mayor que 140 !!!")
Exit Sub
End If
End Sub
'Abrir el puerto
Lector = AC_Open(ACR20_115200, 0) 'Velocidad 115200 kbps/ puerto: COH 1
If Lector < O Then
MsgBox "Error al abrir puerto COM 1"
Exit Sub
End If
'Inicializar CRC
apdu.Dataln(61) = O
'La Function WriteSAC construye un byte a partir de tres variables que son las siguientes:
's, es un entero que puede variar entre 1 y 4
'a, es una letra que puede ser: E, A, F o X
'c, es un entero que puede variar entre puede ser 0,1,2,3,4,5,6,7,8 o 20
Function WriteSAC(s As Byte, a As String, c As Byte) As Byte
Auxs = s
Auxc - c
Auxa = a
'Lazo para comparar SAC ingresado con todas las posibilidades
For WriteSAC = O To 255
'Convertir el decimal en Hex y rellenar
HSAC = CStr(Hex(WriteSAC))
If Len(HSAC) = 1 Then
HSAC = "O" + HSAC
End If
'Separar en dos Nibles
HSA = Left(HSAC, 1)
HC = Right(HSAC, 1)
DSA = Val("&h" S HSA)
DC = Val("&h" S HC)
If DC = 15 Then
c = 20
Else
c = DC
End If
If Auxs = s And Auxc = c And Auxa = a Then
Exit Function
End If
Next WriteSAC
End Function
'La función WritetlotNumMater construye un byte a partir de tres variables que son las
1 siguientes:
'La primera es un entero que varia entre O y 1
'la segunda es un entero que varia entre O y 3
'y la tercera es un entero que varia entre 1 y 4
Function WriteNotNumMater(DNotMSb As Byte, DMatMSb As Byte, m As Byte) As Byte
Tarjetas Inteligentes - Anexo A A-8
AuxDNotMSb = DNotMSb
AuxDMatMSb = DMatMSb
Auxm = m
For WriteNotNumMater = O To 255
'Convierto Decimal en HEX y relleno
HNotNumMater = CStr(Hex{WriteNotNumMater))
If Len(HNotNumMater) = 1 Then
HNotNumMater = "O" + HNotNumMater
End If
HNot = Left{HNotNumMater, 1)
HNumMat = Right(HNotNumMater, 1)
DNot = ValC'&h" & HNot)
DNumMat = Val("fin" s HNumMat)
'Bloque de verificación
If Verificación = apdu.DataOut(6) Then
Cali ReadNotNumMater(apdu.DataOut(2))
Cali ReadSAC(apdu.DataOut(5))
Nota = ReadNota(DNotMSb, apdu.DataOut(4))
Materia = ReadNota(DMatMSb, apdu.DataOut(3))
Cali Command2_Click
sAno = CStr(apdu.DataOutd) •*• 1900)
sCodMat = txtFields(6).Text
sMateria = txtFields(5).Text
sNota = CStr(Nota / 10)
sPeriodo - CStr(s)
sCreditos = CStr(c)
sMatricula = CStr(m)
sAprobacion = a
Listl.Addltem (sAno 4- " " -f- sPeriodo + " " + sMatricula + " "
+ sNota + " " + sCreditos -r " " -f sAprobacion + " " -i- sCodMat + " " -í- sMateria}
PBar.Valué = PBar.Valué -f 1
Else
MsgBox "Registro " -r CStr (NumReg) •*• "adulterado"
Exit Sub
End If
Next NumReg
Else
MsgBox "Tarjeta no Escrita"
End If
End Sub
mbDataChanged = False
db.Glose
End Sub
'Cerrar el programa
Private Sub Command3_Ciick()
Dnload Me
End Sub
Tarj etas Inteligentes - Anexo A A-13
'Cerrar el programa
Prívate Sub Form_ünload(Cancel As Integer)
RetCodigo = AC_EndSession(Lector)
RetCodigo = AC_Close(Lector)
End Sub
'Función que permite recuperar el bit más significante de Nota (DNotMSb), los dos bits mas
'significantes para decodificar materia (DMatMSb), y el número de matrícula (m)
Sub ReadNotNuniMater (BNotNumMater As Byte)
HNotNumMater = CStr(Hex(BNotNumMater))
If Len(HNotNumMater) = 1 Then
HNotNumMater = "O" -i- HNotNumMater
End If
HNot = Left(HNotNumMater, 1)
HNumMat = Right(HNotNumMater/ 1)
DNot = ValC'&h" s HNot)
DNumMat = ValC'sh" s HNumMat)
'Esta función permite recuperar la nota almacenada en la tarjeta para cada registro
Function ReadNota(DNotMSb As Byte, DNotLSB As Byte) As Long
HNotLSB = CStr(Hex(DNotLSB))
If Len(HNotLSB) = 1 Then
HNotLSB = "O" + HNotLSB
End If
HNota = CStr(Hex(DNotMSb)) + HNotLSB
ReadNota = Val£"&h" & HNota)
End Function
Tarjetas Inteligentes - Anexo A _____ A-14
If DC = 15 Then
c = 20
.Else
c = DC
End If
End Sub
'Sección de tarjeta:
i .__ -,__—_
Global Const AC_AM8KS = 8
i -,_— _„—
'Conjunto de comandos ACI
'ACR Interfaz
Type AC_SESS!ON
CardType As Byte
SCModule As Byte
ATRLen As Byte
ATR As String ''• 256
HistLen As Byte
HistOffset As Byte
ApduLenMax As Long
End Type
Type AC_APDÜ
CLA As Byte
INS As Byte
Pl As Byte
P2 As Byte
Le As Long
Le As Long
Dataln(l To 256} As Byte
DataOutd To 256) As Byte
status As Long
End Type
Type AC_INFO
nMaxC As Long
nMaxR As Long
CType As Long
CStat As Byte
CSel As Byte
szRev As String * 256
nLibVer As Long
iBaudRate As Long
End Type
Tarjetas Inteligentes - Anexo A A-16
•Sección de prototipo
Declare Function AC_Open Lib "ACSR2032.DLL" (ByVal ReaderType As Long, ByVal ReaderPort
As Integer} As Long
Declare Function AC_Close Lib "ACSR2032.DLL11 {ByVal hReader As Long) As Long
Declare Function AC_StartSession Lib "ACSR2032.DLL" (ByVal hReader As Long, Session As
AC_SESSION) As Long
Declare Function AC_EndSession Lib "ACSR2032.DLL" (ByVal hReader As Long} As Long
Declare Function AC_GetInfo Lib "ACSR2032.DLL" {ByVal hReader As Long, Info As AC_INFO)
As Long
Declare Function AC_SetOptions Lib "ACSR2032.DLL" (ByVal hReader As Long, ByVal OType As
Integer, ByVal Valué As Integer) As Long
Declare Function AC_ExchangeAPDU Lib "ACSR2032.DLL" (ByVal hReader As Long, apdu As
AC APDU) As Long
. ESCRITOR
- Buscar
Commandl -CommandS
MFielcisO) 1
1
r C U R R I C U L U M ACADÉMICO ESTUDIANTIL
1 -TextS
S. VECTOR
-Leer Num único -
uisJM
Qalír ,
Texí2- r ||I
1 ¡-Cree ¡tos- r Mat. Apr. -¡
¡U \
- Curriculum Académico 1- , _|- .'1
Liscl
Anexo B
Tarjeta SLE 4428
B.l CARACTERÍSTICAS
EEPROMcon
decodificodor
L
ir
(Sene rodo r de Sampling de Control de
Voltaje, Senerador columna. Programación
de corriente Comparador
jk jL
t
1
' ''
borrado es posible solo byte por byte, aun si solo se desea borrar un bit, pero los
bits pueden ser escritos individualmente. Cada byte puede ser protegido
individualmente de escritura/borrado por la puesta de un bit de protección
(EEPROM -> ROM). El bit de protección puede ser programado solamente una
vez y no puede ser borrado.
Ingreso de PSC
Anexo C
Librería ACSR 20
Reader PC
Layer
RS-232/ USB
C.l DESCRIPCIÓN
Aplicación consistente (ACSR20 API) para que la aplicación opere sobre e! lector
de tarjetas y la correspondiente tarjeta insertada, ACSR20 se comunica con el
lector ACR30 vía las facilidades del puerto de comunicación proporcionadas por el
sistema operativo, ACSR20 se ha diseñado para ser independiente de la
plataforma proveída de allí que se requiere una mínima modificación sobre el
módulo de comunicación del ACSR20 para adaptarse a diferentes ambientes de
funcionamiento.
E! API ACSR20 define una vía común de acceso al lector ACR30. Los
programas de Aplicación invocan a ACSR20 a través de las funciones de interfaz
y realizan operaciones sobre la tarjeta insertada a través del uso de comandos
ACI. El archivo de cabecera ACSR20 está disponible para el desabollador de
programas con el contenido de las funciones de prototipo y macros descritas a
continuación:
Tarj etas Inteligentes - Anexo C C-:
C.3.1.1 AC_ÁPDU
TypeAC_APDU
CLA - As Byte
1NS As Byte
P1 As Byte
P2 As Byte
Le As Long
Le As Long
Status As Long
End Type
C.3.1.2ACJSESSION
TypeAC_SESSlON
CardType As Byte
'SCModule As Byte
ATRLen As Byte
HistLen As Byte
HistOffset As Byte
ApduLenMax As Long
End Type
C.3.1.3 ACJNFO
La forma de definir la estructura es la siguiente;
Type ACJNFO
nMaxC As Long
nMaxR As Long
CType As Long
CStat As Byte
CSel As Byte
NLibVer As Long
LBaudRate As Long
End Type
C.3.2.1 ACJDpen
Esta función abre un puerto y retorna una manija de lector valida para el
programa de aplicación.
Formato:
Parámetros de entrada:
Respuesta:
Parámetros Definición/Valores
ReaderType Tipo de lector y velocidad de comunicación
ACR10= El lector seleccionado es ACR10 (9600bps)
ACR2O El lector seleccionado es ACR20 (57GOObps)
ACR2G_57600= El lector seleccionado es ACR20 (57600bps)
ACR2CM 9200- El lector seleccionado es ACR20 (19200bps)
ACR2CM15200= El lector seleccionado es ACR20 (115200bps)
ACR20_9600= El lector seleccionado es ACR20 (9600bps)
ACR_AUTODETECT = Autodetectar el lector
RearerPort Puerto en el que está conectado el lector
AC_COM1=Puerto de comunicaciones estándar 1
AC_COM2=Puerto de comunicaciones estándar 2
AC_COM3=Puerto de comunicaciones estándar 3 (Válido solo en el
driverW¡n32)
AC_COM4=Puerto de comunicaciones estándar 4 (Válido solo en el
driverWin32)
AC_USB=Usando el puerto de comunicaciones USB
AC_PCSC=Usando el componente PCSC para accederá! lector
Observaciones:
C.3.2.2AC_Close
Formato:
Parámetros de entrada:
Parámetros Definición/Valores
hReader Una manija de lector válida previamente abierta con ACjOpenQ
Respuesta:
C.3.2.3 AC_StartSession
Formato:
Declare Function AC_StartSession Lib "ACSR2032.DLL" (ByVal hReader
As Long, Session As AC_SESSION) As Long
Parámetros de entrada:
Parámetros Definición/Valores
hReader Una manija de lector válida previamente abierta con ACjOpenQ
Session.CardType El tipo de tarjeta seleccionado para esta sesión
Session.SCModule El número de módulo de seguridad seleccionado (requerido solo cuando
tipo de tarjeta =AC_SCModule)
Parámetros de salida:
Parámetros Definición/Valores
Session.ATR Answer to reset retornado por la tarjeta
Session.ATRlen Longitud del ATR
Session.HistLen Longitud de datos históricos
Sessíon.HistOffset Offset de los datos históricos
Session.APDULenMax Longitud máxima de APDU soportada
Respuesta:
Observaciones:
C.3.2.4 AC_EndSession
Formato:
Parámetros de entrada:
Parámetros Definición/Valores
hReader Una manija de lector válida previamente abierta con AC_Open()
Respuesta:
C.3.2.5 AC Exchange
Esta función envía un comando APDU para una tarjeta vía el puerto abierto
y retorna la respuesta de la tarjeta. Favor referirse a la sección 2.3.3 Comandos
ACI para una descripción en detalle sobre como llenar estos parámetros.
Formato:
Parámetros de entrada:
Parámetros Definición/Valores
hReader Una manija válida retornada por ACjDpenQ
Apdu.CLA Instrucción de clase
Apdu.INS Instrucción de código
Apdu.P1 Parámetro 1
Apdu.P2 Parámetro 1
Apdu.Dataln Buffer de datos a ser enviados
Apdu.Le Número de Bytes en Apdu.Dataln a ser enviados
Apdu.Le Número de Bytes que se espera recibir
Tarjetas Inteligentes - Anexo C C-l 1
Parámetros de salida:
Parámetros Definición/Valores
Apdu.DataOut Buffer de datos que contienen la respuesta de la tarjeta
Apdu.Le Número de Bytes recibidos en Apdu.DataOut
Apdu.Status Bytes de estado SW1, SW2 retornado por la tarjeta
Respuesta:
C.3.2.6AC Getlnfo
Formato:
Declare Function AC_Getlnfo Lib "ACSR2Q32.DLL1' (ByVal hReader As
Long, Info As ACJNFO) As Long
Parámetros de entrada:
Parámetros de salida:
Parámetros Definición/Valores
Info.szRev Código de revisión del lector seleccionado
Info.nMaxC El número máximo de bytes de datos del comando
Info.nMaxR El número máximo de bytes de datos que pueden ser recibidos al ser
transmitidos en una respuesta
Info.CType Los tipos de tarjetas soportados por este lector
Info.CStat El estado actual del lector O = ninguna tarjeta insertada 1 = tarjeta insertada,
no energizada 3 = tarjeta energizada
Info.CSel El tipo de tarjeta seleccionado actualmente
Info.nLibVer Versión de librería actual
Info.lBaudRate La tasa de transmisión actualmente en uso
Respuesta:
C.3.3.1ACIJRead
Este comando esta disponible para todos los tipos de Memory Cards. La
estructura de parámetros se define como sigue:
C.3.3.2 ACIJWrite
Este comando esta disponible para lodos los tipos de Memory Cards. La
estructura de parámetros se define como sigue:
C.3.3.2 ACI_Verify
Dependiendo del tipo de tarjeta de la sesión que se este en uso, Key Index
(Pl) puede contener alguno de los siguientes valores.
AC X76F640
AC X76F100 0x01 8 Password de escritura
0x02 8 Password de lectura
ACSR20 card
type ACS Atmel Gemplus SGSThomson Siemens Xicor
AC AM104 AM104 AT88SC06 GPM103 ST1305 SLE4406
AC AM221 AM221 - GAM226 - SLE4436 -
AC SLE4404 AM416 - GPM416 - SLE4404 -
AC GPM896 - - GPM896 - - -
AC AT101 - AT88SC101 - ~ - _
AC ATI 02 - AT88SC102 - - - -
AC AM8KP AM8KP - - - SLE4418 -
AC AM8KS AM8KS - - - SLE4428 -
AC AM2KP AM2KP - - - SLE4432 -
AC AM2KS AM2KS - - - SLE4442 -
AC IIC AM1KF AT24C01 GFM1K ST14C02C X24026
AM2KF AT24C02 GFM2K ST14C04C X24165
AM4KF AT24C04 GFM4K X24645
AT24C08 GFM8K
AT24C16
AC XIIC AM64KP - - - - -
AC AT1604 - AT88SC1604 - - - -
AC AM256 AM256 - - - - _
AC AM4KP AM4KP - - - - -
AC X76F041 - - - - - X76F041
AC X24645 - - - - - X24645
AC ST1335 - - - ST1335 - -
AC ST1333 - - - ST1333 - -
AC X76F128 - - - - - X76F128
AC X76F640 - - - - - X76F640
AC X76F100 - - - - - X76F100
AC TO AHT=OMCUcard
AC T1 AllT=1MCUcard
AC SCModule AIIT=0/T=1securitymodule¡nSlMMform
Tarjetas Inteligentes - Anexo C C-16
Anexo D
Lector y Programador ACR30
D.l INTRODUCCIÓN
El ACR30 puede operar tarjetas MCU con el protocolo T-0 o T=1. La Tabla
D.1 explica cual es el valor que se debe ingresar para seleccionar una tarjeta de
entre las distintas soportadas.
Tarjetas Inteligentes - Anexo D D-2
o GemplusGPM103
o Siemens
Pl = 0a5
I = 25 a 50
Leds de estado
El led verde en el lado frontal de! lector indica el estado de activación de!
interfaz de la TI.
Paridad: ninguna
Bits de datos: 8
Bits de parada: 1