Enkripsi ing MySQL: Rotasi Kunci Master

Ing nunggu wiwitan enrollment anyar kanggo mesthi "Database" kita terus nerbitake seri artikel babagan enkripsi ing MySQL.

Ing artikel sadurunge ing seri iki, kita rembugan carane enkripsi kunci master dianggo. Dina iki, adhedhasar kawruh sing dipikolehi sadurunge, ayo goleki rotasi tombol utama.

Rotasi tombol master kalebu nggawe kunci master anyar lan enkripsi maneh tombol tablespace (sing disimpen ing header tablespace) nganggo tombol anyar iki.

Ayo elinga kaya apa header saka tablespace sing dienkripsi:

Enkripsi ing MySQL: Rotasi Kunci Master

Saka artikel sadurunge, kita ngerti manawa server maca header kabeh ruang meja sing dienkripsi nalika wiwitan lan ngelingi ID KEY paling gedhe. Contone, yen kita duwe telung tabel karo KEYID = 3 lan siji meja karo KEYID = 4, banjur ID tombol maksimum bakal 4. Ayo kita nelpon ID KEY iki - MAX KEY ID.

Cara kerja rotasi kunci master

1. Pangguna nglakokake ALTER INNODB MASTER KEY.

2. Server njaluk keyring kanggo generate kunci master anyar karo server UUID lan KEYID padha karo siji plus MAXKEYID. Supaya kita entuk id kunci master sing padha karo INNODBKUNCI-UUID-(MAXKEYID + 1). Sawise sukses nggawe kunci master, MAX KEY ID ditambahake siji (yaiku MAXKEYID = MAXKEYID + 1).

3. Server mindai kabeh tablespaces sing dienkripsi nganggo kunci master, lan kanggo saben tablespace:

  • encrypts tombol tablespace karo tombol master anyar;

  • nganyari id kunci menyang MAX anyarKEYID;

  • yen UUID beda karo UUID server, banjur nganyari UUID server.

Kaya sing dingerteni, Master Key ID sing digunakake kanggo dekripsi tabel kalebu UUID lan ID KEY sing diwaca saka header tablespace. Apa sing ditindakake saiki yaiku nganyari informasi iki ing header enkripsi tablespace supaya server nampa kunci master sing bener.

Yen kita duwe tablespaces saka macem-macem lokasi, kayata serep beda, banjur padha bisa nggunakake tombol master beda. Kabeh kunci master iki kudu dijupuk saka gudang nalika server diwiwiti. Iki bisa nyuda wiwitan server, utamane yen toko kunci sisih server digunakake. Kanthi rotasi tombol master, kita ngenkripsi maneh tombol tablespace kanthi kunci master siji sing padha kanggo kabeh tablespace. Server saiki kudu nampa mung siji kunci master nalika wiwitan.

Iki, mesthi, mung efek samping sing nyenengake. Tujuan utama rotasi kunci master yaiku nggawe server kita luwih aman. Ing acara sing tombol master piye wae dicolong saka vault (contone, saka Vault Server), iku bisa kanggo generate tombol master anyar lan re-encrypt tombol tablespace, invalidating tombol dicolong. Kita aman ... meh.

Ing artikel sadurunge, aku ngomong babagan carane tombol tablespace dicolong, pihak katelu bisa nggunakake kanggo decrypt data. Kasedhiya yen ana akses menyang disk kita. Yen kunci master dicolong lan sampeyan duwe akses menyang data sing dienkripsi, sampeyan bisa nggunakake kunci master sing dicolong kanggo dekripsi tombol ruang meja lan entuk data sing didekripsi. Nalika sampeyan bisa ndeleng, rotasi tombol master ora bantuan ing kasus iki. We maneh encrypt tombol tablespace karo tombol master anyar, nanging tombol nyata digunakake kanggo encrypt / decrypt data tetep padha. Mulane, "peretas" bisa terus nggunakake kanggo dekripsi data. SadurungΓ© aku ngisyaratake Server Percona kanggo MySQL bisa nindakake bener tablespace re-enkripsi, ora mung prasaja tablespace tombol re-enkripsi. Fitur iki diarani benang enkripsi. Nanging, fungsi iki isih eksperimen saiki.

Rotasi tombol master migunani nalika kunci master dicolong, nanging ora ana cara kanggo panyerang nggunakake lan dekripsi tombol ruang meja.

Ndaftar kanggo pawulangan demo gratis.

Waca liyane:

Source: www.habr.com