Foros del Web » Programando para Internet » PHP »

Cifrado de códigos

Estas en el tema de Cifrado de códigos en el foro de PHP en Foros del Web. Hola, tengo una pregunta sobre seguridad. Resulta que un cliente necesita cifrar unos códigos que están en su base de datos, porque considera que son ...
  #1 (permalink)  
Antiguo 03/09/2008, 14:33
Avatar de chitoso  
Fecha de Ingreso: mayo-2008
Ubicación: Montevideo, Uruguay
Mensajes: 205
Antigüedad: 16 años
Puntos: 5
Cifrado de códigos

Hola, tengo una pregunta sobre seguridad.
Resulta que un cliente necesita cifrar unos códigos que están en su base de datos, porque considera que son muy valiosos y no quiere que caigan en otras manos.

La situación (basicamente) es esta:

Por cada Numero de Serie se genera un Código y se guarda en BD. El cliente no quiere que estos códigos esten disponibles en caso que se de un hurto de la base de datos.

Por eso, lo que decidimos es guardarlos cifrados en la base de datos, y cuando un cliente o el dueño los necesita, se descifran. (No es la idea calcular los códigos nuevamente.)

La pregunta sería, ¿qué funciones o librerías me recomiendan para cifrar la información en PHP?

Se que existe mcrypt y base64_encode... Yo quiero algo bastante seguro, y a la vez no muy lento.
Así que si alguno tuvo experiencia en este tipo de soluciones, agradezco cualquier dato que pueda compartir.

Saludos!
__________________
Pasión por la Música
  #2 (permalink)  
Antiguo 03/09/2008, 14:44
Avatar de ikaroraul  
Fecha de Ingreso: octubre-2006
Ubicación: La Paz
Mensajes: 391
Antigüedad: 17 años, 7 meses
Puntos: 16
Respuesta: Cifrado de códigos

Holas yo uso el md5() me parece bien... pero pues eso de volverlo a DESCIFRAR pues nunca lo hice solo comparo CADENAS CIFRADAS...

Código PHP:
echo md5("ikaro");
f606bdd9bd7e2b594c22602dd40f024b 
  #3 (permalink)  
Antiguo 03/09/2008, 14:51
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 16 años
Puntos: 43
Respuesta: Cifrado de códigos

Haz lo mismo que se podria hacer con las claves de acceso.
Cuando se crea una la ingresas en la DB cifrada, podria ser con sha1 en mysql que genera una cadena de 40 caracteres, no es posible desifrarla, lo que la hace aun mas segura.

Cuando deseas comparar, simplemente tomas la cadena del numero de serie y la encriptas y comparas con la que guardaste en la DB. si son exactamente iguales entonces es esa, de lo contrario no!

Espero poder haberte ayudado!

Saludos
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #4 (permalink)  
Antiguo 03/09/2008, 15:08
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Cifrado de códigos

Lo mejor es usar para este caso mcrypt, con este puedes encriptar y desencriptar los datos sabiendo la llave para obtenerlos.

Saludos.
  #5 (permalink)  
Antiguo 03/09/2008, 15:18
Avatar de Avatar810  
Fecha de Ingreso: agosto-2007
Ubicación: Por rumbos Regios
Mensajes: 485
Antigüedad: 16 años, 8 meses
Puntos: 23
Respuesta: Cifrado de códigos

Lo que dice GatorV es verdad, necesitas algo con que poder desencriptar en los casos que necesites esos valores, y tando os sha/md5 son practicamente imposible desencriptar (se necesita un poder muy grande de computo...) estos basicamete se utilizan para proteger las contraseñas...
__________________
Una demo siempre funcionará correctamente hasta que toque algo tu (hasta ahora) cliente.
Avatar810
  #6 (permalink)  
Antiguo 03/09/2008, 15:19
Avatar de the_web_saint  
Fecha de Ingreso: mayo-2008
Ubicación: localhost/tierra/america/panama
Mensajes: 1.229
Antigüedad: 16 años
Puntos: 43
Respuesta: Cifrado de códigos

A bueno esa no la conocia!.
:D
__________________
..::The Saint::..
El pesimista se queja del viento; el optimista espera que cambie; el realista ajusta las velas.
  #7 (permalink)  
Antiguo 03/09/2008, 15:21
Avatar de chitoso  
Fecha de Ingreso: mayo-2008
Ubicación: Montevideo, Uruguay
Mensajes: 205
Antigüedad: 16 años
Puntos: 5
Respuesta: Cifrado de códigos

Si, conozco bien los algoritmos de hash y los uso para proteger mis contraseñas, pero, la idea es poder descifrar la información. NO quiero volver a recalcular el código y despues compararlo con un hash. Esto no me sirve, pense que no necesitaba alclararlo. De todas maneras, gracias.

Sin dudas me voy inclinando por mcrypt. Alguna sugerencia sobre este aspecto? Tengo que tener alguna consideración con la clave (o llave o key...)?

Saludos
__________________
Pasión por la Música
  #8 (permalink)  
Antiguo 03/09/2008, 15:25
Avatar de chwc  
Fecha de Ingreso: julio-2008
Ubicación: Buenos Aires ! :D
Mensajes: 814
Antigüedad: 15 años, 9 meses
Puntos: 103
Respuesta: Cifrado de códigos

el problema es que si te hackean el ftp, no hay forma de que el otro no pueda descifrarlo, po que ya tiene la manera que uno estaba descifrandolo

PD: el otro dia vi un documental de unos que cifraban datos que eran muy buenos
  #9 (permalink)  
Antiguo 03/09/2008, 15:31
Avatar de chitoso  
Fecha de Ingreso: mayo-2008
Ubicación: Montevideo, Uruguay
Mensajes: 205
Antigüedad: 16 años
Puntos: 5
Respuesta: Cifrado de códigos

jejej, bueno, si. En temas de seguridad, es imposible hacer que sea imposible el acceso a mis datos. Pero el objetivo es hacerle el trabajo lo mas dificil posible para que o bien desista o demore eternidades... creo yo...

Lo bueno es que si tienen la base, no pueden hacer nada, porque sería casi imposible descifrar la info. Y si tienen mis archivos, no importa porque no tienen el código de todas maneras...
Ahora, si me roban la BD Y me hackean el ftp, me retiro xD ...

Pero volviendo al tema, espero alguna sugerencia para implementar el cifrado/descifrado con mcrypt.
__________________
Pasión por la Música
  #10 (permalink)  
Antiguo 03/09/2008, 20:17
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Cifrado de códigos

Y que tal AES_ENCRYPT y AES_DECRYPT de MySQL?
  #11 (permalink)  
Antiguo 03/09/2008, 21:39
 
Fecha de Ingreso: mayo-2003
Ubicación: Lima
Mensajes: 967
Antigüedad: 21 años
Puntos: 8
Respuesta: Cifrado de códigos

Si se va a guardar en la base de datos, mi idea es guardarlo con PASSWORD de MySql, algo asi:
Código:
INSERT INTO tabla VALUES (valor1, PASSWORD(valor2), etc)
y al comprobarlo
Código:
SELECT campo1, campo2, etc FROM tabla WHERE campo2 = PASSWORD(valor2)
__________________
El aprendiz.
  #12 (permalink)  
Antiguo 03/09/2008, 22:01
Avatar de chitoso  
Fecha de Ingreso: mayo-2008
Ubicación: Montevideo, Uruguay
Mensajes: 205
Antigüedad: 16 años
Puntos: 5
Si me robara una base de datos, y viera los datos encriptados, lo primero que probaría es utilizar la función password o alguna de esas para desencriptarla... No tardarían mucho en darse cuenta.

Ahora, con una función que reciba una Clave, utilizando mcrypt, ya es casi imposible porque tendrían que saber la clave.

AES_ENCRYPT de mysql también me resulta interesante. Habría que ver si es preferible cifrar/descifrar la info con php o en la BD. ¿Qué opinan?

Ok, entonces la pregunta ahora es...

¿Usar AES_ENCRYPT o alguna función de mcrypt()?

¿Hay alguna diferencia en cuanto a seguridad?
Y en cuanto a performance, qué sería mejor?

¿mcrypt cifra con AES, de manera de hacerlos "compatible" con AES_CRYPT de mysql?
Porque si es así, puedo tomar la decision ahora y luego cambiar el método de cifrado...
__________________
Pasión por la Música

Última edición por GatorV; 04/09/2008 a las 09:49
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 07:30.