Configurar Certificados SSL para el Proxy de Base de Datos DataSunrise
La mayoría de las bases de datos soportan la verificación de la identidad del servidor mediante el uso de certificados. Así, se realiza un procedimiento de verificación durante una conexión a un servidor: si el certificado recibido del servidor es auténtico, se establecerá una conexión; de lo contrario, se considerará como un ataque de intermediario (man-in-the-middle). Por defecto, esta verificación del certificado del servidor se puede habilitar/deshabilitar dependiendo del DBMS. Sin embargo, recomendamos habilitar la verificación del certificado para mantener sus datos seguros.
Para una conexión directa entre una base de datos y una aplicación cliente, una verificación de certificados funciona de la siguiente manera:
cliente(CA-cert) <---> servidor(Server-cert, Server-key)
- CA-cert – certificado raíz de la autoridad de certificación,
- Server-key – clave privada del servidor
- Server-cert – certificado del servidor firmado por la CA.
Veamos un ejemplo con MySQL.
El cliente MySQL está al tanto del certificado CA. Hay Server-cert y Server-key del lado del servidor. El modo SSL puede ser habilitado por el cliente. El valor por defecto de ssl_mode=prefer significa que la autenticación del certificado del servidor está deshabilitada. Además, el parámetro ssl_mode puede configurarse en:
- Verify-CA (Quiero mis datos encriptados y acepto la sobrecarga. Quiero estar seguro de que me estoy conectando a un servidor en el que confío)
- Verify-Identity (Quiero mis datos encriptados y acepto la sobrecarga. Quiero estar seguro de que me estoy conectando a un servidor en el que confío y que es el especificado)
A continuación se muestra un ejemplo de cadena utilizada para establecer una conexión directa con verificación de certificado:
$mysql --host=localhost --port=3306 --user=root --ssl-ca=ca.pem --ssl_mode=VERIFY_CA
[root@3306][(none)]>
El siguiente diagrama muestra el proceso de establecimiento de conexión con la verificación de certificados habilitada en DataSunrise:

Datasunrise implementa la funcionalidad de encriptación de extremo a extremo en una cadena cliente-proxy-servidor.
Observe el diagrama anterior: hay dos conexiones. La primera conexión se establece entre un cliente y un proxy DataSunrise. La configuración SSL del proxy DataSunrise se utiliza para la conexión. Para configurarlo, necesita tener Proxy-key y Proxy-cert generados y firmados por el certificado CA. Esto le permite estar seguro de que se está conectando a un proxy DataSunrise genuino.
La segunda conexión se establece entre un proxy DataSunrise y un servidor de base de datos y se utiliza su propia configuración SSL. El proxy DataSunrise funciona aquí como una aplicación cliente y también puede verificar una conexión a un servidor auténtico.
Tenga en cuenta que la autenticación de certificados es una opción adicional para la encriptación SSL, no funciona si la encriptación SSL está deshabilitada.
También es importante que el proxy DataSunrise sea un proxy transparente y soporte el modo de encriptación que es negociado por el cliente y el servidor de base de datos. Esto significa que es imposible encriptar solo una conexión en la cadena. El proxy DataSunrise no puede recibir tráfico encriptado de un extremo y enviar tráfico no encriptado al otro extremo y viceversa.
A continuación se describen los pasos que le permiten configurar la verificación de certificados SSL en DataSunrise:
Primera conexión
1. Navegue a Configuración → Grupos de Claves SSL y haga clic en Agregar Grupo

2. Ingrese su Proxy-cert y Proxy-key en los campos correspondientes. Para esto, debe elegir el tipo de Proxy.

3. Navegue a Configuración → Bases de datos. Abra la página de su instancia de base de datos y haga clic en el ícono del “lápiz” para editar la configuración del proxy.

4. Seleccione su Grupo de Claves SSL en la lista desplegable Proxy Keys y guarde la configuración.

Segunda conexión
1. Navegue a Configuración → Grupo de Claves SSL y haga clic en Agregar Grupo. Seleccione el tipo Interfaz e ingrese su CA-cert en el campo CA.

2. Navegue a Configuración → Bases de datos, seleccione su instancia y haga clic en el ícono del “lápiz” para editar la configuración de la interfaz.

3. Necesita especificar el grupo creado en el primer paso, seleccionar el modo de verificación de certificados y guardar la configuración.

- No verificar – no se realizará la verificación del certificado,
- Verificar solo CA – se verificará el certificado CA del servidor,
- Verificar CA e Identidad – se verificará el certificado CA del servidor y el nombre de host del servidor en el certificado.
Habiendo completado los pasos anteriores, conectarse a un proxy activa la verificación de certificados para los dos servidores y elimina la posibilidad de ataques MITM.
$mysql --host=localhost --port=3307 --user=root --ssl-ca=CA_Proxy.crt --ssl_mode=VERIFY_IDENTITY
[root@3307][(none)]>