ES2953529T3 - Testigo de autenticación fuerte multiusuario - Google Patents

Testigo de autenticación fuerte multiusuario Download PDF

Info

Publication number
ES2953529T3
ES2953529T3 ES20175565T ES20175565T ES2953529T3 ES 2953529 T3 ES2953529 T3 ES 2953529T3 ES 20175565 T ES20175565 T ES 20175565T ES 20175565 T ES20175565 T ES 20175565T ES 2953529 T3 ES2953529 T3 ES 2953529T3
Authority
ES
Spain
Prior art keywords
instance
token
user
batch
authentication token
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
ES20175565T
Other languages
English (en)
Inventor
Frederik Mennes
Guy Couck
Bert Fierens
Sebastien Lavigne
Harm Braams
Wasch Tom De
Guillaume Teixeron
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.)
OneSpan International GmbH
Original Assignee
OneSpan International GmbH
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 OneSpan International GmbH filed Critical OneSpan International GmbH
Application granted granted Critical
Publication of ES2953529T3 publication Critical patent/ES2953529T3/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/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3215Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a plurality of channels
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3234Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
    • 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/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3228One-time or temporary data, i.e. information which is sent for every authentication or authorization, e.g. one-time-password, one-time-token or one-time-key

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Lock And Its Accessories (AREA)
  • Measuring Pulse, Heart Rate, Blood Pressure Or Blood Flow (AREA)

Abstract

Se divulga un token de autenticación sólido que admite múltiples instancias asociadas con diferentes usuarios y está protegido por un mecanismo de verificación de identidad del usuario. Se puede adaptar un token de autenticación fuerte de múltiples instancias para generar credenciales dinámicas utilizando secretos criptográficos que son específicos de una instancia particular almacenada en el token. Se divulgan un método y un sistema para proteger aplicaciones accesibles de forma remota utilizando tokens de autenticación fuertes que admiten múltiples instancias. Se divulga un método para cargar tokens adicionales en un token de autenticación de múltiples instancias. (Traducción automática con Google Translate, sin valor legal)

Description

DESCRIPCIÓN
Testigo de autenticación fuerte multiusuario
Campo de la invención
La invención se refiere a asegurar el acceso remoto a ordenadores y aplicaciones y transacciones remotas a través de redes informáticas. Más específicamente, la invención se refiere a métodos y aparatos que permiten a múltiples usuarios compartir el mismo testigo de autenticación fuerte para asegurar el acceso a aplicaciones remotas. Los objetos anteriores y otros se consiguen por medio del conjunto de reivindicaciones adjunto.
Antecedentes de la invención
A medida que crece la popularidad del acceso remoto a sistemas y aplicaciones informáticas, el número y la diversidad de transacciones a las que se accede de manera remota a través de redes públicas tales como Internet han aumentado drásticamente. Esta popularidad ha subrayado la necesidad de seguridad; en particular: cómo garantizar que las personas que acceden de manera remota a una aplicación sean quienes dicen ser, cómo garantizar que las transacciones que se realizan de manera remota sean iniciadas por personas legítimas y cómo garantizar que los datos de la transacción no se hayan alterado antes de que se reciban un servidor de aplicaciones. En el contexto de esta descripción, y a menos que se indique lo contrario o quede claro a partir del contexto, aplicación se refiere a una aplicación informática accesible de manera remota que está alojada en uno o más ordenadores de servidor de aplicaciones y a la que puede acceder de manera remota un usuario que está interactuando localmente con un dispositivo informático cliente de modo que el dispositivo informático cliente del usuario y el servidor de aplicaciones o los servidores de aplicaciones están conectados por medio de una red informática. Por ejemplo, el usuario puede estar interactuando con un ordenador personal o un teléfono inteligente que ejecuta un explorador web de modo que el ordenador personal o el teléfono inteligente pueden estar conectados por medio de Internet con un servidor web que aloja la aplicación y de modo que el explorador web y el servidor web pueden intercambiar, por ejemplo, mensajes de protocolo de transferencia de hipertexto (HTTP). En otro ejemplo, el usuario puede estar interactuando con una aplicación móvil que se ejecuta en un teléfono inteligente que está conectado con un servidor remoto. La aplicación puede comprender, por ejemplo, una aplicación de banca en línea.
Una forma de asegurar el acceso a las aplicaciones remotas es el uso de denominados testigos de autenticación fuertes. En el contexto de esta descripción, un testigo de autenticación fuerte (o testigo de autenticación o testigo, abreviado) es un dispositivo electrónico portátil compacto que comprende medios de procesamiento de datos que pueden realizar ciertos cálculos criptográficos. El dispositivo está adaptado para generar credenciales de autenticación dinámicas en nombre de un usuario realizando un algoritmo criptográfico en una o más entradas que comprenden al menos una variable dinámica de modo que el algoritmo criptográfico está parametrizado por una o más claves criptográficas secretas que pueden estar asociadas con ese usuario. La variable dinámica puede comprender, por ejemplo, un valor de tiempo (que puede proporcionarse por un reloj en tiempo real comprendido en el testigo de autenticación), puede comprender el valor de un desafío que puede proporcionarse al testigo de autenticación (por ejemplo, una cadena de dígitos decimales introducidos en el testigo de autenticación), puede comprender el valor de un contador que puede mantenerse por el testigo de autenticación y que puede incrementarse (o disminuirse), por ejemplo, cada vez que el contador se usa para generar una credencial, puede comprender un valor derivado de una credencial generada previamente (por ejemplo, puede comprender el valor anterior de la credencial), puede comprender datos que representan una transacción que necesita autenticarse, y puede comprender cualquier combinación de los anteriores.
En caso de que el testigo haya generado la credencial de autenticación dinámica usando solo un valor de tiempo, contador o desafío, la credencial generada también puede denominarse contraseña de un solo uso. Si el testigo ha generado la credencial de autenticación dinámica usando datos de transacción, a continuación, la credencial de autenticación dinámica también puede denominarse firma o firma de datos de transacción.
El testigo de autenticación fuerte puede presentar la credencial de autenticación dinámica generada al usuario de modo que el usuario pueda reenviar la credencial generada a una aplicación de modo que la aplicación pueda verificar la credencial. Por ejemplo, un testigo de autenticación fuerte puede generar una credencial de autenticación dinámica que consiste en una cadena de dígitos y puede presentar la credencial de autenticación dinámica al usuario mostrando la cadena de dígitos en la pantalla del testigo.
Algunos testigos de autenticación fuertes son relativamente sencillos y pueden ofrecer únicamente una funcionalidad básica de contraseña de un solo uso y pueden tener únicamente una interfaz de usuario muy limitada que comprende nada más que un solo botón de encendido/apagado y una pantalla de 7 segmentos para mostrar una contraseña de un solo uso de 6 dígitos. Otros testigos de autenticación fuertes son más complejos. Por ejemplo, algunos testigos de autenticación fuerte de gama alta pueden ofrecer un intervalo de funcionalidades, incluyendo la generación de firmas sobre datos de transacción y pueden comprender, por ejemplo, una cámara para capturar una imagen codificada con cantidades relativamente grandes de datos para firmar, medios de procesamiento de datos más potente para procesar y decodificar las imágenes capturadas y una interfaz de usuario más sofisticada que puede presentar al usuario cantidades relativamente grandes de datos a través de, por ejemplo, una pantalla gráfica.
El análisis de los antecedentes de la presente invención en el presente documento se incluye para explicar el contexto de la invención. Esto no se tomará como una admisión de que cualquiera de los materiales analizados anteriormente fue publicado, conocido o parte del conocimiento general común en la fecha de prioridad de esta solicitud.
Las soluciones de la técnica anterior se describen en los documentos: US 2014/0040628 A1, US 2007/0118745 A1 y US 2014/0101453 A1.
Divulgación de la invención
Problema técnico
El uso de testigos de autenticación fuerte de gama alta más sofisticados permite asegurar transacciones mucho más complejas de una manera más segura y fácil de usar que los testigos más sencillos. Sin embargo, una cámara, medios de procesamiento de datos más potentes y una interfaz de usuario sofisticada tienden a ser relativamente caros, lo que hace que el coste de los testigos de autenticación fuertes y sofisticados sea significativamente mayor que el coste de los testigos de contraseña sencillos básicos de un solo uso. Este coste adicional puede inhibir la adopción generalizada de testigos de autenticación fuerte de gama alta a pesar de sus ventajas en términos de seguridad y facilidad de uso.
Lo que se necesita son formas de mitigar el coste del uso de estos testigos de autenticación fuertes de gama alta y, al mismo tiempo, preservar las ventajas que ofrece su uso.
Solución técnica
La invención se basa en la idea de los inventores de que el coste global de asegurar las aplicaciones por parte de los usuarios de la aplicación que usan testigos de autenticación fuerte de gama alta relativamente costosos puede disminuir significativamente si es posible para diferentes usuarios de la aplicación (por ejemplo, miembros del mismo hogar) compartir los mismos testigos de autenticación fuertes.
Además, la invención se basa en la idea de los inventores de que es posible que diferentes usuarios compartan un único testigo de autenticación fuerte si este único testigo de autenticación fuerte puede comprender múltiples instancias de testigo, de modo que cada instancia puede tener su propio conjunto de secretos criptográficos (o datos para determinar tales secretos criptográficos) y parámetros para generar credenciales dinámicas tales como firmas y contraseñas de un solo uso y de modo que diferentes instancias pueden asociarse con diferentes usuarios.
La invención se basa además en la idea de los inventores de que se puede obtener un mayor nivel de seguridad si el testigo de autenticación fuerte restringe el uso de cada instancia separada al usuario legítimo asociado con esa instancia.
Además, la invención se basa en la idea de que es ventajoso si el proceso logístico para hacer que el uso de testigos de autenticación fuerte de múltiples instancias esté disponible para los usuarios es de manera que las instancias individuales pueden crearse y/o asignarse a usuarios específicos y/o cargarse en testigos específicos después de que los testigos de autenticación fuerte ya se hayan distribuido a los usuarios.
En el contexto de esta descripción, la terminología usuario puede referirse a una persona física, pero también puede referirse a un usuario virtual, por ejemplo, la misma persona física puede estar representada por múltiples identidades de usuario virtual. Es decir, diferentes usuarios pueden ser diferentes personas físicas, pero diferentes usuarios también pueden ser diferentes identidades de usuarios virtuales correspondientes a la misma persona física.
Testigo de autenticación que soporta múltiples instancias
En un aspecto de la invención, se proporciona un sistema para autenticar usuarios o transacciones para asegurar la interacción entre una pluralidad de usuarios y una o más aplicaciones.
Múltiples instancias en un único testigo de autenticación
En algunas realizaciones, un único testigo de autenticación fuerte puede comprender más de una instancia de testigo. Se puede entender que una instancia de testigo (o instancia, abreviado) comprende todos los datos individualizados incluidos en un testigo de autenticación que están asociados con un usuario particular y que definen cómo funciona el testigo de manera diferente para ese usuario particular que para otro usuario. En particular, una instancia puede comprender una o más claves criptográficas que usa el testigo de autenticación para generar credenciales de autenticación dinámicas para el usuario asociado con esa instancia o una instancia puede comprender elementos de datos que el testigo de autenticación puede usar para determinar o derivar los valores de una o más claves criptográficas que usa el testigo de autenticación para generar credenciales de autenticación dinámicas para el usuario asociado con esa instancia. En algunas realizaciones, una instancia también puede comprender algunos parámetros que pueden definir los valores de los atributos, tales como la forma en que se codifica una credencial dinámica generada antes de que se presente al usuario (por ejemplo, decimal, hexadecimal, alfanumérica...), cuántos dígitos están comprendidas en la credencial dinámica... En algunas realizaciones, una instancia también puede comprender datos de referencia que permiten que el testigo de autenticación verifique si un usuario es de hecho el usuario legítimo asociado con la instancia. Por ejemplo, en algunas realizaciones, una instancia puede comprender un valor de referencia de PIN o un conjunto de datos de referencia biométrica. En algunas realizaciones, una instancia también puede comprender parámetros y datos que están relacionados con el ciclo de vida de la instancia, tales como datos relacionados con la gestión de PIN. Tales parámetros y datos pueden incluir, por ejemplo, banderas que indican si aún se debe cambiar un PIN inicial, si la instancia está activada o bloqueada, un contador de intentos de PIN, un contador de intentos de PIN máximos, un parámetro que indica si una instancia bloqueada deberá borrarse automáticamente o no, un código de desbloqueo de PIN... En algunas realizaciones, una instancia también puede comprender datos que dependen del usuario y que pueden tener una función para mejorar la experiencia del usuario y la comodidad del usuario. Por ejemplo, la instancia puede comprender algunos valores o títulos de mensajes dependientes del usuario (tal como el nombre de la instancia), o una instancia puede comprender un indicador de preferencia de idioma que puede indicar al testigo de autenticación cuál de un número de idiomas soportados por el testigo de autenticación prefiere el usuario. En algunas realizaciones, una instancia también puede comprender un elemento de datos de identificación de instancia (o identificador de instancia) tal como, por ejemplo, un número de serie de instancia. En algunas realizaciones, un elemento de datos de identificación de instancia de este tipo puede ser único en un lote completo de testigos. En algunas realizaciones, un elemento de datos de identificación de instancia puede ser único únicamente entre las instancias de un único testigo. En algunas realizaciones, la combinación de un elemento de datos de identificación de instancia de una instancia particular de un testigo particular y un elemento de datos de identificación de testigo (tal como un número de serie de testigo) puede ser única entre todas las instancias de todos los testigos de un lote completo de testigos.
Algunos de los elementos de datos comprendidos o asociados con una instancia particular pueden almacenarse en un área particular de la memoria del testigo (de modo que esa área puede reservarse para almacenar datos asociados con esa instancia en particular), y el testigo puede recuperar o leer estos elementos de datos de esa área de memoria asociados con esa instancia particular cuando sea necesario. Otros elementos de datos de una instancia no se almacenan permanentemente en un área de memoria asociada con una instancia particular. El testigo crea o vuelve a crear algunos elementos de datos de una instancia cuando es necesario, por ejemplo, usando otros elementos de datos de esa instancia. Algunos de estos otros elementos de datos que usa el testigo para obtener ciertos elementos de datos de la instancia pueden almacenarse y leerse desde el área de memoria de un testigo que está asociado con esa instancia. Por ejemplo, en algunas realizaciones, una clave criptográfica que está asociada con una instancia particular puede almacenarse en un área de la memoria del testigo que está reservada para esa instancia particular, y el testigo puede obtener esa clave criptográfica (por ejemplo, para generar una credencial dinámica o desencriptar un mensaje) leyéndola desde el área de memoria asociada con esa instancia. En algunas realizaciones, una clave criptográfica particular de una instancia particular puede no estar almacenada permanentemente en el área de memoria asociada con esa instancia, sino que esa clave criptográfica particular puede obtenerse, cuando el testigo la necesite, por el testigo derivándola de otro elemento de datos de esa instancia. Por ejemplo, en algunas realizaciones, un testigo puede derivar una clave criptográfica particular de una instancia particular combinando criptográficamente una clave maestra de testigo con un elemento de datos que identifica esa instancia particular (tal como el número de serie de la instancia). En otra realización, el testigo puede derivar una clave criptográfica particular de una instancia particular al derivarla criptográficamente de otra clave criptográfica de esa instancia usando un elemento de datos de diversificación de clave (que, por ejemplo, puede estar asociado con el tipo de operación para la cual el testigo usará la clave criptográfica derivada).
Relaciones entre instancias y usuarios
En algunas realizaciones, las diversas instancias de testigo de un único testigo de autenticación fuerte que comprende más de una instancia de testigo pueden asociarse con diferentes usuarios. En algunas realizaciones, cada instancia comprendida en el mismo testigo está asociada con un usuario diferente. En algunas realizaciones, múltiples instancias asociadas con el mismo usuario pueden estar comprendidas en el mismo testigo. En algunas realizaciones, un número instancias asociadas con el mismo usuario pueden constituir un grupo de instancias de usuario. En algunas realizaciones, las instancias del mismo grupo de instancias de usuario pueden compartir ciertos elementos de datos (por ejemplo, un elemento de datos de identificación del grupo de instancias de usuario, tal como un número de serie de grupo de instancias de usuario). En algunas realizaciones, puede haber un enlace criptográfico entre los valores de algunos elementos de datos correspondientes de las instancias del mismo grupo de instancias de usuario. Por ejemplo, en algunas realizaciones, los valores de una o más claves criptográficas de las instancias de un mismo grupo de instancias de usuario pueden derivarse todos de la misma clave maestra que está asociada con el grupo de instancias de usuario y que puede tener un valor diferente para otro grupo de instancias de usuario. En algunas realizaciones, únicamente se puede asociar un solo grupo de instancias de usuario con un único usuario. En otras realizaciones, se pueden asociar múltiples grupos de instancias de usuarios con el mismo usuario. En algunas realizaciones, un testigo solo puede comprender una instancia del mismo grupo de instancias de usuario, pero puede comprender múltiples instancias asociadas con el mismo usuario, siempre que estas instancias pertenezcan todas a diferentes grupos de instancias de usuarios.
En algunas realizaciones, cada instancia de cualquier testigo es única, es decir, la misma instancia únicamente puede estar comprendida en un único testigo. En otras realizaciones, pueden existir múltiples copias de la misma instancia en más de un testigo diferente. En algunas realizaciones, múltiples copias de la misma instancia pueden estar asociadas con el mismo usuario. En algunas realizaciones, múltiples instancias que pueden estar comprendidas en diferentes testigos pueden estar asociadas con el mismo usuario y pueden compartir ciertos valores y atributos de datos. En algunas realizaciones, múltiples instancias que están comprendidas en diferentes testigos y que están asociadas con el mismo usuario pueden compartir los valores de ciertos datos y atributos, pero pueden tener valores diferentes para otros datos y atributos. Por ejemplo, en algunas realizaciones, múltiples instancias asociadas con el mismo usuario pueden estar comprendidas en diferentes testigos y todas estas instancias pueden compartir las mismas claves criptográficas, pero pueden tener un valor de referencia de contraseña o PIN diferente y/o un contador de intentos de PIN diferente.
Soporte de múltiples aplicaciones
En algunas realizaciones, todas las instancias de un testigo están relacionadas con la misma aplicación. En otras realizaciones, un testigo puede comprender instancias que están relacionadas con diferentes aplicaciones.
En algunas realizaciones, cualquier instancia puede estar asociada con una única aplicación o un único conjunto de aplicaciones y una instancia puede compartir sus claves dinámicas de generación de credenciales con la aplicación o el conjunto de aplicaciones con las que está asociada.
Ciclo de vida de la instancia
Creación y asignación de instancias
En algunas realizaciones, los testigos de autenticación fuerte pueden comprender un número de instancias que se crean (por ejemplo, por una aplicación) y se cargan en los testigos de autenticación fuerte antes de que los testigos se proporcionen a los usuarios finales. En tales realizaciones, las diversas instancias precargadas de un testigo de autenticación fuerte particular pueden asignarse a los diversos miembros de un grupo de usuarios finales (tales como los miembros de un hogar) que se supone que comparten el testigo de autenticación fuerte antes de la testigo que se proporcione al (a un miembro del) grupo. En otras realizaciones, se asigna una instancia al primer miembro de un grupo de usuarios finales y, una vez que se ha proporcionado el testigo a ese primer miembro, los miembros posteriores del grupo pueden inscribirse y, tras inscribirse, una instancia que aún no ha sido asignada puede asignarse y asociarse con cada miembro que se inscriba posteriormente.
Como alternativa, en algunas realizaciones, los testigos se pueden distribuir a los usuarios finales sin que se cargue ninguna instancia en ellos. Cuando un usuario particular desea usar un testigo particular, el usuario puede cargar una instancia particular asociada con ese usuario en ese testigo particular. En algunas realizaciones, la misma instancia (asociada con un usuario particular) se puede cargar en múltiples testigos de autenticación fuerte diferentes. En otras realizaciones, una instancia de testigo particular únicamente se puede cargar en un único testigo de autenticación fuerte.
En algunas realizaciones, cuando una instancia particular se asigna a un usuario particular, se asocia la instancia o al menos parte de los datos de la instancia con ese usuario por la aplicación y la aplicación puede almacenar esa asociación en una base de datos. Por ejemplo, tras la asignación de la instancia, una aplicación puede almacenar en una base de datos una relación que vincula al usuario particular al que se ha asignado la instancia con datos que pueden permitir que la aplicación recupere o determine una o más claves de verificación de credenciales criptográficas que la aplicación puede usar para verificar las credenciales dinámicas que un testigo que comprende esa instancia puede generar para esa instancia.
En algunas realizaciones, una aplicación tiene un grupo de instancias no asignadas (es decir, instancias que no se han asignado (todavía) a un usuario particular) y puede seleccionar una instancia de este grupo y asignarla a un usuario cuando se necesita asignar una instancia a ese usuario. En algunas realizaciones, estas instancias no asignadas pueden haberse generado por un proveedor de instancias que puede proporcionar un lote de instancias no asignadas a un propietario de la aplicación. En algunas realizaciones, la parte que actúa como proveedor de la instancia también puede ser la parte responsable de fabricar los testigos. En otras realizaciones, cuando es necesario asignar una instancia a un usuario, una aplicación puede generar una nueva instancia para asignarla a ese usuario.
Cargando instancias en un testigo
En algunas realizaciones, las instancias pueden cargarse en un testigo como parte de la fabricación de un testigo. En algunas realizaciones, las instancias pueden cargarse en un testigo después de que se haya fabricado y distribuido el testigo a un usuario.
En algunas realizaciones, cargar una instancia en un testigo puede implicar proporcionar uno o más mensajes o comandos de carga de instancias al testigo. En algunas realizaciones, el usuario puede introducir manualmente un mensaje o comando de carga de instancia de este tipo en el testigo usando una interfaz de entrada de usuario manual del testigo, tal como, por ejemplo, un teclado. En algunas realizaciones, un mensaje o comando de carga de instancia puede comprender un mensaje o comando digital que se puede proporcionar al testigo por medio de una interfaz de entrada de datos digital del testigo. Por ejemplo, en algunas realizaciones, un mensaje o comando de carga de instancia puede codificarse en un código de barras bidimensional que puede capturarse por una cámara digital incluida en el testigo y que puede decodificarse posteriormente por el testigo.
En algunas realizaciones, un mensaje o comando de carga de instancia puede protegerse criptográficamente. En algunas realizaciones, un mensaje o comando de carga de instancia puede protegerse usando un algoritmo criptográfico y una clave de carga de instancia criptográfica. Por ejemplo, en algunas realizaciones, un mensaje o comando de carga de instancia puede encriptarse (en su totalidad o en parte) usando un algoritmo de encriptación parametrizado con una clave de carga de instancia criptográfica. En algunas realizaciones, un testigo puede estar adaptado para desencriptar contenidos encriptados comprendidos en un mensaje o comando de carga de instancia usando un algoritmo de desencriptación parametrizado con una clave de carga de instancia criptográfica. En algunas realizaciones, un mensaje o comando de carga de instancia puede comprender un código de autenticación de mensaje (MAC) o una firma sobre al menos una parte del contenido o comando del mensaje para autenticar el origen del mensaje o comando de carga de instancia. En algunas realizaciones, un testigo puede estar adaptado para verificar un MAC o una firma comprendida en un mensaje o comando de carga de instancia usando un algoritmo criptográfico parametrizado con una clave de carga de instancia criptográfica. En algunas realizaciones, un algoritmo criptográfico usado para asegurar un mensaje o comando de carga de instancia puede comprender un algoritmo criptográfico simétrico, tal como un algoritmo de encriptación/desencriptación simétrica tal como DES (norma de encriptación de datos) o AES (norma de encriptación avanzada), o un algoritmo de codificación-función de troceo tal como HMAC (código de autenticación de mensaje basado en función de troceo). Por ejemplo, en algunas realizaciones, se puede usar un algoritmo de encriptación/desencriptación simétrica para encriptar/desencriptar un mensaje o comando de carga de instancia. En algunas realizaciones, se puede usar un algoritmo de encriptación simétrica para generar y/o verificar un MAC. En algunas realizaciones, se puede usar un algoritmo de codificación-función de troceo para generar y/o verificar un MAC.
En algunas realizaciones, una clave de carga de instancia criptográfica puede compartirse entre el testigo en el que debe cargarse la instancia y la aplicación que emite el mensaje o comando de carga de instancia. En algunas realizaciones, una clave de carga de instancia puede estar asociada con un único testigo. En algunas realizaciones, una clave de carga de instancia puede estar asociada con un lote de testigos y puede compartirse por todos los testigos del mismo lote.
En algunas realizaciones, un dispositivo puede únicamente soportar un cierto número máximo de instancias. Cuando se ha cargado el número máxima de instancias y un usuario intenta cargar una instancia adicional, el testigo puede informar al usuario que se ha alcanzado el número máximo de instancias cargadas y puede proponer al usuario que elimine una de las instancias cargadas para dejar espacio para otra instancia.
Soporte de múltiples aplicaciones
En algunas realizaciones, la carga de instancias puede estar bajo el control de una parte de control de testigo y la carga de una instancia puede requerir la aprobación y/o cooperación de la parte de control de testigo. En algunas realizaciones, la parte de control de testigo coincide con un proveedor de aplicaciones y únicamente las instancias relacionadas con la aplicación o aplicaciones proporcionadas por ese proveedor de aplicaciones pueden cargarse en el testigo. En algunas realizaciones, una parte de control de testigo puede permitir la carga de instancias relacionadas con diferentes proveedores de aplicaciones. Por ejemplo, en algunas realizaciones, una parte de control de testigo puede proporcionar a un número de proveedores de aplicaciones las herramientas y las claves criptográficas para cargar y gestionar instancias relacionadas con sus aplicaciones. En algunas realizaciones, los valores de las claves criptográficas que un proveedor de aplicaciones puede usar para cargar y gestionar instancias relacionadas con ese proveedor de aplicaciones son diferentes de los valores de las claves correspondientes usadas por otros proveedores de aplicaciones.
Eliminar instancias
En algunas realizaciones, un testigo se puede adaptar para soportar la posibilidad de eliminar instancias que ya no son necesarias más o que se han vuelto obsoletas (por ejemplo, una instancia que se ha bloqueado y que ya no se puede desbloquear más).
En algunas realizaciones, la eliminación de una instancia en el testigo puede iniciarse por el testigo que recibe un mensaje o comando de eliminación de instancia. En algunas realizaciones, el usuario puede iniciar la eliminación de una instancia en el testigo seleccionando manualmente en el testigo (por ejemplo, a través de un menú ofrecido por el testigo) una instancia para eliminar.
En algunas realizaciones, una instancia únicamente se puede eliminar después de que el testigo haya verificado la identidad de un usuario. En algunas realizaciones, una instancia únicamente se puede eliminar después de que el testigo haya verificado la identidad del usuario asociado con esa instancia. En algunas realizaciones, un usuario maestro (que, por ejemplo, puede ser el primer usuario al que se le ha asignado una instancia en el testigo) puede asociarse con el testigo y después de que el testigo haya verificado la identidad del usuario maestro, el testigo puede permitir la eliminación también de instancias asociadas a otros usuarios.
En algunas realizaciones, la eliminación de una instancia no requiere la verificación de la identidad de un usuario.
En algunas realizaciones, la eliminación de una instancia requiere que el testigo reciba un mensaje o comando de eliminación de instancia que apunta a la instancia que se eliminará. En algunas realizaciones, un mensaje o comando de eliminación de instancia de este tipo está asegurado criptográficamente Por ejemplo, en algunas realizaciones, el testigo se puede adaptar para verificar criptográficamente que el mensaje o comando de eliminación de la instancia ha sido generado o emitido por una aplicación que tiene derecho a dar instrucción al testigo para que elimine una instancia. Por ejemplo, en algunas realizaciones, un mensaje de eliminación de instancia puede encriptarse o puede comprender un código de autenticación de mensaje. En algunas realizaciones, la aplicación puede usar un algoritmo criptográfico para asegurar un mensaje de eliminación de instancia con una primera clave de eliminación de instancia criptográfica. En algunas realizaciones, el testigo puede verificar un mensaje de eliminación de instancia usando un algoritmo criptográfico con una segunda clave de eliminación de instancia criptográfica. En algunas realizaciones, la aplicación y el testigo pueden compartir una clave de eliminación de instancia criptográfica. En algunas realizaciones, una clave de eliminación de instancia criptográfica puede estar asociada con el testigo. En algunas realizaciones, una clave de eliminación de instancia criptográfica puede estar asociada con una instancia.
En algunas realizaciones, un testigo puede soportar la posibilidad de eliminar todas las instancias del testigo a la vez. Por ejemplo, en algunas realizaciones, el testigo puede soportar un mensaje o comando de eliminación de instancia general para eliminar todas las instancias. En algunas realizaciones, un mensaje o comando de eliminación de instancia general de este tipo puede protegerse criptográficamente usando una clave de eliminación de instancia general criptográfica que puede estar asociada con el testigo y que puede compartirse con la aplicación que emite o genera el mensaje o comando de eliminación de instancia general.
En algunas realizaciones, el testigo se puede adaptar para eliminar automáticamente una instancia que está bloqueada (véase en cualquier otro sitio de esta descripción para obtener más información sobre el bloqueo de instancias).
Seleccionar una instancia particular
Cuando un usuario, por ejemplo, desea generar una credencial de autenticación (tal como una contraseña de un solo uso o una firma de datos de transacción) usando un testigo de autenticación fuerte que comprende más de una instancia de testigo, a continuación, de alguna manera, debe seleccionarse la instancia correcta asociada a usuario con el que ha de generarse la credencial. También, para otras operaciones que implican una instancia particular (tal como desbloquear un PIN o contraseña bloqueados de una instancia particular, o cambiar el PIN o la contraseña de una instancia particular, o eliminar una instancia obsoleta particular) puede ser necesario que se seleccione la instancia correcta que es el objetivo de la operación. En algunas realizaciones, si el testigo únicamente comprende una única instancia, a continuación, el testigo puede seleccionar automáticamente esa única instancia.
Selección manual
En algunas realizaciones, el testigo de autenticación fuerte puede comprender un mecanismo que permite a un usuario seleccionar explícitamente una instancia particular. Por ejemplo, en algunas realizaciones, el testigo de autenticación fuerte puede proporcionar un mecanismo, tal como un cuadro de lista o un menú, que presenta al usuario (por ejemplo, a través de una pantalla de testigo) una lista de identificadores de instancia y que le permite seleccionar (por ejemplo, a través de un dispositivo de entrada de usuario de testigo) uno de los identificadores de instancia presentados de modo que cada uno de los identificadores de instancia presentados puede asociarse con una de las instancias presentes en el testigo de autenticación fuerte y de modo que el usuario que selecciona un identificador de instancia particular puede tener el efecto de seleccionar la instancia asociada con ese identificador de instancia particular. En algunas realizaciones, una instancia puede comprender un identificador de instancia.
Selección automática
En algunas realizaciones, las operaciones de testigo o las funciones de testigo que implican una instancia particular pueden iniciarse por diversos comandos de testigo. En algunas realizaciones, estos comandos de testigo pueden incorporarse en mensajes de testigo que pueden proporcionarse al testigo. En algunas realizaciones, los mensajes o comandos pueden construirse y los testigos de autenticación pueden estar adaptados de manera que un testigo de autenticación que recibe un mensaje o comando puede deducir la instancia objetivo del mensaje o comando recibido a partir del contenido del mensaje o comando.
Selección automática explícita
En algunas realizaciones, un comando de testigo o un mensaje de testigo que incorpora un comando de testigo puede comprender un elemento de datos que permite que el testigo determine la instancia particular a la que se dirige el comando o mensaje. Por ejemplo, en algunas realizaciones, un mensaje de testigo o comando de testigo dirigido a una instancia particular puede comprender un elemento de datos de identificación de instancia que puede coincidir con un identificador de instancia de la instancia objetivo. Tras el mensaje de testigo o el comando de testigo, el testigo puede recuperar el elemento de datos de identificación de instancia del mensaje o comando y compararlo con los identificadores de instancia de las instancias presentes en el testigo. Si el testigo encuentra una coincidencia entre la instancia recuperada que identifica el elemento de datos del mensaje o comando, el testigo puede seleccionar la instancia asociada con el identificador de instancia coincidente y actuar sobre la instancia seleccionada de acuerdo con el contenido del mensaje o comando. En algunas realizaciones, el elemento de datos de identificación de instancia es único sobre todas las instancias de testigo en el sistema. En algunas realizaciones, el elemento de datos de identificación de instancia es único sobre todas las instancias de testigo en un único testigo. Por ejemplo, en algunas realizaciones, el elemento de datos de identificación usado para identificar y seleccionar la instancia de un testigo particular al que se dirige un comando o mensaje puede compartirse por todas las instancias asociadas con el mismo usuario, pero cualquier testigo puede comprender no más de una instancia asociada al mismo usuario.
Selección automática implícita
En algunas realizaciones, el mensaje o comando recibido puede haberse protegido criptográficamente y el procesamiento del mensaje o comando puede requerir que el testigo lleve a cabo una operación criptográfica usando una clave de mensaje criptográfica asociada con la instancia objetivo del mensaje o comando. En algunas realizaciones, el testigo puede recuperar la clave de mensaje criptográfica que está asociada con una instancia particular a partir de esa instancia particular. En otras realizaciones, el testigo puede determinar o derivar la clave de mensaje criptográfica asociada con una instancia particular a partir de datos recuperados o asociados de otra manera con esa instancia. En algunas realizaciones, el testigo de autenticación puede estar adaptado para verificar si la operación criptográfica fue exitosa. Por ejemplo, en algunas realizaciones, al menos una parte del contenido del mensaje puede haberse encriptado (por ejemplo, por la aplicación) con la clave de mensaje criptográfica de la instancia objetivo y la operación criptográfica mencionada anteriormente puede comprender desencriptar el testigo el contenido encriptado con la clave de mensaje criptográfica asociada con una instancia particular. A continuación, el testigo puede verificar si el contenido desencriptado satisface alguna condición predeterminada. Por ejemplo, el testigo puede verificar si el contenido desencriptado obedece ciertas reglas de sintaxis o si ciertos campos de datos están presentes o si los valores de ciertos campos de datos son correctos. Por ejemplo, el testigo puede verificar si el contenido desencriptado comprende un código de redundancia cíclica (CRC) y si el valor de ese CRC se corresponde con el resto del contenido desencriptado. Si el testigo determina que el contenido desencriptado satisface, de hecho, con las condiciones predeterminadas, a continuación, el testigo puede considerar que la operación criptográfica fue exitosa. En otras realizaciones, el mensaje o comando puede comprender un código de autenticación de mensaje (MAC) que puede haberse generado usando una clave de mensaje criptográfica de la instancia objetivo con técnicas bien conocidas en la técnica para generar un MAC, y el testigo puede estar adaptado para verificar este MAC usando la clave de mensaje criptográfica de una instancia particular con técnicas complementarias bien conocidas en la técnica para verificar un MAC.
En algunas realizaciones existe una alta probabilidad estadística de que la operación criptográfica no tendrá éxito si se lleva a cabo con otro valor para la clave de mensaje criptográfica distinto del valor que está asociado con la instancia objetivo del mensaje o comando. En algunas realizaciones, el testigo de autenticación puede, tras recibir el mensaje o el comando, realizar las operaciones criptográficas con las claves de mensaje criptográficas asociadas con las diversas instancias comprendidas en el testigo. Si la operación criptográfica tiene éxito usando la clave de mensaje criptográfica de una instancia particular, a continuación, el testigo puede concluir que esta es la instancia objetivo del mensaje o comando y el testigo puede seleccionar esa instancia y puede realizar o iniciar la función u operación asociada con el mensaje o comando. En algunas realizaciones, si la operación criptográfica falla con las claves de mensaje criptográficas de todas las instancias, a continuación, el testigo puede presentar al usuario un mensaje de error.
Gestión de claves
En algunas realizaciones, un testigo puede comprender y/o usar diversas claves criptográficas con diversos algoritmos criptográficos. Por ejemplo, un testigo puede usar una primera clave criptográfica para generar credenciales de autenticación en nombre de un usuario particular, o puede usar una segunda clave criptográfica para asegurar la carga de una instancia, o puede usar una tercera clave criptográfica para asegurar el desbloqueo de una instancia bloqueada. o puede usar una cuarta clave criptográfica para asegurar un mensaje dirigido a una instancia particular, o puede usar una quinta clave criptográfica para generar o derivar otra clave criptográfica.
Claves asociadas a un lote de testigos
En algunas realizaciones, algunas claves criptográficas que puede usar un testigo pueden tener el mismo valor para todos los testigos de un lote de testigos. Por ejemplo, en algunas realizaciones, todos los testigos de un lote de testigos pueden compartir el mismo valor de una clave maestra que los testigos pueden usar para derivar otras claves.
Claves asociadas con un testigo particular
En algunas realizaciones, algunas de las claves criptográficas que usa un testigo pueden estar asociadas con un testigo particular, es decir, cada testigo tiene su propio valor para una clave de este tipo y este valor puede ser único. En algunas realizaciones, este valor puede ser único en un sentido absoluto, es decir, cualquier valor particular para cualquier clave particular únicamente puede ocurrir en un único testigo. Por ejemplo, en algunas realizaciones, los valores de algunas claves criptográficas pueden generarse encriptando un número de serie de testigo único con una clave maestra secreta. En otras realizaciones, este valor puede ser único solo en un sentido estadístico, es decir, el conocimiento del valor de una clave particular en un testigo no aumenta las posibilidades prácticas de poder obtener el valor de esa clave en otro testigo. Por ejemplo, en algunas realizaciones, los valores para algunas claves criptográficas pueden generarse por un generador aleatorio verdadero.
Claves asociadas con instancias particulares
En algunas realizaciones, algunas de las claves criptográficas que usa un testigo pueden estar asociadas con una instancia particular comprendida en el testigo, es decir, cada instancia tiene su propio valor para una clave de este tipo y este valor puede ser único en un sentido absoluto o estadístico. En algunas realizaciones, estas claves de instancia son únicas excepto que puede existir más de una copia de la misma instancia en diferentes testigos y que estas más de una copia pueden compartir el mismo valor para la clave asociada con la instancia. En algunas realizaciones, estas claves de instancia son únicas, excepto que el mismo valor de una clave de instancia puede compartirse por más de una instancia que está asociada con el mismo usuario. En algunas realizaciones, las claves asociadas con instancias particulares pueden comprender una o más claves de generación de credenciales y/o una clave de desbloqueo y/o una o más claves de mensajería segura. En algunas realizaciones, al menos algunas de las diversas claves asociadas con una instancia particular pueden almacenarse como parte de los datos de instancia. En algunas realizaciones, al menos algunas de las diversas claves asociadas con una instancia particular pueden determinarse o derivarse por el testigo usando datos almacenados o asociados con la instancia particular. Por ejemplo, en algunas realizaciones, el testigo puede derivar una o más claves asociadas con una instancia particular a partir de una clave maestra asociada con el testigo y un elemento de datos asociado con la instancia (que puede almacenarse en la instancia), tal como, por ejemplo, un identificador de instancia o elemento de datos de identificación de instancia.
En otras realizaciones, el testigo puede derivar una o más claves asociadas con una instancia particular a partir de una clave de instancia maestra asociada con esa instancia particular (y que puede almacenarse en la instancia o que puede derivarse, a su vez, por ejemplo, de una clave maestra de testigo) y un valor de diversificación tal como, por ejemplo, un valor de indicador de tipo clave.
Mensajes o comandos de testigo o instancia
En algunas realizaciones, se puede adaptar un testigo para recibir y procesar mensajes o comandos. En algunas realizaciones, algunos mensajes o comandos pueden dirigirse o tener como objetivo el testigo en su conjunto (tal como, por ejemplo, un mensaje para cargar una instancia adicional). En algunas realizaciones, algunos mensajes o comandos pueden dirigirse o tener como objetivo una instancia particular comprendida en el testigo (tal como, por ejemplo, mensajes o comandos para desbloquear una instancia bloqueada o mensajes o comandos para iniciar la generación de una credencial dinámica con una instancia particular).
Asegurar mensajes o comandos
En algunas realizaciones, algunos mensajes o comandos pueden protegerse criptográficamente. En algunas realizaciones, algunos mensajes o comandos pueden protegerse criptográficamente para proteger la confidencialidad de los datos comprendidos en los mensajes o comandos. En algunas realizaciones, algunos mensajes o comandos pueden protegerse criptográficamente para asegurar la integridad de los mensajes o comandos. En algunas realizaciones, algunos mensajes o comandos pueden protegerse criptográficamente para demostrar la autenticidad de los mensajes o comandos. En algunas realizaciones, al menos algunos de los contenidos de algunos mensajes o comandos pueden encriptarse, por ejemplo, para proporcionar confidencialidad de los datos confidenciales contenidos en los mensajes o comandos y se puede adaptar un testigo para desencriptar el contenido encriptado. En algunas realizaciones, se puede adaptar un testigo para autenticar el origen de algunos mensajes o comandos. Por ejemplo, en algunas realizaciones, algunos mensajes o comandos pueden comprender una firma o un MAC y el testigo puede estar adaptado para verificar la firma o el MAC.
En algunas realizaciones, algunos mensajes o comandos pueden protegerse criptográficamente usando algoritmos criptográficos simétricos. En algunas realizaciones, estos algoritmos criptográficos simétricos pueden usar claves criptográficas simétricas. En algunas realizaciones, las claves criptográficas usadas para proteger los mensajes o comandos pueden derivarse de un secreto que es único para una instancia particular. En algunas realizaciones, las claves criptográficas usadas para proteger los mensajes o comandos pueden derivarse de un secreto que es único para un testigo particular. En algunas realizaciones, las claves criptográficas usadas para proteger los mensajes o comandos pueden derivarse de un secreto que se comparte entre todas las instancias de un grupo particular de instancias (un grupo de este tipo puede comprender, por ejemplo, únicamente instancias asociadas con el mismo usuario) y que es desconocido para las instancias que no pertenecen a ese grupo particular. En algunas realizaciones, las claves criptográficas usadas para proteger los mensajes o comandos pueden derivarse de un secreto que se comparte entre todas las instancias o entre todas las instancias de un lote de instancias (por ejemplo, todas las instancias asociadas con una aplicación particular).
Tipos de mensajes o comandos
En algunas realizaciones puede haber múltiples tipos de mensajes o comandos que sirven para diversos propósitos. En algunas realizaciones, los mensajes o comandos pueden comprender un elemento de datos que indica el tipo, la función o el propósito del mensaje o comando.
Algunos mensajes o comandos pueden usarse para cargar una instancia en un testigo. Algunos mensajes o comandos pueden usarse para desbloquear una instancia bloqueada. Algunos mensajes o comandos pueden usarse para eliminar una instancia. Algunos mensajes o comandos pueden usarse para iniciar la generación de una credencial dinámica.
Proporcionar mensajes o comandos a un testigo
En algunas realizaciones, el usuario puede proporcionar algunos mensajes o comandos al testigo manualmente (por ejemplo, introduciendo el usuario, por ejemplo, en el teclado del testigo, una cadena de caracteres que codifica el mensaje o el comando). En algunas realizaciones, los mensajes o comandos se pueden codificar en un formato digital y el mensaje o comando digital se puede proporcionar al testigo por medio de una interfaz de entrada de datos digitales del testigo. En algunas realizaciones, la interfaz de entrada de datos digitales para proporcionar los mensajes o comandos al testigo puede soportar comunicación bidireccional. Por ejemplo, la interfaz de entrada de datos digitales puede comprender una interfaz de comunicación de datos alámbrica, tal como USB (Bus Serie Universal), o la interfaz de entrada de datos digitales puede comprender una interfaz de comunicación de datos inalámbrica, tal como Bluetooth. En otras realizaciones, la interfaz de entrada de datos digitales para proporcionar los mensajes o comandos al testigo puede soportar únicamente comunicación unidireccional hacia el testigo. Por ejemplo, en algunas realizaciones, el testigo puede comprender una cámara digital para capturar imágenes digitales y el mensaje o comando puede codificarse como una imagen (por ejemplo, en forma de un código de barras bidimensional tal como un código QR) y el testigo puede estar adaptado para capturar imágenes codificadas con mensajes o comandos y puede estar adaptado para decodificar estas imágenes para recuperar los mensajes o comandos.
Determinación del objetivo del mensaje
En algunas realizaciones, un usuario puede ayudar al testigo a determinar el objetivo de un mensaje o comando. Por ejemplo, en algunas realizaciones, un usuario puede seleccionar manualmente una instancia objetivo (antes o después de la recepción del mensaje o comando).
En algunas realizaciones, un testigo puede estar adaptado para determinar de manera autónoma el objetivo de un mensaje o comando recibido. En algunas realizaciones, un mensaje o comando puede comprender un elemento de datos que indica explícitamente el objetivo previsto del mensaje o comando. Por ejemplo, en algunas realizaciones, un mensaje o comando puede comprender un elemento de datos de identificación de objetivo, tal como un número de serie de testigo y/o un número de serie de instancia. En algunas realizaciones, el objetivo de un mensaje o comando puede indicarse de forma implícita. Por ejemplo, en algunas realizaciones, un mensaje o comando puede asegurarse criptográficamente y el testigo puede estar adaptado para realizar una verificación criptográfica del mensaje de comando recibido aplicando un algoritmo criptográfico que puede parametrizarse con una clave de verificación criptográfica que puede estar asociada con un objetivo candidato para el mensaje. En algunas realizaciones, se espera que la verificación tenga éxito si el testigo realiza la verificación usando un valor de la clave de verificación que corresponde al objetivo previsto y se espera que la verificación falle si el testigo realiza la verificación usando otro valor de la clave de verificación. En algunas realizaciones, el testigo puede determinar el objetivo del mensaje o comando haciendo una lista de objetivos candidatos y realizando la verificación criptográfica del mensaje o comando recibido usando uno tras otro los diferentes valores de clave de verificación correspondientes a los respectivos objetivos candidatos. Si el testigo encuentra que para un objetivo candidato particular la verificación es exitosa, a continuación, el testigo puede concluir que este objetivo candidato es el objetivo previsto del mensaje o comando. Si la verificación falla para todos los objetivos candidatos, el testigo puede rechazar el mensaje o el comando y generar una condición de error.
Reservar el uso de una instancia a su usuario legítimo
En algunas realizaciones, el testigo de autenticación fuerte se puede adaptar para garantizar que únicamente el usuario legítimo asociado con una instancia particular pueda usar efectivamente esa instancia particular.
Para garantizar que únicamente el usuario legítimo asociado con una instancia particular pueda usar esa instancia particular para generar credenciales de autenticación, se pueden adaptar testigos de autenticación fuertes para verificar a un usuario cuando un usuario intenta hacer uso de una instancia particular, más en particular, se pueden adaptar testigos de autenticación fuertes para verificar si un usuario que intenta hacer uso de una instancia particular corresponde al usuario que está asociado con esa instancia particular. En algunas realizaciones, el testigo puede solicitar al usuario que presente algún tipo de credencial de usuario y la instancia objetivo (es decir, la instancia que el usuario intenta usar) que puede comprender algunos datos de referencia de credenciales de usuario que el testigo de autenticación fuerte puede comparar con la credencial de usuario proporcionada por el usuario. Si la comparación entre la credencial de usuario proporcionada y los datos de referencia de credencial de usuario de la instancia produce una coincidencia, a continuación, el testigo puede conceder al usuario acceso a la instancia, de lo contrario, el testigo puede rechazar el acceso al usuario a la instancia. Por ejemplo, en algunas realizaciones, un testigo de autenticación fuerte puede solicitar a un usuario que introduzca un valor de PIN o contraseña y puede comparar ese valor de PIN o contraseña introducido con un valor de referencia de PIN o contraseña (que puede comprender, por ejemplo, el valor correcto para el PIN o contraseña o un valor de función de troceo de ese valor correcto) comprendido en los datos de instancia de la instancia que el usuario desea usar. En otras realizaciones, un testigo de autenticación fuerte puede tener, por ejemplo, un sensor de huellas dactilares y puede estar adaptado para capturar una lectura de huellas dactilares y comparar la lectura de huellas dactilares capturada con un conjunto de datos biométricos de referencia de huellas dactilares incluidos en la instancia objetivo.
Gestión de PIN
Inicialización de PIN o contraseña o datos de referencia biométricos
En algunas realizaciones, los datos de referencia que usa un testigo de autenticación para verificar un usuario de una instancia particular se cargan en el testigo como parte de los otros datos de instancia.
En algunas realizaciones, una nueva instancia inicialmente no comprende los datos de referencia para la verificación del usuario. En su lugar, en algunas realizaciones, se le puede solicitar al usuario de una instancia particular durante el primer uso de la instancia que proporcione el valor del PIN o la contraseña al menos una vez que el usuario usará de ahora en adelante en la verificación del usuario y el testigo puede almacenar un valor de referencia relacionado con el valor o valores proporcionados por el usuario para que el testigo lo use en verificaciones de usuario posteriores. En algunas realizaciones, el usuario de una instancia particular puede tener que pasar por una fase de inscripción biométrica durante la cual el testigo obtiene una o más capturas de una cierta biométrica (tal como una huella dactilar) del usuario y construye datos biométricos de referencia a partir de estas capturas biométricas que el testigo puede usar en verificaciones de usuario posteriores para esta instancia.
En algunas realizaciones, una nueva instancia está inicialmente protegida por un valor inicial de los datos de referencia de verificación de usuario (que pueden cargarse junto con o como parte de los otros datos de la instancia) y el testigo puede estar adaptado para solicitar al usuario que proporcione datos de referencia de verificación de nuevo usuario para esa instancia después de la primera verificación exitosa del usuario basándose en estos datos de verificación de usuario iniciales. En algunas realizaciones, si el testigo debe solicitar al usuario que proporcione nuevos datos de referencia de verificación de usuario para una instancia particular tras el primer uso de esa instancia, puede indicarse mediante un elemento de datos en la instancia, tal como una bandera ’Primer-uso-modificación’. En algunas realizaciones, la obtención de los nuevos datos de referencia de verificación de usuario puede ocurrir de la misma manera que se explicó anteriormente para los casos que inicialmente no tienen datos de referencia de verificación de usuario. Por ejemplo, en algunas realizaciones, cuando se carga una nueva instancia en un testigo de autenticación, los datos de la instancia que se cargan comprenden los datos de referencia para un valor inicial para un PIN o contraseña y una bandera que indica que el PIN o la contraseña aún tienen su valor inicial. Cuando el usuario desea usar esa instancia por primera vez, el testigo verifica en primer lugar al usuario usando el PIN o los datos de referencia de la contraseña iniciales y, una vez que el usuario ha sido verificado con éxito, el testigo puede solicitar al usuario que proporcione un nuevo valor de PIN o contraseña. El testigo también puede solicitar al usuario que proporcione este nuevo valor de PIN o contraseña por segunda vez como confirmación. A continuación, el testigo puede reemplazar el valor de referencia inicial con el valor de referencia para el nuevo PIN o contraseña.
Cambio de PIN o contraseña
En algunas realizaciones, un testigo de autenticación puede permitir que el usuario de una instancia particular cambie el PIN o la contraseña de esa instancia. Por ejemplo, en algunas realizaciones, un testigo puede tener una función que permite al usuario proporcionar un nuevo valor de PIN o contraseña después de una verificación de usuario exitosa. En algunas realizaciones, el testigo puede requerir que el usuario proporcione el mismo valor del nuevo PIN o contraseña más de una vez para ser aceptado.
Cambio de PIN iniciado localmente
En algunas realizaciones, un cambio de PIN para una instancia particular puede iniciarse localmente en el testigo de autenticación. Por ejemplo, en algunas realizaciones, un testigo de autenticación puede proporcionar una opción de menú para iniciar un cambio de PIN. En algunas realizaciones, un usuario debe seleccionar en primer lugar la instancia para la que se debe cambiar el PIN o la contraseña y, a continuación, el usuario puede seleccionar la función de cambio de PIN. En algunas realizaciones, el testigo puede verificar al usuario para la instancia seleccionada antes de que el usuario pueda seleccionar la función de cambio de PIN. En algunas realizaciones, el testigo puede verificar al usuario para la instancia seleccionada después de que se haya seleccionado la función de cambio de PIN (por ejemplo, como parte de la función de cambio de PIN). En otras realizaciones, en primer lugar, el usuario debe seleccionar la función de cambio de PIN y a continuación la instancia para la que se debe cambiar el PIN o la contraseña.
Cambio de PIN iniciado por la aplicación
En algunas realizaciones, un usuario que desee cambiar el PIN o la contraseña de una instancia particular puede interactuar con una aplicación e indicar a la aplicación su deseo de cambiar el PIN o la contraseña. En algunas realizaciones, a continuación, la aplicación puede construir un comando o mensaje de cambio de PIN que a continuación puede transferirse al testigo para iniciar la función de cambio de PIN. En algunas realizaciones, el testigo también puede usar el comando o mensaje de cambio de PIN para determinar y seleccionar la instancia para la que se debe cambiar el PIN o la contraseña, como se explica de manera más general y con más detalle en cualquiera otra parte de esta descripción. En algunas realizaciones, una aplicación puede requerir que el usuario se autentique con éxito en la aplicación antes de poner a disposición un mensaje o comando de cambio de PIN. Por ejemplo, la aplicación puede requerir que el usuario proporcione una credencial generada con la instancia para la que el usuario desea cambiar el PIN o la contraseña (lo que en algunas realizaciones puede implicar que el testigo ha verificado con éxito al usuario para esa instancia). En algunas realizaciones, el comando o mensaje de cambio de PIN puede indicar implícita o explícitamente al testigo que el usuario se ha autenticado con éxito en la aplicación y que el testigo ya no requiere más una verificación de usuario adicional del usuario para la instancia objetivo.
Bloqueo del PIN o contraseña de una instancia particular.
En algunas realizaciones, un testigo de autenticación puede desactivar el mecanismo de verificación del usuario para una o más instancias y bloquear estas instancias. En algunas realizaciones, esto puede suceder después de que se cumplan ciertas condiciones. Por ejemplo, en algunas realizaciones, un testigo de autenticación puede desactivar la verificación de usuario para una instancia particular y bloquear el acceso a la instancia después de que el número de verificaciones de usuario fallidas consecutivas haya superado un cierto umbral. Por ejemplo, en algunas realizaciones, el testigo de autenticación puede desactivar la verificación de PIN o contraseña para una instancia particular y puede bloquear el acceso a esa instancia tan pronto como se hayan introducido consecutivamente tres valores de PIN o contraseña incorrectos.
En algunas realizaciones, un testigo de autenticación puede eliminar automáticamente una instancia cuando el PIN o la contraseña u otro mecanismo de verificación del usuario están bloqueados. En algunas realizaciones, cuando se bloquea y elimina una instancia, se puede generar y cargar una nueva instancia en el testigo para reemplazar la instancia eliminada.
Desbloqueo del PIN o contraseña de una instancia particular
En algunas realizaciones, un testigo de autenticación puede tener un mecanismo de desbloqueo para desbloquear una instancia bloqueada particular. En algunas realizaciones, cuando se desbloquea una instancia bloqueada particular, el usuario puede usar de nuevo el PIN o la contraseña anterior de esa instancia. En otras realizaciones, cuando se desbloquea una instancia bloqueada particular, se requiere que el usuario proporcione un nuevo valor para el PIN o la contraseña para esa instancia y el testigo reemplazará los datos de referencia de verificación de usuario antiguos de esa instancia con datos de referencia de verificación de usuario nuevos correspondientes a ese nuevo valor.
Desbloqueo iniciado localmente
En algunas realizaciones, una operación de desbloqueo para una instancia particular puede iniciarse localmente en el testigo de autenticación. Por ejemplo, en algunas realizaciones, un testigo de autenticación puede proporcionar una opción de menú para iniciar una operación de desbloqueo. En algunas realizaciones, en primer lugar, el usuario debe seleccionar la instancia que el usuario desea desbloquear y, a continuación, el usuario puede seleccionar la función de desbloquear. En otras realizaciones, en primer lugar, el usuario debe seleccionar la función de desbloquear y, a continuación, la instancia es la que debe desbloquearse. En algunas realizaciones, si el testigo comprende únicamente una instancia bloqueada, a continuación, la instancia se selecciona automáticamente cuando el usuario selecciona la función de desbloquear.
Desbloqueo iniciado por la aplicación
En algunas realizaciones, un usuario que desee desbloquear una instancia bloqueada particular puede interactuar con una aplicación e indicar a la aplicación su deseo de desbloquear una instancia. En algunas realizaciones, a continuación, la aplicación puede construir (posiblemente después de que se hayan cumplido algunas condiciones) un comando o mensaje de desbloqueo que puede transferirse a continuación al testigo para iniciar la función de desbloqueo. En algunas realizaciones, el testigo también puede usar el comando o mensaje de desbloqueo para determinar y seleccionar la instancia para desbloquear, como se explica de manera más general y con más detalle en cualquier otro sitio de esta descripción. En algunas realizaciones, una aplicación puede requerir que el usuario se autentique con éxito en la aplicación antes de poner a disposición un comando de desbloqueo. Por ejemplo, la aplicación puede requerir que el usuario se autentique por medio un método de autenticación alternativo al uso de la instancia bloqueada del testigo de autenticación. Por ejemplo, en algunas realizaciones, el usuario puede tener que ir a una sucursal bancaria y autenticarse físicamente usando documentos de identidad, después de lo cual el usuario puede recibir un comando de desbloqueo para la instancia bloqueada. En algunas realizaciones, el comando o mensaje de desbloqueo puede indicar implícita o explícitamente al testigo que el usuario se ha autenticado con éxito en la aplicación y el testigo puede desbloquear la instancia bloqueada objetivo sin requerir una verificación adicional del usuario para la instancia objetivo.
PUK
En algunas realizaciones, una instancia puede comprender un valor de referencia para un PUK (código de desbloqueo de PIN). Cuando la instancia está bloqueada, el usuario puede proporcionar el valor del PUK. A continuación, el testigo puede comparar el valor de PUK proporcionado por el usuario con el valor de referencia de PUK almacenado en la instancia y, si hay una coincidencia, el testigo puede desbloquear la instancia. En algunas realizaciones, un valor de PUK de una instancia particular únicamente se puede usar una vez para desbloquear esa instancia particular. Si la instancia se vuelve a bloquear a partir de ese momento, ese valor de PUK no se puede usar una segunda vez para desbloquear la instancia de nuevo. En algunas realizaciones, una instancia puede tener múltiples PUK, de modo que los diferentes PUK pueden usarse uno tras otro.
Código de desbloqueo generado por la aplicación
En algunas realizaciones, una aplicación puede generar un código de desbloqueo para una instancia bloqueada. Cuando un código de desbloqueo generado por la aplicación de este tipo se entrega al testigo, el testigo puede verificar el código de desbloqueo generado por la aplicación. En algunas realizaciones, la aplicación puede generar el código de desbloqueo generado por la aplicación usando un algoritmo criptográfico parametrizado con una clave criptográfica. En algunas realizaciones, el testigo puede verificar el código de desbloqueo generado por la aplicación usando un algoritmo criptográfico parametrizado con una clave criptográfica que el testigo puede recuperar de la instancia o que el testigo puede determinar o derivar usando datos de la instancia. Por ejemplo, en algunas realizaciones, una instancia bloqueada puede generar un valor de desafío de desbloqueo. El testigo puede presentar el desafío de desbloqueo para el usuario. El testigo puede presentar el desafío de desbloqueo, por ejemplo, cuando la instancia se bloquea o cada vez que se selecciona la instancia bloqueada. En algunas realizaciones, el testigo puede presentar al usuario otros datos junto con el desafío de desbloqueo, tal como, por ejemplo, un mensaje que invite al usuario a ponerse en contacto con el servicio de asistencia técnica de la aplicación y/o un elemento de datos de identificación de instancia (por ejemplo, un número de serie de instancia), y/o un elemento de datos de identificación de testigo (por ejemplo, un número de serie de testigo). El usuario puede proporcionar el valor de desafío de desbloqueo a una aplicación. La aplicación puede determinar si el usuario es el usuario legítimo asociado con la instancia bloqueada (por ejemplo, por medio de algún método de autenticación alternativo) y puede determinar si la instancia bloqueada puede desbloquearse. A continuación, la aplicación puede generar una respuesta de desbloqueo combinando criptográficamente el desafío de desbloqueo con una primera clave de desbloqueo criptográfica. A continuación, la respuesta de desbloqueo generada puede proporcionarse al testigo. El testigo puede verificar la respuesta de desbloqueo usando un algoritmo criptográfico que opera en el desafío de desbloqueo y la respuesta de desbloqueo y que está parametrizado con una clave de instancia de desbloqueo criptográfica que el testigo puede recuperar de la instancia o puede derivar de los datos que recupera de la instancia.
Por ejemplo, en algunas realizaciones para generar la respuesta de desbloqueo, la aplicación puede encriptar el desafío usando un algoritmo de encriptación criptográfico parametrizado con una clave de encriptación de desbloqueo, o la aplicación puede generar una función de troceo de una combinación del desafío y un secreto de desbloqueo. En caso de que la aplicación haya generado la respuesta de desbloqueo encriptando el desafío proporcionado por el usuario con la primera clave de desbloqueo criptográfica, el testigo puede verificar la respuesta de desbloqueo desencriptando la respuesta de desbloqueo con la copia de la instancia de la clave de desbloqueo criptográfica y puede comparar el resultado de la desencriptación con el valor de desafío original (que, por ejemplo, puede haberse almacenado en la instancia) y puede desbloquear la instancia si hay una coincidencia. Si, por otro lado, la respuesta de desbloqueo se ha generado por la aplicación que genera la función de troceo de una combinación del desafío proporcionado por el usuario y la primera clave de desbloqueo criptográfica, el testigo puede verificar la respuesta de desbloqueo generando la función de troceo de una combinación del desafío original y la copia de la instancia de la clave de desbloqueo criptográfica y puede comparar la función de troceo resultante con la respuesta de desbloqueo recibida y puede desbloquear la instancia si hay una coincidencia.
Por ejemplo, en algunas realizaciones, una instancia puede comprender una clave criptográfica que puede usarse como una clave de instancia de desbloqueo criptográfica y que puede compartirse con una aplicación de desbloqueo. Esta clave se puede compartir con una aplicación de desbloqueo basada en servidor. Cuando la instancia se bloquea porque un usuario ha introducido un PIN o una contraseña incorrectos demasiadas veces seguidas, el testigo puede generar un valor aleatorio o pseudoaleatorio y almacenar ese valor como el desafío de desbloqueo en la instancia. Cada vez que se selecciona la instancia o se intenta iniciar una acción que implica a la instancia, el testigo puede informar al usuario que esta instancia está bloqueada y puede presentar al usuario el desafío de desbloqueo (por ejemplo, en forma de una cadena de caracteres o dígitos de modo que los caracteres o dígitos pueden ser, por ejemplo, alfanuméricos o decimales). A continuación, el usuario puede entonces ponerse en contacto con la aplicación de desbloqueo. Después de que la aplicación de desbloqueo haya verificado que se cumplen todas las condiciones para permitir el desbloqueo de la instancia (que puede incluir la autenticación del usuario de alguna forma alternativa), la aplicación puede generar un código de respuesta de desbloqueo (por ejemplo, como se ha explicado anteriormente) y un mensaje de desbloqueo que comprende el código de respuesta de desbloqueo generado. A continuación, se puede proporcionar el mensaje de desbloqueo al testigo. El testigo puede a continuación seleccionar la instancia bloqueada a la que se dirige el mensaje de desbloqueo. El testigo puede a continuación verificar el código de respuesta de desbloqueo incluido en el mensaje de desbloqueo. Tras la verificación con éxito del código de respuesta de desbloqueo, el testigo puede desbloquear la instancia bloqueada.
Volver a cargar una instancia bloqueada
En algunas realizaciones, una instancia bloqueada puede desbloquearse recargando la instancia bloqueada. En algunas realizaciones, la instancia recargada puede ser idéntica a la instancia cargada originalmente. En otras realizaciones, algunos elementos de datos de la instancia recargada pueden tener valores diferentes a los valores correspondientes en la instancia cargada originalmente (por ejemplo, valores de secretos que pueden usarse para generar credenciales dinámicas o los valores iniciales de los datos de referencia de verificación de usuario).
Generar credenciales dinámicas
Los testigos pueden estar adaptados para generar credenciales dinámicas combinando criptográficamente una variable dinámica con un secreto criptográfico. En algunas realizaciones, un testigo puede estar adaptado para generar credenciales dinámicas combinando criptográficamente de una variable dinámica con un secreto criptográfico que comprende una o más claves de generación de credenciales que están asociadas con una instancia cargada en el testigo. En algunas realizaciones, las claves de generación de credenciales pueden almacenarse en la instancia. En algunas realizaciones, el testigo determina los valores de las claves de generación de credenciales usando datos almacenados en la instancia. La variable dinámica puede comprender un valor generado internamente por el testigo, tal como, por ejemplo, el valor de un reloj en tiempo real, o el valor de un contador almacenado en la instancia y automáticamente incrementado (o disminuyendo) por el testigo cada vez que se genera una credencial dinámica usando el valor de ese contador, o el valor de una credencial dinámica generada previamente por el testigo para esa instancia y almacenado en la instancia. La variable dinámica también puede comprender un valor generado externamente que recibe el testigo, tal como un desafío generado por un servidor de aplicaciones o datos de transacción que necesitan firmarse y que se han proporcionado al testigo. Una variable dinámica también puede comprender cualquier combinación de valores generados interna y externamente. Por ejemplo, para evitar ataques de reproducción contra firmas de datos de transacción, un testigo puede usar una variable dinámica que comprende la combinación de datos de transacción y un valor de tiempo proporcionado por un reloj del testigo. En caso de que el testigo únicamente use valores generados internamente para la variable dinámica, la variable dinámica puede denominarse variable dinámica interna y la credencial dinámica generada puede denominarse 'contraseña de un solo uso'. En caso de que el testigo use una variable dinámica que comprende un desafío generado externamente, la variable dinámica generada puede denominarse 'respuesta'. En caso de que el testigo use una variable dinámica que comprende datos de transacción, la credencial dinámica generada puede denominarse 'firma de datos de transacción' o simplemente de manera abreviada 'firma'.
En algunas realizaciones, el testigo puede estar adaptado para presentar al usuario la credencial dinámica generada. En algunas realizaciones, el usuario puede enviar la credencial dinámica presentada a un servidor para su verificación. En algunas realizaciones, el testigo puede presentar la credencial dinámica al usuario de forma visual (por ejemplo, usando una pantalla). En algunas realizaciones, el testigo puede presentar la credencial dinámica al usuario de forma acústica (por ejemplo, usando un altavoz). En algunas realizaciones, la credencial dinámica presentada se puede codificar en el formato de una cadena de caracteres. En algunas realizaciones, la cadena únicamente puede comprender caracteres decimales. En algunas realizaciones, la cadena puede comprender caracteres alfanuméricos. En algunas realizaciones, la cadena puede comprender caracteres de un sistema de escritura no alfabético (tal como, por ejemplo, caracteres chinos);
Métodos para autenticar usuarios o transacciones usando testigos de múltiples instancias
En un aspecto de la invención, se proporciona un sistema para autenticar usuarios o transacciones o para asegurar la interacción entre una pluralidad de usuarios y una o más aplicaciones.
En algunas realizaciones, un método de acuerdo con la invención puede comprender las siguientes etapas.
Distribuir entre una pluralidad de usuarios una pluralidad de testigos como se describe con más detalle en cualquier otro sitio de esta descripción.
Asociar con al menos uno de estos usuarios al menos una instancia.
Cargar, como se describe con más detalle en cualquier otro sitio de esta descripción, la instancia en al menos un testigo.
Generar en el testigo, como se describe con más detalle en cualquier otro sitio de esta descripción, una credencial dinámica para la instancia cargada.
Recibir en una aplicación la credencial dinámica generada.
Verificar la validez de la credencial dinámica recibida.
Tomar en una aplicación la acción apropiada dependiendo del resultado de la etapa de verificación.
Sistemas para autenticar usuarios o transacciones por medio de testigos de múltiples instancias
En un aspecto de la invención, se proporciona un sistema para autenticar usuarios o transacciones o para asegurar la interacción entre una pluralidad de usuarios y una o más aplicaciones.
En una realización, un sistema de acuerdo con la invención puede comprender los siguientes componentes.
Uno o más ordenadores de servidor de aplicaciones. El uno o más ordenadores de servidor de aplicaciones pueden alojar una o más aplicaciones a las que una pluralidad de usuarios puede acceder de manera remota. Un ordenador de servidor de aplicaciones puede comprender, por ejemplo, un servidor web. La una o más aplicaciones pueden estar bajo el control de uno o más proveedores de aplicaciones.
Una pluralidad de dispositivos informáticos de cliente que pueden permitir que uno o más usuarios de la pluralidad de usuarios accedan de manera remota a la una o más aplicaciones. Un dispositivo informático cliente puede comprender, por ejemplo, un PC (ordenador personal), un ordenador de tableta o un teléfono inteligente.
Una red informática que conecta el uno o más ordenadores de servidor de aplicaciones y la pluralidad de dispositivos informáticos cliente. En algunas realizaciones, la red informática puede comprender Internet. En algunas realizaciones, la red informática puede comprender una red telefónica pública. En algunas realizaciones, la red informática puede comprender una red de telefonía inalámbrica.
Una pluralidad de testigos como se describe con más detalle en cualquier otro sitio de esta descripción. Los testigos pueden distribuirse entre la pluralidad de usuarios. En algunas realizaciones, los testigos pueden distribuirse entre los usuarios por el uno o más proveedores de aplicaciones.
Uno o más servidores de verificación de credenciales. En algunas realizaciones, cada uno de los uno o más servidores de verificación de credenciales está conectado a al menos uno del uno o más servidores de aplicaciones y puede estar configurado para verificar las credenciales dinámicas que una aplicación alojada por el uno o más servidores de aplicaciones conectados al servidor de verificación puede recibir de usuarios que interactúan con tal aplicación. En algunas realizaciones, cada uno de los servidores de aplicaciones puede estar conectado a al menos uno del uno o más servidores de verificación de credenciales y puede estar configurado para reenviar a uno del uno o más servidores de verificación de credenciales conectados las credenciales dinámicas recibidas por una aplicación que aloja desde un usuario que interactúa con la aplicación. Tras recibir una credencial dinámica de una aplicación, un servidor de verificación de credenciales puede recuperar datos asociados con la instancia para la que un testigo ha generado la credencial dinámica y usar esos datos para verificar criptográficamente la validez de la credencial dinámica recibida. El servidor de verificación de credenciales puede devolver una señal a la aplicación para indicar si la verificación fue exitosa. Si la señal indica que la verificación fue exitosa, la aplicación puede usar esa información para decidir si concede o no acceso al usuario (por ejemplo, a ciertos datos) o si realiza o no una cierta operación solicitada por el usuario.
Realizaciones de ejemplo
En los siguientes párrafos se describirá un conjunto de realizaciones de ejemplo de la invención.
En el siguiente conjunto de realizaciones de ejemplo, un fabricante de testigos proporciona una pluralidad de testigos de autenticación a un grupo de propietarios de aplicación. Los propietarios de aplicación pueden distribuir testigos entre sus usuarios. En otras realizaciones, los testigos pueden distribuirse (directa o indirectamente) a los usuarios por el proveedor de testigos. Estos usuarios pueden usar un testigo para acceder de forma segura a las aplicaciones proporcionadas por los diversos proveedores de aplicaciones. Por ejemplo, un usuario puede acceder de manera remota a una aplicación interactuando con un dispositivo informático cliente local que puede estar bajo el control del usuario (tal como un PC, ordenador portátil, tableta o teléfono inteligente) y el dispositivo informático local puede comunicarse de manera remota, por ejemplo, a través de una red informática tal como Internet, con un ordenador de servidor que aloja una aplicación a la que accede el usuario. Por ejemplo, un usuario puede usar una aplicación de explorador web en su dispositivo informático local para interactuar con una aplicación de banca por Internet basada en web alojada por un servidor web remoto. Para asegurar el acceso y la interacción de un usuario con las aplicaciones, un usuario puede usar un testigo que se distribuyó por uno de los propietarios de la aplicación. Mientras se accede a una aplicación, un usuario puede usar el testigo para generar credenciales dinámicas que el usuario reenvía, por ejemplo, a través del dispositivo informático local, al servidor de aplicaciones para su verificación. Tras la verificación exitosa de la credencial dinámica, el servidor de aplicaciones puede conceder el acceso o puede ejecutar la operación solicitada por el usuario. Por ejemplo, el usuario puede usar el testigo para generar una contraseña de un solo uso cuando inicia sesión en una aplicación de banca por Internet para revisar el saldo de una cuenta. El usuario también podrá usar el testigo para generar una firma sobre los datos de una transferencia de dinero que el usuario desea realizar a través de la aplicación de banca por Internet.
En algunas realizaciones, los testigos y los servidores de verificación de aplicaciones pueden haberse adaptado de modo que: múltiples usuarios pueden usar un único testigo, un usuario puede usar el mismo testigo para acceder a múltiples aplicaciones incluso si se proporcionan por diferentes proveedores de aplicaciones sin que los diferentes proveedores de aplicaciones tengan que compartir secretos o, de otra manera, tengan que confiar entre sí, y un usuario puede usar múltiples testigos para acceder a la misma aplicación. Esto tiene las siguientes ventajas: el coste total para que los proveedores de aplicaciones aseguren su aplicación se reduce ya que una parte importante de la infraestructura (es decir, los testigos) se puede compartir entre múltiples usuarios y múltiples propietarios de aplicaciones, hay una mayor comodidad para el usuario (es decir, mayor flexibilidad para el usuario) ya que un usuario puede usar múltiples dispositivos para acceder a la misma aplicación y puede usar el mismo dispositivo para acceder a múltiples aplicaciones y, a pesar de esta reducción de costes y mayor comodidad para el usuario, el nivel de seguridad que ofrece el sistema es tan alto como con los sistemas de seguridad convencionales basados en testigos de autenticación fuertes convencionales.
Más específicamente, los testigos pueden haberse adaptado para soportar múltiples instancias de modo que las diferentes instancias comprendidas en el mismo dispositivo pueden estar asociadas con diferentes usuarios y/o diferentes aplicaciones y de modo que las múltiples instancias asociadas con el mismo usuario y la misma aplicación pueden estar comprendidas en diferentes dispositivos. En algunas realizaciones específicas, las instancias pueden agruparse en grupos de instancias de usuarios, de modo que todas las instancias del mismo grupo de usuarios de instancias están asignadas al mismo usuario y están asociadas con la misma aplicación, y de modo que al menos un grupo de usuarios de instancias está asociado con cada usuario. En tales realizaciones, el sistema puede estar adaptado para garantizar que un único dispositivo no pueda comprender múltiples instancias del mismo grupo de instancias de usuario.
En algunas realizaciones, los testigos pueden agruparse en más de un lote. En algunas realizaciones, cada lote puede agrupar todos los testigos de un cierto tipo. Por ejemplo, en algunas realizaciones, puede haber dos lotes de testigos. Un lote puede comprender todos los testigos de hardware especializados (es decir, dispositivos electrónicos específicamente diseñados y fabricados para funcionar como los testigos descritos en esta descripción), mientras que otro lote puede comprender todos los testigos de software (es decir, aplicaciones de software que se ejecutan en plataformas informáticas de uso general que no han sido específicamente diseñadas para funcionar como testigos y cuyo uso principal puede ser diferente a la realización de las funciones de un testigo de autenticación fuerte, por ejemplo, teléfonos inteligentes que ejecutan una aplicación de autenticación). En otras realizaciones, puede haber múltiples proveedores de testigos y cada lote puede agrupar todos los testigos del mismo proveedor de testigos.
En algunas realizaciones, cada testigo puede tener un identificador de testigo único, en lo sucesivo denominado ID de dispositivo. En algunas realizaciones, el ID del dispositivo indica implícita o explícitamente el lote al que pertenece el testigo. Cada grupo de instancias de usuario puede tener un identificador de grupo de instancias de usuario único, en lo sucesivo denominado número de serie de grupo. Cada instancia puede tener un identificador de instancia único, en lo sucesivo denominado ID de instancia. En algunas realizaciones, el ID de instancia puede consistir en una combinación del número de serie de grupo del grupo de instancias de usuario al que pertenece la instancia y un número de secuencia que es único dentro del grupo de instancias de usuario.
El sistema puede usar las siguientes claves criptográficas:
Claves maestras de lote
Con cada lote de testigos diferente se puede asociar una clave maestra de lote secreta diferente. En algunas realizaciones, estas claves maestras de lote pueden generarse por el proveedor de testigos y el proveedor de testigos puede cargar la clave maestra de lote apropiada en los testigos del lote con el que está asociada la clave maestra de lote antes de que el proveedor de testigos proporcione los testigos a los proveedores de aplicaciones o a los usuarios. En algunas realizaciones, cada clave maestra de lote puede ser conocida únicamente por el proveedor de testigos y los testigos del lote con el que está asociada la clave maestra de lote. En algunas realizaciones, hay al menos dos lotes de testigos diferentes con una clave maestra de lote diferente.
Clave maestra de grupo de instancias de usuario
Con cada grupo de instancias de usuario se puede asociar una clave maestra de grupo de instancias de usuario secreta. La clave maestra de grupo de instancias de usuario se puede usar para asegurar la carga de instancias del grupo de instancias de usuario en testigos, como se explica con más detalle en cualquiera otra parte de esta descripción.
Claves de carga útil de instancia
Con cada instancia se puede asociar un conjunto de una o más claves de carga útil secretas. Estas claves de carga útil se usarán para proteger al menos algunos mensajes y comandos que se intercambiarán entre un servidor de aplicaciones al que está asociada la instancia y un testigo que comprende la instancia. En algunas realizaciones, las claves de carga útil de una instancia pueden ser secretos compartidos que se comparten entre una instancia a la que están asociados y un servidor, y pueden usarse para parametrizar algoritmos criptográficos simétricos para asegurar los mensajes. En algunas realizaciones, todas las instancias del mismo grupo de instancias de usuario comparten los mismos valores para las claves de carga útil, de modo que un servidor puede generar mensajes criptográficamente protegidos que, sin embargo, pueden recibir todas las instancias del mismo grupo de instancias de usuario. Esto, a su vez, tiene la ventaja de que es suficiente que un usuario se identifique en la aplicación y que el usuario no tiene que identificar en la aplicación el testigo que pretende usar antes de recibir un mensaje de servidor que puede iniciar una operación de testigo, tal como la generación de credenciales dinámicas para la aplicación. En algunas realizaciones, cualquier testigo puede comprender como máximo una instancia de testigo del mismo grupo de instancias de usuario. En algunas realizaciones, las instancias pueden tener más de una clave de carga útil diferente, de modo que las diferentes claves de carga útil pueden usarse para diferentes propósitos. Por ejemplo, se puede usar una clave de carga útil para garantizar la confidencialidad de los mensajes (por ejemplo, encriptando o desencriptando mensajes), mientras que se puede usar otra clave de carga útil para garantizar la autenticación y/o la integridad de los mensajes (por ejemplo, generando o verificando firmas de MAC sobre mensajes).
En algunas realizaciones, los datos de instancia almacenados en un testigo pueden comprender los valores reales de las claves de carga útil. En algunas realizaciones, los datos de instancia almacenados en un testigo pueden comprender los valores de los elementos de datos que el testigo puede usar para determinar los valores de las claves de carga útil de esa instancia cuando el testigo necesita esos valores de las claves de carga útil.
Claves de generación de credenciales de instancia
Con cada instancia se puede asociar un conjunto de una o más claves de generación de credenciales secretas. Estas claves de generación de credenciales secretas pueden usarse por el testigo para generar credenciales dinámicas para la instancia a la que están asociadas. En algunas realizaciones, las claves de generación de credenciales secretas de una instancia pueden ser secretos compartidos entre la instancia a la que están asociados y un servidor (tal como un servidor de aplicaciones o un servidor de verificación de credenciales) y pueden usarse para parametrizar un algoritmo criptográfico simétrico para generar credenciales dinámicas. En algunas realizaciones, las claves de generación de credenciales son las mismas para más de una instancia del mismo grupo de instancias de usuario. En algunas realizaciones, tienen el mismo valor para todas las instancias del mismo grupo de instancias de usuario. En algunas realizaciones, estas claves de generación de credenciales son únicas para cada instancia para aumentar la seguridad (es decir, si una instancia de un grupo de instancias de usuario se ve comprometida, las otras instancias del mismo grupo de instancias de usuario no se ven comprometidas automáticamente). En algunas realizaciones, estas claves de generación de credenciales únicamente son conocidas por la instancia o las instancias a las que están asociadas y el servidor de aplicaciones al que están asociadas las instancias. En algunas realizaciones, una instancia puede tener más de una clave de generación de credenciales diferente, de modo que las diferentes claves de generación de credenciales pueden usarse para diferentes propósitos. Por ejemplo, en algunas realizaciones, se pueden usar diferentes claves de generación de credenciales para generar diferentes tipos de credenciales. Por ejemplo, en algunas realizaciones, se puede usar una clave de generación de credenciales para generar contraseñas de un solo uso (por ejemplo, para autenticar a un usuario que intenta iniciar sesión), mientras que se puede usar otra clave de generación de credenciales para generar una firma (por ejemplo, para autenticar una transacción enviada por un usuario).
En algunas realizaciones, los datos de instancia almacenados en un testigo pueden comprender los valores reales de las claves de generación de credenciales. En algunas realizaciones, los datos de instancia almacenados en un testigo pueden comprender los valores de los elementos de datos que el testigo puede usar para determinar los valores de las claves de generación de credenciales de esa instancia cuando el testigo necesita esos valores de las claves de generación de credenciales.
Cargar instancias
En algunas realizaciones, las instancias pueden cargarse en testigos por medio del siguiente proceso de dos etapas.
Primera etapa de proceso de carga de instancia
En una primera etapa, se genera un primer mensaje de carga de grupo de instancias de usuario (o primer mensaje de carga o primer mensaje de carga de etapa) para un grupo de instancias de usuario particular. Este primer mensaje de carga puede usarse para cargar todas las instancias de este grupo de instancias de usuario particular. Este mensaje puede comprender datos suficientes para que el testigo objetivo determine el valor de la clave maestra de grupo de instancias de usuario asociada con ese grupo de instancias de usuario particular. Estos datos se denominarán datos de transferencia de clave maestra de grupo de instancias de usuario. En algunas realizaciones, la carga de la clave maestra de grupo de instancias de usuario en el testigo se puede asegurar usando una clave criptográfica relacionada con la clave maestra de lote del testigo. En algunas realizaciones, un testigo puede determinar el valor de la clave maestra de grupo de instancias de usuario combinando criptográficamente los datos de transferencia de la clave maestra de grupo de instancias de usuario con la clave maestra de lote que ya se había cargado en el testigo. Como tal, los datos de transferencia de clave maestra de grupo de instancias de usuario pueden ser una función de la clave maestra de grupo de instancias de usuario y la clave maestra de lote del testigo objetivo. Por ejemplo, en algunas realizaciones, los datos de transferencia de clave maestra de grupo de instancias de usuario en el primer mensaje de carga de grupo de instancias de usuario pueden comprender la clave maestra de grupo de instancias de usuario encriptada con la clave maestra de lote del testigo objetivo.
En algunas realizaciones, el primer mensaje de carga de grupo de instancias de usuario puede generarse por un servidor de carga de instancias. En algunas realizaciones, un servidor de aplicaciones también puede ser un servidor de carga de instancias, o un servidor de carga de instancias puede estar incluido en un servidor de aplicaciones.
En algunas realizaciones, el mismo primer mensaje de carga se puede usar con cualquier testigo de cualquier lote. Por ejemplo, en algunas realizaciones, los datos de transferencia de clave maestra de grupo de instancias de usuario pueden comprender diferentes valores relacionados con el lote, un valor para cada lote, de modo que cada valor diferente relacionado con el lote puede ser una función de la clave maestra de grupo de instancias de usuario y la clave maestra de lote del lote con el que está relacionado el valor, de modo que todos los testigos que reciben el primer mensaje de carga que comprende la clave maestra de grupo de instancias de usuario transfieren datos con todos estos valores relacionados con el lote pueden determinar el mismo valor para la clave maestra de grupo de instancias de usuario combinando criptográficamente su clave maestra de lote con el valor correspondiente a su lote. Por ejemplo, en algunas realizaciones, cada valor relacionado con el lote comprende la clave maestra de grupo de instancias de usuario encriptada por la clave maestra de lote con el que está relacionado el valor relacionado con el lote, y el primer mensaje de carga puede comprender todos los valores relacionados con el lote, y los testigos se pueden adaptar para desencriptar el valor relacionado con el lote correspondiente a su lote con su clave maestra de lote, de modo que todos los testigos que reciben el primer mensaje de carga terminan con el mismo valor para la clave maestra de grupo de instancias de usuario. De esta forma, un usuario particular puede usar el mismo primer mensaje de carga para iniciar la carga de una instancia del grupo de instancias de usuario asociado con ese usuario en cualquier testigo que el usuario desee. En algunas realizaciones, el mismo primer mensaje de carga se puede reutilizar con una pluralidad de testigos diferentes. De esta forma, un usuario particular puede reutilizar el mismo primer mensaje de carga para iniciar la carga de instancias del grupo de instancias de usuario asociado con ese usuario en más de un testigo.
En algunas realizaciones, las claves maestras de grupo de instancias de usuario pueden generarse por el proveedor de testigos y suministrarse por el proveedor de testigos a los proveedores de aplicaciones. En algunas realizaciones, el proveedor de testigos también puede generar los valores relacionados con el lote y suministrarlos a los proveedores de aplicaciones. En otras realizaciones, los valores de las claves maestras de grupo de instancias de usuario pueden elegirse por los respectivos proveedores de aplicaciones y los valores relacionados con el lote pueden generarse por una parte confiable que tiene acceso a los valores de las claves maestras de lote y proporcionarlos a los proveedores de aplicaciones apropiados.
En algunas realizaciones, el primer mensaje de carga se proporciona al usuario asociado con el grupo de instancias de usuarios por medio de algún canal de comunicación que puede considerarse suficientemente seguro, de modo que el usuario puede proporcionarlo a un testigo de su elección. Por ejemplo, en algunas realizaciones, los testigos pueden comprender una interfaz de entrada de datos adaptada para capturar y decodificar códigos de barras bidimensionales y el primer mensaje de carga puede enviarse al usuario en forma de correo electrónico que contiene el código de barras o en forma de carta con el código de barras impreso en la misma y enviarse, por ejemplo, por correo certificado.
Después de que un testigo haya recibido el primer mensaje de carga y el testigo haya determinado el valor de la clave maestra de grupo de instancias de usuario, el testigo puede generar un primer código de confirmación de carga que el testigo puede presentar, por ejemplo, al usuario para que lo reenvíe al servidor de aplicaciones para indicar al servidor de aplicaciones que el primer mensaje de carga se recibió y procesó con éxito. En algunas realizaciones, el primer código de confirmación de carga puede comprender datos que permitirán que el servidor de aplicaciones determine la identidad del testigo. Por ejemplo, el primer código de confirmación de carga puede comprender el ID de dispositivo del testigo. En algunas realizaciones, el primer código de confirmación de carga puede comprender datos generados criptográficamente que demuestran al servidor de aplicaciones que el testigo, de hecho, ha determinado con éxito el valor correcto de la clave maestra de grupo de instancias de usuario. Por ejemplo, el primer código de confirmación de carga puede comprender una respuesta que genera el testigo combinando criptográficamente un valor presente en el primer mensaje de carga con el valor que determinó el testigo para la clave maestra de grupo de instancias de usuario.
Segunda etapa de proceso de carga de instancia
En una segunda etapa de proceso de carga de la instancia, se puede generar un segundo mensaje de carga (o segundo mensaje de carga de etapa). El segundo mensaje de carga se puede usar para transferir al testigo algunos datos que el testigo puede usar para determinar algunos valores secretos de la instancia, tales como el conjunto de claves de carga útil y el conjunto de claves de generación de credenciales asociadas con la instancia. En algunas realizaciones, el testigo puede determinar estos datos a transferir o estos mismos valores secretos como una función de los datos recibidos en el segundo mensaje de carga y la clave maestra de grupo de instancias de usuario de la instancia. El segundo mensaje de carga puede asegurarse criptográficamente usando la clave maestra de grupo de instancias de usuario de la instancia, por ejemplo, para proteger la confidencialidad y/o la integridad y/o la autenticidad de los datos en el mensaje, tal como los datos que el testigo puede usar para determinar datos de instancias confidenciales de seguridad, tales como las claves de carga útil o las claves de generación de credenciales. En algunas realizaciones, la clave maestra de grupo de instancias de usuario se puede usar directamente para proteger el segundo mensaje de carga (por ejemplo, mediante la encriptación del contenido del segundo mensaje de carga con la clave maestra de grupo de instancias de usuario). En algunas realizaciones, la clave maestra de grupo de instancias de usuario puede usarse directamente para asegurar el segundo mensaje de carga; por ejemplo, en algunas realizaciones, una clave criptográfica puede derivarse de la clave maestra de grupo de instancias de usuario y esa clave derivada puede usarse para asegurar el segundo mensaje de carga (por ejemplo, para encriptar el contenido del segundo mensaje de carga). Por ejemplo, en algunas realizaciones, el segundo mensaje de carga puede comprender una clave de carga útil y una clave de generación de credenciales de una instancia encriptada con la clave maestra de grupo de instancias de usuario de esa instancia o encriptada con una clave derivada de la clave maestra de grupo de instancias de usuario de esa instancia. En algunas realizaciones, el segundo mensaje de carga puede estar dirigido a un testigo individual específico. En algunas realizaciones, el segundo mensaje de carga puede vincularse criptográficamente a un testigo individual específico, de modo que un testigo particular que recibe el segundo mensaje de carga puede determinar si es de hecho el testigo específico al que se dirige el segundo mensaje de carga. Por ejemplo, en algunas realizaciones, el segundo mensaje de carga puede comprender un MAC a través del ID de dispositivo de modo que ese MAC se genera con la clave maestra de grupo de instancias de usuario, o los datos comprendidos en el segundo mensaje de carga encriptado con la clave maestra de grupo de instancias de usuario también pueden comprender el ID de dispositivo. En algunas realizaciones, el segundo mensaje de carga puede protegerse criptográficamente (por ejemplo, encriptado o proporcionado con un MAC o una firma sobre el contenido del mensaje) usando una clave criptográfica que puede derivarse del ID de dispositivo del testigo y la clave maestra de grupo de instancias de usuario.
En algunas realizaciones, todas las instancias del mismo grupo de instancias de usuario comparten los mismos valores para uno o más de los secretos de carga útil para asegurar los mensajes intercambiados entre un servidor y un testigo que comprende una de estas instancias. En algunas realizaciones, todas las instancias del mismo grupo de instancias de usuario comparten los mismos secretos de carga útil para asegurar mensajes enviados desde un servidor a un testigo que comprende una de estas instancias. En algunas realizaciones, los valores de uno o más de los secretos de generación de credenciales pueden compartirse por todas las instancias del mismo grupo de instancias de usuario. En algunas realizaciones, los valores de al menos uno o algunos o todos los secretos de generación de credenciales de una instancia pueden ser únicos para esa instancia. En algunas realizaciones, los valores de al menos uno o algunos o todos los secretos de carga útil de una instancia pueden ser únicos para esa instancia. Por ejemplo, en algunas realizaciones, las claves de carga útil para asegurar los mensajes generados por un testigo para una instancia particular y destinados a un servidor pueden ser únicos para esa instancia.
En algunas realizaciones, los valores de las claves de carga útil y/o los valores de las claves de generación de credenciales se eligen por el proveedor de la aplicación asociado con el grupo de instancias de usuario al que pertenece la instancia (que está asociada con las claves de carga útil y las claves de generación de credenciales). En otras realizaciones, el proveedor de testigos puede elegir los valores de las claves de carga útil y/o los valores de las claves de generación de credenciales y suministrarlos al proveedor de aplicaciones apropiado.
En algunas realizaciones, el segundo mensaje de carga se proporciona al usuario asociado con la instancia por medio de algún canal de comunicación que puede considerarse suficientemente seguro, de modo que el usuario pueda proporcionarlo al testigo objetivo. Por ejemplo, en algunas realizaciones, el segundo mensaje de carga se puede proporcionar al usuario en una sesión web durante la que el usuario devolvió el primer código de confirmación de carga. En algunas realizaciones, se puede requerir que el usuario se autentique antes de recibir el segundo mensaje de carga. Por ejemplo, si el usuario ya había recibido otra instancia anteriormente, se le puede requerir que proporcione una contraseña de un solo uso generada con esa otra instancia.
Después de que el testigo objetivo haya recibido el segundo mensaje de carga y el testigo haya determinado los valores de los datos de la instancia, el testigo puede generar un segundo código de confirmación de carga que el testigo puede presentar, por ejemplo, al usuario para que lo reenvíe al servidor de aplicaciones para indicar al servidor de aplicaciones que el segundo mensaje de carga se recibió y procesó con éxito y que la instancia se cargó con éxito. Por ejemplo, el segundo código de confirmación de carga puede comprender una contraseña de un solo uso generada por el testigo con las claves de generación de credenciales de la instancia cargada.
En algunas realizaciones, un testigo de autenticación puede estar adaptado para aceptar la carga de no más de dos instancias del mismo grupo de instancias de usuario. En algunas realizaciones, un primer mensaje de carga puede comprender un elemento de datos que identifica el grupo de instancias de usuario asociado con este primer mensaje de carga. En algunas realizaciones, un segundo mensaje de carga puede comprender un elemento de datos que identifica el grupo de instancias de usuario de la instancia asociada con este segundo mensaje de carga. En algunas realizaciones, un segundo mensaje de carga puede comprender un elemento de datos que identifica la instancia asociada con este segundo mensaje de carga. En algunas realizaciones, el segundo mensaje de carga puede comprender un elemento de datos que permite que el testigo de autenticación que recibe el segundo mensaje de carga vincule el segundo mensaje de carga recibido con un primer mensaje de carga recibido anteriormente. En algunas realizaciones, se puede adaptar un testigo de autenticación para rechazar un segundo mensaje de carga que no se puede vincular a un primer mensaje de carga correspondiente anterior.
Fase operativa
Una vez que la instancia se ha cargado con éxito en el testigo objetivo, la instancia entra en la fase operativa. El testigo con la instancia ahora puede recibir mensajes o comandos dirigidos a la instancia y actuar sobre ellos. En algunas realizaciones, los mensajes o comandos dirigidos a instancias pueden asegurarse con las claves de carga útil asociadas con las instancias dirigidas. Por ejemplo, el testigo puede generar una credencial dinámica, que comprende, por ejemplo, una firma de datos de transacción, usando las claves de generación de credenciales de la instancia cargada en respuesta a la recepción de un comando de firma de datos de transacción que comprende datos a firmar y a asegurar con las claves de carga útil correspondientes a la instancia cargada.
Por ejemplo, en algunas realizaciones, la aplicación puede generar y comunicar al testigo un comando de generación de credenciales. En algunas realizaciones, el comando de generación de credenciales se puede autenticar usando una o más claves de carga útil que se pueden asociar con una instancia particular o con un grupo de instancias de usuario particular. Por ejemplo, el comando de generación de credenciales se puede firmar o usar MAC con una clave de carga útil y el contenido del comando de generación de credenciales se puede encriptar con otra clave de carga útil. Tras recibir el comando de generación de credenciales, el testigo puede recuperar o determinar las claves de carga útil aplicables. Si es aplicable, el testigo puede autenticar el comando de generación de credenciales recibido, por ejemplo, mediante la verificación de una firma o MAC con la clave de carga útil aplicable. Si falla la autenticación del comando de generación de credenciales recibido, el testigo puede rechazar el comando de generación de credenciales recibido. Tras rechazar el comando de generación de credenciales recibido, el testigo puede emitir un mensaje de error para el usuario. Si es aplicable, el testigo puede desencriptar el contenido del comando de generación de credenciales recibido. El testigo puede determinar y seleccionar la instancia a la que está destinada la generación de credenciales recibidas, como se explica con más detalle en cualquier otro sitio de esta descripción. Si el testigo no puede determinar y seleccionar una de las instancias comprendidas en el testigo como la instancia a la que se dirige el mensaje de generación de credenciales recibido, a continuación, el testigo puede rechazar el comando de generación de credenciales recibido. Tras rechazar el comando de generación de credenciales recibido, el testigo puede emitir un mensaje de error para el usuario. Si el comando de generación de credenciales recibido contiene datos de transacción a firmar, a continuación, el testigo puede presentar los datos de transacción al usuario y solicitar al usuario que apruebe o rechace la transacción. Si el usuario rechaza los datos de transacción presentados, el testigo puede rechazar el comando de generación de credenciales recibido. Si se acepta el mensaje de generación de credenciales recibido, el testigo puede generar una credencial dinámica conforme al contenido del mensaje de generación de credenciales recibido y usando la clave de generación de credenciales apropiada de la instancia seleccionada. Por ejemplo, si el mensaje de generación de credenciales recibido indica que se debe generar una contraseña de un solo uso, a continuación, el testigo puede generar una contraseña de un solo uso. Si el mensaje de generación de credenciales recibido comprende un desafío, a continuación, el testigo puede generar una respuesta. Si el mensaje de generación de credenciales recibido comprende datos de transacción, a continuación, el testigo puede generar una firma sobre estos datos de transacción. En algunas realizaciones, a continuación, el testigo puede presentar la credencial generada al usuario para que el usuario la reenvíe a la aplicación. En algunas realizaciones, el testigo puede generar un mensaje de respuesta de generación de credenciales que comprende la credencial generada y enviar este un mensaje de respuesta de generación de credenciales. La aplicación podrá, tras recibir la credencial generada, verificar la credencial generada recibida.
En algunas realizaciones alternativas, la carga de la instancia en un testigo particular se puede realizar con un único mensaje de carga. En algunas realizaciones, ese mensaje de carga único está dirigido a un testigo particular y únicamente se puede usar con ese testigo particular. En algunas realizaciones, ese único mensaje de carga está criptográficamente vinculado a ese testigo particular, como se explicó anteriormente con más detalle. En otras realizaciones, ese único mensaje de carga se puede usar con todos los testigos.
En algunas realizaciones, hay más de un proveedor de testigos. En algunas realizaciones, las claves maestras de lote no se generan ni son conocidas por los proveedores de testigos. En algunas realizaciones, las claves maestras de lote se generan y son conocidas únicamente por un tercero confiable que se encarga de todas las operaciones no realizadas por un testigo y que requieren el conocimiento de una clave maestra de lote. En algunas realizaciones, los proveedores de testigos inicializan los testigos que proporcionan con una clave maestra de proveedor de testigos. En algunas realizaciones, las claves maestras de lote apropiadas se cargan en los testigos por medio de mensajes que se aseguran usando las claves maestras de proveedor de testigos presentes en estos testigos. En algunas realizaciones, esta carga de las claves maestras de lote ocurre antes de la distribución de los testigos entre los usuarios. En algunas realizaciones, los proveedores de testigos suministran su clave maestra de proveedor de testigos a la parte confiable.
Breve descripción de los dibujos
Las anteriores y otras características y ventajas de la presente invención serán evidentes a partir de la siguiente descripción, más concreta, de las realizaciones de la invención, como se ilustra en los dibujos adjuntos.
La Figura 1 ilustra esquemáticamente un aparato de ejemplo de acuerdo con un aspecto de la invención.
La Figura 2 ilustra esquemáticamente un sistema de ejemplo de acuerdo con un aspecto de la invención.
La Figura 3 ilustra esquemáticamente un método de ejemplo de acuerdo con un aspecto de la invención.
Descripción detallada
A continuación, se analizan algunas implementaciones de la presente invención. Si bien se analizan implementaciones específicas, debería entenderse que esto se hace para propósitos de ilustración únicamente. Un experto en la materia reconocerá que pueden usarse otros componentes y configuraciones sin alejarse del espíritu y alcance de la invención. Se proporcionan diversos detalles específicos para permitir una comprensión completa de la invención. Sin embargo, un experto en la materia entenderá que la presente invención se puede poner en práctica sin estos detalles específicos. En otros casos, métodos, procedimientos, componentes, y circuitos bien conocidos no se han descrito en detalle para no oscurecer la presente invención. Diversas modificaciones a las realizaciones descritas serán evidentes para los expertos en la materia, y los principios generales de las realizaciones descritas en detalle a continuación pueden aplicarse a otras realizaciones.
La Figura 1 ilustra esquemáticamente un aparato de ejemplo (100) de la invención de acuerdo con un aspecto de la invención. El aparato de la figura 1 comprende un testigo de autenticación fuerte En algunas realizaciones, el testigo de autenticación fuerte se adapta para generar credenciales dinámicas en nombre de un usuario. En algunas realizaciones, las credenciales dinámicas generadas por el testigo de autenticación fuerte pueden comprender, por ejemplo, contraseñas de un solo uso y/o firmas electrónicas sobre, por ejemplo, datos de transacción y/o respuestas a desafíos.
Múltiples instancias
En algunas realizaciones, el testigo de autenticación fuerte está adaptado para soportar múltiples (es decir, más de una) instancias, cada una de las cuales puede estar asociada con un usuario diferente. En algunas realizaciones, cada instancia puede comprender datos que el testigo puede usar para determinar, por ejemplo, claves criptográficas, tales como una o más claves de generación de credenciales criptográficas que el testigo puede usar para generar una credencial dinámica en nombre del usuario asociado con esa instancia. Consúltese la explicación anterior para obtener más detalles sobre los datos que pueden incluirse en una instancia, cómo los testigos pueden usar instancias, sobre la gestión y el ciclo de vida de las instancias, y sobre las diversas relaciones entre instancias, testigos y usuarios.
Procesador (150) y memoria (160).
El testigo puede comprender un componente de procesamiento de datos digitales (150) que puede estar adaptado para ejecutar un conjunto de instrucciones de procesamiento de datos, por ejemplo, para implementar una o más de las funciones atribuidas a los testigos descritos en el presente documento. En algunas realizaciones, el componente de procesamiento de datos (150) puede comprender, por ejemplo, uno o más microprocesadores, microcontroladores, chips de procesadores de señales digitales (DSP), matrices de puertas programables en campo (FPGA), etcétera.
El testigo puede comprender un componente de memoria (160). El componente de memoria (160) puede estar conectado al componente de procesamiento de datos digitales (150). En algunas realizaciones, el componente de memoria puede comprender un componente de memoria de programa que está adaptado para almacenar software o firmware para ser ejecutado por el componente de procesamiento de datos. En alguna realización, la funcionalidad que soporta el testigo puede definirse mediante el software o firmware almacenado en su memoria.
En algunas realizaciones, el componente de memoria (160) puede comprender un componente de memoria de datos que está adaptado para almacenar datos de forma permanente o temporal. En algunas realizaciones, el componente de memoria de datos puede estar adaptado para almacenar de forma segura datos secretos tales como claves criptográficas o datos de referencia de PIN o contraseña. En algunas realizaciones, el componente de memoria de datos puede estar adaptado para almacenar los datos de múltiples instancias.
El componente de memoria puede comprender, por ejemplo, memoria RAM (memoria de acceso aleatorio), memoria ROM (memoria de solo lectura), memoria EPROM (memoria de solo lectura programable y borrable), memoria programable de una sola vez, memoria flash, memoria de estado sólido, un disco duro, etc.
Interfaz de usuario (120, 130)
En algunas realizaciones, el testigo de autenticación fuerte puede comprender una interfaz de usuario (120, 130) para interactuar con un usuario, por ejemplo, para intercambiar datos, información y/o comandos con un usuario. La interfaz de usuario (120, 130) puede estar conectada al componente de procesamiento de datos digitales (150).
En algunas realizaciones, la interfaz de usuario del testigo de autenticación fuerte puede comprender una interfaz de usuario de salida (130) para presentar información y/o datos a un usuario del testigo de autenticación fuerte. En algunas realizaciones, la interfaz de usuario de salida puede comprender, por ejemplo, una pantalla (130) o una interfaz de salida de audio. En algunas realizaciones, la interfaz de usuario del testigo de autenticación fuerte puede comprender una interfaz de usuario de entrada (120) para recibir entradas de un usuario como, tales como, por ejemplo, datos de entrada (como un desafío o datos de transacción) o instrucciones (como una confirmación o cancelación) o un PIN. En algunas realizaciones, la interfaz de usuario de entrada puede comprender, por ejemplo, un teclado (120). En algunas realizaciones, la interfaz de usuario del testigo de autenticación fuerte puede comprender una pantalla táctil que puede estar adaptada para ofrecer tanto las funciones de una interfaz de salida de usuario como una interfaz de entrada de usuario.
Interfaz de entrada de datos (140)
En algunas realizaciones, el testigo de autenticación fuerte puede comprender una interfaz de entrada de datos digitales. La interfaz de entrada de datos (140) puede estar conectada al componente de procesamiento de datos digitales (150). En algunas realizaciones, la interfaz de entrada de datos digitales del testigo de autenticación fuerte puede estar adaptada para recibir mensajes de datos digitales. En algunas realizaciones, la interfaz de entrada de datos puede comprender un componente de adquisición de imágenes ópticas (140). En algunas realizaciones, el componente de adquisición de imágenes ópticas puede comprender una cámara. En algunas realizaciones, el testigo de autenticación fuerte puede estar adaptado para capturar con el componente de adquisición de imágenes ópticas que se pueden codificar con un mensaje de datos digitales. En algunas realizaciones, la imagen puede comprender un código de barras bidimensional. En algunas realizaciones, el formato de la imagen puede definirse en una norma. Por ejemplo, en algunas realizaciones, la imagen óptica puede ser un código QR.
En otras realizaciones, la interfaz de entrada de datos digitales puede comprender una interfaz acústica adaptada para capturar señales acústicas que pueden codificarse con unos mensajes o comandos para el testigo. En algunas realizaciones, la interfaz acústica puede comprender un micrófono. En algunas realizaciones, la interfaz acústica puede comprender un convertidor de analógico a digital para convertir la señal electrónica analógica en una señal digital que puede procesarse, además, por ejemplo, por el componente de procesamiento de datos digitales analizado anteriormente.
En algunas realizaciones, el testigo de autenticación fuerte puede comprender una interfaz de salida de datos (141). La interfaz de salida de datos (141) puede estar conectada al componente de procesamiento de datos digitales (150). En algunas realizaciones, la interfaz de salida de datos digitales del testigo de autenticación fuerte puede estar adaptada para enviar mensajes de datos digitales. Por ejemplo, en alguna realización, el testigo de autenticación puede comprender una interfaz de datos bidireccional que puede estar adaptada para recibir y enviar mensajes, es decir, una interfaz de datos que combina una interfaz de entrada de datos y una interfaz de salida de datos. Por ejemplo, en algunas realizaciones, el testigo puede comprender una interfaz de datos que comprende una interfaz de comunicación de datos inalámbrica, tal como una interfaz de comunicación de datos móviles o una interfaz Bluetooth®, que incluye una antena y un conjunto de chips apropiado. En algunas realizaciones, el testigo puede comprender una interfaz de datos que puede comprender, por ejemplo, una interfaz de bus serie universal (USB) que incluye un conector USB y un conjunto de chips.
En otras realizaciones, el testigo de autenticación fuerte puede no comprender una interfaz de salida de datos para emitir en formato digital un mensaje de datos digitales que comprende una credencial dinámica generada y la única forma de emitir una credencial dinámica generada es presentándola al usuario usando la interfaz de usuario de salida.
Mensajes de comando de testigo
En algunas realizaciones, el testigo de autenticación fuerte puede estar adaptado para procesar y actuar sobre los mensajes de datos que puede recibir. En algunas realizaciones, el testigo de autenticación fuerte puede estar adaptado para recibir, procesar y actuar sobre un mensaje para cargar una instancia en el testigo. En algunas realizaciones, el testigo de autenticación fuerte puede estar adaptado para recibir, procesar y actuar sobre un mensaje que contiene datos de transacción a firmar. En algunas realizaciones, el testigo de autenticación fuerte puede estar adaptado para recibir, procesar y actuar sobre un mensaje que solicita al testigo de autenticación fuerte que genere una contraseña de un solo uso. En algunas realizaciones, el testigo de autenticación fuerte puede estar adaptado para recibir, procesar y actuar sobre un mensaje que contiene un valor de desafío y solicita al testigo de autenticación fuerte que calcule criptográficamente un valor de respuesta usando el valor de desafío recibido y un secreto almacenado en el testigo de autenticación fuerte.
En algunas realizaciones, un mensaje de datos recibido por el testigo de autenticación fuerte puede estar destinado a una instancia particular soportada por el testigo de autenticación fuerte. En algunas realizaciones, el testigo de autenticación fuerte está adaptado para detectar a qué instancia está destinado un mensaje de datos recibido. En algunas realizaciones, un mensaje de datos recibido puede comprender una instancia de destino que indica un elemento de datos que puede dar una indicación de la instancia a la que está destinado el mensaje.
Más detalles sobre los mensajes de datos digitales que un testigo puede recibir, procesar y actuar sobre ellos y sobre cómo un testigo puede determinar a qué instancia está destinado un mensaje de datos recibido pueden encontrarse en cualquier otro sitio de esta descripción.
Generación de credenciales
El testigo puede estar adaptado para generar credenciales dinámicas como se explica con más detalle en cualquier otro sitio de esta descripción. En algunas realizaciones, el componente de procesamiento de datos (150) puede estar adaptado para realizar cálculos criptográficos para generar las credenciales dinámicas. En algunas realizaciones, el testigo puede estar adaptado para generar credenciales dinámicas usando claves criptográficas que pueden almacenarse de forma permanente o temporal en el componente de memoria (160) o que el testigo puede derivar a partir de datos almacenados de forma permanente o temporal en el componente de memoria (160). En algunas realizaciones, el testigo puede estar adaptado para generar credenciales dinámicas usando datos que forman parte de una instancia almacenada en el componente de memoria (160). En algunas realizaciones, el testigo puede estar adaptado para usar un algoritmo criptográfico simétrico para generar las credenciales dinámicas. En algunas realizaciones, este algoritmo criptográfico para generar credenciales dinámicas puede parametrizarse con una o más claves de generación de credenciales criptográficas secretas simétricas. En algunas realizaciones, estas claves de generación de credenciales pueden estar asociadas con una instancia comprendida en el testigo. En algunas realizaciones, las claves de generación de credenciales de una instancia pueden compartirse con un servidor, tal como, por ejemplo, un servidor de verificación de credenciales.
En algunas realizaciones, el testigo puede estar adaptado para generar credenciales dinámicas usando una variable dinámica que puede comprender un valor interno proporcionado por el testigo Por ejemplo, en algunas realizaciones, el testigo puede comprender un reloj (170) y el testigo puede usar como valor interno el valor de tiempo proporcionado por ese reloj. En algunas realizaciones, el testigo puede mantener un contador como parte de los datos de una instancia y el testigo puede estar adaptado para usar el valor de ese contador como un valor interno para generar una credencial dinámica para esa instancia y actualizar el valor de ese contador (por ejemplo, incrementando o disminuyendo) cada vez que el testigo usa el valor de ese contador para generar una credencial dinámica.
En algunas realizaciones, el testigo puede estar adaptado para generar credenciales dinámicas usando una variable dinámica que puede comprender un valor externo proporcionado al testigo. En algunas realizaciones, un valor externo de este tipo puede comprender un desafío generado por un servidor o datos de transacción a firmar. En algunas realizaciones, el usuario puede proporcionar manualmente el valor externo al testigo usando la interfaz de entrada de usuario del testigo. Por ejemplo, el testigo puede capturar un desafío o datos de transacción que el usuario puede introducir como una cadena de caracteres en un teclado comprendido en el testigo. En algunas realizaciones, el valor externo se proporciona comprendido en un mensaje o comando que se recibe por el testigo por medio de su interfaz de entrada de datos.
En algunas realizaciones, el testigo puede estar adaptado para presentar al usuario la credencial dinámica generada. Por ejemplo, en algunas realizaciones, el testigo puede mostrar la credencial dinámica generada como una cadena de caracteres legibles en su pantalla. En algunas realizaciones, la cadena puede comprender únicamente caracteres decimales. En otras realizaciones, la cadena puede comprender caracteres alfanuméricos.
Testigo de hardware especializado seguro
En algunas realizaciones, el testigo (100) es un dispositivo de hardware especializado. En algunas realizaciones, el testigo puede estar especializado para usarse en métodos para asegurar el acceso de un usuario a una aplicación o para asegurar la interacción de un usuario con una aplicación de este tipo. En algunas realizaciones, el objetivo principal del dispositivo de autenticación es usarse en métodos para asegurar el acceso de un usuario a una aplicación o para asegurar la interacción de un usuario con una aplicación de este tipo. En algunas realizaciones, para garantizar la especialización del dispositivo de autenticación a su uso como dispositivo de seguridad, el dispositivo de autenticación puede estar adaptado para que sea imposible alterar su firmware. En algunas realizaciones, para garantizar la especialización del dispositivo de autenticación a su uso como dispositivo de seguridad, cualquier cambio o actualización de su firmware únicamente es posible a través de un protocolo de actualización de firmware seguro que está diseñado para asegurar que únicamente una parte confiable de control autorizada pueda actualizar o cambiar el firmware del dispositivo de autenticación. Esto permite que la parte confiable de control se asegure de que no se produzca ninguna actualización de firmware que anule la especialización del dispositivo de autenticación a su uso en métodos para asegurar el acceso de un usuario a una aplicación o para asegurar la interacción de un usuario con una aplicación de este tipo. Los dispositivos donde los usuarios pueden instalar software adicional que no está autorizado por una parte confiable de control no se pueden considerar dispositivos especializados. Los dispositivos cuyo objetivo principal es ofrecer instalaciones de telecomunicaciones no pueden considerarse dispositivos especializados para usarse en métodos para asegurar el acceso de un usuario a una aplicación y su interacción con la misma. Los PC de uso general, los ordenadores portátiles, los ordenadores de tableta y los teléfonos inteligentes no se pueden considerar dispositivos especializados.
En algunas realizaciones, el testigo (100) es un dispositivo de hardware seguro. En algunas realizaciones, el dispositivo de hardware seguro está adaptado para asegurar la detección y/o resistencia a los intentos de manipulación del dispositivo de hardware seguro. En algunas realizaciones, el alojamiento del dispositivo de hardware seguro está adaptado para resistir la apertura del alojamiento y/o para aumentar la probabilidad de que un usuario advierta los intentos de abrir el alojamiento por deformación del alojamiento (evidencia de manipulación). En algunas realizaciones, las partes que juntas componen el alojamiento pueden soldarse o pegarse entre sí, de modo que los intentos de separar estas partes normalmente conducirán a una deformación evidente del alojamiento. En algunas realizaciones, el dispositivo de hardware seguro comprende un interruptor que detecta la apertura del alojamiento. En algunas realizaciones, el dispositivo de hardware seguro está adaptado para tomar la acción apropiada al detectar un intento de manipulación. En algunas realizaciones, el dispositivo de hardware seguro puede borrar ciertos datos confidenciales, tales como claves criptográficas o algunos o todos los datos de instancia, o el dispositivo de hardware seguro puede entrar (posiblemente de manera irreversible) en un modo de error o dejar de funcionar tras detectar un intento de manipulación con el dispositivo de hardware seguro.
El dispositivo de hardware seguro puede tener una interfaz de salida de usuario segura (por ejemplo, una pantalla segura) y una interfaz de entrada de usuario segura (por ejemplo, un teclado seguro). En algunas realizaciones, el dispositivo de hardware seguro tiene una interfaz de salida que es segura porque está completamente controlada por el dispositivo de hardware seguro y que no puede usarse para presentar datos o información a un usuario mediante un proceso externo al dispositivo de hardware seguro o que únicamente se puede usar para presentar datos o información a un usuario mediante un proceso externo al dispositivo de hardware seguro si está autorizado y controlado por el dispositivo de hardware seguro. En algunas realizaciones, el dispositivo de hardware seguro tiene una interfaz de entrada de usuario que es segura porque está completamente controlada por el dispositivo de hardware seguro y que no puede usarse para obtener datos o información desde un usuario mediante un proceso externo al dispositivo de hardware seguro o que únicamente se puede usar para obtener datos o información desde un usuario mediante un proceso externo al dispositivo de hardware seguro si está autorizado y controlado por el dispositivo de hardware seguro. En algunas realizaciones, la seguridad de las interfaces de entrada y salida del usuario seguras se mantiene por el dispositivo de hardware seguro que no permite ningún cambio en su firmware o que proporciona un mecanismo de actualización de firmware seguro que únicamente permite cambios en su firmware a través de un protocolo seguro que asegura que el dispositivo de hardware seguro únicamente acepta actualizaciones de firmware autorizadas de una fuente confiable.
En algunas realizaciones, el testigo no es un dispositivo de hardware especializado. En algunas realizaciones, el testigo puede comprender un dispositivo de consumo electrónico cuyo objetivo principal puede no ser proporcionar la funcionalidad de autenticación, pero que puede comprender software para proporcionar la funcionalidad de testigo de autenticación fuerte descrita en esta descripción. Por ejemplo, en algunas realizaciones, el testigo puede comprender un ordenador de tableta o un teléfono inteligente que comprende una aplicación de autenticación que proporciona la funcionalidad de testigo de autenticación fuerte descrita en esta descripción.
Factor de forma
En algunas realizaciones, el testigo puede comprender una placa de circuito de plástico en la que se pueden disponer al menos algunos de los componentes electrónicos incluidos en el testigo. Otros componentes electrónicos pueden conectarse galvánicamente a los componentes dispuestos en la placa de circuito (por ejemplo, mediante cables eléctricos). En algunas realizaciones, todos los componentes electrónicos del testigo están comprendidos dentro de un único alojamiento. En algunas realizaciones, el alojamiento puede estar fabricado de plástico o de metal o de una combinación de materiales. En algunas realizaciones, el testigo de autenticación puede ser un dispositivo monolítico. En el contexto de esta descripción, esto significa que el componente de procesamiento de datos digitales para generar las credenciales dinámicas, el componente de memoria para almacenar datos de instancia, la interfaz de usuario de entrada, la interfaz de usuario de salida y la interfaz de entrada de datos comprendidas en el testigo de autenticación están todas comprendidas en un único dispositivo físico. En algunas realizaciones, el usuario no puede retirar estos componentes como parte de la operación convencional del testigo de autenticación. En algunas realizaciones, estos componentes no se pueden retirar sin provocar un cambio irreversible en el testigo de autenticación. En algunas realizaciones, estos componentes no se pueden retirar sin dañar permanentemente el testigo de autenticación.
Tamaño y peso
En algunas realizaciones, el testigo tiene un peso y unas medidas espaciales de manera que el testigo puede considerarse que es un dispositivo portátil, con tamaño de bolsillo y de mano. En algunas realizaciones, el lector tiene un peso y medidas espaciales de manera que el testigo se puede enviar al usuario a través de correo a costes moderados. Por ejemplo, en algunas realizaciones, el dispositivo de autenticación puede tener un espesor de menos de 2 cm, una anchura de menos de 10 cm, una longitud de menos de 15 cm y un peso de menos de 200 gramos. En otras realizaciones, el dispositivo de autenticación puede tener un espesor de menos de 1,5 cm, una anchura de menos de 7 cm, una longitud de menos de 13 cm y un peso de menos de 110 gramos. En algunas realizaciones, la longitud y la anchura del dispositivo de autenticación pueden superar la longitud, respectivamente, de la anchura de una tarjeta de crédito convencional de tamaño completo en no más del 10 por ciento. En algunas realizaciones, el dispositivo de autenticación puede tener la longitud y la anchura de una tarjeta de crédito convencional de tamaño completo. En algunas realizaciones, el dispositivo de autenticación puede tener la longitud, la anchura y el espesor de una tarjeta de crédito convencional de tamaño completo dentro de los márgenes aplicables a las tarjetas de crédito de tamaño completo convencionales (por ejemplo, que tienen las dimensiones de una tarjeta inteligente de tamaño ID-1 según se especifica por ISO/IEC 7810).
Fuente de alimentación
En algunas realizaciones, el dispositivo de autenticación comprende una fuente de alimentación eléctrica autónoma. En algunas realizaciones, la fuente de alimentación puede comprender una batería. En algunas realizaciones, la batería puede ser reemplazable.
Menú de servicio
En algunas realizaciones, el testigo puede soportar un menú de servicio que ofrece varias opciones al usuario para acceder a diversas funciones del testigo. Por ejemplo, el menú de servicio puede comprender una opción de ayuda por medio de la cual el usuario puede acceder a información de ayuda. El menú de servicio puede comprender un menú de idioma para que el usuario establezca preferencias de idioma. El menú de servicio puede comprender una opción para seleccionar una instancia particular. El menú de servicio puede comprender una opción para iniciar una operación de instancia de desbloqueo. El menú de servicio puede incluir una opción para iniciar una operación de eliminación de instancia. El menú de servicio puede incluir una opción para iniciar una operación de carga de instancia. El menú de servicio puede comprender una opción para iniciar una generación de credenciales dinámicas. El menú de servicio puede comprender una opción para acceder a la información de testigo (tal como, por ejemplo, un elemento de datos de identificación de testigo). El menú de servicio puede incluir una opción para obtener una vista general de las instancias cargadas. El menú de servicio puede comprender una opción para acceder a información acerca de instancias particulares (tales como, por ejemplo, elementos de datos de identificación de instancia).
En un aspecto de la invención, se proporciona un testigo de autenticación para autenticar a más de un usuario o para asegurar la interacción entre dicho más de un usuario y una o más aplicaciones.
En un primer conjunto de realizaciones, el testigo de autenticación puede comprender una pluralidad de instancias de testigo, comprendiendo cada instancia de testigo datos de instancia y cada instancia de testigo asociada con uno de una pluralidad de al menos dos usuarios diferentes del testigo de modo que al menos una instancia de testigo diferente está asociada con cada uno de dicha pluralidad de al menos dos usuarios diferentes, y el testigo de autenticación puede estar adaptado para generar una credencial dinámica usando una clave de generación de credencial secreta comprendida o derivada de los datos de instancia de una instancia de testigo seleccionada de dicha pluralidad de instancias de testigo para autenticar a un usuario asociado con dicha instancia de testigo seleccionada o para asegurar la interacción entre el usuario asociado con dicha instancia de testigo seleccionada y una o más aplicaciones. En algunas realizaciones, dicho testigo de autenticación puede comprender cualquiera de los testigos de autenticación descritos en cualquier otro sitio de esta descripción.
Recibir mensajes
En un segundo conjunto de realizaciones, el testigo puede ser cualquier testigo del conjunto anterior de realizaciones, de modo que el testigo puede estar adaptado además para recibir un mensaje de servidor y para decodificar y procesar dicho mensaje de servidor.
En un tercer conjunto de realizaciones, el testigo puede ser cualquier testigo del segundo conjunto de realizaciones, de modo que dicho mensaje de servidor recibido se dirige hacia una instancia de testigo objetivo particular de dicha pluralidad de instancias de testigo y de modo que el testigo puede estar adaptado además para determinar de forma autónoma (es decir, sin usar las entradas de un usuario del testigo) y seleccionar dicha instancia de testigo objetivo basándose en dicho mensaje de servidor recibido.
En un cuarto conjunto de realizaciones, el testigo puede ser cualquier testigo del tercer conjunto de realizaciones, de modo que el testigo puede estar adaptado además para determinar y seleccionar la instancia de testigo objetivo usando un elemento de datos de identificación de instancia de testigo en el mensaje de servidor recibido.
En un quinto conjunto de realizaciones, el testigo puede ser cualquier testigo del tercer conjunto de realizaciones, de modo que el testigo puede estar adaptado además para determinar y seleccionar la instancia de testigo objetivo verificando un elemento o aspecto criptográficamente protegido de dicho mensaje de servidor recibido usando un algoritmo criptográfico. parametrizado con una clave de carga útil criptográfica asociada con una instancia de testigo candidata de dicha pluralidad de instancias de testigo, de modo que el testigo puede estar adaptado para seleccionar dicha instancia de testigo candidata como la instancia de testigo objetivo si dicha verificación tiene éxito.
En un sexto conjunto de realizaciones, el testigo puede ser cualquier testigo del quinto conjunto de realizaciones, de modo que el testigo puede estar adaptado además para recorrer la pluralidad de instancias de testigo y considerar o probar una a una cada una de dicha pluralidad de instancias de testigo como un candidato al menos hasta que dicha verificación de un elemento o aspecto protegido criptográficamente de dicho mensaje de servidor recibido con cualquier instancia de testigo candidata produzca una instancia de testigo candidata para la que dicha verificación tenga éxito o hasta que dicha verificación de un elemento o aspecto protegido criptográficamente de dicho mensaje de servidor recibido con todas las instancias de testigo de la pluralidad de instancias de testigo no haya tenido éxito para ninguna de las instancias de testigo de la pluralidad de instancias de testigo.
En un séptimo conjunto de realizaciones, el testigo puede ser cualquier testigo del sexto conjunto de realizaciones, de modo que el testigo puede estar adaptado además para seleccionar la primera instancia de testigo para la que dicha verificación de un elemento o aspecto criptográficamente protegido de dicho mensaje de servidor recibido tiene éxito.
En un octavo conjunto de realizaciones, el testigo puede ser cualquier testigo del quinto o sexto conjuntos de realizaciones, de modo que el testigo puede estar adaptado además para rechazar dicho mensaje de servidor si el testigo no encuentra una instancia de testigo candidata para la que dicha verificación de un elemento o aspecto protegido criptográficamente de dicho mensaje de servidor recibido tiene éxito.
En un noveno conjunto de realizaciones, el testigo puede ser cualquier testigo del quinto a octavo conjuntos de realizaciones, en donde cada instancia de testigo de dicha pluralidad de instancias de testigo tiene un valor único para dicha clave de carga útil con respecto a los valores de clave de carga útil de las otras instancias de testigo de dicha pluralidad de instancias de testigo.
Generar credenciales
En un décimo conjunto de realizaciones, el testigo puede ser cualquier testigo de cualquiera del segundo a noveno conjuntos de realizaciones, de modo que dicho mensaje de servidor recibido puede comprender un mensaje de comando de generación de credenciales y el testigo puede estar adaptado además para generar dicha credencial dinámica en respuesta a dicho mensaje de comando de generación de credenciales.
En un undécimo conjunto de realizaciones, el testigo puede ser cualquier testigo de cualquiera del tercer a noveno conjuntos de realizaciones, de modo que dicho mensaje de servidor recibido puede comprender un mensaje de comando de generación de credenciales y el testigo puede estar adaptado además para generar dicha credencial dinámica en respuesta a dicho mensaje de comando de generación de credenciales y dicha instancia de testigo seleccionada es dicha instancia de testigo objetivo que es objetivo de dicho mensaje de servidor recibido.
En un duodécimo conjunto de realizaciones, el testigo puede ser cualquier testigo de cualquiera de los conjuntos de realizaciones anteriores, de modo que el testigo puede estar adaptado además para usar un algoritmo criptográfico simétrico en dicha generación de una credencial dinámica, dicho algoritmo criptográfico simétrico parametrizado con dicha clave de generación de credenciales secreta, comprendiendo dicha clave de generación de credenciales secreta una clave secreta simétrica.
Gestión de instancia
Carga de instancia
En un conjunto 13 de realizaciones, el testigo puede ser cualquier testigo de cualquiera de los conjuntos de realizaciones anteriores, de modo que el testigo puede estar adaptado además para recibir una instancia de testigo adicional, de modo que el testigo de autenticación puede estar comprendido en al menos uno de un una pluralidad de lotes de testigos, de modo que con cada lote de testigos de dicha pluralidad de lotes de testigos se puede asociar un valor de una clave maestra de lote y de modo que el testigo de autenticación puede comprender el valor de la clave maestra de lote de dicho al menos uno de dicha pluralidad de lotes de testigos que comprende el testigo de autenticación. El testigo de autenticación puede estar adaptado además para recibir y procesar, como parte de una primera etapa de proceso de carga para transferir al testigo de autenticación un valor de una clave maestra de grupo de instancias de usuario, un primer mensaje de carga de etapa que puede comprender un conjunto de valores relacionados con el lote, un valor relacionado con el lote para cada uno de dichos lotes de testigos, en donde el valor de cada valor relacionado con el lote puede haberse determinado de manera que es posible calcular el mismo valor de dicha clave maestra de grupo de instancias de usuario, como una función de cualquier par de claves maestras de lote de uno cualquiera particular de dichos lotes de testigos y el valor relacionado con el lote correspondiente a ese lote de testigos particular. El testigo de autenticación que procesa dicho primer mensaje de carga de etapa puede comprender: recuperar el testigo de autenticación del primer mensaje de carga de etapa que ha recibido, un valor relacionado con el lote que corresponde al mismo lote de testigos al que también corresponde dicha clave maestra de lote, cuyo valor está comprendido en el testigo de autenticación; calcular el testigo de autenticación el valor de la clave maestra de grupo de instancias de usuario como una función de dicha clave maestra de lote comprendida en el testigo de autenticación y dicho valor relacionado con el lote que el testigo de autenticación puede haber recuperado del primer mensaje de carga de etapa; y almacenar el testigo de autenticación el valor calculado de la clave maestra de grupo de instancias de usuario. El testigo de autenticación puede estar adaptado además para recibir y procesar, como parte de una segunda etapa de proceso de carga para transferir al testigo de autenticación un conjunto de valores de datos de instancia para la instancia de testigo adicional, un segundo mensaje de carga de etapa que puede incluir dicho conjunto de valores de datos de instancia para la instancia de testigo adicional y que pueden asegurarse con dicha clave maestra de grupo de instancias de usuario o una clave derivada de la clave maestra de grupo de instancias de usuario. El testigo de autenticación que procesa dicho segundo mensaje de carga de etapa puede comprender: recuperar el testigo de autenticación dicho conjunto de valores de datos de instancia del segundo mensaje de carga de etapa que puede haberse recibido usando el valor de la clave maestra de grupo de instancias de usuario que el testigo de autenticación puede haber calculado en la primera etapa de proceso de carga; y determinar el testigo de autenticación los valores de un conjunto de claves secretas de dicha instancia de testigo adicional usando dicho conjunto recuperado de valores de datos de instancia, de modo que dicho conjunto de claves secretas de la instancia de testigo adicional puede comprender dicha clave de generación de credenciales secreta que el testigo de autenticación puede usar posteriormente para generar credenciales dinámicas para dicha instancia de testigo adicional.
Eliminación de instancia
En un conjunto 14 de realizaciones, el testigo puede ser cualquier testigo de cualquiera de los conjuntos de realizaciones anteriores, de modo que el testigo puede estar adaptado además para soportar un proceso de eliminación de instancia para eliminar al menos una instancia de testigo obsoleta de dicha pluralidad de instancias de testigo. En algunas realizaciones, dicho proceso de eliminación de instancia comprende borrar el testigo de una memoria comprendida en el testigo todos los datos de instancia de dicha al menos una instancia de testigo obsoleta que se va a eliminar.
En un conjunto 15 de realizaciones, el testigo puede ser cualquier testigo del conjunto 14 de realizaciones, de modo que el testigo puede estar adaptado además para presentar al usuario una opción de menú para que el usuario inicie dicho proceso de eliminación de instancia.
En un conjunto 16 de realizaciones, el testigo puede ser cualquier testigo de los conjuntos 14 a 15 de realizaciones, de modo que el testigo puede estar adaptado además para presentar al usuario un menú para que el usuario seleccione dicha instancia de testigo obsoleta que el usuario desea que se elimine el testigo.
En un conjunto 17 de realizaciones, el testigo puede ser cualquier testigo de los conjuntos 14 a 16 de realizaciones, de modo que el testigo puede estar adaptado además para recibir y procesar un mensaje de comando de eliminación de instancia, en donde dicho procesamiento de dicho mensaje de comando de eliminación de instancia recibido puede comprender la eliminación de dicha al menos una instancia de testigo obsoleta para que se eliminen en respuesta a dicho mensaje de comando de eliminación de instancia recibido.
En un conjunto 18 de realizaciones, el testigo puede ser cualquier testigo del conjunto 17 de realizaciones, de modo que el testigo puede estar adaptado además para seleccionar dicha al menos una instancia de testigo obsoleta para las que ha de realizarse el proceso de eliminación de instancia de forma autónoma basándose en el mensaje de comando de eliminación de instancia recibido. En algunas realizaciones, esta selección autónoma de dicha al menos una instancia de testigo obsoleta para la que ha de realizarse el proceso de eliminación de instancia puede comprender el uso de cualquiera de los mecanismos para determinar y seleccionar una instancia de testigo que se describen con más detalle en cualquier otro sitio de esta descripción.
Manejo de PIN o contraseña
En un conjunto 19 de realizaciones, el testigo puede ser cualquier testigo de cualquiera de los conjuntos de realizaciones anteriores, de modo que el testigo puede estar adaptado además para reservar el uso de al menos una instancia de testigo protegida de dicha pluralidad de instancias de testigo para un usuario asociado con esa al menos una instancia de testigo protegida. En algunas realizaciones, el testigo puede estar adaptado para verificar si un usuario que intenta usar dicha al menos una instancia de testigo protegida corresponde al usuario asociado con esa al menos una instancia de testigo protegida.
En un conjunto 20 de realizaciones, el testigo puede ser cualquier testigo del conjunto 19 de realizaciones, de modo que los datos de instancia de dicha al menos una instancia de testigo protegida comprenden datos de referencia de credenciales de usuario, y el testigo puede estar adaptado además para recibir desde el usuario una credencial de usuario, para comparar la credencial de usuario recibida del usuario con dichos datos de referencia de credencial de usuario, y para permitir que el usuario use dicha al menos una instancia de testigo protegida si la credencial de usuario recibida coincide con dichos datos de referencia de credencial de usuario y rechazar el usuario usar dicha al menos una instancia de testigo protegida si la credencial de usuario recibida no coincide con dichos datos de referencia de credencial de usuario.
En un conjunto 21 de realizaciones, el testigo puede ser cualquier testigo del conjunto 20 de realizaciones, de modo que los datos de referencia de credencial de usuario pueden comprender un valor de referencia de contraseña y dicha credencial de usuario puede comprender un valor de contraseña (que el testigo puede recibir, por ejemplo, a través de una interfaz de entrada de usuario del testigo). En algunas realizaciones, el valor de la contraseña puede consistir en una secuencia de únicamente dígitos numéricos. En algunas realizaciones, el valor de la contraseña puede comprender un PIN (número de identificación personal).
Cambiar PIN o contraseña
En un conjunto 22 de realizaciones, el testigo puede ser cualquier testigo del conjunto 21 de realizaciones, de modo que el testigo puede estar adaptado además para soportar un proceso de cambio de contraseña para permitir que el usuario cambie los datos de referencia de credenciales de usuario de la al menos una instancia de testigo protegida.
En un conjunto 23 de realizaciones, el testigo puede ser cualquier testigo del conjunto 22 de realizaciones, de modo que el testigo puede estar adaptado además para presentar al usuario una opción de menú para que el usuario inicie dicho proceso de cambio de contraseña.
En un conjunto 24 de realizaciones, el testigo puede ser cualquier testigo del conjunto 23 de realizaciones, de modo que el testigo puede estar adaptado además para presentar al usuario un menú para que el usuario seleccione la al menos una instancia de testigo protegida para la que el usuario desea que el testigo realice el proceso de cambio de contraseña,
En un conjunto 25 de realizaciones, el testigo puede ser cualquier testigo del conjunto 22 de realizaciones, de modo que el testigo puede estar adaptado además para recibir y procesar un mensaje de comando de cambio de contraseña, en donde dicho procesamiento de dicho mensaje de comando de cambio de contraseña recibido puede comprenden iniciar y realizar el proceso de cambio de contraseña en respuesta a dicho mensaje de comando de cambio de contraseña recibido.
En un conjunto 26 de realizaciones, el testigo puede ser cualquier testigo del conjunto 25 de realizaciones, de modo que el testigo puede estar adaptado además para seleccionar de forma autónoma la al menos una instancia de testigo protegida para la que ha de realizarse el proceso de cambio de contraseña basándose en el mensaje de comando de cambio de contraseña recibido. En algunas realizaciones, esta selección de forma autónoma de la al menos una instancia de testigo protegida para la que ha de realizarse el proceso de cambio de contraseña puede comprender el uso de cualquiera de los mecanismos para determinar y seleccionar una instancia de testigo que se describen con más detalle en cualquier otro sitio de esta descripción.
Bloquear y desbloquear PIN o contraseña
En un conjunto 27 de realizaciones, el testigo puede ser cualquier testigo de los conjuntos 21 a 26 de realizaciones, de modo que el testigo puede estar adaptado además para bloquear (es decir, rechazar permanentemente el uso posterior) de la al menos una instancia de testigo protegida si el usuario ha proporcionado para la al menos una instancia de testigo protegida un número de valores de contraseña que no coinciden con el valor de referencia de contraseña de la al menos una instancia de testigo protegida de modo que dicho número supera un valor umbral de contador de intentos de contraseña predefinido.
En un conjunto 28 de realizaciones, el testigo puede ser cualquier testigo del conjunto 27 de realizaciones, de modo que el testigo puede estar adaptado además para soportar un proceso de desbloqueo de contraseña para permitir que el usuario deshaga dicho bloqueo de dicha al menos una instancia de testigo protegida bloqueada.
En un conjunto 29 de realizaciones, el testigo puede ser cualquier testigo del conjunto 28 de realizaciones, de modo que el testigo puede estar adaptado además para presentar al usuario una opción de menú para que el usuario inicie dicho proceso de desbloqueo de contraseña.
En un conjunto 30 de realizaciones, el testigo puede ser cualquier testigo del conjunto 29 de realizaciones, de modo que el testigo puede estar adaptado además para presentar al usuario un menú para que el usuario seleccione la al menos una instancia de testigo protegida bloqueada para la que el usuario desea que el testigo realice el proceso de desbloqueo de contraseña.
En un conjunto 31 de realizaciones, el testigo puede ser cualquier testigo del conjunto 30 de realizaciones, de modo que el testigo puede estar adaptado además para recibir y procesar un mensaje de comando de desbloqueo de contraseña, en donde dicho procesamiento de dicho mensaje de comando de desbloqueo de contraseña recibido puede comprenden iniciar y realizar el proceso de desbloqueo de contraseña en respuesta a dicho mensaje de comando de desbloqueo de contraseña recibido.
En un conjunto 32 de realizaciones, el testigo puede ser cualquier testigo del conjunto 31 de realizaciones, de modo que el testigo puede estar adaptado además para seleccionar de forma autónoma la al menos una instancia de testigo protegida bloqueada para la que ha de realizarse el proceso de desbloqueo de contraseña basándose en el mensaje de comando de desbloqueo de contraseña recibido. En algunas realizaciones, esta selección de forma autónoma de la al menos una instancia de testigo protegida bloqueada para la que ha de realizarse el proceso de desbloqueo de contraseña puede comprender el uso de cualquiera de los mecanismos para determinar y seleccionar una instancia de testigo que se describen con más detalle en cualquier otro sitio de esta descripción.
Componentes
En otro conjunto de realizaciones, el testigo puede ser cualquier testigo de cualquiera de los conjuntos de realizaciones anteriores, de modo que el testigo puede comprender además un componente de procesamiento de datos digitales, un componente de memoria que puede conectarse al componente de procesamiento de datos, una interfaz de entrada de usuario que puede conectarse al componente de procesamiento de datos, una interfaz de salida de usuario que puede conectarse al componente de procesamiento de datos y una interfaz de entrada de datos que puede conectarse al componente de procesamiento de datos.
En otro conjunto de realizaciones, el testigo puede ser cualquier testigo de cualquiera de los conjuntos de realizaciones anteriores, de modo que el componente de memoria está adaptado para almacenar dichos datos de instancia de dicha pluralidad de instancias de testigo.
En otro conjunto de realizaciones, el testigo puede ser cualquier testigo de cualquiera de los conjuntos de realizaciones anteriores, de modo que el componente de procesamiento de datos digitales está adaptado para generar dicha credencial dinámica. En algunas realizaciones, el componente de procesamiento de datos digitales está adaptado para realizar operaciones criptográficas o algoritmos criptográficos. En algunas realizaciones, el componente de procesamiento de datos digitales está adaptado para recuperar o derivar dicha clave de generación de credenciales secreta a partir de dichos datos de instancia. En algunas realizaciones, el componente de procesamiento de datos digitales está adaptado para realizar algoritmos criptográficos simétricos. En algunas realizaciones, dicha clave de generación de credenciales secreta recuperada o derivada puede comprender una clave secreta simétrica.
En otro conjunto de realizaciones, el testigo puede ser cualquier testigo de cualquiera de los conjuntos de realizaciones anteriores, de modo que la interfaz de entrada de datos puede estar adaptada para recibir un mensaje de servidor y el componente de procesamiento de datos digitales puede estar adaptado para procesar dicho mensaje de servidor. En algunas realizaciones, la interfaz de entrada de datos puede comprender un componente de cámara digital y el mensaje del servidor puede estar comprendido en una o más imágenes bidimensionales codificadas y dicha recepción del mensaje de servidor puede comprender el testigo que usa el componente de cámara digital para capturar dicha una o más imágenes más imágenes bidimensionales codificadas y decodificar dicha una o más imágenes bidimensionales codificadas capturadas para recuperar el mensaje de servidor.
En otro conjunto de realizaciones, el testigo puede ser cualquier testigo de cualquiera de los conjuntos de realizaciones anteriores, de modo que el mensaje del servidor comprende un mensaje de comando de generación de credenciales y dicho procesamiento de dicho mensaje de servidor puede comprender el componente de procesamiento de datos digitales que procesa dicho mensaje de comando de generación de credenciales. En algunas realizaciones, dicho componente de procesamiento de datos digitales que procesa dicho mensaje de comando de generación de credenciales puede comprender el componente de procesamiento de datos digitales que genera una credencial dinámica. En algunas realizaciones, dicho componente de procesamiento de datos digitales que genera una credencial dinámica puede comprender el componente de procesamiento de datos digitales que recupera datos del mensaje de comando de generación de credenciales y que usa dichos datos recuperados en un algoritmo de generación de credenciales.
En otro conjunto de realizaciones, el testigo puede ser cualquier testigo de cualquiera de los conjuntos de realizaciones anteriores, de modo que el componente de procesamiento de datos digitales puede estar adaptado para generar salida para el usuario y la interfaz de salida de usuario puede estar adaptada para presentar al usuario dicha salida para el usuario generada por el componente de procesamiento de datos digitales. En algunas realizaciones, dicha salida puede comprender un mensaje de error. En algunas realizaciones, dicha salida puede comprender datos de transacción comprendidos en un mensaje de servidor recibido por la interfaz de entrada de datos. En algunas realizaciones, dicha salida puede comprender dicha credencial dinámica generada.
En otro conjunto de realizaciones, el testigo puede ser cualquier testigo de cualquiera de los conjuntos de realizaciones anteriores, de modo que la interfaz de entrada de usuario puede estar adaptada para recibir entradas de un usuario y el componente de procesamiento de datos digitales puede estar adaptado para procesar dicha entrada de usuario.
En otro conjunto de realizaciones, el testigo puede ser cualquier testigo de cualquiera de los conjuntos de realizaciones anteriores, de modo que el componente de procesamiento de datos digitales puede estar adaptado para generar salida para el usuario y la interfaz de salida de usuario puede estar adaptada para presentar al usuario dicha salida para el usuario generada por el componente de procesamiento de datos digitales, en donde dicha salida puede comprender datos de transacción comprendidos en un mensaje de servidor recibido por la interfaz de entrada de datos; de modo que la interfaz de entrada de usuario puede estar adaptada para recibir entradas de un usuario y el componente de procesamiento de datos digitales puede estar adaptado para procesar dicha entrada de usuario, en donde dicha entrada recibida de dicho usuario puede comprender una aprobación o un rechazo de dichos datos de transacción presentados al usuario; y de modo que dicho componente de procesamiento de datos digitales puede estar adaptado para generar dicha credencial dinámica condicionada a si el usuario ha aprobado dichos datos de transacción presentados.
En un segundo aspecto de la invención, se proporciona un sistema para autenticar una pluralidad de al menos dos usuarios diferentes o para asegurar la interacción entre dicha pluralidad de al menos dos usuarios diferentes y una pluralidad de aplicaciones accesibles de manera remota.
La Figura 2 ilustra esquemáticamente un sistema de ejemplo (200) de la invención de acuerdo con este segundo aspecto de la invención.
El sistema (200) puede comprender uno o más servidores de aplicaciones (210), una pluralidad de dispositivos cliente de acceso (230), y una pluralidad de testigos de autenticación (240), de modo que dichos servidores de aplicaciones y dichos dispositivos clientes de acceso están conectados por una red informática (250) que permite que dichos servidores de aplicaciones y dichos dispositivos cliente de acceso se comuniquen entre sí, de modo que cada uno de dichos servidores de aplicaciones aloja al menos una de las aplicaciones accesibles de manera remota, cada uno de dichos dispositivos cliente de acceso está adaptado para interactuar con uno o más de dicha pluralidad de usuarios (290) para permitir que dicho uno o más usuarios interactúen con al menos una de dichas aplicaciones accesibles de manera remota; comprendiendo el sistema además una pluralidad de instancias de testigo, comprendiendo cada instancia de testigo datos de instancia y estando asociada con uno único de dicha pluralidad de al menos dos usuarios diferentes y comprendida en al menos uno de dicha pluralidad de testigos de autenticación, de modo que con cada usuario se asocian una o más instancias de testigo, de modo que cada testigo de autenticación comprende una o más instancias de testigo y al menos una de la pluralidad de testigos de autenticación comprende al menos dos instancias de testigo diferentes asociadas a dos usuarios diferentes; de modo que al menos una instancia de testigo diferente está asociada con cada uno de dicha pluralidad de al menos dos usuarios diferentes, y de modo que cada testigo de autenticación particular de dicha pluralidad de testigos de autenticación puede estar adaptado para generar una credencial dinámica usando una clave de generación de credencial secreta comprendida en o derivada de los datos de instancia de una instancia de testigo seleccionada comprendida en dicho testigo de autenticación particular para autenticar a un usuario asociado con dicha instancia de testigo seleccionada en una de dichas aplicaciones o para asegurar la interacción entre dicho usuario asociado con dicha instancia de testigo seleccionada y dicha una de dichas aplicaciones.
En algunas realizaciones, dichos testigos de autenticación pueden comprender cualquiera de los testigos de autenticación descritos en cualquier otro sitio de esta descripción. En algunas realizaciones, un servidor de aplicaciones puede comprender uno o más ordenadores de servidor físico. En algunas realizaciones, los servidores de aplicaciones pueden estar adaptados para verificar las credenciales dinámicas que generan los testigos de autenticación para autenticar a los usuarios de dichos testigos de autenticación en una de las aplicaciones alojadas por dichos servidores de aplicaciones o para asegurar la interacción entre dichos usuarios asociados con dicha instancia de testigo seleccionada y dicha una de las aplicaciones alojadas por dichos servidores de aplicaciones. En algunas realizaciones, un servidor de aplicaciones que verifica credenciales dinámicas puede comprender dicho servidor de aplicaciones que delega dicha verificación criptográfica a uno de una pluralidad de servidores de verificación de credenciales (220). En algunas realizaciones, un servidor de verificación de credenciales de este tipo puede estar incluido en el mismo ordenador físico que un servidor de aplicaciones que delega la verificación de credenciales dinámicas a ese servidor de verificación de credenciales. En algunas realizaciones, un servidor de verificación de credenciales y un servidor de aplicaciones que delega la verificación de credenciales dinámicas a ese servidor de verificación de credenciales pueden estar comprendidos en diferentes ordenadores físicos.
En un primer conjunto de realizaciones del sistema, el sistema puede comprender cualquiera de los sistemas descritos anteriormente y el sistema puede comprender además uno o más servidores de carga de instancias, la pluralidad de instancias de testigo puede agruparse en una pluralidad de grupos de instancias de usuarios (mutuamente disyuntivos) de modo que cada grupo de instancias de usuario diferente consiste en todas las instancias de testigo que están asociadas con el mismo usuario y de modo que con cada grupo de instancias de usuario está asociada una clave de grupo de instancias de usuario única, y la pluralidad de testigos de autenticación puede agruparse en una pluralidad de lotes de testigos de modo que cada lote de testigos se asocia una clave maestra de lote única de modo que dicha clave maestra de lote está comprendida en cada testigo de autenticación comprendido en el lote de testigos con la que está asociada dicha clave maestra de lote; los servidores de carga de instancias y los testigos de autenticación pueden estar adaptados para soportar un proceso de carga de instancias para cargar una instancia de testigo adicional en un testigo de autenticación objetivo, comprendiendo el proceso de carga de instancias una primera etapa de proceso de carga para transferir al testigo de autenticación objetivo el valor de una clave maestra de grupo de instancias de usuario y una segunda etapa de proceso de carga para transferir al testigo de autenticación objetivo un conjunto de valores de datos de instancia; de modo que en la primera etapa de proceso de carga, un primer servidor de carga de instancia genera un primer mensaje de carga de etapa (al que también se puede hacer referencia en cualquier otro sitio de esta solicitud como un primer mensaje de carga o un primer mensaje de carga de grupo de instancias de usuario) que se envía a dicho testigo de autenticación objetivo y el testigo de autenticación objetivo recibe y procesa dicho primer mensaje de carga de etapa, y de modo que en la segunda etapa de proceso de carga, un segundo servidor de carga de instancia genera un segundo mensaje de carga de etapa (al que también se puede hacer referencia en cualquier otro sitio de esta solicitud como un segundo mensaje de carga) que se envía a dicho testigo de autenticación objetivo y el testigo de autenticación objetivo recibe y procesa dicho segundo mensaje de carga de etapa; de modo que el primer mensaje de carga de etapa comprende un conjunto de valores relacionados con el lote, un valor relacionado con el lote para cada uno de dichos lotes de testigos, cada valor relacionado con el lote determinado de tal manera que el mismo valor para la clave maestra de grupo de instancias de usuario se puede calcular como una función de cualquier par de unas claves maestras de lote de uno cualquiera de dichos lotes de testigos particular y el valor relacionado con el lote correspondiente a ese lote de testigos particular, y de modo que el procesamiento del primer mensaje de carga de etapa por el testigo de autenticación objetivo comprende calcular el testigo de autenticación objetivo el valor de la clave maestra de grupo de instancias de usuario como una función de una clave maestra de lote comprendida en el testigo objetivo y el valor relacionado con el lote comprendido en el primer mensaje de carga de etapa que corresponde al lote de testigos al que también corresponde dicha clave maestra de lote comprendida en el testigo objetivo; y de modo que el segundo mensaje de carga de etapa comprende dicho conjunto de valores de datos de instancia de modo que el segundo mensaje de carga de etapa está asegurado con la clave maestra de grupo de instancias de usuario o una clave derivada de la clave maestra de grupo de instancias de usuario, y de modo que el testigo de autenticación objetivo puede recuperar dicho conjunto de valores de datos de instancia del segundo mensaje de carga de etapa usando el valor de la clave maestra de grupo de instancias de usuario que el testigo de autenticación objetivo ha obtenido en la primera etapa de proceso de carga y de modo que el testigo de autenticación objetivo puede determinar los valores de un conjunto de claves secretas de dicha instancia de testigo adicional usando dicho conjunto recuperado de valores de datos de instancia, de modo que dicho conjunto de claves secretas de la instancia de testigo adicional puede comprender la clave de generación de credenciales secreta de la instancia de testigo adicional.
En un segundo conjunto de realizaciones, el sistema puede comprender cualquiera de los sistemas del primer conjunto de realizaciones de modo que cada valor relacionado con el lote particular en dicho primer mensaje de carga de etapa se genera encriptando la clave maestra de grupo de instancias de usuario con la clave maestra del lote asociada con el lote de testigos al que corresponde dicho valor relacionado con el lote particular y de modo que el testigo de autenticación objetivo obtiene el valor de la clave maestra de grupo de instancias de usuario desencriptando - con dicha clave maestra de lote comprendida en el testigo objetivo - el valor relacionado con el lote comprendido en el primer mensaje de carga de etapa que corresponde al lote de testigos al que también corresponde dicha clave maestra de lote comprendida en el testigo objetivo.
En un tercer conjunto de realizaciones, el sistema puede comprender cualquiera de los sistemas del primer al segundo conjunto de realizaciones, de modo que dicho conjunto de valores de datos de instancia comprendidos en el segundo mensaje de carga de etapa puede encriptarse usando la clave maestra de grupo de instancias de usuario y de modo que el testigo de autenticación objetivo puede recuperar dicho conjunto de valores de datos de instancia del segundo mensaje de carga de etapa desencriptando el conjunto encriptado de valores de datos de instancia del segundo mensaje de carga de etapa usando el valor de la clave maestra de grupo de instancias de usuario que el testigo de autenticación objetivo ha obtenido en el primera etapa de proceso de carga. En algunas realizaciones, el conjunto de valores de datos de instancia comprendidos en el segundo mensaje de carga de etapa se puede encriptar con la clave maestra de grupo de instancias de usuario y el testigo de autenticación objetivo puede recuperar dicho conjunto de valores de datos de instancia del segundo mensaje de carga de etapa desencriptando el conjunto encriptado de valores de datos de instancia del segundo mensaje de carga de etapa con el valor de la clave maestra de grupo de instancias de usuario que el testigo de autenticación objetivo ha obtenido en la primera etapa de proceso de carga. En algunas realizaciones, el conjunto de valores de datos de instancia comprendidos en el segundo mensaje de carga de etapa se puede encriptar con una clave derivada de la clave maestra de grupo de instancias de usuario y el testigo de autenticación objetivo puede recuperar dicho conjunto de valores de datos de instancia del segundo mensaje de carga de etapa desencriptando el conjunto encriptado de valores de datos de instancia del segundo mensaje de carga de etapa con una clave derivada del valor de la clave maestra de grupo de instancias de usuario que el testigo de autenticación objetivo ha obtenido en la primera etapa de proceso de carga.
En un cuarto conjunto de realizaciones, el sistema puede comprender cualquiera de los sistemas del primer al tercer conjunto de realizaciones, de modo que la clave de generación de credenciales secreta de la instancia de testigo adicional está comprendida en dicho conjunto de valores de datos de instancia comprendidos en el segundo mensaje de carga de etapa.
En un quinto conjunto de realizaciones, el sistema puede comprender cualquiera de los sistemas del primero al cuarto conjuntos de realizaciones de modo que el testigo de autenticación objetivo deriva la clave de generación de credenciales secreta de la instancia de testigo adicional de dicho conjunto de valores de datos de instancia comprendidos en el segundo mensaje de carga de etapa.
En un sexto conjunto de realizaciones, el sistema puede comprender cualquiera de los sistemas del primero al quinto conjuntos de realizaciones de modo que el testigo de autenticación objetivo determina los valores de una o más claves de carga útil de dicho conjunto de valores de datos de instancia comprendidos en el segundo mensaje de carga de etapa, de modo que dichas claves de carga útil se pueden usar posteriormente para asegurar los mensajes posteriores intercambiados entre un servidor de aplicaciones y el testigo de autenticación objetivo y destinados o relacionados con dicha instancia de testigo adicional.
En un séptimo conjunto de realizaciones, el sistema puede comprender cualquiera de los sistemas del primero al sexto conjuntos de realizaciones, de modo que el primer mensaje de carga de etapa o el segundo mensaje de carga de etapa también comprende un elemento de datos que identifica la instancia de testigo adicional o un elemento de datos que identifica el grupo de instancias de usuario de la instancia de testigo adicional.
En un octavo conjunto de realizaciones, el sistema puede comprender cualquiera de los sistemas del primero al séptimo conjuntos de realizaciones, de modo que el primer mensaje de carga de etapa o el segundo mensaje de carga de etapa también comprenden otros elementos de datos de la instancia de testigo adicional.
En un tercer aspecto de la invención, se proporciona un método para cargar una instancia de testigo adicional en un testigo de autenticación de múltiples instancias.
La Figura 3 ilustra esquemáticamente un método de ejemplo (300) de la invención de acuerdo con este tercer aspecto de la invención.
En una realización, el método puede comprender un método (300) para cargar una instancia de testigo adicional en un testigo de autenticación objetivo de múltiples instancias adaptado para generar credenciales dinámicas, comprendiendo el método una primera etapa de proceso de carga (301) para transferir a un testigo de autenticación objetivo un valor de una clave maestra de grupo de instancias de usuario y una segunda etapa de proceso de carga (302) para transferir al testigo de autenticación objetivo un conjunto de valores de datos de instancia, de modo que el testigo de autenticación objetivo está comprendido en al menos uno de una pluralidad de lotes de testigos, de modo que cada lote de testigos de dicha pluralidad de lotes de testigos está asociado un valor de una clave maestra de lote y de modo que el testigo de autenticación objetivo comprende el valor de la clave maestra de lote de dicho al menos uno de dicha pluralidad de lotes de testigos que comprende el testigo de autenticación objetivo.
La primera etapa de proceso de carga (301) puede comprender generar (310) un primer mensaje de carga de etapa, comprendiendo dicha generación de dicho primer mensaje de carga de etapa: determinar (311) para cada uno de dichos lotes de testigos, un valor relacionado con el lote, de modo que es posible que el mismo valor de una clave maestra de grupo de instancias de usuario que está asociada con un grupo de usuarios de instancia particular al que pertenece la instancia de testigo adicional, se puede calcular como una función de cualquier par de claves maestras de lote de uno cualquiera particular de dichos lotes de testigos y el valor relacionado con el lote correspondiente a ese lote de testigos particular; y que incluye (312) dichos valores relacionados con el lote en el primer mensaje de carga de etapa.
La primera etapa de proceso de carga (301) puede comprender además en el testigo de autenticación objetivo recibir y procesar (320) dicho primer mensaje de carga de etapa, comprendiendo el procesamiento de dicho primer mensaje de carga de etapa: recuperar el testigo de autenticación objetivo (321), del primer mensaje de carga de etapa que haya recibido, un valor relacionado con el lote que corresponde al mismo lote de testigos al que también corresponde dicha clave maestra de lote, cuyo valor está comprendido en el testigo de autenticación objetivo; calcular el testigo de autenticación objetivo (322) el valor de la clave maestra de grupo de instancias de usuario como una función de dicha clave maestra de lote comprendida en el testigo de autenticación objetivo y dicho valor relacionado con el lote que el testigo de autenticación objetivo ha recuperado del primer mensaje de carga de etapa; y almacenar el testigo de autenticación objetivo (323) el valor calculado de la clave maestra de grupo de instancias de usuario.
La segunda etapa de proceso de carga (302) puede comprender generar (340) un segundo mensaje de carga de etapa, comprendiendo dicha generación de dicho segundo mensaje de carga de etapa: generar (341) un conjunto de valores de datos de instancia para la instancia de testigo adicional; que incluye (342) el conjunto generado de valores de datos de instancia en el segundo mensaje de carga de etapa; y asegurar (343) el segundo mensaje de carga de etapa con dicha clave maestra de grupo de instancias de usuario o una clave derivada de la clave maestra de grupo de instancias de usuario.
La segunda etapa de proceso de carga (302) puede comprender además en el testigo de autenticación objetivo recibir y procesar (350) el segundo mensaje de carga de etapa, comprendiendo el procesamiento de dicho segundo mensaje de carga de etapa: recuperar el testigo de autenticación objetivo (351) dicho conjunto de valores de datos de instancia del segundo mensaje de carga de etapa que ha recibido usando el valor de la clave maestra de grupo de instancias de usuario que el testigo de autenticación objetivo ha calculado en la primera etapa de proceso de carga; y determinar el testigo de autenticación objetivo (352) los valores de un conjunto de claves secretas de dicha instancia de testigo adicional usando dicho conjunto recuperado de valores de datos de instancia, de modo que dicho conjunto de claves secretas de la instancia de testigo adicional puede comprender una clave de generación de credenciales secreta para que el testigo de autenticación use posteriormente cuando genera credenciales dinámicas para dicha instancia de testigo adicional.
En un primer conjunto de realizaciones del método, el método puede comprender cualquiera de los métodos de carga de instancias descritos anteriormente y el método puede comprender además las siguientes etapas.
El método puede comprender una etapa preliminar, una primera etapa de proceso de carga para transferir a un testigo de autenticación objetivo el valor de una clave maestra de grupo de instancias de usuario y una segunda etapa de proceso de carga para transferir al objetivo un conjunto de valores de datos de instancia.
La etapa preliminar del método puede comprender las siguientes etapas. Un valor de una clave maestra de lote puede generarse y asociarse con cada lote de testigos de un conjunto de lotes de testigos, de modo que el valor de la clave maestra de lote de cualquier lote de testigos particular puede ser único para ese lote de testigos particular. Esta etapa puede realizarse por un servidor de generación de claves maestras por lotes. A continuación, el valor de una clave maestra de lote puede cargarse, recibirse y almacenarse en testigos de autenticación del lote de testigos. Esta etapa puede realizarse, por ejemplo, por un dispositivo de inicialización de testigos y los testigos de autenticación. Un valor de una clave maestra de grupo de instancias de usuario puede generarse y asociarse con un grupo de instancias de usuario particular, de modo que este valor puede ser único para ese grupo de instancias de usuario particular.
La primera etapa de proceso de carga puede comprender las siguientes etapas. Un primer servidor de carga de instancia (u otra entidad) puede generar un primer mensaje de carga de etapa (al que también se puede hacer referencia en cualquier otro sitio de esta solicitud como primer mensaje de carga o primer mensaje de carga de grupo de instancias de usuario). El primer mensaje de carga de etapa puede enviarse al testigo de autenticación objetivo. Esto puede realizarse, por ejemplo, por el primer servidor de carga y/u otra entidad. El testigo de autenticación objetivo puede recibir y puede procesar el primer mensaje de carga de etapa.
La primera etapa de proceso de carga puede comprender además las siguientes etapas. Para cada uno de dichos lotes de testigos, se puede determinar un valor relacionado con el lote, por ejemplo, por el primer servidor de carga de instancia u otra entidad, de modo que es posible que se pueda calcular el mismo valor de la clave maestra de grupo de instancias de usuario como una función de cualquier par de unas claves maestras de lote de uno cualquiera particular de dichos lotes de testigos y el valor relacionado con el lote correspondiente a ese lote de testigos particular. El primer servidor de carga de instancia (u otra entidad) puede incluir el conjunto de valores relacionados con el lote en el primer mensaje de carga de etapa. El testigo de autenticación objetivo puede recuperar del primer mensaje de carga de etapa que puede haber recibido un valor relacionado con el lote que corresponde al mismo lote de testigos al que también corresponde una clave maestra de lote comprendida en el testigo de autenticación objetivo. A continuación, el testigo de autenticación objetivo puede calcular el valor de la clave maestra de grupo de instancias de usuario como una función de esa clave maestra de lote incluida en el testigo de autenticación objetivo y el valor relacionado con el lote que el testigo de autenticación objetivo puede haber recuperado. A continuación, el testigo de autenticación objetivo puede almacenar el valor obtenido de la clave maestra de grupo de instancias de usuario.
La segunda etapa de proceso de carga puede comprender las siguientes etapas. Un segundo servidor de carga de instancia (u otra entidad) puede generar un segundo mensaje de carga de etapa (al que también se puede hacer referencia en cualquier otro sitio de esta solicitud como un segundo mensaje de carga). El segundo mensaje de carga de etapa puede enviarse al testigo de autenticación objetivo. Esto puede realizarse, por ejemplo, por el segundo servidor de carga y/u otra entidad. El testigo de autenticación objetivo puede recibir y puede procesar el segundo mensaje de carga de etapa.
La segunda etapa de proceso de carga puede comprender además las siguientes etapas. Se puede generar un conjunto de valores de datos de instancia para la instancia de testigo adicional, por ejemplo, por el segundo servidor de carga de instancia u otra entidad. El conjunto generado de valores de datos de instancia puede incluirse en el segundo mensaje de carga de etapa, por ejemplo, por el segundo servidor de carga de instancia u otra entidad. El segundo mensaje de carga de etapa puede asegurarse con la clave maestra de grupo de instancias de usuario o una clave derivada de la clave maestra de grupo de instancias de usuario, por ejemplo, por el segundo servidor de carga de instancia u otra entidad. El testigo de autenticación objetivo puede recuperar dicho conjunto de valores de datos de instancia del segundo mensaje de carga de etapa que ha recibido usando el valor de la clave maestra de grupo de instancias de usuario que el testigo de autenticación objetivo puede haber obtenido en la primera etapa de proceso de carga. El testigo de autenticación objetivo puede determinar los valores de un conjunto de claves secretas de dicha instancia de testigo adicional usando dicho conjunto recuperado de valores de datos de instancia, de modo que dicho conjunto de claves secretas de la instancia de testigo adicional puede comprender la clave de generación de credenciales secreta de la instancia de testigo adicional.
En un segundo conjunto de realizaciones, el método puede comprender cualquiera de los métodos del primer conjunto de realizaciones de modo que cada valor relacionado con el lote particular en dicho primer mensaje de carga de etapa puede generarse encriptando la clave maestra de grupo de instancias de usuario con la clave maestra del lote asociada con el lote de testigos al que corresponde dicho valor relacionado con el lote particular y de modo que el testigo de autenticación objetivo obtiene el valor de la clave maestra de grupo de instancias de usuario desencriptando - con dicha clave maestra de lote comprendida en el testigo objetivo - el valor relacionado con el lote comprendido en el primer mensaje de carga de etapa que corresponde al lote de testigos al que también corresponde dicha clave maestra de lote comprendida en el testigo objetivo.
En un tercer conjunto de realizaciones, el método puede comprender cualquiera de los métodos del primer al segundo conjunto de realizaciones, de modo que dicho conjunto de valores de datos de instancia comprendidos en el segundo mensaje de carga de etapa puede encriptarse usando la clave maestra de grupo de instancias de usuario y de modo que el testigo de autenticación objetivo puede recuperar dicho conjunto de valores de datos de instancia del segundo mensaje de carga de etapa desencriptando el conjunto encriptado de valores de datos de instancia del segundo mensaje de carga de etapa usando el valor de la clave maestra de grupo de instancias de usuario que el testigo de autenticación objetivo ha obtenido en el primera etapa de proceso de carga. En algunas realizaciones, el conjunto de valores de datos de instancia comprendidos en el segundo mensaje de carga de etapa se puede encriptar con la clave maestra de grupo de instancias de usuario y el testigo de autenticación objetivo puede recuperar dicho conjunto de valores de datos de instancia del segundo mensaje de carga de etapa desencriptando el conjunto encriptado de valores de datos de instancia del segundo mensaje de carga de etapa con el valor de la clave maestra de grupo de instancias de usuario que el testigo de autenticación objetivo puede haber obtenido en la primera etapa de proceso de carga. En algunas realizaciones, el conjunto de valores de datos de instancia comprendidos en el segundo mensaje de carga de etapa se puede encriptar con una clave derivada de la clave maestra de grupo de instancias de usuario y el testigo de autenticación objetivo puede recuperar dicho conjunto de valores de datos de instancia del segundo mensaje de carga de etapa desencriptando el conjunto encriptado de valores de datos de instancia del segundo mensaje de carga de etapa con una clave derivada del valor de la clave maestra de grupo de instancias de usuario que el testigo de autenticación objetivo puede haber obtenido en la primera etapa de proceso de carga.
En un cuarto conjunto de realizaciones, el método puede comprender cualquiera de los métodos del primer al tercer conjunto de realizaciones, de modo que la clave de generación de credenciales secreta de la instancia de testigo adicional puede estar comprendida en dicho conjunto de valores de datos de instancia comprendidos en el segundo mensaje de carga de etapa.
En un quinto conjunto de realizaciones, el método puede comprender cualquiera de los métodos del primero al cuarto conjuntos de realizaciones de modo que el testigo de autenticación objetivo puede derivar la clave de generación de credenciales secreta de la instancia de testigo adicional de dicho conjunto de valores de datos de instancia comprendidos en el segundo mensaje de carga de etapa.
En un sexto conjunto de realizaciones, el método puede comprender cualquiera de los métodos del primero al quinto conjuntos de realizaciones de modo que el testigo de autenticación objetivo puede determinar los valores de una o más claves de carga útil de dicho conjunto de valores de datos de instancia comprendidos en el segundo mensaje de carga de etapa, de modo que dichas claves de carga útil se pueden usar posteriormente para asegurar los mensajes posteriores que pueden intercambiarse entre un servidor de aplicaciones y el testigo de autenticación objetivo y que pueden estar destinados o relacionados con dicha instancia de testigo adicional.
En un séptimo conjunto de realizaciones, el método puede comprender cualquiera de los métodos del primero al sexto conjuntos de realizaciones, de modo que el primer mensaje de carga de etapa o el segundo mensaje de carga de etapa también puede comprender un elemento de datos que identifica la instancia de testigo adicional o un elemento de datos que identifica el grupo de instancias de usuario de la instancia de testigo adicional.
En un octavo conjunto de realizaciones, el método puede comprender cualquiera de los métodos del primero al séptimo conjuntos de realizaciones, de modo que el primer mensaje de carga de etapa o el segundo mensaje de carga de etapa también comprenden otros elementos de datos de la instancia de testigo adicional.
Se ha descrito un número de implementaciones. Sin embargo, se entenderá que pueden hacerse diversas modificaciones. Por ejemplo, los elementos de una o más implementaciones pueden combinarse, eliminarse, modificarse o complementarse para formar implementaciones adicionales. Por consiguiente, otras implementaciones están dentro del ámbito de las reivindicaciones adjuntas. Además, aunque puede haberse desvelado una característica particular de la presente invención con respecto a únicamente una de varias implementaciones, tal característica puede combinarse con una o más otras características de las otras implementaciones según pueda desearse y sea ventajoso para cualquier aplicación dada o particular. Aunque se han descrito anteriormente diversas realizaciones de la presente invención, debería entenderse que se han presentado únicamente a modo de ejemplo, y no como limitación. En particular, por supuesto, no es posible describir cada combinación concebible de componentes o metodologías para los propósitos de describir la materia objeto reivindicada, pero un experto en la materia puede reconocer que son posibles muchas otras combinaciones y permutaciones de la presente invención. Por lo tanto, el alcance y ámbito de la presente invención no deberían limitarse por ninguna de las realizaciones ilustrativas descritas anteriormente; en su lugar, el alcance de al menos una realización de la invención se define únicamente de acuerdo con las siguientes reivindicaciones y sus equivalentes.

Claims (15)

REIVINDICACIONES
1. Un testigo de autenticación para autenticar a un usuario o para asegurar la interacción entre dicho usuario y una o más aplicaciones, estando adaptado el testigo de autenticación para recibir una instancia de testigo, comprendiendo dicha instancia de testigo datos de instancia y estando asociada dicha instancia de testigo con dicho usuario,
estando además adaptado el testigo de autenticación para generar una credencial dinámica usando una clave de generación de credencial secreta comprendida o derivada de los datos de instancia de dicha instancia de testigo para autenticar dicho usuario o para asegurar la interacción entre dicho usuario y dicha una o más aplicaciones;
de modo que el testigo de autenticación está comprendido en un lote de testigos de una pluralidad de lotes de testigos, de modo que a cada lote de testigos de dicha pluralidad de lotes de testigos se le asocia un valor de una clave maestra de lote y de modo que el testigo de autenticación comprende el valor de la clave maestra de lote de dicho lote de testigos que comprende el testigo de autenticación;
estando además adaptado el testigo de autenticación para recibir y procesar, como parte de una primera etapa de proceso de carga para transferir al testigo de autenticación un valor de una clave maestra de grupo de instancias de usuario, un primer mensaje de carga de etapa que comprende un conjunto de valores relacionados con el lote, un valor relacionado con el lote para cada uno de dicha pluralidad de lotes de testigos, en donde dicho procesamiento de dicho primer mensaje de carga de etapa comprende:
- recuperar del primer mensaje de carga de etapa que el testigo de autenticación ha recibido un valor relacionado con el lote que corresponde al mismo lote de testigos al que también corresponde dicha clave maestra de lote, cuyo valor está comprendido en el testigo de autenticación objetivo; y
- calcular el valor de la clave maestra de grupo de instancias de usuario como una función de dicha clave maestra de lote comprendida en el testigo de autenticación objetivo y dicho valor relacionado con el lote que el testigo de autenticación objetivo ha recuperado del primer mensaje de carga de etapa;
el testigo de autenticación además está adaptado para recibir y procesar, como parte de una segunda etapa de proceso de carga para transferir al testigo de autenticación un conjunto de valores de datos de instancia para dicha instancia de testigo, un segundo mensaje de carga de etapa que incluye dicho conjunto de valores de datos de instancia para dicha instancia de testigo y que se asegura con dicho valor de la clave maestra de grupo de instancias de usuario o una clave derivada de dicho valor de la clave maestra de grupo de instancias de usuario, en donde dicho procesamiento de dicho segundo mensaje de carga de etapa comprende:
- recuperar dicho conjunto de valores de datos de instancia del segundo mensaje de carga de etapa que ha recibido el testigo de autenticación, usando el valor de la clave maestra de grupo de instancias de usuario que el testigo de autenticación ha calculado en la primera etapa de proceso de carga; y
- determinar los valores de un conjunto de claves secretas de dicha instancia de testigo usando dicho conjunto recuperado de valores de datos de instancia, de modo que dicho conjunto de claves secretas de la instancia de testigo comprende dicha clave de generación de credenciales secreta para que el testigo de autenticación la use posteriormente cuando genera credenciales dinámicas para dicha instancia de testigo.
2. El testigo de autenticación de la reivindicación 1,
de modo que cada valor relacionado con el lote particular en dicho primer mensaje de carga de etapa se genera encriptando una clave maestra de grupo de instancias de usuario con la clave maestra del lote asociada con el lote de testigos al que corresponde dicho valor relacionado con el lote particular; y estando además adaptado el testigo de autenticación para obtener dicho valor de la clave maestra de grupo de instancias de usuario desencriptando, con dicho valor de clave maestra de lote comprendido en el testigo de autenticación objetivo del testigo objetivo, estando el valor relacionado con el lote comprendido en el primer mensaje de carga de etapa que corresponde al lote de testigos al que también corresponde dicho valor de clave maestra del lote comprendido en el testigo de autenticación objetivo del testigo objetivo.
3. El testigo de autenticación de cualquiera de las reivindicaciones anteriores,
de modo que dicho conjunto de valores de datos de instancia comprendidos en el segundo mensaje de carga de etapa se encripta usando la clave maestra de grupo de instancias de usuario;
estando además adaptado el testigo de autenticación para recuperar dicho conjunto de valores de datos de instancia del segundo mensaje de carga de etapa desencriptando el conjunto encriptado de valores de datos de instancia del segundo mensaje de carga de etapa usando el valor de la clave maestra de grupo de instancias de usuario que el testigo de autenticación objetivo ha obtenido en la primera etapa de proceso de carga.
4. El testigo de autenticación de cualquiera de las reivindicaciones anteriores, adaptado además para obtener dicha clave de generación de credenciales secreta de entre dicho conjunto de valores de datos de instancia comprendidos en el segundo mensaje de carga de etapa.
5. El testigo de autenticación de cualquiera de las reivindicaciones anteriores, adaptado además para derivar dicha clave de generación de credenciales secreta de dicho conjunto de valores de datos de instancia comprendidos en el segundo mensaje de carga de etapa.
6. El testigo de autenticación de cualquiera de las reivindicaciones anteriores, adaptado además para determinar los valores de una o más claves de carga útil a partir de dicho conjunto de valores de datos de instancia comprendidos en el segundo mensaje de carga de etapa, y para usar posteriormente dichas claves de carga útil para asegurar los mensajes posteriores intercambiados con un servidor de aplicaciones y destinados a o relacionados con dicha instancia de testigo.
7. El testigo de autenticación de cualquiera de las reivindicaciones anteriores, en donde el testigo de autenticación es un dispositivo de hardware especializado.
8. El testigo de autenticación de cualquiera de las reivindicaciones anteriores, en donde el testigo de autenticación es un dispositivo de hardware seguro.
9. Un sistema para autenticar una pluralidad de usuarios o para asegurar la interacción entre dicha pluralidad de usuarios y una aplicación accesible de manera remota, comprendiendo el sistema un primer lote de testigos de testigos de autenticación de acuerdo con cualquiera de las reivindicaciones anteriores, y un segundo lote de testigos de testigos de autenticación de acuerdo con cualquiera de las reivindicaciones anteriores.
10. El sistema de la reivindicación 9, en donde un primer valor de clave maestra de lote está asociado con el primer lote de testigos y en donde un segundo valor de clave maestra de lote que es diferente del primer valor de clave maestra de lote está asociado con el segundo lote de testigos.
11. El sistema de cualquiera de las reivindicaciones 9 a 10, en donde el primer lote de testigos comprende testigos de hardware.
12. El sistema de cualquiera de las reivindicaciones 9 a 11, en donde el segundo lote de testigos comprende testigos de software.
13. El sistema de cualquiera de las reivindicaciones 9 a 12, que comprende testigos de software y testigos de hardware y en donde el primer lote de testigos comprende todos los testigos de hardware y el segundo lote de testigos comprende todos los testigos de software.
14. Un método para cargar una instancia de testigo en un testigo de autenticación objetivo adaptado para generar credenciales dinámicas, comprendiendo el método una primera etapa de proceso de carga para transferir al testigo de autenticación objetivo un valor de una clave maestra de grupo de instancias de usuario y una segunda etapa de proceso de carga para transferir al testigo de autenticación objetivo un conjunto de valores de datos de instancia, de modo que el testigo de autenticación objetivo está comprendido en un lote de testigos de una pluralidad de lotes de testigos, de modo que con cada lote de testigos de dicha pluralidad de lotes de testigos se asocia un valor de una clave maestra de lote y de modo que el testigo de autenticación objetivo comprende el valor de la clave maestra de lote de dicho lote de testigos que comprende el testigo de autenticación objetivo;
comprendiendo la primera etapa de proceso de carga:
- generar un primer mensaje de carga de etapa, comprendiendo dicha generación de dicho primer mensaje de carga de etapa:
- determinar para cada uno de dichos lotes de testigos un valor relacionado con el lote de modo que sea posible que dicho valor de clave maestra de grupo de instancias de usuario se pueda calcular como una función del valor de clave maestra de lote asociado con el lote de testigos que comprende dicho testigo de autenticación objetivo y el valor relacionado con el lote correspondiente al lote de testigos que comprende dicho testigo de autenticación objetivo, e
- incluir dichos valores relacionados con el lote en el primer mensaje de carga de etapa;
- enviar dicho primer mensaje de carga de etapa a dicho testigo de autenticación objetivo;
comprendiendo la segunda etapa de proceso de carga:
- generar un segundo mensaje de carga de etapa, comprendiendo dicha generación de dicho segundo mensaje de carga de etapa:
- generar un conjunto de valores de datos de instancia para dicha instancia de testigo,
- incluir el conjunto generado de valores de datos de instancia en el segundo mensaje de carga de etapa, y
- asegurar el segundo mensaje de carga de etapa con dicha clave maestra de grupo de instancias de usuario o una clave derivada de dicha clave maestra de grupo de instancias de usuario;
- enviar dicho segundo mensaje de carga de etapa a dicho testigo de autenticación objetivo.
15. Un método para recibir una instancia de testigo en un testigo de autenticación objetivo adaptado para generar credenciales dinámicas, comprendiendo el método una primera etapa de proceso de carga para transferir al testigo de autenticación objetivo un valor de una clave maestra de grupo de instancias de usuario, y una segunda etapa de proceso de carga para transferir al testigo de autenticación objetivo un conjunto de valores de datos de instancia para la instancia de testigo,
de modo que el testigo de autenticación objetivo está comprendido en un lote de testigos de una pluralidad de lotes de testigos, de modo que a cada lote de testigos de dicha pluralidad de lotes de testigos se le asocia un valor de una clave maestra de lote y de modo que el testigo de autenticación objetivo comprende el valor de la clave maestra de lote de dicho lote de testigos que comprende el testigo de autenticación objetivo;
comprendiendo la primera etapa de proceso de carga que el testigo de autenticación objetivo reciba y procese un primer mensaje de carga de etapa que comprende un conjunto de valores relacionados con el lote, un valor relacionado con el lote para cada uno de dichos lotes de testigos, en donde el valor relacionado con el lote correspondiente al lote de testigos que comprende el testigo de autenticación objetivo se ha determinado de tal manera que es posible calcular dicho valor de dicha clave maestra de grupo de instancias de usuario como una función del valor de la clave maestra de lote asociado con el lote de testigos que comprende el testigo de autenticación objetivo y el valor relacionado con el lote correspondiente al lote de testigos que comprende el testigo de autenticación objetivo, comprendiendo el procesamiento de dicho primer mensaje de carga de etapa:
- recuperar el testigo de autenticación objetivo del primer mensaje de carga de etapa que ha recibido el valor relacionado con el lote correspondiente al lote de testigos que comprende el testigo de autenticación objetivo,
- calcular el testigo de autenticación objetivo dicho valor de la clave maestra de grupo de instancias de usuario como una función de dicha clave maestra de lote comprendida en el testigo de autenticación objetivo y dicho valor relacionado con el lote que el testigo de autenticación objetivo ha recuperado del primer mensaje de carga de etapa, y
- almacenar el testigo de autenticación objetivo el valor calculado de la clave maestra de grupo de instancias de usuario;
comprendiendo la segunda etapa de proceso de carga que el testigo de autenticación objetivo reciba y procese un segundo mensaje de carga de etapa que incluye dicho conjunto de valores de datos de instancia para dicha instancia de testigo y que se asegura con dicha clave maestra de grupo de instancias de usuario o una clave derivada de la clave maestra de grupo de instancias de usuario, comprendiendo el procesamiento de dicho segundo mensaje de carga de etapa:
- recuperar el testigo de autenticación objetivo dicho conjunto de valores de datos de instancia del segundo mensaje de carga de etapa que ha recibido usando el valor de la clave maestra de grupo de instancias de usuario que el testigo de autenticación objetivo ha calculado en la primera etapa de proceso de carga; y
- determinar el testigo de autenticación objetivo los valores de un conjunto de claves secretas de dicha instancia de testigo usando dicho conjunto recuperado de valores de datos de instancia, de modo que dicho conjunto de claves secretas de dicha instancia de testigo comprende una clave de generación de credenciales secreta para que el testigo de autenticación la use posteriormente cuando genera credenciales dinámicas para dicha instancia de testigo.
ES20175565T 2014-10-31 2015-10-30 Testigo de autenticación fuerte multiusuario Active ES2953529T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US201462073457P 2014-10-31 2014-10-31

Publications (1)

Publication Number Publication Date
ES2953529T3 true ES2953529T3 (es) 2023-11-14

Family

ID=55953359

Family Applications (1)

Application Number Title Priority Date Filing Date
ES20175565T Active ES2953529T3 (es) 2014-10-31 2015-10-30 Testigo de autenticación fuerte multiusuario

Country Status (5)

Country Link
US (1) US10205711B2 (es)
EP (2) EP3787226B1 (es)
CN (2) CN107113175B (es)
ES (1) ES2953529T3 (es)
WO (1) WO2016114841A1 (es)

Families Citing this family (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014113817A2 (en) * 2013-01-21 2014-07-24 Humetrix. Com, Inc. Secure real-time health record exchange
US10430894B2 (en) 2013-03-21 2019-10-01 Khoros, Llc Gamification for online social communities
US10541996B1 (en) * 2015-06-15 2020-01-21 National Technology & Engineering Solutions Of Sandia, Llc Methods and systems for authenticating identity
US11343101B2 (en) * 2015-08-11 2022-05-24 Vescel, Llc Authentication through verification of an evolving identity credential
US10505957B2 (en) * 2015-12-29 2019-12-10 Oath Inc. User verification
US10817593B1 (en) * 2015-12-29 2020-10-27 Wells Fargo Bank, N.A. User information gathering and distribution system
US10127399B1 (en) * 2015-12-29 2018-11-13 EMC IP Holding Company LLC Secrets as a service
US10348713B2 (en) 2016-09-16 2019-07-09 Oracle International Corporation Pluggable authentication for enterprise web application
US10462124B2 (en) 2016-12-30 2019-10-29 Google Llc Authenticated session management across multiple electronic devices using a virtual session manager
US10541992B2 (en) * 2016-12-30 2020-01-21 Google Llc Two-token based authenticated session management
CN108696868B (zh) * 2017-03-01 2020-06-19 西安西电捷通无线网络通信股份有限公司 用于网络连接的凭证信息的处理方法和装置
EP3376421A1 (en) * 2017-03-17 2018-09-19 Gemalto Sa Method for authenticating a user and corresponding device, first and second servers and system
DE102017105771A1 (de) * 2017-03-17 2018-09-20 Deutsche Telekom Ag Verfahren zur Zugangskontrolle
US10949843B2 (en) 2017-05-22 2021-03-16 Hussein Talaat Mouftah Methods and systems for conjugated authentication and authorization
KR101981942B1 (ko) * 2017-08-30 2019-05-24 (주)와이브레인 두뇌자극장치의 사용 권한을 설정하는 방법 및 이를 구현하는 장치
US11470161B2 (en) * 2018-10-11 2022-10-11 Spredfast, Inc. Native activity tracking using credential and authentication management in scalable data networks
US10999278B2 (en) 2018-10-11 2021-05-04 Spredfast, Inc. Proxied multi-factor authentication using credential and authentication management in scalable data networks
US10346449B2 (en) 2017-10-12 2019-07-09 Spredfast, Inc. Predicting performance of content and electronic messages among a system of networked computing devices
US11570128B2 (en) 2017-10-12 2023-01-31 Spredfast, Inc. Optimizing effectiveness of content in electronic messages among a system of networked computing device
US10650130B2 (en) 2017-11-06 2020-05-12 Ubs Business Solutions Ag System and method for facilitating authentication via a short-range wireless token
US11861025B1 (en) 2018-01-08 2024-01-02 Rankin Labs, Llc System and method for receiving and processing a signal within a TCP/IP protocol stack
US10594773B2 (en) 2018-01-22 2020-03-17 Spredfast, Inc. Temporal optimization of data operations using distributed search and server management
US11061900B2 (en) 2018-01-22 2021-07-13 Spredfast, Inc. Temporal optimization of data operations using distributed search and server management
US11689543B2 (en) 2018-08-10 2023-06-27 Rankin Labs, Llc System and method for detecting transmission of a covert payload of data
FR3085777B1 (fr) * 2018-09-12 2020-10-09 Idemia Identity & Security France Procede et systeme de vote electronique a identification biometrique
CN109302422B (zh) * 2018-11-22 2022-02-25 北京顺丰同城科技有限公司 一种登录移动应用的方法、移动终端、电子设备、系统及存储介质
US12418406B2 (en) * 2019-04-26 2025-09-16 Barbara Jean Wilk Authentication using a decentralized and/or hybrid decentralized secure cryptographic key storage method
US11917061B2 (en) * 2019-04-26 2024-02-27 Barbara Jean Wilk Decentralized and/or hybrid decentralized secure cryptographic key storage method
US11477182B2 (en) * 2019-05-07 2022-10-18 International Business Machines Corporation Creating a credential dynamically for a key management protocol
US11055166B2 (en) * 2019-05-28 2021-07-06 Rankin Labs, Llc Covertly storing a payload of data within a network
US11729184B2 (en) 2019-05-28 2023-08-15 Rankin Labs, Llc Detecting covertly stored payloads of data within a network
US11432149B1 (en) 2019-10-10 2022-08-30 Wells Fargo Bank, N.A. Self-sovereign identification via digital credentials for selected identity attributes
CN110912794B (zh) * 2019-11-15 2021-07-16 国网安徽省电力有限公司安庆供电公司 基于令牌集的近似匹配策略
US11366891B2 (en) * 2019-11-25 2022-06-21 Jpmorgan Chase Bank, N.A. Method and system for facilitating an identification of an application
WO2021113626A1 (en) 2019-12-06 2021-06-10 John Rankin High-level programming language which utilizes virtual memory
IL274674A (en) * 2020-05-14 2021-12-01 Zion Kopelovitz Ben System and method to support message authentication
CA3177396A1 (en) * 2020-06-29 2022-01-06 Prabhu PALANISAMY Temporary cloud provider credentials via secure discovery framework
US11438289B2 (en) 2020-09-18 2022-09-06 Khoros, Llc Gesture-based community moderation
US12120078B2 (en) 2020-09-18 2024-10-15 Khoros, Llc Automated disposition of a community of electronic messages under moderation using a gesture-based computerized tool
US11714629B2 (en) 2020-11-19 2023-08-01 Khoros, Llc Software dependency management
DE102021000603A1 (de) 2021-02-05 2022-08-11 Giesecke+Devrient Mobile Security Gmbh Chip-Initialisierung mit Betriebssystemladen
US12495042B2 (en) * 2021-08-16 2025-12-09 Capital One Services, Llc Systems and methods for resetting an authentication counter
US11895101B2 (en) * 2021-11-22 2024-02-06 Dell Products, L.P. Machine learning development hub
US11949716B2 (en) 2022-01-31 2024-04-02 Bank Of America Corporation System for secure channel selection for multi-factor authentication using non-fungible electronic resources
CN120615205A (zh) * 2023-02-10 2025-09-09 辉美医疗器械有限公司 输注装置和输注装置处的方法
US12261844B2 (en) 2023-03-06 2025-03-25 Spredfast, Inc. Multiplexed data exchange portal interface in scalable data networks
US12531748B2 (en) * 2023-08-15 2026-01-20 Bank Of America Corporation System for dynamic, secure, token-based snapshot generation

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8166296B2 (en) * 2004-10-20 2012-04-24 Broadcom Corporation User authentication system
CN101120351B (zh) * 2005-02-18 2010-10-06 Rsa安全公司 派生种子的分发方法
US7900247B2 (en) * 2005-03-14 2011-03-01 Microsoft Corporation Trusted third party authentication for web services
US8245292B2 (en) * 2005-11-16 2012-08-14 Broadcom Corporation Multi-factor authentication using a smartcard
EP1811421A1 (en) * 2005-12-29 2007-07-25 AXSionics AG Security token and method for authentication of a user with the security token
US7930554B2 (en) * 2007-05-31 2011-04-19 Vasco Data Security,Inc. Remote authentication and transaction signatures
US8302167B2 (en) * 2008-03-11 2012-10-30 Vasco Data Security, Inc. Strong authentication token generating one-time passwords and signatures upon server credential verification
US9021601B2 (en) * 2009-10-23 2015-04-28 Vasco Data Security, Inc. Strong authentication token usable with a plurality of independent application providers
US9910996B2 (en) * 2010-06-16 2018-03-06 Vasco Data Security, Inc. Mass storage device memory encryption methods, systems, and apparatus
ES2680152T3 (es) * 2012-08-03 2018-09-04 OneSpan International GmbH Método y aparato de autenticación conveniente para el usuario usando una aplicación de autenticación móvil
US9286455B2 (en) * 2012-10-04 2016-03-15 Msi Security, Ltd. Real identity authentication
US9124569B2 (en) * 2013-06-14 2015-09-01 Microsoft Technology Licensing, Llc User authentication in a cloud environment

Also Published As

Publication number Publication date
US10205711B2 (en) 2019-02-12
EP3787226B1 (en) 2023-06-07
EP3787226A1 (en) 2021-03-03
WO2016114841A1 (en) 2016-07-21
EP3213459B1 (en) 2020-05-20
EP3213459A1 (en) 2017-09-06
CN111884806A (zh) 2020-11-03
CN107113175B (zh) 2020-08-04
EP3787226C0 (en) 2023-06-07
CN111884806B (zh) 2024-03-15
US20170012951A1 (en) 2017-01-12
CN107113175A (zh) 2017-08-29

Similar Documents

Publication Publication Date Title
ES2953529T3 (es) Testigo de autenticación fuerte multiusuario
ES2971859T3 (es) Método y aparato para asegurar una aplicación móvil
ES2680152T3 (es) Método y aparato de autenticación conveniente para el usuario usando una aplicación de autenticación móvil
US20210350013A1 (en) Security systems and methods for continuous authorized access to restricted access locations
US9858401B2 (en) Securing transactions against cyberattacks
US9674705B2 (en) Method and system for secure peer-to-peer mobile communications
US10592651B2 (en) Visual image authentication
JP5816750B2 (ja) 生体イメージ情報を含む使い捨てパスワードを用いた認証方法及び装置
US9118662B2 (en) Method and system for distributed off-line logon using one-time passwords
ES2952534T3 (es) Un método, un sistema y un aparato que usan criptografía de seguridad hacia adelante para la verificación de códigos de acceso
US20130179944A1 (en) Personal area network (PAN) ID-authenticating systems, apparatus, method
EP2758922A2 (en) Securing transactions against cyberattacks
US9210134B2 (en) Cryptographic processing method and system using a sensitive data item
JP2020046808A (ja) 入出管理システム、入出管理装置、携帯可能電子装置、およびプログラム
US20250267144A1 (en) Enhanced one-time passcode devices