Tarjetas Inteligentes Guillermo Glez. de Rivera Escuela Politécnica Superior Universidad Autónoma de Madrid INTRODUCCIÓN ¿Que son las tarjetas inteligentes? Son tarjetas de plástico similares en tamaño y otros estándares físicos a las tarjetas de crédito que llevan estampadas un circuito integrado. Este circuito puede tener sólo una memoria o contener un microprocesador (CPU) con un sistema operativo que le permite una serie de tareas como: – Almacenar – Encriptar información – Leer y escribir datos, como un ordenador Propiedades de las Tarjetas • Seguridad – En el almacenamiento de la información – En las operaciones que realizan • Portabilidad de información • Coste asequible – Las entidades financieras pueden afrontar su adquisición • Bien aceptadas por los usuarios finales Evolución de las Tarjetas (1) • Tarjetas de banda magnética – Banda magnética en su parte posterior – Definición: ISO 7811 – Ventajas: • Muy extendidas • Muy bien aceptadas por el usuario final – Inconvenientes: • “Relativa” seguridad (fácil fraude) • Sólo son capaces de almacenar información • Poco espacio de memoria (180 bytes) • Poca flexibilidad Evolución de las Tarjetas (2) • Tarjetas de memoria – Tarjetas con un chip integrado capaz de almacenar información de forma segura – Se las empezó a considerar como “tarjetas inteligentes”. – Definición: ISO 7816 – Ventajas: • Almacenamiento más seguro de la información • Mayor espacio de memoria Evolución de las Tarjetas (3) – Inconvenientes: • No son totalmente seguras • Sólo capaces de almacenar información • No son versátiles/flexibles • No pueden ser multiaplicación – Ejemplo de entornos de aplicación: • Telefonía: tarjetas para cabinas telefónicas • Mundo comercial: planes de fidelización de clientes Evolución de las Tarjetas (4) – Tarjetas de sólo Memoria: ROM (Datos de identificación) EEPROM (Datos de Ia aplicación) Entrada/Salida Reloj Canal de control Alimentación GND – Tarjetas con Memoria protegida: ROM (Datos de identificación) Circuito de Seguridad EEPROM (Datos de la aplicación) Entrada/Salida Reloj Canal de control Alimentación GND Evolución de las Tarjetas (4) • Tarjetas inteligentes con microprocesador – Tarjetas con un microprocesador capaces de almacenar y procesar información seguramente – Son las llamadas tarjetas inteligentes – Definición: ISO 7816 / ISO 14443 – Ventajas: • Dispositivo seguro por definición • Capaces de procesar información (además de almacenarla) • Mayor versatilidad (al poder ser programadas). Evolución de las Tarjetas (5) • “Gran” espacio de memoria (16 KBs, 64 KBs, ...) • Pueden ser multiaplicación (monedero electrónico, información bancaria, telefonía, transporte) – Inconvenientes: • Lenguajes de programación de tarjetas dependientes del hardware. • Programación de las tarjetas en ensamblador. • Aplicaciones desarrolladas exclusivamente por el proveedor de la tarjeta. Evolución de las Tarjetas (6) – Ejemplos de entornos de aplicación: • Mundo de la telefonía: tarjetas inteligentes de teléfonos móviles (módulos SIM) • Mundo de las comunicaciones: tarjetas inteligentes con claves privadas para acceso seguro • Mundo bancario: monedero electrónico (micropagos) y comercio electrónico Tarjetas con Microprocesador (1) • ¿Por qué son seguras las tarjetas inteligentes? – Seguridad de los componentes • El chip es a prueba de falsificación y no puede ser duplicado. • Capacidad de detección de – Ataques por Rayos X y luz Ultravioleta. – Voltajes inusuales. – Cambios de frecuencia de reloj. – Seguridad del sistema operativo • Control de los accesos a memoria • Protección de datos y ficheros Tarjetas con Microprocesador (2) – Seguridad del sistema operativo y de las transacciones. • Autentificación del portador. (mediante PIN) • Autentificación de la tarjeta a través de un sistema de claves diversificadas. – – – Encriptación/ Desencriptación DES. Encriptación/ Desencriptación RSA. Firma digital: MD5. Tarjetas con Microprocesador (3) • Disponen de un microprocesador con elementos adicionales: – ROM: Contiene el Sistema Operativo – EEPROM: Contiene datos de usuario (nombre, PIN, etc) y la aplicación (códigos de las instrucciones del SO, datos, etc) – RAM: Utilizada por el microprocesador – Puerto de E/S: Normalmente registro se entrada/salida serie ROM CPU EEPROM RAM Entrada/Salida Reloj Reset Alimentación GND Smartcard ST19 Platform Ics • CPU – Enhanced 8-bit CPU with extended addressing modes – Extensive security features including EEPROM Flash programming, memory security, firewalls and clock management; voltage and clock frequency sensors Hardware DES accelerator with library support for symmetrical algorithms 1088-bit modular arithmetic processors plus library support for asymmetrical algorithms Two random number generators (FIPS140-2 and AIS31 compliant) Fire_walled customer specific IP block Common criteria certification up to EAL5+ and private scheme security certifications • Security – – – – • Memory – – – – – Up to 224 KBytes of user ROM with partitioning Up to 8 KBytes of RAM with partitioning Up to 66 KBytes of user EEPROM with partitioning and OTP area EEPROM 10 years data retention Up to 500,000 erase/write cycles endurance 1 to 32/64 bytes erase/program (2ms max.) • Connectivity – – – – Contact ISO 7816-3 Contactless ISO 14443B USB 1.1 LPC, GPIO/I2C – – – – Two to three 8-bit timers,ISO 3309 CRC calculation block 1.8V to 5.5V operation, with standby mode for power saving External clock = 1MHz to 10MHz, programmable internal clock > 10MHz ISSUER mode for fast personalization, before delivery in USER mode • Other Features Smartcard ST22 SmartJ Platform ICs • CPU – – – – 32-bit RISC CPU with 24-bit Linear Memory Addressing Dual instruction set, JavaCard™ and native language 4-stage pipeline, 16 general purpose 32-bit registers, and 10 special registers 4 mask-able interrupt levels – – – – – – – Common Criteria certification EAL5+ Target ST22L128 EAL5+ certified CPU security instructions EEPROM Flash programming mode Hardware DES and 3DES instructions Fast multiply and accumulate instructions for public key and elliptic curve cryptography True random number generator (AIS31 compl.) Memory protection unit for application fire-walling and peripheral access control Clock and power management, voltage and clock frequency sensors – – – – – Up to 394 KBytes of user ROM with partitioning Up to 16 KBytes of RAM with partitioning Up to 256 KBytes of EEPROM with partitioning and OTP area EEPROM 10 years data retention Up to 500,000 erase/write cycles endurance 1 to 128 bytes erase or program in 2ms – – – – – – Hardware asynchronous serial interface (UART) 2 serial I/O ports compatible ISO 7816-3 2 user configurable 12-bit and 16-bit timers with interrupt, internal or external clock Up to 30 MHz internal clock and external clock from 1MHz to 10MHz 1.8 to 5 V supply voltage with power saving standby mode Unique identification per die • Security – – • Memory • Other Features Tipos de Tarjetas (1) • Tarjetas inteligentes sin contactos – Poseen además del chip una antena de la cual se valen para realizar transacciones – Ideales cuando las transacciones tienen que ser realizadas muy rápidamente – Definición: ISO 14443 Tipos de Tarjetas (2) • Tarjetas inteligentes con contactos – Poseen una placa de contactos además del chip – Necesitan de un dispositivo lector/grabador para comunicarse con el exterior – Definición: ISO 7816 • Tarjetas mixtas – Combinación de las anteriores. Tarjetas: Estándar ISO 7816 (1) La tarjeta inteligente más básica cumple los estándares de la serie ISO 7816, partes 1 a 10. Este estándar detalla la parte física, eléctrica, mecánica y la interfaz de programación para comunicarse con el microchip. La descripción de cada una de las partes de la norma ISO 7816 es: • 7816-1: Características Físicas. • 7816-2: Dimensiones y ubicaciones de los contactos • 7816-3: Señales Electrónicas y Protocolo de Transmisión • 7816-4: Comandos de intercambio inter-industriales • 7816-5: Sistema de Numeración y procedimiento de registo • 7816-6: Elementos de datos inter-industriales • 7816-7: Comandos inter-industriales y Consultas Estructuradas • 7816-8: Comandos inter-industriales Relacionados con Seguridad. • 7816-9: Comandos adicionales inter-industriales y atributos de seguridad. • 7816-10: Señales electrónicas y Respuesta al Reset para la SmartCard Síncrona. La descripción para las SmartCards sin contacto está en el estándar ISO 14443. Tarjetas ISO 7816 (2) • Cuatro partes/documentos básicos: – ISO 7816-1: Características físicas • Tarjeta conforme con ISO 7810, 7813 • La tarjeta debe: – Resistir ataques con rayos X y luz Ultravioleta – Tener superficie plana y permitir cierto grado de torsión – Resistir altos voltajes, campos electromagnéticos, electricidad estática – No disipar más de 2,5 W • Tamaños de tarjetas ISO 7816-1 – ID-1 (es el más habitual) – ID-00 – ID-000 (el de GSM) Tarjetas ISO 7816 (3) – ISO 7816-2: Dimensión y localización de los contactos • Existen ocho contactos (se usan sólo seis) – – – – – – Vcc Vpp GND RST CLK I/O Tarjetas ISO 7816 (4) – ISO 7816-3: Señales electrónicas y protocolos de transmisión • Procedimiento de operación (activación y reset) • ATR (Answer To Reset) • Protocolos de comunicación – Protocolo T=0 (protocolo orientado a carácter). Es el más usado (GSM). Se requieren dos transacciones para recibir datos. – Protocolo T=1 (protocolo orientado a bloque). Se requiere una única transacción para recibir datos. Tarjetas ISO 7816 (5) • Respuesta al Reset VCC t3 VPP t3 Reset CLK t1 I/O (IR) t2 I/O (AL) 200 t2 <= ------fi Respuesta t1 (Reset interno) Respuesta 400 40.000 ------- <= t1 <= ----------fi fi (Reset activo bajo) 40.000 ------------ <= t3 fi Tarjetas ISO 7816 Respuesta al Reset: • TS: Carácter inicial • • • • – Sincronización de bits – Define la codificación de los datos y los caracteres T0: Carácter de formato TAi, TBi, TCi, TDi: Car de Interfaz T1 T2…TK: Históricos TCK: Checksum Tarjetas ISO 7816 (7) Respuesta al Reset: • TS: Carácter inicial – Sincronización de bits – Define la codificación de los datos y los caracteres • TD: contiene el tipo de Protocolo T0: Protocolo orientado a byte, asíncrono, half-duplex T1: Protocolo orientado a bloque, asíncrono, halfduplex Organización de Ficheros (1) • Aportado por la norma ISO 7816-4 • El S.O. de las tarjetas multi-aplicación soporta los siguientes tipos de archivos: – Fichero Maestro (MF): • Representa la raíz de la estructura de ficheros – Fichero Dedicado (DF): • Situado debajo del MF • Contiene datos relativos a una aplicación – Fichero Elemental (EF): • Situado debajo del MF o de un DF • Contiene unidades de datos del sistema o datos de una aplicación Organización de Ficheros (2) • Organización de los Datos MF EF EF EF MF MF DF DF EF Tarjetas de una sola aplicación EF DF EF Tarjetas de varias aplicaciones Organización de Ficheros (3) • Según su estructura interna – Ficheros transparentes • También llamados binarios • Almacenan información no estructurada • Los datos se pueden direccionar con un offset – Fichero lineal con registros de tamaño fijo • Los datos son una secuencia de registros individualmente identificables • Los registros tienen igual tamaño • Registros direccionados en el orden de su creación • No se modifica su número Organización de Ficheros (4) – Fichero lineal con registros de tamaño variable • El tamaño de cada registro es fijado mientras se crea – Fichero cíclico con registros de tamaño fijo • Los datos son una secuencia de registros individualmente • Los registros son direccionados en orden inverso a su creación/modificación Arquitectura de Seguridad (1) • La seguridad es la propiedad más importante de las tarjetas • Estado de seguridad – Representa como se encuentra la tarjeta después de ejecutar un comando – Tres posibles estados: • Estado global de código secreto • Estado local de código secreto • Estado de clave de sesión Arquitectura de Seguridad (2) – Reglas de los estados de seguridad: • Después del reset todos los estados están limpios. • El estado global de código secreto no se pierde por la selección de un fichero. • El estado local de código secreto se pierde cuando se selecciona otro DF. • Las claves de sesión se pierden cuando se selecciona un nuevo DF. • ¿Cómo se consigue esta seguridad? – Mediante los atributos de seguridad: fijan las condiciones que deben de cumplirse para operar con un fichero Arquitectura de Seguridad (3) – Atributos de seguridad • Dependen de la categoría del fichero (DF o EF) • Son definidos durante la personalización de la tarjeta – Condiciones de acceso a los ficheros (EF) • Cada fichero lleva asociadas unas condiciones de acceso • Deben de ser satisfechas antes de ejecutar un comando – Condiciones de acceso a un DF • Protegen la creación de EF dentro del fichero Proceso de Fabricación Lectores de Tarjetas (1) • Permiten acceder a la información contenida en las tarjetas inteligentes • Normalmente son dispositivos adaptadores • Algunos tienen funcionalidades adicionales: – Gestión de claves RSA • Tipos de lectores/grabadores: – Externos al equipo – Internos al equipo – SmartDisk Lectores de Tarjetas (2) Lector básico. Se conecta a un puerto serie RS-232 Lectores de Tarjetas (3) Towitoko: lector serie externo Towitoko: lector serie interno C3PO: lector USB interno Fischer: lector de floppies Lectores de Tarjetas (4) • Se incorporan al sistema de comunicaciones del ordenador generalmente por un puerto serie • Inconveniente: el software que realiza esa comunicación es propietario • Solución: – OCF (en entornos Java) – PC/SC (en entornos Windows) – MUSCLE (en entornos Linux) Entornos de aplicación reales • Tarjeta criptográfica CERES (FNMT) – Infraestructura de clave pública. – 32 Kbytes de EEPROM – Almacenamiento seguro de datos sensibles: • Claves RSA 1024 bits de firma y confidencialidad. • Cifrado simétrico Triple DES. – Control de acceso definible para cada fichero. – CPU 8 bits / 96 Kbytes de ROM /4 Kbytes de RAM Entornos de aplicación reales Gestión de Accesos EPS-UAM • Basado en la tarjeta emitida por la Universidad • Control desde Internet • Flexibilidad en altas y bajas • Fácil implementación • Posibilidad de realizar prácticas Entornos de aplicación reales Gestión de Accesos EPS-UAM Lectores Servidor Ordenadores en Internet INTERNET LAN Servidor Base de Datos Entornos de aplicación reales Gestión de Accesos EPS-UAM Entornos de aplicación reales Herramientas de Desarrollo Programadores Debugggin(Season2) Fabricantes Tarjetas Inteligentes Bibliografía • Libros – Smart Card Developer’s Kit, Scott B. Guthery. Macmillian Technical Publishing, Indianápolis, Indiana. 1998 – Smart Card Handbook, W. Rankl & W. Effing. Ed. John Wiley $ Sons, LTD. 2000 – Tarjetas Inteligentes, Juan Domingo Sandoval, Ricardo Brito y Juan Carlos Mayor, Editorial Paraninfo. 1999 Bibliografía • Referencias en la web: – – – – – – – – – – http://www.epanorama.net/links/smartcards.html http://www.scdk.com/atsfaq.htm http://www.edn.com/archives/1995/112395/24dfcov.htm http://www.epanorama.net/links/smartcards.html http://ganges.cs.tcd.ie/mepeirce/Project/Chaum/cardcom.html http://www.break-ic.com/topics/attack-microcontroller.asp http://www.monografias.com/trabajos10/tarin/tarin.shtml http://www.upm.es/laupm/carneupm/infogen.html http://www.smartcardbasics.com/ http://sumitdhar.blogspot.com/2004/11/introduction-to-smartcards.html – http://es.wikipedia.org/wiki/Tarjeta_inteligente