Énkripsi dina MySQL: Rotasi Kunci Master

Dina antisipasi mimiti enrollment anyar pikeun kursus "Database" kami terus nyebarkeun runtuyan artikel ngeunaan enkripsi dina MySQL.

Dina artikel saméméhna dina séri ieu, urang bahas kumaha enkripsi master konci jalan. Kiwari, dumasar kana pangaweruh anu diala baheula, hayu urang tingali rotasi konci utama.

Rotasi konci master ngalibatkeun ngahasilkeun konci master anyar sareng énkripsi ulang kenop tablespace (anu disimpen dina header tablespace) nganggo konci anyar ieu.

Hayu urang ngelingan naon lulugu hiji tablespace énkripsi kasampak kawas:

Énkripsi dina MySQL: Rotasi Kunci Master

Tina tulisan sateuacana, urang terang yén server maca lulugu sadaya rohangan méja énkripsi nalika ngamimitian sareng émut ID KUNCI panggedéna. Contona lamun urang boga tilu tabel kalawan KEYID = 3 sareng hiji méja kalayan KEYID = 4, mangka ID konci maksimum bakal 4. Hayu urang nelepon ID konci ieu - ID konci MAX.

Kumaha rotasi konci master jalan

1. Pamaké ngalaksanakeun ALTER INNODB MASTER KEY.

2. server requests keyring pikeun ngahasilkeun konci master anyar jeung UUID server na konciID sarua jeung hiji tambah MAXkonciID. Janten urang kéngingkeun master key id sami sareng INNODBKUNCI-UUID-(MAXkonciID + 1). Nalika suksés ngahasilkeun konci master, MAX KEY ID dironjatkeun ku hiji (nyaéta MAX.konciID=MAXkonciID + 1).

3. Server nyeken sadaya tablespaces énkripsi jeung master key, jeung unggal tablespace:

  • encrypts konci tablespace jeung konci master anyar;

  • ngamutahirkeun id konci ka MAX anyarkonciID;

  • lamun UUID béda ti server UUID, teras ngapdet server UUID.

Sakumaha urang terang, Master Key ID anu dianggo pikeun ngadekrip méja diwangun ku UUID sareng ID KUNCI anu dibaca tina header tablespace. Anu kami lakukeun ayeuna nyaéta ngamutahirkeun inpormasi ieu dina header énkripsi tablespace supados server nampi konci master anu leres.

Upami urang ngagaduhan ruang méja ti lokasi anu béda, sapertos cadangan anu béda, maka aranjeunna tiasa nganggo konci master anu béda. Sadaya konci master ieu kedah dicandak tina gudang nalika server dimimitian. Ieu tiasa ngalambatkeun ngamimitian server, khususna upami toko konci sisi server dianggo. Kalayan rotasi master key, kami énkripsi ulang konci tablespace ku master key tunggal anu sami pikeun sadaya tablespaces. Pangladén ayeuna kedah nampi ngan ukur hiji konci master nalika ngamimitian.

Ieu, tangtosna, ngan éfék samping pikaresepeun. Tujuan utama rotasi konci master nyaéta pikeun ngajantenkeun server kami langkung aman. Upami konci master kumaha waé dipaling tina kolong (contona, tina Server Kolong), mungkin waé pikeun ngahasilkeun konci master énggal sareng énkripsi ulang konci tablespace, ngabatalkeun konci anu dipaling. Kami aman ... ampir.

Dina artikel saméméhna, kuring ngobrol ngeunaan kumaha sakali konci tablespace dipaling, pihak katilu bisa make eta pikeun ngadekrip data. Disadiakeun yén aya aksés ka disk urang. Upami konci master dipaling sareng anjeun gaduh aksés kana data énkripsi, anjeun tiasa nganggo konci master anu dipaling pikeun ngadekrip konci tabel ruang sareng kéngingkeun data anu didekripsi. Sakumaha anjeun tiasa tingali, rotasi konci master henteu ngabantosan dina hal ieu. Urang enkripsi ulang konci tablespace jeung konci master anyar, tapi konci sabenerna dipaké pikeun encrypt / ngadekrip data tetep sarua. Ku alatan éta, "hacker" bisa neruskeun migunakeun eta pikeun ngadekrip data. Tadi kuring ngintip kitu Percona Server pikeun MySQL tiasa ngalakukeun enkripsi ulang tablespace leres, teu ngan basajan tablespace konci ulang enkripsi. Fitur ieu disebut benang enkripsi. Nanging, fungsionalitas ieu masih ékspérimén ayeuna.

Rotasi konci master mangpaat nalika konci master dipaling, tapi teu aya deui jalan pikeun panyerang ngagunakeunana sareng ngadekrip konci tablespace.

Ngadaptarkeun palajaran demo gratis.

Maca deui:

sumber: www.habr.com