2016-05-29 4 views
3

This article bietet eine ausführliche Diskussion zum Thema Verschlüsselung von MariaDB-Datenbanktabellen. Eine weitere hervorragende Ressource ist this one. Die einzige Sache, die sie nicht erwähnen, ist, wo die Verschlüsselungskonfiguration auf Tabellenebene definiert wird. Habe ich recht, wenn ich annehme, dass dies durchMariaDB/MySQL Tabellenverschlüsselung

  • getan werden sollte Setzen der relevanten Direktiven, z.B. plugin-load-add=file_key_management_plugin.so im /etc/mysql/my.cnf System
  • die Verschlüsselungsschlüssel zu schaffen
  • den MariaDB Server neu zu starten und schließlich
  • ein ALTER TABLE ENCRYPTED=YES ENCRYPTION_KEY_ID=NN; auf jedem der Tabelle Ausgabe zu verschlüsselte

Selbst, wenn diese es richtig ist ist Frage, die mir hier in den Sinn kommt - wie würde eine solche Verschlüsselung kompromittierte Daten schützen, wenn der Angreifer gleichzeitig Zugriff auf die verschlüsselte Schlüsseldatei erhält? Wäre es eine mögliche Lösung, die verschlüsselten Schlüssel in einem freigegebenen NFS-Ordner zu speichern, der so konfiguriert ist, dass er nur von einer angegebenen IP-Adresse aus erreichbar ist?

Antwort

5

This article sollte die meisten Ihrer Fragen bezüglich der Einrichtung in MariaDB beantworten. Die Antwort zum Konfigurieren der Verschlüsselung lautet im Wesentlichen "Sie haben es richtig gemacht", aber Sie sollten auch die Protokolldateien verschlüsseln (der Artikel beschreibt, wie).

Bei Verwendung eines NFS-Volumes mit eingeschränktem Zugriff sollte ein guter Schutz geboten werden, wenn der Server physisch entfernt wird, um die Daten zu stehlen, aber für den Fall, dass jemand während des Betriebs Zugriff auf das System erhält. es scheint wie eine weniger feste Lösung. Mit Zugriff auf den Server ist das fragliche NFS-Volume und die fragliche Datei wahrscheinlich leicht verfügbar. Verwenden Sie eine TPM (wenn Ihre Hardware es erlaubt), um die Schlüssel zu speichern, könnte eine bessere Lösung sein - es wurde entwickelt, um Probleme dieser Art zu lösen.

Ist es eine Option, den Verschlüsselungsschlüssel mit einem Benutzer zu verknüpfen, der sich anmeldet? Erwägen Sie die Verwendung einer zweiten Datenbank (oder eines Servers) für die Benutzerauthentifizierung und verschlüsseln Sie den Verschlüsselungsschlüssel mit dem Benutzerkennwort und speichern Sie ihn dort. Bei einer erfolgreichen Anmeldung - wenn das korrekte Passwort angegeben wird - können Sie den Verschlüsselungsschlüssel entschlüsseln und dann die erste (verschlüsselte) Datenbank entsperren. Dies speichert die Verschlüsselungsschlüssel "in den Köpfen der Nutzer" und ist wahrscheinlich die sicherste Option, die Sie haben.

+0

Vielen Dank! Die Idee, den Verschlüsselungsschlüssel im "Kopf des Benutzers" zu speichern, ist ordentlich! – DroidOS

+1

nur aufpassen: Benutzer können und werden ihre Passwörter vergessen ... – swa66