Fuerza de la contraseña

Los sistemas que utilizan contraseñas para la autenticación deben tener alguna forma de verificar cualquier contraseña ingresada para obtener acceso. Si las contraseñas válidas simplemente se almacenan en un archivo o base de datos del sistema, un atacante que obtenga suficiente acceso al sistema obtendrá todas las contraseñas de usuario, lo que le dará al atacante acceso a todas las cuentas en el sistema atacado y posiblemente a otros sistemas donde los usuarios emplean la misma o contraseñas similares. Una forma de reducir este riesgo es almacenar solo un hash criptográfico de cada contraseña en lugar de la contraseña en sí. Los hash criptográficos estándar, como la serie Secure Hash Algorithm (SHA), son muy difíciles de revertir, por lo que un atacante que se apodera del valor hash no puede recuperar directamente la contraseña. Sin embargo, el conocimiento del valor hash permite al atacante probar rápidamente las conjeturas sin conexión. Los programas para descifrar contraseñas están ampliamente disponibles y probarán una gran cantidad de contraseñas de prueba contra un hash criptográfico robado.

Las mejoras en la tecnología informática siguen aumentando la velocidad a la que se pueden probar las contraseñas adivinadas. Por ejemplo, en 2010, el Georgia Tech Research Institute desarrolló un método para usar GPGPU para descifrar contraseñas mucho más rápido. Elcomsoft inventó el uso de tarjetas gráficas comunes para una recuperación de contraseña más rápida en agosto de 2007 y pronto presentó la patente correspondiente en los EE. UU. En 2011, había productos comerciales disponibles que afirmaban tener la capacidad de probar hasta 112.000 contraseñas por segundo en una computadora de escritorio estándar, utilizando un procesador de gráficos de alta gama para ese momento. Un dispositivo de este tipo descifrará una contraseña de un solo caso de 6 letras en un día. Tenga en cuenta que el trabajo se puede distribuir en muchas computadoras para una aceleración adicional proporcional a la cantidad de computadoras disponibles con GPU comparables. Se encuentran disponibles hashes de estiramiento de teclas especiales que tardan un tiempo relativamente largo en calcularse, lo que reduce la velocidad a la que se pueden adivinar. Aunque se considera una buena práctica usar el estiramiento de claves, muchos sistemas comunes no lo hacen.

Otra situación en la que es posible adivinar rápidamente es cuando la contraseña se usa para formar una clave criptográfica. En tales casos, un atacante puede comprobar rápidamente si una contraseña adivinada decodifica correctamente los datos cifrados. Por ejemplo, un producto comercial afirma probar 103.000 contraseñas WPA PSK por segundo.

Si un sistema de contraseñas solo almacena el hash de la contraseña, un atacante puede precalcular valores hash para variantes de contraseñas comunes y para todas contraseñas más cortas que una cierta longitud, lo que permite una recuperación muy rápida de la contraseña una vez que se obtiene su hash. Las listas muy largas de hashes de contraseñas precalculadas se pueden almacenar de manera eficiente utilizando tablas de arco iris. Este método de ataque puede frustrarse almacenando un valor aleatorio, llamado sal criptográfica, junto con el hash. La sal se combina con la contraseña al calcular el hash, por lo que un atacante que precalcule una tabla de arcoíris tendría que almacenar para cada contraseña su hash con todos los valores de sal posibles. Esto se vuelve inviable si la sal tiene un rango lo suficientemente grande, digamos un número de 32 bits. Desafortunadamente, muchos sistemas de autenticación de uso común no emplean sales y las tablas de arco iris están disponibles en Internet para varios de estos sistemas.

Entropía como medida de la fuerza de la contraseñaEditar

Es habitual en la industria informática para especificar la fuerza de la contraseña en términos de entropía de la información que se mide en bits y es un concepto de la teoría de la información. En lugar de la cantidad de conjeturas necesarias para encontrar la contraseña con certeza, se proporciona el logaritmo en base 2 de ese número, que comúnmente se conoce como la cantidad de «bits de entropía» en una contraseña, aunque esta no es exactamente la misma cantidad. como entropía de información. Una contraseña con una entropía de 42 bits calculada de esta manera sería tan fuerte como una cadena de 42 bits elegida al azar, por ejemplo, mediante un lanzamiento de moneda justo. Dicho de otra manera, una contraseña con una entropía de 42 bits requeriría 242 (4,398,046,511,104) intentos para agotar todas las posibilidades durante una búsqueda de fuerza bruta. Por lo tanto, al aumentar la entropía de la contraseña en un bit, el número de conjeturas requeridas se duplica, haciendo que la tarea de un atacante sea dos veces más difícil. En promedio, un atacante tendrá que probar la mitad del número posible de contraseñas antes de encontrar la correcta.

Contraseñas aleatoriasEditar

Artículo principal: Generador de contraseñas aleatorias

Las contraseñas aleatorias consisten en una cadena de símbolos de longitud especificada tomados de algún conjunto de símbolos usando una selección aleatoria proceso en el que es igualmente probable que se seleccione cada símbolo. Los símbolos pueden ser caracteres individuales de un conjunto de caracteres (p. ej., el conjunto de caracteres ASCII), sílabas diseñadas para formar contraseñas pronunciables o incluso palabras de una lista de palabras (formando así una frase de contraseña ).

La fuerza de las contraseñas aleatorias depende de la entropía real del generador de números subyacente; sin embargo, estas a menudo no son verdaderamente aleatorias, sino pseudoaleatorias.Muchos generadores de contraseñas disponibles públicamente utilizan generadores de números aleatorios que se encuentran en bibliotecas de programación que ofrecen entropía limitada. Sin embargo, la mayoría de los sistemas operativos modernos ofrecen generadores de números aleatorios criptográficamente fuertes que son adecuados para la generación de contraseñas. También es posible utilizar dados ordinarios para generar contraseñas aleatorias. Vea métodos más fuertes. Los programas de contraseñas aleatorias a menudo tienen la capacidad de garantizar que la contraseña resultante cumpla con una política de contraseñas local; por ejemplo, produciendo siempre una combinación de letras, números y caracteres especiales.

Para contraseñas generadas por un proceso que selecciona aleatoriamente una cadena de símbolos de longitud, L, de un conjunto de N símbolos posibles, el El número de posibles contraseñas se puede encontrar elevando el número de símbolos a la potencia L, es decir, NL. El aumento de L o N fortalecerá la contraseña generada. La fuerza de una contraseña aleatoria medida por la entropía de la información es solo el logaritmo en base 2 o log2 del número de contraseñas posibles, asumiendo que cada símbolo de la contraseña se produce de forma independiente. Por lo tanto, la entropía de información de una contraseña aleatoria, H, viene dada por la fórmula:

H = log 2 ⁡ NL = L log 2 ⁡ N = L log ⁡ N log ⁡ 2 {\ displaystyle H = \ log _ {2} N ^ {L} = L \ log _ {2} N = L {\ log N \ over \ log 2}}

donde N es el número de símbolos posibles y L es el número de símbolos en la contraseña. H se mide en bits. En la última expresión, log puede tener cualquier base.

Entropía por símbolo para diferentes conjuntos de símbolos
Conjunto de símbolos Símbolo contar N Entropía por símbolo H
Números arábigos (0–9) (por ejemplo, PIN) 10 3.322 bits
números hexadecimales (0–9, A – F) (por ejemplo, claves WEP) 16 4.000 bits
Alfabeto latino que no distingue entre mayúsculas y minúsculas (a – z o A – Z) 26 4.700 bits
Alfanumérico que no distingue entre mayúsculas y minúsculas (a – zo A – Z, 0–9) 36 5.170 bits
Alfabeto latino sensible a mayúsculas y minúsculas (a – z, A – Z) 52 5.700 bits
Caso alfanumérico sensible (a – z, A – Z, 0–9) 62 5,954 bits
Todos los caracteres imprimibles ASCII excepto el espacio 94 6.555 bits
Todos los caracteres suplementarios latin-1 94 6.555 bits
Todos los caracteres imprimibles ASCII 95 6.570 bits
Todos los caracteres imprimibles ASCII extendidos 218 7.768 bits
Binario (0-255 u 8 bits o 1 byte) 256 8.000 bits
Lista de palabras de Diceware 7776 12.925 bits por palabra

Un byte binario generalmente se expresa usando dos valores hexadecimales caracteres.

Para encontrar la longitud, L, necesaria para lograr la fuerza deseada H, con una contraseña extraída al azar de un conjunto de N símbolos, se calcula:

L = H log 2 ⁡ N {\ displaystyle L = {H \ over \ log _ {2} N}}

redondeado hasta el siguiente número entero más grande.

La siguiente tabla usa esta fórmula para mostrar las longitudes requeridas de contraseñas generadas verdaderamente al azar para lograr las entropías de contraseña deseadas para conjuntos de símbolos comunes:

Longitudes L de contraseñas generadas verdaderamente al azar necesarias para lograr una entropía de contraseña deseada H para conjuntos de símbolos que contienen N símbolos
Contraseña deseada
entropía H
números
arábigos
Hexadecimal Caso insensible Sensible a mayúsculas y minúsculas Todo ASCII Todo extendido
ASCII
Diceware
lista de palabras
alfabeto
latino
alfa-
numérico
alfabeto
latino
alfanuméricos
numéricos
caracteres imprimibles
8 bits (1 byte) 3 2 2 2 2 2 2 2 1 palabra
32 bits (4 bytes) 10 8 7 7 6 6 5 5 3 palabras
40 bits (5 bytes ) 13 10 9 8 8 7 7 6 4 palabras
64 bits (8 bytes) 20 16 14 13 12 11 10 9 5 palabras
80 bits (10 bytes) 25 20 18 16 15 14 13 11 7 palabras
96 bits (12 bytes) 29 24 21 19 17 17 15 13 8 palabras
128 bits (16 bytes) 39 32 28 25 23 22 20 17 10 palabras
160 bits (20 bytes) 49 40 35 31 29 27 25 21 13 palabras
192 bits (24 bytes) 58 48 41 38 34 33 30 25 15 palabras
224 bits (28 bytes) 68 56 48 44 40 38 35 29 18 palabras
256 bits (32 bytes) 78 64 55 50 45 43 39 33 20 palabras

Contraseñas generadas por humanosEditar

Las personas son notoriamente pobres para lograr suficiente entropía para producir contraseñas satisfactorias. Según un estudio en el que participaron medio millón de usuarios, la entropía media de la contraseña se estimó en 40,54 bits. Algunos magos de teatro explotan esta incapacidad para divertirse, de una manera menor, adivinando supuestas elecciones aleatorias (de números, digamos) hechas por miembros de la audiencia.

Así, en un análisis de más de 3 millones de contraseñas de ocho caracteres , la letra «e» se utilizó más de 1,5 millones de veces, mientras que la letra «f» se utilizó sólo 250.000 veces. Una distribución uniforme habría tenido cada carácter utilizado unas 900.000 veces. El número más común usado es «1», mientras que las letras más comunes son a, e, o y r.

Los usuarios rara vez hacen un uso completo de conjuntos de caracteres más grandes para formar contraseñas. Por ejemplo, los resultados de piratería obtenidos de un esquema de phishing de MySpace en 2006 revelaron 34.000 contraseñas, de las cuales solo el 8,3% usaba mayúsculas, números y símbolos.

Toda la fuerza asociada con el uso de todo el conjunto de caracteres ASCII ( números, mayúsculas y minúsculas mezcladas y caracteres especiales) solo se logra si cada contraseña posible es igualmente probable. Esto parece sugerir que todas las contraseñas deben contener caracteres de cada una de varias clases de caracteres, quizás letras mayúsculas y minúsculas, números y caracteres no alfanuméricos. De hecho, tal requisito es un patrón en la elección de contraseñas y se puede esperar que reduzca el «factor de trabajo» de un atacante (en términos de Claude Shannon). Esta es una reducción en la «fuerza» de la contraseña. Un mejor requisito sería requerir una contraseña que NO contenga ninguna palabra en un diccionario en línea, o una lista de nombres, o cualquier patrón de placa de cualquier estado (en los EE. UU.) O país (como en la UE). Si se requieren elecciones con patrones, es probable que los humanos las utilicen de formas predecibles, como escribir una letra en mayúscula, agregar uno o dos números y un carácter especial. Esta previsibilidad significa que el aumento de la seguridad de la contraseña es menor en comparación con las contraseñas aleatorias.

Publicación especial de NIST 800-63-2Edit

La publicación especial de NIST 800-63 de junio de 2004 (revisión 2) sugirió un esquema para aproximar la entropía de contraseñas generadas por humanos:

Usando este esquema, se estima que una contraseña de ocho caracteres seleccionada por humanos sin caracteres en mayúsculas y caracteres no alfabéticos O con cualquiera de los dos conjuntos de caracteres tiene 18 bits de entropía. La publicación del NIST reconoce que en el momento del desarrollo, había poca información disponible sobre la selección de contraseñas en el mundo real. Investigaciones posteriores sobre la entropía de contraseñas seleccionadas por humanos utilizando datos del mundo real recientemente disponibles han demostrado que el esquema NIST no proporciona una métrica válida para la estimación de la entropía de contraseñas seleccionadas por humanos. La revisión de junio de 2017 de SP 800-63 (Revisión 3) descarta este enfoque.

Consideraciones de usabilidad e implementaciónEditar

Debido a que las implementaciones de teclado nacionales varían, no se pueden usar todos los 94 caracteres imprimibles ASCII En todas partes. Esto puede representar un problema para un viajero internacional que desea iniciar sesión en un sistema remoto usando un teclado en una computadora local. Ver distribución del teclado. Muchos dispositivos portátiles, como tabletas y teléfonos inteligentes, requieren secuencias de cambios complejas o cambios de aplicaciones de teclado para ingresar caracteres especiales.

Los programas de autenticación varían en cuanto a los caracteres que permiten en las contraseñas. Algunos no reconocen las diferencias entre mayúsculas y minúsculas (por ejemplo, la «E» mayúscula se considera equivalente a la «e» minúscula), otros prohíben algunos de los otros símbolos. En las últimas décadas, los sistemas han permitido más caracteres en las contraseñas, pero aún existen limitaciones. Los sistemas también varían en la longitud máxima de contraseñas permitidas.

Como cuestión práctica, las contraseñas deben ser razonables y funcionales para el usuario final, así como lo suficientemente fuertes para el propósito previsto. Las contraseñas que son demasiado difíciles de recordar pueden olvidarse y, por lo tanto, es más probable que se escriban en papel, lo que algunos consideran un riesgo para la seguridad. Por el contrario, otros argumentan que obligar a los usuarios a recordar contraseñas sin ayuda solo puede acomodar contraseñas débiles y, por lo tanto, plantea un mayor riesgo de seguridad. Según Bruce Schneier, la mayoría de las personas son buenas para proteger sus billeteras o carteras, que es un «gran lugar» para almacenar una contraseña escrita.

Leave a Reply

Deja una respuesta

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