Đặt vấn đề Ngày nay, việc ứng dụng các hệ thống thông tin quản lý tại các tổ chức, doanh nghiệp đã trở thành xu hướng tất yếu và ngày càng phổ biến. Trái tim của các hệ thống này chính là cơ sở dữ liệu (CSDL), nơi mà người chủ sở hữu dữ liệu (Data Owner - DO) có thể dễ dàng lưu trữ, quản lý và phân phối thông cho các hoạt động của tổ chức, doanh nghiệp. Có hai hình thức triển khai CSDL: là triển khai trong hạ tầng của nội bộ tổ chức (in house database) và triển khai trên nền tảng hạ tầng thuê ngoài của các nhà cung cấp dịch vụ (Database Service Provider – DSP) như Amazon RDS, Microsoft SQL Azure, Heroku PostegreSQL, VNPT, Mắt bão, … Với hình thức triển khai nội bộ, DO phải đầu tư hệ thống máy chủ gồm: máy tính, hệ điều hành, hệ quản trị CSDL và nhân viên vận hành hệ thống. Khi nhu cầu lưu trữ và xử lý dữ liệu tăng đòi hỏi DO phải tốn chi phí cho nâng cấp phần cứng, cập nhập bản quyền phần mềm, phát triển đội ngũ nhân viên.
Vì vậy hình thức triển khai CSDL trên hạ tầng thuê ngoài từ các nhà cung cấp dịch vụ (DSP) hay còn gọi là CSDL thuê ngoài (Outsourced Database Service – ODBS) ngày càng được các tổ chức, doanh nghiệp quan tâm lựa chọn [1] (Hình 1 mô tả xu hướng sử dụng điện toán đám mây trong đó bao gồm cả ODBS) nhằm tối ưu chi phí và nâng cao hiệu quả hoạt động. Trong trường hợp này, chủ sở hữu dữ liệu không phải quan tâm tới vấn đề quản trị và đầu tư phần cứng, phần mềm, đường mạng, đội ngũ nhân viên…, tất cả đều được đảm bảo tốt bởi DSP. Nhu cầu sử dụng điện toán đám mây tại các tổ chức – doanh nghiệp (Nguồn: https://www.com/whitepaper/2017-spotlight-report-cloud- security8123195/) Theo nghiên cứu trong tài liệu [2], các đối tượng tham gia mô hình quản lý CSDL thuê ngoài cũng như CSDL nội bộ đều bao gồm: - Server/CloudServer: lưu trữ dữ liệu, cũng là nơi cài đặt hệ quản trị cơ sở dữ liệu và các dịch vụ hỗ trợ quản lý dữ liệu. - Người sở hữu dữ liệu (Data Owner – DO): là người có quyền kiểm soát, quản lý dữ liệu, cấp và phân quyền truy cập dữ liệu tới người dùng.
- Người khai thác dữ liệu/ Người dùng cuối (Data User -DU): là đối tượng được 4 DO cấp quyền truy vấn hoặc cập nhật CSDL thuê ngoài nằm trên DSP thông qua các hệ thống phần mềm quản lý. Để đảm bảo an toàn thông tin tin cho cơ sở dữ liệu, DO thường sử dụng các phương pháp- kỹ thuật – chức năng bảo mật được cung cấp sẵn trên các Hệ quản trị CSDL quan hệ phổ biến như Oracle, SQL Server, My SQL,. Cụ thể, sử dụng khả năng kiểm soát truy nhập (access control) để giới hạn quyền tiếp cận dữ liệu của người dùng cuối; sử dụng mã hóa dữ liệu nhiều mức như mã ô, dòng, cột, .; hoặc mã hóa trong suốt (TDE - Transparent Data Encryption) để mã toàn bộ các bảng, tệp dữ liệu, tệp sao lưu ở trạng thái nghỉ [3]. Tuy nhiên, các giải pháp mã hóa dữ liệu truyền thống nêu trên đã để lộ ra nhiều điểm yếu khi áp dụng vào CSDL thuê ngoài (ODBS), bởi nhà cung cấp dịch vụ có thể truy nhập vào máy chủ, hay hệ quản trị CSDL thông qua quyền quản trị cao nhất.
Khi đó bài toán đảm bảo an toàn, ngăn cấm sự truy cập bất hợp pháp của các tổ chức/cá nhân không có thẩm quyền, kể cả nhà cung cấp dịch vụ lên các ODBS trở nên vô cùng quan trọng. Hình 2 đã chỉ ra các tổ chức - doanh nghiệp khi triển khai CSDL thuê ngoài luôn đặt các rủi ro liên quan tới bảo mật dữ liệu là yếu tố quan tâm hàng đầu [1]. Vấn đề rủi ro khi sử dụng điện toán đám mây (Nguồn: https://www.com/whitepaper/2017-spotlight-report-cloud- security8123195/) Rõ ràng ODBS nói riêng và DSP nói chung là một môi trường không tin cậy về mặt an toàn dữ liệu (untrusted model), lúc này cách tốt nhất để bảo mật thông tin là DO cần phải có các chính sách bảo vệ dữ liệu trên môi trường mạng, bảo vệ người dùng khi truy xuất dữ liệu của mình. Đặc biệt DO cần phải có biện pháp che giấu nội dung dữ liệu (bằng phương pháp mã hóa dữ liệu) trong tất cả các khâu: lưu trữ, truyền tải và truy vấn, để thông tin chứa trong dữ liệu luôn trong suốt trên máy chủ và đường truyền.
Việc này đồng nghĩa: DO sẽ mã hóa dữ liệu trước khi lưu trữ tại trên ODBS phải không tồn tại các khóa hay hàm mã – giải mã, mọi yêu cầu truy vấn dữ liệu rõ từ người dùng cuối sẽ được biến đổi thành truy vấn trên dữ liệu đã mã hóa tại ODBS. Tuy nhiên dữ liệu (dạng số, chữ, logic, ngày tháng …) sau khi mã hóa (bởi các thuật toán mật mã tiêu chuẩn như AES, DES, Blowfish, RSA …) [4] sẽ không còn giữ được các tính chất vốn có ban đầu như: thứ tự, so sánh, tính toán, … nên việc thực thi truy vấn 5 trên dữ liệu mã trở thành một thách thức lớn khi triển khai CSDL thuê ngoài mã hóa. Vì vậy, các mô hình-lược đồ hỗ trợ tìm kiếm/truy vấn trên dữ liệu mã (Searchable Encryption-SE) được quan tâm nghiên cứu, đề xuất và liên tục cải tiến trong nhiều năm qua với mục tiêu thỏa mãn các yêu cầu sau [2][5]: - Yêu cầu chung: tồn tại khu vực độc lập với ODBS và có tin cậy cao (có thể là Client hoặc Proxy) để quản lý khóa, thực hiện các thao tác mã – giải mã, biến đổi câu lệnh truy vấn một cách an toàn. - Yêu cầu với dữ liệu lưu trên CSDL thuê ngoài: dữ liệu nhạy cảm phải được mã hóa bằng các giải thuật an toàn, hỗ trợ tìm kiếm được trên các bản mã này.
Bên cạnh đó dữ liệu mã nói trên phải đảm bảo tối đa khả năng chống tấn công suy diễn, tấn công dựa trên thống kê tần suất, …cũng như đảm bảo hiệu năng truy vấn. - Yêu cầu với câu truy vấn khi gửi lên DSP: các thành phần nhạy cảm trong câu truy vấn rõ (ví dụ các từ khóa trong mệnh đề điều kiện) phải được biến đổi hoàn toàn về dạng mã hỗ trợ tìm kiếm khi gửi về ODBS. Bên cạnh đó, câu truy vấn sau khi biến đổi cũng phải chống được DSP suy diễn nội dung mà người dùng muốn tìm kiếm dựa trên các kỹ thuật: thống kê tần suất thực thi một mẫu câu truy vấn nào đó, hay dò đoán từ khóa truy vấn dựa trên số lượng bản ghi trả về. Một yêu cầu khác nữa là việc biến đổi câu truy vấn phải được thực hiện ở một khu vực an toàn dưới sự kiểm soát của DO.
- Yêu cầu với dữ liệu trả về sau khi truy vấn trên DSP: dữ liệu trả về phải ở dạng mã hóa sao cho DSP khó có thể biết được kết quả người dùng đang truy vấn là gì, cũng như không thể suy luận được thông tin gì từ tập dữ liệu trả về. Vì vậy, tập dữ liệu này đôi khi phải chấp nhận sự dư thừa sau đó sẽ được giải mã và thực hiện truy vấn lại tại khu vực an toàn do DO giám sát. Mô hình thực thi truy vấn CSDL quan hệ mã hóa trên DAS (Database As a Services) [6] được Hacigimus đề xuất như một khuôn mẫu trong việc mô tả các thành phần và giai đoạn xử lý dữ liệu của lược đồ SE. Trong mô hình đã thể hiện khu vực ServerSite tương ứng với CSDL thuê ngoài nằm trên DSP; khu vực ClientSite tương ứng với vùng an toàn do DO kiểm soát; và thành phần User tương ứng với người dùng cuối.
Xử lý câu lệnh truy vấn trên dữ liệu mã hóa với mô hình DAS [6] Dựa vào các phân tích ở trên chúng ta có thể thấy tính cấp thiết và ý nghĩa thực tiễn 6 của việc phát triển các phương pháp hỗ trợ tìm kiếm trên mã (thuật ngữ gọi là SE) khi triển khai CSDL thuê ngoài (trong đó CSDL quan hệ thuê ngoài là khá phổ biến). Có hàng loạt các yêu cầu phức tạp đặt ra với các mô hình SE, vì vậy để thiết kế mô hình SE đảm bảo mọi tiêu chí là vô cùng khó khăn. Từ đầu những năm 2000 tới nay, SE luôn được các nhà nghiên cứu quan tâm và cải tiến dưới nhiều cách tiếp cận khác nhau để nâng cao một số tiêu chí trong các tiêu chí sau: “Mức độ bảo mật - Hiệu năng – Đa dạng biểu thức truy vấn – Khả năng triển khai”, nhằm đáp ứng phù hợp từng bài toán cụ thể. Mối quan hệ giữa các tiêu chí phải đạt được của hệ thống SE (Nguồn: Secure Search Over Encrypted Data (cossacklabs.com)) Chính vì vậy, nhóm nghiên cứ lựa chọn đề tài “Giải pháp truy vấn trực tiếp trên dữ liệu mã hóa nhằm nâng cao tính bảo mật cơ sở dữ liệu trực tuyến” với mục đích nghiên cứu và phát triển các mô hình truy vấn, các giải pháp tính toán vừa đảm bảo được an toàn dữ liệu vừa cải thiện thời gian truy vấn cũng như tính phù hợp khi triển khai thực tiễn CSDL quan hệ trên hạ tầng thuê ngoài.
Nội dung đề tài sẽ đóng góp về cơ sở lý thuyết, giải pháp và mô hình ứng dụng, tài liệu tham khảo đảm bảo được tính khoa học, phục vụ nhu cầu nghiên cứu cùng lĩnh vực ở Việt Nam và trên thế giới. Tình hình nghiên cứu trong và ngoài nước 2. Tình hình nghiên cứu trên thế giới Tìm kiếm trên dữ liệu mã (Searchable Encryption - SE) nhận được rất nhiều sự quan tâm của các nhà nghiên cứu trên thế giới với hàng loạt các công trình và sản phẩm liên quan trong suốt giai đoạn từ đầu những năm 2000 đến nay. Có rất nhiều cách phân loại các giải pháp/lược đồ SE, trong đó có thể chia làm hai nhóm giải pháp chính: 1.
Giải pháp tìm kiếm trực tiếp trên dữ liệu mã hóa; 2. Giải pháp tìm kiếm dựa trên chỉ mục mã hóa. Giải pháp tìm kiếm trực tiếp trên dữ liệu mã hóa Những giải pháp này nghiên cứu các thuật toán mã hóa mới cho phép người dùng có thể truy vấn trực tiếp trên bản dữ liệu mã. Năm 2000, Song và cộng sự [7] đã đề xuất lược đồ SE đầu tiên hỗ trợ tìm kiếm trên dữ liệu mã, sau đó C.Bosh cùng cộng sự [8][9] đã phân loại chi tiết hơn thành sáu giải pháp SE hỗ trợ truy vấn trên mã bao gồm Searchable Symmetric Encryption (SSE), Public Key with Keyword Search (PEKS), Identity-Based Encryption (IBE), Hidden Vector Encryption (HVE), Predicate Encryption (PE), and Inner Product Encryption (IPE).