Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current Restore this Version View Page History

« Previous Version 3 Next »

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.

Este flujo consta de los siguientes pasos:

  1. El usuario inicia sesión desde el dispositivo y / o realiza la solicitud de enrolamiento.

  2. 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

  3. Una vez autenticado el usuario se realizan los procesos de inicio de sesión.

  4. La respuesta se transmitida hacia el dispositivo.

  5. 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).

  6. El servicio de backend de Spin recibe la solicitud y la transmite al servicio de agregación.

  7. El servicio de agregación solicita el enrolamiento de la cuenta al servicio de Token

  8. El servicio de token invoca a HSM adapter para generar una clave nueva

  9. HSM adapter genera una clave aleatoria utilizando java.security.MessageDigest utilizando la hora actual como salt.

  10. Se cifra la clave aleatoria generada mediante AWS CloudHSM utilizando el algoritmo AES.

  11. La clave cifrada por AWS CloudHSM es retornada a HSM adapter.

  12. 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)

  13. 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.

  14. 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.

  15. El servicio de agregación reenvía la respuesta a los servicios de backend.

  16. 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.

Los pasos que sigue éste flujo son los siguientes:

  1. El usuario solicita la ejecución de una acción protegida desde el dispositivo. Internamente el dispositivo lee la clave criptográfica almacenada durante el proceso de enrolamiento y genera un TOTP utilizando la hora actual. Posteriormente envía el TOTP junto con el cuerpo de la solicitud de validación.

  2. Los servicios de backend reciben la petición y la redirigen al servicio de agregación.

  3. El servicio de agregación retransmite la petición el servicio de Token

  4. El servicio de token ofusca el identificador de cuenta de usuario y lo usa como clave de acceso de registro para leer de la base de datos.

  5. El servicio de token recupera la clave cifrada de la base de datos

  6. El servicio de Token envía el TOTP generado por el cliente junto con la clave cifrada a HSM adapter.

  7. HSM adapter envía la clave cifrada a AWS ClodHSM para su descifrado.

  8. AWS CloudHSM descifra la clave y la retorna a HSM Adapter.

  9. HSM adapter genera un nuevo TOTP con la clave cifrada.

  10. Se compara el TOTP generado con el TOTP generado por el dispositivo. Si se encuentran en la misma ventana de tiempo el valor debe ser igual y la autenticación es exitosa.

  11. El resultado es retornado al servicio de Token

  12. El servicio de Token retransmite el resultado al servicio de agregación

  13. El servicio de agregación reenvía respuesta a servicios de backend, los cuales, en el caso de Spin, de ser exitosa generan un nuevo token para ser añadido en la cabecera que la transacción a autorizar desde el dispositivo.

  14. El dispositivo recibe la respuesta de la autenticación y en el caso de Spin, añaden e token a el encabezado de la solicitud de transacción.