Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General »

recuperación de claves encripitadas ( ayuda por favor)

Estas en el tema de recuperación de claves encripitadas ( ayuda por favor) en el foro de Bases de Datos General en Foros del Web. Hola ! Un Saludos a todos del foro! tengo una web con registro de usuarios que acabo de agregar el encripitador md5 para mayor seguridad ...
  #1 (permalink)  
Antiguo 11/10/2010, 16:00
Avatar de saraivaruas  
Fecha de Ingreso: octubre-2010
Ubicación: Chile
Mensajes: 133
Antigüedad: 13 años, 6 meses
Puntos: 10
De acuerdo recuperación de claves encripitadas ( ayuda por favor)

Hola !
Un Saludos a todos del foro!

tengo una web con registro de usuarios que acabo de agregar el encripitador md5 para mayor seguridad pero me quede con la duda, porque supongamos que el usuario pierde o se olvida su password, al momento de recuperarla del la baese de datos le envio de vuelta la contraseña perdida o olvidada pero encripitada lo que no le sirve para volver a entrar.
como hacer para recuperarla en la forma original?

Su alguien me puede ayudar estaria muy agradecido:
saludos a todos!
  #2 (permalink)  
Antiguo 11/10/2010, 18:31
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: recuperación de claves encripitadas ( ayuda por favor)

En realidad, MD5(), al menos en lo que a MySQL no realiza estictamente una "encriptación", desde el momento que por tal se entiende la transformación de un texto legible en otro sólo accesible por medio de claves y algoritmos de desencriptación.
MD5() crea un checksum de 128 bits que puede ser usado como clave hash (que no es una forma de encriptación), de modo tal que lo que se garantiza es la unicidad de su forma. Pero no es reversible, por lo que no sirve para el uso que tu le das.
Antes bien, sería mucho mejor que usaras alguna de otras claves que sí pueden funcionar como tales, como por ejemplo:
- AES_ENCRYPT() / AES_DECRYPT()
- DES_ENCRYPT() / DES_DECRYPT()
- ENCODE() / DECODE()

También sería bueno que usas un sistema más elaborado para estas cosas como por ejemplo:
1) Cada usuario debe registrarse con un username y password.
2) En la registración debe proveer un e-Mail único que servirá para recuperaciones de la clave.
3) Debe proveer una pregunta y una respuesta secretas que sólo se usarán para confirmar la identidad y enviar la clave a la cuenta predesignada. La respuesta podría ser usada como clave de encriptación par aguardar la contraseña original.
Esto podría implicar más o menos dos tablas: USUARIOS, CLAVES_Y_PREGUNTAS
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 12/10/2010, 11:43
Avatar de rickyper  
Fecha de Ingreso: abril-2009
Mensajes: 182
Antigüedad: 15 años
Puntos: 10
Respuesta: recuperación de claves encripitadas ( ayuda por favor)

No es reversible... pero se puede hacer una comparacion entre hash, para validar.
__________________
www.granideamillonaria.com
  #4 (permalink)  
Antiguo 12/10/2010, 12:38
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: recuperación de claves encripitadas ( ayuda por favor)

Cita:
No es reversible... pero se puede hacer una comparacion entre hash, para validar.
Eso sería atacarlo por fuerza bruta... Posible, pero impracticable sin los recursos de IBM o de la CIA.

Me explico: Sólo usando una variación de 1 caracter entre dos password de 20 caracteres, obtienes dos claves diferentes como:
Código MySQL:
Ver original
  1. mysql> SELECT MD5('01234567890123456789') CLAVE1, MD5('02234567890123456789') CLAVE2;
  2. +----------------------------------+----------------------------------+
  3. | CLAVE1                           | CLAVE2                           |
  4. +----------------------------------+----------------------------------+
  5. | be497c2168e374f414a351c49379c01a | 5a15c606315bacffcc9d46a3156861aa |
  6. +----------------------------------+----------------------------------+
  7. 1 row in set (0.00 sec)

Como puedes apreciar son MUY diferentes.
Esto implica que para obtener la clave original que da por resultado la encriptada, necesitarías barrer una combinatoria equivalente a (20^40)-1 aproximadamente (cada caracter de los 20 tiene 40 variaciones posibles, como mínimo). Es decir, deberías probar 109.951.162.777.600.000.000.000.000.000.000.000.00 0.000.000.000.000.000.000.000.000 combinaciones posibles...
Muy bonito, pero impráctico.
Precisamente por eso es que los ataques por fuerza bruta no se pueden realizar sin un hardware o una masa de atacantes lo suficientemente poderosa. SIno, te imaginas que sería la forma más simple de quebrar claves.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 17/10/2010, 14:58
Avatar de saraivaruas  
Fecha de Ingreso: octubre-2010
Ubicación: Chile
Mensajes: 133
Antigüedad: 13 años, 6 meses
Puntos: 10
Respuesta: recuperación de claves encripitadas ( ayuda por favor)

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Eso sería atacarlo por fuerza bruta... Posible, pero impracticable sin los recursos de IBM o de la CIA.

Me explico: Sólo usando una variación de 1 caracter entre dos password de 20 caracteres, obtienes dos claves diferentes como:
Código MySQL:
Ver original
  1. mysql> SELECT MD5('01234567890123456789') CLAVE1, MD5('02234567890123456789') CLAVE2;
  2. +----------------------------------+----------------------------------+
  3. | CLAVE1                           | CLAVE2                           |
  4. +----------------------------------+----------------------------------+
  5. | be497c2168e374f414a351c49379c01a | 5a15c606315bacffcc9d46a3156861aa |
  6. +----------------------------------+----------------------------------+
  7. 1 row in set (0.00 sec)

Como puedes apreciar son MUY diferentes.
Esto implica que para obtener la clave original que da por resultado la encriptada, necesitarías barrer una combinatoria equivalente a (20^40)-1 aproximadamente (cada caracter de los 20 tiene 40 variaciones posibles, como mínimo). Es decir, deberías probar 109.951.162.777.600.000.000.000.000.000.000.000.00 0.000.000.000.000.000.000.000.000 combinaciones posibles...
Muy bonito, pero impráctico.
Precisamente por eso es que los ataques por fuerza bruta no se pueden realizar sin un hardware o una masa de atacantes lo suficientemente poderosa. SIno, te imaginas que sería la forma más simple de quebrar claves.
.




Gracias por la ayuda para aclararme con este tema.
creo que tendre solicitar en mail y enviar la confirmacion de la cuenta atraves de el solo asi el usuario tendra un respaldo con su password en casop de que la pierda.


saludos !

Etiquetas: claves, favor
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:10.