Je sais que je peux crypter des champs particuliers d'une base de données, mais je suis intéressé à crypter chaque champ de la base de données. Je veux m'assurer que personne qui accède à un shell mysql mais qui n'a pas accès à une clé de déchiffrement ne puisse rien lire de la base de données.
Je veux également m'assurer que si quelqu'un a un accès root à la machine, mais n'a pas de clé de déchiffrement, il ne peut pas lire les données.
Comment dois-je procéder? Est-il sensé de le faire? Je suis inquiet si quelqu'un a accès à la base de données mysql, il aura inévitablement accès à la clé, donc cela n'a aucun sens. Suis-je en train de manquer quelque chose?
mysql
encryption
Snitse
la source
la source
Réponses:
Un cryptage AES et DES minimal au niveau du champ est disponible: https://dev.mysql.com/doc/refman/5.5/en/encryption-functions.html#function_encrypt
Personne ne peut lire les données sans spécifier de clé pour chaque requête (ou sans les ajouter aux déclencheurs / procédures).
exemple:
INSÉRER:
et SELECT:
Cela nécessite également une connexion SSL à la base de données.
Et à un niveau inférieur - vous pouvez également chiffrer le système de fichiers.
la source
MariaDB a récemment ajouté un chiffrement au niveau de la table pour les tables InnoDB et XtraDB. https://mariadb.com/kb/en/mariadb/data-at-rest-encryption/#specifying-what-tables-to-encrypt
MySQL prend également en charge le chiffrement au niveau de la table pour InnoDB. https://dev.mysql.com/doc/refman/5.7/en/innodb-tablespace-encryption.html
la source
Premièrement: vous stockez votre clé avec l'application et gérez tout le cryptage au niveau de la couche application.
Ensuite: vous vous assurez que l'instance MySQL et l'application [serveur] se trouvent sur des machines distinctes afin qu'un compromis racine sur le serveur MySQL ne permette pas à l'attaquant de lire la clé depuis la source de l'application.
Cette approche semble excessive. Gérez correctement les données sensibles (mots de passe, cartes de crédit, etc.), mais tout chiffrer est exagéré. (Et probablement contre-productif dans le monde des clés primaires)
la source