SISTEMA Y MÉTODO PARA FIRMAR Y AUTENTIFICAR
TRANSACCIONES SEGURAS A TRAVÉS DE UNA RED DE COMUNICACIONES CAMPO DE APLICACIÓN
La presente invención se relaciona con la industria de seguridad en las transacciones electrónicas, en particular con un sistema y método para firmar y autentificar transacciones seguras en Internet. ANTECEDENTES
En la actualidad se conocen diferentes soluciones para asegurar la identidad de personas al efectuar transacciones electrónicas como por ejemplo al ingresar al consultar o gestionara la cuenta de un banco a través de la red.
Por ejemplo, la solicitud de patente estadounidense, nQ US2006/0053281 describe un dispositivo de comunicación existente, tal como un teléfono móvil con capacidad WAP, u otro dispositivo, puede ser utilizado como ficha (token) de autentificación. Este documento describe el uso de un dispositivo móvil como dispositivo de autentificación en base a su infraestructura criptográfica de llave pública (WPKI) ya presente en el dispositivo, y luego el dispositivo puede generar llaves de sesión independientes utilizadas para codificar mensajes a ser transmitidos y i
decodificar mensajes recibidos. No obstante el dispositivo móvil puede ser engañado para generar llaves de sesión independientes, mediante una solicitud de autentificación falsa. Otra solución es ilustrada en la solicitud de patente estadounidense, nQ US 2008/0307515 que describe un método para autentificar un usuario. El método comprende el paso de enviar una solicitud de autentificación a un dispositivo de autentificación remota y generar una primera pieza de información de autentificación. Un dispositivo móvil recibe la primera pieza de información de autentificación desde tanto un terminal de acceso o un dispositivo de autentificación remota. El dispositivo móvil del usuario genera una segunda pieza de información de autentificación la cual es al menos parcialmente basada en la primera pieza de información de autentificación. La segunda pieza de información de autentificación es enviada al dispositivo de autentificación remota y la segunda pieza de información de autentificación es validada. Se observa que el método comprende el envío de una primera pieza de información de autentificación a un dispositivo móvil, como por ejemplo un código visual, no obstante no se identifica ni se detalla cómo esta primera pieza de información de autentificación puede ser considerada genuina, por lo que se observa una vulnerabilidad en el método descrito. Aunque se menciona que se puede implementar mayor seguridad entre el dispositivo de autentificación remota y el dispositivo móvil mediante la
criptografía asimétrica en donde una llave pública criptográfica sería almacenada en el dispositivo de autentificación remota y una llave privada sería almacenada en el dispositivo móvil. No se indica cómo se efectuaría dicha encriptación asimétrica, y de qué manera segura podría transmitirse una llave privada para que sea almacenada en un dispositivo móvil y de esta forma asegurar la autenticidad de la primera pieza de información enviada.
PROBLEMA TÉCNICO
Se observa que existe una vulnerabilidad en los métodos del arte previo para asegurar que la información transmitida entre un dispositivo móvil y un servidor sea genuina al validar una conexión de terminal. SOLUCIÓN TÉCNICA
Se presenta un sistema y método para firmar y autentificar transacciones en donde la información transmitida es firmada en todas las transmisiones a través de redes de comunicaciones tanto entre dispositivo móvil y servidores como entre terminales y servidores. Toda la información que se transmite entre los dispositivos a través de redes de comunicaciones está firmada mediante llaves temporales, llaves simétricas o llaves asimétricas, y mediante un dispositivo de seguridad, también conocido como Módulo de Seguridad Hardware (HSM). Se
mantienen las llaves de pública, privadas y de autentificación de los usuarios de manera encriptada con dicho HSM.
VENTAJAS TÉCNICAS
La presente invención permite mantener la información firmada en todas las transmisiones de información. Adicionalmente, las llaves de firma, de seguridad o de autentificación están almacenadas y encriptadas mediante parámetros propios del usuario de manera de impedir la suplantación de identidad y asegurar la autenticidad del usuario al realizar las transacciones.
Adicionalmente, la presente invención comprende métodos para la activación de un usuario con la implementación segura de sus llaves privadas, públicas, de seguridad y de autentificación. El sistema de la presente invención almacena en el dispositivo de comunicación móvil, información como la encriptación de una llave pública configurada mediante el proceso de activación para un usuario particular que permite utilizar esta información para posteriormente reactivar de manera segura una cuenta que ha sido bloqueada desde dicho dispositivo de comunicación móvil.
BREVE DESCRIPCIÓN DE LAS FIGURAS
La figura 1 ilustra esquemáticamente los componentes del sistema de la presente invención.
La figura 2 ilustra esquemáticamente el sistema y etapas del método de la presente invención.
La figura 3 ilustra esquemáticamente el sistema y etapas adicionales del método de la presente invención.
La figura 4 ilustra esquemáticamente el sistema y etapas adicionales del método de la presente invención.
La figura 5 ilustra esquemáticamente el sistema y etapas para la activación de usuario en el método de la presente invención.
La figura 6 ilustra esquemáticamente el sistema y etapas adicionales para la activación de usuario en el método de la presente invención.
DESCRIPCIÓN DETALLADA DE LA INVENCIÓN
Como se ilustra en la figura 1 , la presente invención consiste en un sistema para firmar y autentificar transacciones seguras a través de una red de comunicaciones (Internet) que comprende:
Un terminal (200) con conexión a una red de comunicaciones;
Un servidor remoto (400) con una base de datos (410) que almacena para cada usuario (100) los datos de usuarios userID (210), una llave privada encriptada K'priV,useriD (41 1 ), una primera llave de seguridad K mac, userID (412) para generar una llave de autentificación Kmac,useriD (520) y un identificador del dispositivo móvil ld'cei,useriD (414);
Un dispositivo de comunicación móvil (300) de un usuario (100) que comprende un código de seguridad también conocido como pin (301 ); una aplicación (310), una llave de transporte Ktransporte (401 ) para decodificar información de activación; una llave pública encriptada K"pubi USeriD (320) y una segunda llave de seguridad K"mac¡useriD (330) para generar la llave de autentificación Kmac¡ useriD (520); y
Un módulo de seguridad hardware remoto (500) también conocido como HSM, por sus siglas en inglés: "Hardware Security Module". La presente invención provee adicionalmente un método para firmar y autentificar transacciones seguras a través de una red de comunicaciones (Internet), en donde un usuario (100) y su dispositivo de comunicación móvil (300) han sido previamente activados. Como se ilustra en la figura 2, el método para firmar y autentificar transacciones seguras a través de una red de comunicaciones (como por ejemplo Internet), en donde un usuario (100) y su dispositivo de comunicación móvil (300) han sido previamente activados; que comprende las siguientes etapas:
a) Ingresar por un usuario (100) sus datos de usuarios (220) en un sitio de una institución desde un terminal (200) con conexión a una red de comunicaciones,
b) Enviar desde el terminal (200), mediante dicha red de comunicaciones, datos del usuario UserID (220), una petición (210) y una solicitud de firma de la petición (210) a un servidor remoto (400), en donde dicho servidor remoto (400) comprende: una base de datos (410) que almacena para cada usuario (100) sus datos de usuario userID (210), una llave privada encriptada
K priv,userlD (41 1 ), una primera llave de seguridad K'mac¡ useriD (412) para generar una llave de autentificación Kmac¡useriD (520) y un identificador del dispositivo móvil ld'cei,useriD (414);
c) Verificar en la base de datos (410) del servidor remoto (400) que para los datos del usuario userID (220), dicho usuario (100) esté autorizado, en caso de que el usuario no está autorizado entonces la petición (210) es rechazada, en caso de estar autorizado se procede a la siguiente etapa;
d) Enviar desde el servidor remoto (400), la llave privada encriptada
(41 1 ) y la primera llave de seguridad KmacuseriD (412) de dicho usuario (100) a un módulo de seguridad hardware remoto (500) para ser desencriptadas; e) Retornar desde el módulo de seguridad hardware remoto (500) al servidor remoto (400) la llave privada K
pri
V,useriD (510) y la llave de autentificación K
mac,
UseriD (520) de dicho usuario;
f) Generar en el servidor remoto (400) un conjunto de datos firmados Ds (420) mediante la llave privada del usuario KpriV,useriD
(510), en donde dicho conjunto de datos firmados Ds (420) comprende al menos los datos de usuario userID (220), fecha y hora de la petición (210), firma de la Llave privada KpriV,useriD (510), y los datos de la petición (210);
g) Generar en el servidor remoto (400) un código de confirmación CoduseriD.Ds (430) mediante un código de autentificación de mensaje (conocido como MAC por sus siglas en inglés de "Message autentification Code") y a partir de la llave de autentificación Kmac¡ useriD (520), del conjunto de datos firmados Ds (420), el identificador del dispositivo móvil ld'cei,useriD (414).
A continuación se describen las siguientes etapas del método de la presente invención en referencia a la figura 3:
h) Enviar el código de confirmación CoduseriD,Ds (430) desde el servidor remoto (400) al módulo de seguridad hardware remoto
(500);
i) Encriptar dicho código de confirmación CoduseriD,Ds (430) mediante el módulo de seguridad hardware remoto (500) como un código de confirmación encriptado Cod'useriD,Ds (530), retornar código de confirmación encriptado Cod'USeriD,Ds (530) al servidor remoto (400) y almacenarlo en la base de datos (410) junto con su fecha y hora de creación, y generar un número de intentos de validación en cero;
j) Generar en el servidor remoto (400) un código de barra bidimensional QR (421 ) a partir del conjunto de datos firmados Ds (420);
k) Enviar al Terminal (200) el código de barra bidimensional (421 ) y mostrar el código de barra bidimensional (421 ) en el sitio de la institución;
I) Iniciar por parte dicho usuario (100) una aplicación (310) en un dispositivo de comunicación móvil (300), en donde dicho dispositivo de comunicación móvil (300) comprende dicha aplicación (310), un código de seguridad también conocido como pin (301 ), una llave de transporte Ktransporte (401 ) para decodificar información de activación, una llave pública encriptada K' pub, userID (320), y una segunda llave de seguridad K"mac,useriD (330) para generar la llave de autentificación
Kmac, userID (520);
m) Ingresar por parte del usuario (100) el código de seguridad o pin (301 ) en dicha aplicación (310) del dispositivo de comunicación móvil (300);
n) Derivar una llave temporal KtemP,Pm (340) creada en base al código de seguridad o pin (301 ) ingresado por el usuario (100) y según un algoritmo de derivación de llaves como por ejemplo el protocolo PKCS5 ó PBKDF2;
o) Desencriptar mediante la aplicación (310) del dispositivo de comunicación móvil (300), la llave pública encriptada K"pUb,useriD (310) con la llave temporal Ktemp,pin (340) y la segunda llave de seguridad K"maCi USeriD (320) para obtener la llave pública Kpub¡ useriD (321 ) y la llave de autentificación KmaCi USeriD (520);
p) Captar y decodificar el código de barra bidimensional (421 ) del sitio web de la institución mediante la aplicación (310) del dispositivo de comunicación móvil (300);
q) Validar la firma de llave privada p„jUser D (510) de los conjunto de datos firmados Ds (420) con llave pública KpUb,useriD (321 ) si la validación es falsa entonces la petición (210) es rechazada, en caso de que la validación es verdadera se procede con método de la presente invención.
A continuación se describen las siguientes etapas del método de la presente invención en referencia a la figura 4:
r) Generar mediante la aplicación (310) del dispositivo de comunicación móvil (300), el identificador del dispositivo móvil Id 'cei, useriD (414) con al menos el número de serie del dispositivo móvil y la llave de autentificación Kmac¡ useriD (520) y el código de autentificación de mensaje MAC;
s) Generar el código de confirmación móvil CodUSeriD,Ds,móvii (350) mediante dicho código de autentificación de mensaje MAC y a
partir de la llave de autentificación Kmac,UseriD (520), del conjunto de datos firmados Ds (420), el identificador del dispositivo móvil ld'cel,userlD (414);
t) Visualizar el código de confirmación móvil CodUSeriD,Ds,móvii (350) en la aplicación (310) del dispositivo de comunicación móvil (300) junto con los datos de la petición (210); si los datos de la petición (210) son incorrectos, el usuario puede cancelar la operación, en caso de ser correcto prosigue a la siguiente etapa;
u) Ingresar el código de confirmación móvil CodUSeriD, Ds, móvil (350) en el sitio web de la institución del terminal (200);
v) Enviar desde el terminal (200) al servidor remoto (400) dicho código de confirmación móvil CodUSeriD, Ds, móvil (350);
w) Encriptar dicho código de confirmación móvil CodUSeriD,Ds,móvii (350) mediante el módulo de seguridad hardware remoto (500) como un código de confirmación móvil encriptado
Cod userlD,Ds, móvil (540);
x) Comparar dicho código de confirmación móvil encriptado Cod'useriD,Ds,móvii (540) con el código de confirmación encriptado Cod'useriD.Ds (530) recibido en la etapa i); si ambos códigos no coincide, rechazar la petición (210);
y) En caso de coincidir ambos códigos de confirmación y de que el número de intentos de validaciones no exceda un máximo
predefinido dentro de un periodo de tiempo predefinido, enviar un código de éxito (600) al terminal (200) autorizando la petición (210).
En particular, dicha llave privada KpriViuseriD (510) y dicha llave pública KpubiUSeriD (321 ) son llaves asimétricas correspondiente y entregan una validación verdadera; y en donde la llave de autentificación Kmac¡ useriD (520) es una llave simétrica.
De acuerdo a un aspecto preferido de la invención, dicho código de barra bidimensional (421 ) es un código bidimensional es generado mediante uno de los siguientes códigos: Código de Rápida Respuesta (QR por sus siglas en inglés "Quick Response Code"), pdf417, matriz de datos "Datamatrix", "MaxiCode" y código de barras circulares "shotcode".
De acuerdo a un aspecto preferido de la invención, dicho usuario (100) esté autorizado corresponde a que el usuario (100) esté en una cuenta activa y no esté en una lista negra.
De acuerdo a un aspecto preferido de la invención, las etapas d), e), f) y g) son realizadas en el módulo de seguridad hardware remoto (500) con su procesador y memoria interna, es decir la llave privada encriptada K'priV,useriD (41 1 ) y la primera llave de seguridad K'mac,UseriD (412)
de dicho usuario (100) quedan almacenadas en dicho módulo de seguridad hardware remoto (500).
De acuerdo a un aspecto preferido de la invención, la etapa x) es también realizada por el módulo de seguridad hardware remoto (500) con su procesador y memoria interna, es decir el comparar dicho código de confirmación móvil encriptado Cod'USeriD,Ds,móvii (540) con el código de confirmación encriptado Cod'USeriD,Ds (530) es realizado por dicho módulo de seguridad hardware remoto (500) con su procesador y memoria interna.
De acuerdo a un aspecto preferido de la invención, la llave pública encriptada K pub,userlD (320) es generada por la aplicación (310) mediante la encriptación de una llave pública Kpub¡useriD (321 ) y una llave temporal Ktemp,pin (340), creada temporalmente en base al código de seguridad o pin (301 ) ingresado por el usuario (100) y según un algoritmo de derivación de llaves, como por ejemplo el protocolo PKCS5 ó PBKDF2 y dicha llave pública KpubiUSeriD (321 ) es correspondiente a una llave privada KpriViuseriD (510).
De acuerdo a un aspecto preferido de la invención, la segunda llave de seguridad K' mac, userID (330) es generada por la aplicación (310)
mediante la encriptación de la llave de autentificación Kmac,UseriD (520) y dicha llave temporal Ktemp,Pin (340).
De acuerdo a un aspecto preferido de la invención, la llave privada encriptada K'prN seriD (41 1 ), es generada por el módulo de seguridad hardware remoto (500) mediante la encriptación de dicha llave privada
Kpriv, userlD (510).
De acuerdo a un aspecto preferido de la invención, la primera llave de seguridad K'mac,UseriD (412) es generada por el módulo de seguridad hardware remoto (500) mediante la encriptación de dicha llave de autentificación Kmac, userlD (520).
De acuerdo a un aspecto preferido de la invención, el identificador del dispositivo móvil ld'cei,useriD (414) es generado por la aplicación (310) en dicho dispositivo de comunicación móvil (300) con al menos el número de serie del dispositivo de comunicación móvil (300) y la llave de autentificación Kmac¡ useriD (520) y un código de autentificación de mensaje MAC.
De acuerdo a un aspecto preferido de la invención, dicho código de autentificación de mensaje es un código tipo Hash (HMAC).
De acuerdo a un aspecto preferido de la invención, los datos de usuario UserID (220) comprenden uno o varios de los siguientes datos: nombre del usuario, dirección de usuario, correo electrónico, número de la cédula de identidad, número de seguridad social del usuario, clave de internet del usuario para la institución, al menos cuatro de los dígitos de una tarjeta del usuario de la institución, una clave dinámica, una clave predefinida.
De acuerdo a otro aspecto de la presente invención y como se ilustra en la figura 5, previo a la etapa a) se realiza la activación del dispositivo de comunicación móvil (300) del usuario (100) mediante las siguientes etapas:
a) acceder al sitio de la institución mediante un terminal (250) a través de una red de comunicaciones e ingresar sus datos de usuario UserID (220);
b) descargar desde el servidor remoto (400) en su dispositivo de comunicación móvil (310), la aplicación (310) y la llave de transporte / fransporte (401 );
c) enviar desde el terminal (250) al servidor remoto (400) los datos de usuario UserID (220) y una petición de activación (260) d) verificar en la base de datos (410) del servidor remoto (400) que para los datos de usuario UserID (220), dicho usuario (100) esté
autorizado, en caso de que el usuario no está autorizado entonces la petición de activación (260) es rechazada, en caso de estar autorizado se procede con la siguiente etapa;
e) generar en el servidor remoto (400) la llave pública Kpub¡ useriD (321 ), la llave privada p„vjUser D (510) y llave de autentificación KmacuseriD (520) exclusivas para dichos datos de usuario UserID (220) en una memoria temporal de dicho servidor remoto (400); f) Enviar desde el servidor remoto (400), la llave privada KpriViuseriD (510) y llave de autentificación Kmac¡useriD (520) de dicho usuario (100) a un módulo de seguridad hardware remoto (500) y eliminar de la memoria temporal del servidor remoto (400) la llave privada p„v,user/D (510);
g) Encriptar en el módulo de seguridad hardware remoto (500), la llave privada pn jUser D (510) y la llave de encriptación Kmac¡ useríD (520) como una llave privada encriptada K'priVi UseriD (41 1 ) y una primera llave de seguridad K'mac¡ useriD (412) para el usuario (100);
h) Retornar desde el módulo de seguridad hardware remoto (500) al servidor remoto (400) y almacenar en la base de datos (410), la llave privada encriptada K'priV,useriD (41 1 ) y la primera llave de seguridad K'mac,UseriD (412) de dicho usuario (100).
A continuación se describen las siguientes etapas de la activación del dispositivo de comunicación móvil (300) del usuario (100) en el método de la presente invención en referencia a la figura 6:
i) Encriptar en el servidor remoto (400) la llave pública Kpub¡ useriD (321 ) y llave de autentificación Kmac¡ useriD (520) mediante la llave de transporte Ktransporte (401 ) y a partir de ellas generar un código de barra bidimensional de activación (450);
j) Captar y decodificar el código de barra bidimensional de activación (450) del sitio web de la institución mediante la aplicación (310) del dispositivo de comunicación móvil (300); k) Ingresar el código de seguridad pin (301 ) por el usuario (100) en la aplicación (310) del dispositivo de comunicación móvil (300);
I) Desencriptar la información del código de barra bidimensional de activación (450) mediante la llave de transporte / fransporte (401 ) y la aplicación (310) del dispositivo de comunicación móvil (300) para obtener la llave pública Kpub¡useriD (321 ) y llave de autentificación KmaC:UseriD (520);
m) Derivar con la aplicación (310) del dispositivo de comunicación móvil (300) una llave temporal KtemP,Pm (340), creada temporalmente en base al código de seguridad o pin (301 ) ingresado por el usuario (100) y según un algoritmo de derivación de llaves, como por ejemplo el protocolo PKCS5 ó PBKDF2;
n) Encriptar la llave pública KpUb,useriD (321 ) y llave de autentificación Kmac,UseriD (520) mediante la aplicación (310) del dispositivo de comunicación móvil (300) a partir de la llave temporal Ktemp,pm (340) para generar y almacenar en la memoria del dispositivo de comunicación móvil (300) la llave pública encriptada K"pub¡ useriD (320) y la segunda llave de seguridad
K"mac,userlD (330);
o) Generar el identificador del dispositivo móvil ld'cei,useriD (414) mediante la aplicación (310) del dispositivo de comunicación móvil (300) con al menos el número de serie del dispositivo de comunicación móvil (300) y la llave de autentificación Kmac,UseriD (520) y un código de autentificación de mensaje MAC;
p) Generar un código de activación (350) concadenando una porción de la llave pública Kpub¡ useriD (321 ) y el identificador del dispositivo móvil ld'cei,useriD (414), visualizar este código de activación (350) en el dispositivo de comunicación móvil (300); q) Ingresar en el terminal (250) el código de activación (350) por el usuario (100);
r) Enviar el código de activación (350) desde el terminal (250) al servidor remoto (400), identificar la porción de la porción de la llave pública KpUb,useriD (321 ) de dicho código de activación (350) y extraer y almacenar en la base de datos (410) el identificador del dispositivo móvil Id'cei.useriD (414); y
eliminar la información relacionada con llave temporal Ktemp,pm (340) y del código de seguridad o pin (301 ) del dispositivo de comunicación móvil (300) y eliminar de la memoria temporal del servidor remoto (400) la llave pública Kpub¡ useriD (321 ) y llave de autentificación Kmac¡ useriD (520) y establecer al usuario (100) como autorizado y activado para los datos de usuario (210) en la base de datos (410) del servidor remoto (400).