2010-06-24 14 views
5

Soy nuevo en el desarrollo web. ¿Puedo almacenar las contraseñas originales de los usuarios? Sé que la buena práctica es almacenar la contraseña hash usando un salt, pero ¿por qué no almacenamos la contraseña original?¿Por qué no se almacenan las contraseñas originales?

¿Es porque la base de datos se piratea fácilmente, por lo que hashing protege las contraseñas? ¿Hay alguna otra razón? De lo contrario, me gustaría guardar la contraseña original si es legal hacerlo.

+16

nunca para registrar una cuenta en su sitio web ^^ thnx por mencionar – Bas

+0

sí, supongo que eso es todo por esta pregunta :) –

+4

Por qué sitio va a ser la implementación de esta práctica? Podemos quedarnos lejos :-) ves !!! – Samiksha

Respuesta

17

La legalidad depende del país en el que vive. Pero también existen las mejores prácticas. Y una mejor práctica es encriptar las contraseñas del usuario. De esta forma, si alguien entra en su base de datos, no podrá obtener la larga lista de contraseñas, y probará cada una de ellas en ebay, yahoo mail y gmail. Los usuarios generalmente usan el mismo par de nombre de usuario y contraseñas para muchos sitios.

Como señala Jon en el comentario, por supuesto que hay una diferencia entre hashing y encriptación. El hash es un proceso de destrucción de datos de una sola vía, que toma una cadena de longitud arbitraria como entrada y emite una cadena de longitud fija. Esta cadena se define de tal manera que cambiar cualquier bit en la entrada original hará que el hash sea diferente. Si tiene un hash, por lo tanto, no es posible reconstruir el texto original (es decir, no es posible recuperar la contraseña).

Por otra parte, el cifrado adecuada es una técnica donde se puede recuperar la contraseña original, sabiendo claves secretas, contraseñas, etc.

Por lo general, quieren hash de contraseñas, no cifrar ellos: no es necesario, y es más complejo de configurar. Tampoco debes recuperar la contraseña: simplemente los regenerarás.

+5

Votando esta y eliminando la mía. Para todos aquellos que afirman que es legal, me interesaría saber en qué se basa esto. Debes ser _muy_ buenos abogados para conocer todas las leyes de todo el planeta. – paxdiablo

+4

Creo que valdría la pena deletrear la diferencia entre cifrado y hash, y cuándo usar cada uno. Si necesita recuperar la contraseña de un usuario, usaría el cifrado. Si no, entonces hashing sería una mejor opción. –

+0

@Jon: Sí, eso es correcto. Lo edité y elaboré un poco. – Palantir

0

Sí, es absolutamente legal, aunque no es absolutamente recomendable guardar las contraseñas en texto plano. Y no es que su base de datos real en vivo pueda verse comprometida: incluso una copia de respaldo puede ser robada (sin que usted lo sepa).

Cuando se roban las contraseñas, esto es muy malo para los usuarios reales, ya que muy pocas de ellas usan contraseñas diferentes para diferentes sitios.

+2

¿Bajo qué jurisdicción exactamente reclamas que esto es legal? ¿Eres un abogado internacional (o un abogado de cualquier tipo)? – paxdiablo

0

Es legal según la ley. Algunas empresas almacenan la contraseña en texto sin formato, por lo que es recuperable.

Sin embargo, por razones de seguridad, esta es una mala idea. De vez en cuando, algunas empresas son pirateadas y se accede a su base de datos. En algunos casos, esto expone las contraseñas de miles de usuarios. Esto dañará severamente la imagen de su empresa, y es aún más un riesgo de seguridad cuando la contraseña no es hash.

Si desea que la contraseña sea recuperable, al menos encripte para que no se pueda ver fácilmente accediendo a la base de datos.

+1

¿Bajo qué jurisdicción exactamente reclamas esto es legal? ¿Eres un abogado internacional (o un abogado de cualquier tipo)? – paxdiablo

+0

"Algunas empresas hacen esto" no implica "y por lo tanto debe ser legal". También podría significar que "algunas empresas están infringiendo la ley". – Piskvor

1

Imagínese si Facebook fue pirateado, no cifró ninguna de las contraseñas del usuario. Facebook tiene unos 200 millones de usuarios (?)

¿Qué pasa si todos los 200 millones de contraseñas se filtraron a alguna organización malvada? Muchos usuarios usan la misma contraseña que sus correos electrónicos o cualquier otro servicio en línea sensible, como la contabilidad bancaria.

Facebook no estaría seguro en absoluto una vez. ¿Registrarías una cuenta allí?

+1

(1) Las personas que usan las mismas contraseñas en varios sitios son idiotas. (2) No registraría una cuenta en Facebook de todos modos. No porque sea inseguro, solo porque considero que mis amigos son aquellos con los que me gusta pasar el tiempo, no un payaso al otro lado de un cable CAT5 :-) – paxdiablo

+0

@paxdiablo: (1) Tienes razón, pero lamentablemente existen y debe tenerse en cuenta si desea almacenarlos. (2) Estoy de acuerdo aquí dos, pero también puedo entender a las personas que quieren usar Facebook. Pero aún no hay ninguna razón para que dos guarden una contraseña no cifrada. – jigfox

+0

No, estoy de acuerdo con usted @Wai y, dado que usted no es uno de la multitud que declaró que era legal (sin autoridad de respaldo), un voto a favor suyo también. – paxdiablo

1

No sé si es legal, pero sin embargo, yo le aconsejaría contra ella por al menos tres razones:

  1. Esto no es sólo acerca de los piratas informáticos obtener acceso a sus contraseñas. Los usuarios a menudo tienen la misma contraseña para varias cuentas (que tampoco deberían tener). Entonces, ¿quién dice que podemos confiar en usted u otras personas que tengan acceso legal a esta información?
  2. No importa qué tan seguro piense que es su servidor. No existe la seguridad absoluta para un servidor. Debería considerar que podría ser pirateado eventualmente. Y no creas que nunca va a suceder. Espero lo mejor, pero siempre planifique lo peor.
  3. Usaría cada seguridad fácil y barata que puedo obtener para asegurar no solo mis datos, sino también los datos de los usuarios. Y el método de usar un sal + hash es barato. Le costará 2 líneas de código. Se
Cuestiones relacionadas