Salaus MySQL:ssä: Master Key Rotation

Uuden kurssin ilmoittautumisen alkamista odotellessa "Tietokanta" jatkamme MySQL:n salausta käsittelevien artikkelien julkaisemista.

Tämän sarjan edellisessä artikkelissa keskustelimme miten pääavaimen salaus toimii. Tänään, aiemmin hankitun tiedon perusteella, tarkastellaan pääavainten kiertoa.

Pääavaimen kierto sisältää uuden pääavaimen luomisen ja taulukkotilan avainten uudelleensalauksen (jotka on tallennettu taulukkotilan otsikoihin) tällä uudella avaimella.

Muistetaanpa, miltä salatun taulukkotilan otsikko näyttää:

Salaus MySQL:ssä: Master Key Rotation

Edellisestä artikkelista tiedämme, että palvelin lukee kaikkien salattujen taulukkotilojen otsikot käynnistyksen yhteydessä ja muistaa suurimman KEY ID:n. Esimerkiksi, jos meillä on kolme taulukkoa, joissa on KEYID = 3 ja yksi pöytä avaimellaID = 4, silloin suurin avaimen ID on 4. Kutsutaan tätä KEY ID - MAX KEY ID.

Kuinka pääavaimen kierto toimii

1. Käyttäjä suorittaa ALTER INNODB MASTER KEY.

2. Palvelin pyytää avainrengasta luomaan uuden pääavaimen palvelimen UUID:n ja AVAIN kanssaID yhtä suuri kuin yksi plus MAXKEYID. Joten saamme pääavaimen id:n, joka on yhtä suuri kuin INNODBKEY-UUID-(MAXKEYID + 1). Kun pääavaimen luominen onnistuu, MAX KEY ID:tä kasvatetaan yhdellä (eli MAXKEYID=MAXKEYID + 1).

3. Palvelin tarkistaa kaikki pääavaimella salatut taulukkotilat ja kunkin taulukkotilan:

  • salaa taulukkotilan avaimen uudella pääavaimella;

  • päivittää avaintunnuksen uuteen MAXiinKEYID;

  • jos UUID on eri kuin palvelimen UUID, päivitä palvelimen UUID.

Kuten tiedämme, taulukon salauksen purkamiseen käytetty Master Key ID koostuu UUID:stä ja taulukkotilan otsikosta luetusta KEY ID:stä. Päivitämme nyt nämä tiedot taulukkotilan salausotsikossa, jotta palvelin saa oikean pääavaimen.

Jos meillä on taulukkotiloja eri paikoista, kuten eri varmuuskopioita, ne voivat käyttää erilaisia ​​pääavaimia. Kaikki nämä pääavaimet on haettava arkistosta, kun palvelin käynnistetään. Tämä voi hidastaa palvelimen käynnistystä, varsinkin jos käytetään palvelinpuolen avainsäilöä. Pääavaimen rotaatiolla salaamme taulukkotilan avaimet uudelleen yhdellä pääavaimella, joka on sama kaikille taulukkotiloille. Palvelimen pitäisi nyt vastaanottaa vain yksi pääavain käynnistyksen yhteydessä.

Tämä on tietysti vain miellyttävä sivuvaikutus. Pääavaimen kiertämisen päätarkoitus on tehdä palvelimestamme turvallisempi. Siinä tapauksessa, että pääavain jollakin tavalla varastettiin varastosta (esimerkiksi Holvipalvelimelta), on mahdollista luoda uusi pääavain ja salata taulukkotilan avaimet uudelleen, mikä mitätöi varastetun avaimen. Olemme turvassa...melkein.

Edellisessä artikkelissa puhuin siitä, että kun taulukkotilan avain varastetaan, kolmas osapuoli voi käyttää sitä tietojen salauksen purkamiseen. Edellyttäen, että levyllemme on pääsy. Jos pääavain varastetaan ja sinulla on pääsy salattuihin tietoihin, voit käyttää varastettua pääavainta taulukkotilan avaimen salauksen purkamiseen ja salauksen purkamiseen. Kuten näet, pääavaimen kierto ei auta tässä tapauksessa. Salaamme taulukkotilan avaimen uudelleen uudella pääavaimella, mutta varsinainen tietojen salaamiseen/salauksen purkamiseen käytetty avain pysyy samana. Siksi "hakkeri" voi jatkaa sen käyttöä tietojen salauksen purkamiseen. Aiemmin vihjasin siihen Percona Server MySQL:lle voi suorittaa todellisen taulukkotilan uudelleensalauksen, ei vain yksinkertaista taulukkotilan avaimen uudelleensalausta. Tätä ominaisuutta kutsutaan salaussäikeiksi. Tämä toiminto on kuitenkin vielä kokeiluvaiheessa.

Pääavaimen kierto on hyödyllinen, kun pääavain varastetaan, mutta hyökkääjä ei voi käyttää sitä ja purkaa taulukkotilan avainten salausta.

Ilmoittaudu ilmaiselle esittelytunnille.

Lue lisää:

Lähde: will.com