Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Phương pháp tốt nhất để sử dụng / lưu trữ khóa mã hóa trong MySQL là gì

Tôi không chắc liệu việc sử dụng bản dựng MySQL trong mã hóa có phải là giải pháp tốt nhất cho vấn đề của bạn hay không.

M_CRYPT của PHP gói được cho là khá tốt và nó cho phép bạn linh hoạt để chọn thuật toán phù hợp nhất với nhu cầu của mình.

Lưu trữ khóa của bạn trên một số máy chủ khác có một lợi thế lớn:khóa không nằm trên cùng một máy với dữ liệu được mã hóa. Vì vậy, miễn là kẻ tấn công không có đủ quyền kiểm soát đối với máy bị xâm nhập, chúng sẽ không thể truy cập vào khóa.
Nếu kẻ tấn công giành được toàn quyền kiểm soát máy mà dữ liệu được lưu trữ trên đó, rất có thể chúng sẽ truy vấn được. dịch vụ web cho khóa.

Tuy nhiên, việc truyền khóa từ máy này sang máy khác sẽ mở ra một khu vực hoàn toàn mới cần được bảo mật. Có thể liên quan đến nhiều khóa hơn và nhiều lớp mã hóa hơn, do đó làm tăng khả năng mắc lỗi.

Tùy chọn khác là nhập mật khẩu khi máy chủ web khởi động và chỉ lưu nó trong bộ nhớ.

Giải pháp khả thi
Nếu thấy một giải pháp được triển khai sử dụng phương pháp sau để mã hóa tệp cho người dùng có quyền truy cập web (Tôi không chắc về môi trường của bạn, nhưng nó có thể hữu ích):

  • Khi người dùng tạo, một khóa ngẫu nhiên dài sẽ được chỉ định cho người dùng mới.
  • Khóa ngẫu nhiên này được lưu trữ trong một cột được mã hóa trong bản ghi người dùng.
    ( chỉ cột này được mã hóa để không ảnh hưởng đến hiệu suất của phần còn lại của bản ghi! )
  • Việc mã hóa cột khóa ngẫu nhiên được thực hiện bằng 1 mật khẩu chính, được lưu trữ trong tệp hoặc trong bộ nhớ.
    ( Tùy chọn tốt hơn là nhập mật khẩu khi nhìn chằm chằm vào máy chủ web của bạn và chỉ lưu trữ nó trong trí nhớ. )
    ( Một cách tiếp cận khác là cho phép người dùng nhập mật khẩu và sử dụng mật khẩu đó để mã hóa / giải mã cột khóa ngẫu nhiên, nhưng tôi không chắc liệu điều đó sẽ tăng hay giảm bảo mật )
  • Mọi tài liệu cần mã hóa đều được mã hóa bằng khóa ngẫu nhiên cho người dùng đó và sau đó được lưu trữ trên đĩa.
  • Tài liệu được lưu trữ với quyền tối thiểu trong hệ thống tệp.

Ưu điểm của phương pháp này là:
1. Khóa ngẫu nhiên được mã hóa trong cơ sở dữ liệu. Vì vậy, bạn vẫn có thêm tính bảo mật của máy chủ cơ sở dữ liệu, kết hợp với cột được mã hóa. Tài liệu được lưu trữ bằng các khóa khác nhau, nếu kẻ tấn công nắm được khóa, chỉ một phần của tài liệu bị xâm phạm.

Tuy nhiên:
Nếu kẻ tấn công nắm được mật khẩu chính và có quyền truy cập đọc vào bảng người dùng, thì toàn bộ hệ thống lại một lần nữa bị hỏng.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tự động tải kết quả tìm nạp các kết quả giống nhau lặp đi lặp lại

  2. Làm cách nào để mô tả tất cả các bảng trong cơ sở dữ liệu thông qua một câu lệnh?

  3. Không thể đăng nhập vào mysql 5.7.9 sau khi thay đổi mật khẩu

  4. Sử dụng Đếm để tìm số lần xuất hiện

  5. Nhập trường đa giá trị vào Solr từ mySQL bằng Trình xử lý nhập dữ liệu Solr