Šifriranje v MySQL: rotacija glavnega ključa

Uoči početka novog upisa na kurs „Baze podataka“ Nadaljevanje serije člankov o šifriranju v MySQL.

V prejšnjem članku te serije smo obravnavali, kako deluje šifriranje z glavnim ključem (Master Key). Danes, na osnovi prej pridobljenega znanja, bomo pogledali rotacijo glavnih ključev.

Rotacija glavnih ključev pomeni, da se ustvari nov glavni ključ, s katerim se ponovno šifrirajo ključi tabelarnih prostorov (ki so shranjeni v glavi tabelarnih prostorov).

Poglejmo, kako izgleda glava šifriranega tabelarnega prostora:

Šifriranje v MySQL: rotacija glavnega ključa

Iz prejšnjega članka vemo, da strežnik ob zagonu prebere glave vseh šifriranih tabelarnih prostorov in si zapomni največji KEY ID. Na primer, če imamo tri tabele z KEYID = 3 in eno tabelo z KEYID = 4, bo največji identifikator ključa enak 4. Poimenujmo ta KEY ID — MAX KEY ID.

Kako deluje rotacija glavnega ključaa

1. Uporabnik izvede ALTER INNODB MASTER KEY.

2. Strežnik zahteva v shrambo ključev (keyring) generiranje novega glavnega ključaa z UUID strežnika in KEYID, enak povišanemu za enoto MAXKEYID. Tako dobimo identifikator glavnega ključaa, enak INNODBKEY-UUID- (MAXKEYID + 1). Pri uspešni generaciji glavnega ključaa se MAX KEY ID poveča za enico (tj. MAXKEYID = MAXKEYID + 1).

3. Strežnik pregleda vse tabelarne prostore, ki so šifrirani z glavnim ključem, in za vsak tabelarni prostor:

  • šifrira ključ tabelarnega prostora z novim glavnim ključem;

  • posodobi identifikator ključa na nov MAXKEYID;

  • če se UUID razlikuje od UUID strežnika, potem posodobi UUID strežnika.

Kot vemo, identifikator glavnega ključaa (Master Key ID), uporabljen za dešifriranje tabele, sestavlja UUID in KEY ID, prebrana iz glave tabelarnega prostora. To, kar zdaj počnemo, je posodobitev teh informacij v glavi šifriranja tabelarnega prostora, da strežnik dobi pravilen glavni ključ.

Če imamo razdelk prostora, pridobljenih z različnih mest, na primer iz različnih varnostnih kopij, lahko uporabljajo različne glavne ključe. Vse te glavne ključe bo treba pridobiti iz skladišča ob zagonu strežnika. To lahko upočasni zagon strežnika, še posebej, če se uporablja strežniško skladišče ključev. Z ročno rotacijo glavnega ključa ponovno šifriramo ključe razdelkov prostora z enim glavnim ključem, ki je enak za vse razdelke. Zdaj ob zagonu strežnik potrebuje le en glavni ključ.

To je seveda le prijetna stranska korist. Glavni cilj rotacije glavnih ključev je povečati varnost našega strežnika. V primeru, da je bil glavni ključ na kakršen koli način ukraden iz skladišča (na primer iz Vault Server), lahko ustvarimo nov glavni ključ in ponovno šifriramo ključe razdelkov prostora, kar bo ukradeni ključ naredilo neveljaven. Tako smo varni… skoraj.

V prejšnjem članku sem omenil, da lahko tretja oseba po kraji ključa razdelka prostora ta ključ uporabi za dešifriranje podatkov, pod pogojem, da ima dostop do našega diska. V primeru kraje glavnega ključa in dostopa do šifriranih podatkov lahko ukradeni glavni ključ uporabimo za dešifriranje ključa razdelka prostora in pridobitev dešifriranih podatkov. Kot vidimo, rotacija glavnega ključa v tem primeru ne pomaga. Ponovno šifriramo ključ razdelka prostora z novim glavnim ključem, vendar dejanski ključ, uporabljen za šifriranje/dešifriranje podatkov, ostaja enak. Zato lahko 'heker' še naprej uporablja ta ključ za dešifriranje podatkov. Prej sem namignil, da Percona Server za MySQL lahko dejansko izvaja ponovno šifriranje razdelkov prostora in ne le preproste ponovne šifriranje ključa razdelka prostora. Ta funkcija se imenuje šifrirni tokovi (encryption threads). Vendar pa je ta funkcionalnost za zdaj še vedno eksperimentalna.

Rotacija glavnega ključa je koristna, ko je glavni ključ ukraden, vendar nima zlonamerna oseba možnosti za njegovo uporabo in dešifriranje ključev razdelkov prostora.

Prijavite se za brezplačni demo tečaj.

Preberi več:

Izvor: habr.com

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster