Nghiên cứu Khoa học Công nghệ lĩnh vực Antoàn thông tin GiảiphápbảođảmantoànsởliệumôitrườngOUTSOURCE Nguyễn Hiếu Minh, Phạm Công Thành, Hồ Kim Giàu, Trần Lê Hoàng Tuấn Tóm tắt— Điện toánđám mây ứng dụng rộng rãi nhờ vào ưu điểm kinh tế công nghệ Tuy nhiên, liệu người dùng đưa lên đám mây (outsource sở liệu) xuất rủi ro nhiều thông tin tập trung vào nơi Thậm chí sử dụng đám mây giảipháp lưu liệu rủi ro tồn Vì vậy, mã hóa liệu trước chuyển lên đám mây để đảmbảoantoànliệu trở nên cần thiết Trongbáo này, đề xuất giảiphápbảođảmantoànoutsourcesởliệu Abstract— Cloud computing is being popular because of its advantages in economic and technological aspects However, due to the user's data will be posted on the cloud (DatabaseOutsourcing), it should be formed much more risk when information is centralized in one place Even if the cloud is used as a backup solution, risk exist Data encryption before transferring to cloud to ensure corporate data becomes uncertain In this paper, we propose a method for security issues to be addressed in database outsourcing Từ khóa— Outsourcesở liệu; nhà cung cấp dịch vụ CSDL; mã hóa liệu I ĐẶT VẤN ĐỀ Ngày nay, điện toánđám mây phát triển mạnh mẽ Việc thuê quản trị bên sởliệu (outsource CSDL) tổ chức, doanh nghiệp quan tâm giảipháp nhằm giảm bớt chi phí quản lý, trì liệu Theo đó, tổ chức hay doanh nghiệp ủy quyền cho nhà cung cấp dịch vụ quản trị sởliệu (CSDL - Database Service Provider DSP) để quản lý trì liệu Dịch vụ gọi DaaS (Database as a Service) [1] Trong đó, DSP cung cấp phương thức cho phép chủ sở hữu liệu (Data Owner - DO) truy xuất đến liệu họ đưa lên đám mây Khi outsource CSDL quyền kiểm soát liệu thuộc DSP DO cần phải có biện pháp thích hợp để bảo vệ CSDL khỏi công bên hay từ DSP CSDL cần phải bảođảmantoàn với DSP, có nghĩa DSP không phép biết nội dung CSDL lưu trữ máy chủ họ, thông tin liệu bị trích xuất hay làm lộ lọt gây tổn hại đến chủ sở hữu CSDL Bên cạnh đó, DO cho phép người sử dụng (hoặc khách hàng - Client) quyền khai thác CSDL khai thác cấp phép Trongbáo đề xuất giảiphápbảođảmantoàn đưa CSDL lên đám mây DSP CSDL trước đưa lên đám mây mã hóa (theo chuẩn mã hóa AES/CBC/PKCS5 Padding 128 bit), truy vấn thông qua mục XML đặt máy chủ web (web server) DO Mỗi Client khai thác liệu cấp phép có mục khác Giảipháp đề xuất nhằm đảmbảo yêu cầu bảo mật, xác thực toàn vẹn liệu tính chất quan trọng: tính đúng, tính đủ, tính Đóng góp giảiphápbao gồm: Sử dụng cấu trúc mục XML phân quyền bảođảm truy vấn liệu mã hóa Sử dụng hàm băm để thực kiểm tra tính toàn vẹn xác thực Vì giá trị băm lưu trữ (lấy liệu tất cột dòng cộng lại lấy giá trị băm liệu tổng đó) hai phía DO DSP, nên DO hoàn toàn kiểm tra tính toàn vẹn xác thực cách so sánh hai giá trị băm Hơn giảipháp tốn tài nguyên thời gian xử lý nhanh cách xác thực chữ ký số Lưu trữ mục XML dạng “cha con” để giảm bớt dung lượng file XML đại diện cho trường truy vấn CSDL mã hóa Chỉ sử dụng ½ độ lớn giá trị băm, giảm không gian lưu trữ xuống ½ mà đảmbảoantoànliệu Để giảm thời gian truy vấn, liệu đọc phần thông qua việc phân trang liệu, Client chuyển trang liệu đọc tiếp; Client biết tổng số ghi tổng số trang cần xem Tăng tốc độ xử lý thông qua xử lý song song mục XML Tối ưu hóa xử lý thông qua lưu trữ file thường xuyên đọc vào nhớ đệm (cache) Số 1.CS (01) 2015 47 Nghiên cứu Khoa học Công nghệ lĩnh vực Antoàn thông tin Bố cục báobao gồm năm phần sau: Sau Mục đặt vấn đề, Mục II trình bày số công trình liên quan đến outsouce CSDL Mục III mô tả giảipháp đề xuất Mục IV thảo luận kết thực nghiệm Mục cuối kết luận hướng phát triển II MỘT SỐ CÔNG TRÌNH LIÊN QUAN A Hacigümüş outsourceliệu Hacigümüş cộng [4] đề cập đến khái niệm outsourceliệu Mô hình đề xuất họ gồm ba thực thể chính: người sử dụng (hoặc khách hàng), chủ sở hữu CSDL nhà cung cấp dịch vụ quản trị CSDL DO lưu trữ liệu máy chủ (server) DSP Các liệu lưu trữ định dạng mã hóa phía máy chủ DSP thời điểm cho mục đích antoàn Khi đó, CSDL mã hóa cần có thêm thông tin phụ trợ (được gọi mục (meta-data)) Đây thông tin cho phép thực truy vấn CSDL máy chủ DSP mà không cần phải giải mã DO trì meta-data để chuyển đổi truy vấn Client thành truy vấn khác thích hợp để thực thi máy chủ DSP Client nhận kết sau thực truy vấn trả Dựa thông tin phụ trợ lưu trữ, truy vấn chia thành hai phần: (1) Các truy vấn phía máy chủ DSP liệu mã hóa, truy vấn thực từ máy chủ DO, (2) Các truy vấn phía DO, truy vấn thực từ Client đến DO kết truy vấn sau lọc trả từ máy chủ DO cho Client Để đạt yêu cầu trên, [4] phát triển mô hình đại số để viết lại truy vấn hình thức liệu mã hóa Tuy nhiên, phương phápcó nhược điểm tăng chi phí lưu trữ chi phí để tính toán lại sau hoạt động cập nhật CSDL B Tìm kiếm liệu mã hóa XML R Brinkman [7] giới thiệu cách thức cho phép tìm kiếm so trùng tag tài liệu XML mã hóa dựa giải thuật Linear Search Strategy for Full TextDocuments (1), gọi Tree Search Strategy for XML Documents (2) Giải thuật (1) chia làm giai đoạn: lưu trữ (storage), tìm kiếm (search), nhận liệu (retrieval) Ở giai đoạn lưu trữ, toànliệu chia thành nhiều khối nhỏ cố định, sau thực mã hóa khối trước lưu trữ server DO cần phải ghi nhận số thông tin mã hóa để giải mã sau Ở giai đoạn tìm kiếm, chuỗi liệu cần tìm mã hóa 48 Số 1.CS (01) 2015 chuyển đến cho server so trùng khối liệu để xác định vị trí đoạn liệu mã hóa Giai đoạn nhận liệu, kết mã hóa giải mã dựa theo thông tin mã hóa ghi nhận giai đoạn lưu trữ Giải thuật (2) xây dựng dựa giải thuật (1) Tuy nhiên, liệu tài liệu XML thay file text phi cấu trúc Kích thước khối chia không mà phụ thuộc vào kích thước node (hay node khối), giải thuật (2) đáp ứng câu truy vấn dạng tìm kiếm so trùng tag name tài liệu XML mà không xử lý đến nội dung liệu bên node C Bảođảm truy vấn Bảođảm truy vấn (Query Assurance) đảmbảo kết truy vấn trả từ server (correctness), đầy đủ (completeness) (freshness) [9] Einar Mykletun [2] đề giảipháp để đảmbảo tính cho câu truy vấn dạng đọc (read-only) tính toán gộp (như SUM, AVERAGE…) Mỗi ghi liệu (record) lưu kèm theo chữ ký số ghi Kết trả kèm theo với chữ ký số Client kiểm tra nội dung liệu với chữ ký kèm theo để xác nhận tính liệu Tuy nhiên, số lượng ghi trả lớn, việc kiểm tra số lượng lớn chữ ký số cho ghi dẫn đến lãng phí thời gian chi phí lớn cho client Để giải vấn đề này, [2] đề nghị mô hình Condensed-RSA Theo đó, thay kiểm tra riêng lẻ chữ ký ghi, client cần kiểm tra tất ghi lúc dựa chữ ký tổng hợp (condensed signature) server trả xác định tính liệu [2] nêu giảipháp khác nhằm đạt tính sử dụng Merkle Hash Tree (MHT) MHT mà kết băm liệu ghi tương ứng CSDL Và đánh dấu node gốc chữ ký số Nếu kèm theo hai ghi hai biên kết quả, ta chứng minh kết trả đầy đủ Cấu trúc MHT đòi hỏi phải lưu trữ kèm theo cấu trúc liệu chuyên dùng để phục vụ cho việc bảođảm truy vấn Mỗi cấu trúc thường áp dụng cho thuộc tính Như vậy, trường hợp CSDL có nhiều thuộc tính tìm (searchable attribute) đòi hỏi nhiều cấu trúc tương ứng, điều làm tăng phí tổn để lưu trữ server Maithili Narasimha [5] đề nghị hướng tiếp cận dựa chuỗi chữ ký số Khi đó, Nghiên cứu Khoa học Công nghệ lĩnh vực Antoàn thông tin chữ ký ghi bao gồm nội dung ghi liền trước (được xếp theo thuộc tính cho trước), tạo thành chuỗi liên tiếp Trong kết trả về, server trả kèm thêm hai ghi biên để đảmbảo tính đầy đủ Hướng tiếp cận [5] không đòi hỏi phải tốn thêm nhiều không gian lưu trữ server Mỗi ghi liệu cần lưu thêm chữ ký Tuy nhiên, chi phí xây dựng, tạo chữ ký kiểm tra chữ ký lớn đáng kể tốc độ thường chậm từ 100 - 1000 lần so với việc sử dụng băm (hashing) [3] đề xuất giảipháp dựa Embedded Merkle B-tree (EMB) cho phép đảmbảo tính đúng, đầy đủ Việc đảmbảo truy vấn chủ yếu dựa vào phép băm Từ đó, giảm bớt thời gian để thực tính toán chữ ký CSDL có thay đổi, thời gian kiểm tra kết trả [3] đồng thời giảiphápgiải đầy đủ vấn đề bảođảm truy vấn Radu Sion [6] đưa hướng tiếp cận cho phép đảmbảo tính đầy đủ kết trả từ tập câu truy vấn cần thực (batch of queries) Hướng tiếp cận xây dựng giao thức dựa việc mở rộng giao thức ringer Dựa challenge-token, gửi kèm theo, cách ngẫu nhiên, xen kẽ với câu truy vấn cần thực hiện, Client biết trước kết câu truy vấn so sánh với kết trả từ server Nếu trùng khớp đảmbảo kết trả từ server đầy đủ III ĐỀ XUẤT MÔ HÌNH DAAS Mô hình đề xuất bao gồm thành phần sau: Client: client phép khai thác liệu DO, cần sử dụng trình duyệt web có sẵn hệ điều hành Chủ sở hữu CSDL (DO): phải có web server để truy vấn CSDL quản lý giao diện người dùng, giao diện hiển thị thông tin cho người dùng, quản lý mục sinh để tìm kiếm CSDL mã hóa Nhà cung cấp dịch vụ quản trị CSDL DSP: công ty cung cấp dịch vụ lưu trữ, quản lý CSDL đám mây DO mã hóa CSDL đặt DSP A Cơ chế hoạt động Dựa kết hợp mã hóa liệu (theo chuẩn AES) Chỉ mục tìm kiếm (XML) đọc liệu phần để giảm thời gian truy vấn liệu Trước tiên, liệu mã hóa, với Client phép khai thác liệucó file XML tương ứng với trường phép khai thác phát sinh Số lượng kết trả thống kê duyệt file XML liệu tương ứng truyền phần thông qua việc phân trang liệu Khi liệu truyền từ DO đến Client sử dụng giao thức SSL (cổng 443) hỗ trợ sẵn trình duyệt Như vậy, phía Client khai thác liệu cần dùng trình duyệt web B Mô hình lưu trữ liệuDữliệu lưu trữ đám mây mã hóa dạng chuỗi Tại web server DO lưu trữ mục XML để truy vấn liệu mã hóa Đối với Client phép khai thác liệu với trường khác có file XML khác Hình Mô hình DaaS đề xuất Số 1.CS (01) 2015 49 Nghiên cứu Khoa học Công nghệ lĩnh vực Antoàn thông tin Dữliệu mã hóa tạo theo cách sau: Mã hóa liệu cột Đối với cột có giá trị giống liệu cộng thêm chuỗi ngẫu nhiên “-xxxxxx” x dạng chữ số, số lượng x không cố định Hiện tại, chuỗi ngẫu nhiên sử dụng ký số x, số x sinh ngẫu nhiên Ví dụ, với liệu TRUE chuỗi sau thêm vào trở thành “TRUE-123456” sau mã hóa toàn chuỗi lưu trữ xuống DB DSP Khi khôi phục liệu, cần cắt chuỗi dựa ký tự “-” cần lấy giá trị nhận liệu gốc TRUE File XML phát sinh bao gồm: Để giảm bớt dung lượng file, đặt thêm file XML để chứa giá trị băm thông tin Client với tất giá trị băm mục sử dụng ½ giá trị băm Với việc sử dụng 64 bit khả trùng giá trị khoảng tỷ ghi xảy lần C Đánh giá mô hình đề xuất Đảmbảo tính bí mật: CSDL mã hóa nên thân DSP biết chứa liệuĐảmbảo truy vấn với tính chất: Tính đúng: Có thể kiểm tra với kiểu công máy chủ DSP: Chỉnh sửa liệu CSDL outsource; Thêm liệu giả vào CSDL outsource; Xóa trực tiếp liệu CSDL outsource xóa liệu kết trả từ máy chủ Tính đủ: Có thể kiểm tra cách duyệt mục web server, số lượng mục truy vấn phải tương ứng với số lượng ghi trả từ máy chủ DSP Tính mới: Chỉ có DO phép thay đổi liệu Khi DO thay đổi/thêm liệu vào CSDL outsource, liệu cập nhật đồng thời mục ghi web server đặt cuối cùng, nhận biết ghi vừa DO thay đổi/thêm D Về tốc độ khả xử lý mục XML XML chọn để làm mục hỗ trợ tất hệ điều hành thông qua phân tích (parser) SAX hay DOM… có nhiều cách đọc XML Khi đọc XML sử dụng SAX Parser để đọc thời gian xử lý SAX nhanh cho việc tìm kiếm so với XPath hay XQuery, XPath XQuery thực thi truy vấn DOM Để tạo DOM, cần trình phân tích file XML, 50 Số 1.CS (01) 2015 sau chuyển thành DOM tiến hành truy vấn được, SAX vừa phân tích XML vừa xử lý Khi trình phân tích XML kết thúc có kết trả Hơn SAX thực thi không lưu lại vùng nhớ nên thuận lợi xử lý web Tại thời điểm, số lượng người dùng tìm kiếm lớn, dùng XPath hay XQuery tạo nhiều DOM vùng nhớ, gây tràn vùng nhớ Khi đọc, mục XML gọi xử lý song song để đọc nhiều mục XML lúc Khi Client gọi câu lệnh tìm kiếm kết hợp nhiều trường hay DO cập nhật lại liệucó nhiều file XML xử lý, xử lý tốn nhiều thời gian, vậy, giảipháp đề xuất cách xử lý song song mục XML, đọc nhiều file XML lúc giúp tiết kiệm thời gian Ngoài ra, file XML cha, xử lý, phải đọc file để xác định ghi CSDL Giảipháp đề xuất hướng xử lý file thường xuyên đọc nạp vào vùng cache, tốc độ đọc tăng lên truy xuất trực tiếp từ cache E Về tốc độ khả xử lý CSDL Dữliệu đọc phần, số lượng ghi thay đổi, giảipháp đưa thử nghiệm với 10 ghi cho lần đọc, Client chuyển sang xem trang tiếp theo, lúc liệu đọc tiếp (gần giống cách xử lý Google), nữa, Client biết tổng số ghi truy vấn tổng số trang cần phải xem Ưu điểm cách xử lý tránh việc đọc nhiều liệu thời điểm Khi ứng dụng viết dạng web xuất tình trạng tải server thời điểm, số lượng Client tăng đột ngột lúc truy vấn CSDL, Client lấy lượng lớn ghi làm server không xử lý kịp, dẫn đến bị treo F Về không gian lưu trữ mục XML Mỗi file mục XML đại diện cho trường CSDL chứa thông tin: Giá trị băm ghi (kiểm tra tính liệu) dùng làm định danh để truy vấn CSDL mã hóa; Các giá trị băm dùng để tìm kiếm thông tin CSDL mã hóa Giảipháp để giảm dung lượng lưu trữ XML: Xây dựng file mục tổng chứa toàn giá trị băm ghi mà không đặt file để giảm dung lượng mục Các giá trị băm lấy ½ giá trị: Nghiên cứu Khoa học Công nghệ lĩnh vực Antoàn thông tin dung lượng mục giảm, với giá trị băm 128 bit (sử dụng hàm băm MD5) giảm ½ 64 bit tương ứng với 2-32 giá trị, xác suất va chạm CSDL vào khoảng tỷ ghi Cách Thực thi truy vấn sau: Ví dụ, với bảng liệu: Employee (id, FirstName, LastName, Address, Email, Phone, salary, role, experience) tất liệu mã hóa trước đưa lên đám mây Để thực thi truy vấn, cần xử lý thông tin file mục XML Khi xử lý mục XML xong, biết số lượng ghi cần phải truy vấn CSDL outsource Lúc giảm thời gian truy vấn CSDL giảm vùng nhớ phải đọc nhiều liệu điều cần thiết Dựa giá trị băm tìm thấy đọc mục XML, server thực thi truy vấn với giá trị băm tương ứng CSDL outsource mã hóa Bên cạnh việc sử dụng XML mục để tìm kiếm CSDL mã hóa, đặt vào XML mức độ ưu tiên đọc liệu quyền phép hay không phép đọc số ghi mà hoàn toàn không cần phải cài đặt thêm thuộc tính vào CSDL có sẵn Số lượng ghi tìm thấy thông báo cho Client, web server tiến hành phân trang liệu, lấy phần tổng số ghi tìm thấy, lọc liệu cần thiết cho Client, sau giải mã in giao diện truyền phía Client Khi Client chuyển sang trang để xem, liệu tiếp tục lấy xử lý trước truyền phía Client Khi DO tiến hành truy vấn xóa (delete), cập nhật (update) thêm (insert) ghi CSDL file XML mục cập nhật lại giá trị tương ứng với ghi bị thay đổi Việc cập nhật liệu thực cách đọc toàn đoạn liệucó chứa ghi cần update (hay chứa hàng insert) sau thực cập nhật liệu, tính toán lại giá trị băm ghi cập nhật trở lại server IV KẾT QUẢ THỰC NGHIỆM Để đánh giá mô hình thử nghiệm đề xuất, nhóm tác giả thực sốtrường hợp thử nghiệm với thời gian thực thi thời gian bắt đầu truy vấn đến liệu đọc từ ResultSet (con trỏ đọc liệu Microsoft SQL Server) nạp vào object để sẵn sàng truyền mạng (không tính thời gian hiển thị object) sau: TH Thời gian thực thi truy vấn thô CSDL không mã hóa (tính giây) TH Thời gian thực thi truy vấn mục tải CSDL nạp lần lên vùng nhớ phân trang liệu (tính giây) TH 2.1 Thời gian thực thi truy vấn mục XML (tính giây) TH Thời gian thực thi truy vấn mục phân trang tải CSDL trang, chuyển trang tải tiếp (tính giây) TH 3.1 Thời gian thực thi truy vấn mục XML (tính giây) Thử nghiệm tiến hành CSDL Mondial-3.0.xml [8] chuyển CSDL sang dạng bảng SQL Server 2005 tiến hành mã hóa bảng thành phố (city) với 3.051 ghi mã hóa Các sốliệu đo đạc dựa câu truy vấn tìm kiếm thành phố cósố dân số (population) > 500000, tương ứng với câu truy vấn XML /mondial/country/city [population > 500000] (Q1) Kết thực câu truy vấn Q1 ghi Bảng sau: BẢNG KẾT QUẢ THỰC NGHIỆM CHO TRUY VẤN Q1 (TÍNH BẰNG GIÂY) Tổng số ghi 3051 Số ghi tìm thấy 466 Trường hợp 0,021 Trường hợp 3,738 Trường hợp 2.1 0,016 Trường hợp 0,11 Trường hợp 3.1 0,018 Hình Thời gian thực thi truy vấn Hình cho thấy thời gian thực thi câu truy vấn dạng không mã hóa cột tối ưu nhất, thời gian để đọc toànliệu lần cột Số 1.CS (01) 2015 51 Nghiên cứu Khoa học Công nghệ lĩnh vực Antoàn thông tin lớn, mô hình đưa có thời gian xử lý cột không tối ưu cột chấp nhận Vì số lượng ghi bảng city không đủ lớn, nên thử nghiệm tạo thêm CSDL khác sử dụng SQL Server 2005 gồm có bảng với trường sau: Employee (id, FirstName, LastName, Address, Email, Phone, Salary, Role, Experience) với số lượng ghi thử nghiệm 10.000, 20.000, 30.000, 40.000, 50.000, 60.000 70.000 ghi Mỗitrường CSDL sinh file XML mục tương ứng Như vậy, trình tìm kiếm tương ứng với liệutrường CSDL trình duyệt file XML Dựa kết trả duyệt file XML con, hệ thống đọc XML cha để lấy định danh, quyền phép đọc liệu câu truy vấn tương ứng phát sinh để lấy liệu từ CSDL outsourced mã hóa Sau lấy kết trả về, liệugiải mã gửi cho Client Việc lấy đọc từ CSDL outsourced lần lấy lượng nhỏ ghi nên thời gian thực thi truy vấn SQL Server không đáng kể, việc tìm kiếm liệu thời gian thực thi chủ yếu nằm việc xử lý file XML SAX Parser Kết thực nghiệm cho câu truy vấn Q2 Q3 ghi Bảng Bảng Đồ thị Hình cho thấy, liệu lớn dạng truy vấn liệu đọc lần, độ dốc đường biểu diễn thời gian thực thi lớn nên tính khả thi Đối với dạng truy vấn đọc liệu phần thời gian tăng dung lượng file mục tăng, thời gian đọc file mục nhỏ, truy vấn CSDL lần đọc lượng ghi định nên thời gian BẢNG KẾT QUẢ THỰC NGHIỆM CHO TRUY VẤN Q2 (TÍNH BẰNG GIÂY) Tổng số ghi 11.000 20.695 30.940 40.962 51.000 60.640 70.851 Số ghi tìm thấy 149 249 349 449 549 649 749 Trường hợp Trường hợp Trường hợp 2.1 Trườ ng hợp Trườ ng hợp 3.1 0,062 0,104 0,142 0,169 0,204 0,237 0,26 1,972 3,838 7,084 11,127 15,757 21,93 28,911 0,07 0,118 0,168 0,227 0,29 0,333 0,388 0,181 0,268 0,364 0,479 0,559 0,782 0,741 0,067 0,115 0,173 0,224 0,267 0,356 0,374 Hai câu truy vấn khác xem xét từ CSDL là: Câu truy vấn thực thi truy vấn gần với giá trị lưu trữ cột Lastname Tương ứng với câu lệnh SQL Server là: SELECT * FROM Employee WHERE LastName LIKE? (Q2) Câu truy vấn thứ hai thực thi truy vấn lấy giá trị khoảng cho trước cột Salary Tương ứng với câu lệnh SQL Server là: SELECT * FROM Employee WHERE Salary >= ? and Salary