Xác thực tính toàn vẹn của tính toán

Một phần của tài liệu Bảo mật tính riêng tư của dữ liệu trong mạng ngang hàng P2P (Trang 35)

Chúng ta đã chứng kiến việc triên khai thành công của công nghệ P2P để phân bổ việc tính toán. Các dự án đáng chú ý như: SETI@home [25] (BOINC [26]) và the Folding@home [27] là các các dự án mà các tính toán chuyên sâu được phân chia cho các nút. Ví dụ, số lượng người tham gia trong SETI@home là hơn 4,5 triệu người. Họ đóng góp sức mạnh máy tính của họ để xử lý trung bình 65 TeraFLOPS.

Không chắc chắn rằng các tính toán của các nút là đáng tin cậy. Ví dụ, một số nút có thể chỉ thực hiện một tập nhỏ các nhiệm vụ được giao và cho rằng nó đã làm tất cả các tính toán. Trên thực tế, đã có báo cáo về các nhà tài trợ tài nguyên cho SETI@home đã giả mạo số lượng thời gian họ đã đóng góp. Mục đích của việc giả mạo này là để tăng thời gian đóng góp của một nút để nó được liệt kê vào một trong những đóng góp hàng đầu cho website của SETI. Một ví dụ khác, một số nút có thể cố ý trả lại các câu trả lời sai (ngay cả khi chúng đã thực hiện các tính toán). Nếu không bị phát hiện, hậu quả có thể

nói là một thảm họa. Một giải pháp đơn giản để phát hiện câu trả lời không chính xác là phân công mỗi công việc cho nhiều nút khác nhau cùng làm, sau đó so sánh kết quả trả về. Nhược điểm của phương pháp này là nó phải gánh chịu chi phí cao trong tính toán vì nó phải lãng phí một số chu trình và băng thông để lặp lại các tính toán. Một giải pháp cải thiện là chỉ cần kiểm tra lại các tính toán của một số mẫu được lựa chọn ngẫu nhiên các nhiệm vụ. Với sự lựa chọn đúng đắn của số lượng mẫu, chúng ta có thể làm giảm xác suất mà một nút không tin cậy có thể lấy đi mà không bị phát hiện là rất thấp. Ví dụ, nếu nút không trung thực chỉ tính toán một nửa của 1000 công việc được giao và 50 mẫu được chọn, thì xác suất của lấy đi chỉ là 1/ 250. Bằng cách chọn một kích thước mẫu đủ lớn, nó gần như không thể bỏ qua mà không bị phát hiện gian lận. Tuy nhiên, kỹ thuật này vẫn còn đòi hỏi một phí lưu thông cao để truyền tải tất cả các kết quả.

Một vài công việc đã được làm để giải quyết vấn đề gian lận. Du [28] đã đề xuất một mẫu dựa trên cam kết (commitment-based sampling – CBS) mà có thể làm giảm phí trong lưu thông, thay vì phải trả về kết quả của tất cả các nhiệm vụ thì chỉ những kết quả của mẫu mới cần được trả về. Kỹ thuật CBS hoạt động trong bốn giai đoạn (giả sử nút A giao nhiệm vụ cho nút B): (a) B thực hiện nhiệm vụ được giao; xây dựng một cây băm Merkle trong đó mỗi nút lá tương ứng với mỗi công việc, các giá trị băm tại các nút tương ứng với việc áp dụng một hàm băm một chiều trên các kết quả của nhiệm vụ; B truyền giá trị băm của nút gốc của cây băm Merkle đến A. (b) A lựa chọn ngẫu nhiên m mẫu nhiệm vụ cho B để làm bằng chứng cho sự trung thực. (c) Đối với mỗi nhiệm vụ (trong số m nhiệm vụ), B xác định đường P từ nút là tương ứng với nhiệm vụ đó đến nút gốc, sau đó với mỗi nút v thuộc P, giá trị băm của các nút “anh chị em” được gửi từ A. Giá trị băm của kết quả của nhiệm vụ cũng được truyền đến A. (d) Đỗi với mỗi công việc, A có thể dễ dàng xác minh liệu B có trung thực hay không bởi việc tính lại các giá trị băm của gốc: Nếu giá trị băm của gốc tính được giống với giá trị băm gốc theo cam kết thì B là trung thực đối với nhiệm vụ này; nếu không, B là không trung thực.

2.6. Chia sẻ dữ liệu giữa các nút trong mạng ngang hàng

Cộng tác là thế mạnh chính của mạng ngang hàng. Các nút tham gia trong mạng sẽ chia sẻ tài nguyên của chúng (như dữ liệu, chu trình xử lý, băng thông, không gian lưu trữ) tạo nên những lợi ích tiềm năng của công nghệ mạng ngang hàng. Tuy nhiên, trên thực tế, nhiều người sử dụng các tài nguyên của hệ thống P2P mà không chia sẻ tài

nguyên của họ cho người khác sử dụng. Hơn nữa, trở ngại khách quan của việc cộng tác cho phép một số nút khác sử dụng tài nguyên có thể làm giảm công suất xử lý trên máy tính của mình. Ví dụ, trong ứng dụng chia sẻ file Gnutella, việc cho phép upload của một nút có thể tăng thêm sự chậm trễ trong việc download của nó. Một ví dụ khác, việc chia sẻ chu trình xử lý của CPU trên máy tính của một người sẽ mất một thời gian lâu hơn để chạy các công việc trên máy tính của người đó. Được chỉ ra bởi Feldman và các đồng nghiệp của ông [29], một trở ngại cho việc hợp tác sẽ dẫn tới “tấm thảm kịch chung” [30] khi mà việc tự nguyện tham gia dựa trên cảm hứng cá nhân sẽ ảnh hưởng tới hiệu năng chung của hệ thống (ngay cả khi việc tự nguyện tham gia này chính là thứ làm nên ưu điểm của hệ thống). Cụ thể hơn, nghiên cứu của Feldman đã chỉ ra ba kết quả:

- Mức độ hợp tác tăng lên thì hiệu năng của hệ thống cũng tăng theo; tuy nhiên chắc chắn có một “sweet-pot” nào đó mà khiến cho việc nâng cao hiệu năng trở nên không còn quan trọng.

- Sự trở ngại cho việc chia sẻ tiềm ẩn cao tại những thành viên có băng thông không đồng nhất. bởi vì khi những thành viên này cho phép dữ liệu được upload thì họ phải chịu độ trễ nghiêm trọng trong việc download.

- Quyền ưu tiên của các gói tin TCP ack trên số gói tin dữ liệu giúp cho loại trừ chi phí vốn tiềm ẩn của việc chia sẻ, do đó nó có thể có khả năng tăng mức độ chia sẻ của hệ thống.

Kết quả của nghiên cứu chỉ rõ sự cần thiết của việc thiết kế các cách thức khuyến khích nhằm khích lệ sự hợp tác. Các công trình trước đó đã xác định ra những vần đề hợp tác thông qua các trò chơi tiếp cận lý thuyết [31, 32] và các lý thuyết “kỹ thuật thiết kế” [33, 34] có giá trị kinh tế. Tuy nhiên, một hệ thống P2P phải chấp nhận một vài thách thức riêng cần phải nhắm tới:

- Tính bất cân đối về quyền lợi: tính mất cân đối về quyền lợi xuất hiện khi các nút nhận được quyền lợi khác nhau khi yêu cầu các tài nguyên từ các nút khác. Theo cách này, nó có thể khó khăn cho server trong việc quyết định xem có lợi cho hệ thống không nếu nó phục vụ các yêu cầu đó.

- Xác định nút xấu: một nút trong hệ thống P2P có thể liên tục thay đổi định danh của nó. Như vậy, rất khó để theo dõi một nút mới gia nhập có phải là nút thực sự

muốn nhận các dịch vụ hay nó là một nút gia nhập nhằm khai thác các lỗ hổng trong hệ thống.

- Các dạng tấn công và sự cấu kết: các nút trong hệ thống có thể cấu kết xác nhận cho nhau nhằm tạo ra uy tín cao (ví dụ, tuyên bố rằng chúng đã chia sẻ nguồn tài nguyên giữa chúng nhưng thực tế chúng không hề chia sẻ). Khả năng đối phó với các dạng tấn công là rất đáng quan tâm.

Để khai thác khả năng của công nghệ P2P mang lại thì cần có cơ chế để khuyến khích các thành viên trong hệ thống đóng góp tài nguyên, cũng như cơ chế để thi hành việc chia sẻ công bằng giữa các nút cần được chú ý. Các mục tiếp theo trong phần này sẽ tìm hiểu về các phương pháp, các kỹ thuật đã được áp dụng để giải quyết các vấn đề nêu trên.

2.6.1. Hệ thống dựa vào hạn ngạch

Trong các hệ thống hạn ngạch, mỗi thành viên được liên kết với một hạn ngạch phản ánh số lượng tài nguyên mà một thành viên có thể sử dụng từ hệ thống. Khi một thành viên cung cấp một dịch vụ, hạn ngạch của thành viên đó có thể được tăng lên và khi thành viên đó sử dụng tài nguyên của hệ thống thì hạn ngạch của thành viên đó sẽ giảm. Ví dụ, các thành viên chia sẻ không gian lưu trữ, thì hạn ngạch có thể phản ánh được lượng không gian mà một thành viên có thể sử dụng từ hệ thống. Các vấn đề quan trọng nằm trong việc quản lý thông tin hạn ngạch.

- Một mô hình quyền lực tập trung đáng tin cậy có thể được triển khai để quản lý hạn ngạch. Với mô hình này, mọi yêu cầu về dịch vụ sẽ tạo ra một truy vấn đến các máy chủ tập trung. Bên cạnh các ưu điểm mà mô hình này đem lại thì cũng có những điểm hạn chế như: hiện tượng thắt cổ chai và đó là nguyên nhân duy nhất khiến hệ thống sụp đổ.

- Thẻ thông minh (smart card) có thể được sử dụng để quản lý hạn ngạch. Trong hệ thống sử dụng thẻ thông minh, mỗi nút trong mạng có một thẻ thông minh riêng để quản lý việc sử dụng tài nguyên của một nút và tài nguyên cục bộ mà nút đó chia sẻ cho các nút khác trong mạng. Cụ thể, khi một nút yêu cầu một dịch vụ (hoặc tài nguyên) từ một nút khác, hạn ngạch của nó được giữ trong một thẻ thông minh sẽ giảm. Ngược lại, khi nút này cung cấp một dịch vụ (hoặc tài nguyên) cho một nút khác, hạn ngạch của nó sẽ tăng lên. Tuy nhiên, tính thực tiễn của đề án này gặp phải

vấn đề: việc cấp cho mọi người dùng một thẻ thông minh có thể không khả thi. Hơn nữa, tính toàn vẹn của dữ liệu lưu trong thẻ thông minh có thể bị xâm nhập bởi những người dùng xấu.

- Một đề án khác được đưa ra là sử dụng các nút trong hệ thống như là các nhà quản

lý hạn ngạch. Một nút sẽ phân phát hoặc tái tạo thông tin hạn ngạch của nó thông qua các nhà quản lý hạn ngạch đó. Các nhà quản lý hạn ngạch quản lý tất cả các dịch vụ (tài nguyên) mà một nút cung cấp cho các nút khác giống như cách thức quản lý sử dụng thẻ thông minh. Để đưa ra quyết định nên sử dụng đề án nào hệ thống cần áp dụng quy luật số đông. Tức là bất kỳ quyết định nào liên quan đến hạn ngạch của một nút đều phải được sự đồng ý của đa số các nút quản lý. Tuy nhiên, nhược điểm của đề án này là hệ thống phải gánh thêm một khoản chi phí.

2.6.2. Hệ thống dựa vào trao đổi

Trong đề án này, hệ thống được cấu trúc như một nền kinh tế hàng đổi hàng, hoặc

trao đổi. Về cơ bản, Các tài nguyên trao đổi của các thành viên sẽ được tập hợp để mỗi một thành viên trong nhóm có thể sử dụng. Một trong những đề án trao đổi cho các hệ thống chia sẻ file thực thi N lần trao đổi như một vòng của N thành viên, mỗi thành viên sẽ trao đổi với thành viên kế nhiệm của nó trong vòng và lần lượt được trao đổi bởi thành viên tiên nhiệm của nó. Trong hình 2.5, giả sử thành viên Pi yêu cầu đối tượng oi+1 sở hữu bởi thành viên Pi+1 (và oi+1 cũng được lưu giữ tại đây) (với 1 <= i <= n-1); thành viên Pn

yêu cầu đối tượng o1 sở hữu bởi P1. Như vậy, mặc dù Pi không phải hưởng lợi trực tiếp từ

Pi-1 nhưng mỗi thành viên cuối cùng thì cũng sẽ nhận được đối tượng mà nó cần. Chú ý rằng, chu kỳ N bước chỉ có lực nếu mỗi thành viên đủ băng thông để đáp ứng các yêu cầu.

Vấn đề trong đề án này là làm sao để một nút thành viên P xác định khi nào chu trình sẽ xảy ra. Điều này có thể được giải quyết bằng cách xây dựng một cây yêu cầu như sau: mỗi yêu cầu từ một láng giềng được gắn thẻ với cây yêu cầu của nó. Một cây yêu cầu là rỗng nếu không có yêu cầu nào được gửi đến; nếu không, cây yêu cầu của P có một nút gốc đáp ứng như gốc của các cây yêu cầu từ các yêu cầu gửi đến từ các cây tương ứng của chúng.

Hình 2.5: Trao đổi N bước

2.6.3. Kiểm soát sự phân bổ (adsbygoogle = window.adsbygoogle || []).push({});

Trong các hệ thống dựa vào hạn ngạch và trao đổi, sự gian lận vẫn có thể xảy ra. Ví dụ, xét đến việc chia sẻ không gian lưu trữ trên đĩa. Giả sử một nút đồng ý để lưu trữ một file, bằng cách này hạn ngạch của nó có thể được tăng lên hiệu quả nhưng sau đó nó có thể xóa file, giải phóng không gian lưu trữ để đáp ứng cho người dùng khác. Do đó cần thiết phải có một hệ thống kiểm soát. Một đề án về kiểm soát việc phân tán được đề xuất bởi Ngan, Wallach, và Druschel [35] để chia sẻ không gian lưu trữ. Trong đề án này, mỗi nút duy trì một tệp chứa thông tin sử dụng (gọi là tệp usage) bao gồm (a) số lượng không gian lưu trữ thiết lập riêng cho hệ thống, (b) một danh sách cục bộ của các bộ (ID, F) đối với file F được lưu giữ tại một nút có định danh là ID, (c) một danh sách từ xa chứa các file mà các nút khác lưu giữ cho nút đó. Trong một số trường hợp, chúng ta có thể xem hai danh sách tương tự như các khoản tín dụng và ghi nợ vào tài khoản của nút đó. Một nút được phép lưu trữ các file mới trên các nút từ xa nếu kích thước của tất cả các file trong danh sách từ xa nhỏ hơn không gian lưu trữ đã được thiết lập riêng cho hệ thống, nghĩa là nút đó được sử dụng không gian lưu trữ từ xa ít hơn không gian lưu trữ mà nó cung cấp.

Khi một nút L muốn lưu giữ một file F trên một nút từ xa R, R phải kiểm soát tệp

usage của L để xác minh rằng L thực sự được cho phép để lưu trữ một file từ xa. Nếu vậy, hai thực thể mới được tạo ra: L thêm F vào danh sách từ xa của nó và R thêm bộ (id của

L, F) vào danh sách cục bộ. Rõ ràng, cLR có thể giả mạo. L có thể giả mạo các nội dung của tệp usage của nó, bằng cách “thổi phồng” khả năng lưu trữ của nó hoặc lạm phát số lượng các thực thể trong danh sách cục bộ. Mặt khác, R có thể loại bỏ F một cách lặng lẽ sau khi tuyên bố đồng ý lưu trữ nó.

Vì các nút chia sẻ không gian lưu trữ cho nhau nên đó là động lực để các nút đó loại bỏ các phần tử xấu. Một thủ tục kiểm soát có thể được sử dụng để ngăn chặn hành vi gian lận. Khi một nút R lưu trữ một file F cho một nút L, thì R được khuyến khích (bằng cách trả thêm chi phí) cho không gian từ xa. Nếu L không thêm file F vào danh sách từ xa, thì nó không được trả chi phí cho việc lưu trữ của nó, và R có thể xóa F. Để quá trình kiểm soát có hiệu lực, mỗi nút có mối quan hệ với L phải đánh giá nó một cách ngẫu nhiên và tất cả các thông tin cần được ẩn danh. Tương tự như vậy, L thu được bằng cách kiểm soát R: để đảm bảo R thực sự lưu trữ tệp tin thay vì lặng lẽ loại bỏ nó. Để ngăn chặn sự cấu kết giữa các nút, ví dụ, A yêu cầu để lưu trữ một số file cho B, B cho C, như vậy việc kiểm soát toàn diện hơn bao gồm việc kiểm tra các nút truy cập từ danh sách cục bộ được yêu cầu đệ quy.

2.6.4. Kỹ thuật dựa vào sự khích lệ

Sun và Garcia-Molina [36] đề xuất một kỹ thuật khích lệ gọi là SLIC (Selfish Link-based InCentives). Mục đích là để cho phép mỗi thành viên tự cư xử coi lợi ích bản thân lên hàng đầu, như vậy thành viên đó sẽ chia sẻ tài nguyên của mình với những thành viên đã từng giúp họ (cung cấp tài nguyên/dịch vụ cho thành viên đó) và tẩy chay những thành viên mà họ không được hưởng lợi nhiều từ những thành viên đó. SLIC hoạt động trong phạm vi một mạng ngang hàng không cấu trúc và dựa vào thuộc tính khóa trong hầu

Một phần của tài liệu Bảo mật tính riêng tư của dữ liệu trong mạng ngang hàng P2P (Trang 35)