Funcionalidad
La implementación de la solución contempla dos flujos principales, el de enrolamiento y el de autorización, a través de los cuales interactúan los servicios que conforman la solución.
Enrolamiento/Activación
Durante el enrolamiento se vincula un dispositivo o cuenta para permitir la generación de token digital.
...
El usuario inicia sesión desde el dispositivo y / o realiza la solicitud de enrolamiento.
Los servicios de backend realizan la autenticación del usuario y de un segundo factor para garantizar la validación de identidad y del dispositivo a vincular
Una vez autenticado el usuario se realizan los procesos de inicio de sesión.
La respuesta se transmitida hacia el dispositivo.
El dispositivo recibe respuesta, y de no encontrarse error, genera un par de claves RSA codificadas mediante PKCS #8, y envía la solicitud de enrolamiento junto con la clave pública generada y el algoritmo utilizado para generar las claves (RSA).
El servicio de backend de Spin recibe la solicitud y la transmite al servicio de agregación.
El servicio de agregación solicita el enrolamiento de la cuenta al servicio de Token
El servicio de token invoca a HSM adapter para generar una clave nueva
HSM adapter genera una clave aleatoria utilizando java.security.MessageDigest utilizando la hora actual como salt.
Se cifra la clave aleatoria generada mediante AWS CloudHSM utilizando el algoritmo AES.
La clave cifrada por AWS CloudHSM es retornada a HSM adapter.
Se cifra la clave aleatoria generada en el paso 9 con la clave pública generada desde el dispositivo para ser retornada al dispositivo de forma segura (clientKey) junto con la clave cifrada mediante AWS CloudHSM (serverKey)
El servicio de Token almacena la clave cifrada mediante AWS CloudHSM en la base de datos, dejando como llave de registro el identificador de cuenta ofuscado.
El servicio de Token retorna la clave recibida por HSM adapter para enviar al dispositivo la reenvía al servicio de agregación con el nombre seed dentro del cuerpo de la respuesta.
El servicio de agregación reenvía la respuesta a los servicios de backend.
Los servicios de backend comunican la respuesta al dispositivo, que recupera la clave cifrada desde HSM adapter con la llave publica (seed) y la descifra con la llave privada generada anteriormente. Una vez descifrada la clave, se almacena de forma segura dentro del dispositivo.
Autenticación mediante token digital
Una vez se ha enrolado el dispositivo, el usuario puede hacer uso de los servicios de token digital para validar que el dispositivo desde el cual realiza las transacciones es el mismo desde el cual se enroló previamente.
...