Chương III: Thực hiện demo việc mã hóa dữ liệu trong SQL Server 3.1Demo áp dụng mã hóa dữ liệu mức cột

Một phần của tài liệu nghiên cứu, tìm hiểu một số vấn đề liên quan đến việc bảo đảm an toàn trong SQL server 2012 (Trang 38 - 45)

Trong phần này chúng tôi thực hiện các thao tác cơ bản khi áp dụng giải pháp mã hóa dữ liệu mức cột trong SQL server 2012 như sau:

• Tạo cơ sở dữ liệu và tạo bảng

• Xây dựng thủ tục thực hiện mã hóa dữ liệu

• Thực hiện thêm dữ liệu vào bảng có áp dụng mã hóa

• Truy xuất dữ liệu trong bảng, thực hiện giải mã dữ liệu khi xem dữ liệu • Một số đánh giá

Bước 1: Tạo cơ sở dữ liệu HSCB_ENC, tạo bảng canhan gồm các cột stt, hoten, ngaysinh, sothe, diachi. Cột sothe lưu thông mã số tài khoản của một người và chúng thực hiện mã hóa dữ liệu của cột này.

Bước 2: Thực hiện xây dụng các thủ tục lưu trữ sau

• Thủ tục tao_khoa: Thực hiện chức năng tạo các khóa mã hóa dữ liệu gồm:

o Khóa chủ cơ sở dữ liệu: Có tên là masterkey@HSCB_ENC, sử dụng để mã hóa khóa riêng của chứng chỉ. Được bảo vệ bằng mật khẩu.

o Chứng chỉ: Có tên là HSCB_ENC_CER, sử dụng để bảo vệ khóa đối xứng

o Khóa đối xứng: Có tên là khoa_canhan, sử dụng để mã hóa dữ liệu trong bảng canhan

• Thủ tục xoa_khoa: Thực hiện xóa các khóa được tạo trong thủ tục tạo khóa, gồm các khóa đối xứng, chứng chỉ, khóa chủ cơ sở dữ liệu

• Thủ tục them_dulieu: Thủ tục này thực hiện chức năng thêm dữ liệu vào trong bảng, trong quá trình này thực hiện mã hóa dữ liệu chứa thông tin tài khoản trước khi ghi vào bảng

• Thủ tục thục hiện giải mã dữ liệu: Thực hiện truy xuất toàn bộ các bản ghi trong bảng canhan. Trong đó thực hiện giải mã cột dữ liệu sothe.

Bước 3: Thực hiện thêm một số dữ liệu vào bảng, cần thực hiện các bước sau • Thực hiện tạo khóa, sử dụng thủ tục tao_khoa nếu các khóa này chưa tồn tại.

Thực hiện lệnh EXEC tao_khoa

• Thực hiện thủ tục them_dulieu để chèn một bản ghi vào bảng, trong đó thông tin tài khoản sẽ được mã hóa, ví dụ như hình thực hiện thêm 4 bản ghi vào bảng cá nhân

Bước 4: Hình sau hiển thị các thông tin vừa nhập vào trong bảng cá nhân. Thông tin trong cột sothe là thông tin về tài khoản cá nhân đã được mã hóa. Chúng tôi thấy rằng trong mỗi bản mã (mỗi ô dữ liệu) đều gắn thêm chỉ số của khóa đối xứng (khoa_canhan) được sử dụng để mã hóa dữ liệu.

Để giải mã dữ liệu của cột và hiển thị dữ liệu trong bảng canhan, chúng ta thực hiện thủ tục xem_dulieu. Hình sau hiển thị dữ liệu trong bảng canhan.

Tóm lại sau khi thực hiện những thao tác mã hóa đơn giản để mô phỏng quá trình thực hiện, chúng tôi thấy rằng:

• Dữ liệu cột sothe được mã hóa bằng thuật toán AES, với độ dài khóa 256 bit

• Khóa mã dữ liệu này được bảo vệ bằng chứng chỉ, và chứng chỉ được bảo vệ bởi khóa chủ cơ sở dữ liệu. Và cuối cùng khóa chủ cơ sở dữ liệu được bảo vệ bởi mật khẩu.

• Trong hàm giải mã trong SQL Server, chúng ta chỉ cần cung cấp bản mã mà không cần cung cấp thông tin gì về khóa giải mã vì mỗi bản mã đều có gắn thêm chỉ số của các khóa dùng để mã hóa. Do đó khi thực hiện giải mã, SQL Server sẽ lấy chỉ số khóa từ bản mã, tìm trong bộ nhớ của nó xem đã được mở chưa. Nếu khóa này đã mở thì sẽ giải mã cho bản rõ, còn không trả về giá trị NULL

3.2 Demo áp dụng công nghệ mã hóa dữ liệu trong suốt - TDE

Một phần của tài liệu nghiên cứu, tìm hiểu một số vấn đề liên quan đến việc bảo đảm an toàn trong SQL server 2012 (Trang 38 - 45)