Cómo Podemos Cifra Una Base de Datos MySQL
Cómo Podemos Cifra Una Base de Datos MySQL
Cómo Podemos Cifra Una Base de Datos MySQL
Antes de indicar como se puede cifrar una base de datos en MySQL, debemos indicar que es lo que
se usa en cuestión para cifrar, en este caso se usa algo llamado Advanced Encryption Standard
(AES) .
¿Qué es AES?
AES es un algoritmo de cifrado simétrico. ¿Pero qué quiere decir esto?, que este requiere
una contraseña para descifrar la información. Este permite contraseñas de hasta 256 bits
por lo cual es considerado como uno de los protocolos mas seguros para cifrado de
información.
¿Cómo se aplica en MySQL?
MySQL es un sistema de administración de bases de datos relacional, que provee la
capacidad de cifrar la información con el algoritmo de AES. Se puede realizar un llamado a
la función con los siguientes comandos: para cifrar la información se usa “AES_ENCRYPT” y
para descifrarla “AES_DECRYPT”. Como concepto básico y fundamental, la función recibe
dos parámetros, el texto a cifrar y la contraseña que nosotros seleccionamos. Cabe
destacar que la implementación del cifrado en una base de datos depende en gran parte
de cómo se diseñó y desarrolló la aplicación.
Ejemplo:
En este ejemplo a la función le indicamos la información y la contraseña con la que
queremos cifrar. Además, aplicamos otra función HEX, que devuelve el valor hexadecimal
de la función AES. Este paso lo hacemos para poder apreciar de manera legible el valor
retornado:
MySQL tiene configurado AES por defecto en 128 bits. Esta no es la configuración que AES
tiene como estándar para que el cifrado sea completamente seguro; para ello, tendríamos
que cambiar a 256 bits. Con el objetivo de conocer de qué manera está configurado el
algoritmo, debemos consultar a la variable block_encryption_mode, como indicamos a
continuación:
Como comprobamos, el cifrado no es del todo seguro y por lo tanto, debemos aplicar los
cambios necesarios para que sí lo sea. Con la instrucción SET y el parámetro “aes-256-
ecb”, lograremos los cambios que buscamos, como se describe a continuación:
Ahora sí, el cifrado AES está correctamente configurado con 256 bits. Por lo tanto,
volveremos a usar la función como hicimos anteriormente, y obtendremos un valor
diferente al anterior pero con un cifrado más robusto:
Para verificar que nuestros datos fueron cifrados correctamente, utilizaremos las
funciones inversas AES_DECRYPT y UNHEX.