Triển khai bảng được mã hóa trong SQL Azure


7

Tôi đang chuyển một Ứng dụng sang Azure và cần đạt được sự tuân thủ PCI cho một vài cột trong một bảng. Tôi nhận ra rằng tôi có thể mã hóa dữ liệu trước khi lưu trữ, nhưng tôi tự hỏi liệu có một tính năng nào trong SQL Azure có thể quản lý một phần này cho tôi không. Tôi đã đọc xong nhưng tôi không chắc là gì; hoặc là không; được hỗ trợ trong SQL Azure.

Tôi đã đọc về các mẫu bằng SQL Server ( chứ không phải SQL Azure ) nơi mã hóa & giải mã dữ liệu được áp dụng phía sau Chế độ xem. Trong trường hợp đó, tất cả các máy khách truy cập dữ liệu qua Chế độ xem và do đó được trừu tượng hóa từ quy trình Mã hóa / Mã hóa. Nói vậy, có vẻ hơi nguy hiểm.

Tôi cởi mở với bất kỳ và tất cả các đề xuất về cách xử lý tình huống này.

Câu trả lời:


4

Câu trả lời ngắn: kể từ ngày 20 tháng 4 năm 2012, mã hóa cột không được hỗ trợ trong SQL Azure, hãy xem: http://msdn.microsoft.com/en-us/l Library / windowsazure / e336253.aspx và tìm kiếm ENCRYPT. Bạn sẽ thấy rằng tất cả các chức năng mã hóa được liệt kê là không được hỗ trợ.

Nếu bạn cần mã hóa dữ liệu của mình khi nghỉ ngơi và phải hỗ trợ SQL Azure thì bạn sẽ phải thực hiện mã hóa ở cấp ứng dụng. Điều này khó thực hiện hơn vì có nhiều cách thực hành mã hóa tốt (sử dụng nonces làm vectơ khởi tạo cho mỗi ô, quản lý khóa để theo dõi khóa nào mã hóa cột nào, xác minh tính toàn vẹn, bảo vệ lớp mã hóa với quyền dựa trên vai trò) bạn sẽ có để thực hiện chính mình. Tôi thực sự khuyên bạn nên nhờ một chuyên gia bảo mật làm việc với bạn về mã hóa vì đây là thách thức để có được quyền và nếu bạn bỏ lỡ điều gì đó thì bạn có cảm giác an toàn sai lầm có thể thực sự đốt cháy bạn sau này.

Bạn có thể xem http://securentity.codeplex.com , nơi tuyên bố là một giải pháp để quản lý dữ liệu được mã hóa và hỗ trợ SQL Azure. Cá nhân tôi chưa sử dụng nó, tôi cũng không thể chứng minh tính đúng đắn của nó, nhưng đó là một lựa chọn tiềm năng.

Thông tin khác:

Trong SQL Server, mã hóa mức cột rất dễ dàng và rất an toàn (ngay cả với chế độ xem) vì bạn có thể sử dụng các vai trò để quản lý ai có thể truy cập các khóa mã hóa. Ngay cả khi người dùng có thể chọn từ chế độ xem, nếu họ không được cấp quyền truy cập vào khóa mã hóa dữ liệu cơ bản thì họ sẽ lấy lại NULL cho các cột được mã hóa đó. Tôi có một bộ mã mẫu cho SQL Server 2005 và cao hơn thể hiện khả năng mã hóa của SQL Server tại đây: http://sqlcrypto.codeplex.com


1

Windows Azure tuân thủ Cấp độ 1 theo Tiêu chuẩn bảo mật dữ liệu công nghiệp thẻ thanh toán (PCI) được xác minh bởi Người xác nhận bảo mật đủ điều kiện độc lập (QSA), cho phép các thương nhân thiết lập môi trường chủ thẻ an toàn và đạt được chứng nhận của riêng họ.

https://www.windowsazure.com/en-us/support/trust-center/compliance/

Để mã hóa bảng SQL được lưu trữ trong Azure, cách dễ nhất là chỉ cần quay phiên bản SQL IaaS và bật mã hóa TDE hoặc mức cột. (Thay vì sử dụng sản phẩm SQL Azure PaaS, không hỗ trợ mã hóa dữ liệu trong suốt hoặc mã hóa cấp độ tế bào).

Có rất nhiều yêu cầu bảo mật khác để xem xét ngoài việc mã hóa số thẻ tín dụng.


0

Kể từ hôm nay, liên quan đến bài viết MSDN và thông tin tương thích do Microsoft Docs cung cấp, cả hai tính năng được liệt kê bên dưới đều có sẵn trong Cơ sở dữ liệu Azure SQL (PaaS).

Vì vậy, bạn chỉ cần sử dụng các tính năng đó để đáp ứng yêu cầu của mình và giữ toàn bộ quá trình mã hóa phía sau hậu trường.

Đây là một liên kết đến một bản tóm tắt tổng thể trình bày các khía cạnh bảo mật của cơ sở dữ liệu Azure và có thể là điểm khởi đầu để chuẩn bị một kiến ​​trúc bảo mật thích hợp.

Từ kinh nghiệm của tôi, tôi có thể nói rằng, bạn nên cẩn thận nếu hệ thống của bạn được phân chia giữa môi trường Azure và OnPremises. Trong trường hợp này, có thể có một chút khó khăn khi thiết lập mọi thứ (ủy quyền, đồng bộ hóa).

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.