Autenticación con contraseña de un solo uso
La autenticación con contraseña de un solo uso o OTP (del inglés One-Time Password) es una variación de la autenticación con usuario/contraseña. En este método de autenticación se dificulta el acceso no autorizado haciendo que cada contraseña sea válida para una única sesión. Se tiene que usar una contraseña nueva para cada sesión. De esta forma se imposibilita que un atacante que capture el usuario y la contraseña usado, la pueda reutilizar (ataques de REPLAY). También hace al sistema más resistente frente ataques de fuerza bruta ya que cada vez que cambia la contraseña los intentos realizados anteriormente para romper la anterior contraseña no sirven para nada y hay que empezar desde cero.
Métodos de implementación[editar]
Hay distintos métodos para generar este tipo de sistemas:[1] [2]
- Utilizar algoritmos matemático para generar la contraseña. Algunos de estos algoritmos usan la contraseña anterior para hallar la siguiente. Por ejemplo el esquema de Lamport se basa en el uso de una función hash OWHF h reiteradamente partiendo de la clave inicial w teniendo la siguiente secuencia: w, h(w),h((h(w)) etc.
- Mediante una sincronización de tiempo entre el servidor autenticador y el cliente. En este sistema las claves son válidas durante un periodo de tiempo corto.
- Mediante el pre-establecimiento entre el usuario y el verificador de una secuencia de contraseñas de un solo uso.
- Una modificación del modelo anterior usa una tabla desafío-respuesta compartida por el usuario y el verificador de tal forma que el verificador hace una pregunta que permite seleccionar una determinada contraseña de dicha tabla. El usuario para ser autenticado debe responder con la contraseña 'seleccionada' por el servidor. Idealmente cada contraseña debe ser usada una sola vez. Este tipo de tablas es muy usadas para la autenticación en la web de algunos bancos (tarjetas de coordenadas)
- Utilizar métodos criptográficos para intercambiarse la nueva clave: En estos sistemas inicialmente sólo hay una clave secreta compartida. Durante la autenticación con esa clave el usuario crea y transmite al verificador la nueva clave cifrada bajo una clave derivada de la clave anterior.