MySQLలో ఎన్‌క్రిప్షన్: మాస్టర్ కీ రొటేషన్

కోర్సు కోసం కొత్త నమోదు ప్రారంభానికి ఎదురుచూస్తూ "డేటాబేస్" మేము MySQLలో ఎన్‌క్రిప్షన్ గురించి వరుస కథనాలను ప్రచురించడం కొనసాగిస్తాము.

ఈ సిరీస్‌లోని మునుపటి వ్యాసంలో, మేము చర్చించాము మాస్టర్ కీ ఎన్‌క్రిప్షన్ ఎలా పని చేస్తుంది. ఈ రోజు, ముందుగా పొందిన జ్ఞానం ఆధారంగా, ప్రధాన కీల భ్రమణాన్ని చూద్దాం.

మాస్టర్ కీ రొటేషన్‌లో కొత్త మాస్టర్ కీని రూపొందించడం మరియు ఈ కొత్త కీతో టేబుల్‌స్పేస్ కీలను (టేబుల్‌స్పేస్ హెడర్‌లలో నిల్వ చేయబడినవి) మళ్లీ గుప్తీకరించడం జరుగుతుంది.

ఎన్‌క్రిప్టెడ్ టేబుల్‌స్పేస్ హెడర్ ఎలా ఉంటుందో గుర్తుచేసుకుందాం:

MySQLలో ఎన్‌క్రిప్షన్: మాస్టర్ కీ రొటేషన్

మునుపటి కథనం నుండి, సర్వర్ స్టార్టప్‌లో అన్ని ఎన్‌క్రిప్టెడ్ టేబుల్‌స్పేస్‌ల హెడర్‌లను చదువుతుందని మరియు అతిపెద్ద KEY IDని గుర్తుంచుకోవాలని మాకు తెలుసు. ఉదాహరణకు మనకు KEYతో మూడు టేబుల్స్ ఉంటేID = 3 మరియు KEYతో ఒక టేబుల్ID = 4, ఆపై గరిష్ట కీ ID 4 అవుతుంది. ఈ KEY ID - MAX KEY ID అని పిలుద్దాం.

మాస్టర్ కీ రొటేషన్ ఎలా పనిచేస్తుంది

1. వినియోగదారు ALTER INNODB మాస్టర్ కీని అమలు చేస్తారు.

2. సర్వర్ UUID మరియు KEYతో కొత్త మాస్టర్ కీని రూపొందించడానికి కీరింగ్‌ను సర్వర్ అభ్యర్థిస్తుందిID ఒకటి ప్లస్ MAXకి సమానంKEYID. కాబట్టి మేము INNODBకి సమానమైన మాస్టర్ కీ ఐడిని పొందుతాముకీ-UUID-(గరిష్టంగాKEYID + 1). మాస్టర్ కీని విజయవంతంగా రూపొందించిన తర్వాత, MAX KEY ID ఒకటి (అంటే MAX) పెంచబడుతుందిKEYID=MAXKEYID + 1).

3. సర్వర్ మాస్టర్ కీతో ఎన్‌క్రిప్ట్ చేయబడిన అన్ని టేబుల్‌స్పేస్‌లను స్కాన్ చేస్తుంది మరియు ప్రతి టేబుల్‌స్పేస్ కోసం:

  • కొత్త మాస్టర్ కీతో టేబుల్‌స్పేస్ కీని గుప్తీకరిస్తుంది;

  • కీ ఐడిని కొత్త MAXకి అప్‌డేట్ చేస్తుందిKEYID;

  • UUID సర్వర్ UUID నుండి భిన్నంగా ఉంటే, సర్వర్ UUIDని నవీకరించండి.

మనకు తెలిసినట్లుగా, టేబుల్‌ను డీక్రిప్ట్ చేయడానికి ఉపయోగించే మాస్టర్ కీ IDలో UUID మరియు టేబుల్‌స్పేస్ హెడర్ నుండి రీడ్ చేయబడిన KEY ID ఉంటాయి. మేము ఇప్పుడు చేస్తున్నది టేబుల్‌స్పేస్ ఎన్‌క్రిప్షన్ హెడర్‌లో ఈ సమాచారాన్ని అప్‌డేట్ చేయడం ద్వారా సర్వర్ సరైన మాస్టర్ కీని అందుకుంటుంది.

మేము వేర్వేరు స్థానాల నుండి వివిధ బ్యాకప్‌ల వంటి టేబుల్‌స్పేస్‌లను కలిగి ఉన్నట్లయితే, వారు వేర్వేరు మాస్టర్ కీలను ఉపయోగించవచ్చు. సర్వర్ ప్రారంభించబడినప్పుడు ఈ మాస్టర్ కీలన్నీ రిపోజిటరీ నుండి తిరిగి పొందవలసి ఉంటుంది. ఇది సర్వర్ స్టార్టప్‌ను నెమ్మదిస్తుంది, ప్రత్యేకించి సర్వర్ సైడ్ కీ స్టోర్ ఉపయోగించబడితే. మాస్టర్ కీ రొటేషన్‌తో, మేము అన్ని టేబుల్‌స్పేస్‌లకు ఒకే మాస్టర్ కీతో టేబుల్‌స్పేస్ కీలను మళ్లీ ఎన్‌క్రిప్ట్ చేస్తాము. సర్వర్ ఇప్పుడు స్టార్టప్‌లో ఒక మాస్టర్ కీని మాత్రమే అందుకోవాలి.

ఇది, వాస్తవానికి, కేవలం ఒక ఆహ్లాదకరమైన దుష్ప్రభావం. మాస్టర్ కీ రొటేషన్ యొక్క ముఖ్య ఉద్దేశ్యం మా సర్వర్‌ను మరింత సురక్షితంగా చేయడం. వాల్ట్ నుండి మాస్టర్ కీ ఏదో ఒకవిధంగా దొంగిలించబడిన సందర్భంలో (ఉదాహరణకు, వాల్ట్ సర్వర్ నుండి), దొంగిలించబడిన కీని చెల్లుబాటు చేయకుండా కొత్త మాస్టర్ కీని రూపొందించడం మరియు టేబుల్‌స్పేస్ కీలను మళ్లీ గుప్తీకరించడం సాధ్యమవుతుంది. మేము సురక్షితంగా ఉన్నాము...దాదాపు.

మునుపటి కథనంలో, టేబుల్‌స్పేస్ కీ దొంగిలించబడిన తర్వాత, మూడవ పక్షం డేటాను డీక్రిప్ట్ చేయడానికి ఎలా ఉపయోగించవచ్చనే దాని గురించి నేను మాట్లాడాను. మా డిస్క్‌కి యాక్సెస్ ఉందని అందించబడింది. మాస్టర్ కీ దొంగిలించబడినట్లయితే మరియు మీరు గుప్తీకరించిన డేటాకు ప్రాప్యత కలిగి ఉంటే, మీరు టేబుల్‌స్పేస్ కీని డీక్రిప్ట్ చేయడానికి మరియు డీక్రిప్ట్ చేయబడిన డేటాను పొందడానికి దొంగిలించబడిన మాస్టర్ కీని ఉపయోగించవచ్చు. మీరు గమనిస్తే, మాస్టర్ కీ యొక్క భ్రమణం ఈ సందర్భంలో సహాయం చేయదు. మేము కొత్త మాస్టర్ కీతో టేబుల్‌స్పేస్ కీని మళ్లీ గుప్తీకరిస్తాము, అయితే డేటాను గుప్తీకరించడానికి/డీక్రిప్ట్ చేయడానికి ఉపయోగించే అసలు కీ అలాగే ఉంటుంది. అందువల్ల, "హ్యాకర్" డేటాను డీక్రిప్ట్ చేయడానికి దాన్ని ఉపయోగించడం కొనసాగించవచ్చు. అంతకుముందే నేను సూచించాను MySQL కోసం పెర్కోనా సర్వర్ సాధారణ టేబుల్‌స్పేస్ కీ రీ-ఎన్‌క్రిప్షన్ మాత్రమే కాకుండా నిజమైన టేబుల్‌స్పేస్ రీ-ఎన్‌క్రిప్షన్‌ను నిర్వహించగలదు. ఈ ఫీచర్‌ని ఎన్‌క్రిప్షన్ థ్రెడ్‌లు అంటారు. అయినప్పటికీ, ఈ కార్యాచరణ ప్రస్తుతం ప్రయోగాత్మకంగా ఉంది.

మాస్టర్ కీ దొంగిలించబడినప్పుడు మాస్టర్ కీ రొటేషన్ ఉపయోగకరంగా ఉంటుంది, కానీ దాడి చేసే వ్యక్తి దానిని ఉపయోగించడానికి మరియు టేబుల్‌స్పేస్ కీలను డీక్రిప్ట్ చేయడానికి మార్గం లేదు.

ఉచిత డెమో పాఠం కోసం సైన్ అప్ చేయండి.

ఇంకా చదవండి:

మూలం: www.habr.com