FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Generador de contraseñas
Hola,
Se me ha ocurrido hacer el siguiente procedimiento para generar contraseñas prácticamente imposibles de crackear (?) a partir de palabras o frases comunes:
Como se ve, la idea es ir deformando una palabra o frase sencilla una y otra vez mediante la función MD5 (o cualquier otra). En principio, cualquier programa crackeador se verá obligado a perder el tiempo siguiendo este procedimiento para cada una de las ingentes cantidades de combinaciones de caracteres, o bien hacerlo por fuerza bruta, y como este algoritmo (?) genera contraseñas de hasta 444 caracteres como si nada... Última edición por dec fecha: 01-05-2007 a las 22:59:48. |
#2
|
||||
|
||||
Hola y gracias por el aporte.
Estaría bien (si te apetece) que lo subieras a los trucos del Clucb Delphi; Así quedaría ahí para poder consultarlo. Otra cosas (tanto si lo subes como si no) estaría bien que comentas de dónde salen las funciones referentes a MD5; ¿En alguna Unit? ¿Paquete externo? ¿Versión de Delphi que la incluye? Ya que si alguien intenta compilar este código (como he inentado hacerlo yo en Delphi 6) le dará el mismo error que a mi (que no encuentra esas funciones). Un saludo y gracias de nuevo por este código.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#3
|
||||
|
||||
Hola,
la verdad es que tiene muy buena pinta. Muchas gracias por el aporte. Cita:
Y yendo un poco más allá llegamos al tema en cuestión http://www.killa.com.ar/bk/http:/www...riptacion/Allí explica de donde saca las funciones de MD5 y en el segundo enlace www.cityinthesky.co.uk/files/dcpcrypt2.zip, estan los fuentes con la función de Base64EncodeStr. Espero sirva de aclaración. (Si al final no voy a ser tan vago ) Saludos |
#4
|
||||
|
||||
Cita:
La verdad es que copié/pegué y no me fijé que estaban los links. Gracias.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#5
|
||||
|
||||
Hola Wellnic,
solo un par de comentarios. Lo primero que, según tengo entendido, la fortaleza de un algoritmo de cifrado, como md5, se debe al propio algoritmo y no al numero de veces que este se repite. ¿No seria entonces mas fácil e igual de seguro usar un solo md5?, a esa cuestión nos tendría que responder un matemático, yo no me veo cualificado. Aunque se me ocurre que el motivo sea obtener claves de mas de 16 bytes de longitud y no aumentar la seguridad, si es así, ignora mi ultimo comentario Por otro lado veo que primero calculas el md5 a partir de un string (MD5String), y lo conviertes es un string (MD5DigestToStr), para luego hacer el paso inverso (c:= c+Chr(StrToInt('$'+Copy(sumhs, (2*ch)-1, 2)));) ¿No nos podríamos ahorrar este paso? La idea es interesante. Si necesitas de una función para calcular el hash md5 que puedas adaptar a tus necesidades puedes usar esta (Hashes.zip): http://www.clubdelphi.com/foros/show...22&postcount=4 Es sencilla así que puedes modificarla fácilmente. |
#6
|
||||
|
||||
Cita:
SAludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente, se lo volveré a explicar hasta que no lo entienda, Gracias. |
#7
|
||||
|
||||
Cita:
Yo pensaba que las contraseñas se generaban para utilizarlas como clave del correo, por ejemplo, no como protección en un programa. Pero si se trata de marear a un posible atacante, entonces podemos darnos una vuelta por el hilo de "código inútil",y en ultimo caso generamos la contraseña utilizando brainfucker. Eso si que tiene que marear |
#8
|
||||
|
||||
A mi personalmente nunca me ha gustado utilizar contraseñas de este tipo...
Me gusta más utilizar alguna que tenga sentido para mí, pero no para otros y que no sea fácil de descifrar usando fuerza bruta. Por ejemplo: 2711MeganeScenic4528 Para mi es fácil de recordar -porque tiene cierto sentido- (más fácil que esta: 2h4Kw3CN95Lsr4DG2CAF2A) y entiendo que no es fácil de sacar usando fuerza bruta; Algun entendido me dirá si mucho menos fácil o no que la otra, personalmente no entiendo mucho (normalmente letras y números y alguna palabra que no entre en diccionario). El problema que le veo a las anteriores es que debes guardarlas en algun sitio: * En el explorador, en el correo,... o en algun programa que las almacene. En los primeros casos creo que ese es el punto débil; ¿De qué sirve tener una "supercontraseña" si luego te la roban utilizando un bug del Browser (sea el que sea)? En este caso está el agravante de que cuando se borra la caché o las contraseñas del navegador, tienes muchos problemas para entrar en todos los sitios donde antes entrabas directamente. El el segundo caso, si es un programa que almacena todas las contraseñas, debes ponerle contraseña... ¿Y esa dónde la almacenas? ¿en otro programa? ¿Con contraseña? -esto me suena, es como si ya hubiera pasado por aquí...- Bueno, es sólo un comentario; Ya se que se deben utilizar contraseñas seguras, pero es que "me da mucha mandra hacerlo" y además pienso que los problemas/agujeros de seguridad están en otros lugares que no en las contraseñas de entrada (en muchos casos). Un saludo desvariado.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#9
|
|||
|
|||
La idea de usar hashes es justamente no guardar las propias contraseñas. Uno puede usar una contraseña fácil de recordar, pero lo que se guarda es el hash de esta, no la contraseña misma. Y obviamente, como los hashes son unidireccionales, es extraordinariamente difícil generar una contraseña válida conociendo el hash.
Como hash, MD5 ha sido roto varias veces, probablemente sería mejor utilizar alguna de las variantes altas del Secure Hashing Algoritm, SHA-256, SHA-384 o SHA-512 (SHA-1 ha sido roto alguna que otra vez). Por otra parte, es cierto que un hacker puede simplemente saltarse las funciones de verificación, a menos que dentro de ellas se encuentre código esencial sin el cual el programa no funcione, esto complica un poco más las cosas. Al final, la realidad es que si un hacker está determinado a romper un algoritmo de protección, y tiene los conocimientos necesarios y la cantidad de tiempo y recursos disponibles, lo conseguirá. De modo que la tarea consiste precisamente en hacer que el costo en tiempo y recursos sea lo mayor posible, de manera que cuando se pueda acceder a la información, esta ya sea inútil. Ah y otro detalle a tener en cuenta es la posibilidad de que en la máquina en que tecleemos la contraseña tengan instalado un keylogger. Hay controles que impiden obtener el texto enmascarado en un edit, pero aun no he encontrado uno que impida que se pueda generar un registro de las teclas pulsadas. A primera vista esto lleva intercepciones de las APIs y otras cosas que no deben ser sencillas. En fin, que en esto de la seguridad hay para nunca acabar. Última edición por d-hugo fecha: 02-05-2007 a las 17:44:25. |
#10
|
|||
|
|||
Ante todo, gracias por los halagos, no pensé que provocara tanto interés (bueno, sí, en mis sueños ).
He usado el md5 como podría haber usado cualquier otra función similar. No entiendo lo de la fortaleza de cifrado a la que se refería Seoane. He utilizado el md5 para un propósito muy distinto de su función propia (un poco a lo McGiver ). Mi intención era "retorcer" una y otra vez una palabra de entrada, sin más historias, que la capacidad de servidor no da para más. Os adjunto las fuentes como me pedís, y así os hacéis una idea de adonde quería llegar. No está muy acabado, porque estuve trabajando en una versión más simple y lo dejé abandonado. Si realmente lo encontráis útil lo subo también . |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Contraseñas | erick_jesus | Conexión con bases de datos | 2 | 29-05-2006 18:48:37 |
Contraseñas en Access | diegolf | Conexión con bases de datos | 5 | 30-12-2004 10:58:31 |
Guardar contraseñas | acrophet | Conexión con bases de datos | 3 | 25-11-2004 16:54:07 |
Contraseñas y Paradox | Letty | Conexión con bases de datos | 1 | 01-12-2003 14:48:06 |
contraseñas y password | alfgonvar | Conexión con bases de datos | 1 | 02-10-2003 15:31:32 |
|