ES2822997T3 - Método para satisfacer una solicitud criptográfica que requiere un valor de una clave privada - Google Patents

Método para satisfacer una solicitud criptográfica que requiere un valor de una clave privada Download PDF

Info

Publication number
ES2822997T3
ES2822997T3 ES16164250T ES16164250T ES2822997T3 ES 2822997 T3 ES2822997 T3 ES 2822997T3 ES 16164250 T ES16164250 T ES 16164250T ES 16164250 T ES16164250 T ES 16164250T ES 2822997 T3 ES2822997 T3 ES 2822997T3
Authority
ES
Spain
Prior art keywords
private key
value
web browser
request
cryptographic
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
ES16164250T
Other languages
English (en)
Inventor
Luc Claes
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.)
Contactoffice Group
Original Assignee
Contactoffice Group
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 Contactoffice Group filed Critical Contactoffice Group
Application granted granted Critical
Publication of ES2822997T3 publication Critical patent/ES2822997T3/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
    • 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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • 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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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
    • 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/3247Cryptographic 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 digital signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

Método (2) para satisfacer una solicitud criptográfica que requiere un valor de una clave privada, y que comprende proporcionar (2) partes de código (100) a una unidad informática (60) que ejecuta un navegador web (10), siendo las partes de código (100) directamente ejecutables en el navegador web (10) para hacer que este realice un proceso criptográfico (1), incluyendo las etapas de: 1) recibir (11), mediante el navegador web (10), una solicitud criptográfica que requiere un valor de una clave privada; 2) solicitar (12), mediante el navegador web (10), un valor cifrado de la clave privada; 3) recibir (13), mediante el navegador web (10), el valor cifrado de la clave privada; 4) solicitar (14), mediante el navegador web (10), una entidad de desbloqueo; 5) recibir (15), mediante el navegador web (10), la entidad de desbloqueo; 6) descifrar (16), mediante el navegador web (10), el valor cifrado de la clave privada con la entidad de desbloqueo para obtener el valor de la clave privada; y 7) satisfacer (17), mediante el navegador web (10), la solicitud criptográfica utilizando el valor obtenido de la clave privada; en donde la etapa 4) del proceso criptográfico (1) comprende enviar, mediante el navegador web (10), una solicitud (14) para una entidad de desbloqueo a un usuario (30) a través de una interfaz de usuario de salida de la unidad informática (60) que ejecuta el navegador web (10) y la etapa 5) del proceso criptográfico (1) comprende recibir (15), mediante el navegador web (10), la entidad de desbloqueo del usuario (30) a través de una interfaz de entrada de usuario de la unidad informática (60).

Description

DESCRIPCIÓN
Método para satisfacer una solicitud criptográfica que requiere un valor de una clave privada
Campo de la invención
Según un primer aspecto, la invención da a conocer un método para satisfacer una solicitud criptográfica que requiere un valor de una clave privada. Según un segundo aspecto, la invención da a conocer un sistema para satisfacer una solicitud criptográfica que requiere un valor de una clave privada. Según un tercer aspecto, la invención da a conocer un conjunto de partes de código para satisfacer una solicitud criptográfica que requiere un valor de una clave privada. Según un cuarto aspecto, la invención da a conocer un proceso de generación de un conjunto de partes de código para satisfacer una solicitud criptográfica que requiere un valor de una clave privada.
Antecedentes de la invención
En los métodos criptográficos de clave asimétrica, se atribuyen un par de claves a cada usuario: el valor de la clave pública se difunde ampliamente, el valor de la clave privada solo lo conoce el usuario. Por ejemplo, en cifrado de datos, cualquiera puede utilizar el valor de la clave pública para cifrar los datos y, debido a que el valor de la clave privada es necesario para descifrar los datos, solo el usuario puede descifrar la información.
Otro uso de claves públicas y privadas es generar una firma digital segura para un mensaje. Un proceso conocido para generar una firma digital segura para un mensaje es el siguiente. Un remitente determina una huella de mensaje a partir del mensaje utilizando un método conocido por él y por un destinatario. Posteriormente, cifra la huella con el valor de la clave privada para generar una firma digital. El remitente envía luego el mensaje y la firma digital al destinatario.
Para verificar la autenticidad del mensaje, (1) el destinatario determina la huella del mensaje usando el mismo método que el remitente, y (2) descifra la firma digital usando el valor de la clave pública para generar una huella supuesta. Si la huella supuesta determinada en la etapa (2) es igual a la huella determinada en la etapa (1), esto significa que el remitente utilizó el valor correcto de la clave privada y se confirma la autenticidad del mensaje.
Un problema tanto del descifrado utilizando la clave privada como de la generación de firmas digitales utilizando la clave privada es que normalmente requieren la instalación de un software. Por tanto, no es posible realizarlos en cualquier unidad informática, como un ordenador público, o en cualquier tableta o smartphone.
Otro problema tanto del descifrado con la clave privada como de la generación de firmas digitales con la clave privada es que normalmente requieren que el usuario recuerde el valor de la clave privada, que puede comprender ochenta dígitos, o que el valor de la clave privada. se almacene localmente, evitando el descifrado o la generación de firmas digitales en un dispositivo compartido y evitando que el valor de la clave privada se comparta en múltiples dispositivos.
El documento US-A-2010/185862 divulga un método y sistema para el cifrado de datos de un mensaje de notación de objetos serializados (JSON) de JavaScript. El sistema incluye una entidad emisora, como un navegador web con una aplicación de cifrado, y una entidad receptora, como un navegador web con una aplicación de descifrado, que se comunican entre sí a través de Internet para intercambiar mensajes JSON cifrados. El cifrador puede incrustar la clave de cifrado dentro del propio mensaje JSON (es decir, un elemento Keylnfo) o en la raíz del árbol de documentos JSON en una lista de EncryptedKeys. El cifrador, utilizando la clave de cifrado, genera un objeto de datos para al menos un elemento de datos en el mensaje JSON y reemplaza el elemento de datos con el objeto de datos proporcionando un mensaje JSON modificado al navegador web. El mensaje JSON modificado se envía a la entidad receptora que comprende el descifrador. El descifrador localiza la clave correspondiente desde el elemento Keylnfo o desde un almacén de datos local. Usando la clave, el descifrador descifra el mensaje JSON modificado, es decir, el objeto de datos en el mensaje JSON modificado, para obtener el elemento de datos original y reemplaza el objeto de datos en el mensaje JSON modificado con el elemento de datos para obtener el mensaje JSON original. La patente de Estados Unidos US 8.726.009 B1 y la publicación de solicitud de patente de Estados Unidos US 2015/207783 dan a conocer el uso de contraseñas para autenticar usuarios en una aplicación de intercambio de mensajes basada en navegador.
H. Halpin: "The W3C web cryptography API", DOI: 10.1145/2567948.2579224, proporciona una documentación de las capacidades criptográficas y primitivas que se estandarizan para los navegadores web en el contexto de los entornos JavaScript.
Compendio de la invención
Según un primer aspecto, un objetivo de la invención es dar a conocer un método para satisfacer una solicitud criptográfica que requiere un valor de una clave privada, compatible con cualquier unidad informática que ejecute un navegador web, evitando que un usuario recuerde el valor de la clave privada. y evitando que el valor de la clave privada se almacene localmente.
Según este primer aspecto, la invención da a conocer un método para satisfacer una solicitud criptográfica que requiere un valor de una clave privada, y que comprende proporcionar partes de código a una unidad informática que ejecuta un navegador web, siendo las partes de código directamente ejecutables en el navegador web para hacer que este realice un proceso criptográfico que incluye las etapas de:
1) recibir, mediante el navegador web, una solicitud criptográfica que requiere un valor de una clave privada;
2) solicitar, mediante el navegador web, un valor cifrado de la clave privada;
3) recibir, a través del navegador web, el valor cifrado de la clave privada;
4) solicitar, mediante el navegador web, una entidad de desbloqueo;
5) recibir, mediante el navegador web, la entidad de desbloqueo;
6) descifrar, mediante el navegador web, el valor cifrado de la clave privada con la entidad de desbloqueo para obtener el valor de la clave privada; y
7) satisfacer, mediante el navegador web, la solicitud criptográfica utilizando el valor obtenido de la clave privada;
en donde la etapa 4) del proceso criptográfico comprende enviar, mediante el navegador web, una solicitud de una entidad de desbloqueo a un usuario a través de una interfaz de usuario de salida de la unidad informática que ejecuta el navegador web y la etapa 5) del proceso criptográfico comprende recibir, mediante el navegador web, la entidad de desbloqueo desde el usuario a través de una interfaz de entrada de usuario de la unidad informática. Con el método según la invención, se proporcionan partes de código a una unidad informática que ejecuta un navegador web para hacer que esta realice un proceso criptográfico. La unidad informática no tiene que satisfacer ninguna otra restricción que la de ejecutar un navegador web. Especialmente, la unidad informática no tiene que almacenar ningún software que no sea el navegador web y el método no instala ningún software en la unidad informática, ya que todos las etapas del proceso criptográfico se realizan en el navegador web tras la ejecución de las partes de código proporcionadas. Por lo tanto, la unidad informática puede ser un ordenador público en un cibercafé u obtenido de otra persona. La unidad informática puede ser un ordenador, una tableta o un teléfono inteligente.
No hay ningún requisito específico sobre el navegador web. La mayoría de los navegadores web modernos pueden realizar el proceso criptográfico cuando las partes de código se ejecutan en ellos.
Por lo tanto, el método para satisfacer una solicitud criptográfica que requiere un valor de una clave privada es totalmente compatible con una plataforma de correo electrónico basada en web que se puede abrir en un navegador web.
En el método según la invención, el usuario no tiene que recordar el valor de la clave privada, ya que se recibe el valor cifrado de la clave privada.
Además, el valor de la clave privada no se almacena sin cifrar. Por lo tanto, no existe ningún riesgo relacionado con la integridad y confidencialidad de la clave privada.
Tal como se usa en el presente documento, la expresión "recibir una solicitud criptográfica" puede significar "tratar con una solicitud criptográfica" o "procesar una solicitud criptográfica".
Tal como se usa en el presente documento, un "navegador web" es una aplicación de software para recuperar, presentar y transitar recursos de información en la World Wide Web. El navegador web que se utiliza en este documento no incluye ninguna extensión, subprograma o complemento. Si el navegador web se amplía con alguna extensión, subprograma o complemento, esta extensión, subprograma o complemento no se considera parte del navegador web. Específicamente, las etapas 1) a 7) se realizan en el propio navegador web y ninguna de estas etapas es realizada por ninguna extensión, subprograma o complemento del navegador web, subprograma de Java o en máquina virtual, tal como una máquina virtual de Java. El navegador web puede ser cualquier navegador web moderno que se ejecute en un ordenador de escritorio, ordenador portátil, tableta, teléfono inteligente, etc.
Es importante para la invención que las partes de código se ejecuten directamente en el navegador web y no en ninguna extensión, subprograma o complemento del navegador web. El uso de una extensión, subprograma o complemento requeriría instalar la extensión, el subprograma o el complemento en la unidad informática, lo que actualmente no es posible en tabletas o teléfonos inteligentes y está prohibido en ordenadores públicos. El uso de una extensión, un subprograma o un complemento también crearía un riesgo de violación de la seguridad. Además, el uso de una extensión, un subprograma o un complemento puede crear problemas de configuración o generar inestabilidades que bloquearían la unidad informática.
Hasta hace poco, no era posible ejecutar las etapas 1) a 7) directamente en el navegador web. Los inventores han aprovechado los avances recientes en las tecnologías de lenguajes de programación para inventar el proceso criptográfico según la invención en el que las etapas 1) a 7) se ejecutan directamente en el navegador web.
Tal como se usa en este documento, una "clave privada" se refiere a un método criptográfico de clave asimétrica, en el que se atribuyen un par de claves a cada usuario: el valor de una "clave pública" se difunde ampliamente y el valor de la "clave privada" es conocido. solo por el usuario. Tal como se usa en este documento, las expresiones "la clave privada" y "el valor de la clave privada" pueden usarse de forma equivalente. La expresión "un valor de una clave privada" puede entenderse como "el valor de una clave privada", ya que se espera que una clave privada tenga un solo valor.
Una ventaja del método según la invención es que la satisfacción de la solicitud criptográfica se realiza en la unidad informática. Por lo tanto, los datos confidenciales generados por esta satisfacción (por ejemplo, datos descifrados en caso de que la satisfacción comprenda un descifrado y datos de firma cifrados en caso de que la satisfacción comprenda una generación de firma digital) no están presentes en ningún otro lugar que no sea en la unidad informática. Por tanto, estos datos sensibles no tienen que ser transferidos a través de una conexión entre dispositivos, por ejemplo, un servidor y la unidad informática, en la que podrían ser leídos por un tercero.
El valor cifrado de la clave privada es el valor de la clave privada en forma cifrada. El método que se utilizó para cifrar el valor de la clave privada puede ser, por ejemplo, un AES (Estándar de cifrado avanzado) de 256 bits o una clave de bloque similar.
Tal como se usa en el presente documento, las "partes de código" son partes de código de software ejecutables en al menos un lenguaje de programación. Las partes de código preferiblemente incluyen scripts relacionados con las etapas 1) a 7). Tal como se usa en este documento, un "script" es un programa de unidad informática que automatiza la ejecución de tareas.
La provisión de las partes de código a la unidad informática se puede realizar de una vez o en varias fases. La totalidad o parte de las partes de código relacionadas con el proceso criptográfico también pueden proporcionarse junto con otras partes de código, por ejemplo relacionadas con una plataforma de correo electrónico basada en web. En una realización de la invención, la solicitud criptográfica es una solicitud de descifrado de datos cifrados, y el método comprende además proporcionar partes de código a la unidad informática para hacer que el navegador web realice una etapa, antes de la etapa 7) del proceso criptográfico. de recibir, mediante el navegador web, datos cifrados, y la etapa 7) del proceso criptográfico comprende descifrar, mediante el navegador web, los datos cifrados con el valor obtenido de la clave privada.
Esto hace posible utilizar el método según la invención para descifrar datos cifrados. Los datos cifrados pueden provenir de un servidor o de cualquier otra fuente de datos digitales, como un disco duro o una conexión de Internet. Preferiblemente, el cifrado de los datos cifrados no está relacionado con el cifrado del valor de la clave privada. Por ejemplo, los datos cifrados se pueden cifrar según un primer método de cifrado, que es un método criptográfico de clave asimétrica y el valor cifrado de la clave privada se puede cifrar según un segundo método de cifrado, que puede ser, por ejemplo, un método criptográfico de clave. simétrica.
En una realización de la invención, la solicitud criptográfica es una solicitud para la generación de una firma digital, y el método comprende además proporcionar partes de código a la unidad informática para hacer que el navegador web realice una etapa, antes de la etapa 7) del proceso criptográfico, de recibir, mediante el navegador web, los datos de firma iniciales, y la etapa 7) del proceso criptográfico (1) comprende cifrar, mediante el navegador web, los datos de firma iniciales con el valor obtenido de la clave privada.
Los datos de firma iniciales pueden ser una huella de un mensaje a firmar con la firma digital, la huella se crea aplicando una función resumen a dicho mensaje.
Preferiblemente, las partes de código comprenden scripts en lenguaje JavaScript. Más preferiblemente, las partes de código son scripts en lenguaje JavaScript.
Los scripts en lenguaje JavaScript son particularmente eficientes para una ejecución directa en un navegador web. El uso de lenguaje JavaScript para una secuencia compleja de etapas como el proceso criptográfico está lejos de ser obvio para el experto en la técnica. De hecho, se sabe que estas secuencias complejas de etapas son difíciles de crear en JavaScript porque JavaScript es un lenguaje de programación muy flexible normalmente diseñado para realizar funcionalidades básicas y no secuencias complejas de etapas.
Además, en JavaScript, muchos errores de programación solo se pueden detectar en la ejecución y no en la compilación. Sin embargo, los inventores han logrado utilizar de manera eficiente las ventajas del lenguaje JavaScript para implementar de manera eficiente el proceso criptográfico en un navegador web. Más específicamente, los inventores proponen usar un lenguaje de alto nivel de fuerza industrial compilado en JavaScript: JavaScript solo se usa como un lenguaje de bajo nivel, similar a un lenguaje ensamblador.
En una realización de la invención, al menos algunas etapas del proceso criptográfico se escriben primero en lenguaje Java como partes de código Java. Luego, las partes de código Java se compilan, por ejemplo, mediante Google Web Toolkit, en JavaScript para generar las partes de código que se ejecutarán en el navegador web. Muchos errores de programación pueden entonces detectarse durante esta compilación, es decir, antes de la ejecución.
Para proporcionar un orden de magnitud para la complejidad de la codificación, las partes de código en JavaScript ejecutadas en el navegador web pueden corresponder a aproximadamente 187 KLOC (187000 líneas de códigos) en Java que se compilan en aproximadamente 111 KLOC (111 000 líneas de códigos) en JavaScript.
En una realización de la invención, se proporcionan a la unidad informática partes de código para una plataforma de correo electrónico basada en web.
El proceso criptográfico es especialmente adecuado para realizarse en el marco de una plataforma de correo electrónico basada en web.
Preferiblemente, las partes de código se proporcionan a la unidad informática mediante una o varias etapas de descarga de las partes de código a la unidad informática a través de Internet.
En una realización de la invención, la etapa 2) del proceso criptográfico comprende enviar, mediante el navegador web, una solicitud de un valor cifrado de la clave privada a un servidor y la etapa 3) del proceso criptográfico comprende recibir, mediante el navegador web , el valor cifrado de la clave privada del servidor.
Tal como se usa en este documento, un "servidor" comprende medios para tratamiento de información digital y está configurado para proporcionar funcionalidad para otros dispositivos. Las etapas descritas en el presente documento como realizados por "un servidor" en realidad pueden ser realizados por una pluralidad de servidores.
Una ventaja del método según la invención es que el valor de la clave privada no se almacena sin cifrar en ningún servidor y no se transmite sin cifrar a ningún servidor. Por tanto, no hay riesgo de que se filtre el valor de la clave privada.
En una realización de la invención, la entidad de desbloqueo es al menos una de: una contraseña y una frase de contraseña. El usuario puede recordar fácilmente dicha contraseña o frase de contraseña.
Un usuario puede proporcionar fácilmente la entidad de desbloqueo. Una interfaz de usuario de salida puede ser, por ejemplo, una pantalla o unos altavoces. Una interfaz de entrada de usuario puede ser, por ejemplo, una pantalla táctil, un teclado, un ratón, un lector de tarjetas o un micrófono.
Preferiblemente, la solicitud criptográfica es compatible con al menos uno de los siguientes estándares: OpenPGP y X.509.
Los estándares OpenPGP y X.509 son preferibles porque son estándares abiertos y no propietarios.
Según un segundo aspecto, la invención da a conocer un sistema para satisfacer una solicitud criptográfica que requiere un valor de una clave privada, comprendiendo el sistema al menos un medio de almacenamiento que contiene partes de códigos que se pueden descargar a una unidad informática capaz de ejecutar un navegador web, siendo las partes de código directamente ejecutables en el navegador web para hacer que este realice el proceso criptográfico que se ha descrito anteriormente, comprendiendo las partes de código:
• primeras partes de código de software configuradas para recibir una solicitud criptográfica que requiere un valor de una clave privada;
• segundas partes de código de software configuradas para solicitar un valor cifrado de la clave privada;
• terceras partes de código de software configuradas para recibir el valor cifrado de la clave privada;
• cuartas partes de código de software configuradas para solicitar una entidad de desbloqueo;
• quintas partes de código de software configuradas para recibir la entidad de desbloqueo;
• sextas partes de código de software configuradas para descifrar el valor cifrado de la clave privada con la entidad de desbloqueo para obtener el valor de la clave privada; y
• séptimas partes de código de software configuradas para satisfacer la solicitud criptográfica utilizando el valor obtenido de la clave privada.
En una realización de la invención, el sistema comprende un servidor conectable a la unidad informática.
Según un tercer aspecto, la invención da a conocer un conjunto de partes de código para satisfacer una solicitud criptográfica que requiere un valor de una clave privada, siendo las partes de códigos directamente ejecutables en un navegador web para hacer que este realice el proceso criptográfico que se ha descrito anteriormente, comprendiendo las partes de código:
• primeras partes de código de software configuradas para recibir una solicitud criptográfica que requiere un valor de una clave privada;
• segundas partes de código de software configuradas para solicitar un valor cifrado de la clave privada;
• terceras partes de código de software configuradas para recibir el valor cifrado de la clave privada;
• cuartas partes de código de software configuradas para solicitar una entidad de desbloqueo;
• quintas partes de código de software configuradas para recibir la entidad de desbloqueo;
• sextas partes de código de software configuradas para descifrar el valor cifrado de la clave privada con la entidad de desbloqueo para obtener el valor de la clave privada; y
• séptimas partes de código de software configuradas para satisfacer la solicitud criptográfica utilizando el valor obtenido de la clave privada.
Preferiblemente, las partes de código comprenden scripts en lenguaje JavaScript.
Más preferiblemente, las partes de código son scripts en lenguaje JavaScript.
Según un cuarto aspecto, la invención da a conocer un proceso de generación del conjunto de partes de código y que comprende las etapas de:
• escribir, en lenguaje Java, partes de código Java correspondientes a las etapas del proceso criptográfico que se ha descrito anteriormente; y
• compilar dichas partes de código Java en lenguaje JavaScript para generar dicho conjunto de partes de código. Los scripts en lenguaje JavaScript son, con mucho, el tipo de software más eficiente para su ejecución en un navegador web sin complementos, extensiones o subprogramas. Sin embargo, son difíciles de crear ya que JavaScript es un lenguaje de programación muy flexible diseñado para realizar funcionalidades básicas y no para realizar secuencias complejas de etapas como el proceso criptográfico. Para resolver este problema, en una realización de la invención, parte, o la totalidad de, las etapas del proceso criptográfico se escriben en lenguaje Java y las partes de código Java se compilan para generar las partes de código en lenguaje JavaScript. Entonces, JavaScript se considera solo como un lenguaje de programación de bajo nivel y Java se utiliza como un lenguaje de programación de alto nivel, de tipo industrial y muy tipificado.
Breve descripción de las figuras
Para una mejor comprensión de la presente invención, se hará referencia a continuación, a modo de ejemplo, a los dibujos adjuntos en los que:
- la figura 1 ilustra una configuración según una realización de la invención;
- la Figura 2 ilustra un diagrama de flujo que incluye un método para satisfacer una solicitud criptográfica que requiere un valor de una clave privada y un proceso criptográfico, en una realización de la invención;
- la figura 3 ilustra un diagrama de flujo del proceso criptográfico realizado en el navegador web en una realización de la invención;
- la figura 4 muestra un diagrama de flujo de una primera realización del primer uso del proceso criptográfico; - la figura 5 muestra un diagrama de flujo de un ejemplo de la primera realización del primer uso del proceso criptográfico;
- la figura 6 muestra un diagrama de flujo de una primera realización del segundo uso del proceso criptográfico; y - la figura 7 muestra un diagrama de flujo de un proceso de generación de las partes de código en una realización de la invención.
Descripción de la invención
La presente invención se describirá con respecto a realizaciones particulares y haciendo referencia a ciertos dibujos, pero la invención no se limita a estos. Los dibujos descritos son solo esquemáticos y no limitativos. En los dibujos, el tamaño de algunos de los elementos puede estar exagerado y no estar dibujado a escala, con fines ilustrativos. Además, los términos primero, segundo, tercero y similares en la descripción y en las reivindicaciones se utilizan para distinguir entre elementos similares y no necesariamente para describir un orden secuencial o cronológico. Los términos son intercambiables en circunstancias apropiadas y las realizaciones de la invención pueden funcionar en otras secuencias diferentes a las descritas o ilustradas en este documento.
Además, las diversas realizaciones, aunque denominadas "preferidas", deben interpretarse como formas ejemplares en las que se puede implementar la invención, y no como limitando el alcance de la invención.
El término "que comprende", utilizado en las reivindicaciones, no debe interpretarse como restringido a los elementos o etapas enumerados a continuación; no excluye otros elementos o etapas. Este debe interpretarse como una especificación de la presencia de las características, números enteros, etapas o componentes indicados a los que se hace referencia, pero no excluye la presencia o adición de una o más características, números enteros, etapas o componentes o grupos de los mismos. Por lo tanto, el alcance de la expresión "un dispositivo que comprende A y B" no debe limitarse a dispositivos que constan únicamente de los componentes A y B, sino que con respecto a la presente invención, los únicos componentes enumerados del dispositivo son A y B, y Además, la reivindicación debe interpretarse en el sentido de que incluye equivalentes de esos componentes.
En las figuras, los elementos idénticos o análogos se pueden designar con un mismo número.
La figura 1 ilustra una configuración según una realización de la invención. Un usuario 30 usa una unidad informática 60 que tiene interfaces de entrada de usuario 50, interfaces de salida de usuario 40, una memoria 61 y medios para ejecutar software. La unidad informática 60 ejecuta un navegador web 10. La unidad informática 60 se puede conectar, preferiblemente a través de Internet, a un servidor 20.
La unidad informática 60 puede ser un ordenador, un ordenador de escritorio, un ordenador portátil, un teléfono móvil o una tableta. El navegador web 10 puede ejecutar el proceso criptográfico. El navegador web 10 puede ser, por ejemplo, cualquiera de Firefox 38 y posteriores (Mozilla, Mountain View, EE. UU.), Internet Explorer 10 y posteriores (Microsoft, Redmond, EE. UU.), Google Chrome 38 y posteriores (Google, Mountain View, EE. UU. ) o Safari 8 y posteriores (Apple, Cupertino, EE. UU.). El servidor 20 puede ser una unidad informática, una pluralidad de unidades informáticas, puede estar en la nube.
La conexión entre la unidad informática 60 y el servidor 20 puede ser una conexión de Internet. Esta puede ser permanente o temporal. Puede ser cableada y/o inalámbrica.
La figura 2 ilustra un diagrama de flujo que incluye un método 2 para satisfacer una solicitud criptográfica que requiere un valor de una clave privada y un proceso criptográfico 1, en una realización de la invención. El servidor 20 tiene, en su memoria, partes de código 100 directamente ejecutables en el navegador web 10 para hacer que este realice el proceso criptográfico 1. El servidor 20 proporciona 2 las partes de código 100 a la unidad informática 60. La provisión 2 de las partes de código 100 a la unidad informática 20 puede realizarse en una fase o en varias fases. Por ejemplo, si las partes de código 100 incluyen una pluralidad de divisiones de partes de código que corresponden cada una a una etapa de las etapas 11 a 17 de la Figura 3, la provisión 2 de las partes de código 100 se puede dividir en una pluralidad de fases de provisión, correspondiendo cada fase de provisión a una o más divisiones de partes de código.
La provisión 2 de las partes de código 100 a la unidad informática 20 puede comprender una o varias etapas de descarga de las partes de código 100 a la unidad informática 60 a través de Internet.
Cuando la unidad informática 60 recibe las partes de código 100, puede ejecutar las partes de código 100 en su navegador web 10 para hacer que el navegador web 10 realice el proceso criptográfico 1. El proceso criptográfico 1 puede realizarse en cualquier momento después de la recepción por la unidad informática 60 de las partes de código 100.
Las partes de código 100 comprenden preferiblemente al menos uno de: scripts, scripts en lenguaje JavaScript y partes de código en lenguaje JavaScript.
En una realización de la invención, el servidor 20 almacena también un valor cifrado de la clave privada relacionada con el usuario.
La figura 3 ilustra un diagrama de flujo del proceso criptográfico 1 como se realiza en el navegador web 10 en una realización de la invención. El navegador web 10 es capaz de realizar automáticamente las etapas del proceso criptográfico 1 debido a las partes de código 100.
El navegador web 10 recibe 11 una solicitud criptográfica que requiere un valor de una clave privada. La solicitud criptográfica es preferiblemente una solicitud para descifrar datos cifrados o una solicitud para generar una firma digital. La solicitud criptográfica puede provenir, por ejemplo, del usuario 20, a través de las interfaces de entrada de usuario 50.
El navegador web 10 solicita 12 el valor cifrado de la clave privada, por ejemplo enviando un mensaje al servidor 20. El valor cifrado de la clave privada está cifrado de tal manera que su descifrado requiere una entidad de desbloqueo, conocida por el usuario. 30. Por ejemplo, el cifrado de la clave privada puede utilizar AES de 256 bits.
El navegador web 10 recibe 13 el valor cifrado de la clave privada, por ejemplo, en un mensaje enviado desde el servidor 20.
El navegador web 10 solicita 14 la entidad de desbloqueo, por ejemplo, a través de las interfaces de salida de usuario 40 de la unidad informática 60.
El navegador web 10 recibe 15 la entidad de desbloqueo. La entidad de desbloqueo es preferiblemente al menos una de: una contraseña y una frase de contraseña. La entidad de desbloqueo se puede introducir preferiblemente a través de las interfaces de entrada de usuario 50. La entidad de desbloqueo preferiblemente no está almacenada en el servidor 20.
En una realización de la invención, la entidad de desbloqueo está almacenada en la unidad informática 60. Cuando el navegador web 10 solicita 14 la entidad de desbloqueo, su solicitud va a la unidad informática 60 y cuando el navegador web 10 recibe 15 la entidad de desbloqueo, la recibe de la unidad informática 60.
El navegador web 10 descifra el valor cifrado recibido de la clave privada con la entidad de desbloqueo recibida, para obtener el valor de la clave privada. Por tanto, el valor obtenido de la clave privada puede ser utilizado por el navegador web 10. El valor cifrado de la clave privada puede almacenarse en la unidad informática 60, ya sea de forma permanente o temporal, por ejemplo hasta que el navegador web 10 se cierre.
El navegador web 10 satisface 17 la solicitud criptográfica utilizando el valor obtenido de la clave privada. La satisfacción 17 de la solicitud criptográfica utiliza preferiblemente cualquiera de las tecnologías OpenPGP y X.509. Según un primer uso del proceso criptográfico 1, la solicitud criptográfica es una solicitud de descifrado de datos cifrados y la satisfacción 17 de la solicitud criptográfica comprende el descifrado de datos cifrados con el valor obtenido de la clave privada. Una primera realización de este primer uso del proceso criptográfico 1 se describe a continuación haciendo referencia a la Figura 4.
Según un segundo uso del proceso criptográfico 1, la solicitud criptográfica es una solicitud de generación de una firma digital y la satisfacción 17 de la solicitud criptográfica comprende el cifrado de los datos de firma iniciales con el valor obtenido de la clave privada. Un primer ejemplo de este segundo uso del proceso criptográfico 1 se describe a continuación haciendo referencia a la Figura 6.
Para el experto en la materia está claro que algunas etapas del proceso criptográfico 1 podrían intercambiarse. Por ejemplo, la etapa de solicitar 14 la entidad de desbloqueo podría ocurrir antes de la etapa 12 de solicitar el valor cifrado de la clave privada o antes de la etapa 13 de recibir el valor cifrado de la clave privada. Otro ejemplo es que la etapa 13 de recibir el valor cifrado de la clave privada podría ocurrir después de la etapa de solicitar 14 la entidad de desbloqueo o la etapa 15 de recibir la entidad de desbloqueo.
En una realización de la invención, si el valor de la clave privada ya está almacenado en la unidad informática 60, por ejemplo porque las etapas 12 a 16 ya se han realizado, las etapas 12 a 16 se omiten y la etapa 17 se realiza inmediatamente después de la etapa 11 .
La figura 4 muestra un diagrama de flujo de una primera realización 300 del primer uso del proceso criptográfico 1. El primer uso del proceso criptográfico se refiere al descifrado de datos cifrados. El navegador web 10 recibe 301 datos cifrados, por ejemplo datos de un correo electrónico cifrado o datos presentes en la memoria 61 de la unidad informática 60. El navegador web 10 realiza el proceso criptográfico 1 en el que la etapa 17 de satisfacer la solicitud criptográfica utilizando el valor obtenido de la clave privada comprende el descifrado 302 de los datos cifrados recibidos para generar datos descifrados, por ejemplo datos de un correo electrónico que puede ser leído por el usuario 30. El descifrado 302 de los datos cifrados utiliza preferiblemente un método criptográfico de clave asimétrica.
Según este primer uso del proceso criptográfico 1, el servidor 20 proporciona preferiblemente 2 a la unidad informática 60 partes de código 100 para hacer que el navegador web 10 realice la recepción 301 de datos cifrados y el descifrado 302 de los datos cifrados recibidos.
La figura 5 muestra un diagrama de flujo de un ejemplo 120 de la primera realización 300 del primer uso del proceso criptográfico 1.
El usuario 30 inicia 101 una plataforma de correo electrónico basada en web en el navegador web 10 de su unidad informática 60. El navegador web 10 envía 102 una solicitud de la plataforma de correo electrónico basada en web al servidor 20. La unidad informática 60 recibe 103 partes de código 100 para hacer que el navegador web realice el proceso criptográfico 1, junto con partes de código para la plataforma de correo electrónico basada en web. Las partes de código para la plataforma de correo electrónico basada en web incluyen algunos datos cifrados con un método criptográfico de clave asimétrica. La plataforma de correo electrónico basada en web se muestra 104 en una pantalla, que es parte de las interfaces de salida de usuario 40, indicando que algunos datos, por ejemplo, un correo electrónico, están cifrados. El usuario 30 selecciona 105 datos cifrados, por ejemplo, un correo electrónico cifrado. El navegador web 10 pregunta 106 al usuario 30 si los datos cifrados deben ser descifrados. El usuario 107 acepta que los datos cifrados deben ser descifrados, lo que se recibe como una solicitud criptográfica que requiere un valor de una clave privada por parte del navegador web 10. El navegador web 10 solicita automáticamente 108 el valor cifrado de la clave privada al servidor 20 y solicita 109 la entidad de desbloqueo al usuario 30. El navegador web 10 recibe 110 el valor cifrado de la clave privada del servidor 20 y recibe 111 la entidad de desbloqueo del usuario 30. El navegador web 10 descifra 112 el valor cifrado de la clave privada con la entidad de desbloqueo para obtenerla y luego descifra 113 los datos cifrados con el valor obtenido de la clave privada. El navegador web 10 muestra entonces 114 los datos descifrados al usuario 30 usando la interfaz 40 de salida de usuario.
La figura 6 muestra un diagrama de flujo de una primera realización 400 del segundo uso del proceso criptográfico 1. El segundo uso del proceso criptográfico 1 se refiere a la generación de una firma digital, por ejemplo para un mensaje.
El navegador web 10 recibe 401 datos de firma iniciales, por ejemplo, una huella del mensaje creada aplicando una función resumen al mensaje. El navegador web 10 realiza el proceso criptográfico 1 en el que la etapa 17 de satisfacción de la solicitud criptográfica utilizando el valor obtenido de la clave privada comprende el cifrado 402 de los datos de firma iniciales para generar datos de firma cifrados. Los datos de firma cifrados se pueden enviar, junto con el mensaje, a un destinatario, quien podrá verificar la autenticidad del mensaje, por ejemplo (1) determinando la huella del mensaje aplicando la función resumen al mensaje. y (2) descifrar los datos cifrados de la firma usando el valor de la clave pública para generar una huella supuesta. Si la huella supuesta determinada a partir de la etapa (2) es igual a la huella determinada a partir de la etapa (1), se confirma la autenticidad del mensaje.
Según este segundo uso del proceso criptográfico 1, el servidor 20 proporciona preferiblemente 2 a la unidad informática 60 partes de código 100 para hacer que el navegador web 10 realice la recepción 401 de los datos de firma iniciales y el cifrado 402 de dichos datos de firma iniciales.
La figura 7 muestra un diagrama de flujo de un proceso de generación 500 de las partes de código 100 en una realización de la invención.
En esta realización, las partes de código Java 501 están escritas en lenguaje Java, por ejemplo, por un programador en una unidad informática de programación. Las partes 501 de código Java se compilan 4, por ejemplo, utilizando el Kit de herramientas web de Google, para proporcionar las partes 100 de código.
En otras palabras, la invención se refiere a un método para satisfacer una solicitud criptográfica que requiere un valor de una clave privada. Las partes de código 100 se envían 2 desde un servidor 20 a una unidad informática 60 que ejecuta un navegador web 10. Las partes de código 100 se ejecutan directamente en el navegador web 10 de tal manera que el navegador web 10 realiza automáticamente un proceso criptográfico 1 que incluye las etapas de:
• recibir 11 una solicitud criptográfica que requiere un valor de una clave privada;
• solicitar 12 un valor cifrado de la clave privada;
• recibir 13 el valor cifrado de la clave privada;
• solicitar 14 una entidad de desbloqueo;
• recibir 15 la entidad de desbloqueo;
• descifrar 16 el valor cifrado de la clave privada con la entidad de desbloqueo para obtener el valor de la clave privada; y
• satisfacer 17 la solicitud criptográfica utilizando el valor obtenido de la clave privada.
El método se aplica preferiblemente al descifrado de datos cifrados y a la generación de firmas digitales.
Aunque la presente invención se ha descrito anteriormente con respecto a realizaciones particulares, se apreciará fácilmente que también son posibles otras realizaciones.

Claims (14)

REIVINDICACIONES
1. Método (2) para satisfacer una solicitud criptográfica que requiere un valor de una clave privada, y que comprende proporcionar (2) partes de código (100) a una unidad informática (60) que ejecuta un navegador web (10), siendo las partes de código (100) directamente ejecutables en el navegador web (10) para hacer que este realice un proceso criptográfico (1), incluyendo las etapas de:
1) recibir (11), mediante el navegador web (10), una solicitud criptográfica que requiere un valor de una clave privada;
2) solicitar (12), mediante el navegador web (10), un valor cifrado de la clave privada;
3) recibir (13), mediante el navegador web (10), el valor cifrado de la clave privada;
4) solicitar (14), mediante el navegador web (10), una entidad de desbloqueo;
5) recibir (15), mediante el navegador web (10), la entidad de desbloqueo;
6) descifrar (16), mediante el navegador web (10), el valor cifrado de la clave privada con la entidad de desbloqueo para obtener el valor de la clave privada; y
7) satisfacer (17), mediante el navegador web (10), la solicitud criptográfica utilizando el valor obtenido de la clave privada;
en donde la etapa 4) del proceso criptográfico (1) comprende enviar, mediante el navegador web (10), una solicitud (14) para una entidad de desbloqueo a un usuario (30) a través de una interfaz de usuario de salida de la unidad informática (60) que ejecuta el navegador web (10) y la etapa 5) del proceso criptográfico (1) comprende recibir (15), mediante el navegador web (10), la entidad de desbloqueo del usuario (30) a través de una interfaz de entrada de usuario de la unidad informática (60).
2. Método para satisfacer una solicitud criptográfica que requiere un valor de una clave privada según la reivindicación 1, en donde la solicitud criptográfica es una solicitud de descifrado de datos cifrados, y que comprende además proporcionar partes de código (100) a la unidad informática (60) para hacer que el navegador web (10) lleve a cabo una etapa, antes de la etapa 7) del proceso criptográfico (1), de recibir (301), mediante el navegador web (10), datos cifrados, y en donde la etapa 7) del proceso criptográfico (1) comprende descifrar (302), mediante el navegador web (10), los datos cifrados con el valor obtenido de la clave privada.
3. Método para satisfacer una solicitud criptográfica que requiere un valor de una clave privada según la reivindicación 1, en donde la solicitud criptográfica es una solicitud para la generación de una firma digital, y que comprende además proporcionar partes de código (100) a la unidad informática (60) para hacer que el navegador web (10) lleve a cabo una etapa, antes de la etapa 7) del proceso criptográfico (1), de recibir (401), mediante el navegador web (10), datos de firma iniciales, y en donde la etapa 7) del proceso criptográfico (1) comprende cifrar (402), mediante el navegador web (10), los datos de firma iniciales con el valor obtenido de la clave privada.
4. Método para satisfacer una solicitud criptográfica que requiere un valor de una clave privada según cualquiera de las reivindicaciones anteriores, en donde las partes de código (100) comprenden scripts en lenguaje JavaScript, en donde, preferiblemente, las partes de código (100) son scripts en lenguaje JavaScript.
5. Método para satisfacer una solicitud criptográfica que requiere un valor de una clave privada según cualquiera de las reivindicaciones anteriores, en donde las partes de código (100) se proporcionan a la unidad informática (60) mediante una o varias etapas de descarga de las partes de código (100) a la unidad informática (60) a través de Internet.
6. Método para satisfacer una solicitud criptográfica que requiere un valor de una clave privada según cualquiera de las reivindicaciones anteriores, en donde la etapa 2) del proceso criptográfico (1) comprende enviar, mediante el navegador web (10), una solicitud (12) para un valor cifrado de la clave privada a un servidor (20), y la etapa 3) del proceso criptográfico (1) comprende recibir (13), mediante el navegador web (10), el valor cifrado de la clave privada desde el servidor (20).
7. Método para satisfacer una solicitud criptográfica que requiere un valor de una clave privada según cualquiera de las reivindicaciones anteriores, en donde la entidad de desbloqueo es al menos una de: una contraseña y una frase de contraseña.
8. Método para satisfacer una solicitud criptográfica que requiere un valor de una clave privada según cualquiera de las reivindicaciones anteriores, en donde la solicitud criptográfica es compatible con al menos uno de los siguientes estándares: OpenPGP y X.509.
9. Sistema para satisfacer una solicitud criptográfica que requiere un valor de una clave privada, comprendiendo el sistema al menos un medio de almacenamiento que contiene partes de códigos (100) que se pueden descargar a una unidad informática (60) capaz de ejecutar un navegador web (10), siendo las partes de código (100) ejecutables directamente en el navegador web (10) para hacer que este lleve a cabo el método de cualquiera de las reivindicaciones 1 a 8, comprendiendo las partes de código (100):
• primeras partes de código de software configuradas para recibir (11) una solicitud criptográfica que requiere un valor de una clave privada;
• segundas partes de código de software configuradas para solicitar (12) un valor cifrado de la clave privada;
• terceras partes de código de software configuradas para recibir (13) el valor cifrado de la clave privada;
• cuartas partes de código de software configuradas para solicitar (14) una entidad de desbloqueo;
• quintas partes de código de software configuradas para recibir (15) la entidad de desbloqueo;
• sextas partes de código de software configuradas para descifrar (16) el valor cifrado de la clave privada con la entidad de desbloqueo para obtener el valor de la clave privada; y
• séptimas partes de código de software configuradas para satisfacer (17) la solicitud criptográfica utilizando el valor obtenido de la clave privada.
10. Sistema para satisfacer una solicitud criptográfica que requiere un valor de una clave privada según la reivindicación anterior, que comprende un servidor (20) conectable a la unidad informática (60).
11. Conjunto de partes de código (100) para satisfacer una solicitud criptográfica que requiere un valor de una clave privada, siendo las partes de códigos (100) ejecutables directamente en un navegador web (10) para hacer que este realice el método de cualquiera de las reivindicaciones 1 a 8, comprendiendo las partes de códigos (100):
• primeras partes de código de software configuradas para recibir (11) una solicitud criptográfica que requiere un valor de una clave privada;
• segundas partes de código de software configuradas para solicitar (12) un valor cifrado de la clave privada;
• terceras partes de código de software configuradas para recibir (13) el valor cifrado de la clave privada;
• cuartas partes de código de software configuradas para solicitar (14) una entidad de desbloqueo;
• quintas partes de código de software configuradas para recibir (15) la entidad de desbloqueo;
• sextas partes de código de software configuradas para descifrar (16) el valor cifrado de la clave privada con la entidad de desbloqueo para obtener el valor de la clave privada; y
• séptimas partes de código de software configuradas para satisfacer (17) la solicitud criptográfica utilizando el valor obtenido de la clave privada.
12. Conjunto de partes de código (100) según la reivindicación anterior, en donde las partes de código (100) comprenden scripts en lenguaje JavaScript.
13. Conjunto de partes de código (100) según la reivindicación anterior, en donde las partes de código (100) son scripts en lenguaje JavaScript.
14. Proceso de generación (500) del conjunto de partes de código (100) según la reivindicación anterior y que comprende las etapas de:
• escribir, en lenguaje Java, partes de código Java (501) correspondientes a las etapas del proceso criptográfico (1) de cualquiera de las reivindicaciones 1 a 8; y
• compilar (4) dichas partes de código Java (501) en lenguaje JavaScript para generar dicho conjunto de partes de código (100).
ES16164250T 2016-04-07 2016-04-07 Método para satisfacer una solicitud criptográfica que requiere un valor de una clave privada Active ES2822997T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP16164250.9A EP3229397B1 (en) 2016-04-07 2016-04-07 Method for fulfilling a cryptographic request requiring a value of a private key

Publications (1)

Publication Number Publication Date
ES2822997T3 true ES2822997T3 (es) 2021-05-05

Family

ID=55699532

Family Applications (1)

Application Number Title Priority Date Filing Date
ES16164250T Active ES2822997T3 (es) 2016-04-07 2016-04-07 Método para satisfacer una solicitud criptográfica que requiere un valor de una clave privada

Country Status (3)

Country Link
US (1) US20170295013A1 (es)
EP (1) EP3229397B1 (es)
ES (1) ES2822997T3 (es)

Families Citing this family (96)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10546444B2 (en) 2018-06-21 2020-01-28 Capital One Services, Llc Systems and methods for secure read-only authentication
US10783519B2 (en) 2018-10-02 2020-09-22 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
CA3115107A1 (en) 2018-10-02 2020-04-09 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10554411B1 (en) 2018-10-02 2020-02-04 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10771254B2 (en) 2018-10-02 2020-09-08 Capital One Services, Llc Systems and methods for email-based card activation
MX2021003138A (es) 2018-10-02 2021-05-14 Capital One Services Llc Sistemas y metodos para autentificacion criptografica de tarjetas sin contacto.
SG11202101874SA (en) 2018-10-02 2021-03-30 Capital One Services Llc Systems and methods for cryptographic authentication of contactless cards
US11210664B2 (en) 2018-10-02 2021-12-28 Capital One Services, Llc Systems and methods for amplifying the strength of cryptographic algorithms
US10489781B1 (en) 2018-10-02 2019-11-26 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
WO2020072440A1 (en) 2018-10-02 2020-04-09 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
CA3112585A1 (en) 2018-10-02 2020-04-09 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10505738B1 (en) 2018-10-02 2019-12-10 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
AU2019355436A1 (en) 2018-10-02 2021-04-15 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10511443B1 (en) 2018-10-02 2019-12-17 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10733645B2 (en) 2018-10-02 2020-08-04 Capital One Services, Llc Systems and methods for establishing identity for order pick up
WO2020072552A1 (en) 2018-10-02 2020-04-09 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
CA3115142A1 (en) 2018-10-02 2020-04-09 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
AU2019354421A1 (en) 2018-10-02 2021-04-29 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10771253B2 (en) 2018-10-02 2020-09-08 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10581611B1 (en) 2018-10-02 2020-03-03 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10565587B1 (en) 2018-10-02 2020-02-18 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10582386B1 (en) 2018-10-02 2020-03-03 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
WO2020072529A1 (en) 2018-10-02 2020-04-09 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10909527B2 (en) 2018-10-02 2021-02-02 Capital One Services, Llc Systems and methods for performing a reissue of a contactless card
US10607214B1 (en) 2018-10-02 2020-03-31 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10592710B1 (en) 2018-10-02 2020-03-17 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10579998B1 (en) 2018-10-02 2020-03-03 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10748138B2 (en) 2018-10-02 2020-08-18 Capital One Services, Llc Systems and methods for cryptographic authentication of contactless cards
US10542036B1 (en) 2018-10-02 2020-01-21 Capital One Services, Llc Systems and methods for signaling an attack on contactless cards
US10949520B2 (en) 2018-10-02 2021-03-16 Capital One Services, Llc Systems and methods for cross coupling risk analytics and one-time-passcodes
SG11202101221WA (en) 2018-10-02 2021-03-30 Capital One Services Llc Systems and methods for cryptographic authentication of contactless cards
US11361302B2 (en) 2019-01-11 2022-06-14 Capital One Services, Llc Systems and methods for touch screen interface interaction using a card overlay
US11037136B2 (en) 2019-01-24 2021-06-15 Capital One Services, Llc Tap to autofill card data
US11120453B2 (en) 2019-02-01 2021-09-14 Capital One Services, Llc Tap card to securely generate card data to copy to clipboard
US10510074B1 (en) 2019-02-01 2019-12-17 Capital One Services, Llc One-tap payment using a contactless card
US11082229B2 (en) 2019-03-18 2021-08-03 Capital One Services, Llc System and method for pre-authentication of customer support calls
US10523708B1 (en) 2019-03-18 2019-12-31 Capital One Services, Llc System and method for second factor authentication of customer support calls
US10535062B1 (en) 2019-03-20 2020-01-14 Capital One Services, Llc Using a contactless card to securely share personal data stored in a blockchain
US10984416B2 (en) 2019-03-20 2021-04-20 Capital One Services, Llc NFC mobile currency transfer
US10643420B1 (en) 2019-03-20 2020-05-05 Capital One Services, Llc Contextual tapping engine
US10970712B2 (en) 2019-03-21 2021-04-06 Capital One Services, Llc Delegated administration of permissions using a contactless card
US11521262B2 (en) 2019-05-28 2022-12-06 Capital One Services, Llc NFC enhanced augmented reality information overlays
US10516447B1 (en) 2019-06-17 2019-12-24 Capital One Services, Llc Dynamic power levels in NFC card communications
US10871958B1 (en) 2019-07-03 2020-12-22 Capital One Services, Llc Techniques to perform applet programming
US11694187B2 (en) 2019-07-03 2023-07-04 Capital One Services, Llc Constraining transactional capabilities for contactless cards
US11392933B2 (en) 2019-07-03 2022-07-19 Capital One Services, Llc Systems and methods for providing online and hybridcard interactions
US10713649B1 (en) 2019-07-09 2020-07-14 Capital One Services, Llc System and method enabling mobile near-field communication to update display on a payment card
US10885514B1 (en) 2019-07-15 2021-01-05 Capital One Services, Llc System and method for using image data to trigger contactless card transactions
US10832271B1 (en) 2019-07-17 2020-11-10 Capital One Services, Llc Verified reviews using a contactless card
US10733601B1 (en) 2019-07-17 2020-08-04 Capital One Services, Llc Body area network facilitated authentication or payment authorization
US11182771B2 (en) 2019-07-17 2021-11-23 Capital One Services, Llc System for value loading onto in-vehicle device
US11521213B2 (en) 2019-07-18 2022-12-06 Capital One Services, Llc Continuous authentication for digital services based on contactless card positioning
US10506426B1 (en) 2019-07-19 2019-12-10 Capital One Services, Llc Techniques for call authentication
US10541995B1 (en) 2019-07-23 2020-01-21 Capital One Services, Llc First factor contactless card authentication system and method
CN114746913A (zh) 2019-10-02 2022-07-12 第一资本服务有限责任公司 使用非接触式传统磁条数据的客户端设备认证
US10733283B1 (en) 2019-12-23 2020-08-04 Capital One Services, Llc Secure password generation and management using NFC and contactless smart cards
US11615395B2 (en) 2019-12-23 2023-03-28 Capital One Services, Llc Authentication for third party digital wallet provisioning
US11113685B2 (en) 2019-12-23 2021-09-07 Capital One Services, Llc Card issuing with restricted virtual numbers
US10657754B1 (en) 2019-12-23 2020-05-19 Capital One Services, Llc Contactless card and personal identification system
US11651361B2 (en) 2019-12-23 2023-05-16 Capital One Services, Llc Secure authentication based on passport data stored in a contactless card
US10885410B1 (en) 2019-12-23 2021-01-05 Capital One Services, Llc Generating barcodes utilizing cryptographic techniques
US10862540B1 (en) 2019-12-23 2020-12-08 Capital One Services, Llc Method for mapping NFC field strength and location on mobile devices
US11200563B2 (en) 2019-12-24 2021-12-14 Capital One Services, Llc Account registration using a contactless card
US10664941B1 (en) 2019-12-24 2020-05-26 Capital One Services, Llc Steganographic image encoding of biometric template information on a card
US10853795B1 (en) 2019-12-24 2020-12-01 Capital One Services, Llc Secure authentication based on identity data stored in a contactless card
US10909544B1 (en) 2019-12-26 2021-02-02 Capital One Services, Llc Accessing and utilizing multiple loyalty point accounts
US10757574B1 (en) 2019-12-26 2020-08-25 Capital One Services, Llc Multi-factor authentication providing a credential via a contactless card for secure messaging
US11038688B1 (en) 2019-12-30 2021-06-15 Capital One Services, Llc Techniques to control applets for contactless cards
US10860914B1 (en) 2019-12-31 2020-12-08 Capital One Services, Llc Contactless card and method of assembly
US11455620B2 (en) 2019-12-31 2022-09-27 Capital One Services, Llc Tapping a contactless card to a computing device to provision a virtual number
US11210656B2 (en) 2020-04-13 2021-12-28 Capital One Services, Llc Determining specific terms for contactless card activation
US10915888B1 (en) 2020-04-30 2021-02-09 Capital One Services, Llc Contactless card with multiple rotating security keys
US10861006B1 (en) 2020-04-30 2020-12-08 Capital One Services, Llc Systems and methods for data access control using a short-range transceiver
US11030339B1 (en) 2020-04-30 2021-06-08 Capital One Services, Llc Systems and methods for data access control of personal user data using a short-range transceiver
US11823175B2 (en) 2020-04-30 2023-11-21 Capital One Services, Llc Intelligent card unlock
US11222342B2 (en) 2020-04-30 2022-01-11 Capital One Services, Llc Accurate images in graphical user interfaces to enable data transfer
US10963865B1 (en) 2020-05-12 2021-03-30 Capital One Services, Llc Augmented reality card activation experience
US11063979B1 (en) 2020-05-18 2021-07-13 Capital One Services, Llc Enabling communications between applications in a mobile operating system
US11100511B1 (en) 2020-05-18 2021-08-24 Capital One Services, Llc Application-based point of sale system in mobile operating systems
US11062098B1 (en) 2020-08-11 2021-07-13 Capital One Services, Llc Augmented reality information display and interaction via NFC based authentication
US11482312B2 (en) 2020-10-30 2022-10-25 Capital One Services, Llc Secure verification of medical status using a contactless card
US11165586B1 (en) 2020-10-30 2021-11-02 Capital One Services, Llc Call center web-based authentication using a contactless card
US11373169B2 (en) 2020-11-03 2022-06-28 Capital One Services, Llc Web-based activation of contactless cards
US11216799B1 (en) 2021-01-04 2022-01-04 Capital One Services, Llc Secure generation of one-time passcodes using a contactless card
US11682012B2 (en) 2021-01-27 2023-06-20 Capital One Services, Llc Contactless delivery systems and methods
US11687930B2 (en) 2021-01-28 2023-06-27 Capital One Services, Llc Systems and methods for authentication of access tokens
US11562358B2 (en) 2021-01-28 2023-01-24 Capital One Services, Llc Systems and methods for near field contactless card communication and cryptographic authentication
US11792001B2 (en) 2021-01-28 2023-10-17 Capital One Services, Llc Systems and methods for secure reprovisioning
US11438329B2 (en) 2021-01-29 2022-09-06 Capital One Services, Llc Systems and methods for authenticated peer-to-peer data transfer using resource locators
US11777933B2 (en) 2021-02-03 2023-10-03 Capital One Services, Llc URL-based authentication for payment cards
US11637826B2 (en) 2021-02-24 2023-04-25 Capital One Services, Llc Establishing authentication persistence
US11245438B1 (en) 2021-03-26 2022-02-08 Capital One Services, Llc Network-enabled smart apparatus and systems and methods for activating and provisioning same
US11961089B2 (en) 2021-04-20 2024-04-16 Capital One Services, Llc On-demand applications to extend web services
US11935035B2 (en) 2021-04-20 2024-03-19 Capital One Services, Llc Techniques to utilize resource locators by a contactless card to perform a sequence of operations
US11902442B2 (en) 2021-04-22 2024-02-13 Capital One Services, Llc Secure management of accounts on display devices using a contactless card
US11354555B1 (en) 2021-05-04 2022-06-07 Capital One Services, Llc Methods, mediums, and systems for applying a display to a transaction card

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003101570A (ja) * 2001-09-21 2003-04-04 Sony Corp 通信処理システム、通信処理方法、およびサーバー装置、並びにコンピュータ・プログラム
US20040059686A1 (en) * 2002-09-19 2004-03-25 Levesque Daniel Robert On-line cryptographically based payment authorization method and apparatus
WO2004063900A2 (en) * 2003-01-10 2004-07-29 Nexaweb Technologies, Inc. System and method for network-based computing
US7475152B2 (en) * 2004-09-20 2009-01-06 International Business Machines Corporation Approach to provide self-protection function to web content at client side
JP4690779B2 (ja) * 2005-06-03 2011-06-01 株式会社日立製作所 属性証明書検証方法及び装置
US8274401B2 (en) * 2006-12-22 2012-09-25 Acterna Llc Secure data transfer in a communication system including portable meters
US20100037050A1 (en) * 2008-08-06 2010-02-11 Cuneyt Karul Method and apparatus for an encrypted message exchange
US9461817B2 (en) * 2009-01-20 2016-10-04 International Business Machines Corporation Method and system for encrypting JavaScript object notation (JSON) messages
US8726009B1 (en) * 2010-01-26 2014-05-13 David P. Cook Secure messaging using a trusted third party
WO2011103561A2 (en) * 2010-02-22 2011-08-25 Lockify, Inc. Encryption system using web browsers and untrusted web servers

Also Published As

Publication number Publication date
US20170295013A1 (en) 2017-10-12
EP3229397B1 (en) 2020-09-09
EP3229397A1 (en) 2017-10-11

Similar Documents

Publication Publication Date Title
ES2822997T3 (es) Método para satisfacer una solicitud criptográfica que requiere un valor de una clave privada
US8675864B2 (en) Apparatus for encrypting data
US10263785B1 (en) Cryptography method and system for securing data via electronic transmission
US11075753B2 (en) System and method for cryptographic key fragments management
CN106452771B (zh) Jce调用密码卡实现内置rsa密钥运算的方法及装置
CN103853943A (zh) 程序保护方法及装置
WO2020078804A1 (en) Puf based securing of device update
WO2020044748A1 (ja) Idベースハッシュ証明系構成装置、idベース暗号装置、idベースハッシュ証明系構成方法及びプログラム
Englert et al. ALIIAS: Anonymization/Pseudonymization with LimeSurvey integration and II-factor Authentication for Scientific research
Verma et al. A new tool for lightweight encryption on android
CN103605927A (zh) 一种基于嵌入式Linux系统实现加密和解密方法
CA3192625A1 (en) Dynamic deterministic user password generation
Singh et al. Developing mobile message security application using 3D Playfair Cipher algorithm
CN111008837B (zh) 区块链账户私钥恢复方法、装置、计算机设备及存储介质
EP3700123A1 (en) Cryptographic method and system for securing electronic transmission of data
CN106060022A (zh) 一种加密设备的配置方法及系统
KR20140028233A (ko) 중국인 나머지 정리에 기반한 준동형 암복호화 방법 및 이를 이용한 장치
ES2853574T3 (es) Almacenamiento de memoria seguro
CA3034028C (en) Cryptography method and system for securing data via electronic transmission
Jain Enhancing security in Tokenization using NGE for storage as a service
Sala et al. Software for Integral Security
Haunts et al. Final Summary
AU2020281038A1 (en) Cryptography Method and System for Securing Data Via Electronic Transmission
Akogun Enhancing Data Security in Cloud Storage Using Residue Number System and Advanced Encryption Standard
Awang et al. Secure Multi-Agent Integrated Password Management (MIPM) Application