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

Cách tốt nhất để mã hóa SSN trong SQL Server 2008 là gì?

Nếu bạn mã hóa dữ liệu thì bạn phải tự hỏi mình ai sẽ giải mã nó. Nếu bạn sử dụng hệ thống mã hóa không đối xứng (ví dụ:RSA) thì mã hóa sử dụng khóa công khai và giải mã sử dụng khóa riêng tương ứng; "không đối xứng" xuất phát từ thực tế là khóa riêng tư không thể được tính lại từ khóa công khai (mặc dù cả hai khóa được liên kết toán học với nhau).

Mã hóa không đối xứng có xu hướng có chi phí cao. Nhận xét đầu tiên là mã hóa như vậy phải có một số phần ngẫu nhiên trong đó, bởi vì mọi người đều có thể mã hóa (khóa công khai là, vâng, công khai):nếu quá trình mã hóa là xác định, thì bất kỳ ai cũng có thể mã hóa tất cả các SSN có thể có (có ít hơn một tỷ trong số chúng, một con số thực sự nhỏ đối với một máy tính hiện đại) và khớp với các giá trị được mã hóa. Do đó, phải có một số ngẫu nhiên được thêm vào trong quá trình mã hóa và SSN được mã hóa lớn hơn SSN bản rõ.

Các hệ thống mã hóa không đối xứng đã biết sử dụng các cấu trúc toán học có chi phí riêng. Về cơ bản, đối với hệ thống mã hóa RSA, với một khóa "đủ mạnh", một thông điệp được mã hóa sẽ có độ dài ít nhất là 128 byte. Một số hệ thống mã hóa hoạt động tốt hơn; trong khi bám sát con đường nghiên cứu học thuật đầy thử thách, tôi có thể thực hiện nó trong 41 byte hoặc lâu hơn (với El-Gamal trên đường cong hình elip NIST K-163). Nhỏ hơn có vẻ khó hơn.

Vì vậy, không có gì ngạc nhiên khi một hệ thống cơ sở dữ liệu nhất định sẽ không bao gồm một tính năng như vậy theo mặc định.

Đối với vấn đề của bạn, trước tiên bạn nên xác định (và viết), càng rõ ràng càng tốt:

  • dữ liệu bạn muốn bảo vệ là gì
  • người nhập dữ liệu
  • người được cho là đọc lại dữ liệu

và sau đó bạn chỉ nên tự hỏi liệu mã hóa có phải là một công cụ thích hợp cho việc đó hay không. Mã hóa tốt khi kẻ tấn công được hình dung có thể nắm được dữ liệu thô được lưu trữ. Điều này có nghĩa là kẻ tấn công đã vượt qua các biện pháp bảo vệ của hệ điều hành. Tại thời điểm đó, bất cứ điều gì hệ điều hành biết, kẻ tấn công cũng biết. Nếu cơ sở dữ liệu được lưu trữ trên một máy và có một giao diện mà thông qua đó, SSN được giải mã có thể lấy được, thì máy đó "biết" cách lấy dữ liệu và kẻ tấn công cũng vậy ... Mặt khác, nếu máy chủ hệ điều hành máy được coi là đủ phục hồi, khi đó dường như không cần mã hóa.

Mã hóa đối xứng trên cơ sở dữ liệu có thể giải quyết một vấn đề yếu hơn, trong đó kẻ tấn công nhận được một bản sao của đĩa cứng sau đó . Hệ thống máy chủ biết khóa mã hóa đối xứng, nhưng nó chỉ biết nó trong RAM. Kẻ tấn công đánh cắp đĩa cứng sẽ không có khóa đó.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Xoay vòng dữ liệu hai lần với sql động và tên cột tùy chỉnh

  2. Đánh giá phần mềm - Stellar Repair cho MS SQL

  3. Khung thực thể - Lấy độ dài của dữ liệu trong một cột văn bản

  4. Tedious hoặc Sequelize sử dụng sai cú pháp cho `findOne () '

  5. Cài đặt Azure Data Studio trên Ubuntu 18.04