stringtranslate.com

Generador de contraseñas aleatorias

Un generador de contraseñas aleatorias es un programa de software o un dispositivo de hardware que toma la información de un generador de números aleatorios o pseudoaleatorios y genera automáticamente una contraseña . Las contraseñas aleatorias se pueden generar manualmente, utilizando fuentes de aleatoriedad simples como dados o monedas , o se pueden generar utilizando una computadora.

Aunque existen muchos ejemplos de programas generadores de contraseñas "aleatorias" disponibles en Internet, generar caracteres aleatorios puede ser complicado y muchos programas no generan caracteres aleatorios de una manera que garantice una seguridad sólida. Una recomendación habitual es utilizar herramientas de seguridad de código abierto siempre que sea posible, ya que permiten realizar comprobaciones independientes de la calidad de los métodos utilizados. El simple hecho de generar una contraseña al azar no garantiza que sea una contraseña segura, porque es posible, aunque muy poco probable, generar una contraseña que sea fácil de adivinar o descifrar. De hecho, no es necesario que una contraseña se haya generado mediante un proceso perfectamente aleatorio: solo tiene que ser lo suficientemente difícil de adivinar.

Un generador de contraseñas puede ser parte de un administrador de contraseñas . Cuando una política de contraseñas aplica reglas complejas, puede resultar más fácil utilizar un generador de contraseñas basado en ese conjunto de reglas que crear contraseñas manualmente.

Para la mayoría de las personas, las cadenas largas de caracteres aleatorios son difíciles de memorizar. Los hashes mnemotécnicos , que convierten de manera reversible cadenas aleatorias en contraseñas más fáciles de recordar, pueden mejorar sustancialmente la facilidad de memorización. Como el hash puede ser procesado por una computadora para recuperar la cadena original de 60 bits, tiene al menos tanto contenido de información como la cadena original. [1] Se utilizan técnicas similares en el deporte de la memoria .

Tipo y fortaleza de la contraseña

Los generadores de contraseñas aleatorias normalmente generan una cadena de símbolos de una longitud específica. Estos pueden ser caracteres individuales de algún conjunto de caracteres, sílabas diseñadas para formar contraseñas pronunciables o palabras de alguna lista de palabras para formar una frase de contraseña . El programa se puede personalizar para garantizar que la contraseña resultante cumpla con la política de contraseñas local, por ejemplo, produciendo siempre una combinación de letras, números y caracteres especiales. Estas políticas suelen reducir la solidez ligeramente por debajo de la fórmula que sigue, porque los símbolos ya no se producen de forma independiente. [ cita requerida ]

La fortaleza de una contraseña aleatoria contra un ataque particular ( búsqueda por fuerza bruta ) se puede calcular calculando la entropía de información del proceso aleatorio que la produjo. Si cada símbolo de la contraseña se produce de forma independiente y con probabilidad uniforme, la entropía en bits se da mediante la fórmula , donde N es el número de símbolos posibles y L es el número de símbolos en la contraseña. La función log 2 es el logaritmo de base 2 . H se mide típicamente en bits . [2] [3]

Cualquier generador de contraseñas está limitado por el espacio de estados del generador de números pseudoaleatorios utilizado, si se basa en uno. Por lo tanto, una contraseña generada con un generador de 32 bits está limitada a una entropía de 32 bits, independientemente del número de caracteres que contenga la contraseña. [ cita requerida ]

Sitios web

En Internet hay una gran cantidad de programas y sitios web generadores de contraseñas. Su calidad varía y puede ser difícil de evaluar si no hay una descripción clara de la fuente de aleatoriedad que se utiliza y si no se proporciona el código fuente para permitir que se verifiquen las afirmaciones. Además, y probablemente lo más importante, la transmisión de contraseñas candidatas a través de Internet plantea problemas de seguridad obvios, en particular si la conexión con el programa del sitio de generación de contraseñas no está protegida adecuadamente o si el sitio está comprometido de alguna manera. Sin un canal seguro , no es posible evitar las escuchas clandestinas, especialmente en redes públicas como Internet . Una posible solución a este problema es generar la contraseña utilizando un lenguaje de programación del lado del cliente como JavaScript. La ventaja de este enfoque es que la contraseña generada permanece en la computadora del cliente y no se transmite hacia o desde un servidor externo. [ investigación original? ]

API de criptografía web

La API de criptografía web es la recomendación del Consorcio World Wide Web (W3C) para una interfaz de bajo nivel que aumentaría la seguridad de las aplicaciones web al permitirles realizar funciones criptográficas sin tener que acceder a material de claves sin procesar. La API de criptografía web proporciona una forma confiable de generar contraseñas utilizando el crypto.getRandomValues()método. Aquí se muestra el código Javascript simple que genera la contraseña segura utilizando la API de criptografía web. [4] [5]

Norma FIPS 181

Muchos sistemas informáticos ya cuentan con una aplicación (normalmente denominada "apg") para implementar el estándar de generación de contraseñas FIPS 181. [6] FIPS 181 (Generador Automático de Contraseñas) describe un proceso estándar para convertir bits aleatorios (de un generador de números aleatorios de hardware) en "palabras" más o menos pronunciables adecuadas para una frase de contraseña. [7] Sin embargo, en 1994 se descubrió un ataque al algoritmo FIPS 181, de modo que un atacante puede esperar, en promedio, entrar en el 1% de las cuentas que tienen contraseñas basadas en el algoritmo, después de buscar solo 1,6 millones de contraseñas. Esto se debe a la falta de uniformidad en la distribución de las contraseñas generadas, que se puede solucionar utilizando contraseñas más largas o modificando el algoritmo. [8] [9]

Métodos mecánicos

Otro método consiste en utilizar dispositivos físicos, como dados, para generar la aleatoriedad. Una forma sencilla de hacerlo es utilizar una tabla de caracteres de 6 x 6. La primera tirada de dados selecciona una fila de la tabla y la segunda una columna. Por ejemplo, si sale un 2 seguido de un 4, se seleccionará la letra "j" de la tabla de fraccionamiento que aparece a continuación. [10] Para generar caracteres en mayúsculas o minúsculas o algunos símbolos, se puede utilizar el lanzamiento de una moneda, cara en mayúscula y cruz en minúscula. Si se seleccionó un dígito en las tiradas de dados, un lanzamiento de moneda con cara puede seleccionar el símbolo que se encuentra por encima de él en un teclado estándar, como el "$" encima del "4" en lugar de "4".

Véase también

Referencias

  1. ^ Ghazvininejad, Marjan; Knight, Kevin (mayo-junio de 2015). "Cómo memorizar una cadena aleatoria de 60 bits" (PDF) . Actas de la Conferencia de 2015 del Capítulo norteamericano de la Asociación de Lingüística Computacional: Tecnologías del lenguaje humano . Vol. Actas de la Conferencia de 2015 del Capítulo norteamericano de la Asociación de Lingüística Computacional: Tecnologías del lenguaje humano. Denver, Colorado: Asociación de Lingüística Computacional. págs. 1569-1575. doi :10.3115/v1/N15-1180. S2CID  8028691.
  2. ^ Schneier, B: Criptografía aplicada , segunda edición, página 233 y siguientes. John Wiley and Sons.
  3. ^ Burr, WE; Dodson, DF; Polk, WT (2006). "Directriz de autenticación electrónica" (PDF) . NIST. doi :10.6028/NIST.SP.800-63v1.0.2. {{cite journal}}: Requiere citar revista |journal=( ayuda )
  4. ^ "Generar una contraseña aleatoria segura usando la API de Web Crypto y Javascript". github.com . Consultado el 6 de enero de 2024 .
  5. ^ "Proceso paso a paso para crear una contraseña segura utilizando Web Crypto API". passwordlab.io . Consultado el 6 de enero de 2024 .
  6. ^ "StrongPasswords – Wiki de ayuda de la comunidad". help.ubuntu.com . Consultado el 25 de marzo de 2016 .
  7. ^ NIST. Generador automático de contraseñas según la norma FIPS 181
  8. ^ Shay, Richard; Kelley, Patrick Gage; Komanduri, Saranga; Mazurek, Michelle L.; Ur, Blase; Vidas, Timothy; Bauer, Lujo; Christin, Nicolas; Cranor, Lorrie Faith (2012). Correct horse battery staple: Exploring the usability of system-assigned passphrases (PDF) . SOUPS '12 Actas del Octavo Simposio sobre Privacidad y Seguridad Utilizables. doi :10.1145/2335356.2335366.
  9. ^ Ganesan, Ravi; Davies, Chris (1994). "Un nuevo ataque a los generadores de contraseñas de pronunciación aleatoria" (PDF) . Actas de la 17.ª Conferencia Nacional de Seguridad Informática {NIST}-{NCSC} . NIST: 184–197 . Consultado el 17 de diciembre de 2014 .
  10. ^ Levine, John R., Ed.: Internet Secrets , segunda edición, página 831 y siguientes. John Wiley and Sons.

Enlaces externos