Mysql mã hóa dữ liệu như thế nào?
Data at Rest Encryption không chỉ là một tính năng nên có mà còn là một yêu cầu đối với HIPAA, PCI và các quy định khác Show
Có ba cách chính để giải mã hóa dữ liệu khi nghỉ ngơi
Tôi coi mã hóa toàn bộ đĩa là phương pháp yếu nhất vì nó chỉ bảo vệ khỏi ai đó đang lấy đĩa ra khỏi máy chủ. Mặt khác, mã hóa cấp ứng dụng là tốt nhất. đây là phương pháp linh hoạt nhất mà hầu như không có chi phí hoạt động và nó cũng giải quyết được mã hóa dữ liệu trên máy bay. Rất tiếc, không phải lúc nào cũng có thể thay đổi mã ứng dụng để hỗ trợ mã hóa cấp ứng dụng nên mã hóa cấp cơ sở dữ liệu có thể là một giải pháp thay thế hữu ích Sergei Golubchik, Kiến trúc sư trưởng tại MariaDB, đã nêu ra những ưu điểm và nhược điểm của mã hóa cấp cơ sở dữ liệu trong phiên làm việc của ông tại Percona Live Amsterdam Ưu điểm của mã hóa mức cơ sở dữ liệu
Nhược điểm của mã hóa cấp cơ sở dữ liệu
Dữ liệu khi mã hóa phần còn lại. Tùy chọn cấp cơ sở dữ liệuHiện tại, có hai tùy chọn để mã hóa dữ liệu ở trạng thái nghỉ ở cấp cơ sở dữ liệu
Việc triển khai MariaDB khác với MySQL 5. 7. 11. mysql 5. 7. 11 chỉ mã hóa (các) vùng bảng InnoDB, trong khi MariaDB có tùy chọn mã hóa nhật ký hoàn tác/làm lại, nhật ký nhị phân/nhật ký chuyển tiếp, v.v. Tuy nhiên, có một số hạn chế (đặc biệt là cùng với Galera Cluster).
Mã hóa cấp cơ sở dữ liệu cũng có điểm yếu
Ví dụ mã hóa MariaDBĐể bật mã hóa toàn bộ, chúng tôi có thể thêm các tùy chọn sau vào. cnf mysql1 2 3 4 5 6 7 8 9 10 11 [mysqld] plugin -tải-thêm=file_key_management.so file_key_manager_filekey = FILE . /mount /key/ mysql. phím tệp-khóa- quản lý -filename = /mount/keys/mysql.enc innodb-mã hóa-bảng = ON innodb-mã hóa-log = 1 innodb- mã hóa - luồng =1 mã hóa- tmp - đĩa -tables=1 mã hóa- tmp - tệp =1 mã hóa-binlog= 1 file_key_manager_encryption_algorithm = AES_CTR Sau khi khởi động MariaDB với các cài đặt đó, nó sẽ bắt đầu mã hóa cơ sở dữ liệu ở chế độ nền. Plugin quản lý_khóa_tệp được sử dụng; . Các khóa thực tế được mã hóa bằng Vỏ bọc1 # openssl enc -aes-256-cbc -md sha1 -k The encryption Sau khi khởi động MySQL, chúng ta có thể ngắt kết nối phân vùng “/mount/key”. Trong trường hợp này, khóa sẽ không khả dụng và một hacker tiềm ẩn sẽ không thể khởi động lại MySQL với tùy chọn “–skip-grant-tables” (không có mật khẩu). Tuy nhiên, nó cũng ngăn khởi động lại bình thường, đặc biệt là SST (đồng bộ hóa toàn bộ cụm) Ghi chú bổ sung
mysql 5. 7 Ví dụ mã hóaĐể kích hoạt mã hóa, hãy thêm tùy chọn sau vào. cnf mysql1 2 3 [mysqld] sớm - plugin -tải=keyring_file.so keyring_file_data=/mount / mysql - keyring< /keyring Một lần nữa, sau khi khởi động MySQL, chúng ta có thể ngắt kết nối phân vùng “/mount/mysql-keyring/” Để bắt đầu mã hóa bảng, chúng ta cần chạy alter table table_name encryption='Y' , as MySQL will not encrypt tables by default. Percona Xtrabackup mới nhất cũng hỗ trợ mã hóa và có thể sao lưu các bảng được mã hóa Để tìm tất cả các không gian bảng được mã hóa trong MySQL/Percona Server 5. 7. 11, chúng ta có thể sử dụng information_schema. INNODB_SYS_TABLESPACES và trường cờ. Ví dụ: để tìm các bảng được mã hóa thông thường, hãy sử dụng truy vấn sau mysql1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 mysql > chọn * từ information_schema.INNODB_SYS_TABLESPACES ở đâu cờ = 8225G *************************** 1. hàng *************************** SPACE . 4688 TÊN. kiểm tra / t1 CỜ. 8225 FILE_FORMAT. Cá nhồng ROW_FORMAT . Động PAGE_SIZE. 16384 ZIP_PAGE_SIZE. 0 SPACE_TYPE. Độc thân FS_BLOCK_SIZE. 4096 FILE_SIZE. 98304 ALLOCATED_SIZE. 98304 *************************** 2. hàng *************************** SPACE . 4697 TÊN. sbtest / sbtest1_enc CỜ. 8225 FILE_FORMAT. Cá nhồng ROW_FORMAT . Động PAGE_SIZE. 16384 ZIP_PAGE_SIZE. 0 SPACE_TYPE. Độc thân FS_BLOCK_SIZE. 4096 FILE_SIZE. 255852544 ALLOCATED_SIZE. 255856640 2 hàng trong bộ (0. 00 giây) Bạn cũng có thể sử dụng truy vấn này để thay thế. chọn * từ lược đồ thông tin. bảng nơi CREATE_OPTIONS thích '%ENCRYPTION="Y"%'< . ;. chi phí hoạt động Đây là một chủ đề gây tranh cãi, đặc biệt đối với việc triển khai MariaDB khi mọi thứ được định cấu hình để mã hóa. Trong các thử nghiệm của mình, tôi đã thấy ~10% chi phí cho phiên bản MySQL độc lập và ~20% với Galera Cluster MySQL5. 7/Máy chủ Percona 5. 7 mã hóa mức không gian bảng cho thấy chi phí cực kỳ thấp, tuy nhiên, điều đó cần được kiểm tra trong các điều kiện khác nhau Phần kết luận Ngay cả với tất cả các giới hạn trên, mã hóa cấp cơ sở dữ liệu có thể là một lựa chọn tốt hơn so với mã hóa cấp hệ thống tệp nếu không thể thay đổi ứng dụng. Tuy nhiên, nó là một tính năng mới (đặc biệt là MySQL 5. 7. 11) và tôi mong đợi một số lỗi ở đây MySQL sử dụng loại mã hóa nào?Mã hóa khóa công khai bất đối xứng (RSA)
Làm cách nào để mã hóa dữ liệu trong bảng MySQL?Để mã hóa dữ liệu trong không gian bảng tệp trên mỗi bảng InnoDB, hãy chạy ALTER TABLE tbl_name ENCRYPTION = 'Y' . Để mã hóa một vùng bảng chung hoặc vùng bảng mysql, hãy chạy ALTER TABLESPACE tablespace_name ENCRYPTION = 'Y'. Hỗ trợ mã hóa cho các không gian bảng chung đã được giới thiệu trong MySQL 8. 0.
MySQL mã hóa mật khẩu như thế nào?Băm mật khẩu được lưu trữ bởi Máy chủ MySQL được tạo bằng cách băm mật khẩu văn bản thuần túy hai lần bằng SHA1 . Khi máy khách truyền mật khẩu đến máy chủ, nó sẽ sử dụng ba mẩu thông tin. Hàm băm SHA1 của mật khẩu văn bản thuần túy. Hàm băm SHA1 của hàm băm SHA1 của mật khẩu văn bản thuần túy.
MySQL cung cấp bảo mật như thế nào?MySQL bảo vệ quyền truy cập dữ liệu nhạy cảm bằng cách mã hóa . Điều này có thể được thực hiện bằng cách che khuất vùng chứa chứa dữ liệu hoặc tự mã hóa dữ liệu. Một số công cụ mã hóa MySQL Enterprise bao gồm. Mã hóa/giải mã khóa công khai bất đối xứng. |