John The Ripper

Revisión del 11:48 7 abr 2011 de 103 (discusión | contribuciones) (Formas de protección contra John the ripper)
John The Ripper
Información sobre la plantilla
94x169
DesarrolladorAlexander Peslyak[1]
Última versión estable1.7.6 (UNIX)[2], 1.7.0.1 (Microsoft Windows, DOS)[2]
Sistemas Operativos compatiblesUNIX, Microsoft Windows
LicenciaGPL [1]
Sitio web
www.openwall.com/john

John The Ripper (Software): es un crackeador de claves muy rápido, está disponible en muchos Sistemas operativos: Unix, DOS, Hasefroch32, BeOS y OpenVMS. Su principal función es un detectar claves débiles de Unix, pero puede analizar claves hash de varios sabores Unix, Kerberos AFS y Hasefroch NT/2000/XP LM hashes, y otros. Es una herramienta de seguridad muy popular, ya que permite a los administradores de sistemas comprobar que las contraseñas de los usuarios son suficientemente buenas.

Algoritmos que entiende

John the Ripper es capaz de autodetectar el tipo de cifrado de entre muchos disponibles, y se puede personalizar su algoritmo de prueba de contraseñas. Eso ha hecho que sea uno de los más usados en este campo. Utiliza la fuerza bruta para descifrar las contraseñas y entiende varios algoritmos como:

Mediante módulos externos, se puede hacer que también trabaje con:

Características

  • Optimizado para muchos modelos de procesador.
  • Funciona en muchas arquitecturas y sistemas operativos.
  • Ataques de diccionario y por fuerza bruta.
  • Muy personalizable (es software libre).
  • Permite definir el rango de letras que se usará para construir las palabras, y las longitudes.
  • Permite parar el proceso, y continuarlo más adelante.
  • Permite incluir reglas en el diccionario para decir cómo han de hacerse las variaciones tipográficas.
  • Se utiliza en línea de comando y no tiene un entorno gráfico.

Funcionamiento

John the Ripper usa un ataque por diccionario: tiene un diccionario con palabras, que pueden ser contraseñas típicas, y las va probando todas. Para cada palabra, la cifra y la compara con el hash a descifrar. Si coinciden, es que la palabra era la correcta. Esto funciona bien porque la mayor parte de las contraseñas que usa la gente son palabras de diccionario. Pero John the Ripper también prueba con variaciones de estas palabras: les añade números, signos, mayúsculas y minúsculas, cambia letras, combina palabras, etc. Además ofrece el típico sistema de fuerza bruta en el que se prueban todas las combinaciones posibles, sean palabras o no. Éste es el sistema más lento, y usado sólo en casos concretos, dado que los sistemas anteriores (el ataque por diccionario) ya permiten descubrir muy rápidamente las contraseñas débiles.

Plataformas disponibles

John the Ripper al principio fue diseñado para Unix, pero ahora funciona en al menos 15 sistemas operativos distintos: 11 tipos de Unix, MS-DOS, Windows, BeOS y OpenVMS. Se puede encontrar en la mayoría de distribuciones Linux. Es software libre distribuido bajo la licencia GPL, aunque permite que algunas partes del programa se usen con otras licencias, y otras están bajo el dominio público.

Formas de protección contra John the ripper

El mejor método de prevención de robo de contraseñas es garantizar que los atacantes no pueden acceder al archivo con las contraseñas cifradas. Por ejemplo, en linux, las contraseñas encriptadas se almacenan inicialmente en un archivo accesible a todos los usuarios /etc/passwd. En Unix modernos (y sistemas similares), se almacenan en el archivo /etc/shadow, al que sólo tienen permisos de lectura los programas que se ejecutan con privilegios de root. Esto hace más difícil para un usuario malicioso para obtener las contraseñas encriptadas. Los modernos sistemas de Unix y otros han sustituido las tradiconales contraseñas basadas en hashing por fuertes métodos basados en MD5 y Blowfish. La principal forma de protegerse contar esta herramienta es evitar que los usuarios tengan acceso al fichero de contraseñas (/etc/shadow), para esto solo root debe tener permisos de lectura en este fichero, por defecto el sistema viene con esta configuración.

Las siguientes prácticas ayudan a evitar la apropiación de contraseñas por usuarios malintencionados:

  • Las contraseñas deben contener un mínimo de 8 caracteres. Cada carácter que agrega a su contraseña aumenta exponencialmente el grado de protección que ésta ofrece.
  • Muchos sistemas también admiten el uso de la barra espaciadora para las contraseñas, de modo que pueden crearse frases compuestas de varias palabras (una frase codificada). Por lo general, una frase codificada resulta más fácil de recordar que una contraseña simple, además de ser más larga y más difícil de adivinar.
  • Combinar letras, números y símbolos. Cuanto más diversos sean los tipos de caracteres de la contraseña esta se hace más fuerte.
  • No incluir secuencias ni caracteres repetidos. Cadenas como "12345678", "222222", "abcdefg" o el uso de letras adyacentes en el teclado no ayudan a crear contraseñas seguras.
  • Evitar utilizar únicamente sustituciones de letras por números o símbolos similares. Los delincuentes y otros usuarios malintencionados que tienen experiencia en descifrar contraseñas no se dejarán engañar fácilmente por reemplazos de letras por números o símbolos parecidos; por ejemplo, 'i' por '1' o 'a' por '@', como en "M1cr0$0ft" o en "C0ntr@señ@". Estas sustituciones pueden ser eficaces cuando se combinan con otras medidas, como una mayor longitud, errores ortográficos voluntarios o variaciones entre mayúsculas y minúsculas, que permiten aumentar la seguridad de las contraseñas.
  • No utilizar el nombre de usuario como contraseña.
  • Evitar seleccionar parte del nombre, fecha de nacimiento, número de identidad o datos similares propios o de sus familiares, estas son algunas de las primeras claves que probarán los delincuentes.
  • No utilizar palabras del diccionario de ningún idioma. Los delincuentes emplean herramientas complejas capaces de descifrar rápidamente contraseñas basadas en palabras de distintos diccionarios, que también abarcan palabras inversas, errores ortográficos comunes y sustituciones.
  • Utilizar varias contraseñas para distintos entornos. Si alguno de los equipos o sistemas en línea que utilizan esta contraseña queda expuesto, toda la información protegida por esa contraseña también deberá considerarse en peligro.
  • Evitar utilizar sistemas de almacenamiento en línea. Si algún usuario malintencionado encuentra estas contraseñas almacenadas en línea o en un equipo conectado a una red, tendrá acceso a toda su información.
  • No permitir que nadie mire el teclado mientras se teclea la contraseña. Pues podrán observar algunos de los caracteres que contiene esta y será más fácil de adivinar.
  • No utilizar ningún ejemplo de contraseña de algún sitio, ya que esta también pudo ser vista por una persona que desee conocer la suya.
  • No compartir contraseñas ni divulgar el método de construcción.
  • Cambiar la contraseña lo más frecuentemente posible, en ocasiones descifrar una contraseña tarda días y tal vez cuando sea descifrada se haya cambiado.
  • Implementar políticas por administradores de sistemas que obliguen a los usuarios al cambio periódico de contraseñas.
  • Quizás la forma más fácil de evitar el robo de contraseñas es utilizando otra forma de autenticación como lo pueden ser, por las huellas digitales, biometría pero como es sabido estos métodos son más costosos y solo pueden ser implementados por empresas poderosas o de avanzada.

Fuentes

Referencias