ES2928949T3 - Procedimiento de verificación de la contraseña de un dongle, programa informático, dongle y terminal de usuario asociados - Google Patents

Procedimiento de verificación de la contraseña de un dongle, programa informático, dongle y terminal de usuario asociados Download PDF

Info

Publication number
ES2928949T3
ES2928949T3 ES20216967T ES20216967T ES2928949T3 ES 2928949 T3 ES2928949 T3 ES 2928949T3 ES 20216967 T ES20216967 T ES 20216967T ES 20216967 T ES20216967 T ES 20216967T ES 2928949 T3 ES2928949 T3 ES 2928949T3
Authority
ES
Spain
Prior art keywords
dongle
constant
user terminal
cst
password
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
Application number
ES20216967T
Other languages
English (en)
Inventor
David Lefranc
Eric Garrido
Renaud Dubois
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Thales SA
Original Assignee
Thales SA
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Thales SA filed Critical Thales SA
Application granted granted Critical
Publication of ES2928949T3 publication Critical patent/ES2928949T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0853Network architectures or network communication protocols for network security for authentication of entities using an additional device, e.g. smartcard, SIM or a different communication terminal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/34User authentication involving the use of external additional devices, e.g. dongles or smart cards

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

Método para verificar la contraseña de un dongle (30) almacenando el cifrado en confidencialidad únicamente CHIFF_CST_dongle_i de una primera constante CST_dongle_i utilizando una primera clave simétrica Ksym_i derivada criptográficamente de la contraseña del dongle, la memoria (32) del dongle (30) más almacenar la función para obtener la clave simétrica DERIVE_Ksym(;): que comprende: - determinación de una segunda clave simétrica Ksym_i' mediante la aplicación de dicha función DERIVE_Ksym(;) para obtener la clave simétrica una contraseña recibida para ser validada; obtener una segunda constante CST_dongle_i' descifrando CHIFF_CST_dongle_i utilizando la segunda clave simétrica determinada; y - entrega por el dongle de un dato determinado en función de la segunda constante CST_dongle_i' destinado al terminal usuario, con vistas a la validación por éste de la contraseña introducida en función de dicho dato y de la primera constante. (Traducción automática con Google Translate, sin valor legal)

Description

DESCRIPCIÓN
Procedimiento de verificación de la contraseña de un dongle, programa informático, dongle y terminal de usuario asociados
[0001] La presente invención se refiere al campo de la verificación de la contraseña de un dongle.
[0002] La presente invención se refiere a un procedimiento de verificación de la contraseña de un dongle, que comprende, después de la conexión de dicho dongle a un terminal de usuario asociado, una etapa de recepción por un primer módulo electrónico de tratamiento del dongle de una contraseña para validar introducida por un usuario que requiere el acceso al terminal de usuario.
[0003] A partir del documento WO 2011/03722 A1 se conoce un procedimiento de gestión de un módulo de seguridad virtual a bordo de una clave de almacenamiento. A partir del documento US 10469 487 B1 se conoce también un procedimiento de generación de ficha de intercambio de claves autenticadas. Además, a partir del documento Wo 2017/117520 A1 se conoce un procedimiento de seguridad de contraseña para la comunicación entre dos sistemas electrónicos.
[0004] Se sabe cómo almacenar previamente el resultado, H, de una función del troceo de la contraseña de un dongle en la memoria de este último. Posteriormente, cuando un usuario portador de este dongle lo conecta a un terminal de usuario e introduce la contraseña, esta contraseña introducida es comunicada por el terminal de usuario al dongle, que aplica la función de troceo a esta contraseña introducida y que compara el resultado con el troceo H en memoria.
[0005] Sin embargo, si un atacante extrae el valor troceado H de la memoria del dongle, puede efectuar entonces una búsqueda exhaustiva en su ordenador buscando la contraseña cuyo troceo produce H.
[0006] El atacante puede probar también contraseñas, hasta encontrar la contraseña correcta, en intercambio directo con el dongle si consigue disponer de ella. Ciertamente es posible introducir un contador de ratificación en el dongle que bloquee cualquier nuevo intento de suministro de contraseña más allá de un umbral; pero el atacante también puede conseguir modificar el umbral del contador.
[0007] Por tanto, existe la necesidad de disponer de un procedimiento de verificación de la contraseña de un dongle que presente un nivel de seguridad incrementado.
[0008] Para este fin, según un primer aspecto, la invención propone un procedimiento de verificación de la contraseña de un dongle según la reivindicación 1.
[0009] La invención permite así proponer una solución de control de la contraseña de un dongle que, al hacer participar al terminal de usuario, disminuye claramente los riesgos de que la contraseña del dongle pueda ser descubierta. En las realizaciones se realiza un procedimiento de verificación de la contraseña de un dongle según una de las reivindicaciones 2 a 7.
[0010] Según un segundo aspecto, la presente invención propone un programa informático según la reivindicación 8.
[0011] Según un tercer aspecto, la presente invención propone un dongle según la reivindicación 9.
[0012] Según un cuarto aspecto, la presente invención propone un conjunto según la reivindicación 10.
[0013] Estas características y ventajas de la invención se desprenderán de la lectura de la descripción que se ofrece a continuación, proporcionada únicamente a modo de ejemplo, y hecha en referencia a los dibujos adjuntos, en los que:
- la figura 1 representa una vista esquemática de un sistema electrónico en una realización de la invención; - la figura 2 es una vista de un conjunto que incluye un terminal de usuario con el que un dongle se pone en conexión en una realización de la invención;
- la figura 3 es un organigrama de las etapas implementadas en una etapa previa en una realización de la invención; y
- la figura 4 es un organigrama de las etapas implementadas en una etapa operativa en una realización de la invención.
[0014] La figura 1 representa un sistema 1 en una realización. El sistema 1 incluye M terminales de usuario 20, N dongles 30 y un dispositivo electrónico de configuración 10 asociado a una base de datos 11.
[0015] En la figura 1 se representa un único dongle 30 y un único terminal de usuario 20; M y N son dos números enteros superiores o iguales a 1.
[0016] El dispositivo de configuración 10 incluye por ejemplo, un procesador 12 y una memoria 13.
[0017] El dispositivo de configuración 10 está dispuesto por ejemplo, dentro de una unidad de configuración de terminales de usuario de acceso seguro por dongle.
[0018] En el caso particular, el terminal de usuario 20 es, por ejemplo, un terminal radioeléctrico adaptado para implementar radiocomunicaciones radioeléctricas de tipo ad hoc con otros terminales de usuario de radio similares, si bien el terminal de usuario puede ser cualquier otro terminal de usuario de acceso seguro: ordenador fijo montado en bastidor, ordenador portátil, tableta, televisores, un asistente digital personal (PDA) o un teléfono inteligente, etc.
[0019] El dongle 30, de forma conocida, denominado también llave de hardware o llave electrónica, es un componente de hardware cuya función es proteger un terminal de usuario contra los pirateos informáticos. Un dongle 30 adopta normalmente la forma de un chip, o de una llave; está adaptado para ser guardado por un usuario, y formar una interfaz por la acción de este usuario con un terminal de usuario 20, de forma extraíble y temporal, cuando el usuario desea usar (funciones específicas de) este terminal de usuario 20.
[0020] En el caso considerado, el dongle 30 incluye un microprocesador 31 y una memoria 32.
[0021] El dongle 30 incluye evidentemente un bloque de interfaz (no representado) con el terminal de usuario 20 que permite la implementación de los intercambios entre el dongle y el terminal de usuario.
[0022] El terminal de usuario 20 incluye un bloque de control de acceso 24, un bloque de interfaz hombremáquina IHM 25, que incluye en el caso considerado una pantalla y un teclado dotado de cifras y no de letras, un bloque de tratamiento 21 y una interfaz de conexión 27 al dongle.
[0023] El bloque de tratamiento 21 efectúa un conjunto de funcionalidades suministradas por el terminal de usuario (forma de onda, telefonía, transmisión de datos, etc.).
[0024] El bloque de control de acceso 24 está adaptado para validar o no una contraseña introducida por un usuario después de la conexión del dongle 30 y del terminal de usuario 30.
[0025] La conexión del dongle 30 con el terminal 20 se realiza por medio de una interfaz de conexión 27 del terminal de usuario 20.
[0026] Según las realizaciones, la interfaz de conexión 27 incluye al menos un alojamiento en el que se introduce el dongle: por ejemplo, un lector de chips integrado, si el dongle es de tipo chip, o un puerto de entradasalida del terminal 20 en el que el dongle está conectado directamente (por ejemplo, puerto en paralelo, puerto USB si el dongle es una llave USB) o incluso en el que se conecta un periférico, que representa una extensión extraíble del terminal de usuario, por ejemplo, de tipo lector de chip, que permite una conexión al dongle 30.
[0027] En el caso particular considerado aquí, el dongle 30 es un chip y un equipo de usuario 28, representado en la figura 2, comprende el terminal de usuario 20, un periférico 29 de tipo lector de chip conectado por medio de un cable 40 en un conector 26 del terminal de usuario 20 y el dongle 30 que se representa introducido en el periférico 29, de manera que permite los intercambios entre el terminal de usuario 20, el lector 29 y el dongle 30.
[0028] Así, en este caso particular, la interfaz de conexión 27 incluye principalmente el lector 29, el conector 26 y el cable 40.
[0029] El lector 29 incluye una interfaz hombre-máquina, por ejemplo, un teclado, que incluye las letras del alfabeto y las cifras, lo que permite la introducción de una contraseña. Esta interfaz hombre-máquina del lector se considera una extensión de la interfaz IHM 25 del terminal radioeléctrico 20. El lector 29 incluye además una interfaz de comunicación con el dongle 30 una vez introducido este último en el lector y una interfaz de comunicación con el terminal 20.
[0030] Como se sabe, dicho dongle 30 permite asegurar el acceso al terminal de usuario, o al menos a algunas de las funciones accesibles desde este terminal de usuario con ayuda de un dongle asociado a una contraseña: solo un usuario que a la vez posee el dongle 30 y suministra la contraseña del dongle será autorizado por el terminal de usuario a usar las funcionalidades F accesibles desde el terminal de usuario y suministradas por el bloque de tratamiento 21.
[0031] En una realización, la memoria 13 comprende instrucciones de software, que cuando son ejecutadas en el procesador 12, implementan automáticamente las etapas que incumben al dispositivo de configuración 10 descritas como referencia en la figura 3.
[0032] En una realización, la memoria 22 comprende instrucciones de software, que cuando son ejecutadas en el procesador 23, implementan automáticamente las etapas que incumben al bloque de control de acceso 24 descritas como referencia en la figura 4.
[0033] En una realización, la memoria 32 comprende instrucciones de software, que cuando son ejecutadas en el procesador 31, implementan automáticamente las etapas que incumben al dongle 30 descritas como referencia en la figura 4.
[0034] En otra realización, el dispositivo de configuración 10 y/o el bloque de control de acceso 24 y/o el dongle 30 se realiza en forma de un componente lógico programable, tal como un FPGA (del inglés Field Prngrammable Gate Array), o en forma de un circuito integrado dedicado, tal como un ASIC (del inglés
[0035] Applications Specific Integrated Circuit).
[0036] En las figuras 3 y 4 se presentan etapas de un procedimiento de control de las contraseñas de dongles en una realización de la invención.
[0037] En la figura 3, en primer lugar, se implementa previamente un conjunto 100 de etapas de configuración de cada terminal de usuario 20 y de cada dongle 30 mediante el sistema de configuración 10. El sistema 1 es, por tanto, un sistema controlado, en el sentido de que está adaptado para poder configurar previamente los terminales de usuario y los dongles.
[0038] En una etapa 101, estando cada dongle 30 n° i, i = 1 a N, identificado por un identificador denominado id_dongle_i y almacenado en su memoria 32, de manera que la base de datos 11 del dispositivo de configuración 10 almacena una clave criptográfica simétrica, denominada Kbase, y los identificadores id_dongle_i de cada dongle i = 1 a N, el dispositivo de configuración 10 calcula para cada dongle i un número seudoaleatorio, denotado por CST_dongle_i, aplicando un algoritmo criptográfico, denominado Derive_CST(; ).
[0039] El algoritmo Derive_CST depende de la clave criptográfica, denominada Kbase, y del identificador, id_dongle_i:
CST_dongle_i = Derive_CST(Kbase, id_dongle_i)
[0040] La función criptográfica que usa la clave criptográfica Kbase es, por ejemplo, una función HMAC.
[0041] En una etapa 102, el dispositivo de configuración 10 genera (u obtiene) una contraseña, denotado por mdp_dongle_i, para cada dongle 30 n°i.
[0042] Después, el dispositivo de configuración 10 calcula una cantidad criptográfica CHIFF_CST_dongle_i, por medio de un algoritmo de cifrado denotado por CHIFF_CST() de confidencialidad en solitario del dato CST_dongle_i con ayuda de una clave simétrica, denominada Ksym_i derivada de la contraseña mdp_dongle_i (y opcionalmente del identificador id_dongle_i):
CHIFF_CST_dongle_i = Deríve_CLE(CST_dongleJ):
en el que Derive_CLE es la función criptográfica de confidencialidad en solitario considerada.
[0043] El algoritmo de cifrado de confidencialidad en solitario es, por ejemplo, el modo CTR (CounTeR) o CBC (Cipher Block Chaining) (v. NIST Special Publication 800-38A Recommendation for Block 2001 Edition. Cipher Modes of Operation), usando por ejemplo, el algoritmo de bloque de tipo AES (del inglés Advanced Encryption Standard); se denota entonces, en general, por AES-CTR y AES-CBC.
[0044] La clave simétrica Ksym_i es, en este caso, una función de mdp_dongle_i (y, en este caso, opcionalmente del identificador id_dongle_i): Ksym_i= DERlVE_Ksym_i (mdp_dongle_i; id_dongle_i).
[0045] En una realización, la función Ksym_i es por ejemplo:
- DERIVE_Ksym_i (mdp_dongle_i) = mdp_dongle_i; o
- DERIVE_Ksym_i (mdp_dongle_i,; id_dongle_i) = mdp_dongle_i i id_dongle_i; o
- DERIVE_Ksym_i (mdp_dongle_i) = SHA (mdp_dongle_i); o
- DERIVE_Ksym_i (mdp_dongle_i; id_dongle_i) = SHA(mdp_dongle_i i id_dongle_i).
[0046] El dispositivo de configuración 10 carga en memoria 32 el dongle 30 n° i:
- la cantidad CHIFF_CST_dongle_i;
- la función algorítmica DERIVE_Ksym_i;
- el algoritmo de descifrado de confidencialidad en solitario denotado por DECHIFF_CST() del dato CHlFF_CST_dongle_i asociado al algoritmo de cifrado de confidencialidad en solitario de la etapa 102).
[0047] La generación de la contraseña mdp_dongle_i se efectúa según criterios de alfabeto y de talla para el dongle n°i.
[0048] En una etapa 103, la clave Kbase, así como la función algorítmica Derive_CST (;) se cargan en la memoria 24 de cada terminal de usuario 20 desde el dispositivo de configuración 10 (por una conexión por cable o inalámbrica), configurando así los terminales de usuario con esta clave secreta de sistema común a los terminales de usuario.
[0049] Supongamos ahora que cada terminal de usuario 20 y cada dongle 30 se han configurado bien previamente según el conjunto de etapas 100.
[0050] En referencia a la figura 4 que ilustra las etapas que implementan el terminal de usuario 20 (y su lector de tarjetas 29) y el dongle 30, consideremos ahora un usuario U que tiene en su posesión un dongle 30, por ejemplo, el dongle 30 n° i y que desea acceder a un conjunto de funciones F que solo se ofrecen, por medio del terminal de usuario 20, en posesión de un dongle 30 y de un control de acceso que implementa este dongle.
[0051] En una etapa 201, el usuario U introduce el dongle 30 en el lector 29; después de la detección de esta conexión por medio del lector 29, el terminal 20 requiere, por medio del IHM 25, que el usuario U introduzca la contraseña del dongle (en este estado, el usuario no puede tener acceso a las funciones F). En el caso considerado, el usuario introduce, por medio del teclado del lector 29, una contraseña, denotada en este caso mdp'. La contraseña introducida mdp' es transmitida al dongle 30 en una etapa 202.
[0052] En una etapa 203, el dongle 30 determina la clave simétrica Ksym_i' según la contraseña mdp' y de la función DERIVE_Ksym_i(;) que figura en su memoria 32 (y opcionalmente del identificador id_dongle_i): Ksym_i' = Ksym_i(mdp'; id_dongle_i).
[0053] Después, el dongle 30 extrae la cantidad CHIFF_CST_dongle_i de la memoria 32 y descifra esta cantidad por medio del algoritmo de descifrado de confidencialidad en solitario (denominado DECHIFF_CST y que corresponde al algoritmo de cifrado de confidencialidad en solitario de la etapa 102) con ayuda de esta clave simétrica Ksym_i' derivada de la contraseña mdp_dongle_i':
CST_dongle_i' = DECHIFF_CST(CHIFF_CST_dongle_i)
[0054] En una realización, el terminal de usuario 20 y el dongle 30 disponen además de una clave común secreta de sesión Ksession, por ejemplo, de uso único, en su memoria respectiva 22, 32 (negociada dinámicamente entre ellos o definida previamente). En este caso, en una etapa 204, el dongle 30 realiza una operación criptográfica mediante una función F(), por ejemplo, un cifrado o un cálculo de motivo de integridad de la cantidad CST_dongle_i' con la clave de sesión Ksession. La cantidad calculada se denota por F(Ksession; CST_dongle_i'). En caso de cifrado, el dato enviado es el cifrado; en caso de cálculo de un motivo de integridad, se envía únicamente el motivo calculado.
[0055] En una etapa 205, el dongle 30 suministra, por medio del lector 29, al terminal 20, además de su identificador id_dongle_i, la cantidad F(Ksession; CST_dongle_i').
[0056] Al recibir estos datos, en una etapa 206, el terminal de usuario 20 determina CST_dongle_i, en el caso actual calculando a su vez CST_dongle_i, a partir del identificador de dongle recibido, que se hayan almacenado la clave Kbase y la función criptográfica Derive_CST(; ) que usa esta clave Kbase (Kbase y el algoritmo de la función criptográfica Derive_CST en su memoria 22 en la fase de configuración previa):
CST_dongle_i = Derive_CST(Kbase, id_dongl_i)
[0057] Después, en una etapa 207, conociendo CST_dongle_i y Ksession, el terminal de usuario puede verificar que el valor F(Ksession; CST_dongle_i') es coherente. Por ejemplo, si se trata de un cálculo de motivo de integridad, el terminal de usuario compara el dato recibido con su propio cálculo de F(Ksession; CST_dongle_i). Alternativamente, si F() es una función de cifrado, el terminal de usuario descifra la cantidad F(Ksession; CST_dongle_i') y compara CST_dongle_i' con CST_dongle_i.
[0058] En una etapa 208, si las cantidades comparadas por el terminal 30 en la etapa 207 son iguales, entonces, por ejemplo, se suministra un mensaje que confirma que la contraseña suministrada mdp' por el usuario en la etapa 201 es correcta, por medio del terminal 30 al usuario mediante el IHM 25, por ejemplo, por visualización del mensaje en la pantalla del IHM 25 del terminal 20.
[0059] Esta validación de la contraseña tiene como efecto que el usuario tiene acceso entonces a las funciones ofrecidas por el terminal de usuario 20, por ejemplo:
- acceder a datos sensibles, memorizados en el terminal de usuario 20 o accesibles por medio de una red de telecomunicación de la que forma parte el terminal de usuario 20;
- acceder a (una parte de) una red de telecomunicación de la que forma parte el terminal de usuario 20;
- acceder a órdenes específicas sensibles, etc.
[0060] Si las cantidades comparadas en la etapa 207 no son iguales, entonces, por ejemplo, se suministra un mensaje que indica que la contraseña suministrada mdp' es incorrecta por medio del terminal 30 al usuario mediante la pantalla del IHM 25 y el terminal de usuario 20 sigue impidiendo el acceso del usuario a las funciones.
[0061] Así, según la invención, el terminal de usuario desempeña un papel activo en la validación de la contraseña, lo que permite hacer imposible descubrir la contraseña por la simple posesión del dongle: la invención ofrece una solución robusta, a base de criptografía simétrica, con una baja huella de memoria, para asegurar fuertemente el acceso a funciones de un terminal de usuario con ayuda de un dongle asociado a una contraseña. Según la invención, la contraseña puede elegirse además (es decir, no es obligatoriamente el resultado de una función matemática).
[0062] Por tanto, la contraseña mdp_dongle_i no se almacena en el dongle 30, ya sea de forma cifrada o no cifrada.
[0063] Un atacante que desee descubrir la contraseña puede intentar interceptar en la memoria del dongle el cifrado de confidencialidad en solitario CHlFF_CST_dongle_i, pero no puede hacer nada, ya que cualquier contraseña permite descubrir una cantidad CST_dongle_i' diferente cuya pertinencia no puede probarse por medio solo del dongle. Un atacante que desea descubrir la contraseña de un dongle debe tener acceso, según la invención, necesariamente a un terminal de usuario para tener el estado de validez o de invalidez de una contraseña.
[0064] En una realización, la etapa 205 tiene lugar, por ejemplo, en el curso de la implementación de un protocolo normalizado de intercambio interactivo de clave de sesión, por ejemplo, según la norma «ISO/IEC 11770-3:2015 Information technology - Security techniques - Key management - Part 3: Mechanisms using asymmetric techniques» en la cual el dongle realiza la etapa de confirmación de clave. En esta etapa de confirmación de clave, la Ksession corresponde entonces a la clave simétrica usada en la confirmación de clave de la norma y la cantidad CST_dongle_i corresponde al «campo opcional» que puede añadirse en la confirmación de clave (esta norma sugiere el cálculo de un motivo de integridad).
[0065] En la realización descrita anteriormente, el terminal de usuario y el dongle disponen de una clave común de sesión Ksession, de uso único: si el atacante ha registrado las comunicaciones, no puede hacer nada.
[0066] En otra realización, esta clave de sesión no es de uso único.
[0067] En otra realización, el intercambio entre el terminal de usuario y el dongle en la etapa 205 no está asegurado por la Ksession: el terminal de usuario y el dongle no usan clave de sesión.
[0068] En la realización descrita anteriormente, la cantidad CST_dongle_i es una cantidad criptográfica que depende de la clave de sistema Kbase y del identificador del dongle y la clave de sistema Kbase presente únicamente en los terminales 20 (es decir, no en los dongles 30). En otra realización, CST_dongle_i puede ser o no una cantidad criptográfica, puede depender o no de una clave sistema y/o del identificador del dongle. El terminal de usuario debe almacenar la cantidad CST_dongle_i o tener los medios de recalcularla cuando tiene que validar una contraseña introducida.
[0069] En una implementación simple de la invención, cada terminal de usuario 20 dispone de un listado exhaustivo («una tabla de verdad») en la que las cantidades CST_dongle_i de cada dongle están escritas directamente; el terminal 20 no tiene entonces necesidad de recalcularlas por una función Derive_CST. En este caso, el listado podría no estar siempre al día si se crean nuevos dongles y las cantidades CST_dongle_i no tienen todas el mismo valor. Por tanto, en el parque de terminales debe preverse un procedimiento de actualización del listado.
[0070] Alternativamente, el hecho de que las constantes puedan derivarse efectivamente de una función criptográfica que usa una Kbase y/o id_dongle evita almacenar el listado exhaustivo y las actualizaciones de los listados.
[0071] En el caso considerado, los intercambios entre el terminal de usuario 20 y el dongle 30 se implementan en enlaces de telecomunicación de tipo cable, si bien pueden usarse tecnologías de telecomunicación inalámbrica, por ejemplo, de tipo NFC.

Claims (10)

REIVINDICACIONES
1. Procedimiento de verificación de la contraseña de un dongle (30), que comprende después de la conexión de dicho dongle a un terminal de usuario (20) asociado, una etapa de recepción por un primer módulo electrónico de tratamiento del dongle, de una contraseña para validar (mdp') introducida por un usuario que requiere el acceso al terminal de usuario, estando dicho procedimiento caracterizado porque comprende además las etapas siguientes implementadas por el módulo electrónico de tratamiento (31) del dongle, de manera que una memoria (32) del dongle almacena una primera cantidad criptográfica (CHIFF_CST_dongle_i) igual al resultado del cifrado de confidencialidad en solitario de una primera constante (CST_dongle_i) con ayuda de una primera clave simétrica (Ksym_i) derivada criptográficamente de la contraseña del dongle, almacenando la memoria (32) del dongle (30) además la función de obtención de clave simétrica (DERIVE_Ksym(; )):
- determinación de una segunda clave simétrica (Ksym_i') por aplicación de dicha función (DERIVE_Ksym(; )) de obtención de clave simétrica a la contraseña para validar recibida;
- obtención de una segunda constante (CST_dongle_i') por descifrado de la primera cantidad criptográfica (CHIFF_CST_dongle_i) almacenada en la memoria del dongle con ayuda de la segunda clave simétrica determinada; y
- suministro por el dongle de un conjunto de datos, entre ellos un dato determinado según la segunda constante (CST_dongle_i') con destino al terminal de usuario, con vistas a la validación por este último de la contraseña introducida según dicho conjunto de datos y de la primera constante (CST_dongle_i).
2. Procedimiento de verificación de la contraseña de un dongle (30) según la reivindicación 1, según el cual dicha función de obtención de clave simétrica (DERIVE_Ksym(; )) depende además de un identificador del dongle, y según el cual dicha segunda clave simétrica está determinada por el módulo de tratamiento del dongle por aplicación de dicha función de obtención de clave simétrica a la contraseña para validar recibida y al identificador (id_dongle_i) del dongle almacenado en memoria (32) del dongle.
3. Procedimiento de verificación de la contraseña de un dongle (30) según la reivindicación 1 o 2, según el cual dicho dato, en el conjunto de datos suministrado al terminal de usuario (20), que está determinado según la segunda constante incluye dicha segunda constante cifrada con ayuda de una clave de sesión, y según el cual dicho conjunto de datos se introduce en un campo de datos específico de un mensaje transmitido por el dongle al terminal de usuario de acuerdo con un protocolo de establecimiento de clave de sesión.
4. Procedimiento de verificación de la contraseña de un dongle (30) según la reivindicación 1 o 2, según el cual dicho dato, en el conjunto de datos suministrado al terminal de usuario (20), que está determinado según la segunda constante, incluye un motivo de integridad de la segunda constante calculado con ayuda de una clave de sesión, y según el cual dicho conjunto de datos se introduce en un campo de datos específico de un mensaje transmitido por el dongle al terminal de usuario de acuerdo con un protocolo de establecimiento de clave de sesión.
5. Procedimiento de verificación de la contraseña de un dongle (30) según cualquiera de las reivindicaciones anteriores, que comprende además las etapas siguientes implementadas por un segundo módulo electrónico de tratamiento (24) del terminal de usuario (20), de los datos representativos de dicha primera constante que se ha almacenado previamente en una memoria (22) del terminal de usuario:
- recepción del conjunto de datos que comprende el dato determinado según dicha segunda constante (CST_dongle_i') suministrado por el dongle (30);
- obtención de la primera constante según los datos representativos de dicha primera constante almacenados previamente en la memoria (22) del terminal de usuario;
- comparación de dicho dato determinado según dicha segunda constante y de un dato determinado según la primera constante obtenida;
- en función del resultado de dicha comparación, validación o no validación selectivamente de la contraseña para validar introducida.
6. Procedimiento de verificación de la contraseña de un dongle (30) según la reivindicación 5, según el cual los datos de dicha primera constante almacenados previamente en la memoria (22) del terminal de usuario (20) comprenden al menos una función criptográfica (Derive_CST), y la recepción del conjunto de datos que comprende dicho dato determinado según dicha segunda constante (CST_dongle_i') y suministrada por el dongle (30) activa la aplicación, por el segundo módulo de tratamiento (24) del terminal de usuario (20) de la función criptográfica (Derive_CST) a al menos un elemento entre un identificador del dongle extraído del conjunto de datos recibido y una clave de cifrado de sistema (Kbase) almacenada previamente en la memoria (22) del terminal de usuario.
7. Procedimiento de verificación de la contraseña de un dongle (30) según cualquiera de las reivindicaciones 4 a 6, según el cual, en una etapa de configuración previa de un conjunto de equipos que comprende al menos el dongle y el terminal de usuario, se implementan las etapas siguientes por medio de un dispositivo electrónico de configuración (10):
- obtención de la primera constante asociada al dongle;
- determinación de la primera clave simétrica según la función de obtención de clave simétrica (DERIVE_Ksym) aplicada a la contraseña del dongle;
- determinación de la primera cantidad criptográfica (CHIFF_CST_dongle_i) igual al resultado del cifrado de una primera constante con ayuda del primer algoritmo de cifrado simétrico que usa la primera clave simétrica determinada;
- carga en la memoria del dongle de la primera cantidad criptográfica y de la función de obtención de clave simétrica (DERIVE_Ksym(; ));
- carga de los datos representativos de la primera constante en la memoria (22) del terminal de usuario (20).
8. Programa informático que incluye instrucciones de software que, cuando son ejecutadas por un ordenador, implementan las etapas, que incumben al primer módulo de tratamiento de un dongle (30), de un procedimiento según cualquiera de las reivindicaciones anteriores.
9. Dongle (30) adaptado para conectarse a un terminal de usuario (20) asociado, comprendiendo dicho dongle un primer módulo electrónico de tratamiento (31) adaptado para recibir una contraseña para validar (mdp') introducida por un usuario que requiere el acceso al terminal de usuario cuando dicho terminal de usuario se conecta al dongle,
estando dicho dongle caracterizado porque comprende además una memoria (32) que almacena una primera cantidad criptográfica (CHIF_CST_dongle_i) igual al resultado del cifrado de confidencialidad en solitario de una primera constante (CST_dongle_i) con ayuda de una primera clave simétrica (Ksym_i) derivada criptográficamente de la contraseña del dongle, de manera que la memoria (32) del dongle (30) almacena además la función de obtención de clave simétrica (DERIVE_Ksym( ; )) y porque el módulo electrónico de tratamiento del dongle (31) está adaptado para determinar una segunda clave simétrica (Ksym_i') por aplicación de dicha función (DERIVE_Ksym( ; )) de obtención de clave simétrica a la contraseña para validar recibida; estando el módulo electrónico de tratamiento del dongle (31) adaptado para obtener una segunda constante (CST_dongle_i') por descifrado de la primera cantidad criptográfica (CHIFF_CST_dongle_i) almacenada en la memoria del dongle con ayuda de la segunda clave simétrica determinada;
estando el dongle adaptado para suministrar un conjunto de datos, entre ellos un dato determinado según la segunda constante (CST_dongle_i') con destino al terminal de usuario, con vistas a la validación por este último de la contraseña introducida según dicho conjunto de datos y de la primera constante (CST_dongle_i).
10. Conjunto de usuario que incluye un terminal de usuario (20) y un dongle (30) según la reivindicación 9, en el que el terminal de usuario comprende un segundo módulo electrónico de tratamiento (24) y una memoria en la cual se han almacenado previamente datos representativos de dicha primera constante; y en el que el segundo módulo electrónico de tratamiento (24) está adaptado, cuando se conecta un dongle a dicho terminal, para recibir el conjunto de datos que comprende el dato determinado según dicha segunda constante (CST_dongle_i') suministrada por el dongle (30), para obtener la primera constante según los datos representativos de dicha primera constante almacenados previamente en la memoria (22) del terminal de usuario; estando dicho segundo módulo electrónico de tratamiento (24) adaptado para comparar dicho dato determinado según dicha segunda constante y un dato determinado según la primera constante obtenida y para, en función del resultado de dicha comparación, validar o no validar selectivamente la contraseña para validar introducida.
ES20216967T 2019-12-24 2020-12-23 Procedimiento de verificación de la contraseña de un dongle, programa informático, dongle y terminal de usuario asociados Active ES2928949T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1915543A FR3105481B1 (fr) 2019-12-24 2019-12-24 Procédé de vérification du mot de passe d'un dongle, programme d'ordinateur, dongle et terminal utilisateur associés

Publications (1)

Publication Number Publication Date
ES2928949T3 true ES2928949T3 (es) 2022-11-23

Family

ID=72178590

Family Applications (1)

Application Number Title Priority Date Filing Date
ES20216967T Active ES2928949T3 (es) 2019-12-24 2020-12-23 Procedimiento de verificación de la contraseña de un dongle, programa informático, dongle y terminal de usuario asociados

Country Status (4)

Country Link
EP (1) EP3842970B1 (es)
ES (1) ES2928949T3 (es)
FR (1) FR3105481B1 (es)
SG (1) SG10202013018XA (es)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2285042A1 (fr) * 2009-07-07 2011-02-16 Gemalto SA Module logiciel de sécurisation utilisant le chiffrement du haché d'un mot de passe concaténé avec une graine
WO2017117520A1 (en) * 2015-12-30 2017-07-06 Vasco Data Security, Inc. A method, system and apparatus using forward-secure cryptography for passcode verification
US10469487B1 (en) * 2016-05-31 2019-11-05 Wells Fargo Bank, N.A. Biometric electronic signature authenticated key exchange token

Also Published As

Publication number Publication date
FR3105481A1 (fr) 2021-06-25
SG10202013018XA (en) 2021-07-29
FR3105481B1 (fr) 2022-12-16
EP3842970A1 (fr) 2021-06-30
EP3842970B1 (fr) 2022-07-20

Similar Documents

Publication Publication Date Title
EP3444999B1 (en) Method for generating a public/private key pair and public key certificate for an internet of things device
US9467430B2 (en) Device, method, and system for secure trust anchor provisioning and protection using tamper-resistant hardware
US10482252B2 (en) Method for protecting the confidentiality and integrity of firmware for an Internet of Things device
ES2687191T3 (es) Método de autentificación de red para transacciones electrónicas seguras
US9118662B2 (en) Method and system for distributed off-line logon using one-time passwords
KR20210156255A (ko) 인증 장치 및 방법
ES2739896T5 (es) Acceso seguro a datos de un dispositivo
JP4938033B2 (ja) ソフトウェアアプリケーションのアクセスに対する制限を改善するためのシステムおよび方法
EP2639997A1 (en) Method and system for secure access of a first computer to a second computer
US20150318998A1 (en) Methods and systems for client-enhanced challenge-response authentication
EP1933252A1 (en) Dynamic OTP Token
US20160099920A1 (en) Method for establishing a cryptographically protected communication channel
JP2018500823A (ja) 装置鍵保護
WO2002033521A2 (en) Method and apparatus for controlling access to functions with different security levels
CN106452770B (zh) 一种数据加密方法、解密方法、装置和系统
US11057196B2 (en) Establishing shared key data for wireless pairing
CN109075965B (zh) 使用口令码验证的前向安全密码技术的方法、系统和装置
CN104094267A (zh) 安全共享来自源装置的媒体内容的方法、装置和系统
JP2019530265A (ja) グラフィックコード情報を提供及び取得する方法及び装置並びに端末
US10897705B2 (en) Secure communication between a contact lens and an accessory device
US20200374112A1 (en) Secure Provisioning of Data to Client Device
CN107453880A (zh) 一种云数据安全存储方法和系统
CN103370718B (zh) 使用分布式安全密钥的数据保护方法、设备和系统
US9876774B2 (en) Communication security system and method
ES2928949T3 (es) Procedimiento de verificación de la contraseña de un dongle, programa informático, dongle y terminal de usuario asociados