ES2848284T3 - Dispositivo y procedimiento de aumento de la seguridad de comandos intercambiados entre un terminal y circuito integrado - Google Patents
Dispositivo y procedimiento de aumento de la seguridad de comandos intercambiados entre un terminal y circuito integrado Download PDFInfo
- Publication number
- ES2848284T3 ES2848284T3 ES16186040T ES16186040T ES2848284T3 ES 2848284 T3 ES2848284 T3 ES 2848284T3 ES 16186040 T ES16186040 T ES 16186040T ES 16186040 T ES16186040 T ES 16186040T ES 2848284 T3 ES2848284 T3 ES 2848284T3
- Authority
- ES
- Spain
- Prior art keywords
- command
- data
- terminal
- integrated circuit
- card
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/12—Transmitting and receiving encryption devices synchronised or initially set up in a particular manner
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/606—Protecting data by securing the transmission between two devices or processes
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/77—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in smart cards
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Mathematical Physics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
Procedimiento de transmisión de datos, puesto en práctica entre un terminal y un circuito integrado, comunicándose dicho terminal y dicho circuito integrado por mediación de una interfaz de emisión y de transmisión de datos, comprendiendo dicho procedimiento al menos una iteración de las siguientes etapas, puestas en práctica por el terminal: - generación (10) de un primer comando (CX) destinado a dicho circuito integrado, comprendiendo dicho primer comando una primera cabecera de comando; - cifrado (20) de los datos de dicho primer comando (CX) y de la primera cabecera de comando, entregando un primer comando cifrado (CC) que comprende los datos del primer comando y la primera cabecera de comando cifrada; - creación (30) de un segundo comando (CY), comprendiendo dicho segundo comando una segunda cabecera de comando y datos, estando dichos datos al menos en parte constituidos a partir de dicho primer comando cifrado (CC); - transmitiéndose dicho segundo comando (CY) a dicho circuito integrado en un flujo de comandos en el que se insertan señuelos.
Description
DESCRIPCIÓN
Dispositivo y procedimiento de aumento de la seguridad de comandos intercambiados entre un terminal y un circuito integrado
1. Campo
La técnica que se propone se refiere a los intercambios entre un terminal y una tarjeta chip. Más en particular, la técnica que se propone se refiere al aumento de la seguridad en tales intercambios. La técnica que se propone se encamina, más en particular, a hacer seguros los intercambios entre un terminal y un circuito integrado, circuito integrado este que puede alojarse en una tarjeta chip, la cual puede ser leída por el terminal. Esta lectura se puede realizar con o sin contacto, en función de la tecnología empleada, tanto en el terminal de lectura como en el circuito integrado.
Más concretamente, la invención concierne a la puesta en práctica de extensiones físicas y lógicas que permiten la protección de la naturaleza de los comandos intercambiados entre un lector y un circuito integrado.
2. Técnica anterior
2.1. Comunicación entre un terminal y un circuito integrado, tal como empotrado en una tarjeta chip
En el nivel de aplicación, los intercambios entre lector de tarjetas (seguidamente, “lector” o “terminal”) y una tarjeta chip que se inserta en él se realizan por medio de unidades de datos de protocolo de aplicación APDU (“Application Protocol Data Unit”).
2.1.1. El protocolo base
Las APDU son comandos transmitidos por el terminal a la tarjeta. Las APDU también rigen la recogida de las respuestas transmitidas por la tarjeta al terminal.
El formato de estos comandos y respuestas está definido en el nivel de aplicación por la norma ISO 7816-4 y sus anexos A y B. Los comandos APDU siempre son activados por el terminal y la tarjeta debe estar constantemente a la escucha de APDU provenientes del terminal. Dicho de otro modo, de acuerdo con la norma ISO 7816-4 y utilizando la terminología de uso corriente entre los expertos en la materia, el terminal está en modo “maestro”, mientras que la tarjeta está en modo “esclavo”.
El terminal proporciona a la tarjeta la alimentación de energía y un reloj cuya frecuencia es típicamente 3,5 MHz. El intercambio de datos entre tarjeta y terminal recae en un enlace serie cuya velocidad de transferencia está comprendida entre 9600 y 230400 baudios. El terminal produce una petición (APDU) que incluye (de manera acorde con el protocolo de transporte T=0) al menos 5 octetos (CLA INS P1 P2 P3) y octetos opcionales (cuya longitud Lc viene precisada por el valor del octeto P3).
La tarjeta reacciona entregando un mensaje de respuesta que comprende octetos de información (cuya longitud “Le” está especificada por el octeto P3) y una palabra de estado (SW1 SW2) de dos octetos de anchura SW1 SW2 = 9000 notifica el éxito de una operación. Cuando no se conoce a priori la longitud de la respuesta, una palabra de estado “61 Le” indica la longitud del mensaje de respuesta. Una vez conocido este parámetro, el terminal obtiene la información por medio del comando GET RESPONSE (CLA C0 00 00 Le), como más adelante se detallará.
Las operaciones de lectura y de escritura y la invocación de las funciones criptográficas están asociadas a APDU específicas. La información almacenada en la tarjeta está almacenada en un sistema de ficheros que incluye un directorio raíz (MF Master File), subdirectorios (DF Dedicated File) y ficheros (EF Elementary File). Cada componente se identifica por un número de dos octetos; la navegación a través de este sistema se efectúa con el concurso de APDU particulares (SELECT FILE, READ BINARY, WRITE BINARY) cuyo detalle excede del ámbito de la presente técnica.
La seguridad de la comunicación entre la tarjeta y el terminal recae en protocolos de autenticación simple o mutua (transportados por unas APDU) que, en caso de éxito, autorizan el acceso a los ficheros.
Por lo tanto, la puesta en práctica de una tarjeta utiliza un paradigma de llamada de procedimiento puesto en práctica (transportado) mediante APDU definidas generalmente para un sistema operativo de tarjeta específica. El formato de la información embebida es conocido a priori y clasificado mediante un sistema de ficheros 7816.
2.1.2. El transporte de los mensajes APDU (TPDU)
Existen varios protocolos de transporte. Es necesario definir reglas para, por ejemplo, realizar la segmentación de las APDU en bloques compatibles con el tamaño máximo permitido por estos protocolos. En el caso presente, solo detallamos las reglas definidas para el protocolo T=0.
La cabecera una de TPDU (T=0) siempre incluye cinco octetos (CLA INS P1 P2 P3) en lugar de cuatro, en el caso de las APDU.
- Caso 1. TPDU = CLA INS P1 P2 P3=00
- Caso 2, orden saliente:
- Mensaje corto (short), CLA INS P1 P2 P3=Le, orden saliente de 1 a 256 (Le=0) octetos. El estado SW1=6C SW2=La puede indicar el valor máximo La que soporta la tarjeta.
- Mensaje largo (Extended), se genera un número adaptado (Le/256) de peticiones cortas CLA INS P1 P2 P3=0. En la última petición, P3 es igual al resto módulo 256 de Le. Una respuesta sin error finaliza en el estado 9000 (último segmento de la respuesta) o 61 xx (longitud P3 de la próxima petición).
- Caso 3, orden entrante:
- Mensaje corto (short) CLA INS P1 P3 P3=Lc [Lc octetos]. Orden entrante de 1 a 255 octetos. Un estado 9000 indica la correcta ejecución de la operación.
- Mensaje largo (Extended). Se utiliza una serie de comandos ENVELLOPE, CLA C2 P1 P2 P3 [P3 bytes 1,..,255] para realizar la segmentación de la APDU que ha de transmitirse. El estado de la respuesta es 9000 en caso de ejecución correcta.
- Caso 4, orden saliente/entrante:
- Mensaje corto (short) CLA INS P1 P2 P3=Lc.[Lc bytes]. Un estado 61 Le indica el tamaño de la respuesta.
El comando saliente GET_RESPONSE CLA C0 P1 P2 P3=Le permite leer el mensaje de respuesta cuyo tamaño es Le.
- Mensaje largo (Extended). En este caso se utilizan los comandos ENVELLOPE y GET_RESPONSE.
Entre los parámetros que definen los formatos de las APDU, el parámetro CLA cumple una misión particular dentro del ámbito del aumento de la seguridad en los intercambios (modo Secure Messaging). De este modo, el parámetro CLA está definido para tipos de tarjeta particulares o por fabricantes particulares. 00 es el valor ISO, A0 para las tarjetas SIM, BC fue utilizado por Bull CP8, FF está reservado para el protocolo PTS. El cuarteto más significativo está definido por el estándar ISO 7816 para los valores 0, 8, 9 y A. En este caso, el cuarteto menos significativo incluye dos bits que indican el uso del Secure Messaging (SM: firma y cifrado de las APDU), y los dos últimos bits designan un número de canal lógico (comprendido entre 0 y 3). La noción de canal lógico consiste en utilizar simultáneamente varias aplicaciones alojadas en la tarjeta.
2.1.3. El modo Secure Messaging
La finalidad de la transmisión segura de mensajes (SM) es la de proteger una parte de los mensajes enviados desde y con destino a una tarjeta, cubriendo dos funcionalidades elementales de seguridad: la autenticación de los datos y la confidencialidad de los datos.
La transmisión segura de mensajes se realiza aplicando uno o varios mecanismos de seguridad. Cada mecanismo de seguridad emplea un algoritmo, una clave, un argumento y, muchas veces, un dato inicial.
- La transmisión y la recepción de campos de datos pueden ir entrelazadas con la ejecución de los mecanismos de seguridad. Esta especificación no excluye la determinación mediante un análisis secuencial de los mecanismos y de las herramientas de seguridad que se utilizan para procesar lo que resta de los campos de datos.
- Dos o varios mecanismos de seguridad pueden utilizar el mismo algoritmo en diferentes modos de operación (ver ISO/IEC 7816). Las presentes especificaciones de las reglas de relleno no excluyen tal funcionalidad.
Esta cláusula define 3 tipos de objetos de datos relativos a SM:
- objetos de datos en claro, destinados a transportar datos en claro;
- objetos de datos asociados a los mecanismos de seguridad, destinados a transportar el resultado de los cálculos efectuados por los mecanismos de seguridad;
- objetos de datos de seguridad auxiliares, destinados a transportar referencias de control y descriptores de respuestas.
Sin haber necesidad de abordar los pormenores técnicos de la implementación del modo de transmisión segura de mensajes, cabe destacar que se ponen en práctica diversos mecanismos; estos permiten realizar una protección de ciertos objetos de datos que transitan entre el terminal y el circuito integrado (se trata, por ejemplo, de los objetos de datos para la autenticación). Otros objetos de datos, cuya sensibilidad es menor, no necesariamente están
protegidos.
En efecto, el cifrado y la firma (o la autenticación de los datos) sirven tradicionalmente con el fin de hacer seguros los datos intercambiados entre la tarjeta y el terminal. De este modo, un terminal que cifra y autentica sus comandos APDU solamente protegerá los datos transferidos contra interceptaciones y modificaciones. Permaneciendo los comandos, por su parte, en claro.
El cifrado y la autenticación de datos intercambiados entre aparatos comunicantes recaen sobre métodos conocidos para un experto en la materia, entre los que destaca el despliegue de infraestructuras de clave pública (Public Key Infrastructure, PKI). Una PKI es un conjunto de componentes físicos y lógicos que permite gestionar el ciclo de vida de certificados electrónicos. Estos certificados permiten efectuar operaciones criptográficas, como el cifrado o la firma digital que, en las transacciones electrónicas, ofrecen las siguientes garantías:
- confidencialidad: solo el destinatario (o el poseedor) legítimo de un mensaje puede tener una visión inteligible del mismo;
- autenticación: en la transmisión de un mensaje o en la conexión a un sistema, se conoce con seguridad la identidad del emisor o la identidad del usuario que se ha conectado;
- integridad: se tiene la garantía de que un mensaje expedido no ha sido alterado, accidental o intencionadamente; - no repudio: el autor de un mensaje no puede renegar de su obra.
Se hace notar que existen técnicas que permiten asegurar a la vez la confidencialidad, la autenticación y la integridad. Se trata, por ejemplo, de procedimientos de “signcryption" o de “cifrado autenticado".
2.2. Inconvenientes de la técnica anterior
Como se ha visto, el modo Secure Messaging tan solo asegura la confidencialidad de los datos, y no la confidencialidad de los comandos. De este modo, el despliegue de SM y de una PKI con el fin de cubrir servicios de cifrado y de autenticación no resulta de ayuda alguna contra un ataque que consista en inferir información que permita menoscabar la seguridad utilizando la información proporcionada por las cabeceras de APDU CLA INS P1 P2 P3.
Tales ataques pueden ser, por ejemplo:
- El bloqueo de APDU identificadas como desfavorables para el usuario (por ejemplo, bloqueo del borrado de un fichero de claves, como consecuencia del cese de pago de una suscripción. Siendo otro ejemplo el bloqueo de un comando de adeudo.).
- A la inversa, los ataques de repetición. Estos ataques consisten en repetir una APDU que aporta un beneficio al usuario (por ejemplo, crédito de un monedero de unidades monetarias).
- Los ataques llamados de “hombre en medio” (man in the middle attacks), que consisten en ponerse entre la tarjeta y el terminal y desviar la comunicación entre tarjeta y terminal en momentos precisos.
- Los ataques de retrodiseño consistentes en espiar los intercambios entre el terminal y la tarjeta con el fin de inferir el funcionamiento del sistema subyacente y, así, comprometer la propiedad intelectual perteneciente a los diseñadores del sistema. Los ataques por retrodiseño también pueden permitir detectar debilidades de protocolo o de lógica transaccional y permitir ataques del equipo lógico sobre el sistema subyacente.
La utilización de actuales dispositivos criptográficos externos tales como las actuales tarjetas chip no aporta una respuesta a estas amenazas, pues el protocolo ISO 7816 permite al atacante comprender lo que hace la tarjeta (sin por ello permitir necesariamente al atacante comprender los datos transmitidos entre la tarjeta y el terminal si se utiliza el modo SM (Secure Messaging)).
Tal y como se ha visto, si se asume que el atacante controla totalmente el enlace entre la tarjeta y el terminal y, además, dispone de un conocimiento del significado de las cabeceras de APDU CLA INS P1 P2 P3 intercambiadas entre la tarjeta y el terminal, entonces resulta imposible garantizar la confidencialidad total de la aplicación y/o del propio sistema, aun si la confidencialidad y la integridad de los datos intercambiados no dejan de estar garantizadas por un procedimiento de SM (Secure Messaging). Se trata, pues, de graves inconvenientes que han permitido numerosos ataques contra sistemas que ponen en práctica tarjetas chip. Los documentos "Functional Specification of the OpenPGP application on ISO Smart Card Operating Systems, Version 3.0" de Achim Pietig y (US 2009/028078 A1) constituyen documentos pertinentes de la técnica anterior.
3. Sumario
La presente invención está definida por las reivindicaciones independientes.
La presenta técnica no presenta estos inconvenientes del estado de la técnica. Más en particular, la presente técnica se refiere a un procedimiento de transmisión de datos. Más en particular, la invención se refiere a un Procedimiento de transmisión de datos, puesto en práctica entre un terminal y un circuito integrado, comunicándose dicho terminal y dicho circuito integrado por mediación de una interfaz de emisión y de transmisión de datos, comprendiendo dicho procedimiento al menos una iteración de las siguientes etapas, puestas en práctica por el terminal:
- generación de un comando destinado a dicho circuito integrado, comprendiendo dicho comando una cabecera de comando;
- cifrado de dicho comando, entregando un comando cifrado;
- creación de un segundo comando, comprendiendo dicho comando una cabecera de comando y datos, estando dichos datos al menos en parte constituidos a partir de dicho comando cifrado;
- transmisión de dicho segundo comando a dicho circuito integrado.
De este modo, un atacante que trate de determinar el tipo o el encadenamiento de los comandos intercambiados entre un terminal y un circuito integrado no está en condiciones de obtener una información útil. En efecto, la observación de los intercambios entre el terminal y el circuito integrado no permite obtener datos pertinentes. Más en particular, la observación de los intercambios no permite deducir qué comando se transmite, como quiera que el comando real, aquel que es utilizado para realizar un procesamiento, está cifrado y encapsulado en otro comando. De acuerdo con una característica particular, tal circuito integrado se materializa en forma de una tarjeta SIM y/o de una tarjeta bancaria y/o de pago y/o un monedero electrónico.
De acuerdo con una característica particular, tal circuito integrado se materializa en forma de una tarjeta de identidad o también de una tarjeta de acceso a un recurso protegido como, por ejemplo, una tarjeta de control de acceso. De acuerdo con una característica particular, tal circuito integrado se materializa en forma de una tarjeta de acceso a programas de televisión.
De acuerdo con otra característica, tal circuito integrado se materializa en forma de una tarjeta sin contacto.
De acuerdo con otra característica, el protocolo de transmisión es conforme a la norma 7816.
De acuerdo con otra característica, el protocolo de transmisión es conforme a al menos una cualquiera de las normas ISO 14223, ISO 14443, ISO 15693, ISO 18000:, ISO 18092, ISO 18185, ISO 21481, ASTM D7434, ASTM D7435, ASTM D7580 o ISO 28560-2.
De acuerdo con una característica particular, dicho procedimiento de transmisión de datos comprende adicionalmente, con anterioridad al cifrado de dicho comando, una etapa de agregación, a dicho comando, de un primer dato complementario, llamado primer dato de ofuscación.
De este modo, además del enmascaramiento del comando propiamente dicho, se realiza un enmascaramiento del tamaño de este comando. A partir de entonces, el atacante no puede basarse en el tamaño de los comandos para comprender el encadenamiento de estos comandos. De acuerdo con esta característica, este enmascaramiento se efectúa añadiendo datos ficticios, que asimismo están cifrados.
De acuerdo con una característica particular, dicho procedimiento de transmisión de datos comprende adicionalmente, con anterioridad a la creación de dicho segundo comando, una etapa de agregación, a dicho comando cifrado, de un segundo dato complementario, llamado segundo dato de ofuscación.
De este modo, además del enmascaramiento del comando propiamente dicho, se realiza un enmascaramiento del tamaño de este comando. A partir de entonces, el atacante no puede basarse en el tamaño de los comandos para comprender el encadenamiento de estos comandos.
De acuerdo con una característica particular, dicha etapa de agregación, a dicho comando, de un primer dato de ofuscación comprende:
- una etapa de cálculo de un tamaño de dicho dato de ofuscación realizando una resta entre un valor de un parámetro predeterminado y el tamaño de dicho comando;
- una etapa de obtención de un dato de longitud idéntica al tamaño de dicho dato de ofuscación, comprendiendo dicho dato una sucesión de bits o de octetos aleatorios.
De este modo, además del enmascaramiento del comando propiamente dicho, se realiza un enmascaramiento del tamaño de este comando. Más en particular, de acuerdo con esta característica, todos los comandos tienen un tamaño constante. A partir de entonces, el atacante, al observar los intercambios entre la tarjeta y el terminal, no distingue más que una sucesión de comandos de tamaño constante. Por lo tanto, el atacante no está en condiciones
de deducir, de la observación de estos intercambios, el contenido probable de los comandos.
De acuerdo con una característica particular, dicho procedimiento comprende adicionalmente, con posterioridad a dicha etapa de transmisión, una etapa de temporización, durante un periodo de tiempo aleatorio.
De acuerdo con una característica particular, dicho procedimiento comprende adicionalmente, con anterioridad a dicha etapa de transmisión de dicho segundo comando, una etapa una etapa de transmisión de un tercer comando. De acuerdo con un modo de realización particular, dicho tercer comando se genera aleatoriamente.
De acuerdo con una característica particular, dicha etapa de transmisión comprende:
- una etapa de troceo de dicho segundo comando en una pluralidad de porciones de comando;
- una etapa de transmisión, de manera independiente, de cada porción de dicha pluralidad de porciones de comandos.
Asimismo, la invención se refiere a un dispositivo de transmisión de datos, con destino a un circuito integrado, comunicándose dicho dispositivo y dicho circuito integrado por mediación de una interfaz de emisión y de transmisión de datos. Tal dispositivo comprende al menos un módulo configurado para efectuar:
- una generación de un comando destinado a dicho circuito integrado, comprendiendo dicho comando una cabecera de comando;
- un cifrado de dicho comando, entregando un comando cifrado;
- una creación de un segundo comando, comprendiendo dicho comando una cabecera de comando y datos, estando dichos datos al menos en parte constituidos a partir de dicho comando cifrado;
- una transmisión de dicho segundo comando a dicho circuito integrado.
De este modo, la técnica que se propone permite aportar una solución a al menos algunos inconvenientes de las técnicas conocidas de protección contra ataques basados en el espionaje y la modificación de los comandos intercambiados entre un terminal y una tarjeta.
Más concretamente, la técnica que se propone proporciona una protección, independiente del cifrado y/o de la firma y/o de los MAC utilizados por los actuales sistemas, con el fin de reducir, en la medida de lo posible, la comprensión de que dispone el atacante sobre el significado (en sentido semántico) y la naturaleza concreta (y no sobre el contenido) de los intercambios entre el terminal y la tarjeta.
Por otro lado, la técnica que se propone permite seguir siendo conforme al protocolo ISO 7816 o, de manera más general, seguir siendo conforme a cualquier otro protocolo de intercambio de comandos y de datos entre una tarjeta y un terminal como, por ejemplo, la norma USB o también ISO 14223, ISO 14443, ISO 15693, ISO 18000: (Partes 1 a 7), ISO 18092, ISO 18185, ISO 21481, ASTM D7434, ASTM D7435, ASTM D7580 o ISO 28560-2.
Por otro lado, la técnica que se propone permite reforzar la seguridad del modo HCE, al enmascarar el significado de los comandos de este modo.
De acuerdo con una implementación preferida, las diferentes etapas de los procedimientos según la técnica que se propone se llevan a la práctica mediante uno o varios soportes lógicos o programas de ordenador, que comprenden instrucciones lógicas destinadas a ser ejecutadas por un procesador de datos de un módulo relevador según la técnica que se propone y que está diseñado para gobernar la ejecución de las diferentes etapas de los procedimientos.
En consecuencia, la técnica que se propone también se encamina a un programa, susceptible de ser ejecutado por un ordenador o por un procesador de datos, incluyendo este programa instrucciones para gobernar la ejecución de las etapas de los procedimientos tal y como se ha mencionado anteriormente, cuando son ejecutados por un terminal y/o por un circuito integrado.
Este programa puede utilizar cualquier lenguaje de programación y presentarse en forma de código fuente, código objeto, o de código intermedio entre código fuente y código objeto, tal como en una forma compilada parcialmente, o en cualquier otra forma deseable.
La técnica que se propone también se encamina a un soporte de información legible por un procesador de datos y que incluye instrucciones de un programa tal y como se ha mencionado anteriormente.
El soporte de información puede ser cualquier entidad o dispositivo capaz de almacenar el programa. Por ejemplo, el soporte puede incluir un medio de almacenamiento, tal como una ROM, por ejemplo un CD-ROM o una ROM de circuito microelectrónico, o también un medio de grabación magnética, por ejemplo un disquete (floppy disc) o un disco duro, una memoria flash o una memoria de un medio de almacenamiento de otro tipo.
Por otra parte, el soporte de información puede ser un soporte transmisible, tal como una señal eléctrica u óptica, que se puede conducir a través de un cable eléctrico u óptico, por radio o por otros medios. El programa según la técnica que se propone se puede descargar en particular por una red de tipo Internet.
Alternativamente, el soporte de información puede ser un circuito integrado en el que va incorporado el programa, estando adaptado el circuito para ejecutar o para ser utilizado en la ejecución del procedimiento en cuestión.
De acuerdo con un modo de realización, la técnica que se propone se lleva a la práctica por medio de componentes de soporte lógico y/o de soporte físico. En esta línea, el término "módulo" puede corresponder, en este documento, tanto a un componente de soporte lógico, como a un componente de soporte físico o a un conjunto de componentes de soporte físico y lógico.
Un componente de soporte lógico corresponde a uno o varios programas de ordenador, uno o varios subprogramas de un programa o, de manera más general, a todo elemento de un programa o de un soporte lógico apto para llevar a la práctica una función o un conjunto de funciones, según lo descrito a continuación en relación con el módulo de que se trate. Tal componente de soporte lógico es ejecutado por un procesador de datos de una entidad física (terminal, servidor, pasarela, encaminador, etc.) y está posibilitado de acceso a los recursos de soporte físico de esta entidad física (memorias, soportes de grabación, buses de comunicación, tarjetas electrónicas de entrada/salida, interfaces de usuario, etc.).
De la misma manera, un componente de soporte físico corresponde a todo elemento de un conjunto de soporte físico (o hardware) apto para llevar a la práctica una función o un conjunto de funciones, según lo descrito a continuación en relación con el módulo de que se trate. Puede ser un componente de soporte físico programable o con procesador integrado para la ejecución de soporte lógico, por ejemplo un circuito integrado, una tarjeta chip, una tarjeta de memoria, una tarjeta electrónica para la ejecución de un microprograma (firmware), etc.
Por supuesto, cada componente del sistema anteriormente descrito lleva a la práctica sus propios módulos de lógica.
Los diferentes modos de realización antes mencionados son combinables entre sí para la puesta en práctica de la técnica que se propone.
4. Figuras
Otras características y ventajas de la técnica que se propone se pondrán más claramente de manifiesto con la lectura de la siguiente descripción de un modo preferente de realización, dado a título de mero ejemplo ilustrativo y no limitativo, y de los dibujos que se acompañan, de los cuales:
- en la figura 1, se describe la arquitectura convencional de una tarjeta chip y de un terminal;
- en la figura 2, se describe un primer modo de realización de la presente técnica, llamado “modo directo", donde los comandos APDU y/o los datos de aplicación son cifrados y/o firmados;
- en la figura 3, se describe un segundo modo de realización de la presente técnica, llamado “modo de tamaño constante", donde todos los comandos y datos asociados tienen el mismo tamaño, permitiendo reducir más el nivel de información;
- en la figura 4, se describe un tercer modo de realización de la presente técnica, llamado “modo de tamaño enmascarado", donde se añade un número aleatorio de octetos inútiles a los datos asociados a cada comando intercambiado, permitiendo reducir más el nivel de información;
- en la figura 5, se describe un cuarto modo de realización de la presente técnica, llamado “modo de troceo con tamaño constante", donde los datos asociados a un comando se trocean en datos asociados a subcomandos de tamaño constante, permitiendo reducir más el nivel de información;
- en la figura 6, se describe un quinto modo de realización de la presente técnica, llamado “modo de troceo con tamaño aleatorio", donde los datos asociados a un comando se rebanan en datos asociados a subcomandos de tamaño aleatorio, permitiendo reducir más el nivel de información;
- en la figura 7, se describe un sexto modo de realización de la presente técnica, llamado “de retardos aleatorios entre comandos", donde el terminal inserta retardos de espera aleatorios entre los comandos, permitiendo reducir más el nivel de información;
- en la figura 8, se describe un séptimo modo de realización de la presente técnica, llamado “de permutación aleatoria de comandos", donde el terminal permuta, cuando en la esfera aplicación es posible, el orden de los comandos, permitiendo reducir más el nivel de información;
- en la figura 9, se describe un octavo modo de realización de la presente técnica, llamado “de comandos señuelo", donde el terminal genera e inserta comandos señuelo, permitiendo reducir más el nivel de información.
- La figura 10 describe el principio general de la técnica, desde el punto de visto del terminal;
- la figura 11 describe sumariamente la arquitectura física de un terminal adaptado para llevar a la práctica la presente técnica; y
- la figura 12 describe sumariamente la arquitectura física de un circuito integrado adaptado para llevar a la práctica la presente técnica.
1. Descripción
1.1. Principio general
Como anteriormente se ha hecho explícito, uno de los problemas de los actuales métodos de aumento de la seguridad se relaciona con las elecciones realizadas para efectuar el cifrado de los comandos y de las respuestas intercambiados. En efecto, se consideró, a la hora de definir la norma de intercambio, que era suficiente con cifrar el contenido de los comandos y de las respuestas. Ahora bien, se ha comprobado que este cifrado era insuficiente: dependiendo del tren de comandos/respuesta intercambiado, una persona malintencionada (actor de fraude) también está en condiciones de obtener información muy valiosa que puede ser utilizada para frustrar el cifrado de los comandos. En consecuencia, los presentes inventores han tenido la idea de proponer un método en el que se intercambia un solo comando entre el terminal y la tarjeta. Igualmente, por la tarjeta es proporcionada una sola respuesta. Tal como se detalla en lo sucesivo, este método es conforme a las actuales normas de intercambios entre una tarjeta y un terminal y no precisa más que de escasas adaptaciones, tanto del lado del terminal como del lado de la tarjeta.
La técnica que se propone es puesta en práctica en un sistema que comprende al menos un terminal (13) y al menos un microprocesador de tarjeta chip (11) que se comunican a través de un medio de interfaz de entrada y de salida de datos (12). Estando el terminal (13) y la tarjeta (11) provistos de medios de memoria y de cálculo criptográfico. La figura 1 ilustra un sistema típico que lleva a la práctica la invención. El terminal y la tarjeta están adaptados para llevar a la práctica los procedimientos de protección de APDU según la presente técnica.
La presente técnica recae sobre un producto de programa que, ejecutado en el seno del terminal (13), comprende instrucciones de código de programa para la puesta en práctica del procedimiento conforme a la invención. La presente técnica recae sobre un producto de programa que, ejecutado en el seno de la tarjeta (11), comprende instrucciones de código de programa para la puesta en práctica del procedimiento conforme a la invención. La presente técnica recae sobre un medio de almacenamiento legible por el microprocesador del terminal, y no transitorio, que almacena un programa que comprende un juego de instrucciones ejecutables para llevar a la práctica un procedimiento conforme a la invención. La presente técnica recae sobre un medio de almacenamiento legible por el microprocesador de la tarjeta, y no transitorio, que almacena un programa que comprende un juego de instrucciones ejecutables para llevar a la práctica un procedimiento conforme a la invención.
La técnica que se propone está basada en el concepto novedoso e inventivo denominado por los presentes inventores Comando ciego. Se trata, desde un punto de vista general, de no utilizar más que un solo tipo de comando del terminal hacia la tarjeta chip. Análogamente, se trata asimismo, en cuanto a la tarjeta chip, de no utilizar más que un solo tipo de respuesta.
Para hacer esto, con carácter general, se construye mediante el terminal un comando CX, destinado a una tarjeta chip. Este comando se construye cumpliendo los estándares en vigor. Esto significa que el comando CX comprende una cabecera y eventualmente datos de acuerdo a la norma (no todos los comandos comprenden datos). Los datos son protegidos (por ejemplo, cifrados o firmados) cuando se lleva a la práctica una política de seguridad, con el concurso de métodos existentes (por ejemplo, utilizando una técnica de Secure Messaging). Este comando CX constituye un comando convencional que, según la técnica anterior, se podría transmitir a la tarjeta chip. Sin embargo, a diferencia de la técnica anterior, este comando X queda entonces protegido: por ejemplo, el comando CX está cifrado (CC). De este modo, no solamente se cifran los datos del comando, sino también la cabecera del mismo.
De acuerdo con la presente técnica, este comando CX se completa a continuación con una segunda cabecera. Esta segunda cabecera, estándar, permite crear un comando resultante CY. La segunda cabecera es independiente del comando CX, a excepción de un eventual atributo relativo al tamaño del comando: eventualmente, este atributo relativo al tamaño del comando se valoriza, en función de los modos de realización, con el tamaño del comando CY. Esto permite cumplir con y hacer funcionar los métodos de verificación de la integridad de los comandos en correspondencia con la tarjeta chip.
El comando resultante CY es transmitido entonces a la tarjeta chip. La tarjeta chip lleva a la práctica los procesos convencionales de verificación del comando CY recibido. Cuando se efectúa esta verificación (por ejemplo, el tamaño del comando es correcto con relación al tamaño anunciado), según la presente técnica, el comando CX es extraído del comando CY. Se ejecuta entonces el comando CX, de manera acorde con la técnica anterior.
Esta técnica es ventajosa en más de un sentido. En primer lugar, permite aleatorizar la señal que transita entre la
tarjeta y el terminal de manera simple. Un actor de fraude que haya conseguido obtener la señal que transita entre la tarjeta y el terminal no percibe más que una sucesión de comandos y de respuesta que siempre tienen el mismo formato. Por lo tanto, no puede discernir los comandos que se intercambian. En efecto, a ojos del actor de fraude, el comando es el mismo, pues la cabecera de comando es estándar.
Más específicamente, como queda expuesto en relación con la figura 10, desde el punto de vista del terminal, el método comprende las siguientes etapas:
- generación (10) de un comando (CX) destinado a dicho circuito integrado, comprendiendo dicho comando una cabecera de comando;
- cifrado (20) de dicho comando (CX), entregando un comando cifrado (CC);
- creación (30) de un segundo comando (CY), comprendiendo dicho comando una cabecera de comando y datos, estando dichos datos al menos en parte constituidos a partir de dicho comando cifrado (CC);
- transmisión (40) de dicho comando (CY) a dicho circuito integrado.
De manera complementaria, se pueden llevar a la práctica asimismo unas etapas de agregación de datos de ofuscación. Estos datos de ofuscación, a los que asimismo se puede llamar datos de relleno, pueden ser añadidos antes y/o después del cifrado del comando. De este modo, facultativamente, el procedimiento comprende adicionalmente, con anterioridad al cifrado de dicho comando (CX), una etapa de agregación (15), a dicho comando (CX), de un primer dato complementario, llamado primer dato de ofuscación (DO1).
Por otro lado, siempre facultativamente, el procedimiento comprende adicionalmente, con anterioridad a la creación de dicho segundo comando (CY), una etapa de agregación (25), a dicho comando cifrado (CC), de un segundo dato complementario, llamado segundo dato de ofuscación (DO2). Tal como se hace explícito en lo sucesivo, los datos de ofuscación pueden ser de tamaño aleatorio o de tamaño constante. Los datos de ofuscación pueden tener como finalidad la de enmascarar el tamaño real del comando.
Combinado con otras técnicas, tales como se describen en lo sucesivo, la determinación del comando resulta todavía más compleja. Es perfectamente evidente que los modos de realización descritos en lo sucesivo son combinables libremente entre sí, sin que estas combinaciones salgan del ámbito de la presente. De este modo, los beneficios individuales de cada modo de realización se combinan para permitir un enmascaramiento todavía más eficaz de los intercambios que intervienen entre el terminal y el circuito integrado.
Asimismo, la técnica descrita se refiere a un procedimiento de procesamiento puesto en práctica entre un terminal y un circuito integrado, comunicándose dicho terminal y dicho circuito integrado por mediación de una interfaz de emisión y de transmisión de datos, comprendiendo dicho procedimiento al menos una iteración de las siguientes etapas, puestas en práctica por el circuito integrado:
- recepción de dicho segundo comando con origen en el terminal;
- supresión de la cabecera del segundo comando y obtención de al menos una porción de comando relativa a dicho comando cifrado (CC);
- descifrado de dicho comando (CC), entregando el primer comando (CX);
- procesamiento del primer comando (CX).
De manera complementaria, este procesamiento del primer comando por el circuito integrado puede precisar de la provisión de una respuesta por parte del mismo. Esta respuesta es transmitida entonces al terminal por el circuito integrado. Esta transmisión viene asimismo acompañada de medidas de ofuscación que pueden comprender el troceo de la respuesta en varias respuestas, la agregación de datos de ofuscación a la respuesta, etc.
Las diferentes etapas de los procedimientos presentados anteriormente se llevan a la práctica por mediación de componentes, ya sean de soporte físico o lógico, que van integrados, bien en el terminal, o bien en el circuito integrado. Así, por ejemplo, las operaciones criptográficas, tales como las operaciones de cifrado, las puede llevar a la práctica un componente de soporte físico criptográfico, en tanto que las etapas de obtención de datos de ofuscación, de relleno, etc. se pueden llevar a la práctica mediante soporte lógico.
5.2. Modos de realización
De acuerdo con un primer modo de realización, llamado “modo directo", ilustrado en la figura 2, se construye un Comando Ciego (27) atendiendo a la cabeza de un comando ISO (21) CLA INS P1 P2 P3 y a los datos que lleva asociados (22) como un dato pasivo D (21+22).
D está protegido criptográficamente (23) por el terminal (por ejemplo, D está cifrado, firmado y/o protegido con MAC) con el fin de dar por resultado un comando protegido P (24).
Una segunda cabecera CLA INS P1 P2 P3 (26) universal y anónima se añade entonces (25) a P con el fin de conformar un Comando Ciego “A” (27). Los códigos CLA INS P1 P2 P3 utilizados para conformar la segunda cabecera (26) son independientes de D (exceptuando P3, que codifica el tamaño).
“A” se transmite, por tanto, a la tarjeta, con el concurso de un comando ISO universal llamado Comando de Transporte Ciego (27).
La tarjeta, al recibir “A”, quita (29) la segunda cabecera ISO (26) con el fin de recobrar P (24).
La tarjeta descifra (28) P y recobra D (21+22).
Eventualmente, la tarjeta verifica la integridad de D.
Seguidamente, la tarjeta interpreta (ejecuta) el comando D.
Si la interpretación del comando D requiere la transmisión de octetos U de la tarjeta, estos octetos son cifrados con el fin de no dar indicación de su contenido e impedir con ello comprender la naturaleza del comando D. Con objeto de proteger el sistema contra un ataque consistente en inferir D a partir del tamaño de U, la tarjeta puede, bien rellenar los octetos U hasta alcanzar un tamaño fijo o bien, por el contrario, concatenar con U una cantidad aleatoria de octetos inútiles teniendo por finalidad enmascarar el verdadero tamaño de U.
De este modo, un atacante que observe los intercambios entre el terminal y la tarjeta apenas puede inferir escasa información de esta observación. En efecto, el atacante, al no ver más que comandos de tipo A, no puede saber qué comandos D están ocultos en el seno de los comandos de tipo A transmitidos por el terminal a la tarjeta, por lo que no conoce las funciones activadas por el terminal en el seno de la tarjeta.
De acuerdo con un segundo modo de realización, llamado “modo de tamaño constante", ilustrado en la figura 3, con motivo del comando D, se disimula el tamaño de los datos transmitidos.
A tal efecto, se completan automáticamente todos los comandos D[i] (31, 32, 33) con la adición de octetos inútiles, con el fin de hacer todos los D[i] (34, 35, 36) de tamaño constante. De este modo, un atacante que observe los intercambios (37, 38, 39) entre el terminal y la tarjeta no puede inferir la naturaleza de los comandos D[i] a tenor del tamaño de los datos que conducen los comandos A[i] (310, 311,312).
Alternativamente, y con una motivación de ahorro de tiempo de cálculo, es posible no alargar inútilmente los mensajes D[i], sino tomar los cifrados P[i] y añadirles tantos octetos aleatorios como sea necesario con el fin de hacer que todos los comandos A[i] lleguen a un mismo tamaño constante.
De acuerdo con un tercer modo de realización, llamado “modo de tamaño enmascarado", ilustrado en la figura 4, se disimula el tamaño de los datos transmitidos con motivo de los comandos D[i] mediante un medio diferente del segundo modo de realización.
A tal efecto, se completan al menos algunos de los comandos D[i] (41,42, 43) con la adición de un número aleatorio de octetos aleatorios inútiles, con el fin de hacer todos los P[i] (44, 45, 46) de tamaño incorrelado con el tamaño de los datos útiles contenidos en los D[i]. Esto induce unos P[i] (44, 45, 46) correspondientes de tamaño aleatorio. De este modo, un atacante que observe los intercambios (47, 48, 49) entre el terminal y la tarjeta no puede inferir la naturaleza de los comandos D[i] a partir del tamaño de los datos intercambiados entre la tarjeta y el terminal.
Alternativamente, y con una motivación de ahorro de tiempo de cálculo, es posible no alargar inútilmente los mensajes D[i], sino tomar los cifrados P[i] y añadirles tantos octetos aleatorios como sea necesario con el fin de hacer que todos los comandos A[i] lleguen a diversos tamaños aleatorios.
De acuerdo con un cuarto modo de realización, llamado “modo de troceo con tamaño constante", ilustrado en la figura 5, se disimula el tamaño de los datos transmitidos con motivo del comando D mediante un medio diferente de aquellos del segundo y del tercer modos de realización.
A tal efecto, el comando D (51) se trocea en bloques de tamaño constante (52, 53, 54). Al hacer esto, el comando D es transformado en una pluralidad de comandos P[i, j] (55, 56, 57) de tamaño incorrelado con el tamaño de los datos útiles contenidos en los D[i]. De este modo, un atacante que observe los intercambios entre el terminal y la tarjeta no puede inferir la naturaleza de los comandos D[i] a partir del tamaño de los datos que conducen los datos de D[i], pues el final de D[i] no es distinguible del comienzo del comando siguiente D[i+1 ].
De acuerdo con un quinto modo de realización llamado “modo de troceo con tamaño aleatorio", ilustrado en la figura 6, se disimula el tamaño de los datos transmitidos con motivo del comando D mediante otro medio que no sea aquellos del segundo o del tercer o del cuarto modo de realización.
A tal efecto, el comando D (61) se trocea en bloques de tamaño aleatorio (62, 63, 64). Al hacer esto, el comando D es transformado en una pluralidad de comandos P[i, j] (65, 66, 67) de tamaño incorrelado con el tamaño de los datos útiles contenidos en D. De este modo, un atacante que observe los intercambios entre el terminal y la tarjeta no
puede inferir la naturaleza del comando D a tenor del tamaño de los datos transmitidos.
De acuerdo con un sexto modo de realización, llamado “de retardos aleatorios entre comandos", ilustrado en la figura 7, se disimula la naturaleza de los comandos D[i] no permitiendo al atacante medir el tiempo que pasa entre estos comandos.
A tal efecto, después y/o antes de la transmisión de cada comando ciego A[i] (71, 72, 73), el terminal observa un tiempo de espera aleatorio (74, 75, 76), también denominado temporización, durante un periodo de tiempo aleatorio. Igualmente, la tarjeta también puede esperar un tiempo aleatorio antes de transmitir los datos cifrados U[i] esperados como respuesta al comando A[i]. De este modo, un atacante que observe los intercambios entre el terminal y la tarjeta no puede inferir la naturaleza de los comandos D[i] transmitidos por el terminal a la tarjeta midiendo los tiempos transcurridos entre comandos D[i] ni midiendo los tiempos transcurridos entre la recepción de los comandos A[i] por la tarjeta y la transmisión de la respuesta U[i] por la tarjeta.
De acuerdo con un séptimo modo de realización, llamado “de permutación aleatoria de comandos", ilustrado en la figura 8, se disimula la naturaleza de los comandos D[i] no permitiendo al atacante inferir la naturaleza de los comandos observando el orden de su emisión hacia la tarjeta.
A tal efecto, cuando el orden de los comandos D[i] no tiene incidencia sobre el funcionamiento de la tarjeta y, por tanto, sobre la aplicación subyacente, el terminal permuta los comandos D[i] de manera aleatoria antes de transmitir a la tarjeta los A[i] correspondientes (81, 82, 83). De este modo, un atacante que observe los intercambios entre el terminal y la tarjeta no puede inferir la naturaleza de los comandos D[i] a tenor del orden de los comandos A[i] correspondientes a los D[i].
De acuerdo con un octavo modo de realización, llamado “de comandos señuelo", ilustrado en la figura 9, se disimula la naturaleza de los comandos D[i] no permitiendo al atacante inferir la naturaleza de los comandos contando su número.
Al tal efecto, cuando se debe transmitir a la tarjeta una secuencia de comandos D[i], el terminal inserta, en el flujo de los A[i] correspondientes a los D[i] (91,92), unos señuelos (93). Un señuelo (93) es un comando A[i] no interpretado por la tarjeta de otro modo que no sea enviando una respuesta aleatoria que simula un cifrado U[i] y que obedece a una distribución de probabilidades similar o idéntica a aquella inducida por la aplicación puesta en práctica entre el terminal y la tarjeta. De este modo, un atacante que observe los intercambios entre el terminal y la tarjeta no puede inferir la naturaleza de los comandos D[i], y ello incluso contando el número de los A[i] enviados al terminal por la tarjeta.
5.3. Dispositivos de puesta en práctica
Se describe, en relación con la figura 11, un dispositivo de transmisión de datos que comprende medios que permiten la ejecución del procedimiento descrito con anterioridad.
Por ejemplo, el dispositivo de transmisión comprende una memoria 111 constituida a partir de una memoria intermedia, poniendo en práctica una unidad de procesamiento 112, equipada, por ejemplo, con un microprocesador y pilotada por el programa de ordenador 113, las etapas necesarias para la creación, para el cifrado y para la transmisión de comandos ofuscados, llamados comandos ciegos.
Con la inicialización, las instrucciones de código del programa de ordenador 113 se cargan, por ejemplo, en una memoria, antes de ser ejecutadas por el procesador de la unidad de procesamiento 112. La unidad de procesamiento 112 recibe como entrada un comando base que ha de transmitirse a un circuito integrado. El microprocesador de la unidad de procesamiento 112 lleva a la práctica las etapas del procedimiento, según las instrucciones del programa de ordenador 113 para permitir la creación del comando ciego.
Para ello, el dispositivo de procesamiento comprende, aparte de la memoria intermedia 111, unos medios de obtención de materiales de cifrado, unos medios de cifrado y unos medios de obtención de datos de ofuscación, tales como datos de relleno.
Estos medios pueden estar pilotados por el procesador de la unidad de procesamiento 112 en función del programa de ordenador 113.
Se describe, en relación con la figura 12, un circuito integrado, por ejemplo inserto en una tarjeta, con el fin de conformar una tarjeta chip, que comprende medios que permiten la ejecución del procedimiento descrito con anterioridad.
Por ejemplo, el dispositivo de verificación comprende una memoria 121 constituida a partir de una memoria intermedia, poniendo en práctica una unidad de procesamiento 122, equipada, por ejemplo, con un microprocesador y pilotada por el programa de ordenador 123, las etapas necesarias para la puesta en práctica de las funciones de verificación.
Con la inicialización, las instrucciones de código del programa de ordenador 123 se cargan, por ejemplo, en una
memoria, antes de ser ejecutadas por el procesador de la unidad de procesamiento 122. La unidad de procesamiento 122 recibe como entrada, por ejemplo, un comando cifrado, llamado comando ciego. El microprocesador de la unidad de procesamiento 122 lleva a la práctica las etapas del procedimiento de procesamiento, según las instrucciones del programa de ordenador 123, para permitir el descifrado del comando, el procesamiento del comando descifrado y la eventual transmisión de una respuesta a este comando.
Para ello, el dispositivo comprende, aparte de la memoria intermedia 121, unos medios de obtención de clave de cifrado/descifrado; estos medios pueden materializarse en forma de un procesador o de un conjunto de recursos seguros que permiten hacer segura la introducción de la autorización. Asimismo, el dispositivo comprende medios de procesamiento criptográficos; estos medios de procesamiento comprenden, por ejemplo, un procesador de cifrado especializado.
Estos medios pueden estar pilotados por el procesador de la unidad de procesamiento 122 en función del programa de ordenador 123.
5.4. El modo Host Card Emulation (HCE)
Otro campo de aplicación de especial interés de la presente técnica es el modo llamado HCE (“Host Card Emulation”). El pago móvil NFC actual se basa en un elemento seguro llamado Secure Element (SE): mayoritariamente, la tarjeta SIM. Esta última, propiedad del operador móvil, es fuente de restricciones para los proveedores de soluciones de pagos móviles. Para subsanarlo, los agentes de banca electrónica han creado la emulación de tarjetas albergadas, más conocida por la sigla inglesa HCE (Host Card Emulation).
5.4.1. Arquitectura convencional, sin HCE
Para entender bien el funcionamiento del HCE, es importante reseñar el propio del modelo actual, en el que el SE está embebido en el terminal de comunicaciones móviles. El pago móvil NFC “convencional” es un pago en el que el teléfono inteligente hace las funciones de tarjeta bancaria. La antena NFC permite al terminal de comunicación dialogar con el terminal de pago electrónico (TPE). El controlador NFC solicita el SE (muchas veces, la tarjeta SIM, en este caso se habla de “SIM-centric”) que contiene los datos bancarios sensibles (número de tarjeta, también denominado PAN, claves criptográficas...). Por lo tanto, en sistema operativo no tiene conocimiento en ningún momento de estos datos. Ahí es donde reside la robustez del NFC SE. La instalación de la aplicación de pago en el seno de la tarjeta SIM ha hecho que emerjan nuevos agentes como los terceros de confianza (Trusted Service Manager: TSM); implica a los operadores móviles (Mobile Network Operator: MNO); y, de una manera más general, complica el entorno NFC, tanto para los agentes como para los portadores.
5.4.2. Funcionamiento del HCE
Especificado en un principio por la empresa emergente SimplyTapp en 2012, e1Host Card Emulation hizo su aparición en el mercado con el sistema operativo CyanogenMod™. Pero fue su adopción en el seno del sistema operativo Android™ 4.4 KitKat™ lo que propició su popularidad.
Conceptualmente, la tecnología del HCE permite la desincronización del NFC con el SE albergado por el terminal de comunicación; así, el sistema operativo (OS) pilota directamente el NFC. De este modo, en su forma más primitiva, la aplicación móvil instalada en el OS puede llevar embebidos los datos bancarios. Pero la tecnología permite cosas mucho más interesantes, como el almacenamiento de los datos en la nube (cloud), más conocido con el nombre “SE-in-the-cloud”.
Por otro lado, con el fin de limitar el riesgo de recuperación de los datos sensibles por parte de un programa malicioso (malware) ejecutado en la memoria del terminal de comunicación, los ingenieros han tenido la idea de generar números de tarjetas desechables. Esta seguridad recibe el nombre de “tokenisation”. Esta última ha sido objeto de una especificación por parte del organismo EMVCo que permite asegurar la interoperabilidad.
La técnica anteriormente descrita encuentra asimismo una aplicación en este modo de funcionamiento. En efecto, entonces, el circuito integrado no es una tarjeta chip de pago, sino que es, por ejemplo, la tarjeta SIM del terminal de comunicación. Alternativamente, cuando se intercambian datos a través de una red de comunicación, por ejemplo APDU por mediación de la red IP, se simula un circuito integrado virtual en el seno de esta red.
Claims (10)
1. Procedimiento de transmisión de datos, puesto en práctica entre un terminal y un circuito integrado, comunicándose dicho terminal y dicho circuito integrado por mediación de una interfaz de emisión y de transmisión de datos, comprendiendo dicho procedimiento al menos una iteración de las siguientes etapas, puestas en práctica por el terminal:
- generación (10) de un primer comando (CX) destinado a dicho circuito integrado, comprendiendo dicho primer comando una primera cabecera de comando;
- cifrado (20) de los datos de dicho primer comando (CX) y de la primera cabecera de comando, entregando un primer comando cifrado (CC) que comprende los datos del primer comando y la primera cabecera de comando cifrada;
- creación (30) de un segundo comando (CY), comprendiendo dicho segundo comando una segunda cabecera de comando y datos, estando dichos datos al menos en parte constituidos a partir de dicho primer comando cifrado (CC);
- transmitiéndose dicho segundo comando (CY) a dicho circuito integrado en un flujo de comandos en el que se insertan señuelos.
2. Procedimiento de transmisión de datos según la reivindicación 1, caracterizado por que además comprende, con anterioridad al cifrado de dicho primer comando (CX), una etapa de agregación (15), a dicho primer comando (CX), de un primer dato complementario, llamado primer dato de ofuscación (DO1).
3. Procedimiento de transmisión de datos según la reivindicación 1, caracterizado por que además comprende, con anterioridad a la creación de dicho segundo comando (CY), una etapa de agregación (25), a dicho primer comando cifrado (CC), de un segundo dato complementario, llamado segundo dato de ofuscación (DO2).
4. Procedimiento de transmisión de datos según la reivindicación 1, caracterizado por que dicha etapa de agregación (15), a dicho primer comando (CX), de un primer dato de ofuscación (DO1) comprende:
- una etapa de cálculo de un tamaño de dicho dato de ofuscación (TDo) realizando una resta entre un valor de un parámetro predeterminado y el tamaño de dicho primer comando (CX);
- una etapa de obtención de un dato de longitud idéntica al tamaño de dicho dato de ofuscación (TDo), comprendiendo dicho dato una sucesión de bits o de octetos aleatorios.
5. Procedimiento de transmisión de datos según la reivindicación 1, caracterizado por que además comprende, con posterioridad a dicha etapa de transmisión (40), una etapa de temporización, durante un periodo de tiempo aleatorio.
6. Procedimiento de transmisión de datos según la reivindicación 1, caracterizado por que además comprende, con anterioridad a dicha etapa de transmisión (40) de dicho segundo comando, una etapa de transmisión de un tercer comando.
7. Procedimiento según la reivindicación 6, caracterizado por que el tercer comando se genera aleatoriamente.
8. Procedimiento según la reivindicación 1, caracterizado por que dicha etapa de transmisión (40) comprende: - una etapa de troceo de dicho segundo comando en una pluralidad de porciones de comando;
- una etapa de transmisión, de manera independiente, de cada porción de dicha pluralidad de porciones de comandos.
9. Dispositivo de transmisión de datos, con destino a un circuito integrado, comunicándose dicho dispositivo y dicho circuito integrado por mediación de una interfaz de emisión y de transmisión de datos, comprendiendo dicho dispositivo al menos un módulo configurado para efectuar:
- una generación (10) de un primer comando (CX) destinado a dicho circuito integrado, comprendiendo dicho primer comando una primera cabecera de comando;
- un cifrado (20) de los datos de dicho primer comando (CX) y de la primera cabecera de comando, entregando un primer comando cifrado (CC) que comprende los datos del primer comando y la primera cabecera de comando cifrada;
- una creación (30) de un segundo comando (CY), comprendiendo dicho segundo comando una segunda cabecera de comando y datos, estando dichos datos al menos en parte constituidos a partir de dicho primer comando cifrado (CC);
- transmitiéndose dicho segundo comando (CY) a dicho circuito integrado en un flujo de comandos en el que se
insertan señuelos.
10. Producto de programa de ordenador descargable desde una red de comunicación y/o almacenado en un soporte legible por ordenador y/o ejecutable por un microprocesador, caracterizado por comprender instrucciones de código de programa para la ejecución de un procedimiento de transmisión según la reivindicación 1, cuando se ejecuta en un procesador.
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR1557983A FR3040510B1 (fr) | 2015-08-27 | 2015-08-27 | Dispositif et procede securisation de commandes echangees entre un terminal et circuit integre |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| ES2848284T3 true ES2848284T3 (es) | 2021-08-06 |
Family
ID=55178064
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ES16186040T Active ES2848284T3 (es) | 2015-08-27 | 2016-08-26 | Dispositivo y procedimiento de aumento de la seguridad de comandos intercambiados entre un terminal y circuito integrado |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US10715324B2 (es) |
| EP (1) | EP3136283B1 (es) |
| CA (1) | CA2940465C (es) |
| ES (1) | ES2848284T3 (es) |
| FR (1) | FR3040510B1 (es) |
Families Citing this family (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US11743243B2 (en) | 2017-10-31 | 2023-08-29 | Conduent Business Services, Llc | Post billing short-range communications HCE (host card emulation) method and system |
| EP3814997B1 (en) | 2018-06-29 | 2024-01-10 | Visa International Service Association | Chip card socket communication |
| US11456855B2 (en) * | 2019-10-17 | 2022-09-27 | Arm Limited | Obfuscating data at-transit |
| KR102652497B1 (ko) * | 2021-11-11 | 2024-03-29 | 블록체인랩스 주식회사 | 스마트 카드를 이용한 did 인증 방법 및 스마트 카드 장치 |
| CN116614222A (zh) * | 2023-04-26 | 2023-08-18 | 金邦达有限公司 | 智能卡应用协议数据单元的加密保护方法、计算机装置、计算机可读存储介质 |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6779113B1 (en) * | 1999-11-05 | 2004-08-17 | Microsoft Corporation | Integrated circuit card with situation dependent identity authentication |
| US7373522B2 (en) * | 2003-05-09 | 2008-05-13 | Stmicroelectronics, Inc. | Smart card with enhanced security features and related system, integrated circuit, and methods |
| TWI259957B (en) * | 2004-04-19 | 2006-08-11 | Faraday Tech Corp | System and method for accessing discrete data |
| US7631190B2 (en) * | 2004-05-27 | 2009-12-08 | Silverbrook Research Pty Ltd | Use of variant and base keys with two entities |
| FR2878677B1 (fr) * | 2004-11-30 | 2007-02-02 | Gemplus Sa | Communication de service d'application depuis une carte a microcontroleur vers un terminal |
| US8116454B2 (en) * | 2007-07-23 | 2012-02-14 | Savi Technology, Inc. | Method and apparatus for providing security in a radio frequency identification system |
| FR2927454B1 (fr) * | 2008-02-12 | 2010-05-14 | Ingenico Sa | Procede de detection de cartes a microprocesseur non authentiques, carte a microprocesseur, terminal lecteur de carte et programmes correspondants |
| FR2971599B1 (fr) * | 2011-02-11 | 2013-03-15 | Jean Luc Leleu | Procede de transaction securisee a partir d'un terminal non securise |
| CA2838763C (en) * | 2011-06-10 | 2019-03-05 | Securekey Technologies Inc. | Credential authentication methods and systems |
| FR3011653B1 (fr) * | 2013-10-09 | 2018-01-12 | Oberthur Technologies | Procedes et dispositifs de masquage et demasquage |
-
2015
- 2015-08-27 FR FR1557983A patent/FR3040510B1/fr not_active Expired - Fee Related
-
2016
- 2016-08-26 EP EP16186040.8A patent/EP3136283B1/fr active Active
- 2016-08-26 ES ES16186040T patent/ES2848284T3/es active Active
- 2016-08-26 US US15/248,115 patent/US10715324B2/en active Active
- 2016-08-26 CA CA2940465A patent/CA2940465C/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| CA2940465A1 (en) | 2017-02-27 |
| EP3136283A1 (fr) | 2017-03-01 |
| CA2940465C (en) | 2023-10-17 |
| EP3136283B1 (fr) | 2020-12-16 |
| FR3040510B1 (fr) | 2018-08-10 |
| US10715324B2 (en) | 2020-07-14 |
| FR3040510A1 (fr) | 2017-03-03 |
| US20170063548A1 (en) | 2017-03-02 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| ES2970201T3 (es) | Sistema de identificación personal con tarjeta sin contacto | |
| KR102519990B1 (ko) | 인증 장치 및 방법 | |
| ES2917183T3 (es) | Dispositivo móvil que tiene un entorno de ejecución seguro | |
| CA2838763C (en) | Credential authentication methods and systems | |
| ES2632795T3 (es) | Sistema de pago | |
| ES2651684T3 (es) | Arquitectura de partición de elemento seguro mutiemisor para dispositivos habilitados para NFC | |
| ES2819200T3 (es) | Un método y sistema para proporcionar autenticación del acceso del usuario a un recurso informático a través de un dispositivo móvil utilizando múltiples factores de seguridad separados | |
| ES2498893T3 (es) | Dispositivo autónomo de entrada segura de PIN para habilitar transacciones con tarjeta EMV con lector de tarjetas separado | |
| ES2918011T3 (es) | Sistema y método para la generación, almacenamiento, administración y uso de uno o más secretos digitales en asociación con un dispositivo electrónico portátil | |
| ES2739896T5 (es) | Acceso seguro a datos de un dispositivo | |
| ES2680152T3 (es) | Método y aparato de autenticación conveniente para el usuario usando una aplicación de autenticación móvil | |
| TWI418198B (zh) | 使用非對稱密鑰密碼之用於個人化智慧卡的方法與系統 | |
| ES2877522T3 (es) | Método y sistema para mejorar la seguridad de una transacción | |
| ES2768963T3 (es) | Procedimiento y dispositivo de autenticación de entidad | |
| TW200817968A (en) | Bi-processor architecture for secure systems | |
| Dmitrienko et al. | Secure free-floating car sharing for offline cars | |
| ES3014531T3 (en) | Secure generation of one-time passcodes using a contactless card | |
| WO2016192453A1 (zh) | 一种安全控制方法、装置和终端 | |
| ES2764127T3 (es) | Procedimiento de transmisión de datos, procedimiento de recepción de datos, dispositivos y programas correspondientes | |
| CA2940465C (en) | Device and method for securing commands exchanged between a terminal and an integrated circuit | |
| Alliance | Host card emulation (hce) 101 | |
| WO2013138867A1 (en) | Secure nfc apparatus and method | |
| ES2603585T3 (es) | Sistema y procedimiento de transacción segura en línea | |
| CN208722256U (zh) | 一种基于硬件加密的数字热钱包和基于该数字热钱包的手机 | |
| ES2920798T3 (es) | Método de transmisión de datos cifrados, método de recepción, dispositivos y programas informáticos correspondientes |