Šifrēšana MySQL: galvenā atslēga rotācija

Pirms jaunā kursa uzsākšanas „Datu bāzes” turpinām publicēt rakstu sēriju par šifrēšanu MySQL.

Iepriekšējā šīs sērijas rakstā mēs apspriedām, kā darbojas šifrēšana ar galveno atslēgu (Master Key). Šodien, balstoties uz iepriekš iegūtajām zināšanām, apskatīsim galveno atslēgu rotāciju.

Galvenās atslēgas rotācija nozīmē, ka tiek ģenerēta jauna galvenā atslēga, ar kuru atkārtoti šifrē tabulu telpu atslēgas (kas tiek uzglabātas tabulu telpu galvenēs).

Atgādināsim, kā izskatās šifrētas tabulu telpas galvene:

Šifrēšana MySQL: galvenā atslēga rotācija

No iepriekšējā raksta mēs zinām, ka serveris palaišanas laikā lasa visus šifrēto tabulu telpu galvenes un atceras lielāko KEY ID. Piemēram, ja mums ir trīs tabulas ar KEYID = 3 un viena tabula ar KEYID = 4, tad maksimālais atslēgas identifikators būs 4. Nosauksim šo KEY ID par MAX KEY ID.

Kā darbojas galvenās atslēgas rotācija

1. Lietotājs izpilda ALTER INNODB MASTER KEY.

2. Serveris pieprasa atslēgu krātuvē (keyring) ģenerēt jaunu galveno atslēgu ar servera UUID un KEYID, kurš ir palielināts par vienu no MAXKEYID. Tādējādi mēs iegūstam galvenās atslēgas identifikatoru, kas ir INNODBKEY-UUID- (MAXKEYID + 1). Veiksmīgas galvenās atslēgas ģenerēšanas gadījumā MAX KEY ID palielinās par vienu (t.i., MAXKEYID = MAXKEYID + 1).

3. Serveris pārskata visas tabulu telpas, kas ir šifrētas ar galveno atslēgu, un katrai tabulu telpai:

  • šifrē tabulu telpas atslēgu ar jauno galveno atslēgu;

  • atjaunina atslēgas identifikatoru uz jauno MAXKEYID;

  • ja UUID atšķiras no servera UUID, tad atjaunina servera UUID.

Kā mēs zinām, galvenās atslēgas identifikators (Master Key ID), kas tiek izmantots tabulas atšifrēšanai, sastāv no UUID un KEY ID, kas nolasīts no tabulu telpas galvenes. To, ko mēs tagad darām, ir atjaunināt šo informāciju šifrēšanas tabulu telpas galvenē, lai serveris saņemtu pareizo galveno atslēgu.

Ja, ja ir tabulu telpas, kas iegūtas no dažādām vietām, piemēram, no dažādām dublēšanām, tās var izmantot dažādas galvenās atslēgas. Visas šīs galvenās atslēgas būs jāiegūst no krātuves, palaidot serveri. Tas var palēnināt servera palaišanu, īpaši, ja tiek izmantota servera atslēgu krātuve. Ar galvenās atslēgas rotāciju mēs atkārtoti šifrējam tabulu telpu atslēgas ar vienu galveno atslēgu, kas ir tāda pati visām tabulu telpām. Tagad, palaidot serveri, tam jāiegūst tikai viena galvenā atslēga.

Tas, protams, ir tikai patīkams blakus efekts. Galvenais mērķis galveno atslēgu rotācijā ir padarīt mūsu serveri drošāku. Ja galvenā atslēga kādā veidā ir nozagta no krātuves (piemēram, no Vault Server), to var ģenerēt jaunu galveno atslēgu un atkārtoti šifrēt tabulu telpu atslēgas, padarot nozagto atslēgu nederīgu. Mēs esam droši… gandrīz.

Iepriekšējā rakstā es runāju par to, ka pēc tabulu telpas atslēgas zādzības trešā puse to var izmantot, lai atšifrētu datus. Ja vien ir piekļuve mūsu diskam. Ja galvenā atslēga ir nozagta un ir piekļuve šifrētajiem datiem, var izmantot nozagto galveno atslēgu, lai atšifrētu tabulu telpas atslēgu un iegūtu atšifrētos datus. Kā redzam, galvenās atslēgas rotācija šajā gadījumā nepalīdz. Mēs atkārtoti šifrējam tabulu telpas atslēgu ar jauno galveno atslēgu, bet faktiskā atslēga, kas tiek izmantota datu šifrēšanai / atšifrēšanai, paliek nemainīga. Tādējādi "hakeris" var turpināt to izmantot datu atšifrēšanai. Agrāk es ieskicēju, ka Percona Server for MySQL var veikt īsto tabulu telpu atkārtotu šifrēšanu, nevis tikai vienkāršu tabulu telpas atslēgas atkārtotu šifrēšanu. Šī funkcija tiek saukta par šifrēšanas plūsmām (encryption threads). Tomēr šobrīd šī funkcionalitāte vēl ir eksperimentāla.

Galvenās atslēgas rotācija ir noderīga, ja galvenā atslēga ir nozagta, taču uzbrucējam nav iespēju to izmantot un atšifrēt tabulu telpu atslēgas.

Pieteikties bezmaksas demo nodarbībai.

Lasīt vēl:

Avots: habr.com

Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem 🔥 Iegādājieties uzticamu tīmekļa hostingu ar DDoS aizsardzību, VPS VDS serveriem | ProHoster