MySQL-Lösung zur Verschlüsselung ganzer Tabellen, keyring_file, detaillierte Erläuterung

MySQL-Lösung zur Verschlüsselung ganzer Tabellen, keyring_file, detaillierte Erläuterung

veranschaulichen

MySql Community Edition unterstützt tabellenbasierte Datenverschlüsselungslösungen ab 5.7.11. Das Modul heißt keyring_file und unterstützt die Verschlüsselung der gesamten Tabelle. Diese Verschlüsselungsmethode basiert eigentlich auf Dateiverschlüsselung. Sobald mysqld den Schlüssel liest und startet, entschlüsselt es die Daten der gesamten Tabelle. Im mysql-Dienst werden die gelesenen Daten entschlüsselt, was bedeutet, dass der Client nichts davon weiß. Dieser Schlüssel wird lokal gespeichert und der MySQL-Dienst hat die Berechtigung, diesen Schlüssel zu lesen und zu schreiben.

Generell ist diese Lösung nicht sehr sicher, da die Datenbankdateien zwar verschlüsselt sind, jedoch, sofern ein Account für den MySQL-Dienst besteht, die Zugangsdaten entschlüsselt und die Verschlüsselung automatisch aufgehoben wird. Darüber hinaus wird auch der Entschlüsselungsschlüssel lokal gespeichert, sodass der Eindringling ihn mitnehmen kann. Mit dieser Lösung kann lediglich sichergestellt werden, dass der Eindringling nach dem Wegziehen der Datenbankdatei den Inhalt nicht lesen kann.

Drei Zusatzmodule für MySQL Enterprise Edition

Wenn es sich um die Enterprise-Version von MySQL handelt, stehen drei weitere Verschlüsselungsschemata zur Verfügung.

1.Schlüsselbund_verschlüsselte_Datei

Es ähnelt der zuvor erwähnten Community-Version, verfügt jedoch über einen zusätzlichen Schlüssel. Dieser Schlüssel wird zum Verschlüsseln und Entschlüsseln des Datenbankschlüssels verwendet. In puncto Sicherheit sind sie ziemlich gleich.

2.Schlüsselring_okv

Im Vergleich zur lokalen Speicherung von Schlüsseln verwendet dieses Modul KMIP für den Schlüsselzugriff, was relativ sicherer ist.

3.Schlüsselring_aws

Integrieren Sie den AWS-Schlüsselverwaltungsdienst, um Verschlüsselungs- und Entschlüsselungsschlüssel zu verwalten. Verbessern Sie die Sicherheit des Schlüsselmanagements weiter.

Von den vier Verschlüsselungsmodulen unterstützte Verschlüsselungstypen

Modulname Verfügbare Verschlüsselungsalgorithmen Beschränkungen der Schlüssellänge
Schlüsselring_verschlüsselte_Datei AES
DSA
RSA
Keine Einschränkungen Keine Einschränkungen Keine Einschränkungen
Schlüsselringdatei AES
DSA
RSA
Keine Einschränkungen Keine Einschränkungen Keine Einschränkungen
Schlüsselring_okv AES 16, 24, 32
Schlüsselring_aws AES 16, 24, 32

Zusammenfassend lässt sich sagen, dass es sich bei allen vier Lösungen um Lösungen zur Dateiverschlüsselung und Speicherentschlüsselung handelt. Der Unterschied liegt im Speicherschema für die Verschlüsselung und Entschlüsselung des Schlüssels. Es wird empfohlen, keyring_okv und keyring_aws zu verwenden, die Sicherheit des MySQL-Kontos zu gewährleisten und die Kontoberechtigungen strikt zu unterscheiden.

Die anderen beiden sind weniger sicher.

Implementierungsschritte

OK, jetzt möchte ich kurz auf die einfachste Lösung für die Bereitstellung von keyring_file eingehen. Ich möchte vorab darauf hinweisen, dass Windows diese Lösung anscheinend nicht verwenden kann, da der Verschlüsselungsschlüssel aus irgendeinem Grund nicht immer generiert werden kann.

1. Verwenden Sie die neueste Version von MySQL 5.7.21

Verwenden Sie Tools wie yum apt, um die neueste Version von MySQL zu installieren, oder laden Sie den Quellcode herunter und kompilieren und installieren Sie ihn selbst

sudo apt installiere mysql-5.7

2. Aktivieren Sie das Verschlüsselungsmodul

PLUGIN-Schlüsselringdatei installieren Soname „Schlüsselringdatei.so“;

mysql> PLUGIN-Schlüsselringdatei installieren soname 'Schlüsselringdatei.so';
Abfrage OK, 0 Zeilen betroffen (0,10 Sek.)

3. Legen Sie den Speicherpfad für den Verschlüsselungsschlüssel fest

Setzen Sie globale keyring_file_data='/root/mysql-keyring/keyring';

mysql> globale keyring_file_data='/var/lib/mysql-keyring/keyring' festlegen;
Abfrage OK, 0 Zeilen betroffen (0,00 Sek.)

4. Aktivieren Sie die Einstellung dauerhaft

Die beiden oben genannten Schritte sind temporär und schlagen fehl, wenn der Dienst neu gestartet wird. Wir schreiben die Konfiguration in die Konfigurationsdatei, um sicherzustellen, dass sie nach dem Neustart des Dienstes wirksam wird.

[mysqld]
frühes Plugin-Load = Schlüsselringdatei.so
keyring_file_data=/root/mysql-keyring/Schlüsselring

5. Überprüfen Sie den Schlüsselspeicherpfad

globale Variablen wie „%keyring_file_data%“ anzeigen;

mysql> globale Variablen wie „%keyring_file_data%“ anzeigen;
+---------------------------------+-----------------+
| Variablenname | Wert |
+---------------------------------+-----------------+
| Schlüsselringdateidaten | /var/lib/mysql-keyring/keyring |
+---------------------------------+-----------------+
1 Zeile im Satz (0,00 Sek.)

6. Aktivierte Module anzeigen

Überprüfen Sie, ob das Modul keyring_file geladen wurde.
Plugins anzeigen;

mysql> Plugins anzeigen;
+----------------------------+----------+--------------------+-----------------+---------+
| Name | Status | Typ | Bibliothek | Lizenz |
+----------------------------+----------+--------------------+-----------------+---------+
| binlog | AKTIV | SPEICHER-ENGINE | NULL | GPL |
| mysql_native_password | AKTIV | AUTHENTIFIZIERUNG | NULL | GPL |
| sha256_password | AKTIV | AUTHENTIFIZIERUNG | NULL | GPL |
| PERFORMANCE_SCHEMA | AKTIV | SPEICHER-ENGINE | NULL | GPL |
| CSV | AKTIV | SPEICHER-ENGINE | NULL | GPL |
| MRG_MYISAM | AKTIV | SPEICHER-ENGINE | NULL | GPL |
| MyISAM | AKTIV | SPEICHER-ENGINE | NULL | GPL |
| InnoDB | AKTIV | SPEICHER-ENGINE | NULL | GPL |
| INNODB_TRX | AKTIV | INFORMATIONSSCHEMA | NULL | GPL |
| INNODB_LOCKS | AKTIV | INFORMATIONSSCHEMA | NULL | GPL |
| INNODB_LOCK_WAITS | AKTIV | INFORMATIONSSCHEMA | NULL | GPL |
| INNODB_CMP | AKTIV | INFORMATIONSSCHEMA | NULL | GPL |
| INNODB_CMP_RESET | AKTIV | INFORMATIONSSCHEMA | NULL | GPL |

. . . . . . (N Elemente auslassen)

| Schlüsselringdatei | AKTIV | SCHLÜSSELRING | Schlüsselringdatei.so | GPL |
+----------------------------+----------+--------------------+-----------------+---------+
45 Zeilen im Satz (0,00 Sek.)

7. Vorhandene Tabellen verschlüsseln

Tabelle ändern, Tabellenverschlüsselung = "Y";

mysql> Tabelle cc erstellen (ID int);
Abfrage OK, 0 Zeilen betroffen (0,01 Sek.)

mysql> Tabelle ändern CC-Verschlüsselung = "Y";
Abfrage OK, 0 Zeilen betroffen (0,06 Sek.)
Datensätze: 0 Duplikate: 0 Warnungen: 0

8. Verschlüsselung abbrechen

Tabelle ändern, Tabellenverschlüsselung = "N";

mysql> Tabelle ändern CC-Verschlüsselung = "N";
Abfrage OK, 0 Zeilen betroffen (0,01 Sek.)
Datensätze: 0 Duplikate: 0 Warnungen: 0

Amtliche Dokumentation:

https://dev.mysql.com/doc/refman/5.7/en/keyring-installation.html

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Beispiele für die MySQL-Verschlüsselung und -Entschlüsselung
  • Gemeinsame Nutzung des in Java, JavaScript, Oracle und MySQL implementierten MD5-Verschlüsselungsalgorithmus
  • MD5-Verschlüsselungsanweisung für MySQL und MSSQL
  • Verwenden des XOR-Verschlüsselungsalgorithmus in der PHP MySQL-Anwendung
  • MySQL-Verschlüsselungs-/Komprimierungsfunktionen
  • Detaillierte Erläuterung der Verwendung der MySQL-Zweiwege-Verschlüsselung und -Entschlüsselung

<<:  VMWare15 installiert Mac OS-System (grafisches Tutorial)

>>:  Detaillierte Erläuterung der bidirektionalen Docker-Netzwerkverbindung

Artikel empfehlen

Verwenden von js zum Implementieren eines einfachen Lichtschaltercodes

Körperteil: <button>Licht ein-/ausschalten&...

Tiefes Verständnis der Verwendung von ::before/:before und ::after/:after

Teil 1: Grundlagen 1. Im Gegensatz zu Pseudoklass...

Fallstudie zur Implementierung eines jQuery Ajax-Chatbots

Chatbots können viel manuelle Arbeit sparen und i...

MySQL 8.0.21 Installationstutorial mit Bildern und Text

1. Laden Sie den Download-Link herunter Klicken S...

Eine Minute, um die Laufruhe von HTML+Vue+Element-UI zu erleben

Technik-Fan html-Webseite, müssen Sie wissen Von ...

Hauptfunktionen von MySQL Innodb: Einfügepuffer

Inhaltsverzeichnis Was ist ein Einfügepuffer? Was...

MYSQL METADATA LOCK (MDL LOCK) Theorie und Sperrtyptest

Inhaltsverzeichnis MYSQL METADATA LOCK (MDL LOCK)...

Implementierungsprinzip und Skriptcode der HTML-Rabattpreisberechnung

Code kopieren Der Code lautet wie folgt: <!DOC...