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

Verständnis des CSS-Selektorgewichts (persönlicher Test)

Code kopieren Der Code lautet wie folgt: <styl...

js-Methode zum Löschen eines Felds in einem Objekt

Dieser Artikel stellt hauptsächlich die Implement...

Docker entfernt abnormale Containervorgänge

Dieser Neuling ist auf ein solches Problem gestoß...

Welche Szenarien sind für JS-Pfeilfunktionen nicht geeignet?

Inhaltsverzeichnis Überblick Definieren von Metho...

Tutorial zur Samba-Konfiguration für die Dateifreigabe im Linux-System

Inhaltsverzeichnis Deinstallieren und installiere...

Erfahren Sie mehr über den MySQL-Ausführungsplan

Inhaltsverzeichnis 1. Einführung in den Implement...

Erläuterung der Faktoren, die die Datenbankleistung in MySQL beeinflussen

Eine Geschichte über die Datenbankleistung Währen...

MySql8 WITH RECURSIVE rekursive Abfrage Eltern-Kind-Sammlungsmethode

Hintergrund Wenn Sie eine Funktion entwickeln, di...

Die v-for-Direktive in Vue vervollständigt die Listendarstellung

Inhaltsverzeichnis 1. Listendurchlauf 2. Die Roll...

Eine Zusammenfassung der Fuzzy-Abfrage von MySQL wie

1. Allgemeine Verwendung: (1) Mit % verwenden % s...

JavaScript implementiert Informationen zur Kennwortfeldüberprüfung

In diesem Artikelbeispiel wird der spezifische Ja...