Las contraseñas han formado parte de nuestra vida desde el primer correo que creamos, hoy en día recordar nuestra primera contraseña tal vez sea un tema de vergüenza porque puede que no fuera lo más elaborado o simplemente era tan sosa y de pronto hasta cómica, el numero telefónico, nombre propio, o un apodo. Los correos y tantos sitios web han impulsado el uso de nuevas contraseñas seguras para ayudar al usuario, para que el ingreso sea único y exclusivo del dueño, algunos sitios nos recomiendan ciertas longitudes, símbolos y algunos hasta verifican que no haya digitado en la contraseña parte de la información de registro (fecha, edad, numero telefónico, documento) todas estas condiciones que son tediosas nos permiten proteger nuestro correo o logeo a páginas que acabamos de registrarnos. En este estudio analizamos datos tomados de múltiples fuentes sobre el uso de contraseñas que aunque sean solo números ó cosas más elaboradas como letras con números, el problema real que planteamos aquí es que todas estas contraseñas son parte de diccionarios que usan muchos atacantes y consta no de miles ni millones de palabras sino billones de palabras, usando letras de nuestro abecedario común y los números. Los ataques a contraseñas han sido uno de los crímenes más dañinos y que permiten que usuarios mal intencionados obtengan acceso a uno o más servicios si la víctima es descuidada y usa la misma contraseña insegura en todas partes, en la tabla de estos datos los tiempos mostrados en años pueden parecer poco probables de ser vulnerados, pero como dije anteriormente toda contraseña analizada aquí es parte de una compilación de diccionarios donde serán los primeros valores para comparar y vulnerar cuentas.
Seguir las recomendaciones del sitio web no es algo para tomar a la ligera, pero si usted quisiera saber que tan segura es la palabra o combinación de caracteres que ha elegido debe hacer uso de ecuaciones que no son complejas, y conviene tener mayor número de caracteres y de elementos y así pueden generar resultados mejores, por ende, más seguros.
el valor es resultado de:
Donde K es el valor que puede tomar la “keyspace” este término se refiere al conjunto de posibles valores de un sistema criptográfico donde en el caso de ser solo letras del abecedario seria 26 o solo las vocales 5 o todos los números enteros seria 10, y si consideramos todos los símbolos especiales posibles seria 32 símbolos N se refiere al número de caracteres que tiene la contraseña.
Si el sitio web nos exige estas condiciones:
Paso a paso:
Entonces tenemos para el primer paso al menos una mayúscula, tomando las 26 letras y cada una tiene su versión en mayúscula tenemos 52 posibles variaciones
Para el segundo solo serian 0-9 por ende 10 posibles variaciones
para el tercero, nos dicen cuántos caracteres y el ultimo solo 8 símbolos de esos, entonces procedemos a sumar:
\(k= 52+10+8 ==70\)
y ya reemplazando en nuestra ecuación tenemos:
\(70^ {8} = 576'480.100'000.000\)
Es lo mínimo que podemos crear siguiendo los requisitos que nos plantearon, pero esto no previene que con el suficiente tiempo el actor malicioso pueda ingresar. Estos modelos presentados fueron analizados por diversas empresas de seguridad y con los actuales sistemas computacionales, dentro de poco la computación cuántica va a desplazar las mejores contraseñas y posiblemente toque que recurrir a alternativas donde las contraseñas sean cosa del pasado.
Ahora, contamos con una tabla para catalogar la fortaleza de las contraseñas, y si notamos las contraseñas mas largas que nos proponen esta dentro de los 8 a 15 digitos , lo cual es apropiado pero no todos memorizan contraseñas tan largas, y por eso hoy en dia estan los “password manager” que ayudan a almacenar las contraseñas, pero generando otro tipo de vulnerabilidad, es realmente seguro el administrador? Las cifras de keyspace aqui mostradas están en escala corta, y solo tomamos hasta 8 dígitos para catalogar los datos, la mas larga de las contraseñas con solo 9 dígitos duraría 93 años en el método online, pero como podemos ver hay alternativas mas seguras por encima de esa, combinar mayúsculas, agregar caracteres especiales, y olvidarse por completo de usar algo que sea fácil de averiguar, un numero personal, un nombre o apodo o incluir algo que este en el correo.
a continuación una descripción de los criterios para catalogar la fortaleza de los elementos incluidos en este trabajo:
Hoy en día las contraseñas que manejamos son de 6 dígitos en adelante, pero como vimos en la tabla anterior, algunas contraseñas de 6 dígitos no llegan ni a un nivel medio de seguridad. nuestra tabla de datos esta compuesta por 500 contraseñas, algunas son pequeñas variaciones de otras contraseñas contenidas aquí ej: password y passw0rd, y otras son variaciones que parecen ser más complejas, para mostrar algunas características de los datos fue necesario una variable adicional que es la longitud, con esta podemos ver que tanto aporta a la seguridad la cantidad de dígitos de la contraseña. Primero veamos como esta compuesto el conjunto de datos:
Como podemos ver, en esta tabla hay una gran presencia de contraseñas con 6 dígitos,luego las que tienen 7 y 8 , tenemos 1 sola contraseña con 9 dígitos pero como vayamos comparando los resultados notaremos que en este caso particular la cantidad de dígitos no ofrece una seguridad adicional.
La siguiente gráfica es una ayuda para poder apreciar las longitudes vs fortaleza con una organización de color dependiendo a que categoría de datos pertenezcan
##Fortaleza y sus influencias como lo vimos anteriormente en la tabla ademas de sus longitudes, la fortaleza de las mismas también es influenciada por los tipos de caracteres involucrados.
Tomemos una gráfica que relacione nuestras categorías de claves y que tanta fortaleza están reflejando.
Con esto podemos ver que son pocos los datos que son de la categoría alfanumérico simple que tienen una fortaleza decente, las categorías con mas texto podrían considerarse mas seguras y la pop/geek que encierra nombres formados por texto y números tiene varios elementos con mucha fortaleza.
por ultimo una gráfica que relaciona Las longitudes en función de la unidad de tiempo
Era de esperar que estuvieran tan estrechamente relacionadas, ya que al analizarse el keyspace que permite estimar el tiempo, también tenemos en cuenta la longitud, ademas de los tipos de dígitos(letras minúsculas, letras mayúsculas,números y/ó caracteres especiales) .
Algo que podemos notar es que al momento toda contraseña formada por un tipo de dígito(texto ó número) siempre esta de ultimo, en casi todos nuestros análisis.
Como he mencionado anteriormente los datos aquí presentados son inseguros, ninguno sirve como una contraseña, basta con mirar la siguiente gráfica.
Aquí claramente se ve la reducción de tiempos entre los métodos, el segundo, el ataque OFFLINE es mucho mas eficiente que un ataque online, el cual consiste en tomar la clave totalmente cifrada del objetivo y llevarla a un equipo con las capacidades computacionales ideales y lejos de toda detección de parte de la victima, o su sistema de seguridad en el caso de una empresa, con el tiempo suficiente este podrá obtener acceso a la contraseña y por ende al sistema y logear como si fuera el administrador y/o propietario y poder realizar un ataque más grande o generar perdidas irreparables en la compañía.
Detallando la gráfica, podemos ver que la contraseña de más duración solo toma 29 segundos en ser vulnerada, eso es una reducción del 99,9999990026897% de tiempo al respecto al tiempo que demora con un ataque online, que ademas de ser lentos son detectables, y pueden contar con limitadores que dilaten aun más este tiempo, por ejemplo: solo 10 intentos por minuto o bloqueo al usuario después de cierta cantidad de intentos.
Nuestro conjunto de datos tiene una organización de tiempos que varían desde pocos segundos hasta varios años, para analizar el comportamiento de estos consideré que era apropiado ver como se comportaban los tiempos de ataques online en esas diferentes escalas, para análisis más generales como la correlación, usare tiempos estandarizados. Para calcular covarianza necesitamos dos variables: X y Y para multiplicar sus variaciones individuales y con ese valor dividir el resultado de cov()
Cuartiles:
## 0% 25% 50% 75% 100%
## 1.110e-07 3.210e-03 3.210e-03 8.350e-02 2.927e+01
Kurtosis:
## [1] 107.4077
Asimetria estadística:
## [1] 9.999244
Promedio:
## [1] 0.5000096
Mediana:
## [1] 0.00321
Moda:
## [1] 0.00321
Desviación:
## [1] 2.658132
Varianza:
## [1] 7.065665
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
Cuartiles:
## 0% 25% 50% 75% 100%
## 2.56 6.91 6.91 6.91 92.27
Kurtosis:
## [1] 14.22774
Promedio:
## [1] 11.82831
Mediana:
## [1] 6.91
Moda:
## [1] 6.91
Desviación:
## [1] 20.79197
Varianza:
## [1] 432.3062
Valor de correlación de tiempo(year)
## [1] 0.9999914
correlación de tiempo(Year)
Cuartiles:
## 0% 25% 50% 75% 100%
## 3.19 3.19 3.19 3.19 3.19
Kurtosis:
## [1] NaN
Promedio:
## [1] 3.19
Mediana:
## [1] 3.19
Moda:
## [1] 3.19
Desviación:
## [1] 0
Varianza:
## [1] 0
Cuartiles:
## 0% 25% 50% 75% 100%
## 1.84 3.70 3.70 3.70 3.70
Kurtosis:
## [1] 3.25
Promedio:
## [1] 3.328
Mediana:
## [1] 3.7
Moda:
## [1] 3.7
Desviación:
## [1] 0.8318173
Varianza:
## [1] 0.69192
Valor de correlación de tiempo(week)
## [1] 1
correlación de tiempo(week)
Cuartiles:
## 0% 25% 50% 75% 100%
## 1.29 3.72 3.72 3.72 3.72
Kurtosis:
## [1] 45.62146
Promedio:
## [1] 3.66895
Mediana:
## [1] 3.72
Moda:
## [1] 3.72
Desviación:
## [1] 0.349226
Varianza:
## [1] 0.1219588
Valor de correlación de tiempo(days)
## [1] 1
correlación de tiempo(days)
Cuartiles:
## 0% 25% 50% 75% 100%
## 3.09 3.43 3.43 3.43 17.28
Kurtosis:
## [1] 40.88407
Asimetria estadística:
## [1] 6.090386
Promedio:
## [1] 3.728372
Mediana:
## [1] 3.43
Moda:
## [1] 3.43
Desviación:
## [1] 2.11762
Varianza:
## [1] 4.484314
Valor de correlación de tiempo(hours)
## [1] 0.9999966
correlación de tiempo(hours)
Cuartiles:
## 0% 25% 50% 75% 100%
## 1.85 7.92 7.92 18.52 18.52
Kurtosis:
## [1] 1.583625
Promedio:
## [1] 11.42314
Mediana:
## [1] 7.92
Moda:
## [1] 7.92
Desviación:
## [1] 5.422729
Varianza:
## [1] 29.40599
Valor de correlación de tiempo(hours)
## [1] 1
correlación de tiempo(minutes)
Cuartiles:
## 0% 25% 50% 75% 100%
## 11.11 11.11 11.11 11.11 11.11
Kurtosis:
## [1] NaN
Promedio:
## [1] 11.11
Mediana:
## [1] 11.11
Moda:
## [1] 11.11
Desviación:
## [1] 0
Varianza:
## [1] 0
Análisis exploratorio de los datos:
## Size (n) Missing Minimum 1st Qu Mean Median TrMean 3rd Qu
## 500.000 0.000 0.000 6.000 7.432 7.000 6.898 8.000
## Max Stdev Var SE Mean I.Q.R. Range Kurtosis Skewness
## 48.000 5.416 29.328 0.242 2.000 48.000 25.474 4.429
## SW p-val
## 0.000
Intervalo de confianza para fortaleza:
## 2.5 % 97.5 %
## (Intercept) 6.956162 7.907838
Análisis exploratorio de los datos:
## Size (n) Missing Minimum 1st Qu Mean Median TrMean 3rd Qu
## 500.000 0.000 0.000 0.003 0.500 0.003 0.196 0.084
## Max Stdev Var SE Mean I.Q.R. Range Kurtosis Skewness
## 29.270 2.658 7.066 0.119 0.081 29.270 103.978 9.969
## SW p-val
## 0.000
Intervalo de confianza para tiempo_hackeo.offline.:
## 2.5 % 97.5 %
## (Intercept) 0.2664519 0.7335674
Con los datos aqui mostrados podemos ver la reduccion de tiempos para vulnerar contraseññas que son parecidas a algunas que hemos usado, los elementos que caracterizan y que elementos son claves en la seguridad de estos, usar contraseñas esta siendo una herramienta vulnerable por si sola, hoy en dia se usa mucho el sistema 2FA que implica que haya una comprobacion por correo para poder acceder a un servicio, o dejarle la cotraseña a un adminsitrador de contraseñas en un dispositivo de confianza, estos cambios han surgido porque no importa que tan larga sea la contraseña si el atacante tiene una idea del esquema de seguridad este podra “tumbar” la seguridad de esta.
Hoy en dia contamos con sistemas de lenguaje masivo y otras herramientas que hace que el generar texto sea mucho mas facil, sumemosle que estamos a punto de ver equipos cuanticos, veremos todas estas herramientas de seguridad de nuestra actualidad, delegadas a un segundo plano, un computador capaz de almacenar un servidor puede generar billones de combinaciones en pocos segundos, y un atacante con un equipo capaz de esto y la suficiente motivacion puede vulnerar su objetivo sin alguna deteccion. los atacantes usan los ataques online para algunos casos, pero la informacion que mas les ayuda se encuentra en redes o sitios webs relacionados con la victima, por cosas como estas se recomienda no usar contraseñas usando informacion que esta a una “busqueda de google de distancia”
Para la actualidad lo mejor es usar la mejor contraseña que podamos respaldar con un 2FA o con otro sistema seguro para que nuestra identidad o nuestro dinero no quede a merced de malintencionados, actualizar dispositivos y buscar un sistema de seguridad que permita tener seguridad adicional (software, sistema operativo, hardware).
Hacer analisis del impacto de los sistemas generados por IA para la seguridad de contraseñas actual.
Buscar bases de datos actualizadas con mas elementos para tener una perspectiva de que es una contraseña insegura con sistemas mas actuales.