La matemática de las claves: ¿numérica o alfanumérica?

Es muy común escuchar a los Especialistas en Seguridad Informática hablar sobre las claves de equipos, cuentas de correo electrónico, redes sociales, las bancarias e incluso el PIN de bloqueo de un smartphone. Sobre estos últimos haremos hincapié para discernir las consecuencias entre el uso de un tipo de PIN por sobre otro.

Recordemos que si en algún momento pierdes el smartphone, lo olvidas en un restaurante o un taxi o si lamentablemente te lo roban, no sólo tu dispositivo quedará expuesto sino también toda tu información personal y corporativa.

Por eso siempre en nuestras charlas de la Gira Antivirus ESET en universidades latinoamericanas o en eventos en los que participamos en toda la región, estamos constantemente recomendando a nuestros asistentes la importancia de configurar una clave de bloqueo en su dispositivos móviles.

Dependiendo de la plataforma y el fabricante que utilices, el sistema de bloqueo cambia sutilmente. Las opciones van desde el patrón de un esquema de puntos hasta la huella biométrica. No obstante, los más recomendados –por ahora– continúan siendo las claves de 4 dígitos o alfanuméricas, donde indudablemente esta última se encuentra como una de las mejores opciones que tienes para proteger la información de tu teléfono.

La pregunta es qué tan diferente es utilizar una clave alfanumérica de una numérica, cuál es la complejidad matemática de cada una y el procesamiento necesario para poder descifrarlas.

Aquí juegan básicamente dos factores: la capacidad de procesamiento que tengamos, que se incrementa rápidamente debido en gran parte a los avances tecnológicos en la arquitectura de los procesadores, y la complejidad de la clave.

Cantidad de combinaciones posibles

Por un lado, si se usa una clave numérica (números del 0 al 9) tendríamos 10 posibilidades de 4 dígitos de longitud, que es la extensión por defecto de los teléfonos. Para 4 dígitos, las combinaciones posibles serían 10 mil:combinacion-clavePor otro lado, si tomamos un alfabeto de 26 letras mayúsculas y 26 minúsculas, 10 números y 10 caracteres no convencionales (por ejemplo “$”, “#”, “!”), en total tenemos 72 diferentes posibilidades para un único caracter. Eso significa que las combinaciones para un PIN de bloqueo de 4 caracteres serían:pin-bloqueoBásicamente, más de 26 millones de combinaciones en una clave de 4 caracteres contra 10 mil en una clave de 4 dígitos. En este caso utilizamos una clave de bloqueo pero este cálculo es válido para cualquier contraseña. De hecho, puedes reemplazar el exponente por el correspondiente a la longitud de tu clave y calcular cuántas combinaciones se requerirían para atacarla.

Tiempo de procesamiento para atacar con fuerza bruta

Siempre que estemos tratando de ataques de fuerza bruta, debemos tomar en cuenta la cantidad de combinaciones que podemos armar con los símbolos del alfabeto que tenemos. Si el atacante realiza un ataque de fuerza bruta, contando con la capacidad de promedio actual de 4 mil millones de cálculos por segundo, tardaría muy poco en obtener una clave de 4 caracteres (s = segundos):procesamiento-claveBajo ese poder de cómputo, casi cualquier delincuente podría atacar una clave de 26 millones de combinaciones en menos de una centésima de segundo. Si bien el proceso cuesta 2.687 veces más que en la variante numérica, sigue siendo muy fácil para un atacante. De hecho, podrían atacar 50 claves alfanuméricas de cuatro caracteres literalmente en un abrir y cerrar de ojos (considerando que un pestañeo dura entre 300 y 400 milisegundos).

¿Qué longitud es segura?

Una vez que analizamos la situación se vuelve recurrente la consulta de qué longitud de clave se debería utilizar para estar más tranquilo frente a un ataque de fuerza bruta. Por ejemplo, si tomamos como referencia una longitud de 10 caracteres con 72 símbolos diferentes para cada uno, la cantidad de combinaciones que se puede formar supera los 3 trillones:combinaciones-clavesSi calculamos el tiempo que se necesita para atacarlo, tomando el procesamiento mencionado y 31.556.925 segundos, que es la duración de un año, obtendríamos:fuerza-brutaLo cual es un buen tiempo si se considera que no parece valer la pena esperar ese lapso, aunque nunca se sabe. No obstante, dado que es un cálculo exponencial, agregando únicamente un caracter más, el tiempo necesario sería aproximadamente el transcurrido desde el inicio del cristianismo:calculo-clavesSi bien desde el punto de vista de algunos criptógrafos se considera que una clave segura debería ser aquella que necesite una vez (o más) el tiempo transcurrido desde la creación del universo (aproximadamente 14 mil millones de años). Para tener una idea, con una clave de 15 caracteres y el computo tomado, se necesitarían 4 veces ese tiempo para quebrarla. Por lo tanto, puedes elegir si con 2.000 años ya estás en condiciones de sentir una relativa seguridad o si prefieres una clave más extensa- siempre tomando en cuenta qué tan sensible es la información que desees proteger.

Pero, ¿esta es la única forma que tienen los atacantes?

No, de hecho a medida que tu clave sea más segura los ciberdelincuentes recurren a otros métodos para robarla como ataques utilizando Ingeniería Social, el phishing e incluso métodos poco convencionales como el PIN-Punching.

Es importante recordar que muchas veces el acceso indebido a un dispositivo es través de un bypass sobre el lockscreen o explotación de vulnerabilidades sobre alguna aplicación. Esto se debe también a que el acceso al archivo que guarda las claves, como por ejemplo el data/system/password.key en Android, suele tener grano de sal en el hash, lo cual dificulta aún más su ataque a través de fuerza bruta.

No obstante, es interesante analizar el poder de procesamiento y su impacto con los ataques de fuerza bruta en la actualidad para visualizar mejor la protección que brinda una contraseña robusta.

Y entonces, ¿qué podemos hacer?

En primer lugar, entender que ingresar una clave cada vez que deseemos desbloquear el teléfono es más molesto pero también es más seguro. Si crees que la información que tienes en tu teléfono podría comprometerte en caso de que algún tercero la acceda y eventualmente la publique en Internet, entonces piensa dos veces antes de dejar tu teléfono sin bloquear.

Respecto al método, recuerda que es recomendable que utilices mínimo una clave alfanumérica de 4 caracteres, ya que el esfuerzo que te exige es el mismo que la numérica pero el procesamiento para atacarla es mayor.

Créditos imagen: ©tillwe/Flickr
 

Autor , ESET

  • Marcos

    Veo dos errores en la redacción del artículo:
    “…contra 11 mil en una clave de 4 dígitos.” -> serian 10 mil
    “…atacar una clave de 26 mil millones de combinaciones…” -> 26.873.856 serian 26 millones…no 26 mil millones.

    Por lo demás muy instructivo, me encantan estos calculos. ;)

    Un saludo.

    • rlabaca

      Estimado Marcos:

      Ya corregido. Gracias por la atención y esperamos que le sea útil!

      Saludos,
      Raphael

  • José

    Muy claro e interesante el artículo. De todas formas, recordemos que los cálculos realizados solo refieren el peor de los casos. Es importante que esto se aclare, porque los mismos no se realizaron sobre una base de distribución que emule contraseñas reales. En otras palabras, una contraseña que tarde 20 años en romperse, tambien puede romperse en 10 segundos, dependiendo de la contraseña. Creo que es importante la aclaración, y quizá en un futuro para un cálculo más real, podría realizarse una simulación por sobre una distribución que considere una población de contraseñas.

    Saludos

Síguenos