Sistemas Operativos de Tiempo Real y Tarjetas Inteligentes

22
SISTEMAS OPERATIVOS Tiempo Real y Tarjetas Inteligentes Gobierno de la Ciudad Autónoma de Buenos Aires Instituto de Formación Técnica Superior nº 4 Carrera: Técnico Superior en Análisis de Sistemas Curso: 2º Año-2016 Asignatura: Sistemas Operativos Profesora: Silvia Cirello Equipo de Investigación: Alberto BLUMBERG Rubén GALINDO Matías SANCHEZ

Transcript of Sistemas Operativos de Tiempo Real y Tarjetas Inteligentes

Page 1: Sistemas Operativos de Tiempo Real y Tarjetas Inteligentes

SISTEMAS OPERATIVOS Tiempo Real y Tarjetas Inteligentes

Gobierno de la Ciudad Autónoma de Buenos Aires

Instituto de Formación Técnica Superior nº 4

Carrera: Técnico Superior en Análisis de Sistemas

Curso: 2º Año-2016

Asignatura: Sistemas Operativos

Profesora: Silvia Cirello

Equipo de Investigación: Alberto BLUMBERG

Rubén GALINDO

Matías SANCHEZ

Page 2: Sistemas Operativos de Tiempo Real y Tarjetas Inteligentes

Gobierno de la Ciudad de Bueno Aires – IFTS Nª4

Sistemas Operativos de Tiempo Real y de Tarjetas Inteligentes Página 1 de 21

CONTENIDO

INTRODUCCIÓN.................................................................................................................................................... 3

SISTEMAS OPERATIVOS DE TIEMPO REAL (SOTR) ............................................................................................... 4

DESCRIPCIÓN GENERAL ......................................................................................................................... 4

CARACTERÍSTICAS GENERALES .............................................................................................................. 6

Requisitos .................................................................................................................................. 6

1. Determinismo .......................................................................................................... 6

2. Sensibilidad .............................................................................................................. 6

3. Control del usuario.................................................................................................. 7

4. Fiabilidad ................................................................................................................. 7

5. Tolerancia a los fallos .............................................................................................. 7

Condiciones............................................................................................................................... 8

1. Soporte para la planificación de procesos en tiempo real ................................... 8

2. Planificación por prioridad ..................................................................................... 8

3. Garantía de respuesta ante interrupciones ........................................................... 8

4. Comunicación interprocesos .................................................................................. 8

5. Adquisición de datos a alta velocidad .................................................................... 9

6. Control por parte del usuario de los recursos del sistema ................................... 9

SISTEMAS OPERATIVOS DE TARJETAS INTELIGENTES (SOTI) ............................................................................ 11

DESCRIPCIÓN GENERAL ....................................................................................................................... 11

CARACTERÍSTICAS GENERALES ............................................................................................................ 12

Zonas fundamentales de dependencia ................................................................................. 12

TIPOS DE TARJETAS INTELIGENTES ..................................................................................................... 13

Según la estructura de su sistema operativo ........................................................................ 13

Tarjetas de memoria ................................................................................................. 13

Basadas en sistemas de ficheros, aplicaciones y comandos ................................... 13

Java Cards .................................................................................................................. 13

Según la interfaz ..................................................................................................................... 14

Tarjeta inteligente de contacto ................................................................................ 14

Tarjeta inteligente sin contacto ............................................................................................. 14

Tarjetas híbridas y duales ....................................................................................................... 15

PROCESO DE FABRICACIÓN ................................................................................................................. 15

ESTRUCTURA DE UNA TARJETA INTELIGENTE MICROPROCESADA ................................................... 16

Page 3: Sistemas Operativos de Tiempo Real y Tarjetas Inteligentes

Gobierno de la Ciudad de Bueno Aires – IFTS Nª4

Sistemas Operativos de Tiempo Real y de Tarjetas Inteligentes Página 2 de 21

FUNCIONAMIENTO .............................................................................................................................. 17

MODELOS DE PROGRAMACIÓN .......................................................................................................... 18

De aplicaciones para el chip de la tarjeta .............................................................................. 18

De aplicaciones para los sistemas en los que se utiliza la tarjeta ........................................ 18

SEGURIDAD........................................................................................................................................... 19

BENEFICIOS ........................................................................................................................................... 20

BIBLIOGRAFIA ..................................................................................................................................................... 21

Page 4: Sistemas Operativos de Tiempo Real y Tarjetas Inteligentes

Gobierno de la Ciudad de Bueno Aires – IFTS Nª4

Sistemas Operativos de Tiempo Real y de Tarjetas Inteligentes Página 3 de 21

INTRODUCCIÓN

Un sistema operativo es un programa o conjunto de programas de control, que tiene por objeto

facilitar el uso de una computadora, siendo su finalidad fundamental la de gestionar y administrar

eficientemente los recursos de hardware, permitiendo que se ejecuten uno o varios programas a

la vez sin que haya conflictos entre sí.

En este trabajo detallaremos cuales son los aspectos más destacados y las características de dos

tipos de sistemas operativos que conviven e interactúan con nosotros inmersos en dispositivos y

elementos de uso cotidiano.

En primer término trataremos los sistemas operativos en tiempo real los cuales, habitualmente,

se hallan a cargo del control de equipos y dispositivos de uso industrial. Diariamente, muchos de

estos equipos y dispositivos se encargan de hacer nuestras vidas más confortables y seguras,

comandados por un tipo de sistema operativo que toma las decisiones y ordena acciones en el

momento exacto.

En segundo lugar nos ocuparemos de los sistemas operativos de tarjetas inteligentes, tratando de

describir y detallar las características propias de sistemas y tarjetas que, diariamente y de un modo

muy particular, nos permiten ingresar al trabajo, movilizarnos a través de la red de transporte,

identificarnos en organismos públicos y privados, pudiendo contener toda nuestra identificación

personal y datos relevantes de salud.

Page 5: Sistemas Operativos de Tiempo Real y Tarjetas Inteligentes

Gobierno de la Ciudad de Bueno Aires – IFTS Nª4

Sistemas Operativos de Tiempo Real y de Tarjetas Inteligentes Página 4 de 21

SISTEMAS OPERATIVOS DE TIEMPO REAL (SOTR)

DESCRIPCIÓN GENERAL

Estos sistemas se caracterizan por tener el tiempo como un parámetro clave. Por ejemplo, en los

sistemas de control de procesos industriales. Las computadoras, en tiempo real, tienen que

recolectar datos acerca del proceso de producción y utilizarlos para controlar las máquinas en la

fábrica. A menudo hay tiempos de entrega estrictos que se deben cumplir.

Por ejemplo, si un auto se desplaza sobre una línea de ensamblaje, deben llevarse a cabo ciertas

acciones en determinados instantes. Si un robot soldador realiza su trabajo de soldadura antes o

después de tiempo, el auto se arruinará. Si la acción debe ocurrir sin excepción en cierto momento

(o dentro de cierto rango), tenemos un sistema en tiempo real estricto (Hard real time). Muchos

de estos sistemas se encuentran en el control de procesos industriales, en aeronáutica, en la

milicia y en áreas de aplicación similares. Estos sistemas deben proveer garantías absolutas de que

cierta acción ocurrirá en un instante determinado.

Otro tipo de sistema en tiempo real es el sistema en tiempo real flexible (Soft real time), en el cual

es aceptable que muy ocasionalmente se pueda fallar a un tiempo predeterminado. Los sistemas

de audio digital o de multimedia están en esta categoría. Los teléfonos digitales también son

ejemplos de sistema en tiempo real suave.

Como en los sistemas en tiempo real es crucial cumplir con tiempos predeterminados para realizar

una acción, algunas veces el sistema operativo es simplemente una biblioteca enlazada con los

programas de aplicación, en donde todo está acoplado en forma estrecha y no hay protección

entre cada una de las partes del sistema.

Un ejemplo de este tipo de sistema en tiempo real es e-Cos. Las categorías de sistemas para

computadoras de bolsillo, sistemas integrados y sistemas en tiempo real se traslapan en forma

considerable. Casi todos ellos tienen por lo menos ciertos aspectos de tiempo real suave. Los

sistemas integrados y de tiempo real sólo ejecutan software que colocan los diseñadores del

sistema; los usuarios no pueden agregar su propio software, lo cual facilita la protección. Los

sistemas de computadoras de bolsillo y los sistemas integrados están diseñados para los

consumidores, mientras que los sistemas en tiempo real son más adecuados para el uso industrial.

Los sistemas de tiempo real tienen propiedades distintas de los sistemas interactivos y por ende

diferentes metas de planificación. Se caracterizan por tener tiempos límite que deben (o deberían)

cumplirse. Por ejemplo, si una computadora está controlando un dispositivo que produce datos a

un paso regular, al no ejecutar el proceso de recolección de datos a tiempo se podría perder

información.

Page 6: Sistemas Operativos de Tiempo Real y Tarjetas Inteligentes

Gobierno de la Ciudad de Bueno Aires – IFTS Nª4

Sistemas Operativos de Tiempo Real y de Tarjetas Inteligentes Página 5 de 21

Por ende, la principal necesidad en un sistema de tiempo real es cumplir todos los tiempos límite

(o la mayoría). En algunos sistemas de tiempo real, en especial los que involucran el uso de

multimedia, la predictibilidad es importante. No es fatal fallar en un tiempo límite, pero si el

procesador de audio se ejecuta con muchos errores, la calidad del sonido se deteriorará con

rapidez. El video también cuenta, pero el oído es mucho más sensible a la perturbación que el ojo.

Para evitar este problema, la planificación de procesos debe ser altamente predecible y regular.

En esencia, los sistemas operativos son sistemas en tiempo real hasta cierto punto, incluso los de

propósito general. Cuando ocurre una interrupción, el sistema operativo sólo puede tener unos

cuantos microsegundos para realizar cierta acción o de lo contrario, puede perder información

crítica.

Si bien, hasta aquí, pudimos diferenciar los sistemas operativos de tiempo real en duros y suaves,

a continuación nos ocuparemos de definir ciertas características comunes.

Fig. 1 - Esquema de un sistema controlado por un SOTR

En este esquema podemos observar como una instalación de acopio de agua se halla monitoreado y controlado por un SOTR, donde a partir de los estímulos del entorno y a través de dispositivos sensores el sistema de control monitorea permanentemente el sistema de agua, generándose, en caso de ser necesario, la rápida implementación de acciones correctivas por medio de los dispositivos actuadores, a fin de mantener eficientemente la temperatura y Ph del agua. Los dispositivos sensores pueden ser programados para un funcionamiento continuo o a intervalos regulares de tiempo.

Page 7: Sistemas Operativos de Tiempo Real y Tarjetas Inteligentes

Gobierno de la Ciudad de Bueno Aires – IFTS Nª4

Sistemas Operativos de Tiempo Real y de Tarjetas Inteligentes Página 6 de 21

CARACTERÍSTICAS GENERALES

REQUISITOS

Los SOTR se caracterizan por presentar requisitos especiales en cinco áreas generales.

1. Determinismo.

2. Sensibilidad.

3. Control del usuario.

4. Fiabilidad.

5. Tolerancia a los fallos.

1. DETERMINISMO

Un sistema operativo es determinista si realiza las operaciones en instantes fijos y

predeterminados o en intervalos de tiempo predeterminados. Cuando hay varios procesos

compitiendo por recursos, incluido el procesador, ningún sistema será por completo determinista.

El punto hasta el cual un sistema puede satisfacer las solicitudes de manera determinista depende,

en primer lugar, de la velocidad que puede responder a las interrupciones y en segundo lugar, de

si el sistema posee suficiente capacidad para gestionar todas las peticiones en el tiempo requerido.

Una medida útil de la capacidad de un SO para operar de forma determinista es el retardo máximo

que se produce desde la llegada de una interrupción de alta prioridad hasta que comience el

servicio de la rutina asociada. En un SOTR este tiempo puede ir desde unos pocos microsegundos

a u milisegundo, en los SO que no son de tiempo real el retardo puede caer desde decenas a

cientos de milisegundos.

2. SENSIBILIDAD

Es una característica semejante a la anterior, hace referencia a cuánto tiempo consume un SO en

reconocer una interrupción, es el tiempo preciso para dar aviso a la interrupción después de haberla

reconocido. Depende de:

La cantidad de tiempo necesario para iniciar la gestión de la interrupción y empezar la

ejecución de la rutina de tratamiento (ISR Interrupt Service Routine). Si la ejecución de la ISR

requiere un cambio de proceso ese tiempo será mayor.

La cantidad de tiempo necesario para ejecutar la ISR.

El efecto de anidamiento de las interrupciones. El servicio se retrasará si el sistema debe

atender la llegada de otra interrupción más prioritaria.

El determinismo y la sensibilidad forman conjuntamente el tiempo de respuesta a sucesos

externos.

Page 8: Sistemas Operativos de Tiempo Real y Tarjetas Inteligentes

Gobierno de la Ciudad de Bueno Aires – IFTS Nª4

Sistemas Operativos de Tiempo Real y de Tarjetas Inteligentes Página 7 de 21

3. CONTROL DEL USUARIO

Es generalmente mucho mayor en un SOTR que en uno de tiempo compartido. En estos últimos

un usuario no puede otorgar prioridad a sus procesos, decidir sobre el algoritmo de planificación,

que procesos deben estar siempre residentes en memoria etc.

4. FIABILIDAD

Es normalmente mucho más importante en SOTR. Un sistema en tiempo real controla sucesos

que están teniendo lugar en el entorno y en su propia escala de tiempos, las pérdidas o

degradaciones en el sistema que los controla pueden tener consecuencias catastróficas.

5. TOLERANCIA A LOS FALLOS

Un SOTR debe diseñarse para responder incluso ante varias formas de fallo, se pretende que se

pueda conservar la capacidad máxima y los máximos datos posibles en cada fallo. Opciones como

la de volcar el contenido de la memoria a un archivo y abortar el programa ante la aparición de

un fallo están totalmente prohibidas. Un SOTR intentará corregir el problema o minimizar sus

efectos antes de proseguir con la ejecución.

Fig. 2 - Comparativa de características adicionales entre SOTR Hard y Soft.

Característica

• Tiempo de respuesta

• Desempeño bajo carga pico

• Control del ritmo

• Redundancia

• Detección de errores

Hard Real Time• Requerido

• Predecible

• Ambiente

• Activa

• Autónoma

Soft Real Time• Deseado

• Degradado

• Computadora

• Punto de verificación

• Asistida por Usuario

Page 9: Sistemas Operativos de Tiempo Real y Tarjetas Inteligentes

Gobierno de la Ciudad de Bueno Aires – IFTS Nª4

Sistemas Operativos de Tiempo Real y de Tarjetas Inteligentes Página 8 de 21

CONDICIONES

Para poder satisfacer los requisitos anteriores las los SOTR deben reunir condiciones que podemos

resumir de la siguiente forma:

1. Soporte para la planificación de procesos en tiempo real.

2. Planificación por prioridad.

3. Garantía de respuesta ante interrupciones.

4. Comunicación interprocesos.

5. Adquisición de datos a alta velocidad.

6. Control, por parte del usuario, de los recursos del sistema.

1. SOPORTE PARA LA PLANIFICACIÓN DE PROCESOS EN TIEMPO REAL

Un SOTR debe proporcionar soporte para la creación, borrado y planificación de múltiples

procesos, cada uno de los cuales monitoriza o controla parte de una aplicación. Típicamente, en

un SOTR, es posible definir prioridades para procesos e interrupciones. En contraste, en un sistema

de tiempo compartido, solo el propio sistema operativo determina el orden en que se ejecutan

los procesos.

2. PLANIFICACIÓN POR PRIORIDAD

Un SOTR debe asegurar que un proceso de alta prioridad, cuando esté listo para ejecutarse, pase

por delante de un proceso de más baja prioridad. El SO deberá ser capaz de reconocer la condición

(usualmente a través de una interrupción), pasar por delante del proceso que se está ejecutando

y realizar un rápido cambio de contexto para permitir la ejecución de un proceso de más alta

prioridad. Un SO de propósito general como el UNIX SYSTM V si tiene un proceso corriendo en el

kernel debe esperar a que finalice su ejecución en este espacio para luego activar el proceso más

prioritario.

3. GARANTÍA DE RESPUESTA ANTE INTERRUPCIONES

Un SOTR debe reconocer muy rápidamente la aparición de una interrupción o un evento, y tomar

una acción determinística (bien definida en términos funcionales y temporales) para atender a ese

evento. Debe responder tanto a interrupciones de tipo hardware como software. El propio SO

debe ser interrumpible y reentrante (recordemos que uno de los problemas del DOS, que no es

un SOTR, se debe a que no es reentrante).

4. COMUNICACIÓN INTERPROCESOS

Un SOTR debe ser capaz de soportar comunicaciones interprocesos de manera fiable y precisa,

tales como semáforos, paso de mensajes y memoria compartida. Estas facilidades se emplean para

Page 10: Sistemas Operativos de Tiempo Real y Tarjetas Inteligentes

Gobierno de la Ciudad de Bueno Aires – IFTS Nª4

Sistemas Operativos de Tiempo Real y de Tarjetas Inteligentes Página 9 de 21

sincronizar y coordinar la ejecución de los procesos, así como para la protección de datos y la

compartición de recursos.

5. ADQUISICIÓN DE DATOS A ALTA VELOCIDAD

Es necesario que el sistema sea capaz de manejar conjunto de datos con una alta velocidad de

adquisición. De esta forma, un SOTR proporciona medios para optimizar el almacenamiento de

datos en disco, sobre todo a través de E/S buffereada. Otras características adicionales puede ser

la posibilidad de pre asignar bloques de disco contiguos a archivos (almacenamiento secuencial) y

dar control al usuario sobre los buffers.

6. CONTROL POR PARTE DEL USUARIO DE LOS RECURSOS DEL SISTEMA

Una característica clave de los SOTR es la capacidad de proporcionar a los usuarios el control

específico de los recursos del sistema, incluyendo la propia CPU, memoria y recursos de E/S. El

control de la CPU se logra sobre la base de una planificación por prioridades en la cual los usuarios

pueden establecer las prioridades de los procesos. Además, se dispone de temporizadores en

tiempo real y de funciones para manejarlos para planificar eventos y periodos de espera. Un SOTR

debe también facilitar el bloqueo de la memoria (locking), de esta forma se puede garantizar que

un programa, o parte de él, permanece en la memoria, a fin de poder realizar cambios de contexto

de manera más rápida cuando ocurre una interrupción. Debería ser capaz de permitir al usuario

la asignación de buffers y la posibilidad de bloquear y desbloquear archivos y dispositivos. El

control que se ejerce es generalmente mucho mayor en los SOTR que en los SO genéricos. En

estos últimos un usuario no tiene control sobre la prioridad de sus procesos, el algoritmo de

planificación, el cierre de páginas virtuales en memoria, la reserva de espacio en disco etc.

Como ya hemos comentado en los SOTR el tiempo es el parámetro clave para la ejecución de una tarea. En ese intervalo de tiempo a partir de la activación se determinará el plazo de ejecución, el límite, el arranque, la ejecución de la tarea, la finalización y el tiempo de respuesta. En los SOTR de tipo Hard el tiempo de respuesta es crucial, el límite estará lo más alejado posible del instante de terminación de la tarea ejecutada. En los SOTR de tipo Soft el tiempo de terminación y de respuesta podrán ser más flexibles, siempre que no excedan el límite previsto.

Fig.3 - Esquema de ejecución de una tarea en tiempo real

Page 11: Sistemas Operativos de Tiempo Real y Tarjetas Inteligentes

Gobierno de la Ciudad de Bueno Aires – IFTS Nª4

Sistemas Operativos de Tiempo Real y de Tarjetas Inteligentes Página 10 de 21

Un SOTR es un sistema operativo que ha sido desarrollado para “aplicaciones de tiempo real”.

Como tal, se le exige corrección en sus respuestas bajo ciertas restricciones de tiempo. Si no las

respeta, se dirá que el sistema ha fallado. Para garantizar el comportamiento correcto en el tiempo

requerido se necesita que el sistema sea predecible.

Después de enumerar las características, requisitos y condiciones podemos decir que los SOTR

son aquellos en los cuales no tiene importancia el usuario, sino los procesos. Por lo general, están

subutilizados sus recursos con la finalidad de prestar atención a los procesos en el momento que

lo requieran, se utilizan en entornos donde son procesados un gran número de sucesos o eventos.

Muchos Sistemas Operativos de tiempo real son construidos para aplicaciones muy específicas

como control de tráfico aéreo, bolsas de valores, control de refinerías, control de trenes. También

en el ramo automovilístico y de la electrónica de consumo, las aplicaciones de tiempo real están

creciendo muy rápidamente.

Algunos de los Sistemas Operativos de tiempo real más conocidos son:

Fig. 4 - Ejemplos de SOTR

Ejemplos de SOTR

Haiku

QNX

RT-11

MaRTE OS

EasyTasks

LynxOS

Solaris

RedHat Embedded Linux

eCos (Linux)

SOOS

VxWorks

Windows CE

Linchos

UNIX (Some)

DuinOS

RTAI

Spectra

Symbian

BlackBerry 10

Microware OS-9

Page 12: Sistemas Operativos de Tiempo Real y Tarjetas Inteligentes

Gobierno de la Ciudad de Bueno Aires – IFTS Nª4

Sistemas Operativos de Tiempo Real y de Tarjetas Inteligentes Página 11 de 21

SISTEMAS OPERATIVOS DE TARJETAS INTELIGENTES

DESCRIPCIÓN GENERAL

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 ser de solo 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.

Como mecanismo de control de acceso las tarjetas inteligentes hacen que los datos personales y de negocios solo sean accesibles a los usuarios apropiados, esta tarjeta asegura la portabilidad, seguridad y confiabilidad en los datos.

La incorporación de un circuito integrado ofrece tres nuevos elementos que pueden favorecer su utilización generalizada.

Una tarjeta inteligente (smart card), o tarjeta con circuito integrado (TCI), es cualquier tarjeta del tamaño del bolsillo con circuitos integrados, que permite la ejecución de cierta lógica programada. Aunque existe un diverso rango de aplicaciones, hay dos categorías principales de TCI. Las tarjetas de memoria contienen sólo componentes de memoria no volátil y posiblemente alguna lógica de seguridad. Las tarjetas microprocesadas contienen memoria y microprocesadores.

La percepción estándar de una tarjeta inteligente es una tarjeta microprocesada de las dimensiones de una tarjeta de crédito (o más pequeña, como por ejemplo, tarjetas SIM o GSM) con varias propiedades especiales (ej. un procesador criptográfico seguro, sistema de archivos seguro, características legibles por humanos) y es capaz de proveer servicios de seguridad (ej. confidencialidad de la información en la memoria).

Las tarjetas no contienen baterías; la energía es suministrada por los lectores de tarjetas.

Fig. 5 - Tarjeta inteligente con microprocesador estampado (de contacto), utilizada para identificación personal en Portugal

Fig. 6 - Tarjeta inteligente con microprocesador estampado (sin contactos), utilizada para transporte público en diversos países

Fig. 7 - Tarjeta inteligente de tipo SIM (en sus tres versiones de tamaño: micro, mini y nano) con microprocesador estampado (de contacto), utilizada en telefonía celular en todo el mundo

Page 13: Sistemas Operativos de Tiempo Real y Tarjetas Inteligentes

Gobierno de la Ciudad de Bueno Aires – IFTS Nª4

Sistemas Operativos de Tiempo Real y de Tarjetas Inteligentes Página 12 de 21

CARACTERÍSTICAS GENERALES

Las más relevantes son:

1. Inteligencia: Es capaz de almacenar cualquier tipo de información, además es autónoma en la toma de decisiones al momento de realizar transacciones.

2. Utilización de clave de acceso o PIN: Para poder utilizarse es necesario digitar un número de identificación personal, es posible además incorporar tecnología más avanzada como identificación por técnica biométrica, huella digital o lectura de retina.

3. Actualización de cupos: Después de agotado el cupo total de la tarjeta inteligente es posible volver a cargar un nuevo cupo.

4. Miniaturización: Las densidades de integración de controladores y memorias que se alcanzan en la actualidad, permiten ofrecer un nuevo abanico de posibilidades y de funciones, lo que origina su expansión en el mercado y un nuevo medio de intercambio de información.

5. Lógica programable: La tarjeta inteligente incorpora la potencia de los ordenadores, incluyendo las funciones lógicas y de control que se aplican a los negocios, junto con funciones avanzadas de seguridad y nuevas aplicaciones.

6. Interfaz directa de comunicaciones electrónicas: Las comunicaciones están en crecimiento constante. Cada nuevo avance ofrece un nuevo campo en el que puede aplicarse las tarjetas inteligentes.

Las especificaciones físicas, eléctricas, el formato de los comandos y todo lo relacionado con tarjetas se especifica en la norma ISO 7816.

ZONAS FUNDAMENTALES DE DEPENDENCIA

1. Zona Abierta: Contiene información que no es confidencial. (el nombre del portador y su dirección).

2. Zona de Trabajo: Contiene información confidencial. (Aplicaciones bancarias: cupo de crédito disponible, el número de transacciones permitidas en un periodo de tiempo).

3. Zonas Secretas: La información es totalmente confidencial. El contenido de estas zonas no es totalmente disponible para el portador de la tarjeta, ni tiene por qué conocerla la entidad que la emite ni quien la fábrica.

Page 14: Sistemas Operativos de Tiempo Real y Tarjetas Inteligentes

Gobierno de la Ciudad de Bueno Aires – IFTS Nª4

Sistemas Operativos de Tiempo Real y de Tarjetas Inteligentes Página 13 de 21

TIPOS DE TARJETAS INTELIGENTES

SEGÚN LA ESTRUCTURA DE SU SISTEMA OPERATIVO

TARJETAS DE MEMORIA

Tarjetas que únicamente son un contenedor de ficheros pero que no albergan aplicaciones ejecutables. Disponen de un sistema operativo limitado con una serie de comandos básicos de lectura y escritura de las distintas secciones de memoria y pueden tener capacidades de seguridad para proteger el acceso a determinadas zonas de memoria.

Son tarjetas con solo memoria y la presentación de esta tarjeta inteligente y su utilización se concentra principalmente en tarjetas pre pagadas para hacer llamadas telefónicas.

Estas tarjetas, conocidas también con el nombre de sincrónicas, contienen un chip de memoria que se utiliza generalmente para el almacenamiento de datos, dentro de esta categoría existen dos tipos de tarjeta:

Memoria Libre: Carece de mecanismos de protección para acceder a la información.

Memoria Protegida: Que necesita de códigos y pasos previos para tener acceso a la

información. Estas tarjetas son desechables cargadas previamente con un monto

o valor que va decreciendo a medida que se utiliza, una vez se acaba el monto se vuelve

desechable, se utilizan a nivel internacional para el pago de peajes, teléfonos públicos,

máquinas dispensadoras y espectáculos.

BASADAS EN SISTEMAS DE FICHEROS, APLICACIONES Y COMANDOS

Estas tarjetas disponen del equivalente a un sistema de ficheros compatible con el estándar ISO/IEC 7816 parte 4 y un sistema operativo en el que se incrustan una o más aplicaciones (durante el proceso de fabricación) que exponen una serie de comandos que se pueden invocar a través de APIs de programación.

JAVA CARDS

Una Java Card es una tarjeta capaz de ejecutar mini-aplicaciones Java. En este tipo de tarjetas el sistema operativo es una pequeña máquina virtual Java (JVM) y en ellas se pueden cargar dinámicamente aplicaciones desarrolladas específicamente para este entorno.

Fig. 8 - Sistemas para smart cards basados en Java Card Operative System

Fig. 9 - Tarjetas inteligentes con microprocesador, de sólo memoria o capaces de ejecutar aplicaciones.

Page 15: Sistemas Operativos de Tiempo Real y Tarjetas Inteligentes

Gobierno de la Ciudad de Bueno Aires – IFTS Nª4

Sistemas Operativos de Tiempo Real y de Tarjetas Inteligentes Página 14 de 21

SEGÚN LA INTERFAZ

TARJETA INTELIGENTE DE CONTACTO

Estas tarjetas disponen de unos contactos metálicos visibles y debidamente estandarizados (parte 2 de la ISO/IEC 7816). Estas tarjetas, por tanto, deben ser insertadas en una ranura de un lector para poder operar con ellas. A través de estos contactos el lector alimenta eléctricamente a la tarjeta y transmite los datos oportunos para operar con ella conforme al estándar.

Fig. 10 - Contactos del chip de una tarjeta con contactos La serie de estándares ISO/IEC 7816 e ISO/IEC 7810 definen: La forma física, la posición de las formas de los conectores eléctricos, las características eléctricas, los protocolos de comunicación, el formato de los comandos (ADPU's) enviados a la tarjeta y las respuestas retornadas por la misma; la dureza de la tarjeta, la funcionalidad; Los lectores de tarjetas inteligentes de contacto son utilizados como un medio de comunicación entre la tarjeta inteligente y un anfitrión, como por ejemplo un ordenador

TARJETA INTELIGENTE SIN CONTACTO

El segundo tipo es la tarjeta inteligente sin contacto mediante etiquetas RFID en el cual el chip se comunica con el lector de tarjetas mediante inducción a una tasa de transferencia de 106 a 848 Kb/s). Son similares a las de contacto con respecto a lo que pueden hacer y a sus funciones pero utilizan diferentes protocolos de transmisión en capa lógica y física, no utiliza contacto galvánico sino de interface inductiva, puede ser de media distancia sin necesidad de ser introducida en una terminal de lector inteligente. El estándar de comunicación de tarjetas inteligentes sin contacto es el ISO/IEC 14443 del 2001. Define dos tipos de tarjetas sin contacto (A y B), permitidos para distancias de comunicación de hasta 10 cm. Un estándar alternativo de tarjetas inteligentes sin contacto es el ISO 15693, el cual permite la comunicación a distancias de hasta 50 cm. Las más abundantes son las tarjetas de la familia MIFARE de Philips, las cuales representan a la ISO/IEC 14443-A.

Las tarjetas inteligentes sin contacto son una evolución de la tecnología usada desde hace años por los RFID (identificación por radio frecuencia - radio frequency identification), añadiéndoles dispositivos que los chip RFID no suelen incluir, como memoria de escritura o micro controladores. Una de las ventajas que esta tarjeta tiene es que como no existen contactos externos en la tarjeta, esta es más resistente a los elementos externos tales como la suciedad.

Page 16: Sistemas Operativos de Tiempo Real y Tarjetas Inteligentes

Gobierno de la Ciudad de Bueno Aires – IFTS Nª4

Sistemas Operativos de Tiempo Real y de Tarjetas Inteligentes Página 15 de 21

Fig. 11 - La tarjeta inteligente sin contacto no utiliza el contacto físico con el lector, se comunica y alimenta por medio de un campo magnético inducido de radiofrecuencias. Consta de un chip (emisor de RF), una antena y un soporte de plástico laminado (tarjeta). El chip es el núcleo de este tipo de tarjetas: es el encargado de gestionar la comunicación con el lector, la recepción de los datos, su almacenamiento en la tarjeta, su cifrado y la protección del acceso.

TARJETAS HÍBRIDAS Y DUALES

Una tarjeta híbrida es una tarjeta sin contacto (contactless) a la cual se le agrega un

segundo chip de contacto. Ambos chips pueden ser chips microprocesadores o simples

chips de memoria. El chip sin contacto es generalmente usado en aplicaciones que

requieren transacciones rápidas. Por ejemplo el transporte, mientras que el chip de

contacto es generalmente utilizado en aplicaciones que requieren de alta seguridad como

las bancarias. Un ejemplo es la tarjeta de identificación llamada MyKad en Malasia, que

usa un chip Proton de contacto y un chip sin contacto MIFARE (ISO 14443A).

Una tarjeta de interfaz dual es similar a la tarjeta híbrida en que la tarjeta presenta ambas

interfaces con y sin contacto. La diferencia más importante es el hecho de que la tarjeta

de interfaz dual tiene un solo circuito integrado. Un ejemplo es la Oberthur Cosmo Card

Dual-Interface.

PROCESO DE FABRICACIÓN

La fabricación de tarjetas inteligentes abarca normalmente los siguientes pasos:

1. Fabricación del chip, o muchos chips en una oblea. Varios miles de chips de circuito

integrado se fabrican a la vez en la forma de obleas de silicio con aproximadamente 3.000

a 4.000 unidades.

2. Empaquetado de los chips individuales para su inserción en una tarjeta. Una vez que se

termina una oblea, cada chip se prueba individualmente, se divide la oblea y se realizan las

conexiones eléctricas del chip.

3. Fabricación de la tarjeta. La tarjeta está compuesta de cloruro de polivinilo (PVC) o de un

material similar. Las características químicas y las dimensiones de la tarjeta y sus

tolerancias son reguladas por estándares internacionales. El material de la tarjeta se

produce en una hoja grande, plana del grosor prescrito. Para muchos tipos de tarjetas

producidas en serie, estas hojas se imprimen con los elementos gráficos comunes a todas

las tarjetas. Las tarjetas individuales se cortan de esta hoja plana y los bordes de cada

tarjeta se lijan.

4. Inserción del chip en la tarjeta. Una vez que el chip y la tarjeta estén preparados, los dos se

unen: se hace un agujero en la tarjeta, y el chip se pega en él con pegamento.

Page 17: Sistemas Operativos de Tiempo Real y Tarjetas Inteligentes

Gobierno de la Ciudad de Bueno Aires – IFTS Nª4

Sistemas Operativos de Tiempo Real y de Tarjetas Inteligentes Página 16 de 21

5. Pre-personalización. Una vez la tarjeta está completa, la mayoría de los usos inteligentes

de la misma requieren que ciertos ficheros de los programas o de datos estén instalados

en cada chip (tarjeta) antes de que la tarjeta se pueda personalizar para un titular

específico. Esta preparación general del software o de los archivos en la tarjeta se hace

con una operación llamada la pre-personalización, que se hace a través de los contactos

del chip y por lo tanto puede proceder solamente a la velocidad proporcionada por esa

interfaz.

6. Personalización. El procedimiento de la personalización implica el poner la información tal

como nombres, perfiles o números de cuenta en la tarjeta; a partir de la realización de este

proceso la tarjeta está asignada a una persona en particular. Normalmente esta

personalización será gráfica (estampando o troquelado de datos personales del titular

sobre la superficie plástica de la tarjeta) y/o eléctrica (grabando información personal del

titular en algún fichero de la tarjeta).

ESTRUCTURA DE UNA TARJETA INTELIGENTE MICROPROCESADA

Internamente, el chip de una tarjeta inteligente microprocesada se compone de:

CPU (Central Processing Unit): el procesador de la tarjeta; suelen ser de 8 bits, a 5 MHz y 5

voltios. Pueden tener opcionalmente módulos hardware para operaciones criptográficas.

ROM (Read-Only Memory): memoria interna (normalmente entre 12 y 30 KB) en la que se

incrusta el sistema operativo de la tarjeta, las rutinas del protocolo de comunicaciones y

los algoritmos de seguridad de alto nivel por software. Esta memoria, como su nombre

indica, no se puede reescribir y se inicializa durante el proceso de fabricación.

EEPROM: memoria de almacenamiento (equivalente al disco duro en un ordenador

personal) en el que está grabado el sistema de ficheros, los datos usados por las

aplicaciones, claves de seguridad y las propias aplicaciones que se ejecutan en la tarjeta.

El acceso a esta memoria está protegido a distintos niveles por el sistema operativo de la

tarjeta.

RAM (Random Access Memory): memoria volátil de trabajo del procesador.

Fig. 12 - Estructura de una tarjeta inteligente. Podemos observar que el acceso a las áreas de memoria sólo es posible a través de la unidad de entrada/salida y de una CPU (típicamente de 8 bits). Existe un sistema operativo empotrado en la tarjeta - generalmente en ROM, aunque también se puede extender con funciones en la EEPROM, el criptoprocesador apoya estas tareas ofreciendo operaciones con claves de 512 a 1024 bits.

Page 18: Sistemas Operativos de Tiempo Real y Tarjetas Inteligentes

Gobierno de la Ciudad de Bueno Aires – IFTS Nª4

Sistemas Operativos de Tiempo Real y de Tarjetas Inteligentes Página 17 de 21

FUNCIONAMIENTO

Las tarjetas se activan al introducirlas en un lector de tarjetas. Un contacto metálico, o incluso una lectura láser, como en un CD-ROM, permite la transferencia de información entre el lector y la tarjeta, actualmente comienzan a existir productos que permiten leer una tarjeta inteligente desde el propio ordenador personal.

Cuando el usuario poseedor de una smartcard desea autenticarse necesita introducir la tarjeta en

un hardware lector; los dos dispositivos se identifican entre sí con un protocolo a dos bandas en

el que es necesario que ambos conozcan la misma clave (CK o CCK, Company Key o Chipcard

Communication Key), lo que elimina la posibilidad de utilizar tarjetas de terceros para autenticarse

ante el lector de una determinada compañía; además esta clave puede utilizarse para asegurar la

comunicación entre la tarjeta y el dispositivo lector. Tras identificarse las dos partes, se lee la

identificación personal (PID) de la tarjeta, y el usuario teclea su PIN; se inicia entonces un protocolo

desafío-respuesta: se envía el PID a la máquina y ésta desafía a la tarjeta, que responde al desafío

utilizando una clave personal del usuario (PK, Personal Key). Si la respuesta es correcta, el host ha

identificado la tarjeta y el usuario obtiene acceso al recurso pretendido.

En el caso de las tarjetas sin contactos (contactless) cuando el usuario acerca la tarjeta al lector

este envía ondas electromagnéticas (RF) que forman un campo magnético para que ambos

elementos conecten a través de la antena de la tarjeta sin contacto. Una tarjeta pasiva obtiene su

energía de este campo magnético y la utiliza para alimentar el circuito del chip. El chip, a su vez,

modula estas ondas y las reenvía al lector, el cual convierte estas nuevas ondas en datos

numéricos. La tarjeta debe estar bastante cerca del lector para que funcione: entre 3 y 10

centímetros. Hay algunas tarjetas sin contacto que utilizan las ondas de radio y pueden funcionar

a una distancia mayor.

Fig. 13 - En los sistemas de tarjetas inteligentes sin contacto la conexión de los dispositivos se produce a través de un campo mágnetico de RF. Esta tecnología es ampliamente utilizada en transportes públicos de alto volúmen para la cobranza del pasaje en ciudades como Seul, Korea, Londres, Beijing, Taipei, Buenos Aires, Montevideo, etc. , sistemas de cobranza, para tickets de valor fijo, abonos semanales o mensuales de pases en transportes de pasajeros, pago de peajes de autopistas, playas de estacionamiento, tarjetas de pasajeros frecuentes en aerolíneas y pago de combustible en estaciones de servicios, sistemas de control de personal, identificación personal para acceso a edificios y compañias, tarjetas de empleados (control de horas trabajadas), etc.

Page 19: Sistemas Operativos de Tiempo Real y Tarjetas Inteligentes

Gobierno de la Ciudad de Bueno Aires – IFTS Nª4

Sistemas Operativos de Tiempo Real y de Tarjetas Inteligentes Página 18 de 21

MODELOS DE PROGRAMACIÓN

Al aproximarse a la programación de tarjetas inteligentes hay que distinguir dos ámbitos

claramente diferenciados:

DE APLICACIONES PARA EL CHIP DE LA TARJETA

Es decir, aplicaciones que se almacenan y ejecutan dentro del chip de la tarjeta cuando ésta recibe

alimentación eléctrica de un lector.

Este tipo de programación es de muy bajo nivel y depende normalmente del tipo y proceso de

fabricación de las propias tarjetas. En la mayoría de las tarjetas inteligentes el sistema operativo

de la tarjeta y las aplicaciones que van dentro del chip se cargan en el propio proceso de

fabricación y no pueden ser luego modificadas una vez que la tarjeta ha sido fabricada.

Una excepción clara a este caso pueden ser las Java Cards, que son tarjetas que en el proceso de

fabricación incorporan un sistema operativo y una máquina virtual Java específica para este

entorno. Una vez fabricada la tarjeta, los desarrolladores pueden implementar mini-aplicaciones

(applets) Java para ser cargadas en la tarjeta (mediante un procedimiento que garantice la

seguridad del sistema).

DE APLICACIONES PARA LOS SISTEMAS EN LOS QUE SE UTILIZA LA TARJETA

Esto es, aplicaciones que se ejecutan en ordenadores (en un sentido genérico, ya que pueden

ser terminales empotrados, cajeros automáticos, PCs de escritorio, etc.) a los que se conecta un

lector de tarjetas en el que se inserta (o aproxima si es un lector sin contactos) una tarjeta

inteligente. Estas aplicaciones se comunican con el lector, el cual se comunica con la tarjeta y sus

aplicaciones.

Existen varias APIs de programación estandarizadas para comunicarse con los lectores de tarjetas

inteligentes desde un ordenador. Las principales son:

PC/SC (Personal Computer/Smart Card). Existe una implementación para Microsoft

Windows y también el proyecto proporciona una implementación casi completa de esta

especificación para los sistemas operativos GNU Linux-UNIX.

OCF (OpenCard Framework). Este entorno intenta proporcionar un diseño orientado a

objetos fácilmente extensible y modular. El consorcio OpenCard publica el API y

proporciona una implementación de referencia en Java. Existe un adaptador para que OCF

trabaje sobre PC/SC.

En ambos casos, el modelo de programación que utilizan las tarjetas inteligentes está basado en

protocolos de petición-respuesta. La tarjeta (su software) expone una serie de comandos que

pueden ser invocados. Estos comandos interactúan con los ficheros que subyacen a cada

aplicación de la tarjeta y proporcionan un resultado. Desde el terminal se invocan estos comandos

a través de cualquiera de las APIs antes descritas componiendo APDUs (Application Protocol Data

Unit - comandos con parámetros) que son enviados a la tarjeta para que ésta responda.

Page 20: Sistemas Operativos de Tiempo Real y Tarjetas Inteligentes

Gobierno de la Ciudad de Bueno Aires – IFTS Nª4

Sistemas Operativos de Tiempo Real y de Tarjetas Inteligentes Página 19 de 21

SEGURIDAD

La seguridad es una de las propiedades más importantes de las tarjetas inteligentes y se aplica a múltiples niveles y con distintos mecanismos. Cada fichero lleva asociadas unas condiciones de acceso y deben ser satisfechas antes de ejecutar un comando sobre ese fichero.

En el momento de personalización de la tarjeta (durante su fabricación) se puede indicar qué

mecanismos de seguridad se aplican a los ficheros. Normalmente se definirán:

Ficheros de acceso libre.

Ficheros protegidos por claves. Pueden definirse varias claves con distintos propósitos.

Normalmente se definen claves para proteger la escritura de algunos ficheros y claves

específicas para los comandos de consumo y carga de las aplicaciones de monedero

electrónico. De ese modo la aplicación que intente ejecutar comandos sobre ficheros

protegidos tendrá que negociar previamente con la tarjeta la clave oportuna.

Ficheros protegidos por PIN. El PIN es un número secreto que va almacenado en un fichero

protegido y que es solicitado al usuario para acceder a este tipo de ficheros protegidos.

Cuando el usuario lo introduce y el programa se lo pasa a la operación que va a abrir el

fichero en cuestión el sistema valida que el PIN sea correcto para dar acceso al fichero.

Finalmente, indicar que la negociación de claves se realiza habitualmente apoyándose en

un Módulo SAM, que no deja de ser otra tarjeta inteligente, de diferente formato, alojada en un

lector interno propio dentro de la carcasa del lector principal y que contiene aplicaciones

criptográficas que permiten negociar las claves oportunas con la tarjeta inteligente del usuario.

Operando de este modo se está autenticando el lector, la tarjeta y el módulo involucrados en cada

operación.

No existe un sistema seguro al 100%, pero el de la tarjeta inteligente es teóricamente el que ofrece un mayor grado de seguridad.

La tarjeta inteligente es un mecanismo muy seguro para el almacenamiento de información financiera o transaccional, la tarjeta inteligente es un lugar seguro para almacenar información como claves privadas, número de cuenta, password, o información personal muy valiosa, esta capacidad se debe a: 1. Encriptación. 2. Clave segura (PIN). 3. Clave secundaria de seguridad. 4. Sistema de seguridad redundante. 5. Firmas digitales. 6. Alta seguridad en el acceso físico a: recintos, laboratorios, controles, salas informáticas. 7. A través de sistemas biométricos, huella dactilar y retina.

Page 21: Sistemas Operativos de Tiempo Real y Tarjetas Inteligentes

Gobierno de la Ciudad de Bueno Aires – IFTS Nª4

Sistemas Operativos de Tiempo Real y de Tarjetas Inteligentes Página 20 de 21

BENEFICIOS

Las ventajas de utilizar tarjetas inteligentes como medio para autenticar usuarios son muchas

frente a las desventajas; se trata de un modelo ampliamente aceptado entre los usuarios, rápido,

y que incorpora hardware de alta seguridad tanto para almacenar datos como para realizar

funciones de cifrado. Además, su uso es factible tanto para controles de acceso físico como para

controles de acceso lógico a los hosts, y se integra fácilmente con otros mecanismos de

autenticación como las contraseñas; y en caso de desear bloquear el acceso de un usuario, no

tenemos más que retener su tarjeta cuando la introduzca en el lector o marcarla como inválida en

una base de datos (por ejemplo, si se equivoca varias veces al teclear su PIN, igual que sucede con

una tarjeta de crédito normal). Como principal inconveniente de las smartcards podemos citar el

coste adicional que supone para una organización el comprar y configurar la infraestructura de

dispositivos lectores y las propias tarjetas; aparte, que un usuario pierda su tarjeta es bastante

fácil, y durante el tiempo que no disponga de ella o no puede acceder al sistema, o hemos de

establecer reglas especiales que pueden comprometer nuestra seguridad (y por supuesto se ha

de marcar como tarjeta inválida en una base de datos central, para que un potencial atacante no

pueda utilizarla). También la distancia lógica entre la smartcard y su poseedor - simplemente nos

podemos fijar en que la tarjeta no tiene un interfaz para el usuario - puede ser fuente de varios

problemas de seguridad.

Aparte de los problemas que puede implicar el uso de smartcards en sí, contra la lógica de una

tarjeta inteligente existen diversos métodos de ataque, como realizar ingeniería inversa

destructiva contra el circuito de silicio (y los contenidos de la ROM), adulterar la información

guardada en la tarjeta o determinar por diferentes métodos el contenido de la memoria EEPROM.

La utilización de tarjetas inteligentes con microprocesador presenta las siguientes ventajas:

Presentan un costo por transacción que es menor que el de las tarjetas magnéticas convencionales. Esto es así incluyendo los costos de la tarjeta, de las infraestructuras necesarias y de los elementos para realizar las transacciones.

Ofrecen unas prestaciones unas 20 veces superiores a las de una tarjeta magnética tradicional. Esta ventaja se explica por las configuraciones múltiples que puede tener, lo que permite utilizarla en distintas aplicaciones.

Permiten realizar transacciones en entornos de comunicaciones móviles, en entornos de prepago y en nuevos entornos de comunicaciones. A estos entornos no puede acceder la tarjeta tradicional.

Las mejoras en seguridad y funcionamiento permiten reducir los riesgos y costos del usuario.

Page 22: Sistemas Operativos de Tiempo Real y Tarjetas Inteligentes

Gobierno de la Ciudad de Bueno Aires – IFTS Nª4

Sistemas Operativos de Tiempo Real y de Tarjetas Inteligentes Página 21 de 21

BIBLIOGRAFIA

http://sistemasoperativos.angelfire.com/html/1.4.2.html (27-5-16)

http://isa.uniovi.es/docencia/TiempoReal/Recursos/temas/sotr.pdf (29-5-16)

https://es.wikipedia.org/wiki/Sistema_operativo_de_tiempo_real (29-5-16)

https://es.wikipedia.org/wiki/Sistema_operativo_de_tiempo_real#Principales_fabricantes (30-05-16)

http://www.monografias.com/trabajos10/tarin/tarin.shtml (29-5-16)

http://www.monografias.com/trabajos16/tarjetas-inteligentes/tarjetas-inteligentes.shtml

http://blog.negonation.com/es/tarjetas-inteligentes-en-europa-introduccion/ (30-05-16)

https://es.wikipedia.org/wiki/Tarjeta_inteligente (30-05-2016)

http://www.emsa.com.uy/macros/TextContent_M.jsp?contentid=259&version=1 (10-06-16)

http://www.datacap.com.ar/smartcardpag.htm (10-06-16)

http://www.zk-software.com/tarjetas_rfid.html (10-06-16)

https://es.wikipedia.org/wiki/Espectro_electromagn%C3%A9tico (10-06-16)