Kryptering i MySQL: rotation av Master Key

Inför starten av det nya kursutbudet Databaser Vi fortsÀtter att publicera en serie artiklar om kryptering i MySQL.

I den föregÄende artikeln i denna serie diskuterade vi, hur kryptering fungerar med huvudnyckeln (Master Key). I dag, baserat pÄ tidigare kunskaper, ska vi titta pÄ rotationen av huvudnycklar.

Rotation av huvudnycklar innebÀr att en ny huvudnyckel genereras och att dessa nya nycklar anvÀnds för att kryptera tabellrumnycklarna (som lagras i rubrikerna för tabellrummen).

LÄt oss pÄminna oss om hur rubriken för ett krypterat tabellrum ser ut:

Kryptering i MySQL: rotation av Master Key

FrĂ„n den tidigare artikeln vet vi att servern vid start lĂ€ser rubrikerna för alla krypterade tabellrum och kommer ihĂ„g det största KEY ID. Om vi till exempel har tre tabeller med KEYID = 3 och en tabell med KEYID = 4, dĂ„ kommer det maximala nyckelidentifieraren att vara 4. LĂ„t oss kalla detta KEY ID — MAX KEY ID.

Hur fungerar rotationen av huvudnyckeln

1. AnvÀndaren utför ALTER INNODB MASTER KEY.

2. Servern begÀr nyckelhanteraren att generera en ny huvudnyckel med serverns UUID och KEYID, som Àr MAXKEYID ökat med ett. PÄ sÄ sÀtt fÄr vi identifieraren för huvudnyckeln som Àr INNODBKEY-UUID- (MAXKEYID + 1). Vid en lyckad generation av huvudnyckeln ökar MAX KEY ID med ett (dvs. MAXKEYID = MAXKEYID + 1).

3. Servern granskar alla tabellrum som Àr krypterade med huvudnyckeln och för varje tabellrum:

  • krypterar nyckeln för tabellrummet med den nya huvudnyckeln;

  • uppdaterar nyckelidentifieraren till den nya MAXKEYID;

  • om UUID skiljer sig frĂ„n serverns UUID, uppdaterar den serverns UUID.

Som vi vet bestÄr huvudnyckelidentifieraren (Master Key ID) som anvÀnds för att dekryptera tabeller av UUID och KEY ID, som lÀses frÄn rubriken pÄ tabellrummet. Det vi gör nu Àr att uppdatera denna information i rubriken för krypteringen av tabellrummet, sÄ att servern fÄr rÀtt huvudnyckel.

Om vi har tabellutrymmen som kommer frÄn olika kÀllor, till exempel frÄn olika sÀkerhetskopior, kan de anvÀnda olika huvudnycklar. Alla dessa huvudnycklar mÄste hÀmtas frÄn lagringen vid serverstart. Detta kan försena serverstarten, sÀrskilt om en serverlagring av nycklar anvÀnds. Genom rotation av huvudnyckeln Äterkrypterar vi nycklarna för tabellutrymmen med en huvudnyckel som Àr densamma för alla tabellutrymmen. Nu behöver servern endast hÀmta en huvudnyckel vid start.

Detta Ă€r naturligtvis bara en trevlig biprodukt. Huvudsyftet med rotationen av huvudnycklar Ă€r att göra vĂ„r server mer sĂ€ker. Om huvudnyckeln pĂ„ nĂ„got sĂ€tt har stulits frĂ„n lagringen (till exempel frĂ„n Vault Server), kan en ny huvudnyckel genereras och nycklarna för tabellutrymmen kan Ă„terkrypteras, vilket gör den stulna nyckeln ogiltig. Vi Ă€r sĂ€kra
 nĂ€stan.

I den tidigare artikeln nÀmnde jag att en tredje part kan anvÀnda nyckeln för tabellutrymmet för att dekryptera data, förutsatt att det finns Ätkomst till vÄr disk. I hÀndelse av att huvudnyckeln stjÀls och det finns Ätkomst till de krypterade uppgifterna, kan den stulna huvudnyckeln anvÀndas för att dekryptera nyckeln för tabellutrymmet och fÄ de dekrypterade uppgifterna. Som vi ser hjÀlper inte huvudnyckelsrotation i detta fall. Vi Äterkrypterar nyckeln för tabellutrymmet med den nya huvudnyckeln, men den faktiska nyckeln som anvÀnds för kryptering/dekryptering av data förblir densamma. DÀrför kan en "hackare" fortsatt anvÀnda den för att dekryptera data. Tidigare antydde jag att Percona Server for MySQL det kan utföra riktig Äterkryptering av tabellutrymmen, snarare Àn bara enkel Äterkryptering av nyckeln för tabellutrymmet. Denna funktion kallas krypteringstrÄdar (encryption threads). Men för tillfÀllet Àr denna funktionalitet fortfarande experimentell.

Rotation av huvudnyckeln Àr anvÀndbar nÀr huvudnyckeln har stulits, men angriparen har inte möjlighet att anvÀnda den och dekryptera nycklarna för tabellutrymmena.

AnmÀl dig till en kostnadsfri demo.

LĂ€s mer:

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster