Mã hóa dữ liệu mysql
Máy chủ Percona cho MySQL cho phép mã hóa dữ liệu ở trạng thái nghỉ của không gian bảng InnoDB (tệp trên mỗi bảng) bằng cách mã hóa các tệp cơ sở dữ liệu vật lý. Dữ liệu được tự động mã hóa trước khi ghi vào bộ lưu trữ và tự động giải mã khi đọc. Nếu người dùng trái phép truy cập vào tệp dữ liệu, họ không thể đọc được nội dung. Máy chủ Percona cho MySQL 5. 7 dữ liệu khi mã hóa phần còn lại tương tự như MySQL 5. 7 mã hóa dữ liệu lưu trữ. Máy chủ Percona cho MySQL 8. 0 cung cấp thêm các tính năng và tùy chọn mã hóa không có trong phiên bản này Show
Bảng sau đây liệt kê các tính năng khác nhau được coi là Có sẵn chung (GA) hoặc trong bản xem trước công nghệ. Các tính năng và biến xem trước công nghệ không được khuyến nghị sử dụng trong sản xuất. Các tính năng và biến được đánh dấu là không dùng nữa sẽ không thực hiện hành động nào FeatureStatus Phiên bản GA Phiên bản Tech Preview Phiên bản không dùng nữaPlugin khóa Vault Thường khả dụng, được hỗ trợPercona Server 5. 7. 21-21Mã hóa không gian bảng tệp trên mỗi bảng Thường khả dụng, được hỗ trợPercona Server 5. 7. 21-21Mã hóa một không gian bảng chung Thường khả dụng, được hỗ trợPercona Server 5. 7. 21-21Mã hóa tệp tạm thời Thường có sẵn, được hỗ trợPercona Server 5. 7. 22-22binlog_encryptThông thường có sẵn, được hỗ trợPercona Server 5. 7. 21-21InnoDB System Tablespace EncryptionDeprecatedPercona Server 5. 7. 23-24Máy chủ Percona cho MySQL 5. 7. 32-35Bộ đệm ghi đôiKhông dùng nữaPercona Server 5. 7. 23-24Máy chủ Percona cho MySQL 5. 7. 32-35InnoDB Hoàn tác mã hóa vùng bảngKhông dùng nữaPercona Server 5. 7. 23-24Máy chủ Percona cho MySQL 5. 7. 32-35Làm lại mã hóa nhật kýKhông dùng nữaMáy chủ Percona 5. 7. 23-24Máy chủ Percona cho MySQL 5. 7. 32-35Data ScrubbingKhông dùng nữaMáy chủ Percona 5. 7. 23-24Máy chủ Percona cho MySQL 5. 7. 32-35Ngành kiến trúc¶Mã hóa dữ liệu ở trạng thái nghỉ sử dụng kiến trúc hai tầng với các thành phần sau LoạiMô tảKhóa chínhKhóa chính được sử dụng để mã hóa hoặc giải mã các khóa của vùng bảng. Tablespace key cho mỗi tablespace Key tablespace mã hóa các trang dữ liệu và được viết trong tablespace headerKhi máy chủ phải truy cập dữ liệu, khóa chính sẽ giải mã khóa của vùng bảng, vùng bảng được giải mã và sẵn sàng cho các thao tác đọc hoặc ghi Kiến trúc hai phím riêng biệt cho phép xoay phím chính trong một thao tác tối thiểu. Trong quá trình xoay khóa chính, mỗi khóa vùng bảng được mã hóa lại bằng khóa chính mới. Chỉ trang đầu tiên của tệp không gian bảng (. ibd) được đọc và ghi trong quá trình quay. Một trang được mã hóa được giải mã ở lớp I/O, được thêm vào vùng đệm và được sử dụng để đọc và ghi dữ liệu. Trang vùng đệm không được mã hóa. Lớp I/O mã hóa trang trước khi trang được chuyển sang đĩa Khóa mã hóa trong tiêu đề vùng bảng được yêu cầu để mã hóa hoặc giải mã vùng bảng. Khóa chính được lưu trữ trong plugin keyring Ghi chú Percona XtraBackup phiên bản 2. 4 hỗ trợ sao lưu các không gian bảng chung được mã hóa Vault Keyring Plugin¶Để bật mã hóa, hãy sử dụng một trong các plugin sau
Chỉ kích hoạt một plugin keyring tại một thời điểm. Kích hoạt nhiều phần bổ trợ khóa không được hỗ trợ và có thể dẫn đến mất dữ liệu Ghi chú Không nên sử dụng plugin keyring_file để tuân thủ quy định Để cài đặt plugin đã chọn, hãy làm theo hướng dẫn cài đặt và gỡ cài đặt plugin Đang tải plugin Keyring¶Tải plugin khi khởi động máy chủ với Tùy chọn tải plugin sớm để kích hoạt khóa. Để khôi phục bảng được mã hóa hiệu quả hơn, hãy tải plugin bằng tệp cấu hình Chạy lệnh sau để tải plugin keyring_file
Ghi chú Để khởi động một máy chủ với các plugin ban đầu khác nhau sẽ được tải, tùy chọn 2 có thể chứa các tên plugin trong danh sách trích dẫn kép với mỗi tên plugin được phân tách bằng dấu chấm phẩy. Việc sử dụng dấu ngoặc kép đảm bảo dấu chấm phẩy không tạo ra sự cố khi danh sách được thực thi trong tập lệnhĐể kích hoạt mã hóa Master key vault, người dùng phải có đặc quyền SUPER Các câu lệnh sau tải plugin keyring_vault và keyring_vault_config. Câu lệnh thứ hai cung cấp vị trí cho tệp cấu hình keyring_vault
Thêm các tuyên bố sau vào của tôi. cnf
Khởi động lại máy chủ Ghi chú Tiện ích mở rộng keyring_vault, “. so” và vị trí tệp cho cấu hình vault phải được thay đổi để phù hợp với vị trí hệ điều hành và tiện ích mở rộng hệ điều hành của bạn Mô tả tệp keyring_vault_config¶Tệp keyring_vault_config có thông tin sau
Sau đây là một ví dụ tập tin cấu hình 0Cảnh báo Mỗi 4 chỉ được sử dụng bởi một máy chủ. Nhiều máy chủ sử dụng cùng một secret_mount_point có thể gây ra hành vi không thể đoán trướcTạo bản sao lưu của tệp cấu hình khóa hoặc tệp dữ liệu ngay sau khi tạo vùng bảng được mã hóa. Nếu bạn đang sử dụng mã hóa Khóa chính, hãy sao lưu trước khi xoay khóa chính và sau khi xoay khóa chính Lần đầu tiên một khóa được truy xuất từ một chuỗi khóa, keyring_vault sẽ giao tiếp với máy chủ Vault để truy xuất loại khóa và dữ liệu Variableskeyring_vault_configkeyring_vault_timeoutXác minh Plugin Keyring đang hoạt động¶Để xác minh plugin tạo khóa đang hoạt động, hãy chạy câu lệnh SHOW PLUGINS hoặc chạy truy vấn trên INFORMATION_SCHEMA. bảng PLUGIN. Bạn cũng có thể truy vấn chế độ xem PLUGINS 2Đầu ra có thể như sau 3Mã hóa một Tablespace File-Per-Table¶Câu lệnh CREATE TABLESPACE được mở rộng để cho phép tùy chọn 00 mã hóa một vùng bảng File-per-Table 5Để kích hoạt mã hóa cho một vùng bảng hiện có, hãy thêm tùy chọn 01 vào câu lệnh 02 8Bạn phải thêm tùy chọn 01 vào ALTER TABLE để thay đổi trạng thái mã hóa bảng. Nếu không có tùy chọn 01, bảng được mã hóa vẫn được mã hóa hoặc bảng không được mã hóa vẫn không được mã hóaĐể thay đổi khóa vùng bảng, hãy chạy lệnh tối ưu hóa bảng 1Mã hóa một Tablespace chung¶Kể từ Máy chủ Percona 5. 7. 18-20, Máy chủ Percona dành cho MySQL hỗ trợ mã hóa không gian bảng chung. Bạn không thể mã hóa một phần các bảng trong một không gian bảng chung. Tất cả các bảng phải được mã hóa hoặc không có bảng nào được mã hóa Tự động mã hóa các vùng bảng¶Thêm biến 05 vào của tôi. cnf để tự động mã hóa các vùng bảng chung. Các giá trị có thể có của biến làValueDescriptionOFFGiá trị mặc định vô hiệu hóa tự động mã hóa các bảng mớiONbật mã hóa tự động cho các bảng mớiFORCECác bảng mới được tạo tự động bằng mã hóa. Việc thêm ENCRYPTION=NO vào câu lệnh CREATE TABLE hoặc ALTER TABLE dẫn đến cảnh báoCâu lệnh CREATE TABLESPACE được mở rộng để cho phép tùy chọn 06 4Để mã hóa một bảng hiện có, hãy thêm tùy chọn ENCRYPTION trong câu lệnh 02 0Bạn cũng có thể tắt mã hóa cho một bảng, đặt mã hóa thành N 1Ghi chú Câu lệnh 02 chỉ sửa đổi chế độ mã hóa hiện tại nếu mệnh đề 01 được thêm vào một cách rõ ràngBiến hệ thống¶Ghi chú Bạn không thể thay đổi khóa vùng bảng cho các bảng trong vùng bảng chung Mã hóa nhật ký nhị phân¶Để bắt đầu mã hóa binlog, hãy khởi động máy chủ bằng 20. Trạng thái này yêu cầu 21 và 22 phải là 23 và một trong các phần bổ trợ khóa được tảiGHI CHÚ. Những hành động này không mã hóa tất cả các binlog trong lược đồ sao chép. Bạn phải bật 24 trên mỗi máy chủ bản sao, ngay cả khi chúng không tạo tệp binlog. Kích hoạt mã hóa trên các máy chủ sao chép kích hoạt mã hóa nhật ký chuyển tiếpBạn có thể xoay khóa mã hóa được Percona Server sử dụng cho MySQL bằng cách chạy câu lệnh sau 2Ghi chú Lệnh 25 là Chất lượng thử nghiệmLệnh này tạo khóa mã hóa binlog mới trong khóa. Khóa mới mã hóa tệp binlog tiếp theo Mã hóa tập tin tạm thời¶Percona Server cho MySQL hỗ trợ mã hóa lưu trữ tệp tạm thời. Người dùng kích hoạt mã hóa với 26Kích hoạt biến trong lệnh sau 3Xác minh cài đặt mã hóa¶Đối với các không gian bảng đơn lẻ, hãy xác minh tùy chọn ENCRYPTION bằng INFORMATION_SCHEMA. BẢNG và cài đặt CREATE OPTIONS 4Đầu ra có thể như sau 5Trường 27 trong 28 có bit số 13 được đặt nếu không gian bảng được mã hóa. Có thể kiểm tra bit này bằng biểu thức 29 bằng phương pháp sau 6Đầu ra có thể như sau 7Để cho phép xoay vòng Khóa chính, bạn có thể mã hóa vùng bảng hệ thống InnoDB đã được mã hóa bằng khóa chính mới bằng cách chạy câu lệnh 30 sau 8Xoay Master Key¶Để bảo mật, bạn nên xoay khóa Master kịp thời. Sử dụng câu lệnh 30. Để xoay phím, bạn phải có đặc quyền 32 8Không thể chạy câu lệnh cùng lúc khi bạn chạy câu lệnh 33 hoặc 34. Câu lệnh 30 sử dụng khóa để ngăn xung đột. Nếu một câu lệnh DML đang chạy, thì câu lệnh đó phải hoàn thành trước khi câu lệnh 30 bắt đầuKhi xoay phím Chính, các phím của vùng bảng trong trường hợp đó được mã hóa lại. Hoạt động không mã hóa lại dữ liệu không gian bảng Việc mã hóa lại cho các khóa của vùng bảng phải thành công để xoay vòng khóa thành công. Nếu vòng quay bị gián đoạn, chẳng hạn như nếu máy chủ bị lỗi, thao tác sẽ tiếp tục khi máy chủ khởi động lại Mã hóa vùng bảng hệ thống InnoDB¶Tính năng này đã có trong bản xem trước công nghệ từ phiên bản 5. 7. 23-24 nhưng không được dùng từ phiên bản 5. 7. 32-35. Tính năng này không được khuyến nghị sử dụng trong sản xuất Không gian bảng hệ thống InnoDB được mã hóa bằng cách sử dụng mã hóa khóa chính. Máy chủ phải được khởi động với tùy chọn 37Nếu biến innodb_sys_tablespace_encrypt được đặt thành BẬT và máy chủ đã được khởi động ở chế độ bootstrap, bạn có thể tạo một bảng được mã hóa như sau 0Ghi chú Bạn không thể mã hóa các bảng hiện có trong không gian bảng Hệ thống Không thể chuyển đổi vùng bảng hệ thống từ mã hóa sang không mã hóa hoặc ngược lại. Một phiên bản mới sẽ được tạo và các bảng người dùng phải được chuyển sang phiên bản mong muốn Bạn có thể mã hóa không gian bảng hệ thống InnoDB đã được mã hóa (xoay vòng khóa) bằng khóa chính mới bằng cách chạy câu lệnh 30 sau 1[mysqld] early-plugin-load="keyring_vault=keyring_vault.so" loose-keyring_value_config="/home/mysql/keyring_vault.conf" 39¶Tùy chọnMô tảDòng lệnh–innodb-sys-tablespace-encryptScopeGlobalDynamicNoData typeBooleanDefaultOFFBiến đã được triển khai trong Percona Server 5. 7. 23-24. Chỉ định tốc độ xóa dữ liệu (ghi các bản ghi nhật ký làm lại giả) tính bằng byte trên giây MySQL lưu trữ dữ liệu được mã hóa như thế nào?Để lưu trữ dữ liệu được mã hóa, bạn có thể sử dụng trường BLOB và sử dụng các chức năng mã hóa tích hợp của MySQL . Thí dụ. cập nhật mytable set myfield = AES_ENCRYPT('some value', SHA2('key bí mật an toàn của bạn', 512)); .
Mã hóa trong MySQL là gì?Mã hóa dữ liệu trong suốt dành cho doanh nghiệp MySQL (TDE) bảo vệ dữ liệu quan trọng của bạn bằng cách bật mã hóa dữ liệu lưu trữ trong cơ sở dữ liệu . Nó bảo vệ sự riêng tư của thông tin của bạn, ngăn ngừa vi phạm dữ liệu và giúp đáp ứng các yêu cầu quy định bao gồm. Tiêu chuẩn bảo mật dữ liệu ngành thẻ thanh toán (PCI DSS)
MySQL có hỗ trợ TDE không?Máy chủ MySQL hỗ trợ Mã hóa dữ liệu minh bạch (TDE) , bảo vệ dữ liệu quan trọng bằng cách bật mã hóa dữ liệu lưu trữ.
MySQL có mã hóa khi nghỉ ngơi không?Bạn có thể sử dụng Mã hóa dữ liệu trong suốt (TDE) để mã hóa các tệp dữ liệu SQL Server và Cơ sở dữ liệu SQL Azure đang lưu trữ . Với TDE, bạn có thể mã hóa dữ liệu nhạy cảm trong cơ sở dữ liệu và bảo vệ các khóa được sử dụng để mã hóa dữ liệu bằng chứng chỉ. |