Cómo Configurar Certificados SSL para el Proxy de Base de Datos de DataSunrise
La mayoría de las bases de datos soportan la verificación de la identidad del servidor mediante el uso de certificados. Por lo tanto, 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, será considerado como un ataque de intermediario. Por defecto, esta verificación del certificado del servidor puede habilitarse o deshabilitarse dependiendo del sistema de gestión de bases de datos (DBMS). Sin embargo, recomendamos habilitar la verificación de certificados para mantener su información segura.
Para una conexión directa entre una base de datos y una aplicación cliente, la verificación del certificado 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 MySQL como ejemplo.
El cliente de MySQL tiene conocimiento del certificado CA. Hay Server-cert y Server-key en el 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 a:
- Verify-CA (Quiero que mis datos estén encriptados y acepto la sobrecarga. Quiero estar seguro de que me estoy conectando a un servidor en el que confío)
- Verify-Identity (Quiero que mis datos estén 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 una cadena de ejemplo 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 una conexión con la verificación de certificados de DataSunrise habilitada:
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 de DataSunrise. La configuración SSL del proxy de 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 de DataSunrise genuino.
La segunda conexión se establece entre un proxy de DataSunrise y un servidor de base de datos y se utiliza su propia configuración SSL. El proxy de DataSunrise funciona como una aplicación cliente aquí 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 de DataSunrise sea un proxy transparente y soporte el modo de encriptación que se negocie entre el cliente y el servidor de base de datos. Esto significa que es imposible encriptar solo una conexión en la cadena. El proxy de 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 presentan los pasos que le permiten configurar una 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 icono del “lápiz” para editar la configuración del proxy.
4. Seleccione su Grupo de Claves SSL en la lista desplegable Claves de Proxy 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 icono del “lápiz” para editar la configuración de la interfaz
3. Debe 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.
Después de completar los pasos anteriores, la conexión a un proxy desencadena la verificación de certificado 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)]>