Hiểu mã hóa và sao lưu MS SQL Server


13

Vì vậy, tôi đã hỏi trong cuộc trò chuyện về cách các tệp sao lưu SQL Server an toàn.

Tôi được thông báo rằng nếu kẻ tấn công có quyền truy cập vào tệp .bak không được mã hóa thì chúng có thể có quyền truy cập vào dữ liệu.

Vì vậy, hãy nhìn vào kịch bản này:

OPEN SYMMETRIC KEY MySymetricKey DECRYPTION
BY CERTIFICATE MyCertificate

thông báo - không có mật khẩu ở đây.

và sau đó chúng tôi mã hóa các bảng của mình bằng cách:

UPDATE tbl1
 SET namePAss = ENCRYPTBYKEY(KEY_GUID('MySymetricKey'),name)
GO

Bây giờ hãy nói rằng một hacker đã lấy baktập tin của tôi . Tất cả những gì anh ta phải làm để xem dữ liệu (trong máy tính của mình và máy chủ sql) là:

SELECT  
       convert( NVARCHAR(max), decryptbykey(namePAss)) 
FROM tbl1

Anh ta vẫn có thể truy cập dữ liệu chứ?

Câu trả lời:


9
OPEN SYMMETRIC KEY MySymetricKey DECRYPTION`  
 BY CERTIFICATE MyCertificate`

thông báo - không có mật khẩu ở đây.

Có, có. Bạn đã mở chứng chỉ MyCertificate bằng cách nào đó , phải không? Có thể có một vài trường hợp, nhưng bất kỳ trường hợp nào cũng kết thúc bằng mật khẩu:

  • bạn đã mở chứng chỉ bằng mật khẩu (rõ ràng, có một mật khẩu trong trường hợp này)
  • chứng chỉ được mã hóa bằng khóa chính cơ sở dữ liệu và bạn đã mở khóa chính cơ sở dữ liệu bằng mật khẩu DBMK -> đó là mật khẩu
  • chứng chỉ được mã hóa bằng khóa chính cơ sở dữ liệu và DBMK được mã hóa bằng khóa chính dịch vụ. Khóa chủ dịch vụ lần lượt được mở bằng khóa lưu trữ DPAPI của tài khoản dịch vụ, được mã hóa bằng mật khẩu tài khoản -> và đó là mật khẩu

Trong khóa cuối cùng dường như không có mật khẩu, nhưng có một: mật khẩu tài khoản dịch vụ. Bản sao lưu, khi được khôi phục trên một máy chủ khác, nó sẽ thiếu mã hóa khóa chính dịch vụ của khóa chính cơ sở dữ liệu và điều này sẽ làm cho dữ liệu không thể truy cập được.

Xem mã hóa Hiearchy


HI, vâng, có một mật khẩu nhưng trong giai đoạn trước. khi tôi tạo bởi: CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'DB Master key password!' GO- Tôi đã tạo nó bằng mật khẩu. nhưng điều kỳ lạ là khi tôi mở nó - tôi không cần mật khẩu, đây thực sự là mã bạn đã dán. Đây là điều mà tôi không hiểu. Nếu tôi là một hacker - tôi không quan tâm đến mật khẩu được sử dụng để tạo nó. tất cả những gì tôi cần làm là OPEN SYMMETRIC KEY MySymetricKey DECRYPTION B CNG CHỨNG NHẬN MyCertert` và không có mật khẩu nào ở đây. làm ơn sửa cho tôi
Royi Namir

3
@RoyiNamir Xem điểm đạn cuối cùng của Remus. Bạn không chỉ định mật khẩu nhưng chứng chỉ được bảo vệ, cuối cùng trong trường hợp này là mật khẩu tài khoản dịch vụ.
Mark Storey-Smith

@Remus bạn có thể vui lòng xem câu hỏi mới của tôi (rất liên quan) dba.stackexchange.com/questions/29287/ Kẻ
Royi Namir

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.