Szyfrowanie w spoczynku w Mariadb

Szyfrowanie w spoczynku w Mariadb
Szyfrowanie-AT-Rest uniemożliwia atakującemu dostęp do zaszyfrowanych danych przechowywanych na dysku, nawet jeśli ma dostęp do systemu. Bazy danych typu open source MySQL i MariaDB obsługują teraz funkcję szyfrowania, która spełnia wymagania nowych przepisów dotyczących ochrony danych UE. Szyfrowanie MySQL w spoczynku różni się nieco od MariaDB, ponieważ MySQL zapewnia tylko szyfrowanie tabel Innodb. Podczas gdy Mariadb zapewnia również opcję szyfrowania plików, takich jak dzienniki ponowne, wolne dzienniki, dzienniki audytu, dzienniki błędów itp. Jednak oba nie mogą zaszyfrować danych na pamięci RAM i chronić je przed złośliwym korzeniem.

W tym artykule nauczymy się konfigurować szyfrowanie na poziomie bazy danych dla MariaDB.

Rozpoczęcie pracy

Dane przy szyfrowaniu REST wymagają wtyczki szyfrowania wraz z zarządzaniem kluczami. Wtyczka szyfrowania jest odpowiedzialna za zarządzanie kluczem szyfrowania, a także szyfrowanie/odszyfrowanie danych.

MARIADB zapewnia trzy rozwiązania zarządzania kluczem szyfrowania, więc sposób, w jaki bazy danych zarządzają klawiszem szyfrowania, zależy od używanego rozwiązania. W tym samouczku zademonstruje szyfrowanie na poziomie bazy danych za pomocą rozwiązania do zarządzania kluczem plików MarIADB. Jednak ta wtyczka nie zapewnia funkcji rotacji kluczowej.

Jeśli używasz serwera lampy, pliki do dodania tej wtyczki znajdują się w „/Opt/lampa” informator. Jeśli nie, zmiany są wprowadzane w „/Etc/mysql/conf.D" teczka.

Tworzenie kluczy szyfrowania

Przed szyfrowaniem bazy danych za pomocą wtyczki zarządzania kluczem plików musimy utworzyć pliki zawierające klawisze szyfrowania. Utworzymy plik z dwoma informacjami. To jest klucz szyfrowania w formacie kodowanym sześciokątnym wraz z 32-bitowym identyfikatorem.

Utworzymy nowy folder "Klucze" w „/Etc/mysql/” katalog i użyj narzędzia OpenSSL, aby losowe generowanie 3 sześciokątnych ciągów i przekierowania danych wyjściowych do nowego pliku w Klucze teczka. Wpisz następujące polecenia:

Ubuntu@ubuntu: ~ $ sudo mkdir/etc/mysql/klawisze
Ubuntu@ubuntu: ~ $ echo -n "1;" $ openssl rand hex 32>/etc/mysql/keys/enk_keys "
Ubuntu@ubuntu: ~ $ echo -n "2;" $ openssl rand hex 32>/etc/mysql/keys/enk_keys "
Ubuntu@ubuntu: ~ $ echo -n "3;" $ openssl rand hex 32>/etc/mysql/klawisz/enk_keys "

Gdzie 1,2,3 są kluczowymi identyfikatorami; Uwzględniamy je, aby utworzyć odniesienie do klawiszy szyfrowania za pomocą zmiennej innodb_default_encryption_key_id w mariadb. Plik wyjściowy będzie wyglądał tak:

1; 01495BA35E1C9602E14E40BD6DE41BB8
2; 3CFFA4A5D288E90108394DBF639664F8
3; 9953297ED1A58AE837486318840F5F1D

Szyfrowanie plików kluczy

Możemy łatwo ustawić zmienną systemową plik_key_management_fileName z odpowiednią ścieżką wewnątrz wtyczki zarządzania klawiszem pliku. Ale nie jest bezpieczne pozostawienie kluczy w zwykłym tekście. Możemy w pewnym stopniu zmniejszyć ryzyko, przypisując uprawnienia do plików, ale to nie wystarczy.

Teraz zaszyfrowamy wcześniej utworzone klawisze za pomocą losowo wygenerowanego hasła. Natomiast wielkość klucza może wahać się od 128/192/256 bitów.

Ubuntu@ubuntu: ~ $ openssl rand -hex 192>/etc/mysql/keys/enpaswd.klucz

Stąd użyjemy OpenSsl enc polecenie w terminalu do szyfrowania Enk_key.tekst plik do Enk_key.enc, Korzystanie z klucza szyfrowania utworzonego powyżej. Poza tym Mariadb obsługuje tylko tryb AE CBC w celu szyfrowania swoich kluczy szyfrowania.

Ubuntu@ubuntu: ~ $ openssl enc -aes -256 -cbc -md sha1 -pass plik:/etc/mysql/keys/enpaswd.klucz -in/etc/mysql/klawisze/enkey.txt -out/etc/mysql/klawisz/enkey.enc && sudo rm/etc/mysql/keys/enkey.tekst

Usuwamy również nasze enk_keys.tekst Plik, ponieważ nie jest już wymagany. Poza tym zawsze możemy odszyfrować nasze dane w MariaDB, o ile nasz plik hasła jest bezpieczny.

Konfigurowanie wtyczki zarządzania kluczem plików

Teraz skonfigurujemy Mariadb z wtyczką zarządzania klawiszem plików, dodając następujące zmienne w pliku konfiguracyjnym. Pliki konfiguracyjne są zwykle znajdujące się w „/etc/mysql” i przeczytaj wszystkie .Domyślnie pliki CNF. Lub możesz utworzyć nowy plik konfiguracyjny „Mariadb_enc.CNF ” pod '/etc/mysql/conf.D/ informator.

Teraz Twój plik konfiguracyjny może wyglądać zupełnie inaczej niż to. Dodaj jednak te zmienne szyfrowania pod [SQLD]. Jeśli klucz jest zaszyfrowany, wtyczka wymaga dwóch zmiennych systemowych do skonfigurowania, i.mi., file_key_management_fileName i File_Key_Manmanagement_FileKey.

[sqld]
#Wtyczka zarządzania kluczem pliku
plugin_load_add = file_key_management
file_key_management = na file_key_management_encryption_algorithm = aes_cbc file_key_management_filename =/etc/mysql/keys/enk_keys.enc
file_key_management_fileKey =/etc/mysql/keys/enpaswd.klucz
# Innodb/Xtradb Szyfrowanie
innodb_default_encryption_key_id = 1
innodb_encrypt_tables = on
innodb_encrypt_log = on
innodb_encryption_threads = 4
# Konfiguracja szyfrowania aria
aria_incrypt_tables = on
# Szyfrowanie temp i dziennika
Szypt-TMP-Disk-table = 1
Encrypt-TMP-Files = 1
encrypt_binlog = on

Możesz znaleźć szczegóły dla każdej zmiennej systemowej z oficjalnej strony internetowej Mariadb.

Zabezpieczenie pliku hasła

Zmienimy nasze uprawnienia do katalogu MySQL, aby zabezpieczyć hasło i inne wrażliwe pliki. Własność MariaDB zostanie zmieniona na bieżącego użytkownika, czyli na Ubuntu Mysql.

sudo chown -r mysql: root/etc/mysql/klawisze
sudo chmod 500/etc/mysql/klawisze/

Teraz zmienimy hasło i zaszyfrowane uprawnienia plików na

sudo chown mysql: root/etc/mysql/keys/enc_paswd.klucz/etc/mysql/klawisz/enkey.enc
sudo chmod 600/etc/mysql/keys/enc_paswd.klucz/etc/mysql/klawisz/enkey.enc

Teraz uruchom ponownie usługę bazy danych.

Sudo Service Mysql restart

Wniosek

W tym artykule dowiedział się, w jaki sposób szyfrowanie na poziomie bazy danych jest potrzebne godzinę i jak możemy skonfigurować szyfrowanie-resta w MariaDB. Jedyną wadą wtyczki zarządzania kluczem pliku jest to, że nie obsługuje rotacji klucza. Jednak oprócz tej wtyczki, wiele innych rozwiązań szyfrowania zarządzania kluczami,.mi., Wtyczka zarządzania kluczem AWS i wtyczka zarządzania kluczem EPERI. Więcej informacji na temat tych wtyczek z oficjalnej strony internetowej Mariadb można znaleźć.