Me para fillimit të një grupi të ri për kursin  vazhdojmë të publikojmë një seri artikujsh mbi enkriptimin në MySQL.
Në artikullin e mëparshëm të kësaj serie ne diskutuam, . Sot, duke u bazuar në njohuritë e marra më parë, do të shikojmë rotacionin e çelësave kryesorë.
Rotacioni i çelësave kryesorë përfshin gjenerimin e një çelësi të ri kryesor dhe riparimin e çelësave të hapësirave të tabelës (të cilat ruhen në titujt e hapësirave të tabelës) me këtë çelës të ri.
Le të kujtojmë se si duket titulli i hapësirës së tabelës së enkriptuar:

Nga artikulli i mĂ«parshĂ«m dimĂ« se serveri gjatĂ« nisjes lexon titujt e tĂ« gjitha hapĂ«sirave tĂ« tabelave tĂ« enkriptuara dhe mban mend ID-nĂ« mĂ« tĂ« madhe tĂ« ĂelĂ«sit. PĂ«r shembull, nĂ«se kemi tri tabela me KEYID = 3 dhe njĂ« tabelĂ« me KEYID = 4, identifikuesi maksimal i çelĂ«sit do tĂ« jetĂ« 4. Le tĂ« quajmĂ« kĂ«tĂ« KEY ID â MAX KEY ID.
Si funksionon rotacioni i çelësit kryesor
1. Përdoruesi kryen ALTER INNODB MASTER KEY.
2. Serveri kërkon në depozitat e çelësave (keyring) gjenerimin e një çelësi të ri kryesor me UUID-un e serverit dhe KEYID, e cila është rritur me një njësi MAXKEYID. Kështu, ne marrim identifikuesin e çelësit kryesor, të barabartë me INNODBKEY-UUID- (MAXKEYID + 1). Me një gjenerim të suksesshëm të çelësit kryesor MAX KEY ID rritet me një njësi (dmth. MAXKEYID = MAXKEYID + 1).
3. Serveri shqyrton të gjitha hapësirat e tabelave, të enkripuara me çelësin kryesor, dhe për çdo hapësirë tabele:
kriptimi i çelësit të hapësirës së tabelës me çelësin e ri kryesor;
përditësimi i identifikuesit të çelësit në MAX-në e reKEYID;
nëse UUID ndryshon nga UUID i serverit, atëherë përditëson UUID-në e serverit.
Siç e dimë, identifikuesi i çelësit kryesor (Master Key ID), i përdorur për të dekriptuar tabelën, përbëhet nga UUID dhe KEY ID, të lexuara nga titulli i hapësirës së tabelës. Ajo që po bëjmë tani, është përditësimi i kësaj informacioni në titullin e enkriptimit të hapësirës së tabelës, në mënyrë që serveri të marrë çelësin e duhur kryesor.
Nëse kemi hapësira tabelash të marra nga vende të ndryshme, për shembull, nga kopje të ndryshme rezervë, ato mund të kenë çelësa kryesorë të ndryshëm. Të gjithë këta çelësa kryesorë do të duhet të merren nga magazina gjatë nisjes së serverit. Kjo mund ta ngadalësojë nisjen e serverit, veçanërisht nëse po përdoret një magazinë çelësi serveri. Me rotacionin e çelësit kryesor, ne rikodifikojmë çelësat e hapësirave të tabelave me një çelës kryesor, të njëjtë për të gjitha hapësirat e tabelave. Tani, gjatë nisjes, serveri duhet të marrë vetëm një çelës kryesor.
Sigurisht, kjo është vetëm një efekt anësor i këndshëm. Qëllimi kryesor i rotacionit të çelësave kryesorë është të bëjë serverin tonë më të sigurt. Në rast se çelësi kryesor është ndonjëherë vjedhur nga magazina (për shembull, nga Vault Server), është e mundur të gjenerohet një çelës kryesor i ri dhe të rikodifikohen çelësat e hapësirave të tabelave, duke e bërë çelësin e vjedhur të pavlefshëm. Ne jemi të sigurt... pothuajse.
Në artikullin e mëparshëm kam folur se pas vjedhjes së çelësit të hapësirës tabelare, një palë e tretë mund ta përdorë atë për të dekoduar të dhënat, nëse ka akses në diskun tonë. Në rastin e vjedhjes së çelësit kryesor dhe nëse ka akses në të dhënat e koduara, mund të përdoret çelësi kryesor i vjedhur për të dekoduar çelësin e hapësirës tabelare dhe për të marrë të dhënat e dekoduara. Siç e shohim, rotacioni i çelësit kryesor në këtë rast nuk ndihmon. Ne rikodifikojmë çelësin e hapësirës tabelare me një çelës kryesor të ri, por çelësi efektiv i përdorur për kodimin/dekodimin e të dhënave mbetet i njëjtë. Prandaj, "hackeri" mund të vazhdojë ta përdorë atë për të dekoduar të dhënat. Më parë kam aluduar se mund të kryejë rikodifikim të vërtetë të hapësirave tabelash, dhe jo vetëm rikodifikimin e thjeshtë të çelësit të hapësirës tabelare. Kjo funksionalitet quhet rrjedha e kodifikimit (encryption threads). Megjithatë, në këtë moment, kjo funksionalitet ende konsiderohet eksperimentale.
Rotacioni i çelësit kryesor është i dobishëm kur çelësi kryesor është vjedhur, por sulmuesi nuk ka mundësi ta përdorë atë për të dekoduar çelësat e hapësirave tabelore.
Lexoni më shumë:
Burimi: habr.com
