Top 5 MySQLCategoríasBuscador
|
Su dominio en 24 horas |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
Estás en MySQL |
Fecha: 23/04/2007 |
Todo buen administrador sabe que crear una tabla con contraseñas totalmente accesibles es un fallo de seguridad tremendo. Imaginemos por un momento que pasaría si un hacker consiguiese llegar hasta nuestra tabla usuarios, sacar un listado de las contraseñas o peor aún, modificarlas.
Si este sistema guarda información sensible podría convertirse en un serio problema empresarial, por lo que la seguridad en cuanto a contraseñas siempre debe ser una premisa para nosotros. Por suerte, MySQL nos da diferentes herramientas para hacer nuestras contraseñas más seguras, vamos a enumerarlas desde la menos segura hasta la más segura de todas:
Esta función está presente desde hace unas cuantas versiones, pero sin embargo se ha demostrado que es fácilmente vulnerable por lo que no merece la pena explicarla.
Para guardar una contraseña encriptada con MD5 necesitaremos una tabla con un campo de 32 caracteres, aunque se ha demostrado que el algoritmo MD5 puede ser vulnerado, la práctica es tan compleja que no merece la pena el esfuerzo, el algoritmo MD5 no puede ser revertido, es decir, no se pueden recuperar contraseñas de este sistema.
Insertar una contraseña con MD5:
mysql> INSERT INTO usuarios VALUES('usuario',MD5('contraseña'));
La función SHA y SHA1 son sinónimos, por lo que hacen el mismo efecto, al igual que MD5 no puede ser revertido y este necesita un campo de 40 caracteres para su almacenamiento, es más seguro que MD5 ya que calcula el cheksum SHA de 160 bits de una cadena, mientras que MD5 la calcula de 128.
Insertar una contraseña con SHA:
mysql> INSERT INTO usuarios VALUES('usuario',SHA('contraseña'));
El algoritmo AES es el más completo y complejo, tiene posibilidad de revertirse y se utiliza con una llave privada, es decir, debemos proporcionar dicha llave para encriptar y desencriptar las contraseñas. Sería vulnerable en el caso de que alguien consiguiese violar nuestro código fuente y viera que llave estamos pasando a la cadena. Para almacenar estas contraseñas necesitamos que nuestro campo sea de tipo BLOB, ya que el resultado de la operación será un dato binario muy aleatorio.
Insertar una contraseña con AES:
mysql> INSERT INTO usuarios VALUES('usuario',AES_ENCRYPT('contraseña','llave'));
Para desencriptar:
mysql> INSERT INTO usuarios VALUES('usuario',AES_DECRYPT('contraseña','llave'));
Si quieres utilizar la función AES, debes de tener una versión de MySQL superior a la 4.0.2, ya que es cuando esta función fue agregada.
Por lo tanto ahora sabemos que la única manera (por ahora) de que nuestras contraseñas sean totalmente seguras, es utilizando la función AES, y asegurarse que nadie puede acceder a nuestro código fuente.
|
| Lecturas: 3817 |
Fecha: 13/04/2007 |
|
| Cuando debemos buscar entre una gran cantidad de datos, la búsqueda con el comando Like se hace tediosa, debemos comenzar a utilizar las búsquedas FullText. | |
Fecha: 23/05/2007 |
|
| Como acceder al Panel Plesk para contolar un alojamiento y como recuperar la contraseño de acceso a Plesk si la has olvidado. | |
Fecha: 01/05/2007 |
|
| Hay diferentes maneras de unir datos extraidos de una tabla, la más común es hacerlo una vez estos datos están fuera, pero se puede realizar una consulta con los datos ya concatenados. | |
Fecha: 21/05/2008 |
|
| La nueva versión de MySQL parece que viene con importantes mejoras respecto a sus antecesoras. | |
Fecha: 16/05/2007 |
|
| Puede ser que se nos olvide la clave de nuestro MySQL, no hace falta que os desespereis ya que se puede recuperar con una serie de instrucciones. | |
Fecha: 17/06/2007 |
|
| Todos sabemos que MySQL es uno de los mejores sistemas de bases de datos, pero ¿cómo podemos construir la base de datos más rápida?. Hay que tener en cuenta una serie de factores importates. | |
| Comentarios de los Usuarios (4) |
Jcorp escribió: |
Fecha: 09/05/2007 17:40:34 |
Sin duda alguna la mejor opción es AESYo siempre he utilizado AES para realizar las encriptaciones de mis contraseñas, creo que está practicamente demostrado que es la opción más segura. Lo recomiendo sin duda alguna. | |
Jokin escribió: |
Fecha: 15/05/2007 13:35:44 |
Aes es muy vulnerableSi tienen acceso a tu bbdd es muy probable que tambien tengan acceso a tu codigo fuente, Ademas, el administrador del sistema siempre podria recuperar la contraseña de cualquier usuario. Lo mas seguro es utilizar alguna de las funciones no reversibles, y si quieres un extra de seguridad, encriptar el resultado de estas con aes. Si alguien olvida una contraseña se le genera una nueva, pero de este modo es practicamente imposible recuperarla desde la base de datos. | |
Alberto Redondo escribió: |
Fecha: 14/06/2007 11:25:22 |
Las encriptaciones no reversibles no siempre son la mejor opciónYo no apoyo tanto el hecho de que una encriptación no reversible sea la mejor opción, a mi siempre me ha gustado poder recuperar lo que encripto. Y lo que comenta Jokin, pues puede que sea así o no, el administrador no siempre tiene porque poder ver el código. Pero bueno, para gustos los colores. | |
XYYY7 escribió: |
Fecha: 01/10/2007 4:46:00 |
apoyo y soporto el comentario de JokinDefinitivamente... el hecho de que alla una llave, buscar seguridad sobre otra seguridad.. (velar por nuestros codigos).., lo reversible, bla bla bla... ME PARECE QUE ES PELIGROSO LA OPCION DE "AES" | |
Este artículo ya ha superado la fecha máxima para escribir comentarios, 1 año.