Sistemas de OTP

Lo mínimo que debemos de hacer para proteger el acceso a nuestras cuentas tanto personales como corporativas es 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.

Otras formas de protección OTP usan algoritmos propietarios, codifican el secreto compartido o utilizan un código de verificación enviado mediante un mensaje al teléfono del usuario.

¿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 como funcionan los Open TOTP?

Para activar el MFA en una cuenta:

  1. El usuario descarga un cliente de TOTP, que al ser un algoritmo abierto puede seleccionar entre una amplia gama de autenticadores disponibles en las tiendas de aplicaciones de los móviles.
  2. En el sitio en cuestión 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.
  3. El sitio presenta al usuario un secreto por medio de un código QR, junto con algunos parámetros adicionales para configurar el autenticador.
  4. 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 código QR a la derecha contiene un URL Open TOTP con un secreto y las instrucciones de configuración.

Instale su autenticador TOTP preferido y lea el código QR para configurarlo. Va a observar que la página está sincronizada con su teléfono.

El ejercicio demuestra que la generación de un código TOTP depende del secreto y de tener la hora sincronizada.

El usuario al intentar ingresar al sitio protegido por el MFA TOTP.

  1. El usuario se autentica con su usuario, contraseña y el TOTP desplegado por su autenticador.
  2. El servidor valida credenciales, recobra el secreto y tomando en cuenta la hora genera el OTP esperado, haciendo la comparación correspondiente.
  3. 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.

Desventajas:

  • El usuario deberá de seleccionar un autenticador apropiado; siempre hay el riesgo de que seleccione uno que no resguarde apropiadamente el secreto.
  • El usuario debe de capturar manualmente el OTP.  Los TOTP son números enteros de 6 a 12 posiciones.
  • Toda la seguridad depende que el secreto no sea comprometido, haciendo el proceso de lectura del QR el punto mas vulnerable del proceso.
  • Si el usuario tarda demasiado y la tolerancia a la diferencia de tiempo entre los relojes es baja, el TOTP no será aceptado.
  • La más importante: los secretos necesariamente están almacenados junto con las cuentas de los usuarios.

Mejore la gestión de identidad y accesos

>