Đặt vấn đề Việc sử dụng hệ thống lưu trữ ngoài đã trở nên phổ biến không chỉ cho các doanh nghiệp mà còn cho các cá nhân. Đặc biệt cùng với sự phát triển của điện toán đám mây, người dùng lưu trữ dữ liệu ở các nhà cung cấp dịch vụ ngày càng nhiều. Lợi thế của điện toán đám mây và các hệ thống lưu trữ ngoài là việc lưu trữ dữ liệu không còn bị giới hạn trong hệ thống máy tính của cá nhân/ tổ chức người dùng mà được cung cấp bởi các nhà cung cấp dịch vụ chuyên nghiệp. Người dùng có thể sử dụng các dịch vụ của nhà cung cấp một cách dễ dàng mà không cần quan tâm đến việc cài đặt, cấu hình, bảo trì hệ thống, mở rộng tài nguyên,.
Bên cạnh các lợi ích, người dùng cần cân nhắc các khía cạnh về bảo mật và tính riêng tư. Người dùng không nên tin cậy nhà cung cấp dịch vụ hoàn toàn mà nên cân nhắc việc bảo vệ dữ liệu của mình [21, 22, 26], bao gồm 1. Người dùng (cá nhân hoặc công ty) sử dụng dịch vụ lưu trữ dữ liệu cần được 10 đảm bảo tính bí mật và tính toàn vẹn cho dữ liệu [21]. Người dùng cần chia sẻ dữ liệu cho một hay nhiều người dùng khác sao cho nhà cung cấp dịch vụ không đọc được nội dung dữ liệu [22].
Người dùng cần được đảm bảo là nhà cung cấp dịch vụ không xóa hay làm mất mát bất kỳ phần nào dữ liệu mà người dùng lưu trữ [26]. Trong các vấn đề trên, luận án quan tâm đến vấn đề (3). Giải pháp cho vấn đề này là thực hiện kiểm tra xem dữ liệu có bị mất mát hay xóa hay không. Quá trình kiểm tra này được gọi là kiểm định dữ liệu (data auditing).
Theo nhóm tác giả Mehdi Sookhak và cộng sự [24], khi thiết kế và thực hiện các giải pháp kiểm định dữ liệu cần cân nhắc đến một số khía cạnh sau: • Tính hiệu quả: kiểm định dữ liệu với độ phức tạp tính toán ít nhất có thể • Kiểm định công khai: cho phép ủy quyền việc kiểm định cho một tổ chức thứ ba đáng tin cậy, do đó giảm gánh nặng tính toán cho người dùng • Tính thường xuyên: cho phép quá trình kiểm định có thể lặp lại thường xuyên với các yêu cầu kiểm định khác nhau • Khả năng phát hiện: có khả năng phát hiện ra nếu dữ liệu có mất mát hay bị xóa • Khả năng phục hồi: có khả năng phục hồi lại dữ liệu nếu xảy ra sự cố • Tính động: có khả năng kiểm định dữ liệu trong khi người dùng thêm/ xóa/ sửa dữ liệu mà không cần phải tải về toàn bộ dữ liệu 11 Trong các khía cạnh trên, khía cạnh kiểm định công khai là một trong những khía cạnh quan trọng, được nhiều nhóm nghiên cứu quan tâm. Trong kiểm định công khai, việc kiểm định được người dùng ủy quyền cho một tổ chức thứ ba. Thông thường, để kiểm định dữ liệu, tổ chức thứ ba cần biết nội dung cần kiểm định. Nếu tổ chức thứ ba không đáng tin cậy hoàn toàn thì các giải pháp cho kiểm định công khai cần cân nhắc về tính riêng tư dữ liệu: tổ chức thứ ba không nên biết nội dung dữ liệu cần kiểm định.
Ngoài ra, đối với môi trường lưu trữ dữ liệu ngoài đặc thù hơn như điện toán đám mây, các giải pháp cần xét đến đặc điểm của môi trường lưu trữ. Cụ thể, đối với môi trường điện toán đám mây, dữ liệu thường được các nhà cung cấp dịch vụ nhân bản thành các bản sao khác nhau để đề phòng khi có sự cố dữ liệu không bị mất mát. Khi đó việc kiểm định dữ liệu cần áp dụng cho toàn bộ các bản sao trên đám mây. Cuối cùng, đối với dữ liệu có tính chất thay đổi thường xuyên, việc kiểm định toàn bộ dữ liệu mỗi lần cập nhật là không khả thi và tốn nhiều chi phí.
Khi đó, người dùng cần các giải pháp kiểm định cho việc cập nhật dữ liệu, bao gồm thêm, xóa, sửa dữ liệu.2 Các nghiên cứu liên quan Năm 2007, Juels và Kaliski [12] định nghĩa giao thức kiểm định dữ liệu (các tác giả gọi là giao thức "proof of retrievability"). Các tác giả xem dữ liệu gốc là một tập tin gồm nhiều khối. Theo phương pháp này, dữ liệu gốc được chèn thêm các khối dữ liệu giả (gọi là các "sentinel"), sau đó hoán vị để phân tán vị trí của các khối dữ liệu giả. Khi đó, nếu như máy chủ xóa hay chỉnh sửa một phần đáng kể nội dung của tập tin 12 dữ liệu ban đầu, xác suất máy chủ cũng xóa đi các khối dữ liệu giả là cao.
Vì vậy, khi tổ chức kiểm định (có thể chính là chủ dữ liệu hoặc tổ chức thứ ba được thuê để thực hiện kiểm định) truy vấn nhiều dữ liệu giả, máy chủ không thể đưa ra câu trả lời đầy đủ, nhờ đó tổ chức kiểm định phát hiện được việc mất mát dữ liệu. Ưu điểm của phương pháp là tính đơn giản và tổ chức kiểm định không cần biết nội dung dữ liệu do giao thức kiểm định dựa trên dữ liệu giả. Bù lại, máy chủ phải tăng thêm chi phí lưu trữ do việc chèn thêm các dữ liệu giả. Ngoài ra, phương pháp này không hỗ trợ tốt việc thay đổi dữ liệu như xóa một khối, chèn một khối vào vị trí bất kỳ vì khi đó, tổ chức kiểm định cần được cập nhật về sự thay đổi vị trí các khối và việc này làm cho hệ thống trở nên phức tạp hơn.
Bên cạnh đó, đối với trường hợp chỉ một phần nhỏ dữ liệu bị lỗi, nhờ vào việc áp dụng cơ chế mã sửa sai (error-correcting code) [8] như được đề cập trong bài báo, người dùng có thể phục hồi lại dữ liệu gốc. Cũng trong năm 2007, nhóm tác giả Ateniese, Burns, Curtmola và Herring [1] đề xuất hai phương pháp không cần phải chèn thêm dữ liệu giả: S-PDP (strong PDP) và E-PDP (efficient PDP), trong đó PDP là viết tắt của "provable data possession". Phương pháp đầu tiên (gọi là S-PDP) dựa trên RSA, hàm băm mật mã, phép toán nhân và nghịch đảo trên một trường hữu hạn thích hợp. Dữ liệu được chia thành các khối, sau đó ứng với mỗi khối sẽ được sinh một nhãn.
Mỗi nhãn là một bản mã RSA, trong đó bản rõ có chứa thông tin về nội dung của khối dữ liệu. Khi tổ chức kiểm định gửi truy vấn, trong đó có bao gồm số lượng khối dữ liệu mà tổ chức kiểm định muốn truy vấn, máy chủ dựa trên hàm sinh số ngẫu nhiên được cung cấp trước để tính ra danh sách các chỉ số của các khối dữ liệu được truy vấn và dựa trên hàm băm mật mã để tính hệ số (là các hằng số) sẽ được dùng cho từng khối dữ liệu khi tổng hợp thông tin để trả về cho tổ chức kiểm định. Cuối cùng, máy chủ tổng hợp 13 các nhãn của các khối bằng cách tính tích của lũy thừa các nhãn theo các hằng số được sinh ra trước đó. Do mỗi nhãn là một bản mã RSA và dựa vào tính chất đồng cấu, kết quả tổng hợp cũng là một bản mã RSA.
Máy chủ gửi nhãn tổng hợp cùng với giá trị băm được tính từ nội dung của các khối dữ liệu về cho tổ chức kiểm định. Tổ chức kiểm định sử dụng khóa riêng để giải mã nhãn tổng hợp thành bản rõ, sau đó băm lại và so sánh với giá trị băm nhận được từ máy chủ. Nếu hai kết quả khớp nhau, điều đó có nghĩa là dữ liệu không bị chỉnh sửa, thêm bớt. Ưu điểm của phương pháp này là độ an toàn phụ thuộc vào độ an toàn của hệ mã RSA vốn đã được thừa nhận.
Khuyết điểm của phương pháp này là chi phí tính toán, vì thực hiện nhiều phép nhân, lấy nghịch đảo và phép lũy thừa trong trường hữu hạn. Vì vậy, nhóm tác giả mô tả một phương pháp khác tương tự, gọi là E-PDP hiệu quả hơn nhưng giảm đi độ an toàn. Phương pháp thứ 2 này bỏ đi việc sử dụng hàm băm mật mã để tính hệ số (là các hằng số) sẽ được dùng cho từng khối dữ liệu khi tổng hợp nhãn, nhờ vậy giảm đi chi phí tính toán tính toán khi tổng hợp nhãn và khi kiểm định dữ liệu. Nhưng như vậy đồng thời giảm đi tính an toàn so với phương pháp đầu tiên.
Cả hai phương pháp này có thể áp dụng để chủ dữ liệu tự kiểm định (gọi là kiểm định riêng) hoặc thuê một tổ chức thứ ba thực hiện kiểm định (gọi là kiểm định công khai). Tuy nhiên, dù có thể hỗ trợ tổ chức thứ ba thực hiện kiểm định thay cho chủ dữ liệu, phương pháp này không đảm bảo tổ chức thứ ba không đọc được nội dung dữ liệu. Bên cạnh đó, do các nhãn của các khối dữ liệu được tạo ra dựa vào vị trí của khối, hai phương pháp này không hỗ trợ tốt cho việc cập nhật dữ liệu, vì vậy thích hợp hơn cho dữ liệu tĩnh. Một năm sau đó, nhóm tác giả Shacham và Waters[23] đưa ra hai phương pháp kiểm định: một phương pháp kiểm định riêng và một phương pháp kiểm định công 14 khai.
Cả hai phương pháp chia dữ liệu thành các khối, mỗi khối được chia thành các phần (gọi là sector). Dựa trên các phần dữ liệu, chủ dữ liệu tạo các nhãn cho từng khối bằng cách nhân giá trị dữ liệu từng phần với hệ số được sinh ngẫu nhiên, sau cùng cộng với một giá trị ngẫu nhiên được sinh ra bằng cách dùng hàm ngẫu nhiên với khóa bí mật và giá trị chỉ số của khối dữ liệu. Dữ liệu và tập nhãn của các khối dữ liệu được gửi đến lưu trữ ở máy chủ. Ngoài ra, chủ dữ liệu tạo một nhãn cho toàn bộ tập tin dữ liệu, trong đó có chứa thông tin khóa bí mật và các hệ số được sử dụng để tạo các nhãn cho các khối dữ liệu.
Chủ dữ liệu có thể xóa dữ liệu, chỉ giữ lại nhãn này. Mỗi khi cần kiểm định dữ liệu, chủ dữ liệu sinh một tập các chỉ số ngẫu nhiên và các hằng số ngẫu nhiên, sau đó gửi cho máy chủ. Máy chủ dựa vào giá trị của các khối dữ liệu được yêu cầu kiểm định và các hằng số nhận được, tổng hợp dữ liệu theo chiều dọc, theo nghĩa mỗi lần tính sẽ lấy một phần dữ liệu trong mỗi khối nhân với hằng số tương ứng, sau đó cộng lại. Kết quả là s giá trị tổng hợp với s là số lượng phần dữ liệu trong từng khối.
Đồng thời, chủ dữ liệu tổng hợp các nhãn cũng bằng cách nhân hằng số cho từng nhãn và cộng lại.