5 min de lecture
Chiffrement au repos par défaut pour toutes les bases de données
Le chiffrement au repos est maintenant activé par défaut pour toutes les nouvelles bases de données.

Le chiffrement au repos est disponible à la demande via le support depuis quelques mois. Nous avons récemment décidé de l'activer par défaut pour toutes les nouvelles bases de données. Dans cet article, vous apprendrez ce qu'est le chiffrement au repos et pourquoi il est important pour votre entreprise. Nous aborderons également comment nous l'avons mis en œuvre sur Scalingo et pourquoi nous avons décidé de l'activer par défaut pour tous nos clients.
La sécurité des données de votre base de données est une priorité absolue pour nous. L'accès à la base de données est toujours chiffré avec des connexions TLS lorsqu'il est atteint depuis l'extérieur du datacenter de Scalingo et peut être imposé même à l'intérieur de l'infrastructure. Les identifiants d'authentification sont toujours générés aléatoirement avec un mot de passe fort. La communication entre les membres d'un cluster de base de données est également chiffrée par défaut. Bien sûr, les sauvegardes de base de données sont chiffrées et stockées externe. De plus, notre fournisseur d'infrastructure garantit contractuellement que lorsqu'un disque passe en maintenance, toutes ses données sont effacées. Mais le chiffrement au repos est une bonne précaution que nous pouvons ajouter à notre infrastructure.
Qu'est-ce que le chiffrement au repos ?
Le chiffrement au repos est le chiffrement des données de la base de données lorsqu'elles sont conservées sur disque. Lorsque le chiffrement au repos est activé, les bits de données stockés sur disque sont illisibles pour quiconque ayant un accès physique au disque.
L'objectif du chiffrement au repos est de protéger les données stockées sur disque contre un attaquant essayant d'obtenir un accès physique au matériel. Dans un tel scénario, le disque dur d'un serveur peut avoir été compromis lors d'une maintenance, permettant à un attaquant de lire les octets stockés. Avec le chiffrement au repos activé, les données sont chiffrées avant d'être stockées sur le disque. Si un attaquant obtient un disque dur avec des données chiffrées sans accès aux clés de chiffrement, il est presque impossible de lire des octets utiles.
Pour cette raison, nous avons développé le chiffrement au repos pour certains de nos clients nécessitant une sécurité de pointe pour leurs données.
Mise en œuvre de Scalingo
Certains types de bases de données prennent en charge le chiffrement au repos nativement (c'est-à-dire PostgreSQL ou MongoDB avec le moteur de stockage WiredTiger), cependant, ces solutions sont spécifiques à ces technologies et notre objectif a été de rendre cette fonctionnalité disponible pour toutes les bases de données prises en charge sur la plateforme. Notre choix a été de tirer parti d'une fonctionnalité du noyau Linux permettant de chiffrer les données au niveau du disque : cette fonctionnalité est nommée : dm-crypt.
Ce sous-système est disponible depuis la version 2.6 de Linux (sortie en 2003), il utilise l'infrastructure du device mapper pour présenter des dispositifs ressemblant à des disques à l'utilisateur où toutes les opérations de lecture et d'écriture utilisent de manière transparente des fonctions de déchiffrement et de chiffrement. Ces dispositifs sont appelés partitions chiffrées LUKS (Linux Unified Key Setup) et sont généralement manipulés à l'aide de l'outil en ligne de commande cryptsetup.
Parallèlement, les CPU utilisés dans notre infrastructure sont des Intel Xeon E5 qui ont été conçus avec des instructions dédiées pour le chiffrement. Ces instructions sont automatiquement utilisées par Linux pour garantir la meilleure performance possible.
L'algorithme utilisé est aes-xts-plain64 avec une taille de clé de 256 bits et haché à l'aide de SHA256. Cette méthode est considérée comme sécurisée et standard dans l'industrie. Pour réduire la surface d'attaque, chaque instance de chaque base de données a sa propre clé cryptographique pour protéger ses données, de sorte qu'obtenir accès à une clé ne permettrait pas à un attaquant d'accéder à des données non chiffrées d'une autre base de données. Les clés sont stockées dans une base de données qui est elle-même chiffrée et protégée par authentification.
Impact sur la performance
Avant de l'activer par défaut pour toutes les bases de données, il était important de s'assurer que l'impact sur la performance de l'application et sur l'infrastructure n'est pas trop important. Nous avons exécuté une série d'expériences pour recueillir la confiance sur l'impact du chiffrement au repos sur la performance.
Expériences de bas niveau
Nous avons d'abord examiné l'impact du chiffrement au repos sur les opérations brutes, telles que les lectures et écritures, sans le surcoût d'une base de données. Nous avons utilisé l'outil dd pour lire et écrire des octets sur un volume chiffré et un volume non chiffré. Cet outil affiche le nombre d'octets par seconde qui ont été lus ou écrits. Nous avons utilisé ces informations pour comparer la performance entre les volumes chiffrés et non chiffrés.
Nous avons exécuté chaque expérience 15 fois pour gagner en confiance quant à la reproductibilité des résultats. Nous avons découvert que la différence entre l'écriture sur un volume chiffré et un volume non chiffré varie de 0 % à 2,8 %. Nous avons même eu quelques exécutions d'expériences où les écritures sur un volume chiffré étaient légèrement plus rapides que les mêmes écritures sur un volume non chiffré !
Expériences de haut niveau
La performance de bas niveau est raisonnablement faible mais nous nous demandons si l'ajout de la couche base de données modifie l'impact des opérations de lecture ou d'écriture. Nous avons réalisé des expériences sur MongoDB et PostgreSQL en utilisant respectivement YCSB (Yahoo! Cloud Serving Benchmark) et pgbench. Ces logiciels nous ont permis d'exécuter quelques benchmarks en lecture seule et en lecture-écriture sur les bases de données et ont affiché le nombre d'opérations par seconde qu'ils ont réalisés.
Nous avons exécuté chaque expérience 10 fois. Chaque exécution dure environ 1 heure. Les résultats avec cette configuration sont similaires aux expériences de bas niveau : la différence de performance entre les opérations sur un volume chiffré et non chiffré est acceptable, de 4 % à 9 %.
Nous avons également examiné l'impact sur la mémoire et la consommation CPU. Seule l'utilisation du CPU semble être impactée avec une utilisation 3,70 % plus élevée lors de la lecture ou de l'écriture sur un volume chiffré par rapport à la même opération sur un volume non chiffré.
Mots de la fin : Activation par défaut
L'impact du chiffrement au repos sur la performance est relativement faible par rapport aux avantages pour la vie privée de nos clients. Par conséquent, nous avons décidé de l'activer pour toutes les bases de données nouvellement créées. Ce changement a eu lieu le 6 janvier 2019. Pour les bases de données créées avant cette date, le chiffrement au repos est disponible à la demande sur le chat d'assistance intégré du tableau de bord web, ou par e-mail à support@scalingo.com. L'activation du chiffrement au repos se fait avec un court temps d'arrêt pour votre base de données, de quelques secondes à quelques minutes selon la quantité de données.
Photo par Chris Barbalis sur Unsplash

Yann Klis
Yann KLIS a fondé Scalingo en 2015 avec son associé Léo Unbekandt avec la vision de proposer une plateforme cloud d'hébergement web, véritable alternative européenne et souveraine aux géants américains. Aujourd'hui Scalingo héberge plusieurs milliers d'applications web déployées par des clients du monde entier ! L'objectif de Scalingo est de devenir la plateforme cloud de référence pour les développeurs web en Europe. Auparavant, il a fondé Novelys, un studio de développement spécialisé dans la technologie Ruby on Rails.
Restez informé
Recevez des articles et des mises à jour de la plateforme dans votre boîte de réception.
Prêt à déployer en toute confiance ?
Découvrez des déploiements sans temps d'arrêt, une mise à l'échelle automatique intelligente et une infrastructure entièrement gérée. Commencez à déployer vos applications sur Scalingo dès aujourd'hui.
Aucune carte de crédit requise • Déployez en quelques minutes • Annulez à tout moment





