MySQL-en enkriptatzea: gako nagusien biraketa

Ikastarorako matrikula berri baten hasieraren esperoan "Datu-basea" MySQL-en enkriptatzeari buruzko artikulu sorta bat argitaratzen jarraitzen dugu.

Multzo honetako aurreko artikuluan eztabaidatu genuen nola funtzionatzen duen gako nagusiak enkriptatzea. Gaur egun, lehen lortutako ezagutzatik abiatuta, ikus ditzagun gako nagusien errotazioa.

Gako nagusien biraketak gako nagusi berri bat sortzea eta taula-espazioko gakoak (taula-espazioen goiburuetan gordetzen direnak) berriro enkriptatzea dakar gako berri honekin.

Gogora dezagun nolakoa den enkriptatutako taula-espazio baten goiburua:

MySQL-en enkriptatzea: gako nagusien biraketa

Aurreko artikuluan, badakigu zerbitzariak abiaraztean enkriptatutako taula-espazio guztien goiburuak irakurtzen dituela eta KEY ID handiena gogoratzen duela. Adibidez KEY duten hiru taula badituguID = 3 eta taula bat GATZArekinID = 4, orduan gehieneko gako IDa 4 izango da. Dei diezaiogun KEY ID honi - MAX KEY ID.

Tekla nagusiaren biraketa nola funtzionatzen duen

1. Erabiltzaileak ALTER INNODB MASTER KEY exekutatzen du.

2. Zerbitzariak giltza-eraztunak zerbitzariaren UUID eta KEY-ekin gako nagusi berri bat sortzeko eskatzen dioID bat gehi MAXKEYID. Beraz, gako nagusiaren IDa INNODB-ren berdina lortuko duguKEY-UUID-(MAXKEYID + 1). Gako nagusia arrakastaz sortzen denean, MAX KEY ID bat handitzen da (hau da, MAXKEYID=GEHKEYID + 1).

3. Zerbitzariak gako nagusiarekin enkriptatutako taula-espazio guztiak aztertzen ditu, eta taula-espazio bakoitzeko:

  • tablespace gakoa gako nagusi berriarekin zifratzen du;

  • MAX berrirako gakoaren IDa eguneratzen duKEYNAN;

  • UUID zerbitzariaren UUID desberdina bada, eguneratu zerbitzariaren UUID.

Dakigunez, taula bat deszifratzeko erabiltzen den gako nagusiaren IDa taula-espazioko goiburutik irakurritako UUID eta KEY ID batek osatzen dute. Orain egiten ari garena informazio hori taula-espazioen enkriptatzeko goiburuan eguneratzen da, zerbitzariak gako nagusi zuzena jaso dezan.

Kokapen ezberdinetako taula-espazioak baditugu, hala nola, babeskopia desberdinak, orduan gako nagusi desberdinak erabil ditzakete. Gako nagusi hauek guztiak biltegitik berreskuratu beharko dira zerbitzaria abiarazten denean. Horrek zerbitzariaren abiaraztea moteldu dezake, batez ere zerbitzariaren gakoen biltegia erabiltzen bada. Gako nagusiaren biraketarekin, taula-espazioko gakoak berriro enkriptatzen ditugu mahai-espazio guztientzat berdina den gako nagusi bakarrarekin. Zerbitzariak gako nagusi bakarra jaso beharko luke abiaraztean.

Hau, noski, bigarren mailako efektu atsegina besterik ez da. Gako nagusiaren errotazioaren helburu nagusia gure zerbitzaria seguruagoa izatea da. Gako nagusia gangatik nolabait lapurtu bazen (adibidez, Vault zerbitzaritik), posible da gako nagusi berri bat sortzea eta mahai-espazioko gakoak berriro enkriptatzea, lapurtutako gakoa baliogabetuz. Seguru gaude... ia.

Aurreko artikulu batean, mahai-espazioko gako bat lapurtzen denean hirugarren batek datuak deszifratzeko erabil dezakeenari buruz hitz egin nuen. Betiere, gure diskorako sarbidea badago. Gako nagusia lapurtzen bazaizu eta enkriptatutako datuetarako sarbidea baduzu, lapurtutako gako nagusia erabil dezakezu tablespace gakoa deszifratzeko eta deszifratutako datuak lortzeko. Ikus dezakezunez, gako nagusiaren biraketak ez du laguntzen kasu honetan. Tablespace gakoa berriro enkriptatzen dugu gako nagusi berriarekin, baina datuak enkriptatzeko/deszifratzeko erabilitako benetako gakoak berdina izaten jarraitzen du. Hori dela eta, "hackerrak" datuak deszifratzeko erabiltzen jarraitu dezake. Lehenago hori iradoki nuen MySQL-rako Percona Server benetako tablespace birzifratzea egin dezake, ez bakarrik tablespace gakoen berriro enkriptatzea. Ezaugarri honi zifratze hariak deitzen zaio. Hala ere, funtzionalitate hau oraindik esperimentala da momentuz.

Gako nagusiaren biraketa erabilgarria da gako nagusia lapurtzen dutenean, baina ez dago erasotzaile batek hura erabiltzeko eta mahai-espazioko gakoak deszifratzeko modurik.

Eman izena doako demo-ikasgai baterako.

Irakurri gehiago:

Iturria: www.habr.com