Comment Configurer des Certificats SSL pour le Proxy de Base de Données DataSunrise
La majorité des bases de données prennent en charge la vérification de l’identité du serveur à l’aide de certificats. Ainsi, une procédure de vérification est effectuée lors d’une connexion à un serveur : si le certificat reçu du serveur est authentique, une connexion sera établie ; sinon, il sera considéré comme une attaque de l’homme du milieu. Par défaut, cette vérification du certificat serveur peut être activée / désactivée selon le SGBD. Cependant, nous recommandons d’activer la vérification des certificats pour garantir la sécurité de vos données.
Pour une connexion directe entre une base de données et une application cliente, la vérification des certificats fonctionne comme suit :
client(CA-cert) <---> serveur(Server-cert, Server-key)
- CA-cert – certificat racine de l’autorité de certification,
- Server-key – clé privée du serveur
- Server-cert – certificat du serveur signé par la CA.
Prenons MySQL comme exemple.
Le client MySQL est informé du certificat CA. Il y a des Server-cert et Server-key côté serveur. Le mode SSL peut être activé par le client. La valeur par défaut de ssl_mode=prefer signifie que l’authentification du certificat serveur est désactivée. De plus, le paramètre ssl_mode peut être défini sur :
- Verify-CA (Je veux que mes données soient chiffrées et j’accepte la surcharge. Je veux être sûr de me connecter à un serveur auquel je fais confiance)
- Verify-Identity (Je veux que mes données soient chiffrées et j’accepte la surcharge. Je veux être sûr de me connecter à un serveur auquel je fais confiance et que c’est bien celui spécifié)
Voici un exemple de chaîne utilisée pour établir une connexion directe avec vérification du certificat :
$mysql --host=localhost --port=3306 --user=root --ssl-ca=ca.pem --ssl_mode=VERIFY_CA
[root@3306][(none)]>
Le schéma suivant montre le processus d’établissement d’une connexion avec la vérification du certificat DataSunrise activée :
DataSunrise implémente la fonctionnalité de chiffrement de bout en bout dans une chaîne client-proxy-serveur.
Regardez le schéma ci-dessus : il y a deux connexions. La première connexion est établie entre un client et un proxy DataSunrise. La configuration SSL du proxy DataSunrise est utilisée pour la connexion. Pour le configurer, vous devez avoir Proxy-key et Proxy-cert générés et signés par le certificat CA. Cela vous permet de vous assurer que vous vous connectez à un proxy DataSunrise authentique.
La deuxième connexion est établie entre un proxy DataSunrise et un serveur de base de données et utilise sa propre configuration SSL. Le proxy DataSunrise fonctionne ici comme une application cliente et peut également vérifier une connexion à un serveur authentique.
Veuillez noter que l’authentification par certificat est une option supplémentaire pour le chiffrement SSL, elle ne fonctionne pas si le chiffrement SSL est désactivé.
Il est également important que le proxy DataSunrise soit un proxy transparent et prenne en charge le mode de chiffrement négocié par le client et le serveur de base de données. Cela signifie qu’il est impossible de chiffrer une seule connexion dans la chaîne. Le proxy DataSunrise ne peut pas recevoir le trafic chiffré d’un côté et envoyer le trafic non chiffré à l’autre côté et vice versa.
Voici les étapes qui vous permettent de configurer une vérification des certificats SSL dans DataSunrise :
Première connexion
1. Allez dans Configuration → Groupes de Clés SSL et cliquez sur Ajouter un Groupe
2. Saisissez votre Proxy-cert et Proxy-key dans les champs correspondants. Pour ce faire, vous devez choisir le type de Proxy.
3. Allez dans Configuration → Bases de Données. Ouvrez la page de votre instance de base de données et cliquez sur l’icône “crayon” pour modifier les paramètres du proxy.
4. Sélectionnez votre Groupe de Clés SSL dans la liste déroulante Clés du Proxy et enregistrez les paramètres.
Deuxième connexion
1. Allez dans Configuration → Groupe de Clés SSL et cliquez sur Ajouter un Groupe. Sélectionnez le type Interface et saisissez votre CA-cert dans le champ CA.
2. Allez dans Configuration → Bases de Données, sélectionnez votre Instance et cliquez sur l’icône “crayon” pour modifier les paramètres de l’interface
3. Vous devez spécifier le groupe créé à la première étape, sélectionner le mode de vérification des certificats et enregistrer les paramètres.
- Ne pas vérifier – la vérification du certificat ne sera pas effectuée,
- Vérifier uniquement CA – le certificat CA du serveur sera vérifié,
- Vérifier CA et Identité – le certificat CA du serveur et le nom d’hôte du serveur dans le certificat seront vérifiés.
Après avoir terminé les étapes ci-dessus, la connexion à un proxy déclenche une vérification des certificats pour les deux serveurs et élimine la possibilité d’attaques MITM.
$mysql --host=localhost --port=3307 --user=root --ssl-ca=CA_Proxy.crt --ssl_mode=VERIFY_IDENTITY
[root@3307][(none)]>