Tiểu luận bao gồm 4 chương với các nội dung: định nghĩa và học thuyết mã hóa cơ sở dữ liệu; các mức độ mã hóa - Encryption level; thuật toán mã hóa và mô hình hoạt động Encryption algorithm and mode of operation; hướng phát triển và các vấn đề mở Open problems and Future directions. Mời các bạn cùng tham khảo tiểu luận để nắm chi tiết nội dung nghiên cứu.
Trang 1TRƯỜNG ĐẠI HỌC KHOA HỌC HUẾ KHOA CÔNG NGHỆ THÔNG TIN
TIỂU LUẬN
CƠ SỞ DỮ LIỆU NÂNG CAO
ĐỀ TÀI:
MÃ HÓA CƠ SỞ DỮ LIỆU DATABASE ENCRYPTION
LỚP CAO HỌC: NGÀNH KHOA HỌC MÁY TÍNH
GVHD: PGS.TS NGUYỄN MẬU HÂN THỰC HIỆN: NHÓM 2
Dương Thị Minh Thảo
GIA LAI, 7/ 2018
Trang 2MỤC LỤC
LỜI NÓI ĐẦU 1
MÃ HÓA CƠ SỞ DỮ LIỆU (DATABASE ENCRYPTION) 2
I ĐỊNH NGHĨA VÀ HỌC THUYẾT MÃ HÓA CƠ SỞ DỮ LIỆU 2
1.1 Đinh nghĩa Mã hóa cơ sở dữ liệu - Definition: 2
1.2 Học thuyết mã hóa cơ sở dữ liệu Theory: 2
II CÁC MỨC ĐỘ MÃ HÓA - ENCRYPTION LEVEL 3
2.1 Mức độ mã hóa lưu trữ: Storage-level encryption 3
2.2 Mức độ mã hóa Cớ sở dữ liệu: Database-level encryption 4
2.3 Mức độ mã hóa ứng dụng: Application-level encryption 4
III THUẬT TOÁN MÃ HÓA VÀ MÔ HÌNH HOẠT ĐỘNG: Encryption Algorithm and Mode of Operation 5
IV QUẢN LÝ KHÓA Key Management 6
V CÁC ỨNG DỤNG Applications 7
VI HƯỚNG PHÁT TRIỂN VÀ CÁC VẤN ĐỀ MỞ Open Problems and future directions 9
6.1 Lược đồ mã hóa Encryption Scheme 9
6.2 Các chiến lược mã hóa cơ sở dữ liệu mới New database encryption strategies 10
6.3 Các vấn đề bảo mật khác - Other Security Issues 12
TÀI LIỆU THAMTHẢO 13
Trang 4LỜI NÓI ĐẦU
Hiện này, thời đại công nghệ thông tin đã được toàn cầu hóa với sự trợ giúp của mạng Internet Cùng với sự phát triển của công nghệ thông tin đã thúc đấy sự phát triển kinh tế, xã hội Các hoạt động của các tổ chức xã hội như: Kinh tế, chính trị, văn hóa, quân sự,… Ngoài những thông tin được chia sẻ của các tổ chức lên mạng Internet hay các trang mạng xã hội Bên cạnh đó có những thông tin việc mất mát, rò rỉ thông tin có thể ảnh hưởng nghiêm trọng đến tài chính, sự tồn vong của
tổ chức
Các phương thức tấn công thông qua mạng ngày càng tinh vi, phức tạp có thể dẫn đến mất mát thông tin, thậm chí có thể làm sụp đổ hoàn toàn hệ thống thông tin của tổ chức Vì vậy an toàn và bảo mật thông tin là nhiệm vụ rất nặng nề và khó đoán trước được, nhưng tựu trung lại gồm ba hướng chính sau: Bảo đảm an toàn thông tin tại máy chủ; Bảo đảm an toàn cho phía máy trạm; Bảo mật thông tin trên đường truyền
Vậy vấn đề đặt ra là dự liệu khi được lưu trữ trên may chủ, máy trạm và di chuyển trên đường truyền làm sao bảo về được dữ liệu và chống được các truy cập trái phép cơ sở dữ liệu Nếu dữ liệu vẫn bị hacker tấn công và chiếm đọt quyền truy cập cơ sở dữ liệu, làm sao thông tin vẫn không bị rò rỉ, mất mát Đó là dữ liệu
trước khi lưu trữ ở máy trạm, máy chủ và truyền đi phải được mã hóa Đây là nội dung chính trong tiểu luận của nhóm em về đề tài: Mã hóa cơ sở dữ liệu
(Database Encryption)
Mặc dù đã rất cố gắng nhưng tiểu luận này không tránh khỏi những sai sót Nhóm chúng em rất mong nhận được các ý kiến góp ý của thầy hướng dẫn và các bạn
Xin chân thành cảm ơn PGS.TS NGUYỄN MẪU HÂN đã tận tình hướng dẫn và tạo điều kiện cho chúng em hoàn thành môn học này
Trang 5ĐỀ TÀI:
MÃ HÓA CƠ SỞ DỮ LIỆU (DATABASE ENCRYPTION)
I ĐỊNH NGHĨA VÀ HỌC THUYẾT MÃ HÓA CƠ SỞ DỮ LIỆU
1.1 Đinh nghĩa Mã hóa cơ sở dữ liệu - Definition:
Mã hóa cơ sở dữ liệu đề cập đến việc sử dụng các kỹ thuật mã hóa để biến đổi cơ sở dữ liệu văn bản rõ vào một cơ sở dữ liệu được mã hóa (hoặc một phần cơ
sở dữ liệu), do đó làm cho nó không thể đọc được cho bất kỳ ai ngoại trừ những người có khóa mã hóa, hay kiến thức về các khóa mã hóa
1.2 Học thuyết mã hóa cơ sở dữ liệu Theory:
Bảo mật cơ sở dữ liệu bao gồm ba thuộc tính chính: bảo mật, toàn vẹn và
tính khả sẵn sàng Nói một cách tổng thể, bảo mật thực thi được xác định trước
hạn chế trong khi truy cập dữ liệu được bảo vệ, do đó ngăn chặn việc những người không được phép truy cập Thuộc tính toàn vẹn đảm bảo rằng dữ liệu không thể bị hỏng một cách vô hình Cuối cùng, tính sẵn sàng đảm bảo kịp thời và truy cập đáng tin cậy vào cơ sở dữ liệu
Để bảo mật dữ liệu, hãy thực thi các chính sách kiểm soát truy cập được xác định của Hệ quản trị cơ sở dữ liệu - Database management system (DBMS) là một phương pháp phổ biến Quyền truy cập chính sách kiểm soát, đó là để nói một bộ
ủy quyền, có thể có các hình thức khác nhau tùy thuộc vào mô hình dữ liệu cơ bản (ví dụ, CSDL quan hệ, XML,…) và cách ủy quyền nào được quản lý, sau quyền truy cập Tùy ý kiểm soát (DAC), Kiểm soát truy cập dựa trên vai trò (RBAC) hoặc Kiểm soát truy cập bắt buộc (MAC)
Bất kể mô hình điều khiển truy cập, các ủy quyền được thực thi bởi cơ sở dữ liệu máy chủ có kẻ hở Ví dụ: kẻ xâm nhập có thể xâm nhập hệ thống thông tin và
cố gắng khai thác cơ sở dữ liệu trên đĩa Thực tế là nhiều cơ sở dữ liệu được thuê đặt tại các máy chủ chứa hệ quản trị cơ sở dữ liệu đây là một kiểu lộ thông tin từ nhà cung cấp dịch vụ Nhà cung cấp dịch vụ cơ sở dữ liệu (DSP) Sau đó, chủ sở hữu dữ liệu không có lựa chọn nào khác ngoài tin tưởng DSP rằng hệ thống của họ
Trang 6được bảo đảm đầy đủ và nhân viên của họ ngoài bất kỳ nghi ngờ nào Cuối cùng, một quản trị viên cơ sở dữ liệu (DBA) có đủ đặc quyền để giả mạo kiểm soát truy cập định nghĩa và để theo dõi hành vi DBMS
Với tinh thần của một nguyên tắc cũ và quan trọng được gọi là bảo vệ theo chiều sâu (tức là, lớp bảo vệ như vậy mà kẻ tấn công phải vượt qua lớp sau lớp bảo vệ), với các kỹ thuật mã hóa để bổ sung và củng cố quyền truy cập kiểm soát gần đây đã nhận được nhiều sự chú ý từ cộng đồng cơ sở dữ liệu Mục đích của mã hóa
cơ sở dữ liệu là đảm bảo độ mờ của cơ sở dữ liệu bằng cách giữ thông tin bị ẩn với bất kỳ người nào không được phép (ví dụ: kẻ xâm nhập) Thậm chí nếu những kẻ tấn công có được các chính sách kiểm soát truy cập tường lửa và bỏ qua lớp bảo
vệ, họ vẫn cần các khóa mã hóa để giải mã dữ liệu
Mã hóa có thể cung cấp bảo mật mạnh cho dữ liệu khi đã mã hóa, nhưng phát triển chiến lược mã hóa cơ sở dữ liệu phải cân nhắc nhiều yếu tố Ví dụ, nơi cần được thực hiện mã hóa, trong lớp lưu trữ, trong cơ sở dữ liệu hoặc trong ứng dụng nơi dữ liệu đã được tạo ra? Số lượng dữ liệu nên được mã hóa để bảo mật đầy đủ? Nên dùng thuật toán gì để mã hóa? Ai nên có quyền truy cập vào các khóa mã hóa? Làm thế nào để giảm thiểu tác động của mã hóa cơ sở dữ liệu lên dữ liệu?
II CÁC MỨC ĐỘ MÃ HÓA - ENCRYPTION LEVEL
2.1 Mức độ mã hóa lưu trữ: Storage-level encryption
Để mã hóa dữ liệu trong các hệ thống con lưu trữ và do đó bảo vệ dữ liệu đầu cuối (ví dụ,
bị trộm cắp phương tiện lưu trữ) Việc này rất thích hợp cho mã hóa tệp hoặc toàn bộ thư mục trong hệ điều hành Theo quan điểm cơ sở dữ liệu, mã hóa mức lưu trữ có lợi thế để minh bạch,
do đó tránh bất kỳ sự thay đổi nào đối với các ứng dụng hiện hành Mặt khác, các hệ thống con lưu trữ không có hiểu biết về các đối tượng và cấu trúc cơ sở dữ liệu, nên chiến lược mã hóa không thể liên quan đến các quyền của người dùng (ví dụ: dùng các khóa mã hóa cho người dùng riêng biệt để sử dụng cơ sở dữ liệu), cũng như độ nhạy cảm của dữ liệu Do đó, mã hóa chọn lọc - tức là, chỉ mã hóa một phần của cơ sở dữ liệu để giảm chi phí mã hóa - được giới hạn
ở mức độ chi tiết của tệp Tuy nhiên, các tập tin mã hóa chọn lọc là rủi ro vì người ta phải đảm bảo rằng không có bản sao dữ liệu nhạy cảm nào vẫn không được mã hóa (ví dụ: trong tệp nhật
ký log file, tệp tạm thời temporary file, v.v.)
Trang 72.2 Mức độ mã hóa Cớ sở dữ liệu: Database-level encryption
Mức độ mã hóa CSDL cho phép bảo mật dữ liệu khi nó được chèn vào, hoặc được lấy dữ liệu ra từ cơ sở dữ liệu Do đó, chiến lược mã hóa có thể là một phần của thiết kế cơ sở dữ liệu và có thể liên quan đến độ nhạy dữ liệu hoặc đặc quyền của người dùng
Mã hóa chọn lọc có thể thực hiện được và có thể được thực hiện ở nhiều mức chi tiết khác nhau, chẳng hạn như bảng, cột, hàng Nó thậm chí có thể liên quan đến một số điều kiện logic Tùy thuộc vào mức độ tích hợp của tính năng mã hóa trong các DBMS, quá trình mã hóa có thể phát sinh một số thay đổi thành ứng dụng Hơn nữa, nó có thể làm giảm hiệu suất DBMS vì mã hóa thường cấm sử dụng chỉ mục trên dữ liệu được mã hóa Thật vậy, trừ khi sử dụng thuật toán mã hóa cụ thể hoặc phương thức mã hóa, lập chỉ mục dữ liệu được mã hóa là vô dụng
Đối với cả hai chiến lược trên, dữ liệu được giải mã trên máy chủ cơ sở dữ liệu khi chạy Như vậy, các khóa mã hóa phải được truyền hoặc giữ với dữ liệu được mã hóa trên phía máy chủ, do đó cung cấp sự bảo vệ hạn chế đối với quản trị viên máy chủ hoặc bất kỳ kẻ xâm nhập nào chiếm đoạt quyền người quản trị Bởi
vì, kẻ tấn công có thể do thám bộ nhớ và khám phá các khóa mã hóa hoặc dữ liệu văn bản rõ
2.3 Mức độ mã hóa ứng dụng: Application-level encryption
Mức độ mã hóa ứng dụng là di chuyển quá trình mã hóa / giải mã tới tầng ứng dụng khi tạo, xử lý dữ liệu Do đó, mã hóa được thực hiện ở tầng ứng dụng sau đó lưu trữ dữ liệu đã mã hóa vào hệ cơ sở dữ liệu Việc lưu trữ và truy xuất dữ liệu được mã hóa một cách tự nhiên, cuối cùng dữ liệu được giải mã thực hiện tại tầng ứng dụng Cách tiếp cận này có lợi ích để tách các khóa mã hóa khỏi dữ liệu được mã hóa được lưu trữ trong cơ sở dữ liệu vì các khóa không bao giờ phải rời khỏi phía tầng ứng dụng Tuy nhiên, các ứng dụng cần được sửa đổi để áp dụng giải pháp này Ngoài ra, tùy thuộc vào mức chi tiết mã hóa, các ứng dụng có thể phải truy xuất một tập dữ liệu lớn hơn dữ liệu thực tế cấp cho người dùng Người dùng (hoặc bất kỳ kẻ tấn công nào có quyền truy cập vào máy nơi ứng dụng chạy)
có thể tấn công ứng dụng để truy cập dữ liệu trái phép
Trang 8Chiến lược trên gây ra chi phí cao hoạt động (chỉ mục trên dữ liệu được mã hóa vô ích) và hạn chế một số chức năng nâng cao trong cơ sở dữ liệu trên dữ liệu
được mã hóa, giống như các thủ tục được lưu trữ store procedure(mã được lưu trữ trong DBMS có thể là được chia sẻ và gọi bởi một số ứng dụng) và trigger (mã
được kích hoạt khi một số dữ liệu trong cơ sở dữ liệu được sửa đổi) Xét về độ chi tiết và khóa quản lý, mã hóa cấp ứng dụng mang lại sự linh hoạt cao nhất kể từ khi
độ chi tiết mã hóa và các khóa mã hóa có thể được chọn tùy thuộc vào logic ứng dụng
Hình 1 Ba chiến lược mã hóa cơ sở dữ liệu
III THUẬT TOÁN MÃ HÓA VÀ MÔ HÌNH HOẠT ĐỘNG: Encryption Algorithm and Mode of Operation
Độc lập với chiến lược mã hóa, bảo mật dữ liệu được mã hóa phụ thuộc vào thuật toán mã hóa, kích thước khóa mã hóa Ngay cả khi đã sử dụng các thuật toán mạnh, chẳng hạn như AES, các văn bản mã hóa vẫn có thể tiết lộ thông tin văn bản
rõ nếu không có chế độ bảo mật phù hợp Ví dụ, nếu thuật toán mã hóa được thực hiện trong chế độ sách điện tử (ECB), giống hệt nhau các khối văn bản được mã hóa thành các khối văn bản mã hóa giống hệt nhau Điều này tiết lộ các mẫu lặp đi lặp lại và bị phá với việc so sánh các mẫu Trong bối cảnh cơ sở dữ liệu, mô hình lặp lại phổ biến như nhiều các bản ghi có thể có cùng các giá trị thuộc tính, vì thế phải cần lưu ý khi chọn chế độ mã hóa Hơn nữa, các giải pháp đơn giản có thể
Trang 9hoạt động ở các giải pháp khác ngữ cảnh, có thể không thành công trong cơ sở dữ liệu vì dữ liệu thường xuyên được cập nhật với dữ liệu trước đó
Tất cả các đặc trưng của mgữ cảnh cơ sở dữ liệu như dữ liệu có tính lặp đi lặp lại các mẫu, cập nhật, khối lượng lớn dữ liệu được mã hóa nên được xem xét để hướng dẫn lựa chọn một thuật toán mã hóa đầy đủ và mô hình hoạt động Hơn nữa, việc bảo vệ nên đủ mạnh vì dữ liệu có thể hợp lệ trong một thời gian rất dài (vài năm) Do đó, thuật toán mã hóa hiện đại và mô hình hoạt động (không có bất kỳ nhượng quyền) nên được sử dụng
IV QUẢN LÝ KHÓA Key Management
Quản lý khóa đề cập đến cách các khóa mã hóa được tạo ra và được quản lý trong suốt thời gian sống của chương trình, cơ sở dữ liệu Bởi vì mật mã dựa trên các khóa mã hóa và giải mã dữ liệu, giải pháp bảo vệ cơ sở dữ liệu chính là bảo vệ của các khóa Do đó, vị trí của các khóa mã hóa và hạn chế truy cập của chúng đặc biệt quan trọng Vì vấn đề khá độc lập với mức mã hóa, cho nên giả định sau đây được đề xuất cho mức mã hóa cấp cơ sở dữ liệu
Đối với mã hóa cấp cơ sở dữ liệu, một giải pháp dễ dàng là lưu trữ các khóa trong một bảng hoặc tệp cơ sở dữ liệu bị hạn chế, có khả năng được mã hóa bằng khóa chính (khóa chính được lưu trữ một nơi nào đó trên máy chủ cơ sở dữ liệu) Nhưng tất cả quản trị viên có quyền truy cập đặc quyền cũng có thể truy cập các khóa này và giải mã mọi dữ liệu trong hệ thống mà không bao giờ bị phát hiện
Để khắc phục vấn đề này, các chipset mã hóa giả mạo chuyên dụng, được gọi là module bảo mật phần cứng (HSM - Hardware Security Module), có thể được
sử dụng để cung cấp lưu trữ bảo mật an toàn cho các khóa mã hóa Nói chung, các khóa mã hóa được lưu trữ trên máy chủ được mã hóa bằng khóa chính được lưu trữ trong HSM Tại thời điểm khi mã hóa / giải mã, các khóa được mã hóa được giải
mã một cách tự động bằng HSM (sử dụng khóa chính) và xóa khỏi bộ nhớ máy chủ ngay khi các hoạt động mã hóa thực hiện, như trong Hình 2.a
Trang 10Hình 2 Quản trị khóa
Một giải pháp thay thế là chuyển các nhiệm vụ liên quan đến bảo mật sang phần mềm riêng biệt chạy trên một máy chủ khác (vật lý), được gọi là máy chủ bảo mật, như trong Hình 2.b Sau đó, máy chủ bảo mật quản lý người dùng, vai trò, đặc quyền, chính sách mã hóa và các khóa mã hóa (có khả năng dựa vào HSM) Trong DBMS, một module bảo mật giao tiếp với máy chủ bảo mật để xác thực người dùng, kiểm tra đặc quyền và mã hóa hoặc giải mã dữ liệu Sau đó, các khóa mã hóa
có thể được liên kết với người dùng hoặc cho đặc quyền của người dùng Một sự phân biệt rõ ràng cũng được thực hiện giữa vai trò của DBA, quản lý tài nguyên cơ
sở dữ liệu và vai trò của SA (Security Administrator), quản trị các thông số bảo mật Để đảm bảo an toàn thông tin cho cơ sở dữ liệu bởi những cuộc tấn công cần đòi hỏi có sự liên kết giữa DBA và SA
Trong khi thêm máy chủ bảo mật và / hoặc HSM giảm thiểu mức độ tiếp xúc với các khóa mã hóa, nó không bảo vệ hoàn toàn cơ sở dữ liệu Thực sự là các khóa mã hóa, cũng như dữ liệu được giải mã vẫn xuất hiện (một thời gian ngắn) trong bộ nhớ máy chủ cơ sở dữ liệu và có thể là mục tiêu của kẻ tấn công
V CÁC ỨNG DỤNG Applications
Hầu hết các nhà sản xuất DBMS cung cấp mã hóa tự nhiên cho các nhà phát triển ứng dụng bao gồm các biện pháp bổ sung bảo mật dữ liệu thông qua mã hóa chọn lọc dữ liệu được lưu trữ Như Oracle8i / 9i có bộ công cụ mã hóa, hoặc IBM
Trang 11DB2 với các chức năng có thể được nhúng trong các câu lệnh SQL, hoặc Sybase
và SQL Server 2005 có các phần mở rộng của SQL Để hạn chế chi phí hoạt động,
mã hóa chọn lọc thường có thể được thực hiện ở cấp cột nhưng có thể liên quan đến việc thay đổi cơ sở dữ liệu lược đồ để chứa dữ liệu nhị phân phát sinh từ quá trình mã hóa
SQL Server 2008 giới thiệu TDE (Transparent Data Encryption - mã hóa dữ liệu trong suốt) thực sự rất giống với mã hóa mức lưu trữ Toàn bộ cơ sở dữ liệu được bảo vệ bởi một khóa duy nhất (DEK for Database Encryption Key), có khả năng tự bảo vệ bởi độ phức tạp hơn, kể cả khả năng sử dụng HSM TDE thực hiện tất cả các hoạt động mã hóa ở cấp I/O, nhưng trong hệ thống cơ sở dữ liệu lại loại
bỏ bất kỳ nhu cầu nào cho các nhà phát triển ứng dụng tạo mã tùy chỉnh để mã hóa
và giải mã dữ liệu
TDE (cùng tên với SQL Server nhưng các chức năng khác nhau) đã được được giới thiệu trong Oracle10g / 11g, mở rộng đáng kể khả năng sử dụng mã hóa trong DBMS Giờ đây, khóa mã hóa có thể được quản lý bởi HSM hoặc được lưu trữ trong một tập tin mở rộng mà được bảo mật bằng cách sử dụng mật khẩu của người quản trị Mã hóa chọn lọc có thể được thực hiện tại cột mức độ chi tiết hoặc lớn hơn một hoặc một số bảng và chỉ mục Để tránh việc phân tích dữ liệu được
mã hóa, Oracle đề xuất trong quá trình mã hóa Salt, một chuỗi 16 byte ngẫu nhiên được lưu trữ với mỗi giá trị thuộc tính được mã hóa
Mã hóa cấp độ cơ sở dữ liệu với phương pháp máy chủ bảo mật được đề cập
ở trên là đề xuất bởi IBM DB2 với chuyên gia mã hóa dữ liệu DEE và bởi bên thứ
ba các nhà cung cấp như Protegrity , RSA BSAFE và SafeNet Các sản phẩm của nhà cung cấp bên thứ ba có thể thích ứng với hầu hết các công cụ DBMS (Oracle, IBM DB2, SQL Server và Sybase)