Dự đoán về việc bắt đầu tuyển sinh mới cho khóa học
Trong phần trước của loạt bài này, chúng ta đã thảo luận
Xoay vòng khóa chính liên quan đến việc tạo khóa chính mới và mã hóa lại các khóa của vùng bảng (được lưu trữ trong tiêu đề vùng bảng) bằng khóa mới này.
Hãy nhớ lại tiêu đề của một không gian bảng được mã hóa trông như thế nào:
Từ bài viết trước, chúng ta biết rằng máy chủ đọc các tiêu đề của tất cả các vùng bảng được mã hóa khi khởi động và ghi nhớ KEY ID lớn nhất. Ví dụ: nếu chúng ta có ba bảng có KEYID = 3 và một bảng có KEYID = 4, thì ID khóa tối đa sẽ là 4. Hãy gọi đây là ID KHÓA - MAX KEY ID.
Cách xoay phím chính hoạt động
1. Người dùng thực hiện ALTER INNODB MASTER KEY.
2. Máy chủ yêu cầu khóa để tạo khóa chính mới với UUID và KEY của máy chủID bằng một cộng với MAXKEYNHẬN DẠNG. Vì vậy, chúng tôi nhận được id khóa chính bằng INNODBKHÓA-UUID-(TỐI ĐAKEYID + 1). Sau khi tạo thành công khóa chính, MAX KEY ID được tăng thêm một (tức là MAXKEYID=MAXKEYMã số +1).
3. Máy chủ quét tất cả các vùng bảng được mã hóa bằng khóa chính và đối với từng vùng bảng:
-
mã hóa khóa vùng bảng bằng khóa chính mới;
-
cập nhật key id thành MAX mớiKEYTÔI;
-
nếu UUID khác với UUID của máy chủ thì hãy cập nhật UUID của máy chủ.
Như chúng ta đã biết, Master Key ID được sử dụng để giải mã một bảng bao gồm một UUID và một ID KEY được đọc từ tiêu đề vùng bảng. Những gì chúng tôi đang làm bây giờ là cập nhật thông tin này trong tiêu đề mã hóa không gian bảng để máy chủ nhận được khóa chính chính xác.
Nếu chúng ta có các vùng bảng từ các vị trí khác nhau, chẳng hạn như các bản sao lưu khác nhau, thì chúng có thể sử dụng các khóa chính khác nhau. Tất cả các khóa chính này sẽ cần được truy xuất từ kho lưu trữ khi máy chủ khởi động. Điều này có thể làm chậm quá trình khởi động máy chủ, đặc biệt nếu sử dụng kho lưu trữ khóa phía máy chủ. Với xoay khóa chính, chúng tôi mã hóa lại các khóa của vùng bảng bằng một khóa chính duy nhất giống nhau cho tất cả các vùng bảng. Bây giờ, máy chủ sẽ chỉ nhận được một khóa chính khi khởi động.
Tất nhiên, đây chỉ là một tác dụng phụ dễ chịu. Mục đích chính của xoay khóa chính là làm cho máy chủ của chúng tôi an toàn hơn. Trong trường hợp khóa chính bị đánh cắp bằng cách nào đó từ kho tiền (ví dụ: từ Máy chủ Vault), có thể tạo khóa chính mới và mã hóa lại các khóa vùng bảng, làm mất hiệu lực khóa bị đánh cắp. Chúng ta an toàn...gần như vậy.
Trong một bài viết trước, tôi đã nói về việc một khi khóa vùng bảng bị đánh cắp, bên thứ ba có thể sử dụng nó để giải mã dữ liệu. Với điều kiện là có quyền truy cập vào đĩa của chúng tôi. Nếu khóa chính bị đánh cắp và bạn có quyền truy cập vào dữ liệu được mã hóa, thì bạn có thể sử dụng khóa chính bị đánh cắp để giải mã khóa vùng bảng và lấy dữ liệu đã giải mã. Như bạn có thể thấy, việc xoay phím chính không giúp ích gì trong trường hợp này. Chúng tôi mã hóa lại khóa vùng bảng bằng khóa chính mới, nhưng khóa thực được sử dụng để mã hóa/giải mã dữ liệu vẫn giữ nguyên. Do đó, "hacker" có thể tiếp tục sử dụng nó để giải mã dữ liệu. Trước đó tôi đã gợi ý rằng
Xoay khóa chính rất hữu ích khi khóa chính bị đánh cắp, nhưng không có cách nào để kẻ tấn công sử dụng nó và giải mã các khóa của vùng bảng.
Đọc thêm:
Nguồn: www.habr.com