Una contraseña de un solo uso ( OTP ), también conocida como PIN de un solo uso o contraseña dinámica , es una contraseña que es válida solo para una sesión o transacción de inicio de sesión, en un sistema informático u otro dispositivo digital. Las OTP evitan varias deficiencias asociadas con la autenticación tradicional (estática) basada en contraseñas; Varias implementaciones también incorporan autenticación de dos factores al garantizar que la contraseña de un solo uso requiera acceso a algo que una persona tiene (como un pequeño dispositivo llavero con la calculadora OTP incorporada, o una tarjeta inteligente o un teléfono celular específico). como algo que una persona conoce (como un PIN).
Los algoritmos de generación de OTP suelen hacer uso de pseudoaleatoriedad o aleatoriedad , lo que dificulta la predicción de OTP sucesoras por parte de un atacante, y también funciones de hash criptográficas , que pueden usarse para derivar un valor pero son difíciles de revertir y, por lo tanto, difícil para un atacante obtener el valor. datos que se utilizaron para el hash. Esto es necesario porque, de lo contrario, sería fácil predecir futuras OTP observando las anteriores.
Se ha discutido sobre las OTP como un posible reemplazo de las contraseñas tradicionales y también como un potenciador de las mismas. En el lado negativo, las OTP pueden ser interceptadas o redirigidas, y los tokens duros pueden perderse, dañarse o robarse. [1] Muchos sistemas que usan OTP no las implementan de forma segura, y los atacantes aún pueden aprender la contraseña a través de ataques de phishing para hacerse pasar por el usuario autorizado. [2]
Caracteristicas
La ventaja más importante que abordan las OTP es que, a diferencia de las contraseñas estáticas, no son vulnerables a los ataques de repetición . Esto significa que un posible intruso que logre registrar una OTP que ya se usó para iniciar sesión en un servicio o para realizar una transacción no podrá abusar de ella, ya que ya no será válida. [2] Una segunda gran ventaja es que un usuario que usa la misma (o similar) contraseña para múltiples sistemas, no se vuelve vulnerable en todos ellos, si un atacante obtiene la contraseña para uno de ellos. Varios sistemas de OTP también tienen como objetivo garantizar que una sesión no pueda ser interceptada o suplantada fácilmente sin el conocimiento de los datos impredecibles creados durante la sesión anterior , reduciendo así aún más la superficie de ataque .
También hay diferentes formas de informar al usuario sobre la próxima OTP que debe usar. Algunos sistemas utilizan tokens de seguridad electrónicos especiales que lleva el usuario y que generan OTP y los muestran mediante una pequeña pantalla. Otros sistemas consisten en software que se ejecuta en el teléfono móvil del usuario . Sin embargo, otros sistemas generan OTP en el lado del servidor y las envían al usuario mediante un canal fuera de banda , como la mensajería SMS . Finalmente, en algunos sistemas, las OTP se imprimen en papel que el usuario debe llevar consigo.
En algunos esquemas de algoritmos matemáticos, es posible que el usuario proporcione al servidor una clave estática para usarla como clave de cifrado, enviando solo una contraseña de un solo uso. [3]
Generacion
Los algoritmos concretos de OTP varían mucho en sus detalles. Varios enfoques para la generación de OTP incluyen:
- Basado en la sincronización de tiempo entre el servidor de autenticación y el cliente que proporciona la contraseña (las OTP son válidas solo por un corto período de tiempo)
- Usar un algoritmo matemático para generar una nueva contraseña basada en la contraseña anterior (las OTP son efectivamente una cadena y deben usarse en un orden predefinido).
- Usar un algoritmo matemático donde la nueva contraseña se basa en un desafío (por ejemplo, un número aleatorio elegido por el servidor de autenticación o los detalles de la transacción) y / o un contador.
Sincronizado con el tiempo
Una OTP sincronizada en el tiempo generalmente está relacionada con una pieza de hardware llamada token de seguridad (por ejemplo, cada usuario recibe un token personal que genera una contraseña de un solo uso). Puede parecer una pequeña calculadora o un dije de llavero, con una pantalla LCD que muestra un número que cambia ocasionalmente. Dentro del token hay un reloj preciso que se ha sincronizado con el reloj del servidor de autenticación propietario . En estos sistemas OTP, el tiempo es una parte importante del algoritmo de contraseña, ya que la generación de nuevas contraseñas se basa en la hora actual en lugar de, o además de, la contraseña anterior o una clave secreta . Esta señal puede ser una propiedad de dispositivo o un teléfono móvil o semejante dispositivo móvil que se ejecuta el software que es de propiedad exclusiva, gratuita , o de código abierto . Un ejemplo de estándar OTP sincronizado en el tiempo es la contraseña de un solo uso basada en el tiempo (TOTP). Algunas aplicaciones se pueden utilizar para mantener la OTP sincronizada con la hora, como Google Authenticator o un administrador de contraseñas .
Cadenas hash
Cada nueva OTP puede crearse a partir de las anteriores OTP utilizadas. Un ejemplo de este tipo de algoritmo, atribuido a Leslie Lamport , utiliza una función unidireccional (llámela f ). Este sistema de contraseña de un solo uso funciona de la siguiente manera:
- Se elige una semilla (valor inicial) s .
- Una función hash f ( s ) se aplica repetidamente (por ejemplo, 1000 veces) a la semilla, dando un valor de: f ( f ( f (.... f ( s ) ....))). Este valor, que llamaremos f 1000 ( s ), se almacena en el sistema de destino.
- El primer inicio de sesión del usuario utiliza una contraseña p derivada al aplicar f 999 veces a la semilla, es decir, f 999 ( s ). El sistema de destino puede autenticar que esta es la contraseña correcta, porque f ( p ) es f 1000 ( s ), que es el valor almacenado. Luego, el valor almacenado se reemplaza por py el usuario puede iniciar sesión.
- El próximo inicio de sesión debe ir acompañado de f 998 ( s ). Nuevamente, esto se puede validar porque el hash da f 999 ( s ) que es p , el valor almacenado después del inicio de sesión anterior. Nuevamente, el nuevo valor reemplaza p y el usuario está autenticado.
- Esto se puede repetir otro 997 veces, cada vez será la contraseña f aplica uno menos veces, y se valida mediante la comprobación de que cuando hashed, que da el valor almacenado durante el inicio de sesión anterior. Las funciones hash están diseñados para ser extremadamente difícil de revertir, por lo tanto, un atacante tendría que conocer la semilla inicial s para calcular las posibles contraseñas, mientras que el sistema informático puede confirmar la contraseña en cualquier ocasión dada es válida comprobando que, cuando hash, se da el valor utilizado anteriormente para iniciar sesión. Si se desea una serie indefinida de contraseñas, se puede elegir un nuevo valor inicial después de que se agote el conjunto para s .
Para obtener la siguiente contraseña de la serie a partir de las contraseñas anteriores, es necesario encontrar una forma de calcular la función inversa f −1 . Dado que se eligió f para ser unidireccional, esto es extremadamente difícil de hacer. Si f es una función hash criptográfica , que es generalmente el caso, se supone que es una tarea intratable desde el punto de vista computacional . Un intruso que ve una contraseña de un solo uso puede tener acceso por un período de tiempo o iniciar sesión, pero se vuelve inútil una vez que expira ese período. El sistema de contraseña de un solo uso S / KEY y su OTP derivado se basan en el esquema de Lamport.
Desafío-respuesta
El uso de contraseñas de un solo uso de desafío-respuesta requiere que el usuario proporcione una respuesta a un desafío. Por ejemplo, esto se puede hacer ingresando el valor que el token ha generado en el token mismo. Para evitar duplicados, generalmente se involucra un contador adicional, por lo que si uno obtiene el mismo desafío dos veces, esto aún da como resultado diferentes contraseñas de un solo uso. Sin embargo, el cálculo generalmente no [ cita requerida ] involucra la contraseña previa de un solo uso; es decir, generalmente se usa este u otro algoritmo, en lugar de usar ambos algoritmos.
Implementaciones
SMS
Una tecnología común utilizada para la entrega de OTP es la mensajería de texto . Debido a que la mensajería de texto es un canal de comunicación omnipresente, está directamente disponible en casi todos los teléfonos móviles y, a través de la conversión de texto a voz, a cualquier teléfono móvil o fijo, la mensajería de texto tiene un gran potencial para llegar a todos los consumidores con un bajo costo total para implementar. OTP a través de mensajes de texto se puede cifrar utilizando un estándar A5 / x , que varios grupos de piratas informáticos informan se pueden descifrar con éxito en minutos o segundos. [4] [5] [6] [7] Además, las fallas de seguridad en el protocolo de enrutamiento SS7 pueden y se han usado para redirigir los mensajes de texto asociados a los atacantes; En 2017, varios clientes de O2 en Alemania fueron violados de esta manera para obtener acceso a sus cuentas de banca móvil . En julio de 2016, el NIST de EE. UU. Emitió un borrador de una publicación especial con orientación sobre prácticas de autenticación, que desalienta el uso de SMS como un método para implementar la autenticación de dos factores fuera de banda, debido a la capacidad de interceptación de SMS. a escala. [8] [9] [10] Los mensajes de texto también son vulnerables a las estafas de intercambio de SIM, en las que un atacante transfiere fraudulentamente el número de teléfono de una víctima a su propia tarjeta SIM , que luego puede usarse para obtener acceso a los mensajes que se le envían. [11] [12]
Tokens de hardware
RSA Security 's SecurID es un ejemplo de un tipo de tiempo-sincronización de contador, junto con HID Global ' soluciones s. Como todas las fichas, estas se pueden perder, dañar o robar; además, existe el inconveniente de que las baterías se agotan, especialmente para los tokens sin una función de recarga o con una batería no reemplazable. RSA propuso una variante del token patentado en 2006 y se describió como "autenticación ubicua", en la que RSA se asociaría con los fabricantes para agregar chips SecurID físicos a dispositivos como teléfonos móviles.
Recientemente, se ha hecho posible tomar los componentes electrónicos asociados con los tokens OTP de llaveros regulares e incrustarlos en un factor de forma de tarjeta de crédito. Sin embargo, la delgadez de las tarjetas, de 0,79 mm a 0,84 mm de grosor, impide que se utilicen baterías o componentes estándar. Deben usarse baterías especiales a base de polímeros que tienen una duración de batería mucho menor que las celdas de moneda (botón) . Los componentes semiconductores no solo deben ser muy planos, sino que deben minimizar la energía utilizada en espera y en funcionamiento.
Yubico ofrece un pequeño token USB con un chip integrado que crea una OTP cuando se presiona una tecla y simula un teclado para facilitar el ingreso de una contraseña larga. [13] Dado que es un dispositivo USB, evita los inconvenientes del reemplazo de la batería.
Se ha desarrollado una nueva versión de esta tecnología que integra un teclado en una tarjeta de pago de tamaño y grosor estándar. La tarjeta tiene un teclado, una pantalla, un microprocesador y un chip de proximidad integrados.
Fichas blandas
En los teléfonos inteligentes, las contraseñas de un solo uso también se pueden entregar directamente a través de aplicaciones móviles , incluidas aplicaciones de autenticación dedicadas como Authy y Google Authenticator , o dentro de la aplicación existente de un servicio, como en el caso de Steam . Estos sistemas no comparten las mismas vulnerabilidades de seguridad que los SMS y no requieren necesariamente una conexión a una red móvil para su uso. [14] [10] [15]
Copias en papel
En la banca en línea de algunos países, el banco envía al usuario una lista numerada de OTP que está impresa en papel. Otros bancos envían tarjetas de plástico con OTP reales ocultas por una capa que el usuario tiene que raspar para revelar una OTP numerada. Para cada transacción en línea, el usuario debe ingresar una OTP específica de esa lista. Algunos sistemas solicitan las OTP numeradas secuencialmente, otros eligen pseudoaleatoriamente una OTP para ingresar.
Seguridad
Las contraseñas de un solo uso son vulnerables a los ataques de ingeniería social en los que los phishers roban las OTP engañando a los clientes para que proporcionen una o más OTP que usaron en el pasado. A finales de 2005, los clientes de un banco sueco fueron engañados para que entregaran sus contraseñas de un solo uso. [16] En 2006, este tipo de ataque se utilizó contra clientes de un banco estadounidense. [17] Incluso las OTP sincronizadas en el tiempo son vulnerables al phishing, por dos métodos: el atacante puede utilizar la contraseña tan rápidamente como el usuario legítimo, si el atacante puede obtener la OTP en texto sin formato con la suficiente rapidez. El otro tipo de ataque, que puede ser derrotado por los sistemas OTP que implementan la cadena hash, es que el phisher utilice la información obtenida ( códigos OTP anteriores que ya no son válidos) mediante este método de ingeniería social para predecir qué códigos OTP serán. utilizado en el futuro. Por ejemplo, un generador de contraseñas de OTP que es pseudoaleatorio en lugar de verdaderamente aleatorio podría verse comprometido o no, porque los números pseudoaleatorios a menudo son predecibles una vez que uno tiene los códigos de OTP anteriores . Un sistema OTP solo puede usar OTP verdaderamente aleatorias si el autenticador genera la OTP y la transmite (presumiblemente fuera de banda) al usuario; de lo contrario, la OTP debe ser generada independientemente por cada parte, lo que requiere un algoritmo repetible y, por lo tanto, meramente pseudoaleatorio .
Aunque las OTP son en cierto modo más seguras que una contraseña memorizada estática, los usuarios de los sistemas OTP siguen siendo vulnerables a los ataques de intermediarios . Por lo tanto, las OTP no deben divulgarse a terceros, y usar una OTP como una capa de seguridad en capas es más seguro que usar una OTP sola; Una forma de implementar la seguridad por capas es utilizar una OTP en combinación con una contraseña que el usuario memoriza (y que nunca se transmite al usuario, como suelen ser las OTP). Una ventaja del uso de la seguridad por capas es que un inicio de sesión único combinado con una contraseña maestra o un administrador de contraseñas se vuelve más seguro que usar solo una capa de seguridad durante el inicio de sesión y, por lo tanto, se evita el inconveniente de la fatiga de las contraseñas si normalmente se ha sesiones con muchas contraseñas que deberían ingresarse a mitad de sesión (para abrir diferentes documentos, sitios web y aplicaciones); Sin embargo, la desventaja de usar muchas formas de seguridad a la vez durante un inicio de sesión único es que uno tiene el inconveniente de tener más precauciones de seguridad durante cada inicio de sesión, incluso si se inicia sesión solo para un uso breve de la computadora para acceder a la información. o una aplicación que no requiere tanta seguridad como otros elementos de alto secreto para los que se utiliza la computadora.
Estandarización
Muchas tecnologías OTP están patentadas. Esto dificulta la estandarización en esta área, ya que cada empresa intenta impulsar su propia tecnología. Sin embargo, existen estándares, por ejemplo, RFC 1760 ( S / KEY ), RFC 2289 (OTP), RFC 4226 ( HOTP ) y RFC 6238 ( TOTP ).
Ver también
- Autenticador de Google
- FreeOTP
- Iniciativa para la autenticación abierta
- KYPS
- Cojín de una sola vez
- OTPW
- S / LLAVE
- Token de seguridad
- Algoritmo de contraseña de un solo uso basado en el tiempo
- Autenticación de dos factores
Referencias
- ^ "Códigos de acceso de un solo uso para 2FA: ¿una muerte rápida o lenta? | Blog de IDology" . IDología . 2 de agosto de 2017 . Consultado el 21 de noviembre de 2020 .
- ^ a b Paterson, Kenneth G .; Stebila, Douglas (2010). Steinfeld, Ron; Hawkes, Philip (eds.). "Intercambio de claves autenticadas con contraseña única" . Seguridad y privacidad de la información . Apuntes de conferencias en informática. Berlín, Heidelberg: Springer. 6168 : 264–281. doi : 10.1007 / 978-3-642-14081-5_17 . ISBN 978-3-642-14081-5.
- ^ EOTP - Transferencia de clave estática . Defuse.ca (13 de julio de 2012). Consultado el 21 de diciembre de 2012.
- ^ Barkan, Elad; Eli Biham ; Nathan Keller (2003). "Criptoanálisis instantáneo de sólo texto cifrado de comunicación cifrada GSM" : 600–16. Archivado desde el original el 7 de octubre de 2015 . Consultado el 6 de octubre de 2015 . Cite journal requiere
|journal=
( ayuda ) - ^ Barkan, Elad; Eli Biham; Nathan Keller. "Criptoanálisis instantáneo de solo texto cifrado de comunicación cifrada GSM por Barkan y Biham of Technion (versión completa)" (PDF) .
- ^ Gueneysu, Tim; Timo Kasper; Martin Novotný; Christof Paar; Andy Rupp (2008). "Criptoanálisis con COPACOBANA" (PDF) . Transacciones IEEE en computadoras . 57 (11): 1498-1513. doi : 10.1109 / TC.2008.80 . S2CID 8754598 .
- ^ Nohl, Karsten; Chris Paget (27 de diciembre de 2009). GSM: ¿SRSLY? . 26 ° Congreso de Comunicación del Caos (26C3) . Consultado el 30 de diciembre de 2009 .
- ^ Fontana, John. "El blog de NIST aclara la desaprobación de SMS a raíz de la caída de los medios" . ZDNet . Consultado el 14 de julio de 2017 .
- ^ Meyer, David. "Se acaba el tiempo para los códigos de seguridad de inicio de sesión basados en SMS" . Fortuna . Consultado el 14 de julio de 2017 .
- ^ a b Brandom, Russell (10 de julio de 2017). "La autenticación de dos factores es un desastre" . The Verge . Consultado el 14 de julio de 2017 .
- ^ Brandom, Russell (31 de agosto de 2019). "La técnica terriblemente simple que secuestró la cuenta de Twitter de Jack Dorsey" . The Verge . Consultado el 30 de enero de 2020 .
- ^ Tims, Anna (26 de septiembre de 2015). " ' Sim swap' da a los estafadores acceso a todas las áreas a través de su teléfono móvil" . The Guardian . ISSN 0261-3077 . Consultado el 30 de enero de 2020 .
- ^ "Yubico AB" . Bloomberg Businessweek . Consultado el 13 de julio de 2011 .
- ^ Garun, Natt (17 de junio de 2017). "Cómo configurar la autenticación de dos factores en todas sus cuentas en línea" . The Verge . Consultado el 14 de julio de 2017 .
- ^ McWhertor, Michael (15 de abril de 2015). "Valve agrega autenticación de inicio de sesión de dos factores a la aplicación móvil Steam" . Polígono . Consultado el 8 de septiembre de 2015 .
- ^ El artículo del registro . El artículo del Registro (12 de octubre de 2005). Consultado el 21 de diciembre de 2012.
- ^ Blog de seguridad del Washington Post . Blog.washingtonpost.com. Consultado el 21 de diciembre de 2012.