ApsaraDB RDS for MySQL prend en charge trois méthodes de chiffrement complémentaires : le chiffrement de disque, le chiffrement transparent des données (TDE) et le chiffrement au niveau des colonnes. Chacune protège les données à un niveau différent de la pile technique. Cette rubrique détaille les menaces contre lesquelles chaque méthode vous protège, son impact sur les performances et les cas d'utilisation recommandés.
Fonctionnement du chiffrement de base de données
Le chiffrement ne remplace pas le contrôle d'accès. Il limite toutefois l'étendue des dégâts en cas de défaillance des contrôles d'accès, par exemple lorsqu'un compte administrateur est compromis ou qu'un attaquant copie directement les fichiers de la base de données depuis le disque.
Ces trois méthodes protègent les données à différents stades du système :
Le chiffrement de disque protège les données au niveau Infrastructure as a Service (IaaS) en sécurisant les informations stockées sur le disque physique.
Le TDE protège les données au niveau Platform as a Service (PaaS) en chiffrant les informations avant leur écriture dans le système de fichiers.
Le chiffrement au niveau des colonnes (édition de base de la fonctionnalité de base de données toujours confidentielle) protège les données en transit entre la base de données et le client, garantissant que les résultats des requêtes sont transmis sous forme de texte chiffré.
Le schéma ci-dessous illustre les vecteurs d'attaque auxquels chaque méthode répond.

Types d'attaques et couverture
Huit catégories d'attaques ciblent les systèmes de base de données :
| Type d'attaque | Description | Méthodes courantes |
|---|---|---|
| Attaque des administrateurs | Compromission des administrateurs système. Les administrateurs de base de données (DBA) peuvent accéder aux données et modifier les configurations. Les administrateurs PaaS peuvent accéder aux fichiers au niveau du système d'exploitation. Les administrateurs IaaS peuvent accéder aux disques physiques. | Vulnérabilités du système d'exploitation, fuites de comptes, configurations incorrectes |
| Attaque des utilisateurs | Compromission des utilisateurs finaux disposant d'un accès à la base de données, suivie d'une élévation de privilèges via une injection SQL. | Fuites de comptes, violations logiques des données |
| Attaque des applications | Exploitation des serveurs d'applications exposés à Internet, qui présentent une surface d'attaque plus large que la base de données elle-même. | Vulnérabilités des applications et du système d'exploitation |
| Attaque du réseau | Interception du trafic entre l'application et la base de données. Les méthodes de contournement rendent la détection difficile. | Écoute et interception du réseau |
| Contournement de la base de données | Le personnel PaaS copie directement les fichiers de données ou de sauvegarde depuis les disques de la base de données. | Violations physiques des données |
| Contournement du système d'exploitation | Le personnel IaaS copie directement les données depuis les disques locaux ou cloud. | Attaques par montage |
| Exploitation de la base de données | Exploitation de bogues de code dans le système de base de données pour accéder directement ou indirectement aux données. | Vulnérabilités du système d'exploitation de la base de données |
| Ciblage des copies de données | Attaques visant les bases de données de développement ou de test, qui reflètent souvent les données de production mais ne disposent pas des mêmes mesures de sécurité. | L'une des méthodes ci-dessus |
Choix d'une méthode de chiffrement
Chaque méthode permet de se prémunir contre un sous-ensemble distinct des types d'attaques mentionnés précédemment. Le tableau suivant résume les dimensions clés pour vous aider à sélectionner la méthode appropriée, ou une combinaison de méthodes.
| **Chiffrement de disque** | **TDE** | **Chiffrement au niveau des colonnes (édition de base)** | |
|---|---|---|---|
| Types d'attaques couverts | Contournement du système d'exploitation, attaque des administrateurs (IaaS) | Contournement de la base de données, contournement du système d'exploitation, attaque des administrateurs (PaaS et IaaS) | Attaque des utilisateurs, attaque des applications, attaque des administrateurs (DBA [1]), attaque du réseau, ciblage des copies de données |
| Visibilité pour les DBA | Visible | Visible | Invisible |
| Visibilité pour les opérations et la maintenance PaaS | Visible | Invisible | Visible [1] |
| Visibilité pour les opérations et la maintenance IaaS | Invisible | Invisible | Visible [1] |
| Granularité du chiffrement | Instance | Table et base de données | Colonne |
| Modifications applicatives | Aucune | Aucune | Remplacement de JDBC par EncJDBC (aucune modification de code requise) |
| Perte de performance typique | Minimale à nulle | Inférieure à 5 % | Inférieure à 7 % |
| Perte de performance sous forte charge | Minimale | Jusqu'à 20 % | Jusqu'à 21 % |
| Pour en savoir plus | Présentation du chiffrement de disque ECS | Configurer le TDE | Présentation du chiffrement au niveau des colonnes |
[1] L'édition de base n'empêche pas le personnel chargé des opérations et de la maintenance PaaS ou IaaS d'accéder aux données en clair. Pour vous protéger contre ces niveaux, utilisez l'édition améliorée par le matériel de la fonctionnalité de base de données toujours confidentielle, associée à une technologie matérielle de confiance.
Fonctionnement de chaque méthode
Chiffrement de disque
Le chiffrement de disque opère au niveau IaaS. Activez-le lors de la création des disques système ou de données Elastic Compute Service (ECS), ou ajoutez-le aux disques de données après la création de l'instance. Une fois activé, le système chiffre automatiquement toutes les données présentes sur les disques hébergeant l'instance ECS, sans nécessiter d'infrastructure de gestion des clés.
Caractéristique principale : Les données sont invisibles pour le personnel chargé des opérations et de la maintenance IaaS (ingénieurs de processus physiques), mais les DBA et les administrateurs PaaS peuvent toujours accéder aux données en clair.
Performances : L'impact est minime et, dans de nombreux cas, indétectable.
Chiffrement transparent des données (TDE)
Le TDE fonctionne au niveau PaaS. Le moteur de base de données chiffre les données en mémoire avant de les écrire dans le système de fichiers, puis les déchiffre lors de leur lecture. Ces opérations de chiffrement et de déchiffrement sont transparentes : aucune modification n'est requise au niveau des applications.
Caractéristique principale : Les données sont invisibles pour le personnel chargé des opérations et de la maintenance IaaS et PaaS. Les DBA peuvent toutefois toujours accéder aux données en clair.
Performances : La perte de performance dépend de la taille des tables sensibles par rapport au cache de la base de données :
Si la table tient dans le cache, la perte de performance est négligeable.
Si la table est beaucoup plus grande que le cache, la perte peut être significative.
Dans la plupart des charges de travail, la perte reste inférieure à 5 %. Sous des charges extrêmement lourdes, elle peut atteindre 20 %.
Chiffrement au niveau des colonnes
Le chiffrement au niveau des colonnes (édition de base de la fonctionnalité de base de données toujours confidentielle) opère au niveau du noyau de la base de données. Avant d'envoyer les résultats de la requête au client, la base de données chiffre les données. Le client déchiffre ensuite les résultats à l'aide de la clé requise. Cette approche dissocie la propriété des données de leur gestion : les personnes qui gèrent la base de données ne peuvent pas consulter les données qu'elle contient.
Caractéristique principale : Les données sont invisibles pour les DBA. Toutefois, le personnel chargé des opérations et de la maintenance PaaS et IaaS peut toujours accéder aux données en clair au niveau du stockage, sauf si vous migrez vers l'édition améliorée par le matériel.
Modification applicative requise : Remplacez le pilote Java Database Connectivity (JDBC) par EncJDBC. Aucune modification de code n'est nécessaire au-delà de ce remplacement de pilote.
Performances : La perte de performance dépend du volume de données sensibles dans les résultats de la requête, et non de la taille de la table ou de la base de données :
Interrogation d'une seule ligne : perte minimale.
Interrogation d'un million de lignes de données chiffrées : perte significative.
Dans la plupart des charges de travail, la perte reste inférieure à 7 %. Sous des charges extrêmement lourdes, elle peut atteindre 21 %.
Architecture technique
Le tableau suivant présente les différences architecturales entre les trois méthodes.
| **Chiffrement de disque** | **TDE** | **Chiffrement au niveau des colonnes** | |
|---|---|---|---|
| Champ d'application effectif | Système d'exploitation | Noyau de la base de données | Noyau de la base de données |
| Portée du chiffrement | Hôte et instance ECS | Instance de base de données | Instance de base de données |
| Granularité du chiffrement | Instance | Base de données et table | Colonne |
| Transparence pour l'application | Transparent | Transparent | Remplacement de JDBC par EncJDBC |
Quand utiliser chaque méthode
Utilisez le chiffrement de disque lorsque vous devez respecter des exigences de conformité au niveau IaaS ou vous protéger contre des scénarios où des supports physiques sont volés ou copiés.
Optez pour le TDE si vous souhaitez empêcher le personnel chargé des opérations et de la maintenance PaaS et IaaS (comme les administrateurs du système d'exploitation) d'accéder au contenu des fichiers de la base de données, sans modifier votre application.
Privilégiez le chiffrement au niveau des colonnes lorsque vous devez empêcher les DBA de consulter des données sensibles, ou lorsque vous souhaitez protéger les données en transit entre la base de données et votre application.
Ces méthodes sont complémentaires. Un environnement de production soumis à des exigences de sécurité strictes peut combiner les trois approches.