5.5.7 Utilisation des connexions sécurisées
5.5 Gestion des comptes utilisateurs de MySQL
5 Administration du serveur
Manuel de Référence MySQL 4.1 : Version Française
. Introduction aux connexions sécurisées . Pré requis aux connexions sécurisées . Configurer les certificats SSL pour MySQL ->Options de GRANT avec SSL . Options SSL en ligne de commande . Connexion à MySQL à distance avec Windows et SSH
|
5.5.7.4 Options de GRANT avec SSL
MySQL peut vérifier les certificats X509 en plus de la combinaisons habituelle
de nom d'utilisateur et mot de passe. Toutes les options habituelles sont
toujours nécessaires (nom d'utilisateur, masque d'adresse IP,
nom de base de données, nom de table).
Syntaxe de
GRANT
et
REVOKE
.
Voici différentes possibilités pour limiter les connexions :
-
Sans aucune option SSL ou X509, toutes les connexions chiffrées ou non
chiffrées sont autorisées si le nom d'utilisateur et le mot de passe
sont valides.
-
L'option
REQUIRE SSL
requiert que les connexions soient chiffrées
avec SSL. Notez que cette option peut être omise si il n'y a pas de
ligne ACL qui autorise une connexion sans SSL.
mysql> GRANT ALL PRIVILEGES ON test.* TO root@localhost -> IDENTIFIED BY "goodsecret" REQUIRE SSL;
|
-
REQUIRE X509
impose au client d'avoir un certificat valide, mais
le certificat lui même est de peu d'importance. La seule restriction est
qu'il doit être possible de vérifier la signature avec une des autorités
de certification.
mysql> GRANT ALL PRIVILEGES ON test.* TO root@localhost -> IDENTIFIED BY "goodsecret" REQUIRE X509;
|
-
REQUIRE ISSUER "issuer"
restreint les tentatives de connexion :
le client doit se présenter avec un certificat X509 valide, émis par l'
autorité de certification
"issuer"
.
Utiliser un certificat X509 implique obligatoirement des chiffrements, donc
l'option
SSL
est sous entendue.
mysql> GRANT ALL PRIVILEGES ON test.* TO root@localhost -> IDENTIFIED BY "goodsecret" -> REQUIRE ISSUER "C=FI, ST=Some-State, L=Helsinki, "> O=MySQL Finland AB, CN=Tonu Samuel/Email=tonu@mysql.com";
|
-
REQUIRE SUBJECT "subject"
impose au client d'avoir un certificat X509
valide, avec le sujet
"subject"
. Si le client présente un certificat
valide, mais que le
"subject"
est différent, la connexion est refusée.
mysql> GRANT ALL PRIVILEGES ON test.* TO root@localhost -> IDENTIFIED BY "goodsecret" -> REQUIRE SUBJECT "C=EE, ST=Some-State, L=Tallinn, "> O=MySQL demo client certificate, "> CN=Tonu Samuel/Email=tonu@mysql.com";
|
-
REQUIRE CIPHER "cipher"
est utilisé pour s'assurer que les chiffrements
sont suffisamment robuste, et que la bonne longueur de clé est utilisée. SSL lui
même peut être faible si des algorithmes sont utilisés avec des clés courtes.
En utilisant cette option, il est possible d'imposer la méthode de chiffrement
avec la connexion.
mysql> GRANT ALL PRIVILEGES ON test.* TO root@localhost -> IDENTIFIED BY "goodsecret" -> REQUIRE CIPHER "EDH-RSA-DES-CBC3-SHA";
|
Les options
SUBJECT
,
ISSUER
et
CIPHER
peuvent être
combinées avec la clause
REQUIRE
comme ceci :
mysql> GRANT ALL PRIVILEGES ON test.* TO root@localhost -> IDENTIFIED BY "goodsecret" -> REQUIRE SUBJECT "C=EE, ST=Some-State, L=Tallinn, "> O=MySQL demo client certificate, "> CN=Tonu Samuel/Email=tonu@mysql.com" -> AND ISSUER "C=FI, ST=Some-State, L=Helsinki, "> O=MySQL Finland AB, CN=Tonu Samuel/Email=tonu@mysql.com" -> AND CIPHER "EDH-RSA-DES-CBC3-SHA";
|
Depuis MySQL 4.0.4, le mot clé
AND
est optionnel, entre les options
REQUIRE
.L'ordre de ces options n'a pas d'importance, mais aucune option ne peut être
spécifiée deux fois.
|