Home - Seguridad - Artículos sobre Criptografía
Sobre la longitud de las llaves de acceso a un sistema
por José de Jesús Angel Angel, director de Investigación y Desarrollo de SeguriDATA .
En la mayoría de los sistemas, desde una PC hasta una compleja red de computadoras, existen diferentes llaves de acceso. Estas 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 PINes y estos pueden recorrerse en menos de un segundo con cualquier PC actual. Sin embargo estos aún se siguen usando. La respuesta ha 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 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.
Un ataque 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 passwords fá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 ves 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 en NIST (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:
Como conclusión respecto a la longitud 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.