U ovom ćemo članku naučiti konfigurirati šifriranje na razini baze podataka za MariaDB.
Početak rada
Šifriranje podataka u mirovanju zahtijeva dodatak za šifriranje zajedno s upravljanjem ključem. Dodatak za šifriranje odgovoran je za upravljanje ključem šifriranja kao i za šifriranje / dešifriranje podataka.
MariaDB nudi tri rješenja za upravljanje ključem šifriranja, pa način na koji baze podataka upravljaju ključem šifriranja ovisi o rješenju koje koristite. Ovaj će vodič pokazati šifriranje na razini baze podataka pomoću rješenja za upravljanje ključem datoteke MariaDB. Međutim, ovaj dodatak ne nudi značajku rotacije tipki.
Ako koristite LAMP poslužitelj, datoteke za dodavanje ovog dodatka nalaze se u “/ Opt / lampica” imenik. Ako nije, tada se promjene vrše u “/ Etc / mysql / conf.d ” mapu.
Stvaranje ključeva za šifriranje
Prije šifriranja baze podataka pomoću dodatka za upravljanje ključem datoteke, moramo stvoriti datoteke koje sadrže ključeve za šifriranje. Stvorit ćemo datoteku s dvije informacije. To je ključ za šifriranje u heksadecimalnom formatu zajedno s 32-bitnim identifikatorom ključa.
Stvorit ćemo novu mapu "Ključevi" u "/ Etc / mysql /" direktorij i koristite uslužni program OpenSSL za nasumično generiranje 3 hex niza i preusmjeravanje rezultata u novu datoteku u tipke mapu. Upišite sljedeće naredbe:
[zaštićena e-poštom]: ~ $ sudo mkdir / etc / mysql / keys[zaštićena e-poštom]: ~ $ echo -n "1;" $ openssl rand hex 32> / etc / mysql / keys / enc_keys "
[zaštićena e-poštom]: ~ $ echo -n "2;" $ openssl rand hex 32> / etc / mysql / keys / enc_keys "
[e-pošta zaštićena]: ~ $ echo -n "3;" $ openssl rand hex 32> / etc / mysql / keys / enc_keys "
Gdje su 1,2,3 ključni identifikatori; uključujemo ih kako bismo stvorili referencu na ključeve šifriranja pomoću varijable innodb_default_encryption_key_id u MariaDB. Izlazna datoteka izgledat će ovako:
1; 01495ba35e1c9602e14e40bd6de41bb82; 3cffa4a5d288e90108394dbf639664f8
3; 9953297ed1a58ae837486318840f5f1d
Šifriranje ključne datoteke
Sistemsku varijablu file_key_management_filename možemo jednostavno postaviti s odgovarajućom stazom unutar dodatka za upravljanje ključem datoteke. Ali nije sigurno ostaviti tipke u običnom tekstu. Dodjeljivanjem dozvola za datoteke možemo donekle smanjiti rizik, ali to nije dovoljno.
Sada ćemo šifrirati prethodno stvorene ključeve pomoću nasumično generirane lozinke. Suprotno tome, veličina tipke može varirati od 128/192/256-bita.
[e-mail zaštićen]: ~ $ openssl rand -hex 192> / etc / mysql / keys / enc_paswd.ključStoga ćemo koristiti openssl enc naredba u terminalu za šifriranje enc_key.txt podnijeti na enc_key.enk, pomoću gore stvorenog ključa za šifriranje. Osim toga, MariaDB podržava CBC način rada AES samo za šifriranje svojih ključeva za šifriranje.
[zaštićena e-poštom]: ~ $ openssl enc -aes-256-cbc -md sha1 -pass datoteka: / etc / mysql / keys / enc_paswd.tipka -in / etc / mysql / keys / enc_key.txt -out / etc / mysql / keys / enc_key.enc && sudo rm / etc / mysql / keys / enc_key.txtTakođer brišemo naše ključevi_enc.txt datoteku jer više nije potrebna. Osim toga, svoje podatke u MariaDB možemo uvijek dešifrirati sve dok je datoteka s lozinkom sigurna.
Konfiguriranje dodatka za upravljanje ključem datoteke
Sada ćemo konfigurirati MariaDB s dodatkom za upravljanje ključem datoteke dodavanjem sljedećih varijabli u konfiguracijsku datoteku. Datoteke za konfiguraciju obično se nalaze u '/ etc / mysql' i pročitajte sve .cnf datoteke prema zadanim postavkama. Ili možete stvoriti novu konfiguracijsku datoteku “Mariadb_enc.cnf " pod, ispod '/ etc / mysql / conf.d / imenik.
Sada vaša konfiguracijska datoteka može izgledati potpuno drugačije od ove. Međutim, dodajte ove varijable šifriranja pod [sqld]. Ako je ključ šifriran, dodatak zahtijeva dvije sistemske varijable za konfiguriranje, tj.e., file_key_management_filename i file_key_management_filekey.
[sqld]#Datoteka za upravljanje ključevima datoteka
plug_load_add = upravljanje_datotekom_key_
file_key_management = UKLJUČENO file_key_management_encryption_algorithm = aes_cbc file_key_management_filename = / etc / mysql / keys / enc_keys.enk
file_key_management_filekey = / etc / mysql / keys / enc_paswd.ključ
# Postavljanje šifriranja InnoDB / XtraDB
innodb_default_encryption_key_id = 1
innodb_encrypt_tables = UKLJUČENO
innodb_encrypt_log = UKLJUČENO
innodb_encryption_threads = 4
# Postavljanje šifriranja Aria
aria_encrypt_tables = UKLJUČENO
# Temp & Log Encryption
encrypt-tmp-disk-tables = 1
encrypt-tmp-files = 1
encrypt_binlog = UKLJUČENO
Pojedinosti o svakoj varijabli sustava možete pronaći na službenim web stranicama MariaDB.
Osiguravanje datoteke lozinke
Promijenit ćemo dopuštenja MySQL direktorija kako bismo zaštitili lozinku i druge osjetljive datoteke. Vlasništvo nad MariaDB bit će promijenjeno u trenutnog korisnika, što je na Ubuntuu mysql.
sudo chown -R mysql: root / etc / mysql / keyssudo chmod 500 / etc / mysql / keys /
Sada ćemo promijeniti lozinku i dozvole za šifriranu datoteku u
sudo chown mysql: root / etc / mysql / keys / enc_paswd.ključ / etc / mysql / keys / enc_key.enksudo chmod 600 / etc / mysql / keys / enc_paswd.ključ / etc / mysql / keys / enc_key.enk
Sada ponovo pokrenite uslugu baze podataka.
sudo usluga mysql ponovno pokretanjeZaključak
Ovaj je članak naučio kako je šifriranje na razini baze podataka potrebno sat vremena i kako možemo konfigurirati enkripciju u mirovanju u MariaDB. Jedini nedostatak dodatka File Key Management je taj što ne podržava rotaciju ključa. Međutim, osim ovog dodatka, mnoga druga rješenja za šifriranje upravljanja ključem, tj.e., Dodatak za upravljanje ključevima AWS i Dodatak za upravljanje ključevima Eperi. Više detalja o ovim dodacima možete pronaći na službenoj web stranici MariaDB.