Je vais donc explorer certaines options sur le cryptage de la base de données. Les meilleures options sont commerciales (TDE). Je cherche une mise en œuvre open source. Les communiqués récents de MySQL et de Mariadb ont des capacités de données à reposer:
Mariadb
[.____] https://mariadb.com/kb/en/mariadb/why-crypt-mariadb-Data/
MySQL 5.7.11 est livré avec le cryptage Innodb Tablepace
[.____] https://dev.mysql.com/doc/refman/5.7/fr/innodb-tablespace-cryption.html
Ce qui est important dans cette mise en œuvre (pour les entreprises) est: sont-ils conformes aux PCI-DSS/HIPAA, etc.?
De Mariadb:
Le plug-in Mariadb File_Key_Management permet la configuration des clés dans un fichier. Le fichier de clé est lu au début du système et aucun accès supplémentaire n'est nécessaire pendant l'exécution. La sécurité du cryptage dépend de la restriction d'accès au fichier clé. Le fichier de clé peut lui-même être crypté et fournir une couche supplémentaire de protection.
De mon point de vue, cela signifie que fournir le déchiffrement de la clé pendant le début (et le redémarrage du système d'exploitation)? Donc, chaque fois que nous (re) démarrons un système, cela signifie que nous devons fournir cette clé manuellement? Avoir cette clé lisible sur le serveur lui-même vaincre l'utilisation d'un cryptage de données à reposer en premier lieu.
Dans MySQL 5.7.11+
La fonctionnalité de cryptage de l'espace de table InnoDB dans les éditions non-entreprises de MySQL utilise le plug-in KeyRing_File pour la gestion des clés de cryptage, qui n'est pas conçu comme une solution de conformité réglementaire. Les normes de sécurité telles que PCI, FIPS et d'autres nécessitent l'utilisation de systèmes de gestion des clés pour sécuriser, gérer et protéger les clés de cryptage dans les claviers clés ou les modules de sécurité matériels (HSMS).
MySQL Enterprise Edition offre le plug-in KeyRing_OKV, qui comprend un client KMIP (KMIP V1.2) (KMIP V1.2) qui fonctionne avec Oracle Key Vault (OKV) pour fournir une gestion des clés de cryptage. Une solution de gestion de clé de cryptage sécurisée et robuste telle que OKV est essentielle à la sécurité et au respect de diverses normes de sécurité. Entre autres avantages, l'utilisation d'une voûte clé garantit que les clés sont stockées de manière sécurisée, jamais perdue et connue uniquement d'administrateurs clés autorisés. Un coffre-fort clé maintient également un historique des clés de cryptage.
Maintenant, je me demande, cela peut-il être conforme aux normes de sécurité? Lors de l'utilisation de ce data-at-reste, une racine ou un utilisateur MySQL aura accès aux touches car elles pourraient lire des clés de cryptage de la mémoire?
Depuis V 5.7.20, (GRATUIT) PerCona offre maintenant Encrytion de données au repos Utilisation des touches stockées dans une télécommande (GRATUIT) Remote HasHicorp Vault Server. La documentation n'est pas vraiment facile à suivre, mais même j'ai réussi à le faire courir.
(Malheureusement, cela ne répond pas à mon exigence d'avoir 1 clé par base de données client)
Il peut y avoir un problème de terminologie ici. cryptage de données à reposer signifie généralement
Sur les formes de cryptage suggérées, je vous conseillerais de rester à l'écart de ces solutions spécifiques aux RDBMS, car elles sont moins testées que les autres options qui PostgreSQL suggère
Le cryptage de stockage peut être effectué au niveau du système de fichiers ou du niveau de bloc. Les options de cryptage du système de fichiers Linux incluent ecryptfs et encfs, tandis que FreeBSD utilise des PEF. Le niveau de bloc ou les options de cryptage complet des disques incluent DM-Crypt + Luks sur les modules Geli et Geom Geli et GBDE sur FreeBSD. De nombreux autres systèmes d'exploitation prennent en charge cette fonctionnalité, y compris Windows.
Ce mécanisme empêche les données non cryptées d'être lues des lecteurs si les lecteurs ou l'ensemble de l'ordinateur sont volés. Cela ne protège pas contre les attaques lorsque le système de fichiers est monté, car lors du montage, le système d'exploitation fournit une vue non chiffrée des données. Toutefois, pour monter le système de fichiers, vous devez passer un moyen pour que la clé de cryptage soit transmise au système d'exploitation et, parfois, la clé est stockée quelque part sur l'hôte qui monte le disque.
Essentiellement, différents systèmes d'exploitation et systèmes d'abstraction de systèmes de fichiers fournissent une meilleure méthode de traitement de cryptage de données-at-restim.
Oui, cela signifie que vous avez une clé. Oui, cela signifie que si la clé est compromise, les données peuvent être lues. Mais si votre base de données est compromise et non la clé, les données sont sécurisées. Et c'est pourquoi c'est des données au repos.
Donc, vous stockez normalement la clé appartenant à la racine. Avoir une racine montez l'emplacement sécurisé et laissez l'accès à l'utilisateur postgres
. De toute évidence, PostgreSQL a besoin d'accès aux données et doit savoir comment le déchiffrer.
Maintenant, si d'autres utilisateurs sont sur la machine, ils ne peuvent pas accéder aux données à moins qu'ils ne sont-ils postgres
utilisateur. De plus, ils ne peuvent pas accéder à la clé. Et s'ils réussissent à compromettre les données ou même voler la sauvegarde cryptée physique, elles ne peuvent pas y accéder sans la clé.