Ich weiß, dass ich bestimmte Felder einer Datenbank verschlüsseln kann, aber ich bin daran interessiert, jedes Feld der Datenbank zu verschlüsseln. Ich möchte sicherstellen, dass niemand, der Zugriff auf eine MySQL-Shell erhält, aber keinen Zugriff auf einen Entschlüsselungsschlüssel hat, überhaupt nichts aus der Datenbank lesen kann.
Ich möchte auch sicherstellen, dass jemand, der Root-Zugriff auf den Computer hatte, aber keinen Entschlüsselungsschlüssel hatte, die Daten nicht lesen konnte.
Wie soll ich das machen? Ist das sinnvoll? Ich mache mir Sorgen, wenn jemand Zugriff auf die MySQL-Datenbank hat, wird er unweigerlich Zugriff auf den Schlüssel haben. Das macht also keinen Sinn. Vermisse ich etwas?
mysql
encryption
Snitse
quelle
quelle
Antworten:
Minimale AES- und DES-Verschlüsselung auf Feldebene ist verfügbar: https://dev.mysql.com/doc/refman/5.5/en/encryption-functions.html#function_encrypt
Niemand kann Daten lesen, ohne für jede Abfrage einen Schlüssel anzugeben (oder sie den Triggern / Prozeduren hinzuzufügen).
Beispiel:
EINFÜGEN:
und SELECT:
Dies erfordert auch eine SSL-Verbindung zur Datenbank.
Und auf einer niedrigeren Ebene können Sie auch das Dateisystem verschlüsseln.
quelle
MariaDB hat kürzlich Verschlüsselung auf Tabellenebene für InnoDB- und XtraDB-Tabellen hinzugefügt. https://mariadb.com/kb/en/mariadb/data-at-rest-encryption/#specifying-what-tables-to-encrypt
MySQL unterstützt auch die Verschlüsselung auf Tabellenebene für InnoDB. https://dev.mysql.com/doc/refman/5.7/de/innodb-tablespace-encryption.html
quelle
Erstens: Sie speichern Ihren Schlüssel bei der Anwendung und übernehmen die gesamte Verschlüsselung auf Anwendungsebene.
Weiter: Sie stellen sicher, dass sich die MySQL-Instanz und die Anwendung [Server] auf separaten Computern befinden, damit der Angreifer bei einem Root-Kompromiss auf dem MySQL-Server den Schlüssel nicht aus der Anwendungsquelle lesen kann.
Dieser Ansatz scheint übertrieben. Behandeln Sie vertrauliche Daten (Passwörter, Kreditkarten usw.) richtig, aber die Verschlüsselung ist übertrieben. (Und wahrscheinlich kontraproduktiv in der Welt der Primärschlüssel)
quelle