MySQL MariaDB

Kryptering i hvile i MariaDB

Kryptering i hvile i MariaDB
Kryptering i hvile hindrer en angriper i å få tilgang til krypterte data som er lagret på disken, selv om han har tilgang til systemet. Open source-databasene MySQL og MariaDB støtter nå kryptering-i-hvile-funksjonen som oppfyller kravene i ny EU-databeskyttelseslovgivning. MySQL-kryptering i hvile er litt annerledes enn MariaDB, da MySQL bare gir kryptering for InnoDB-tabeller. Mens MariaDB også gir et alternativ til å kryptere filer som omgjøre logger, langsomme logger, revisjonslogger, feillogger osv. Begge kan imidlertid ikke kryptere data på en RAM og beskytte dem mot en ondsinnet rot.

I denne artikkelen vil vi lære å konfigurere kryptering på databasenivå for MariaDB.

Starter

Data i hvilekryptering krever et krypteringsprogram sammen med nøkkeladministrasjonen. Krypteringsprogrammet er ansvarlig for å administrere krypteringsnøkkelen samt kryptere / dekryptere dataene.

MariaDB tilbyr tre krypteringsnøkkeladministrasjonsløsninger, så hvordan databaser administrerer krypteringsnøkkel, avhenger av løsningen du bruker. Denne opplæringen vil demonstrere kryptering på databasenivå ved hjelp av MariaDB File Key Management-løsningen. Dette pluginet gir imidlertid ikke en nøkkelrotasjonsfunksjon.

Hvis du bruker en LAMP-server, ligger filene for å legge til dette pluginet i “/ Opt / lampe” katalog. Hvis ikke, gjøres endringene i “/ Etc / mysql / conf.d ” mappe.

Opprette krypteringsnøkler

Før vi krypterer databasen ved hjelp av plugin for filhåndtering, må vi lage filene som inneholder krypteringsnøkler. Vi oppretter en fil med to opplysninger. Det er en krypteringsnøkkel i et sekskodet format sammen med en 32-bit nøkkelidentifikator.

Vi oppretter en ny mappe “Nøkler” i “/ Etc / mysql /” katalog og bruk OpenSSL-verktøyet for å tilfeldig generere 3 Hex-strenger og omdirigere utdataene til en ny fil i nøklene mappe. Skriv inn følgende kommandoer:

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

Hvor 1,2,3 er nøkkelidentifikatorene; vi inkluderer dem for å lage en referanse til krypteringsnøklene ved hjelp av variabelen innodb_default_encryption_key_id i MariaDB. Utdatafilen vil se slik ut:

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

Nøkkelfilkryptering

Vi kan enkelt angi systemvariabelen file_key_management_filename med riktig sti inne i File Key Management-plugin. Men det er ikke trygt å la tastene ligge i ren tekst. Vi kan redusere risikoen til en viss grad ved å tildele filtillatelser, men det er ikke tilstrekkelig.

Nå vil vi kryptere tidligere opprettede nøkler ved hjelp av et tilfeldig generert passord. I kontrast kan nøkkelstørrelsen variere fra 128/192/256-bits.

[e-postbeskyttet]: ~ $ openssl rand -hex 192> / etc / mysql / keys / enc_paswd.nøkkel

Derfor vil vi bruke openssl enc kommandoen i terminalen for å kryptere enc_key.tekst fil til enc_key.enc, ved hjelp av krypteringsnøkkelen opprettet ovenfor. Dessuten støtter MariaDB bare CBC-modusen til AES for å kryptere krypteringsnøklene.

[e-postbeskyttet]: ~ $ openssl enc -aes-256-cbc -md sha1 -pass fil: / etc / mysql / keys / enc_paswd.nøkkel -in / etc / mysql / keys / enc_key.txt -out / etc / mysql / keys / enc_key.enc && sudo rm / etc / mysql / keys / enc_key.tekst

Vi sletter også vår enc_keys.tekst filen da den ikke lenger er påkrevd. Dessuten kan vi alltid dekryptere dataene våre i MariaDB så lenge passordfilen vår er sikker.

Konfigurerer programtillegg for styring av filnøkkel

Vi vil nå konfigurere MariaDB med File Key Management-plugin ved å legge til følgende variabler i konfigurasjonsfilen. Konfigurasjonsfilene ligger vanligvis i '/ etc / mysql' og les alle .cnf-filer som standard. Eller du kan opprette en ny konfigurasjonsfil “Mariadb_enc.cnf ” under '/ etc / mysql / conf.d / katalog.

Nå kan konfigurasjonsfilen din se helt annerledes ut enn dette. Legg imidlertid til disse krypteringsvariablene under [sqld]. Hvis nøkkelen er kryptert, krever plugin-programmet to systemvariabler for å konfigurere, dvs.e., file_key_management_filename and file_key_management_filekey.

[sqld]
#File Key Management Plugin
plugin_load_add = file_key_management
file_key_management = PÅ 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.nøkkel
# InnoDB / XtraDB Krypteringsoppsett
innodb_default_encryption_key_id = 1
innodb_encrypt_tables = PÅ
innodb_encrypt_log = PÅ
innodb_encryption_threads = 4
# Oppsett av Aria-kryptering
aria_encrypt_tables = PÅ
# Temp & Log Encryption
kryptere-tmp-disk-tabeller = 1
kryptere-tmp-filer = 1
encrypt_binlog = PÅ

Du kan finne detaljer for hver systemvariabel fra det offisielle MariaDB-nettstedet.

Sikre passordfilen

Vi vil endre MySQL-katalogtillatelsene for å sikre passordet og andre sensitive filer. Eierskapet til MariaDB vil bli endret til den nåværende brukeren, som på Ubuntu er mysql.

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

Nå vil vi endre passord og krypterte filtillatelser til

sudo chown mysql: root / etc / mysql / keys / enc_paswd.nøkkel / etc / mysql / keys / enc_key.enc
sudo chmod 600 / etc / mysql / keys / enc_paswd.nøkkel / etc / mysql / keys / enc_key.enc

Start nå databasetjenesten på nytt.

sudo service mysql start på nytt

Konklusjon

Denne artikkelen har lært hvordan kryptering på databasenivå er timens behov og hvordan vi kan konfigurere kryptering i hvile i MariaDB. Den eneste ulempen med plugin for File Key Management er at den ikke støtter nøkkelrotasjon. Imidlertid, bortsett fra dette pluginet, er det mange andre krypteringsløsninger for nøkkeladministrasjon, jeg.e., AWS Key Management Plugin og Eperi Key Management Plugin. Du finner mer informasjon om disse pluginene fra MariaDBs offisielle nettside.

Installer nyeste Dolphin Emulator for Gamecube & Wii på Linux
Dolphin Emulator lar deg spille de valgte Gamecube- og Wii-spillene dine på Linux Personal Computers (PC). Som en fritt tilgjengelig og åpen kildekod...
Hvordan bruke GameConqueror Cheat Engine i Linux
Artikkelen dekker en guide om bruk av GameConqueror-juksemotoren i Linux. Mange brukere som spiller spill på Windows bruker ofte "Cheat Engine" -appli...
Beste spillkonsollemulatorer for Linux
Denne artikkelen vil liste opp populære programvare for spillkonsollemulering tilgjengelig for Linux. Emulation er et programvarekompatibilitetslag so...