Comprendre le chiffrement dans MySQL

Effectué

Données en transit

Azure Database pour MySQL prend en charge les connexions chiffrées à l’aide du protocole TLS 1.2. Ce protocole est activé par défaut et géré par le paramètre de serveur tls_version. Ce paramètre vous permet d’appliquer la version TLS minimale autorisée par le serveur. Vous pouvez sélectionner plusieurs versions, par exemple si vous souhaitez autoriser TLS 1.2 et 1.3. Quand vous modifiez ce paramètre, vous devez redémarrer le serveur pour appliquer la modification.

Screenshot showing the server parameter tls_version page.

Si votre application cliente ne prend pas en charge les connexions chiffrées, vous aurez besoin de désactiver les connexions chiffrées dans Azure Database pour MySQL. Dans le Portail Azure, accédez à votre serveur MySQL, puis, sous Paramètres, sélectionnez Paramètres du serveur. Dans la zone de recherche, entrez require_secure_transport. Ce paramètre définit si les connexions clientes doivent utiliser une connexion sécurisée, c’est-à-dire des connexions SSL sur TCP/IP ou des connexions qui utilisent un fichier de socket sur Unix ou une mémoire partagée sur Windows. Si votre application cliente ne prend pas en charge les connexions chiffrées, définissez require_secure_transport sur OFF.

Notes

Si vous définissez require_secure_transport sur OFF, mais qu’un client se connecte avec une connexion chiffrée, il sera quand même accepté.

Pour utiliser des connexions chiffrées avec vos applications clientes, téléchargez le certificat SSL public dans le portail Azure. Accédez à votre serveur MySQL et, dans le menu de gauche, sélectionnez Mise en réseau. Dans le menu supérieur, sélectionnez Télécharger le certificat SSL. Pour permettre aux applications de se connecter en toute sécurité à la base de données par le biais du protocole SSL, enregistrez le fichier du certificat dans votre environnement local ou dans l’environnement client où votre application est hébergée.

Données au repos

Le chiffrement des données au repos est pris en charge dans le moteur de stockage InnoDB. Le chiffrement est défini au niveau de l’espace de table et InnoDB prend en charge le chiffrement pour les espaces de table suivants : fichier par table, général et système. Pour MySQL version 8.0, vérifiez que le paramètre de serveur default_table_encryption est défini sur ON (il est défini sur OFF par défaut). Pour une table chiffrée, vous pouvez aussi chiffrer le journal de phase de restauration par progression. Elle est désactivée par défaut.

Pour chiffrer une table dans un fichier par espace de table :

CREATE TABLE myEncryptedTable (myID INT) ENCRYPTION = 'Y';

Si vous modifiez ensuite une table, la clause de chiffrement doit être spécifiée :

ALTER TABLE myEncryptedTable ENCRYPTION = 'Y';

Azure Database pour MySQL prend en charge le chiffrement des données au repos par défaut, à l’aide des clés gérées par Microsoft. Les données et les sauvegardes sont toujours chiffrées sur le disque. Vous ne pouvez pas désactiver cette option.