Algoritmo de contraseña de un solo uso (OTP) en criptografía

Autenticación , el proceso de identificar y validar a un individuo es el paso rudimentario antes de otorgar acceso a cualquier servicio protegido (como una cuenta personal). La autenticación se ha integrado en los estándares de seguridad cibernética y ofrece evitar el acceso no autorizado a los recursos protegidos. Los mecanismos de autenticación actuales crean una puerta de enlace de doble capa antes de desbloquear cualquier información protegida.

Esta doble capa de seguridad, denominada autenticación de dos factores, crea un camino que requiere la validación de credenciales (nombre de usuario/correo electrónico y contraseña) seguido de la creación y validación de la contraseña de un solo uso (OTP) . La OTP es un código numérico que se genera de manera única y aleatoria durante cada evento de autenticación. Esto agrega una capa adicional de seguridad, ya que la contraseña generada es un nuevo conjunto de dígitos cada vez que se intenta una autenticación y ofrece la cualidad de ser impredecible para la próxima sesión creada.

Los dos métodos principales para la entrega de la OTP son:

  1. Basado en SMS:
    Esto es bastante sencillo. Es el procedimiento estándar para entregar la OTP a través de un mensaje de texto después de que la autenticación regular sea exitosa. Aquí, la OTP se genera en el lado del servidor y se entrega al autenticador a través de un mensaje de texto. Es el método más común de entrega de OTP que se encuentra en todos los servicios.
  2. Basado en aplicaciones:
    este método de generación de OTP se realiza en el lado del usuario mediante una aplicación de teléfono inteligente específica que escanea un código QR en la pantalla. La aplicación es responsable de los dígitos OTP únicos. Esto reduce el tiempo de espera para la OTP y reduce el riesgo de seguridad en comparación con la entrega basada en SMS.

La forma más común para la generación de OTP definida por The Initiative For Open Authentication (OATH) son las contraseñas de un solo uso basadas en el tiempo (TOTP) , que es una OTP sincronizada en el tiempo. En estos sistemas OTP, el tiempo es el factor cardinal para generar la contraseña única.

La contraseña generada se crea utilizando la hora actual y también tiene en cuenta una clave secreta. Un ejemplo de esta generación de OTP es el algoritmo de OTP basado en el tiempo (TOTP) que se describe a continuación:

  1. El servidor backend genera la clave secreta
  2. El servidor comparte la clave secreta con el servicio que genera la OTP
  3. Se genera un código de autenticación de mensajes basado en hash (HMAC) utilizando la clave secreta y el tiempo obtenidos. Esto se hace usando el algoritmo criptográfico SHA-1.

    Dado que tanto el servidor como el dispositivo que solicita la OTP tienen acceso al tiempo, que obviamente es dinámico, se toma como parámetro en el algoritmo. Aquí, se considera la marca de tiempo de Unix que es independiente de la zona horaria, es decir, el tiempo se calcula en segundos a partir del primero de enero de 1970. Consideremos «0215a7d8c15b492e21116482b6d34fc4e1a9f6ba» como la string generada del algoritmo HMAC-SHA1.

  4. El código generado tiene una longitud de 20 bytes y, por lo tanto, se trunca a la longitud deseada adecuada para que el usuario lo ingrese. Aquí se utiliza el truncamiento dinámico. Para el código de 20 bytes “0215a7d8c15b492e21116482b6d34fc4e1a9f6ba”, cada carácter ocupa 4 bits. La string completa se toma como 20 strings individuales de un byte.

    Nos fijamos en el último carácter, aquí a. El valor decimal del cual se toma para determinar el desplazamiento a partir del cual comenzar el truncamiento. A partir del valor de desplazamiento, se leen los 10 siguientes 31 bits para obtener la string “6482b6d3″. Lo último que queda por hacer es tomar nuestro valor numérico hexadecimal y convertirlo a decimal, lo que da 1686288083.

    Todo lo que necesitamos ahora es la última longitud deseada de dígitos OTP de la string decimal obtenida, rellenada con ceros si es necesario. Esto se logra fácilmente tomando la string decimal, módulo 10 ^ número de dígitos requeridos en OTP. Terminamos con «288083» como nuestro código TOTP.

  5. Se utiliza un contador para realizar un seguimiento del tiempo transcurrido y generar un nuevo código después de un intervalo de tiempo establecido
  6. La OTP generada se entrega al usuario mediante los métodos descritos anteriormente.

Además del método basado en el tiempo descrito anteriormente, también existen ciertos algoritmos matemáticos para la generación de OTP, por ejemplo, una función unidireccional que crea una OTP posterior a partir de la OTP creada anteriormente.

El sistema de autenticación de dos factores es una estrategia efectiva que explota los principios de autenticación de «algo que sabe» y «algo que tiene». La naturaleza dinámica del último principio implementado por el algoritmo de contraseña de un solo uso es crucial para la seguridad y ofrece una capa efectiva de protección contra atacantes maliciosos. La imprevisibilidad de la OTP presenta un obstáculo para despegar las capas que ofrece este método de criptografía.

Publicación traducida automáticamente

Artículo escrito por Avantika Bhatia 1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *