Una contraseña es una frase o palabra secreta conocida solo por un usuario o por un grupo restringido de usuarios. Innumerables sitios web requieren una contraseña para proteger las cuentas de los usuarios. La contraseña puede requerir una cantidad mínima de caracteres o una combinación de símbolo y número.
Pero, ¿eso garantiza una contraseña más segura?
Independientemente de las intenciones de los usuarios de la web, las políticas a menudo los obligan a elegir contraseñas terribles. La evidencia demuestra que cuando se implementan secuencias de procedimientos arbitrarios, los usuarios se irritan y seleccionan contraseñas horribles. Esto ocurre en parte porque la mayoría de las personas no tienen idea de cómo se pueden manipular sus contraseñas.
A pesar de las repetidas advertencias de la comunidad de ciberseguridad, muchos piensan que cambiar letras por su variante numérica, como "3ebra", hace que sus contraseñas sean más difíciles de descifrar durante un ataque cuando no hace nada. Una vez que esto sucede, los usuarios tienen dos problemas: una contraseña no segura y una ilusión de seguridad porque la contraseña les parece difícil pero es fácil de descifrar para una computadora.
Puede generar o enseñar a otros cómo configurar buenas contraseñas al comprender mejor cómo se comprometen las contraseñas y las matemáticas involucradas.
Asumiendo que un carterista robó su tarjeta de crédito y luego trató de usarla para acceder a su cuenta. (Pensemos también que su banco no congelará la tarjeta de crédito robada después de cinco o más intentos fallidos, como se hace hoy en día). Como la mayoría de los bancos, se utiliza un PIN de 4 dígitos para retirar dinero de un cajero automático. Entonces, ¿cuáles son sus posibilidades de que su dinero esté seguro?
¿Cuáles son las probabilidades de que adivine con éxito su contraseña solo por casualidad?
Hay diez combinaciones posibles ya que el primer dígito de tu PIN puede ser cualquier número del 0 al 9. También hay diez opciones porque no hay una limitación para el segundo dígito que restrinja sus posibilidades (por ejemplo, si no pudieras t use un PIN con números recurrentes). Lo mismo ocurre con el tercer y cuarto dígito.
Hay 10.000 contraseñas posibles, una de las cuales podría ser la tuya: 10 x 10 x 10 x 10=10.000. Una muestra aleatoria de 10 000 contraseñas tendría una probabilidad de 1 en 10 000 de que un atacante predijera con precisión su contraseña.
Debido a que los humanos no pueden generar números aleatorios ni nada más, esto no es completamente cierto en la realidad. Los prejuicios en nuestro cerebro nos mantienen cautivos. Aunque parezca que se nos ocurrieron los números al azar, tendemos a utilizar números secuenciales y a pensar en grupos de dos o cuatro números con más frecuencia.
En la práctica, un subconjunto de esas 10.000 posibilidades ocurre con mucha más frecuencia en el mundo real. Por ejemplo, 1234 o 1111 aparecen con mucha más frecuencia que 7148.
Aunque es improbable que el delincuente tenga suficiente tiempo para ingresar 10,000 combinaciones en un cajero automático, una computadora estándar puede realizar decenas de miles de millones de intentos por segundo. Un atacante podría decodificar fácilmente un PIN de 4 dígitos.
Sin embargo, aunque es poco probable que el delincuente tenga tiempo suficiente para teclear 10.000 combinaciones en un cajero automático, una computadora normal hoy en día puede realizar decenas de miles de millones de intentos por segundo. Un PIN de 4 dígitos se descifraría rápidamente. Aumentar el espacio de muestra de su contraseña tanto como sea posible puede hacer que sea difícil de descifrar; es más difícil deducir la contraseña correcta de un billón de combinaciones que de mil.
El espacio de contraseña es el número total de posibles combinaciones de contraseña para un alfabeto específico, un conjunto de caracteres y una longitud máxima de contraseña. Mide la seguridad y la vulnerabilidad de las contraseñas mediante el cálculo del número de intentos aleatorios que se pueden hacer para encontrar una contraseña durante un ataque de fuerza bruta.
El tamaño de los caracteres permitidos (alfabetos, números, símbolos, etc.) y la longitud de la contraseña determinan qué tan grande es el espacio potencial de la contraseña. Como resultado, las contraseñas más largas y complejas se utilizan, más difícil se vuelve para los adversarios forzar por la fuerza bruta una contraseña un tanto imposible de descifrar porque el espacio de contraseña se vuelve amplio.
A partir del ejemplo de la tarjeta de crédito discutido anteriormente, calculamos el espacio de muestra del PIN multiplicando el número de caracteres permitidos por los dígitos permitidos. Se ingresaron diez caracteres elegibles para cada dígito; 10x10x10x10 o 104.
Para calcular el espacio de muestra de la contraseña, podemos usar la fórmula S = CN
Dónde:
S = número total de contraseñas posibles en el espacio muestral
C = el número de caracteres en el grupo de caracteres disponibles
N = el número de caracteres de nuestra contraseña.
• Si usa una contraseña que solo tiene letras mayúsculas, entonces C =26 • Si usa una contraseña que tiene mayúsculas y al menos una letra minúscula, entonces C =52 • Si usa una contraseña que tiene letras mayúsculas, al menos una letra minúscula y números, entonces C =62 • Si usa una contraseña que abarca todos los caracteres, entonces C =95 Ahora, comparemos diferentes contraseñas y veamos cómo su espacio de muestra diferirá entre sí: Ejemplo: YGMEOH C = 26 (solo en mayúsculas) N = 6 S = 308 915 776 o alrededor de 309 millones de combinaciones de contraseñas
S= CN S= 266 = 308,915,776 combinaciones Usando todos los caracteres y dejando la longitud de la contraseña en 6 caracteres, tenemos:
Ejemplo: @Q:t-2
C = 95
N=6
S = 735 091 890 625 o alrededor de 735 mil millones de combinaciones de contraseñas
S= CN S= 956 = 735.091.890.625 combinaciones.
Usando solo letras mayúsculas y aumentando la longitud a 16 caracteres, tenemos
Ejemplo: tfucbxqhjyepvgmw C = 26
N = 16 S = 43 608 742 899 428 874 059 776 combinaciones de contraseña, aproximadamente 59 mil millones de veces mayor que @Q:t-2, nuestro último ejemplo. S= CN S= 2616 = 43.608.742.899.428.874.059.776 combinaciones. De la ilustración anterior, es evidente que el espacio de muestra hace que una contraseña sea difícil de descifrar, no la inclusión de símbolos o números. Puede aumentar el tamaño del espacio de muestra en longitud con más caracteres.
La entropía en este sentido es una medida del tamaño del espacio de muestra de una contraseña particular, es decir, una medida de la fortaleza de la contraseña. No es fácil medir cuán difícil puede ser descifrar una contraseña sin saber cómo se generó. Sin embargo, tener un número –expresado en bits de entropía– que muestre si una contraseña puede ser fácil o difícil de descifrar es útil. Cuanto mayor sea la entropía, más difícil será descifrar la contraseña; cuanto menor sea la entropía, más fácil de romper. Recuerda que los dígitos decimales tienen diez posibilidades; 0 a 9 pero un dígito binario –también conocido como bit– tiene solo dos posibilidades que son 0 y 1; es decir, S=CN para el dígito decimal es 10N, pero por un bit es 2E; donde E es el número de bits. Entonces, si un bit representa un espacio muestral de dos posibilidades, entonces la entropía de 50 bits definirá un espacio de 250= 2 x 2 x 2 x… posibilidades. Por lo tanto, se obtendrá una contraseña de 50 bits de entropía de un grupo de 250 contraseñas únicas. Asimismo, una contraseña de 51 bits se obtendrá de una colección de 251, lo que la hace más difícil de descifrar que una contraseña de 50 bits. La siguiente fórmula se puede usar para calcular la entropía de una contraseña E= log2 (CN) O E = N x log2 (C) Por ejemplo, calculemos la entropía de BerbeCUE201 Aquí C= 26 +26 + 10 =62 N = 11 E = N x log2 (C) E = 11 x log2 (62) = 11 x 5.9541 E = 65.5 bits De S= 2E S = 265.5 S = 52,175,271,301,331,128,849.398 combinaciones Para Berbecue2(!0>}}} la entropía será E = N x log2 (C) E = 16 x log2 (95) = 16 x 6.5698 E = 105.1 bits De S= 2E S = 2105.1 S = 43,476,296,738,970,232,553,127,150,068,066.389 combinaciones Los ejemplos anteriores validan que cuanto mayor es la entropía, más difícil se vuelve descifrar dicha contraseña . Entonces, la entropía muestra cuántos intentos de prueba se necesitarán para forzar una contraseña. Estadísticamente, un adversario obtendrá la contraseña antes del último intento; no necesita pasar por todas las combinaciones antes de obtener la correcta. Entonces, al calcular un fortaleza de la contraseña, se considera el número esperado de intentos; esto suele ser el 50% del número de intentos de acertar . Para una contraseña de 105,1 bits, S= 2E – 1 S = 2105,1 – 1 S = 21.738.148.369.485.116.276.563.575.034.033,194 combinaciones.
Elegir una contraseña segura involucra muchos factores, que incluyen la entropía de la contraseña. Si dos contraseñas tienen la misma entropía, una puede ser moderadamente fuerte mientras que la otra es increíblemente débil. Esto se debe a los diccionarios de contraseñas, que son catálogos de contraseñas filtradas disponibles en Internet.
El uso de dichos catálogos se conoce como un ataque de diccionario, donde cualquier adversario que intente descifrar su contraseña probará los diccionarios de contraseñas antes de intentar un ataque de fuerza bruta. Por lo tanto, si usa una contraseña en este diccionario, la cantidad de bits de entropía no importará, ya que la contraseña se descifrará rápidamente.
Si los administradores web almacenan la contraseña en texto sin formato en su servidor, será fácil para los atacantes obtener las contraseñas si pueden acceder al servidor web, incluso si las contraseñas son seguras. Esta es la razón por la que se recomienda encarecidamente que las contraseñas se salten y se conviertan en hash antes de almacenarlas. En lugar de almacenar la contraseña en sí, se produce una firma de la contraseña a través de un mecanismo hash y se almacena el hash.
Saltar contraseñas implica agregar una cadena de 32 o más caracteres aleatorios a una contraseña antes de codificarlas.
Los algoritmos hash son procesos unidireccionales que hacen que sea computacionalmente imposible reconstruir una contraseña a partir de la firma hash. Este algoritmo convierte las contraseñas en una serie opaca de números y letras irreversibles. Se pueden usar numerosos algoritmos para el hashing, incluidos bcrypt, MD5, SHA, NTLM, etc.
Hashing de todas las contraseñas posibles en el espacio de muestra Dado que es imposible revertir las contraseñas hash a texto sin formato, lo que puede hacer para descifrar una contraseña es codificar todas las contraseñas posibles de ese espacio de muestra y encontrar el hash que coincida con su objetivo. Si la encuentra, entonces ha descifrado con éxito la contraseña. El hash de contraseñas requiere una tasa de hash (poder de cómputo) y algunos algoritmos de hash son más difíciles de calcular en comparación con otros, lo que hace que requieran mucho tiempo o que incluso no puedan descifrarse. Esta es la razón por la cual el algoritmo SHA-1 es una mala elección de hash porque la computadora calcula los hash SHA-1 muy rápidamente, lo que lo hace vulnerable.
Como se explicó anteriormente, cuanto más completo sea el espacio de muestra de la contraseña, más posibilidades tiene un atacante de realizar un hash antes de encontrar un hash que coincida. A veces, un espacio de muestra más amplio puede hacer que descifrar su contraseña sea imposible, lo que lleva cientos de miles de años.
Ataque de fuerza bruta Un ataque de fuerza bruta es cuando un atacante intenta adivinar la contraseña correcta entre las posibilidades de contraseña en el espacio de muestra. Esto se hace enviando muchas contraseñas hasta que se encuentra la correcta. Este enfoque es relativamente poco común porque es muy ineficaz. Solo funciona si su contraseña es muy corta, como menos de ocho caracteres, o si el atacante sabe que solo usó un conjunto de caracteres en particular (por ejemplo, números, alfabetos o solo alfanuméricos).
Ataque de diccionario Los atacantes suelen hacer suposiciones sobre cómo las personas crean contraseñas, especialmente contraseñas más largas, donde el ataque de fuerza bruta es ineficiente. Como se mencionó anteriormente sobre los prejuicios humanos, nuestras elecciones están influenciadas por ciertos comportamientos. Entonces, los atacantes crean un catálogo de frases, patrones y contraseñas de uso común como "mypassword" y comienzan a probarlos para ver si sus hashes coinciden con su objetivo. Si no es así, lo ajustan ligeramente, como cambiarlo a "myp4ssword", y lo intentan de nuevo.
Cualquier ataque que surja de este tipo se denomina ataque de diccionario , en el que se utiliza la potencia informática para crear contraseñas ficticias a partir de palabras que la mayoría de la gente probablemente utilice.