SMARTCARDS
INTRODUCCION Y EVOLUCION DE LAS TARJETAS.
Las tarjetas se pueden definir de un modo generico como
un medio de identificacion , que es util en diferentes ambitos.
La evolucion tecnologica ha permitido el diseño
de diferentes tipos de tarjetas con unas prestaciones muy diferentes dependiendo
de uso que se le fuera a dar.Pero todos estos tipos presentan ciertas caracteristicas
comunes como por ejemplo las dimensiones, que estab definidas en el estandar
ISO 7810.
Las primeras tarjetas que surgieron fueron las tarjetas
de visita , donde los datos se imprimian en la misma superficie
de la tarjeta, y donde esta claro que el metodo de fabricacion es totalmente
inseguro, dada su facil falsificacion.La duracion de la tarjeta es muy
corta debido al material utilizado.Dicho tipo de tarjetas
centran su utilidad en aspectos sociales (presentacion o introduccion social).
Para resolver los problemas de durabilidad de las tarjetas
de visita de empezaron a utilizar las tarjetas plasticas, fabricadas
con PVC o Cloruro de Polivinilo y la informacion de estas tarjetas se restringe
a la zona de estampado, en la que se incluye el nombre e identificacion
del propietario, ademas se incluye una region en la que el propietario
introduce su firma , asi es posible autentificar que el portador de la
tarjeta es el propietario.
Un gran paso que permitio el uso generalizado de las
tarjetas fue la introduccion de una banda magnetica en la tarjeta plastica,
donde los datos se almacenaban en dicha banda magnetica con la ayuda de
un campo magnetico, suministrado por por nu electroiman y cuya polaridad
depende de la direccion de la corriente electrica.El uso que se le dio
a estas tarjetas fue principalmente el uso bancario y aunque en un principio
presentaban un cierto nivel de seguridad , actualmente el nivel de seguridad
es insuficiente en el ambito financiero y se requiere de unas tarjetas
con mayor seguridad, esto dio lugar al desarrollo de las tarjetas donde
ya se incluyen circuitos integrados en el interior de las tarjetas.Estas
tarjetas pueden llevar un procesador o no llevarlo.Si no disponen de un
procesador pueden dividirse en :
-tarjetas de memoria :
Estan compuestas por una memoria EEPROM
sobre la que se pueden realizar ciertas funciones predefinidas.La capacidad
de estas tarjetas pueden variar desde los 256 bytes a las decenas de Kbytes,
y no existe ningun control de acceso a los datos que aparecen en esta tarjeta,
por lo que son consideradas como un simple almacen de datos.
-tarjetas de
logica cableada:
Se componen tambien de una memoria
EEPROM y de unas funciones predefinidas, y la unica diferencia con las
anteriores es la existencia de una unidad de control de acceso a los datos.
mientras que si disponen de procesador son las denominadas
tarjetas
inteligentes o smartcards y pueden dividirse en :
-tarjetas
con contactos: Donde hay contacto fisico con el terminal a traves de las
patillas de la tarjeta.
-tarjetas
sin contactos: La transmision de los datos se produce por radiofrecuencia.
Dentro de las tarjetas con procesador hay un tipo de tarjeta que reciben el nombre de tarjetas superinteligentes, y cuyo desarrollo empezo en 1988.Estructuralmente, estas tarjetas cumplen con el estandar ISO 7810, y poseen un microprocesador y un conjunto de circuitos como una tarjeta inteligente, poseen tambien una pantalla de cristal liquido de 16 cracteres alfanumericos y un teclado de 20 caracteres .La tarjeta es alimentada con una bateria y posee tambien una banda magnetica estandard, que se peude sustituir por un transductor que emulara el contenido de la banda magnetica.La ventaja de dichas tarjetas es que no requieren de un terminal para realizar la transaccion.El usuario activara la tarjeta e introducira el pin, cuando la tarjeta compruebe la clave permite al usuario repasar los ultimos cargos, entonces el usuario decide la cuenta en la que desea relizar el cargo e introduce la cantidad, que es verificada por el vendedor,despues la tarjeta muestra un codigo que debe ser anotado por el vendedor.Mediante este sistema se intenta eliminar los problemas asociados a una smartcard con el uso de un terminal.Pero esta tecnologia es muy cara y ademas presenta problemas ergonomicos.
Tambien cabe nombrar otro tipo de tarjetas , las llamadas
tarjetas
opticas, son las ultimas aparecidas en el mercado y se caracterizan
por poseer una capacidad de datos mucho mayor a las demas tarjetas.El grabado
de datos en estas tarjetas se realiza mediante la aplicacion de calor
sobre la superficie optica, en la que se produce ciertas marcas.El
problema de estas tarjetas es que no se pueden reutilizar, ya que resulta
imposible restituir la superficie optica.
ESTRUCTURA INTERNA DE UNA SMARTCARD
Una smartcard puede tratarse de un pequeño ordenador
personal ya que posee los elementos tipicos de un ordenador; presenta una
interface con el exterior, una serie de elementos necesarios para el procesamiento
de datos (memoria y procesador) y ademas todos estos elementos son gestionados
por un sistema operativo (denominado mascara).
Tarjetas con contactos.
En el tipo de tarjetas smartcards con contactos,
el
dialogo se realiza a traves de una matriz de contactos situados en la superficie
de la tarjeta, cuya posicion y dimensiones de esta matriz aparecen definidos
en el estandard 7816/2.
figura 1
Como se puede ver en la figura 1 la matriz esta compuesta
por 8 contactos con una estructura espacial 4x2.Los contactos se nombran
como Cx , donde x se enumera de 1 a 8 , de arriba abajo y de izquierda
a derecha.La direccion minima que debe tener un contacto es de 1,7 mm x
2mm y dicho contactos se fabrican de cobre recubierto de una fina capa
de oro o de una aleacion de paladio y plata.
C1(Vcc) | Contacto que suministra la tension y la intensidad necesaria para el funcionamiento del circuito integrado de la tarjeta. |
C2(RST) | Contacto encargado de transmitir la señal reset a la tarjeta,que inicia su dialogo con el terminal. |
C3(CLK) | Aporta la frecuencia que marca la transmision del ATR y el funcionamiento del procesador. |
C4(RFU) | No tiene tarea especifica, se puede optar no incluir estos contactos o utilizar estos conectactos para otros usos como contacto de entrada salida. |
C5(GND) | Se aporta la señal de tierra utilizada como referencia para el resto de señales transmitidas. |
C6(Vpp) | Aporta el voltaje e intensidad que requiere la memoria EEPROM para su grabado y borrado |
C7(I/O) | Sobre este contacto se produce la transmision de informacion entre la tarjeta y el terminal. |
C8(RFU) | No tiene tarea especifica, se puede optar no incluir estos contactos o utilizar estos conectactos para otros usos como contacto de entrada salida. |
En cuanto a los valores de tension, inicialmente se utilizaban circuitos TTL por lo que se requeria una tension de 5 voltios, aunque en nuestros dias se utilizan otro tipo de tecnologias como MOS o CMOS, qu eno requieren esta tension pero funcionan con ella.Por su parte las tarjetas GSM requieren solo de · voltios por lo que incluyen un conversor en los telefonos para que realice este cambio de tension.En un futuro las smartcards funcionaran a un rango de tension de 3 a 5 voltios, asi se evitaran los posibles problemas de insercion de una tarjeta en u lector con tension no adecuada, este rango de tensiones sera obligatorio para todos los procesadores y el inconveniente es que resulta muy complejo integrar memorias EEPROM con este rango de tension.
Tambien hay que tener en cuenta que el consumo del circuito
integrado de la tarjeta depende en gran medida de la frecuencia de funcionamiento,
y en menor medida de la temperatura.La intensidad maxima de funcionamiento
varia en funcion del estandard que se analice; El standard ISO 7816/3 especifica
un valor maximo de 200 mA mientras que el estandard GSM 11.11 solo admite
10 mA.
La mayoria de estos circuitos no requieren un nivel de
200 mA para su funcionamiento pero en estos consumos pueden llegar a aparecer
ciertos picos de consumo cortos , y para evitar su influencia se puede
poner un condensador que resuelva este problema.
Otras tarjetas pueden presentar un modo de ahorro
de energia en el que el procesador pasa a un estado de consumo minimo y
la memoria RAM y la circuiteria asociada a I/O permanecen inactivos tambien
desconectandose el resto decircuitos, asi se produce un gran ahorro de
energia , de gran utilidad en telefonos moviles.
En cuanto al tema de la señal de reloj,
en las primeras tarjetas podia haber un circuito de generacion de reloj,
por lo que la señal recibida por la tarjeta no era utilizada para
el funcionamiento general de la tarjeta y su uso se centraba en la fase
de de iniciacion de la tarjeta, este planteamiento se sigue manteniendo
en la actualidad aunque las tarjetas ya no suelen tener circuito de reloj
interno.
La señal de reloj definitiva se utiliza en la
transmision de datos a traves de I/O y en la frecuencia del procesador,
aunque no es necesario que el procesador actue a la señal de reloj
transmitida, sino que es posible modificarla.Asi , algunos procesadores
incluyen un multiplicador de la señal de reloj, con el objetos de
aumentar la velocidad del procesador.Habitualmente se utiliza un multiplicador
de 2.
La transmision de los datos se realiza a traves de I/O mediante un metodo de comunicacion half-duplex y bidireccional, por lo tanto existen dos metodos de funcionamiento:
-transmision: Emision tarjeta ------>
Terminal
-Recepcion: Emision Terminal ------> Tarjeta
Tanto la tarjeta como el terminal poseen dos niveles
de tension para indicar que ellos estan preparados para enviar o recibir.Cuando
ninguno de ellos desea enviar , la linea pasa a nivel alto, y si alguno
de ellos desea tranmitir, la linea pasa a nivel bajo indicando esta circunstancia.Dicho
comportamiento esta controlado por la circuiteria asociada a la linea que
incluye una resistencia de pull-up, mediante esta resistencia se evita
que el envio de dos señales a nivel alto, con su consumo de intensidad
asociado, genere algun problema en los circuitos de la tarjeta o del terminal.
Tarjetas sin contactos.
El terminal debe enviar y recibir informacion de la tarjeta para que esta funcione correctamente (tension, señal de reloj , datos desde/a la tarjeta , etc), dicha informacion ya hemos comentado anteriormente como se realiza en las tarjetas con contactos, pero con las tarjetas sin contactos resulta necesario habilitar algun modo alternativo para realizar esta transferencia de informacion, por lo que se han desarrollado diferentes tecnicas con diferentes propiedades entre las que destacan la tranmision por ondas , transmision optica, acoplado capacitivo y acoplado inductivo.Las tecnicas de acoplado capacitivo y acoplado inductivo son las mas habituales debido al formato de las tarjetas y se han definido como estandares.La tecnica de acoplado inductivo puede ser utilizada para la transmision de la tension y de los datos.
El consumo de una tarjeta sin contactos define
la distancia maxima a la que puede funcionar.Las tarjetas asociadas
a realizar solo operaciones de lectura de informacion solo consumen decimas
de µW y por tanto pueden actuar hasta a un metro de distancia mientras
que las tarjetas que soportan operaciones de escritura de informacion ,
su consumo puede llegar a 100 µW , por lo que la distancia a la que
se limita es mucho menor (tan solo 10 cm).Por ultimo las tarjetas con microprocesador
requieren un consumo de 100 mW, por lo que la distancia de funcionamiento
se limita a pocos milimetros.
Independientemente de la distancia maxima de funcionamiento,
todas las tarjetas basadas en el acoplamiento por induccion se basan en
las propiedades electromagneticas de las bobinas, la unica diferencia aparece
en la frecuencia de la corriente portadora , que varia entre 100-300Khz
y llega hasta algunos Mhz.
En el acoplamiento inductivo , la transmision de
informacion se produce a traves de las propiedades elctromagneticas de
las bobinas.En el terminal y en la tarjeta aparecen una o mas bobinas,
cuando aparece una corriente electrica en la bobina del terminal se produce
un campo magnetico, el cual genera una diferencia de potencial en la bobina
de la tarjeta, si la bobina aparece en un circuito cerrado, se genera
una corriente electrica que da lugar a un nuevo campo magnetico, cuya intensidad
puede ser modificada al cambiar el diseño del circuito cerrado de
la tarjeta.
Habitualmente la corriente que circula en la bobina es
alterna y su frecuencia se denomina frecuencia portadora.
El estandard que caracteriza a las tarjetas con circuitos
integrados y sin contactos, que funcionan a una distancia muy corta es
el ISO 10536, donde estan definidas las caracteristicas fisicas, las dimensiones
y localizacion de areas de acoplamiento, señales electronicas y
funcionamiento del reset y ATR y protocolos de transmision.Externamente
una tarjeta sin contactos se parece a una tarjeta con contactos en la que
tambien es posible incluir contactos,tambien se habilita la posiblidad
del acoplamiento inductivo y del capacitivo, por lo tanto, los lectores
y las tarjetas pueden soportar ambos tipos de comunicacion.
El estandard relativo a las tarjetas de mayor distancia
es el ISO 14443 y todavia se encuentra en periodo de desarrollo.
Tipos de microprocesadores
Los microprocesadores utilizados en el ambito de las tarjetas
inteligentes so ordenadores completos con su procesador, memoria y un sistema
de entrada/salida.
Existen diferentes tipos de memoria ROM, RAM y EEPROM,
cada una con funcionalidades distintas.
El circuito de I/O o entrada/salida suele ser una unidad
especifica que el procesador puede direccionar como una posicion mas de
memoria.
Estos microprocesadores deben cumplir una serie de caracteristicas
basicas , como son su coste de fabricacion minimo eliminando los elementos
que no son necesarios.Tambien deben cumplir una funcionalidad y una seguridad
, con lo que se incluyen todos los elementos necesarios para posibilitar
un buen nivel de seguridad activo y pasivo.Tambien hay que controlar
la minimizacion del tamaño del chip, evitando su ruptura por cualquier
agresion externa , y la disponibilidad reducida, para eliminar la posibilidad
de un duplicado del chip.
La eleccion del procesador a utilizar es una de las decisiones
mas importantes, por eso es importante destacar la fiabilidad del procesador
a la hora de elegir el apropiado y es mas fiable utilizar procesadores
bien conocidos y que han sido probado en diferentes ambitos, de este modo
el proceso de fabricacion y el funcionamiento del procesador resultan muy
seguros, a su vez esti tambien facilita el desarrollo de los sistemas operativos,
ya que sus programadores poseen librerias ajustadas a los procesadores.
Otras consideraciones a tener en cuenta son las velocidad
de proceso y la capacidad de la tarjeta, ambas consideraciones recomiendan
el uso de procesadores de 8 bits, en los que incluyen un busde direcciones
de 16 bits.
El conjunto de instrucciones suele ser normalmente de
tipo CISC, aunque en algun caso puede utilizarse una arquitectura RISC.
Tipos de memoria
Una tarjeta cmo cualquier ordenador requiere diferentes
tipos de memoria para almacenar datos con propiedades distintas.Necesitara
de una memoria de consulta en la que la informacion solo puede ser consultada,
tambien una memoria de almacenamiento variable que contiene los datos que
se modifican, y por ultimo una memoria volatil en la que se almacenaran
datos intermedios.
Para el tipo de memoria de consulta suele utilizarse
la memoria ROM, cuyo contenido se imprime en el proceso de fabricacion,
mientras que para la memoria de almacenamiento variable suele utilizarse
un gran tipo de memorias, como puede ser la EPROM, la EEPROM(la mas extendida)
o la flash-EEPROM y la FRAM.
EL tipo de memoria que se utiliza para la memoria volatil
es de tipo RAM , que puede ser estatica o dinamica.Inicialmente se utilizo
DRAM debido a su sencillez, aunque en la actualidad se suele usar SRAM,
ya que no requiere refresco, por lo que se puede eliminar la señal
de reloj.
Es interesante saber el funcionamiento de los diferentes
tipos de memoria no volatil que se utilizan, como puede ser la EPROM, la
cual solo puede ser borrada mediante la interaccion de rayos ultravioletas,
por lo que su uso en las tarjetas inteligentes no es interesante.Por
otro lado esta la memoria EEPROM que actualmente es la mas utilizada, aunque
presenta una serie de inconvenientes como son su programacion, ya que tanto
su escritura como su borrado requiere de una tension de 17 voltios.Para
alcanzar esta tension se debe incluir un circuito especifico denominado
bomba
de carga o charge pump y su coste es bastante alto, ademas el ciclo
de escritura suele ser 3-10 ms.
Otro tipo de memoria usada en las memorias no volatiles
es la flash-EEPROM con una tecnologia similar EEPROM pero la tension de
programacion que usa es de 12 voltios y el ciclo de escritura es de 10µs.
La memoria mas moderna usada para este tipode memorias
es la FRAM , con una tension de programacion de 5 voltios y un ciclo de
escritura de 100 ns, el unico inconveniente es que requiere un cierto refresco
, lo que impide su introduccion en este ambito.
Otras unidades
Tambien suelen aparecer distintos componentes que mejorar
las caracteristicas de las trajetas , como pueden ser coprocesadores, por
ejemplo los algoritmos de cifrado de informacion mediante clave publica
requieren el calculo de exponenciales y el calculo del modulo de grandes
numeros, por lo que el coste de estos algoritmos suele ser bastante alto
por lo que se utilizan circuitos especificos para este fin.Cuando se requieren
realizar una operacion de ese tipo, el procesador ordena su desarrollo
al coprocesador y espera a que este termine.
Otro caso en el que resulte util la utilizacion de otras
unidades puede ser en los procesos de autentificacion que requieren la
generacion de un numero aleatorio real, que no sea pseudo-aleatorio, dicho
numero no debe ser predecible desde el exterior, por lo que no debe relacionarse
con ninguna de las informaciones recibidas por la tarjeta, como la tension
o a la temperatura, y su valor se suele construir a traves de varios estados
logicos del procesador , como el contenido de los registros, el valor obtenido
se introduce en un registro de desplazamiento en bucle cerrado, a partir
del cual es posible generar numeros aleatorios.
Tambien pueden existir otras unidades para la deteccion
de errores en la EEPROM.El limites de vida de la tarjeta se asocia con
el de la memoria EEPROM que posee, y con el objetivo de aumentar al maximo
su ciclo de vida, se pueden incluir algoritmos para la deteccion y correccion
de errores.Si se desea un algoritmo realmente efectivo, el tamaño
del codigo puede llegar a ocupar la mitad de la capacidad de la tarjeta,
este hecho provoca una dura decision, entre la capacidad real de la tarjeta
y su ciclo de vida.
Por ultimo nombrar algunas unidades mas , como pueden
ser para aumentar la velocidad de tranmision de los datos via hardware,
o cuando con el paso del tiempo se requiere una mayor capacidad del procesamiento
de la tarjeta, dicho aumento se puede obtener mediante el duplicado de
la señal de reloj externa.
SEGURIDAD EN LAS TARJETAS INTELIGENTES
Una de las ventajas mas importantes
de las tarjetas inteligentes es el nivel de seguridad que suministran,
por lo que esta caracteristica es la fundamental para el uso de esta tecnologia
frente a otro tipo de tarjetas.
Desde un punto de vista hardware,
el objetivo es el diseño de un circuito que no pueda ser falsificado,
para ello se deben incorporar al circuito todos los elementos que eviten
una manipulacion no adecuada.Mientras que desde un punto de vista software
se requiere un control sobre la ejecucion de ordenes en la tarjeta, dicho
control debe prevenir la modificacion de zonas de memoria reservadas y
el acceso de usuarios no autorizados, en este ultimo aspecto resulta de
gran interes el metodo de la identificacion del usuario y la autentificacion
del terminal y de la tarjeta.Tambien se debe controlar que el dialogo con
la tarjeta sea correcto y sin interferencias por lo que el manejo de claves
de acceso , asi como el uso de algoritmos de cifrado son elementos basicos
de estos aspectos.
Seguridad hardware
Existe una gran variedad de metodologias que permiten proteger el microprocesador de una tarjeta inteligente, estas soluciones pueden agruparse en dos clases:
-Soluciones pasivas: En donde no resulta necesario que la tarjeta este alimentada.La idea es mejorar el proceso de fabricacion de la tarjeta con el objeto de proteger los diferentes elementos de la tarjeta de un analisis externo.
-Soluciones activas: Requieren que la tarjeta este alimentada.Se
asocian a un conjunto de sensores activos que se integran con el resto
de elementos de la tarjeta.Las medidas de estos sensores se controlan en
el funcionamiento normal de la tarjeta, aunque solo son utiles si la tarjeta
esta conectada.Normalmente, estos sensores son de uso muy especifico ,
por lo que solo son utiles en la deteccion de un unico ataque externo,
ademas incluso puede suceder que un valor tomado como peligroso se deba
a un simple cambio en el entorno, por lo tanto la eleccion de el numero
y la funcion de los sensores utilizados es fundamental.
La mayoria de los ataques hardware que sufre una smartcard utilizan un equipamiento de alta tecnologia, los mas utilizados son microscopios, cortadores laser,micromanipuladores, utiles para la separacion quimica de componentes y computadores de altas prestaciones para el analisis de datos.El objetivo de estos ataques es la memoria EEPROM, ya que en ella se encuentra toda la informacion de la tarjeta inteligente.Asi pues la lectura de la memoria permitiria el posterios manejo de la tarjeta para su modificacion, ya que seria posible leer la copia cifrada del pin, y descifrarlo utilizando la funcion de cifrado que tambien aparece en la memoria.Existen diferentes opciones para posibilitar estos ataques como pueden ser el cambio de estado de la tarjeta , ya que el microprocesador puede pasar a un modo de test en el que es posible acceder a toda la memoria de la EEPROM sin ningun tipo de control.Este modo se controla por un fusible fisico, que se funde cuando se verifica el funcionamiento de la tarjeta en la ultima etapa del proceso de fabricacion, y este fusible fundido aparece comouna gran superficie plana en el circuito , que al menos teoricamente puede ser cortocircuitado de modo mecanico.Para resolver este problema aparece en las tarjetas una zona de la EEPROM que permite complementar la tarea del fusible,esta zona de la EEPROM funciona como un fusible logico respecto del transito al estado de test, y dado que el acceso a la EEPROM requiere la desactivacion de los dos fusibles, y el fusible logico se encuentra en la propia memoria EEPROM, se bloquea el transito al modo de test.
Otro ataque puede ser el de acceso directo a memoria, dicho ataque requiere la extraccion de la superficie de silicio de su envoltorio, para lo cual es necesario aplicar distintas caracteristicas, ya que dicha operacion requiere de gran delicadeza, pues cualquier maniobra inadecuada podria romper el circuito.La escala de integracion actual imposibilita un ataque directo sobre los bits de la memoria, por lo que resulta necesario abordar el problema desde otro punto de vista.Una posibilidad aunque realmente compleja, es el acceso directo a las pistas que conectan los diferentes componentes de la tarjeta, de este modo es posible leer las memorias ROM y EEPROM sin necesidad de alimentarlas electricamente.Este ataque resulta poco probable ya que las tecnicas micromecanicas que lo posibilitarian estan poco desarrolladas.En cualquier caso los circuitos estan provistos de tecnicas para preveerlo, como el cambio en el orden de las pistas en los buses.Tambien es posible leer el contenido de una memoria ROM mediante la utilizacion de un microscopio optico, para evitar este problema, la memoria ROM no se encuentra en la capa superior del circuito, reduciendo el riesgo de este ataque.
Los numeros aleatorios son utilizados por la tarjeta y por el terminal en la autentificacion, y la idea de este mecanismoes verificar que se puede descifrar un numero que ha sido cifrado por el otro comunicante, comprobando que ambos poseen el mismo algoritmo de cifrado.El principal objetivo de esta tarea es asegurar la individualizacion de un dialogo entre una tarjeta y el terminal, de este modo se imposibilita la reproduccion de una sesion anterior que pudiera haber sido grabada.Un posible ataque fuerza a la tarjeta a generar una secuencia de numeros aleatorios que sea la suficientemente grande para que llegue a ser predecible.Para resolver este problema , el generador de la tarjeta posee un periodo que es mayor que la longevidad de la propia tarjeta.Otra posibilidad es generar una secuencia de numeros aleatorios tan grande que llegue un momento en el cual el generador de numeros aleatoriosse bloquee ysiempre genere el mismo numero.En este caso, la tarjeta imposibilita posteriores procesos de autentificacion, que tendria una influencia directa sobre el funcionamiento de la tarjeta.
En cuanto a las soluciones activas, los circuitos estan
recubiertos de una envoltura de material que lo protege contra la oxidacion
u otros procesos quimicos, por lo que cuando se desea manipular el circuito
resulta necesarioretirar esta capa pasiva.Para controlar la existencia
de esta capa, se incluye un sensor que verifica la resistencia o la capacitancia
que dicha capa genera, dicho sensor genera una señal que bloquea
el circuito si detecta una medida erronea.
Tambien es posible incluir un regulador de la tension
cuyo objeto es el de asegurar que la tarjeta funcione a los niveles
adecuados, una tension fuera de los limites podria cambiar el valor de
ciertas zonas como el contador de programa lo que originaria un funcionamiento
aleatorio.
Una frecuencia de relos inadecuada podria permitir un
analisis pormenorizado de la tarjeta, incluyendo el consumo de potencia,
de modo que se pudiera predecir su funcionamiento, para evitar este analisis
tambien aparece un regulador de la frecuencia de reloj.
Seguridad software
La seguridad software hace referencia a los diferentes
mecanismos de seguridad que la tarjeta posee para imposibilitar un acceso
a la memoria no deseado.Algunos ataques se restringen al funcionamiento
interno de la tarjeta, en donde las diferentes zonas de memoria se encuentran
protegidas para evitar accesos no deseados, y otros ataques se refieren
a la conexion externa de la tarjeta y pueden incluir la manipulacion del
dialogo con el terminal o la emulacion de la tarjeta o del terminal para
detectar los fundamentos del dialogo.
La unica via de comunicacion de la tarjeta con el exterior
se produce a traves de uno de sus contactos, que es el de I/O, por lo tanto
una alteracion de su flujo de datos podria llegar a introducir ordenes
en las que se modificara el contenido de la memoria, una posibilidad
es la inclusion de un dispositivo formado por dos contactos separados por
un material aislante, uno de ellos se situaria sobre el contacto I/O de
la tarjeta y el otro estaria conectado a un ordenador de altas prestaciones,
de este modo el ordenador podria eliminar e incorporar instrucciones y
datos de modo que se alternara el dialogo del terminal y la tarjeta.Una
solucion a este problema es la inclusion de un obturador que imposibilitara
la existencia de un cable conectado a cualquier contacto, pero dado que
esta posibilidad y que en el futuro puede desarrollarse con mayor vigor,
resulta necesario incluir alguna tecnica que resuelva estos problemas,
estas denominan de modo generico como control I/O y en ellas participan
diferentes elementos del sistema operativo, uno de estos es el gestor de
transporte que es el encargado de verificar que el dialogo entre el terminal
y la tarjeta es valido.
Otra importante via de ataque es la emulacion de alguno
de los elementos del dialogo.Mediante la emulacion de la tarjeta es posible
averiguar que operaciones solicita el terminal, y su posterior analisis
puede llegar a desarrollar una tarjeta que responda a estas ordenes.El
problema aparece en el momento en que se inicia un proceso de autentificacion,
ya que la clave no es conocida por el terminal, y esta solucion se
complementa con el control del numero de serie de las tarjetas validas
en las que se excluyan las tarjetas que tengan un funcionamiento sospechoso.
La emulacion del terminal permite verificar el juego
de instrucciones de la tarjeta, mediante la transmision de todos los valores
posibles de los bytes que las definen.Este dato permite conocer el rango
valido de los parametros y otras instrucciones que no esten documentadas.Tambien
es posible deducir las claves relativas al proceso de autentificacion
controlando el coste temporal del descifrado del mensaje, para evitar este
problema, la implementacion de estos procesos aseguran que el coste es
independiente de la clave y del mensaje, y otra opcion es incluir un controlador
que controle el numero de errores en la autentificacion.
La operacion de escritura sobre la memoria EEPROM utiliza
la bomba de carga que genera un aumento en el consumo de potencia de la
tarjeta, este consumo puede ser detectado mediante la inclusion de una
resistencia en el contacto Vcc de la tarjeta, por lo tanto un incremento
en el consumo de potencia suciente infiere una intencion de realizar una
escritura en la memoria EEPROM.Este conocimiento puede ser utilizado para
la busqueda del PIN o cualquier otra clave de la tarjeta.Normalmente la
tarjeta comprueba el valor de la clave y posteriormente actualiza el valor
del campo de errores producido, antes de enviar el codigo de error correspondiente,
si esta situacion es detectada se puede llegar a desactivar la tarjeta
con el objeto de evitar que el decremento del contador se produzcaExisten
dos posibles soluciones para esto, la primera es incrementar siempre el
valor del contador antes de comparar el valor de la clave, que sera decrementada
si la clave es correcta.
Todos los esfuerzos realizados por el sistema operativo
para proteger a la tarjeta contra ataques externos pueden ser insuficientes,
por esta razon resulta necesario definir algun tipo de seguridad propio
de la aplicacion.La primera solucion es manejar un conjunto de tarjetas
cuyo numero de serie sea unico que se puede complementar con una lista
de las tarjetas cuyo funcionamiento sea dudoso.Algunas de las tecnicas
descritas para evitar ataques se fundamentan en la repeticion de una misma
experiencia hasta que esta genere un valor correcto, por esta razon se
suele imposibilitar el intento de ejecutar una instruccion on adecuada.Los
ficheros de protocolo asociados a una aplicacion en el que aparecen
las incidencias asociadas a una sesion, facilitan la seguridad de la aplicacion,
de este modo se mantiene la integridad de la informacion almacenada en
la tarjeta.El cifrado de la informacion es una herramienta basica pero
no puede ser utilizada en exceso, ya que su uso indiscriminado para ralentizar
el funcionamiento de la tarjeta.Su uso se debe restringir a la transmision
de las claves y al proceso de autentificacion que controlan el acceso adecuadamente.
Cifrado de informacion
Desde el principio de los tiempos el cifrado ha sido utilizado
para proteger la transferencia de informacion confidencial.Su utilizacion
en una tarjeta inteligente permite aumentar la seguridad del sistema.El
campo de la ciencia que estudia este tema es la criptologia, dentro del
cual se encuntra el campo de la critografia, que estudia metodos para el
cifrado y descifrado de la informacion.Otro campo es el del criptoanalisis,
en el que se estudian tecnicas para el desccifrado fraudulento de mensajes.
Los sistemas criptograficos poseen el objetivo de la
seguridad y la autenticidad.Los sistemas actuales se basan en el principio
de Kerckhoff, que afirma que la seguridad de un algoritmo se encuentra
en la seguridad de la clave y no en el propio algoritmo, es por ello que
la mayoria de algoritmos estan publicados e incluso patentados, ya que
su confidencialidad es fundamental.Aplicando esta norma aparecen tres tipos
de datos en un algoritmo de cifrado, el mensaje original, el cifrado y
la clave.
Las operaciones que pueden aparecer en un sistema criptografico
son:
-Cifrado de
informacion: en el que se obtiene el mensaje cifrado utilizando una clave
y el mensaje original.
-Descifrado
de informacion: Que tiene como objeto la obtencion del mensaje original
a partir de una clave y el mensaje cifrado
-Funcion de
Resumen: Cuyo objetivo es la obtencion de una version mas compacta del
mensaje original mediante la utilizacion de una clave.
El cifrado y descifrado de informacion estan relacionados de modo que todo algoritmo de cifrado tiene un algoritmo de descifrado asociado, que a veces es el mismo.
Existen diferentes tipos de algoritmos que se diferencian
por el numero y modo en el que se utilizan las claves:
-Sistemas simetricos.
-Sistemas asimetricos.
Sistemas simetricos
La simetria de estos sistemas se fundamentan en el hecho
de que el cifrado y el descifrado de informacion
utilizan la misma clave, es por ello que la confidencialidad
de la clave resulta basica para asegurar la seguridad de estos sistemas,
que solo debe ser conocida por el emisor y el receptor del mensaje.Por
esta razon, estos sistemas se aseguran los dos objetivos basicos de estos
sistemas; La seguridad aparece por la privacidad de la clave, y si el receptor
sabe descifrar el mensaje, sabe que ha sido enviado por el emisor.
El manejo de las claves es basica , ya que ellas aportan
al sistema seguridad y autenticidad.Por tanto su intercambio debe realizarse
del modo mas seguro posible.Otro problema es el numero de claves
que son necesarias para conectar todos los usuarios de un sistema.
El sistema simetrico mas comun es el DES o estandard
de difrado de datos, que cifra bloques de 8 bytes.La clave tambien es un
bloque de 8 bytes, cada uno de los cuales contiene un bit de paridad ,
por lo que el numero de claves distintas es 256
.Dicho
sistema se basa en dos operaciones, la primera es la de confusion, que
intenta desligar los valores estadisticos de los caracteres del mensaje
original y del cifrado, mientras que la segunda es la difusion, en donde
el resultado depende del mayor numero de bits del valor inicial.Existen
cuatro modos de funcionamiento de este sistema , pero destacan dos, que
son el Libro de Codigos Electronicos (ECB), en el que cada bloque de datos
se cifra de modo independiente.El segundo tipo es el cifrado de bloques
encadenados (CBC) , en el cual el cifrado de bloques depende del cifrado
de los anteriores.
Para aumentar la seguridad del sistema , se definio
una variable del metodo, llamada triple-DES , cuyo
objetivo es unir fases de cifrado.Las propiedades algebraicas del sistema
obligan a que esta union intercale cifrados y descifrados.
Sistemas asimetricos
Estos sistemas utilizan dos claves distintas para
el cifrado y descifrado de la informacion.Cada usuario de estos sistemas
poseen dos claves diferentes, la primera es la clave privada y es solo
conocida por el usuario, mientras que la segunda es la clave publica y
es conocida por todos los usuarios que pueden recibir el mensaje, por lo
que tambien se les denomina sistemas de clave publica.
El uso de estos sistemas solo pueden asegurar uno
de los objetivos de la criptografia.Si el emisor usa la clave publica del
receptor, el mensaje solo puede ser descifrado por este, aunque puede haber
sido enviado por cualquier emisor, mientras que si utiliza su clave privada
se asegura que el mensaje solo puede haber sido enviado por el emisor,
pero puede ser descifrado por cualquier receptor.Para conseguir tanto la
seguridad como la autenticidad resulta necesario aplicar dos procesos de
cifrado, cada uno asegurando uno de los objetivos anteriores.
El sistema que se suele usar es el sistema RSA ,
que se fundamenta en la aritmetica de grandes numeros enteros y sobretodo
en la dificultad de factorizar el producto de dos numeros grandes que son
primos.Tanto el cifrado como el descifrado de la informacion se realiza
del mismo modo, en primer lugar se calcula la exponencial respecto de una
de sus claves.Posteriormente se aplica el modulo definido por el producto
de dos numeros primos.El producto utilizado en la operacion modulo tambien
es un valor publico que se relaciona con el valor de las claves.El coste
de estas operaciones suele ser alto, aunque se puede resolver con circuiteria
de uso exclusivo.
En concreto las claves se calculan primero obteniendo
dos numeros primos p y q, y con ellos su producto es n.La clave publica
es el numero que cumple que el maximo comun divisor respecto de z=(p-1)(q-1)
es 1, y la clave privada d cumple que el modulo respecto de z del producto
d por e es 1.
Este metodo funciona para cualquier tamaño
de la clave , por lo que se suele utilizar claves muy grandes que aumenten
la seguridad.
Funcion de resumen
En algunos casos resulta interesante obtener una
version reducida de un mensaje, como en el caso de las firmas digitales.Dado
un mensaje que puede tener cualquier tamaño, las funciones de resumen
obtienen un valor de tamaño fijo, y para que estas funciones sean
eficientes es necesario que cumplan las propiedades de longitud fija del
valor resultante, tambien la sencillez del calculo dal valor resultante,
lo que permitira aumentar su rendimiento, otras propiedades a cumplir son
que sea irreversible e imposible de obtener el mensaje original desde el
valor resultante en la funcion resumen, tambien tiene que ser resistente
a las colisiones.
Estas funciones pueden sufrir dos ataques, dado
un mensaje con un valor resultante se busca otro mensaje con sentido que
tenga el mismo valor resultante.El segundo ataque es definir dos mensajes
que tengan el mismo valor resultante con la inclusion de caracteres especiales
y alternar el envio de cada uno, este ultimo es mucho mas efectivo ya que
los dos documentos son conocidos de antemano.
Autentificacion
El objetivo de este proceso es la identificacion de uno de los participantes en un dialogo por el otro participante.La base del proceso es una informacion que es secreta y comun a ambos participantes.En este ambito se refiere a la identificacion de la tarjeta o del terminal, y se fundamenta en un intercambio de informacion entre ambos.existen varios tipos de procesos, los mas comunes son:
-Simetrico
unidireccional:
En este caso se desea identificar a uno de los participantes
que tienen en comun la clave utilizada en la transmision de informacion.
La parte que desea identificar genera un numero
aleatorio y lo envia, entonces la otra parte cifra el numero y lo envia,
el valor recibido es descifrado y comparado con el valor original.Dado
que este numero es aleatorio, se imposibilita la grabacion externa de la
sesion, con el objeto de replicarla.La seguridad esta en la clave sobre
la cual hay que incluir mecanismos de seguridad.El primero es utilizar
una clave individualizada para cada tarjeta, de este modo se evita que
su descubrimiento revele todo el sistema y normalmente esta clave puede
ser calculada por el terminal a partir del numero de serie de la tarjeta
que es unico.Tambien es habitual que parte del numero de serie es la version
cifrada de la clave utilizada en este proceso mediante la utilizacion de
la clave maestra , que solo es conocida por el terminal.Por lo tanto la
seguridad de la clave maestra es basica para un correcto funcionamiento
de la autentificacion.
-Simetrico
bidireccional:
Esta doble identificacion se podria realizar mediante
el desarrollo de dos procesos simetricos unidireccionales, pero el coste
temporal seria demasiado alto para considerar esta posibilidad.Ademas se
puede comprobar que el sistema es mas seguro , ya que desde el exterior
no se puede interferir las dos fases del proceso.
El terminal obtiene el numero de serie de la tarjeta
para calcular su clave, tambien genera un numero aleatorio n1, y solicita
un numero aleatorio de la tarjeta n2 el terminal luego cifra la concatenacion
de n1 y n2 y envia el resultado a la tarjeta, luego la tarjeta descifra
el mensaje y compara el valor de n2 con el valor local de n2, la tarjeta
cifra la concatenacion de n2 y n1 y envia al terminal el resultado, por
ultimo el terminal descifra el mensaje y compara el valor de n1 con su
valor local.
Una mejora al anterior sistema es el envio , por
parte de la tarjeta del numero aleatorio y del numero de serie en un unico
mensaje.
-Asimetrico
estatica:
La utilizacion de una autentificacion asimetrica resulta
interesante , ya que en su violacion es necesario localizar dos claves.El
coste de la inclusion de una unidad para el cifrado asimetrico en una tarjeta
inteligente, aconsejo en un primer momento la utilizacion de una autenticidad
estatica.El funcionamiento es el siguiente, en la tarjeta se almacena una
informacion y su cifrado mediante un sistema asimetrico,el terminal puede
leer ambos valores con el objeto de verificar su validez mediante la utilizacion
de una clave publica.
Uno de los problemas basicos de este sistema es que puede
ser reproducido, reduciendo el nivel de seguridad, ademas se plantea el
problema de la clave elegida en su desarrollo, si siempre se utiliza la
misma clave publica, y la clave privada asociada es descubierta, todo el
sistema es descubierto, asi que la mejor opscion es utilizar pares de claves
diferentes para cada tarjeta.
-Asimetrico
dinamica:
Si la inclusion de una unidad para el cifrado asimetrico
no presenta un coste demasiado alto, resulta aconsejable la utilizacion
de una autentificacion dinamica, en estos casos el terminal genera un numero
aleatorio que se convierte en un punto de inicio del proceso, dicho numero
aleatorio es cifrado en la tarjeta utilizando la clave privada y posteriormente
enviando al terminal.el terminal solo tiene que descifrar el mensaje utilizando
la clave publica correspondiente y comprobando el resultado con el numero
que el habia generado.Este sistema se puede implementar , tanto si existe
una unica pareja de claves , como si existe una pareja asociada a la tarjeta.
Firma digital
Cuando la informacion se transmite a traves de cualquier medio electronico, resulta necesario verificar que dicha informacion no es alterada , y la utilizacion de la firma puede resolver este problema , aunqeu su definicion debe variar.En este ambito se entiende como un bloque que se añade al propio mensaje, y que el receptor puede volver a calcular para verificar la autenticidad del mensaje.La firma debe permitir verificar acualquiera de sus receptores que el mensaje proviene del emisor y que no se ha modificado.Por esta razon el valor de la firma depende del contenido del mensaje y de un valor que solo es conocido por el emisor.Ambos criterios pueden ser cubiertos mediante la utilizacion de un sistema criptografico que utilice una clave que solo sea conocida por el emisor del mensaje.La utilizacion de un sistema asimetrico es mas versatil ya que la firma podra ser verificada por cualquier receptor que posea la clave publica del emisor, mientras que los mensajes asimetricos solo permiten verificar la autenticidad del mensaje a los recptores que conozcan la clave
En los sistemas simetricos la versatilidad es menor ya que el mensaje solo puede ser verificado por un numero reducido de receptores, por esta razon los bloques obtenidos cuando se utilizan estos sistemas se suelen denominar simplemente firmas o tambien codigos de autentificacion de mensajes.El sistema mas comunmente utilizado es el DES en modo CBC, ya que presenta un nivel de difusion mas amplio y por tanto los cambios son mas complejos.Dado que el tamaño de la firma modifica el coste de comunicacion del mensaje, resulta interesante reducir al maximo su tamaño.Con este fin la firma solo contiene los ultimos 4 bytes del ultimo bloque cifrado por el sistema de cifrado, esta informacion es mas que suficiente para la verificacion del emisor del mensaje.EL problema se presenta cuando en el dialogo aparecen mas de dos comunicaciones , ya que cualquiera de ellos puede ser el emisordel mensaje.Por esta razon , resulta necesaria la existencia de una clave para cada una de las posibles comunicaciones.
En los sistemas asimetricos la utilizacion de estos
sistemas da lugar a las firmas digitales propiamente dichas, y tambien
en estos sistemas es importante reducir al maximo el tamaño de la
firma.En este caso la solucion mas interesante es la utilizacion de una
funcion resumen.El emisor aplica la funcion de resumen sobre el mensaje
y cifra el resultado mediante la utilizacion de su clave provada que es
la firma.El emisor envia el mensaje y su firma, entonces el receptor aplica
la funcion de resumen al mensaje y descifra la firma comparando los dos
valores resultantes.
Ademas del sistema RSA tambien es posible utilizar otros
tipos de sistemas para generar una firma digital.Uno de ellos es el algoritmo
de firma digital o DSA que no puede utilizarse para el cifrado de informacion.
Manejo de claves
En los sistemas de cifrado de informacion que se utilizan
en los procesos de autentificacion y de firma digital, es importante el
uso de claves, y la privacidad de estas resulta basica por lo que el desarrollo
de tecnicas que la aumenten son fundamentales.
Una tecnica comun para preservar la privacidad de las
claves son las llamadas claves derivadas.Las tarjetas inteligentes pueden
sufrir un analisis profundo lejano al terminal que puede llegar a descubrir
su conjunto de claves.Si la tarjeta no posee una clave maestra que permita
un control completo, dicho analisis es menos productivo, en estos casos
la clave maestra aparece en el terminal, y las claves de la tarjeta se
obtienen a partir de la clave maestra y de informacion propia de la tarjeta
com oel numero de serie.Para el calculo de la clave suele utilizarse un
algoritmo de cifrado como el DES o tambien el triple DES.
Otra tecnica es la basada en multiples claves y versiones
de claves.En la multiplicacion de las claves se asigna para cada uno de
los procesos que utilicen sistemas de cifrado, normalmente cada clave se
obtienen de una clave maestra, para aumentar el nivel de seguridad.La
privacidad de una clave maestra no es eterna y dado que de su valor dependen
las claves de todo un sistema resulta fundamental la actualizacion de su
valor.Dicha actualizacion puede realizarse cuando la clase resulta comprometida
, o mediante una planificacion predefinida.