Actividad #28
cerrada
Habilitar Cifrado en la Base de Datos
Añadido por Anibal Pendas Amador hace 5 días.
Actualizado hace 1 día.
Fecha de inicio:
01/08/2025
Fecha de vencimiento:
03/08/2025
Descripción
Habilitar Cifrado en la Base de Datos¶
-
Descripción: Configurar MySQL 8.x para cifrar todas las tablas del Sistema CRM con AES-256, protegiendo datos sensibles almacenados, como información de contactos, oportunidades, campañas, tareas, y claves API, contra accesos no autorizados en caso de compromiso del servidor de base de datos.
-
Verificación: Confirmar que todas las tablas de la base de datos están marcadas como cifradas y son ilegibles sin las claves adecuadas.
- Copiado de Actividad #27: Habilitar Cifrado en la Base de Datos añadido
- Copiado a Actividad #29: Habilitar Cifrado en la Base de Datos añadido
- Estado cambiado de Nuevo a Resuelto
- % Completado cambiado de 0 a 100
Guía para Habilitar Cifrado en la Base de Datos MySQL con AES-256¶
Este documento describe los pasos que realicé para llevar a cabo una configuración de MySQL 9.4 en un entorno Windows 11 Home, con el objetivo de cifrar todas las tablas del Sistema CRM utilizando AES-256. Esto protege datos sensibles, como información de contactos, oportunidades, campañas, tareas y claves API, contra accesos no autorizados en caso de compromiso del servidor de base de datos. También verifiqué que las tablas estuvieran marcadas como cifradas y fueran ilegibles sin las claves adecuadas.
Requisitos Previos¶
- MySQL Server 9.4 instalado.
- Acceso administrativo al servidor Windows 11 Home.
- Herramienta de administración de bases de datos como Navicat instalada.
- Directorios de instalación de MySQL:
C:\Program Files\MySQL\MySQL Server 9.4\
y C:\ProgramData\MySQL\MySQL Server 9.4\
.
- Conocimiento básico de comandos SQL y configuración de MySQL.
Pasos para Configurar el Cifrado de Tablas con AES-256¶
Paso 1: Crear el archivo mysqld.my
en la ruta global¶
Paso 2: Crear el archivo component_keyring_file.cnf
en la ruta global de plugins¶
Paso 3: Crear el archivo mysqld.my
en la ruta local de datos¶
Paso 4: Crear el archivo component_keyring_file.cnf
en la ruta local de datos¶
Paso 5: Crear la carpeta keyring
- Creé la carpeta
keyring
en la ruta especificada en component_keyring_file.cnf
: C:\ProgramData\MySQL\MySQL Server 9.4\keyring
.
- Aseguré que la carpeta estuviera accesible para el servicio de MySQL (permisos de escritura para el usuario del servicio).
Paso 6: Reiniciar el servicio de MySQL¶
- Abrí la aplicación
Services
en Windows:
- Presioné
Win + R
, escribí services.msc
y presioné Enter.
- Busqué el servicio
MySQL94
en la lista.
- Hice clic derecho sobre
MySQL94
y seleccioné Reiniciar
para aplicar los cambios de configuración.
Paso 7: Encriptar una tabla¶
- Accedí a la base de datos del Sistema CRM usando Navicat.
- Abrí una nueva consulta (query) en Navicat.
- Para encriptar una tabla existente (por ejemplo,
contactos
), ejecuté el siguiente comando SQL:
ALTER TABLE contactos ENCRYPTION='Y';
- Para crear una nueva tabla encriptada (por ejemplo,
tareas
), ejecuté:
CREATE TABLE tareas (
id INT AUTO_INCREMENT PRIMARY KEY,
descripcion VARCHAR(255),
estado VARCHAR(50)
) ENCRYPTION='Y';
- Repetí este proceso para todas las tablas del Sistema CRM, incluyendo
contactos
, oportunidades
, campanas
, tareas
, y claves_api
.
Paso 8: Verificar el cifrado de las tablas¶
- Ejecuté el siguiente comando SQL para confirmar que las tablas estaban cifradas:
SELECT TABLE_NAME, CREATE_OPTIONS
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME = 'contactos';
-
Salida esperada:
TABLE_NAME | CREATE_OPTIONS
contactos | ENCRYPTION="Y"
- Repetí la verificación para todas las tablas (
oportunidades
, campanas
, tareas
, claves_api
), confirmando que cada una tuviera ENCRYPTION="Y"
en CREATE_OPTIONS
.
- Para verificar que los datos eran ilegibles sin las claves, intenté acceder al archivo físico de la tabla (por ejemplo,
C:\ProgramData\MySQL\MySQL Server 9.4\Data\crm\contactos.ibd
) usando un editor hexadecimal. Confirmé que los datos estaban cifrados y no eran legibles directamente.
Resumen¶
- Llevé a cabo una configuración del componente de cifrado
component_keyring_file
en MySQL 9.4 creando los archivos mysqld.my
y component_keyring_file.cnf
en las rutas global y local, y aseguré la existencia de la carpeta keyring
.
- Reinicié el servicio
MySQL94
para aplicar los cambios.
- Encripté todas las tablas del Sistema CRM (
contactos
, oportunidades
, campanas
, tareas
, claves_api
) con AES-256 usando el comando ALTER TABLE ... ENCRYPTION='Y'
o CREATE TABLE ... ENCRYPTION='Y'
.
- Verifiqué que todas las tablas estaban marcadas como cifradas mediante
INFORMATION_SCHEMA.TABLES
y confirmé que los datos eran ilegibles sin las claves adecuadas.
- Nota: Para un entorno de producción, consideraré implementar una solución de gestión de claves más robusta, como un servidor de claves externo, para mayor seguridad.
- Estado cambiado de Resuelto a Cerrado
También disponible en: Atom
PDF