MySQL MariaDB

Criptare în repaus în MariaDB

Criptare în repaus în MariaDB
Criptarea în repaus împiedică un atacator să acceseze datele criptate stocate pe disc chiar dacă are acces la sistem. Bazele de date open-source MySQL și MariaDB acceptă acum funcția de criptare în repaus care îndeplinește cerințele noii legislații UE privind protecția datelor. Criptarea MySQL în repaus este ușor diferită de MariaDB, deoarece MySQL oferă doar criptare pentru tabelele InnoDB. În timp ce MariaDB oferă, de asemenea, o opțiune de criptare a fișierelor, cum ar fi refacerea jurnalelor, jurnalele lente, jurnalele de audit, jurnalele de erori etc. Cu toate acestea, ambele nu pot cripta datele pe o memorie RAM și nu le pot proteja de o rădăcină rău intenționată.

În acest articol, vom învăța să configurăm criptarea la nivel de bază de date pentru MariaDB.

Noțiuni de bază

Criptarea datelor în repaus necesită un plugin de criptare împreună cu gestionarea cheilor. Pluginul de criptare este responsabil pentru gestionarea cheii de criptare, precum și pentru criptarea / decriptarea datelor.

MariaDB oferă trei soluții de gestionare a cheilor de criptare, astfel încât modul în care gestionați bazele de date cheie de criptare depinde de soluția pe care o utilizați. Acest tutorial va demonstra criptarea la nivel de bază de date utilizând soluția MariaDB File Key Management. Cu toate acestea, acest plugin nu oferă o caracteristică de rotație a cheii.

Dacă utilizați un server LAMP, fișierele pentru a adăuga acest plugin se află în „/ Opt / lampă” director. Dacă nu, atunci modificările se fac în „/ Etc / mysql / conf.d ” pliant.

Crearea cheilor de criptare

Înainte de a cripta baza de date folosind pluginul de gestionare a cheilor de fișiere, trebuie să creăm fișierele care conțin chei de criptare. Vom crea un fișier cu două informații. Aceasta este o cheie de criptare într-un format codificat hexagonal împreună cu un identificator de cheie pe 32 de biți.

Vom crea un folder nou „Chei” în „/ Etc / mysql /” director și utilizați utilitarul OpenSSL pentru a genera aleatoriu 3 șiruri Hex și pentru a redirecționa ieșirea către un nou fișier din chei pliant. Tastați următoarele comenzi:

[protejat prin e-mail]: ~ $ sudo mkdir / etc / mysql / keys
[e-mail protejat]: ~ $ echo -n "1;" $ openssl rand hex 32> / etc / mysql / keys / enc_keys "
[e-mail protejat]: ~ $ echo -n "2;" $ openssl rand hex 32> / etc / mysql / keys / enc_keys "
[email protected]: ~ $ echo -n "3;" $ openssl rand hex 32> / etc / mysql / keys / enc_keys "

Unde 1,2,3 sunt identificatorii cheie; le includem pentru a crea o referință la cheile de criptare utilizând variabila innodb_default_encryption_key_id în MariaDB. Fișierul de ieșire va arăta astfel:

1; 01495ba35e1c9602e14e40bd6de41bb8
2; 3cffa4a5d288e90108394dbf639664f8
3; 9953297ed1a58ae837486318840f5f1d

Criptare fișier cheie

Putem seta cu ușurință variabila de sistem file_key_management_filename cu calea corespunzătoare din pluginul File Key Management. Dar nu este sigur să lăsați tastele în text simplu. Putem reduce riscul într-o oarecare măsură prin atribuirea permisiunilor de fișiere, dar acest lucru nu este suficient.

Acum vom cripta cheile create anterior folosind o parolă generată aleatoriu. În schimb, dimensiunea cheii poate varia de la 128/192/256-biți.

[e-mail protejat]: ~ $ openssl rand -hex 192> / etc / mysql / keys / enc_paswd.cheie

Prin urmare, vom folosi openssl enc comanda din terminal pentru a cripta fișierul enc_key.txt trimiteți la enc_key.enc, folosind cheia de criptare creată mai sus. În plus, MariaDB acceptă doar modul CBC al AES pentru a cripta cheile sale de criptare.

[protejat prin e-mail]: ~ $ openssl enc -aes-256-cbc -md sha1 -pass file: / etc / mysql / keys / enc_paswd.cheie -in / etc / mysql / keys / enc_key.txt -out / etc / mysql / keys / enc_key.enc && sudo rm / etc / mysql / keys / enc_key.txt

Ștergem de asemenea enc_keys.txt fișier deoarece nu mai este necesar. În plus, putem oricând să ne decriptăm datele în MariaDB, atâta timp cât fișierul de parolă este sigur.

Configurarea pluginului de gestionare a cheilor de fișiere

Acum vom configura MariaDB cu pluginul File Key Management adăugând următoarele variabile în fișierul de configurare. Fișierele de configurare sunt de obicei localizate în „/ etc / mysql” și citiți toate .fișiere cnf în mod implicit. Sau puteți crea un nou fișier de configurare „Mariadb_enc.cnf ” sub '/ etc / mysql / conf.d / director.

Acum fișierul dvs. de configurare poate arăta complet diferit de acesta. Cu toate acestea, adăugați aceste variabile de criptare în [sqld]. Dacă cheia este criptată, pluginul necesită două variabile de sistem pentru configurare, i.e., file_key_management_filename și file_key_management_filekey.

[sqld]
#File Plugin de gestionare a cheilor
plugin_load_add = file_key_management
file_key_management = ON file_key_management_encryption_algorithm = aes_cbc file_key_management_filename = / etc / mysql / keys / enc_keys.enc
file_key_management_filekey = / etc / mysql / keys / enc_paswd.cheie
# Configurare criptare InnoDB / XtraDB
innodb_default_encryption_key_id = 1
innodb_encrypt_tables = ACTIVAT
innodb_encrypt_log = ACTIVAT
innodb_encryption_threads = 4
# Configurare criptare Aria
aria_encrypt_tables = ON
# Criptare Temp & Log
encrypt-tmp-disk-tables = 1
encrypt-tmp-files = 1
encrypt_binlog = ACTIVAT

Puteți găsi detalii pentru fiecare variabilă de sistem de pe site-ul oficial MariaDB.

Securizarea fișierului cu parolă

Vom modifica permisiunile din directorul MySQL pentru a securiza parola și alte fișiere sensibile. Proprietatea asupra MariaDB va fi schimbată la utilizatorul actual, care este pe Ubuntu mysql.

sudo chown -R mysql: root / etc / mysql / keys
sudo chmod 500 / etc / mysql / keys /

Acum vom schimba parola și permisiunile de fișiere criptate în

sudo chown mysql: root / etc / mysql / keys / enc_paswd.key / etc / mysql / keys / enc_key.enc
sudo chmod 600 / etc / mysql / keys / enc_paswd.key / etc / mysql / keys / enc_key.enc

Acum reporniți serviciul de baze de date.

sudo service mysql restart

Concluzie

Acest articol a aflat cum criptarea la nivel de bază de date este necesitatea orei și cum putem configura criptarea în repaus în MariaDB. Singurul dezavantaj al pluginului File Key Management este că nu acceptă rotirea cheilor. Cu toate acestea, în afară de acest plugin, multe alte soluții de criptare de gestionare a cheilor, i.e., AWS Key Management Plugin și Eperi Key Management Plugin. Puteți găsi mai multe detalii despre aceste pluginuri de pe site-ul oficial al MariaDB.

Mouse left-click button not working on Windows 10
If you are using a dedicated mouse with your laptop, or desktop computer but the mouse left-click button is not working on Windows 10/8/7 for some rea...
Cursor jumps or moves randomly while typing in Windows 10
If you find that your mouse cursor jumps or moves on its own, automatically, randomly while typing in Windows laptop or computer, then some of these s...
How to reverse Mouse and Touchpads scrolling direction in Windows 10
Mouse and Touchpads not only make computing easy but more efficient and less time-consuming. We cannot imagine a life without these devices, but still...