โดยคาดว่าจะเริ่มการลงทะเบียนใหม่สำหรับหลักสูตร
ในบทความก่อนหน้านี้ในชุดนี้ เราได้กล่าวถึง
การหมุนเวียนมาสเตอร์คีย์เกี่ยวข้องกับการสร้างมาสเตอร์คีย์ใหม่และเข้ารหัสคีย์พื้นที่ตารางอีกครั้ง (ซึ่งเก็บไว้ในส่วนหัวของพื้นที่ตาราง) ด้วยคีย์ใหม่นี้
ลองนึกถึงส่วนหัวของพื้นที่ตารางที่เข้ารหัสว่ามีลักษณะอย่างไร:
จากบทความที่แล้ว เราทราบว่าเซิร์ฟเวอร์อ่านส่วนหัวของพื้นที่ตารางที่เข้ารหัสทั้งหมดเมื่อเริ่มต้นระบบ และจดจำรหัสคีย์ที่ใหญ่ที่สุด ตัวอย่างเช่น ถ้าเรามีสามตารางที่มี KEYID = 3 และหนึ่งตารางที่มี KEYID = 4 จากนั้น ID ของคีย์สูงสุดจะเป็น 4 เรียก KEY ID นี้ว่า MAX KEY ID
วิธีการทำงานของการหมุนมาสเตอร์คีย์
1. ผู้ใช้ดำเนินการ ALTER INNODB MASTER KEY
2. เซิร์ฟเวอร์ร้องขอให้พวงกุญแจสร้างมาสเตอร์คีย์ใหม่ด้วยเซิร์ฟเวอร์ UUID และ KEYID เท่ากับหนึ่งบวก MAXKEYรหัส ดังนั้นเราจึงได้รหัสมาสเตอร์คีย์เท่ากับ INNODBKEY-UUID-(สูงสุดKEYรหัส + 1). เมื่อสร้างมาสเตอร์คีย์สำเร็จ MAX KEY ID จะเพิ่มขึ้นทีละหนึ่ง (เช่น MAXKEYID=สูงสุดKEYรหัส + 1).
3. เซิร์ฟเวอร์จะสแกนพื้นที่ตารางทั้งหมดที่เข้ารหัสด้วยมาสเตอร์คีย์ และสำหรับแต่ละพื้นที่ตาราง:
-
เข้ารหัสคีย์ tablespace ด้วยมาสเตอร์คีย์ใหม่
-
อัปเดตรหัสคีย์เป็น MAX ใหม่KEYNS;
-
หาก UUID แตกต่างจาก UUID ของเซิร์ฟเวอร์ ให้อัปเดต UUID ของเซิร์ฟเวอร์
ดังที่เราทราบ รหัสมาสเตอร์คีย์ที่ใช้ในการถอดรหัสตารางประกอบด้วย UUID และรหัสคีย์ที่อ่านจากส่วนหัวของพื้นที่ตาราง สิ่งที่เรากำลังทำอยู่ตอนนี้คือการอัปเดตข้อมูลนี้ในส่วนหัวของการเข้ารหัส tablespace เพื่อให้เซิร์ฟเวอร์ได้รับคีย์หลักที่ถูกต้อง
หากเรามีพื้นที่ตารางจากตำแหน่งที่ตั้งต่างกัน เช่น การสำรองข้อมูลที่แตกต่างกัน พื้นที่เหล่านั้นอาจใช้มาสเตอร์คีย์ที่แตกต่างกัน คีย์หลักเหล่านี้ทั้งหมดจะต้องได้รับจากที่เก็บเมื่อเซิร์ฟเวอร์เริ่มทำงาน ซึ่งอาจทำให้การเริ่มต้นเซิร์ฟเวอร์ช้าลง โดยเฉพาะอย่างยิ่งหากใช้ที่เก็บคีย์ฝั่งเซิร์ฟเวอร์ ด้วยการหมุนเวียนคีย์หลัก เราจะเข้ารหัสคีย์พื้นที่ตารางอีกครั้งด้วยคีย์หลักเดียวที่เหมือนกันสำหรับพื้นที่ตารางทั้งหมด ขณะนี้เซิร์ฟเวอร์ควรได้รับคีย์หลักเพียงคีย์เดียวเมื่อเริ่มต้น
แน่นอนว่านี่เป็นเพียงผลข้างเคียงที่น่าพึงพอใจ จุดประสงค์หลักของการหมุนเวียนมาสเตอร์คีย์คือการทำให้เซิร์ฟเวอร์ของเราปลอดภัยยิ่งขึ้น ในกรณีที่มาสเตอร์คีย์ถูกขโมยจากห้องนิรภัย (เช่น จากเซิร์ฟเวอร์ห้องนิรภัย) คุณสามารถสร้างมาสเตอร์คีย์ใหม่และเข้ารหัสคีย์พื้นที่ตารางใหม่ได้ ทำให้คีย์ที่ถูกขโมยใช้ไม่ได้ เราปลอดภัย...เกือบแล้ว
ในบทความก่อนหน้านี้ ฉันได้พูดถึงวิธีที่เมื่อคีย์ tablespace ถูกขโมย บุคคลที่สามสามารถใช้คีย์ดังกล่าวเพื่อถอดรหัสข้อมูลได้ โดยมีเงื่อนไขว่าสามารถเข้าถึงดิสก์ของเราได้ หากมาสเตอร์คีย์ถูกขโมยและคุณสามารถเข้าถึงข้อมูลที่เข้ารหัสได้ คุณสามารถใช้มาสเตอร์คีย์ที่ถูกขโมยเพื่อถอดรหัสคีย์สเปซตารางและรับข้อมูลที่ถอดรหัสได้ อย่างที่คุณเห็น การหมุนของมาสเตอร์คีย์ไม่ได้ช่วยในกรณีนี้ เราเข้ารหัสคีย์ tablespace อีกครั้งด้วยมาสเตอร์คีย์ใหม่ แต่คีย์จริงที่ใช้ในการเข้ารหัส/ถอดรหัสข้อมูลยังคงเหมือนเดิม ดังนั้น "แฮ็กเกอร์" จึงสามารถใช้ถอดรหัสข้อมูลต่อไปได้ ก่อนหน้านี้ฉันพูดเป็นนัยว่า
การหมุนเวียนมาสเตอร์คีย์มีประโยชน์เมื่อมาสเตอร์คีย์ถูกขโมย แต่ไม่มีทางที่ผู้โจมตีจะใช้มันและถอดรหัสคีย์สเปซตารางได้
อ่านเพิ่มเติม:
ที่มา: will.com