In anticipazione di l'iniziu di una nova iscrizzione per u corsu
In l'articulu precedente in questa serie, avemu discututu
A rotazione di a chjave maestra implica a generazione di una nova chjave maestra è a criptografia di e chjavi di tablespace (chì sò almacenati in l'intestazione di tablespace) cù questa nova chjave.
Ricurdemu ciò chì l'intestazione di un tablespace cifratu pare:
Da l'articulu precedente, sapemu chì u servitore leghje l'intestazione di tutti i tablespaces criptati à l'iniziu è ricorda l'ID KEY più grande. Per esempiu si avemu trè tavule cù KEYID = 3 è una tavula cù KEYID = 4, allura l'ID chjave massimu serà 4. Chjamemu questu ID CHAVE - ID MAX KEY.
Cumu funziona a rotazione di a chjave maestra
1. L'utilizatore eseguisce ALTER INNODB MASTER KEY.
2. U servitore dumanda u keyring per generà una nova chjave maestra cù u servitore UUID è KEYID uguale à unu più MAXKEYID. Dunque, uttene l'ID di chjave maestra uguale à INNODBKEY-UUID-(MAXKEYID + 1). Dopu a generazione riescita di a chjave maestra, MAX KEY ID hè aumentata di unu (vale à dì MAXKEYID=MAXKEYID + 1).
3. U servitore scansa tutti i tablespaces criptati cù a chjave maestra, è per ogni tablespace:
-
cripta a chjave di tablespace cù a nova chjave maestra;
-
aghjurnà l'ID chjave à u novu MAXKEYID;
-
se l'UUID hè diversu da l'UUID di u servitore, aghjurnà l'UUID di u servitore.
Comu sapemu, l'ID di Chjave Maestra utilizatu per decrypt una tavula hè custituitu da un UUID è un ID KEY lettu da l'intestazione di tablespace. Ciò chì facemu avà hè aghjurnà sta informazione in l'intestazione di criptografia di tablespace per chì u servitore riceve a chjave maestra curretta.
Se avemu tablespaces da diverse lochi, cum'è e diverse copie di salvezza, allora puderanu aduprà diverse chjavi maestri. Tutti questi chjavi maestri duveranu esse recuperati da u repository quandu u servitore hè iniziatu. Questu pò rallentà l'iniziu di u servitore, soprattuttu s'ellu hè utilizatu un magazinu di chjave di u servitore. Cù a rotazione di a chjave maestra, ricifrate e chjavi di tablespace cù una sola chjave maestra chì hè a stessa per tutti i tablespaces. U servitore deve avà riceve solu una chjave maestra à l'iniziu.
Questu, sicuru, hè solu un effettu secundariu piacevule. U scopu principale di a rotazione di a chjave maestra hè di fà u nostru servitore più sicuru. In l'eventu chì a chjave maestra hè stata in qualchì modu arrubbata da a volta (per esempiu, da u Vault Server), hè pussibule generà una nova chjave maestra è ricifrate e chjave di tablespace, invalidendu a chjave arrubbata. Semu salvu... guasi.
In un articulu precedente, aghju parlatu di cumu quandu una chjave di tablespace hè arrubbata, un terzu pò aduprà per decifrare i dati. A condizione chì ci hè accessu à u nostru discu. Se a chjave maestra hè arrubbata è avete accessu à i dati criptati, pudete aduprà a chjave maestra arrubbata per decrypt a chjave di tablespace è uttene e dati decriptati. Comu pudete vede, a rotazione di a chjave maestra ùn aiuta micca in questu casu. Ricifrate a chjave di tablespace cù a nova chjave maestra, ma a chjave attuale utilizata per criptà / decifrate e dati resta a stessa. Dunque, u "pirate" pò cuntinuà à aduprà per decrypt i dati. Prima aghju insinuatu chì
A rotazione di a chjave maestra hè utile quandu a chjave maestra hè arrubbata, ma ùn ci hè micca manera per un attaccu di usà è decifrate e chjavi di tablespace.
Leghjite più:
Source: www.habr.com