No hay sistema 100% seguro , Falso… Si hay sistemas 100% inhackeables.
By: Date: febrero 10, 2015 Categories: Hackers, Tools y Retos

Hay un cliche entre los Hackers que dice que los sistemas informáticos especialmente los relacionados con la seguridad siempre tienen alguna vulnerabilidad.

El cliché dice:
No hay sistema 100% seguro

La realidad es que esto es falso, si existen sistemas que no pueden ser hackados, por ejemplo el sistema de cifrado de contraseñas en los tipos de Unix como GNU/Linux

El sistema es tan seguro que de hecho es imposible revertirlo, una vez cifrado es imposible decifrarlo, una vez que la contraseña se ha convertido en un hash jamás podrá recuperarse la contraseña original por lo tanto es un sistema imposible de hackear.

La única oportunidad que tiene alguien de obtener una contraseña que no conoce es ADIVINARLA y para adivinarla necesitara probar millones de combinaciones de letras, símbolos y números. Algún día tal vez la adivine aunque podría ser que para cuando sea adivinada ya no exista personas en la tierra y al estar extinta la raza humana ¿ a quien le importaría la contraseña ?

¿ Como se obtiene un HASH que no puede descifrarse ?

Cuando se introduce la contraseña, el sistema la trata como un Stirng y ahí empieza una serie de algoritmos que miden la longitud de la cadena, si alguno de sus caracteres es símbolos o números. Dependiendo a todas esas variables presentes en el password o contraseña/clave , el sistema decide retirar caracteres, modificarlos o sumar caracteres que no formaban parte de la clave original, mientras más larga sea la contraseña mas se le aplica el algoritmo ofuscador, si se decifrara el hash nunca se recuperaría la contraseña original, asumiendo que se decifra el hash y la contraseña fuera gato, el resultado de decifirar gato nunca seria gato.

Clave original: gato
Clave decifrada: G1t#120

Si logra decifrar el hash obtendrías G1t#120 y esto no es la contraseña original la cual es gato y por lo tanto cuando introduzcas G1t#120 el sistema te negara el acceso. Simplemente porque esa no es la contraseña.
La pregunta más obvia pero la que menos hacen cuando les digo que es imposible revertir es ¿ como permite ingresar a los usuarios si ni siquiera el sistema operativo es capaz de recuperar la contraseña original ?

¿ Como puede comparar si la contraseña introducida es la misma que esta en el hash si el hash no puede ser revertido ?

La mayoría piensa que cuando alguien introduce su usuario y contraseña para acceder a GNU/Linux, el sistema operativo decifra la contraseña del hash y luego compara la texto decifrado con el texto introducido por teclado. Eso no es así. De hecho ocurre lo opuesto. En lugar de decifrar el hash lo cual es imposible, simplemente cifra la contraseña con el mismo algoritmo y aplicando el mismo SALT y el resultado es el mismo HASH, finalmente lo que es comparado como un String es el hash, si el hash de cifrado de la contraseña introducida es igual al hash almacenado en /etc/shadow , entonces se introdujo la contraseña correcta y el sistema operativo da acceso al usuario

Ahora sabe, sin importar si es 3DES, SHA1, MD5 el método de cifrado que te guste, simplemente no se puede revertir la contraseña y por lo tanto es un sistema 100% inhackeable.

13 thoughts on “No hay sistema 100% seguro , Falso… Si hay sistemas 100% inhackeables.

  1. Google Chrome 40.0.2214.111 Mac OS X 10.10.1

    Hola Last,

    Siempre leo tus artículos, y nunca había comentado, pero ahora con este, no puedo evitar expresar mi desacuerdo, puesto que lo que dices no es cierto, siempre podemos aplicar un “ataque de colisión”, y aunque no obtengas la contraseña original, si que obtienes el hash que te permitiría entrar.

    Y cómo dice en el artículo de wikipedia de Collision Attack:

    The collision attacks against MD5 have improved so much that it takes just a few seconds on a regular computer.

    Saludos.

  2. Mozilla 11.0 Windows 7

    Cuando escribí esto sabia que iba a tocar algunas fibras sensibles, especialmente cuando dije CLICHE a una de las frases que hacen a los hackers orgasmearse.

    Javier

    Debes capacitarte mas y leer mejor, esos sitios no ” desencriptan ” de hecho creo que quisiste decir DESCIFRAR por que no existe eso de desencriptar en español. esos sitios simplemente corren diccionarios y tratan de ADIVINAR la contraseña, si la clave es demasiado complicada para ser adivinada nunca la obtienes, adivinar una contraseña no es hackearla ni descifrarla, eso cae en esoterismo = )

    Manny

    Conozco las colisiones, tengo un articulo aquí mismo de eso Colisiones MD5 en el mismo programa , entiendo lo que es una colisión y aun así puedo decirte que este sistema no es vulnerable a colisiones, siga la lógica del cifrado. como obtienes el hash y te darás cuenta que cuando colisione el MD5 , la clave que arroja será diferente a la original, así que no te servirá para entrar. lee con cuidado el articulo y sigue la lógica del cifrado

    Sixx

    Exacto, a veces es absurdo intentar descifrar algo tan seguro, a veces la respuesta mas sencilla es la correcta. simplemente acabas de aplicar la ” Navaja de Ockham ” a veces es mejor encontrar la forma de darle la vuelta en lugar de enfrentarlo cara a cara.

    1. Google Chrome 40.0.2214.111 Mac OS X 10.10.1

      Hola otra vez,

      Sin el afán de querer generar un flame war, pero como lo dice, si es colisión, es porque al final de todo el proceso estas obteniendo el mismo hash, y no importa que no sea la misma contraseña, puesto que como tu mencionas en el artículo, lo que haces, es hashear lo que recibes para compararlo contra el hash que tienes guardado en la BD.

      En cuanto tu respuesta para @Javier, estoy de acuerdo con lo que mencionas, pero si vas a aplicar el uso correcto del español, puedes mejorar:
      – cliché lleva tilde
      – descifrar, lleva una “s” antes de la “c” (omites la “s” en todas las menciones que haces durante el artículo)
      – Después de abrir, y antes de cerrar los signos de interrogación, no se deja espacio
      – Muchos “typos”, que con una segunda lectura del artículo antes de publicar se corrigen
      Estoy seguro que hay mas correcciones posibles, pero esos son los que me parecieron los más significativos.

      Saludos

  3. Mozilla 11.0 Windows 7

    Con los espacios entre comas , paréntesis y apostrofes aunque incorrecto eso lo hago muy apropósito para mejorar la lectura, en tildes y/o acentos y muchos otros errores no tengo mas que agregar estas en lo correcto y no tratare de defender lo indefendible

    Cuando pedí que volvieras a leer y siguieras la lógica del cifrado, pensé que te darías cuenta que una colisión seria imposible de explotar, la colisión es muy posible pero ¿ y ? que harás con el hash colisionado, como puedes usarlo, el hash no es la contraseña, el descifrado de ese hash tampoco, ¿ de que forma puedes explotar colisionar un hash en este sistema de autenticación ?

    explica alguna forma en que ganarías acceso colisionando el hash por favor. los hash colisionados son muy útiles para otras cosas como firmar algo , algún programa u otra cosa pero por mas que intento buscar un uso explicito para este problema sigo sin ver que le afecte. simplemente es inhackeable.

    Se que muchos se atragantaran cuando lean que hay sistemas inhackeables simplemente por que decir lo opuesto es como su excusa para hackear o sentirse hackers y que alguien diga que hay cosas que en su vida podrán hackear debe ser un golpe feo, pero no por eso dejare de decir la verdad.

    No estoy cerrado a decir que estoy equivocado, como dije si me puedes explicar un uso practico en donde una colisión md5 con todo y las reglas de ofuscación en la autenticación de usuarios de Linux y que es posible haackearlo.. entonces aquí mismo escribiré tenia razón, recuerden adivinar la contraseña no es igual a hackearla la fuerza bruta es adivinación a lo imbécil, probando una por una hasta adivinar. eso no cuenta. eso solo es suerte por que no están hackeando al sistema en si sino la contraseña que es débil en si misma.

  4. Mozilla Firefox 7.0.1 Linux

    Last,

    Creo que existen sistemas ”inhackeables” por dise;o, si embargo; estos sistemas se vuelven ”hackeables” por problemas de implementacion. Los sistemas ”inhackeables” por dise;o, son aquellos orientados a la seguridad; dise;ados en base a un modelo de amenazas bien definido, complejos en funcionamiento interno; pero concebidos para ser de clara implementacion, sin ambigüedades, blindandose asi; ante la amenaza de ser mal implementado.

    Suponiendo que en el tema se hace referencia al sistema de administracion de contrase;as de entornos estilo Unix (solo limitandose a este; sin profundizar en los componentes de un sistema de autentificacion) y tomando el termino sistema como ”un conjunto de elementos […] interactuando entre sí”, se podria asegurar que es un sistema ”inhackeable”.

    Ningu;o de los compa;eros, que anteriormente han comentado esta entrada, han colocado los elementos en el entorno de un sistema. Sistema que basicamente, esta compuesto por: Una funcion Hash, una funcion Salt y una funcion de Derivacion de Clave. La funcion Hash en sí puede ser vulnerable a Ataques de Colision, fuerza bruta con empleo de Rainbow Tables, o a consultas en diccionarios de Hash con sus respectivas string generadoras (ataque de diccionario). El Salt ayuda a proteger a las Hash resultantes de los ataques de diccionario y las rainbow tables, si queda expuesta la forma en que se genera el Salt; ya es otro tema. La funcion de Derivacion de Clave se encarga de estrechar la Clave, independientemente de la longitud del Hash; lo que aumenta el costo en recursos ante un Ataque de Colision.

    No concibo la forma en que se pueda llegar a /etc/shadow para sacar el Hash; sin que se considere un compromiso, creo que si esto pasa, lo menos que preocupa es si el Hash es crackeable; se puede troyanizar el modulo PAM y obtener la contrase;a en plano. Obtener el Hash a travez de la red, no me parece una opcion aceptable, sugiere que pueda haber mas informacion circulando en texto plano; lo cual seria la puerta mas facil a ser comprometido, en este caso, de nuevo no importaria mucho si hay algun sistema con un Hash crackeable o no. Reitero, en ningun sistema, la extraccion del Hash en caliente deberia ser posible. La unica forma que veo, es que sea extraida en frio; del disco disco o un backup. De ser este el caso, se podria comprometer un sistema empleando la tecnica Pass The Hash, sin embargo, se estaria atacando al sistema de autentificacion (de Red) y no simplemente al sistema de administracion de contrase;as.

    Realmente existen sistemas que se pueden considerar inexpugnables, lo cual no quiere decir que sean imposibles de comprometer, pero normalmente para comprometer a estos se requiere acceso fisico, el empleo de sidechannel attacks, etc, que ya es otro tema.

    Saludos.

  5. Google Chrome 40.0.2214.114

    ¿Estás seguro de que MD5 y otros que mencionas son totalmente seguros, por diseño, contra ataques de imagen inversa? No soy experto en el tema, pero me parece que aunque no existe un ataque en ese sentido hacia esos algoritmos, su existencia no está descartada.

  6. Mozilla 11.0 Windows 7

    Su existencia no esta descartada pero es inviable con la capacidad de computo actual y posiblemente de las próximas generaciones y es que el hash puede ser tan complicado como infinito, mientras mas larga y alfanumérica+simbolocos sea la contraseña y esto es algo que puede ir al infinito mas difícil es intentar ADIVINAR la contraseña. por supuesto se le aplicas otras teorías como los infinitos monos tecleando infinitamente , algún dia, en miles de billones de años algún mono tendrá que dar con esa contraseña y otros monos habran reescrito del azar todas las obras de shakespeare

    1. Google Chrome 55.0.2883.87 Windows NT

      “… y otros monos habran reescrito del azar todas las obras de shakespeare” ¿dónde leíste esa frase?, porque si es original tuya bien la podrías patentar… sublime!

  7. Android Browser Android 4.2.2

    Código del MD5:

    /* Procesar cada bloque de 16 palabras. */
    para i = 0 hasta N/16-1 hacer

    /* Copiar el bloque ‘i’ en X. */
    para j = 0 hasta 15 hacer
    hacer X[j] de M[i*16+j].
    fin para /* del bucle ‘j’ */

    /* Guardar A como AA, B como BB, C como CC, y D como DD. */

    /* Ronda 1. */
    /* [abcd k s i] denotarán la operación
    a = b + ((a + F(b, c, d) + X[k] + T[i]) <<< s). */
    /* Hacer las siguientes 16 operaciones. */
    [ABCD 0 7 1] [DABC 1 12 2] [CDAB 2 17 3] [BCDA 3 22 4]
    [ABCD 4 7 5] [DABC 5 12 6] [CDAB 6 17 7] [BCDA 7 22 8]
    [ABCD 8 7 9] [DABC 9 12 10] [CDAB 10 17 11] [BCDA 11 22 12]
    [ABCD 12 7 13] [DABC 13 12 14] [CDAB 14 17 15] [BCDA 15 22 16]

    /* Ronda 2. */
    /* [abcd k s i] denotarán la operación
    a = b + ((a + G(b, c, d) + X[k] + T[i]) <<< s). */
    /* Hacer las siguientes 16 operaciones. */
    [ABCD 1 5 17] [DABC 6 9 18] [CDAB 11 14 19] [BCDA 0 20 20]
    [ABCD 5 5 21] [DABC 10 9 22] [CDAB 15 14 23] [BCDA 4 20 24]
    [ABCD 9 5 25] [DABC 14 9 26] [CDAB 3 14 27] [BCDA 8 20 28]
    [ABCD 13 5 29] [DABC 2 9 30] [CDAB 7 14 31] [BCDA 12 20 32]

    /* Ronda 3. */
    /* [abcd k s t] denotarán la operación
    a = b + ((a + H(b, c, d) + X[k] + T[i]) <<< s). */
    /* Hacer las siguientes 16 operaciones. */
    [ABCD 5 4 33] [DABC 8 11 34] [CDAB 11 16 35] [BCDA 14 23 36]
    [ABCD 1 4 37] [DABC 4 11 38] [CDAB 7 16 39] [BCDA 10 23 40]
    [ABCD 13 4 41] [DABC 0 11 42] [CDAB 3 16 43] [BCDA 6 23 44]
    [ABCD 9 4 45] [DABC 12 11 46] [CDAB 15 16 47] [BCDA 2 23 48]

    /* Ronda 4. */
    /* [abcd k s t] denotarán la operación
    a = b + ((a + I(b, c, d) + X[k] + T[i]) <<< s). */
    /* Hacer las siguientes 16 operaciones. */
    [ABCD 0 6 49] [DABC 7 10 50] [CDAB 14 15 51] [BCDA 5 21 52]
    [ABCD 12 6 53] [DABC 3 10 54] [CDAB 10 15 55] [BCDA 1 21 56]
    [ABCD 8 6 57] [DABC 15 10 58] [CDAB 6 15 59] [BCDA 13 21 60]
    [ABCD 4 6 61] [DABC 11 10 62] [CDAB 2 15 63] [BCDA 9 21 64]

    /* Ahora realizar las siguientes sumas. (Este es el incremento de cada
    uno de los cuatro registros por el valor que tenían antes de que
    este bloque fuera inicializado.) */

    A = A + AA
    B = B + BB
    C = C + CC
    D = D + DD

    fin para /* del bucle en 'i' */
    Paso 5. Salida
    El resumen del mensaje es la salida producida por A, B, C y D. Esto es, se comienza el byte de menor peso de A y se acaba con el byte de mayor peso de D.

    Por ello que buscar un método reversible a la encriptacion MD5 , es como buscar una aguja en el universo. MD5 , sistemas 100% Seguro.

Responder a Administrator Cancelar respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *