Para proteger el acceso a nuestras cuentas tanto personales como corporativas debemos de implementar el uso de One-Time Passwords (OTP) donde el mas común son los Time-Based One-Time Passwords (TOTP) definidos como OpenOTP en el RFC 6238.
OpenOTP de RCDevs expone sus servicios mediante interfaces SOAP, REST, JSON-RPC y RADIUS. El API nativo SOAP es extremadamente sencillo de utilizar en sus desarrollos e incluye un descriptor WDSL. También se puede integrar con aplicaciones OTP existentes vía web y mediante otros módulos se tiene soporte completo de Windows, ADFS, Linux e incluso acceso Wi-Fi.
También se incluye la aplicación PwReset que permite a los usuarios resetear sus passwords olvidados o expirados de Dominio mediante factores adicionales de Token/SMS, PKI o U2F.
¿De qué manera me protege un OTP?
El uso de OTPs está dentro de la metodología de autenticación Multi-Factor Authentication (MFA), que consiste en autenticar a los usuarios utilizando diferentes maneras (factores) para corroborar su identidad, algo que sabe (el password) y algo que tiene (el OTP).
De esta manera estamos mitigando los siguientes ataques:
- La contraseña se compromete. Aunque el atacante conozca la contraseña, ésta le es insuficiente ya que además necesita contar con el OTP, mismo que varía constantemente.
- El usuario es víctima de phishing, en el que es engañado para ingresar su contraseña en un sitio que aparenta ser legítimo. Si el usuario ingresa el OTP le va a estar entregando una sesión a los atacantes pero al menos evita accesos futuros.
¿Y cómo funcionan los Open TOTP?
Para activar el MFA en una cuenta:
- El usuario descarga un cliente de TOTP, el autenticador de RCDevs incluye la posibilidad de "One-Tap Authentication" mediante el cual el usuario tiene la opción de aceptar/negar el ingreso a la conexión.
- El servidor genera un secreto de al menos 128 bits (o de 160 por recomendación del RFC 6238) y lo almacena junto con la cuenta del usuario.
- El sitio presenta al usuario un secreto por medio de un código QR, junto con algunos parámetros adicionales para configurar el autenticador.
- El autenticador almacena el secreto en el móvil del usuario.
Además de las Apps en los teléfonos también hay autenticadores TOTP en hardware.
El usuario al intentar ingresar al sitio protegido por el MFA TOTP.
- El usuario se autentica con su usuario, contraseña y el TOTP desplegado por su autenticador.
- El servidor valida credenciales, recobra el secreto y tomando en cuenta la hora genera el OTP esperado, haciendo la comparación correspondiente.
- Depende de la configuración se puede tolerar una diferencia en los relojes del servidor y del móvil en bloques de 30 segundos.
Por supuesto el proceso anterior depende que tanto el servidor como el móvil del usuario tengan la misma referencia horaria con una desviación menor a 30 segundos. El día de hoy no representa ningún problema, ya que tanto los servidores como los móviles pueden obtener la hora exacta a partir de servidores de referencia en Internet.
Ventajas:
- La cuenta del usuario es autenticada por medio de un segundo factor.
- Para Open OTP, el algoritmo está estandarizado permitiendo múltiples proveedores tanto del autenticador como de los servidores.
- El sistema puede funcional totalmente fuera de línea.
También la solución de OpenOTP de RCDevs se integra con el uso de HSM en el que las llaves criptográficas se generan y almacenan en dispositivos externos al servidor.