Mã hóa mysql

Mã hóa MySQL là một quá trình mã hóa cơ sở dữ liệu thực hành chuyển đổi văn bản thuần túy và bản ghi dữ liệu có thể đọc được văn bản trong cơ sở dữ liệu máy chủ thành văn bản băm không thể hiểu được với sự trợ giúp của thuật toán mã hóa

Nói chung, khi bất kỳ người dùng nào duyệt dữ liệu trong cơ sở dữ liệu, thì dữ liệu dựa trên loại cột của bảng sẽ có thể đọc được bằng văn bản. Một số danh mục trường được sử dụng cổ điển cho các cột trong bảng cơ sở dữ liệu như VARCHAR, INT, TEXT và DATETIME ở dạng con người có thể đọc được, ngoại trừ các đốm màu và một số danh mục trường khác

Bắt đầu khóa học khoa học dữ liệu miễn phí của bạn

Hadoop, Khoa học dữ liệu, Thống kê và những thứ khác

Do đó, Mã hóa MySQL được thực hiện bằng cách mã hóa vùng chứa chứa các bản ghi dữ liệu MySQL được lưu trữ, tức là. e. nói bộ nhớ đĩa hoặc mã hóa thông tin dữ liệu trước khi hướng nó đến máy chủ MySQL

Gói khoa học dữ liệu tất cả trong một(360+ khóa học, hơn 50 dự án)

Mã hóa mysql
Mã hóa mysql
Mã hóa mysql
Mã hóa mysql

Mã hóa mysql
Mã hóa mysql
Mã hóa mysql
Mã hóa mysql

Giá bán
Xem các khóa học

Hơn 360 khóa học trực tuyến. hơn 50 dự án. Hơn 1500 giờ. Giấy chứng nhận có thể kiểm chứng. Truy cập trọn đời
4. 7 (85.614 xếp hạng)

cú pháp

MySQL Enterprise Encryption cung cấp các tính năng chức năng điển hình của ngành cho mã hóa bất đối xứng để bảo vệ dữ liệu nhạy cảm trong suốt vòng đời của nó, i. e. Mật mã khóa công khai. Mã hóa doanh nghiệp MySQL này chịu trách nhiệm mã hóa, chữ ký số, tạo khóa và một số tính năng mã hóa để phục vụ các tổ chức bảo vệ dữ liệu thân mật và đáp ứng các yêu cầu pháp lý bao gồm Sarbanes-Oxley, HIPAA và Tiêu chuẩn bảo mật dữ liệu PCI

Ngoài ra, MySQL Enterprise Encryption cung cấp cho các DBA cũng như Nhà phát triển các công cụ kỹ thuật mà họ yêu cầu đối với những công cụ được liệt kê bên dưới

  • Mã hóa khóa công khai bất đối xứng
  • Giải mã khóa công khai bất đối xứng
  • Tạo khóa công khai/riêng tư
  • Cung cấp khóa đối xứng từ cặp khóa công khai và khóa riêng
  • Dữ liệu ký số
  • Xác minh chữ ký dữ liệu
  • Xác thực Dữ liệu Xác thực

Điều này cho phép các nhà phát triển phần mềm mã hóa các bản ghi dữ liệu với sự hỗ trợ của các thuật toán mã hóa DHS, RDS và DH một cách dễ dàng

MySQL Enterprise Encryption cho phép doanh nghiệp của bạn thực hiện những điều sau

  • Thu thập dữ liệu bằng cách sử dụng kết hợp các khóa riêng tư, công khai và đối xứng để mã hóa và giải mã dữ liệu
  • Mã hóa dữ liệu được lưu trong MySQL bằng thuật toán mã hóa loại DSA, RSA hoặc DH
  • Ký điện tử các tin nhắn để xác thực tính xác thực của nguồn, tôi. e. chống thoái thác và độ tin cậy của thông điệp
  • Loại bỏ việc giới thiệu dữ liệu không cần thiết bằng cách đủ điều kiện cho các DBA để xử lý dữ liệu được mã hóa
  • Tương tác với bất kỳ hệ thống và ứng dụng mật mã nào khác mà không làm thay đổi các ứng dụng hiện tại
  • Tránh tiết lộ các khóa bất đối xứng bên trong bản trình bày của khách hàng hoặc trên đĩa

MySQL Enterprise TDE (Mã hóa dữ liệu trong suốt) giữ an toàn cho dữ liệu nguy hiểm của người dùng bằng cách hỗ trợ mã hóa dữ liệu ở trạng thái nghỉ trong cơ sở dữ liệu máy chủ. Nó bảo vệ quyền riêng tư của thông tin người dùng, tránh vi phạm dữ liệu và hỗ trợ đáp ứng các yêu cầu kiểm soát bao gồm

  • Tiêu chuẩn bảo mật dữ liệu ngành thẻ thanh toán (PCI) (DSS)
  • Đạo luật về trách nhiệm giải trình và cung cấp bảo hiểm y tế (HIPAA)
  • Quy định bảo vệ dữ liệu chung
  • Đạo luật bảo vệ người tiêu dùng California, v.v.

Mã hóa hoạt động như thế nào trong MySQL?

Các bảng InnoDB trong MySQL duy trì mã hóa data-at-rest cho các không gian bảng chung, không gian bảng tệp trên mỗi bảng làm lại nhật ký, hoàn tác nhật ký và không gian bảng hệ thống mysql. Trong Mysql 8. 0. 16, để thiết lập mã hóa theo mặc định cho các lược đồ DBMS và tương tự, các vùng bảng chung cũng được duy trì để cho phép các DBA giám sát xem các bảng được tạo trong các lược đồ đó và các vùng bảng liên quan có được mã hóa hay không

InnoDB triển khai khóa mã hóa hai tầng, bao gồm khóa mã hóa chính và khóa vùng bảng. Khi bất kỳ vùng bảng nào trong MySQL được mã hóa, thì nó được giữ trong tiêu đề vùng bảng. Khi bất kỳ người dùng hoặc ứng dụng xác thực nào cần tiếp nhận thông tin vùng bảng được mã hóa, InnoDB sẽ áp dụng khóa mã hóa chính để giải mã khóa vùng bảng. Ở đây, phiên bản khóa không gian bảng được giải mã không sửa đổi, nhưng chúng tôi có thể sửa đổi khóa được mã hóa chính theo yêu cầu. Do đó, hành động này được biểu thị là xoay phím chính

Thuộc tính mã hóa data-at-rest phụ thuộc vào plugin khóa để quản lý khóa mã hóa chính. Plugin tệp khóa này được cung cấp cho tất cả các phiên bản MySQL nơi dữ liệu khóa được lưu trữ trong một tệp cục bộ trên máy chủ của máy chủ. MySQL Enterprise Edition cung cấp plugin khóa bổ sung

  • Keyring_encrypted_file giữ dữ liệu khóa trong một tệp được mã hóa cục bộ cho máy chủ lưu trữ
  • Keyring_okv bao gồm một ứng dụng khách KMIP, tôi. e. KMIP 1. 1, triển khai một sản phẩm tương thích với KMIP để lưu trữ khóa hoạt động như một phần cuối. Các sản phẩm tương thích với KMIP được hỗ trợ bao gồm các giải pháp tổ chức khóa tập trung như Oracle key Vault, quản lý khóa Thales Vormetric, Gemalto KeySecure và cả Fornetix key Orchestration
  • Keyring_aws kết nối với Dịch vụ quản lý khóa (KMS) của Amazon Web Services (AWS) để tạo khóa dưới dạng phần cuối và để lưu trữ khóa áp dụng một tệp cục bộ
  • Keyring_hashicorp kết hợp với HashiCorp Vault để lưu trữ back-end

ví dụ

Trong Mysql 8. 0. 16, biến có tên default_table_encryption quy định mã hóa của một vùng bảng được tạo ngay lập tức ngoại trừ mệnh đề ENCRYPTION được xác định công khai trong câu lệnh CREATE TABLESPACE. Trong phiên bản trước của MySQL 8. 0. 16, điều khoản MÃ HÓA nên được nêu để cho phép mã hóa như được viết bên dưới

CREATE TABLESPACE ‘tbs1’ ADD DATAFILE ‘tbs.ibd’ ENCRYPTION = ‘Y’ ENGINE=InnoDB;

Để sửa đổi mã hóa của một vùng bảng chung hiện tại, cần nêu rõ mệnh đề ENCRYPTION

ALTER TABLESPACE tbs ENCRYPTION = ‘Y’;

Để mã hóa vùng bảng hệ thống mysql, MySQL 8. 0. 16 cũng hỗ trợ nó. Vùng bảng hệ thống mysql này bao gồm cơ sở dữ liệu hệ thống mysql cùng với các bảng từ điển dữ liệu MySQL và theo mặc định, nó không được mã hóa. Vì vậy, để kích hoạt mã hóa, chúng ta cần xác định tên vùng bảng cũng như tùy chọn ENCRYPTION trong câu lệnh ALTER TABLESPACE như bên dưới

ALTER TABLESPACE mysql ENCRYPTION = ‘Y’;

Ngoài ra, để hạn chế mã hóa cho vùng bảng hệ thống mysql này, chúng ta cần đặt ENCRYPTION = ‘N’ bằng cách áp dụng câu lệnh truy vấn ALTER TABLESPACE

ALTER TABLESPACE mysql ENCRYPTION = ‘N’;

Hãy nhớ rằng để cho phép hoặc hạn chế mã hóa cho hệ thống mysql, không gian bảng cần có các đặc quyền để CREATE TABLESPACE trên tất cả các bảng trong cơ sở dữ liệu được hiển thị trong ví dụ, i. e. TẠO TABLESPACE trên *. * trong MySQL

Bất cứ khi nào tùy chọn ENCRYPTION được nêu trong một truy vấn, CREATE TABLE hoặc ALTER TABLE, nó sẽ được ghi lại trong cột bảng CREATE_OPTIONS INFORMATION_SCHEMA. NHỮNG CÁI BÀN. Chúng tôi có thể kiểm tra cột để xác minh các bảng nằm trong không gian bảng tệp trên mỗi bảng được mã hóa

SELECT TABLESCHEMA, TABLENAME, CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES WHERE CREATE _OPTIONS LIKE ‘%ENCRYPTION’;

Phần kết luận

  • Nói chính xác, tất cả các hồ sơ nhạy cảm cần được bảo vệ. Vì vậy, ở đây Mã hóa MySQL cho thấy vai trò cấp thiết trong bảo mật thông tin
  • Trong MySQL, dữ liệu được mã hóa trên máy bay cũng như khi nghỉ ngơi; . Mã hóa MySQL cũng giúp bảo mật thông tin và duy trì sao lưu máy chủ

Bài viết được đề xuất

Đây là hướng dẫn mã hóa MySQL. Ở đây chúng ta thảo luận về cách mã hóa hoạt động trong MySQL, cùng với các ví dụ. Bạn cũng có thể xem các bài viết sau để tìm hiểu thêm –

Cơ sở dữ liệu MySQL có thể được mã hóa không?

MySQL Enterprise TDE cho phép mã hóa dữ liệu lưu trữ bằng cách mã hóa các tệp vật lý của cơ sở dữ liệu . Dữ liệu được mã hóa tự động, theo thời gian thực, trước khi ghi vào bộ nhớ và được giải mã khi đọc từ bộ nhớ.

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 mật khẩu trong MySQL?

Máy chủ MySQL sử dụng chức năng MẬT KHẨU để mã hóa mật khẩu MySQL để lưu trữ trong cột Mật khẩu của bảng cấp người dùng. Giá trị do hàm MẬT KHẨU trả về là một chuỗi được băm hoặc NULL nếu đối số là NULL. Hàm MẬT KHẨU nhận một tham số là chuỗi cần mã hóa.

Làm cách nào để lưu trữ dữ liệu được mã hóa trong MySQL?

Để 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)); .