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 PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 91
- 238000013515 script Methods 0.000 claims description 14
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 20
- 230000006870 function Effects 0.000 description 4
- 230000014509 gene expression Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- VYZAMTAEIAYCRO-UHFFFAOYSA-N Chromium Chemical compound [Cr] VYZAMTAEIAYCRO-UHFFFAOYSA-N 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key 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/0822—Key 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key 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/0825—Key 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3226—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3247—Cryptographic 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)
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).
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 (113)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11315114B2 (en) | 2016-12-28 | 2022-04-26 | Capital One Services, Llc | Dynamic transaction card protected by multi-factor authentication |
US10546444B2 (en) | 2018-06-21 | 2020-01-28 | Capital One Services, Llc | Systems and methods for secure read-only authentication |
US11216806B2 (en) | 2018-09-19 | 2022-01-04 | Capital One Services, Llc | Systems and methods for providing card interactions |
US10505738B1 (en) | 2018-10-02 | 2019-12-10 | 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 |
WO2020072670A1 (en) | 2018-10-02 | 2020-04-09 | Capital One Services, Llc | Systems and methods for cryptographic authentication of contactless cards |
US10685350B2 (en) | 2018-10-02 | 2020-06-16 | Capital One Services, Llc | Systems and methods for cryptographic authentication of contactless cards |
WO2020072537A1 (en) | 2018-10-02 | 2020-04-09 | 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 |
US10592710B1 (en) | 2018-10-02 | 2020-03-17 | Capital One Services, Llc | Systems and methods for cryptographic authentication of contactless cards |
MX2021003138A (es) | 2018-10-02 | 2021-05-14 | Capital One Services Llc | Sistemas y metodos para autentificacion criptografica de tarjetas sin contacto. |
US10565587B1 (en) | 2018-10-02 | 2020-02-18 | Capital One Services, Llc | Systems and methods for cryptographic authentication of contactless cards |
US10489781B1 (en) | 2018-10-02 | 2019-11-26 | Capital One Services, Llc | Systems and methods for cryptographic authentication of contactless cards |
BR112021004710A2 (pt) | 2018-10-02 | 2021-06-08 | Capital One Services, Llc | sistema e método para transmitir dados |
US10841091B2 (en) | 2018-10-02 | 2020-11-17 | Capital One Services, Llc | Systems and methods for cryptographic authentication of 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 |
US10511443B1 (en) | 2018-10-02 | 2019-12-17 | 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 |
US10582386B1 (en) | 2018-10-02 | 2020-03-03 | Capital One Services, Llc | Systems and methods for cryptographic authentication of contactless cards |
SG11202101171VA (en) | 2018-10-02 | 2021-03-30 | 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 |
US10860814B2 (en) | 2018-10-02 | 2020-12-08 | 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 |
CA3115252A1 (en) | 2018-10-02 | 2020-04-09 | 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 |
US10771254B2 (en) | 2018-10-02 | 2020-09-08 | Capital One Services, Llc | Systems and methods for email-based card activation |
US10554411B1 (en) | 2018-10-02 | 2020-02-04 | Capital One Services, Llc | Systems and methods for cryptographic authentication of contactless cards |
US10607214B1 (en) | 2018-10-02 | 2020-03-31 | 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 |
US10771253B2 (en) | 2018-10-02 | 2020-09-08 | Capital One Services, Llc | Systems and methods for cryptographic authentication of contactless cards |
WO2020072694A1 (en) | 2018-10-02 | 2020-04-09 | Capital One Services, Llc | Systems and methods for cryptographic authentication of contactless cards |
CA3110521A1 (en) | 2018-10-02 | 2020-04-09 | Capital One Services, Llc | Systems and methods for cryptographic authentication of contactless cards |
KR20210065961A (ko) | 2018-10-02 | 2021-06-04 | 캐피탈 원 서비시즈, 엘엘씨 | 비접촉식 카드의 암호화 인증을 위한 시스템 및 방법 |
US10664830B1 (en) | 2018-12-18 | 2020-05-26 | Capital One Services, Llc | Devices and methods for selective contactless communication |
US20200226581A1 (en) | 2019-01-11 | 2020-07-16 | 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 |
US10510074B1 (en) | 2019-02-01 | 2019-12-17 | Capital One Services, Llc | One-tap payment using a contactless card |
US11120453B2 (en) | 2019-02-01 | 2021-09-14 | Capital One Services, Llc | Tap card to securely generate card data to copy to clipboard |
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 |
US10643420B1 (en) | 2019-03-20 | 2020-05-05 | Capital One Services, Llc | Contextual tapping engine |
US10984416B2 (en) | 2019-03-20 | 2021-04-20 | Capital One Services, Llc | NFC mobile currency transfer |
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 |
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 |
US10871958B1 (en) | 2019-07-03 | 2020-12-22 | Capital One Services, Llc | Techniques to perform applet programming |
US12086852B2 (en) | 2019-07-08 | 2024-09-10 | Capital One Services, Llc | Authenticating voice transactions with payment card |
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 |
US11182771B2 (en) | 2019-07-17 | 2021-11-23 | Capital One Services, Llc | System for value loading onto in-vehicle device |
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 |
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 |
US10701560B1 (en) | 2019-10-02 | 2020-06-30 | Capital One Services, Llc | Client device authentication using contactless legacy magnetic stripe data |
US11651361B2 (en) | 2019-12-23 | 2023-05-16 | Capital One Services, Llc | Secure authentication based on passport data stored in a contactless card |
US11113685B2 (en) | 2019-12-23 | 2021-09-07 | Capital One Services, Llc | Card issuing with restricted virtual numbers |
US10885410B1 (en) | 2019-12-23 | 2021-01-05 | Capital One Services, Llc | Generating barcodes utilizing cryptographic techniques |
US10657754B1 (en) | 2019-12-23 | 2020-05-19 | Capital One Services, Llc | Contactless card and personal identification system |
US10862540B1 (en) | 2019-12-23 | 2020-12-08 | Capital One Services, Llc | Method for mapping NFC field strength and location on mobile devices |
US11615395B2 (en) | 2019-12-23 | 2023-03-28 | Capital One Services, Llc | Authentication for third party digital wallet provisioning |
US10733283B1 (en) | 2019-12-23 | 2020-08-04 | Capital One Services, Llc | Secure password generation and management using NFC and contactless smart cards |
US10664941B1 (en) | 2019-12-24 | 2020-05-26 | Capital One Services, Llc | Steganographic image encoding of biometric template information on a card |
US11200563B2 (en) | 2019-12-24 | 2021-12-14 | Capital One Services, Llc | Account registration using a contactless card |
US10853795B1 (en) | 2019-12-24 | 2020-12-01 | Capital One Services, Llc | Secure authentication based on identity data stored in a contactless card |
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 |
US10909544B1 (en) | 2019-12-26 | 2021-02-02 | Capital One Services, Llc | Accessing and utilizing multiple loyalty point accounts |
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 |
US10861006B1 (en) | 2020-04-30 | 2020-12-08 | Capital One Services, Llc | Systems and methods for data access control 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 |
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 |
US10915888B1 (en) | 2020-04-30 | 2021-02-09 | Capital One Services, Llc | Contactless card with multiple rotating security keys |
US10963865B1 (en) | 2020-05-12 | 2021-03-30 | Capital One Services, Llc | Augmented reality card activation experience |
US11100511B1 (en) | 2020-05-18 | 2021-08-24 | Capital One Services, Llc | Application-based point of sale system in mobile operating systems |
US11063979B1 (en) | 2020-05-18 | 2021-07-13 | Capital One Services, Llc | Enabling communications between applications in a mobile operating system |
US11062098B1 (en) | 2020-08-11 | 2021-07-13 | Capital One Services, Llc | Augmented reality information display and interaction via NFC based authentication |
US12165149B2 (en) | 2020-08-12 | 2024-12-10 | Capital One Services, Llc | Systems and methods for user verification via short-range transceiver |
US11165586B1 (en) | 2020-10-30 | 2021-11-02 | Capital One Services, Llc | Call center web-based authentication using a contactless card |
US11482312B2 (en) | 2020-10-30 | 2022-10-25 | Capital One Services, Llc | Secure verification of medical status 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 |
US11562358B2 (en) | 2021-01-28 | 2023-01-24 | Capital One Services, Llc | Systems and methods for near field contactless card communication and cryptographic authentication |
US11687930B2 (en) | 2021-01-28 | 2023-06-27 | Capital One Services, Llc | Systems and methods for authentication of access tokens |
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 |
US12143515B2 (en) | 2021-03-26 | 2024-11-12 | Capital One Services, Llc | Systems and methods for transaction card-based authentication |
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 |
US12160419B2 (en) | 2021-04-15 | 2024-12-03 | Capital One Services, Llc | Authenticated messaging session with contactless card authentication |
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 |
US11961089B2 (en) | 2021-04-20 | 2024-04-16 | Capital One Services, Llc | On-demand applications to extend web services |
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 |
US12041172B2 (en) | 2021-06-25 | 2024-07-16 | Capital One Services, Llc | Cryptographic authentication to control access to storage devices |
US12061682B2 (en) | 2021-07-19 | 2024-08-13 | Capital One Services, Llc | System and method to perform digital authentication using multiple channels of communication |
US12062258B2 (en) | 2021-09-16 | 2024-08-13 | Capital One Services, Llc | Use of a payment card to unlock a lock |
US12069173B2 (en) | 2021-12-15 | 2024-08-20 | Capital One Services, Llc | Key recovery based on contactless card authentication |
US12166750B2 (en) | 2022-02-08 | 2024-12-10 | Capital One Services, Llc | Systems and methods for secure access of storage |
US12147983B2 (en) | 2023-01-13 | 2024-11-19 | Capital One Services, Llc | Systems and methods for multi-factor authentication using device tracking and identity verification |
US12248832B2 (en) | 2023-03-07 | 2025-03-11 | Capital One Services, Llc | Systems and methods for steganographic image encoding and identity verification using same |
US12248928B2 (en) | 2023-03-13 | 2025-03-11 | Capital One Services, Llc | Systems and methods of secure merchant payment over messaging platform using a contactless card |
US12124903B2 (en) | 2023-03-16 | 2024-10-22 | Capital One Services, Llc | Card with a time-sensitive element and systems and methods for implementing the same |
US12200135B2 (en) | 2023-06-13 | 2025-01-14 | Capital One Services, Llc | Contactless card-based authentication via web-browser |
Family Cites Families (10)
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 |
JP2007524875A (ja) * | 2003-01-10 | 2007-08-30 | ネクサウェブ テクノロジーズ インコーポレイテッド | ネットワーク・ベースの処理のためのシステムおよび方法 |
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 |
US8898482B2 (en) * | 2010-02-22 | 2014-11-25 | Lockify, Inc. | Encryption system using clients and untrusted servers |
-
2016
- 2016-04-07 ES ES16164250T patent/ES2822997T3/es active Active
- 2016-04-07 EP EP16164250.9A patent/EP3229397B1/en active Active
-
2017
- 2017-04-05 US US15/479,390 patent/US20170295013A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
EP3229397B1 (en) | 2020-09-09 |
US20170295013A1 (en) | 2017-10-12 |
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 | |
US20140205086A1 (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 | |
Teufl et al. | Android encryption systems | |
KR20210017396A (ko) | 신뢰 서버의 준동형 암호 기반 확장 가능한 그룹 키 생성 방법 및 시스템 | |
CN106452771A (zh) | Jce调用密码卡实现内置rsa密钥运算的方法及装置 | |
WO2020044748A1 (ja) | Idベースハッシュ証明系構成装置、idベース暗号装置、idベースハッシュ証明系構成方法及びプログラム | |
CN103853943A (zh) | 程序保护方法及装置 | |
WO2020078804A1 (en) | Puf based securing of device update | |
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 | |
CA3192625A1 (en) | Dynamic deterministic user password generation | |
CN103605927A (zh) | 一种基于嵌入式Linux系统实现加密和解密方法 | |
CN109510704A (zh) | 一种基于ios系统的数字密钥保护系统及方法 | |
CA3034028C (en) | Cryptography method and system for securing data via electronic transmission | |
Singh et al. | Developing mobile message security application using 3D Playfair Cipher algorithm | |
EP3700123A1 (en) | Cryptographic method and system for securing electronic transmission of data | |
CN106060022A (zh) | 一种加密设备的配置方法及系统 | |
ES2853574T3 (es) | Almacenamiento de memoria seguro | |
Akogun | Enhancing Data Security in Cloud Storage Using Residue Number System and Advanced Encryption Standard | |
Sala et al. | Software for Integral Security | |
Antenor et al. | LAF Chat: A Message Encrypting Application Utilizing RSA Algorithm for Android-Based Mobile Device | |
Budzik et al. | Encryption-based Security in Wearable Devices | |
Tan et al. | JAMBU_CHAT: An Online Chat Application for Android Smartphone |