Colaboraciones
- Artículos sobre Seguridad Informática y Redes WirelessArtículos
Sobre
la longitud de las claves y contraseñas - Junio 2003
En
la mayoría de los sistemas, desde un PC, una PDA, hasta una compleja red de
computadoras, existen diferentes llaves de acceso. Estas contraseñas nos permiten entrar a
un sistema y de su seguridad depende que nadie más que los autorizados tengan
acceso al sistema.
Las primeras llaves de acceso de las que hablaremos son los PINs
(Personal Identification Number), estos son muy usados por ejemplo en un ATM (Automatic
Teller Machine) o cajero automático, en las cajas de seguridad de un hotel,
en el control de acceso de una puerta electrónica, etc. Aunque un PIN puede
tener hasta 64bits de longitud, es más común usarlo con 4 dígitos numéricos.
Es obvio que esta longitud es muy insegura, ya que solo pueden usarse 104
diferentes PINesy estos puedenrecorrerse en menos de un segundo con cualquier PC actual. Sin embargo
estos aún se siguen usando. La respuesta a esto es que un PIN debe de usarse
en un ambiente “seguro”, es decir que físicamente no exista riesgo de que
alguien pueda ver el PIN o que el dispositivo donde se usa, esté resguardado
por otros controles de acceso.Lo que hará entonces difícil que un ataque a fuerza bruta (recorrer
todo es espacio posible de llaves) o de inspección visual.
Otro tipo de llaves de acceso son los “Passwords”, un password es usado principalmente en cuentas de e-mails, o acceso a una PC. Este consiste usualmente de entre 6 y 10 caracteres, es decir, desde 48 hasta 80 bits.Un password o contraseña, debe de garantizar la seguridad de acceso a un sistema y al menos debe de resistir dos tipos de ataques comunes, como lo son el ataque de diccionario y el ataque a fuerza bruta.
Unataque de diccionario consiste en recorrer todos los passwords más posiblemente usados, es decir, las palabras que dependiendo del lenguaje usado se piensa pueden usar mas elegidos como passwords, como los nombres propios, combinación de nombres propios y números, etc., según los diseñadores de softwares que rompen claves de esta manera afirman que mas de la mitad de los passwords usados están formados de esta manera, si son susceptibles a un ataque de diccionario.
Para evitar el primer ataque, el del diccionario, el password debe de ser lo mas aleatorio posible, sin embargo este tipo de passwords, los aleatorios, no son usados ya que no son prácticos. Un password debe ser aprendido y recordado cuando es usado, por lo que en la práctica son más usados passwordsfáciles de recordar. No existe un método que sea el mas adecuado, sin embargo la misma practica sugiere uno como el siguiente:en lugar de una palabra fácil de recordar se puede elegir una frase larga pero fácil de recordar, por ejemplo, “Entre los individuos como entre las naciones el respeto al derecho ajeno es la paz”, luego entonces se construye la password tomando la primera letra de la
primera palabra y después
la segunda de la segunda, la primera de la tercera, la segunda de la cuarta y
así sucesivamente, entonces nuestro password queda como“eoioeanlrldjeap”. Por otra parte un
password no debe de ser muy corto ya que esto permitiría ser atacado
por fuerza bruta. Respecto a la longitud adecuada de un password lo
comentaremos al último.
Finalmente
otro tipo de llaves de acceso son las conocidas últimamente como claves
criptográficas simétricas, este tipo de llaves son usadas para establecer
una conexión segura a través de un canal inseguro como Internet o cualquier
otro medio de comunicación insegura.
Las claves simétricas deben de ser completamente aleatorias y su generación
debe de ser garantizada por un buen software o hardware que genere bits
aleatorios. En la actualidad estas claves son de sesión, es decir se generan
cada vez que se efectúa una conexión. Estas claves son generadas por un
software que en general ya viene incluido en el browser o en el software que
garantiza la conexión, estos procesos son invisibles para el usuario. Sin
embargo para aplicaciones de alta prioridad es recomendable chequear los
generadores para estar seguros que las claves son aleatorias. Esto se hace
usando un buen algoritmo que se haya probado su calidad, o si no se conoce el
algoritmo entonces, se puede someter al generador a algunas pruebas que
garantizan la aleatoriedad de sus salidas, como por ejemplo las recomendadas
enNIST
(National
Institute of Standards and Technology).
Finalmente veamos con números, qué longitud de los passwords o claves es más
adecuada,para
esto damos los siguientes pasos:
Partimos
de un experimento real que se realizó en enero de 1999, donde se rompió
a fuerza bruta DES-56, se llevo a cabo con una supercomputadora diseñada
explícitamente para el caso, conjuntamente con 100 000 computadoras
conectadas por Internet, todo esto logro un poder de cómputo de 245
billones de pruebas por segundo, es decir, 245000000000 de claves se ensañaron
cada segundo. DES fue roto en menos de 23 horas, recorriendo un poco más
del 25% del espacio de claves.
Tomemos
como base ese poder de cómputo, que incluso hoy en día es una buena
referencia. Además de suponer que al recorrer al menos el 50% del espacio
declaves existe gran seguridad de encontrar la clave.
Para
el caso de claves de 40 bits, tendríamos un espacio de claves de 2^40
=1099511627776. Con el poder de computo arriba mencionado, para recorrer
el 50% del total es necesario solo 2.2 seg, que se obtiene dividiendo2^40/245 billones y después entre dos. Esto es son claves muy
inseguras.
Para
claves de 48 bits, necesitamos 574 seg = 9.5 minutos, que por lo tanto
también consideramos inseguras.
El
caso de las claves de 56 bits, tendríamos un tiempo de 40 horas. Lo que
también determinamos como inseguras.
Siguiendo
el mismo procedimiento para las claves de 64 bits necesitamos un tiempo de
1.2 años. Que declaramos también como inseguras.
Para
el caso de 80 bits, el tiempo crece hasta 78234 años. En estos momentos
estamos en posición de determinar si este tiempo es seguro o no, aunque
para los mas estrictos no lo es, podemos recordar que solo la existencia
de la civilización como la conocemos tiene 2000 años, entonces tendrían
que pasar más de 30 de estas para llegar a los 70 mil años, con este
pequeño razonamiento poder determinar a este tiempo como seguro
actualmente.
Para
90 bits, el tiempo necesario seria de un poco más de 80 millones de años.
Que en este caso las declaramosa las claves como seguras sin duda alguna.
Finalmente
para las claves de longitud 128 bits, necesitamos un tiempo explícito de
22020985858787784059 años, es decir, 2.2 x 10^19 años, que
definitivamente es seguro para nuestros días.
Como
conclusión respecto a lalongitud
de claves podemos dibujar la siguiente gráfica.
Por
lo tanto, respecto a los passwords podemos sugerir que se construyan de una
forma fácil de recordar y tengan una longitud de al menos 10 caracteres. Para
probar que estos son de buena calidad lo podemos someter a un software
comercial que nos garantice que es resistente a un ataque de diccionario.
Respecto a las claves simétricas, la razón de tener 128 bits es
más de implementación, ya que las computadoras trabajan con bloques de
memoria múltiplos de 32 bits, sin embargo podemos con toda seguridad usar
claves simétricas desde 90 bits y que sean generadas aleatoriamente.
Las estimaciones mas optimistas predicen que las claves de 80 serán rotas
hasta el 2010,las de 112hasta el 2030 y las de 128 hasta el años posteriores a 2030.
Otro tipo de claves en uso son las de la criptografía de clave pública muy
usadas en el protocolo SSL, en este tipo de claves las más usadas son las del
algoritmo RSA, un último comparativo se dice que las claves de 1024
actualmente usadas como seguras, tienen la misma seguridad de las de 80 bits,
las de 2048 usadas para autoridades certificadoras tienen la misma seguridad
de las de 112, y las de 3072 tienen la misma seguridad de las de 128 bits.