91
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ---------o0o--------- Nguyễn Văn Khoa BẢO MẬT TÍNH RIÊNG TƯ CỦA DỮ LIỆU TRONG MẠNG NGANG HÀNG P2P KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Các hệ thống thông tin HÀ NỘI – 2010

Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

Embed Size (px)

Citation preview

Page 1: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

---------o0o---------

Nguyễn Văn Khoa

BẢO MẬT TÍNH RIÊNG TƯ CỦA DỮ LIỆU TRONG MẠNG NGANG HÀNG P2P

KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY

Ngành: Các hệ thống thông tin

HÀ NỘI – 2010

Page 2: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

ĐẠI HỌC QUỐC GIA HÀ NỘI

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

-----------o0o----------

Nguyễn Văn Khoa

BẢO MẬT TÍNH RIÊNG TƯ CỦA DỮ LIỆU TRONG MẠNG NGANG HÀNG P2P

KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY

Ngành: Các hệ thống thông tin

Cán bộ hướng dẫn : ThS. Trương Thị Thu Hiền Cán bộ đồng hướng dẫn : CN. Phạm Cẩm Ngọc

HÀ NỘI – 2010

Page 3: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

ii

LỜI CẢM ƠN

Khóa luận tốt nghiệp này được hoàn thành với sự giúp đỡ của các thầy cô giáo và các bạn sinh viên lớp K51CHTTT, những người đóng vai trò quan trọng cho sự thành công của khóa luận.

Trước hết em xin gửi lời cảm ơn tới cô giáo ThS. Trương Thị Thu Hiền, người đã trực tiếp hướng dẫn, cũng như động viên, giúp đỡ em hoàn thành khóa luận này. Mặc dù, phải đi công tác xa nhưng cô vẫn thương xuyên liên lạc, hỏi thăm và hướng dẫn em hoàn thành khóa luận một cách chi tiết.

Đồng thời, em xin gửi lời cảm ơn tới thầy giáo CN. Phạm Cẩm Ngọc, người đã đồng hướng dẫn và luôn sát cánh để động viên, giúp đỡ em nghiên cứu hoàn thành khóa luận.

Em xin cảm ơn các thầy cô giáo trong bộ môn Các hệ thống thông tin nói riêng và các thầy cô giáo trong khoa Công nghệ thông tin nói chung. Nếu không có các thầy, các cô và khoa thì chắc chắn em không thể hoàn thành tốt khóa luận như ngày hôm nay.

Em xin gửi lời cảm ơn tới các thành viên lớp K51CHTTT, những người đã cùng em tìm hiểu cơ sở lý thuyết cũng như ứng dụng để hiểu rõ và hoàn thành khóa luận.

Sau tất cả, em xin gửi lời cảm ơn gia đình cùng toàn thể các thầy cô giáo, những người đã sinh thành, nuôi dưỡng và giáo dục em có được ngày hôm nay.

Cuối cùng, em xin gửi lời chúc sức khỏe và hạnh phúc tới tất cả các thầy cô giáo. Xin chúc thầy cô đạt được nhiều thành tựu hơn nữa trong sự nghiệp đào tạo tri thức cho đất nước cũng như trong các công việc nghiên cứu khoa học.

Chúc tất cả các bạn sức khỏe, hoàn thành xuất sắc công việc học tập và nghiên cứu của mình. Chúc các bạn một tương lai tươi sáng và một cuộc sống thành đạt.

Trân trọng cảm ơn!

Hà Nội, ngày 21 tháng 5 năm 2010

Sinh viên Nguyễn Văn Khoa

Page 4: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

iii

TÓM TẮT KHÓA LUẬN

Khái niệm mạng ngang hàng đã trở nên phổ biến. Các mạng như BitTorrent và eMule giúp cho mọi người dễ dàng hơn trong việc chia sẻ dữ liệu. Nếu tôi có thứ bạn cần và bạn có thứ mà tôi muốn thì tại sao chúng ta không thể chia sẻ cho nhau? Có điều, các file được chia sẻ trên máy tính của bạn cho những người dùng không quen biết trên mạng Internet công cộng có thể khiến máy tính của bạn gặp nhiều nguy hiểm về độ an toàn và bảo mật. Vì thế, vấn đề bảo mật tính riêng tư của dữ liệu trong mạng ngang hàng là rất đáng được quan tâm.

Khóa luận này bao gồm 4 chương, chủ yếu tập trung đến các vấn đề bảo mật dữ liệu chia sẻ trong mạng ngang hàng.

Chương 1 trình bày những vấn đề tổng quan nhất của mạng ngang hàng như các định nghĩa, lịch sử phát triển, các lĩnh vực ứng dụng, phân loại các mạng ngang hàng, tổng quan về kiến trúc của các mạng ngang hàng.

Chương 2 trình bày những nguyên lý cơ bản của bảo mật trong mạng ngang hàng. Các vấn đề được quan tâm ở đây bao gồm: các dạng tấn công vào hệ thống (tấn công định tuyến, tấn công lưu trữ và phục hồi, tấn công từ chối dịch vụ); tính xác thực và tính toàn vẹn của dữ liệu, xác thực tính toàn vẹn của các tính toán; vấn đề chia sẻ giữa các nút trong mạng ngang hàng; và cuối cùng của chương sẽ trình bày về bảo mật dựa vào hạ tầng cơ sở khóa công khai.

Chương 3 trình bày về các mô hình tin cậy: mô hình tin cậy dựa vào chứng thực và mô hình tin cậy dựa vào uy tín; một vài hệ thống cộng tác ứng dụng các mô hình tin cậy đó.

Chương 4 trình bày ứng dụng mã nguồn mở PeerSim – một công cụ để mô phỏng mạng ngang hàng trên đó người ta đã xây dựng một số ứng dụng chạy trên nền mạng ngang hàng. Cụ thể sẽ tìm hiểu về ứng dụng BitTorrent – trên đó cài đặt giao thức bittorrent cho ứng dụng trong việc chia sẻ dữ liệu.

Với sự phát triển mạnh mẽ của các tài nguyên máy tính và các kho dữ liệu trên các máy tính cá nhân, sử dụng môi trường P2P để chia sẻ tài nguyên giữa các người dùng trên Internet sẽ đem lại hiệu quả cao. Do đó, việc áp dụng những kiến thức tìm hiểu trong khóa luận này vào thực tiễn rất có ý nghĩa.

Page 5: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

iv

MỤC LỤC

LỜI CẢM ƠN............................................................................................................................. ii TÓM TẮT KHÓA LUẬN.......................................................................................................... iii MỤC LỤC ................................................................................................................................. iv DANH SÁCH CÁC TỪ VIẾT TẮT........................................................................................... vi DANH SÁCH CÁC HÌNH VẼ ................................................................................................. vii Chương 1: TỔNG QUAN VỀ MẠNG NGANG HÀNG ............................................................. 1

1.1. Định nghĩa mạng ngang hàng ........................................................................................... 1 1.1.1. Giới thiệu .................................................................................................................. 1 1.1.2. Định nghĩa mạng ngang hàng..................................................................................... 1 1.1.3. Lịch sử phát triển của mạng ngang hàng P2P ............................................................. 2

1.2. So sánh mô hình P2P với mô hình Client/Server truyền thống .......................................... 3 1.3. Các lĩnh vực ứng dụng của mạng ngang hàng ................................................................... 3

1.3.1. Giao tiếp .................................................................................................................... 3 1.3.2. Chia sẻ File................................................................................................................ 4 1.3.3. Băng thông ................................................................................................................ 5 1.3.4. Không gian lưu trữ..................................................................................................... 5 1.3.5. Các chu trình xử lý .................................................................................................... 6

1.4. Kiến trúc mạng ngang hàng .............................................................................................. 6 1.4.1. Phân loại mạng ngang hàng ....................................................................................... 6 1.4.2. Kiến trúc mạng ngang hàng ....................................................................................... 7

Chương 2: BẢO MẬT TRONG HỆ THỐNG MẠNG NGANG HÀNG .................................... 13 2.1. Tấn công định tuyến ....................................................................................................... 13

2.1.1. Tấn công làm sai lệch đường đi trong định tuyến ..................................................... 13 2.1.2. Tấn công làm cập nhật sai bảng định tuyến .............................................................. 14 2.1.3. Phân vùng mạng định tuyến không chính xác .......................................................... 14

2.2. Tấn công lưu trữ và phục hồi .......................................................................................... 15 2.3. Tấn công từ chối dịch vụ ................................................................................................ 17

2.3.1. Quản lý các cuộc tấn công ....................................................................................... 18 2.3.2. Phát hiện và phục hồi từ các cuộc tấn công .............................................................. 19

2.4. Xác thực và toàn vẹn dữ liệu .......................................................................................... 21 2.4.1. Các truy vấn xác thực trong cớ sở dữ liệu quan hệ ................................................... 22 2.4.2. Tự xác thực dữ liệu với mã Erasure ......................................................................... 26

2.5. Xác thực tính toàn vẹn của tính toán ............................................................................... 27 2.6. Chia sẻ dữ liệu giữa các nút trong mạng ngang hàng....................................................... 28

2.6.1. Hệ thống dựa vào hạn ngạch .................................................................................... 30 2.6.2. Hệ thống dựa vào trao đổi........................................................................................ 31 2.6.3. Kiểm soát sự phân bổ............................................................................................... 32 2.6.4. Kỹ thuật dựa vào sự khích lệ.................................................................................... 33 2.6.5. Topo mạng phù hợp ................................................................................................. 35

2.7. Bảo mật dựa vào hạ tầng cơ sở khóa công khai PKI........................................................ 37 Chương 3: CÁC MÔ HÌNH TIN CẬY ...................................................................................... 38

3.1. Các khái niệm................................................................................................................. 38 3.1.1. Định nghĩa sự tin cậy ............................................................................................... 38

Page 6: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

v

3.1.2. Các dạng tin cậy ...................................................................................................... 39 3.1.3. Biểu diễn sự tin cậy bởi giá trị ................................................................................. 40 3.1.4. Đặc tính của sự tin cậy............................................................................................. 42

3.2. Các mô hình tin cậy........................................................................................................ 44 3.2.1. Tin cậy dựa vào sự chứng thực ................................................................................ 44 3.2.2. Tin cậy dựa vào uy tín ............................................................................................. 45

3.3. Các hệ thống tin cậy dựa vào chứng thực........................................................................ 46 3.3.1. Hệ thống PolicyMaker ............................................................................................. 46 3.3.2. Hệ thống Trust-X..................................................................................................... 48

3.4. Hệ thống tin cậy dựa trên uy tín cá nhân......................................................................... 50 3.4.1. Hệ thống P2PRep .................................................................................................... 50 3.4.2. Hệ thống XRep ........................................................................................................ 53 3.4.3. Mô hình tin cậy NICE.............................................................................................. 54 3.4.4. Hệ thống PeerTrust .................................................................................................. 56

3.5. Hệ thống tin cậy dựa vào uy tín cá nhân và uy tín dưới khía cạnh xã hội......................... 58 3.5.1. Hệ thống Regret....................................................................................................... 58 3.5.2. Hệ thống NodeRanking ........................................................................................... 60

3.6. Quản lý sự tin cậy........................................................................................................... 62 3.6.1. Hệ thống XenoTrust ................................................................................................ 64 3.6.2. Hệ thống EigenRep.................................................................................................. 67 3.6.3. Quán lý tin cậy với P-Grid ....................................................................................... 70

Chương 4: MÔ PHỎNG MẠNG NGANG HÀNG VỚI PEERSIM........................................... 73 4.1. Tổng quan về PeerSim.................................................................................................... 73

4.1.1. Giới thiệu về PeerSim .............................................................................................. 73 4.1.2. Các gói dịch vụ trong PeerSim................................................................................. 73

4.2. Ứng dụng BitTorrent ...................................................................................................... 74 4.2.1. Giới thiệu về BitTorrent........................................................................................... 74 4.2.2. Cách thức hoạt động của BitTorrent......................................................................... 74 4.2.3. Tạo và phát hành tệp Torrent lên mạng .................................................................... 75 4.2.4. Tải tệp Torrent và chia sẻ tệp ................................................................................... 76

KẾT LUẬN .............................................................................................................................. 78 TÀI LIỆU THAM KHẢO ........................................................................................................... 1

Page 7: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

vi

DANH SÁCH CÁC TỪ VIẾT TẮT

TỪ VIẾT TẮT TỪ CHƯA VIẾT TẮT

CBS Commitment-Based-SamplingDoD Denial-of-ServiceDS Drop StrategyIAS Incoming Allocation StrategyJXTA JuxtaposeP2P Peer-to-PeerPIPE Peer-to-Peer Information Preservation and Exchange networkRDP Random Discovery PingSGL Sercure Group LayerSLIC Selfish Link-based InCentivesTTL Time-To-LiveVB Verifiable BXIS XenoServer Information Service

Page 8: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

vii

DANH SÁCH CÁC HÌNH VẼ

Hình 1.1: Mô hình mạng overlay................................................................................................. 2 Hình 1.2: Phân loại mạng P2P theo mức độ tập trung .................................................................. 7 Hình 1.3: Mạng ngang hàng tập trung ......................................................................................... 8 Hình 1.4: Mạng ngang hàng tập trung thế hệ thứ nhất (Napster) .................................................. 9 Hình 1.5: Mạng ngang hàng cơ bản (Gnutella 4.0, FreeNet) ...................................................... 10 Hình 1.6: Mạng ngang hàng lai ................................................................................................. 11 Hình 1.7: Mạng ngang hàng có cấu trúc .................................................................................... 12 Hình 2.1(a): Cây băm Merkle.................................................................................................... 22 Hình 2.1(b): Miền xác thực liên tục........................................................................................... 23 Hình 2.2: Cây VB .................................................................................................................... 25 Hình 2.3: Quá trình tính đối tượng xác minh VO ...................................................................... 26 Hình 2.4: Chương trình tự xác minh .......................................................................................... 27 Hình 2.5: Trao đổi N bước ........................................................................................................ 32 Hình 3.1: Phân loại mô hình tin cậy .......................................................................................... 46 Hình 3.2: Kiến trúc hệ thống PolicyMaker ................................................................................ 47 Hình 3.3: Các giai đoạn trong quá trình đàm phán của hệ thống Trust-X ................................... 50 Hình 3.4: Giao thức bỏ phiếu cơ bản ......................................................................................... 51 Hình 3.5: Đồ thị tin cậy Nice..................................................................................................... 55 Hình 3.6: Uy tín dưới khía cạnh xã hội...................................................................................... 59 Hình 3.7: Bản thể luận .............................................................................................................. 60 Hình 3.8. Mạng xã hội .............................................................................................................. 61 Hình 3.9. Phân loại các phương pháp quản lý tin cậy................................................................. 64 Hình 3.10. Nền tảng mở XenoServer trong hệ thống XenoTrust ................................................ 66 Hình 3.11: Thuật toán Distributed ............................................................................................. 70 Hình 3.12: Hệ thống quản lý tin cậy dựa vào P-Grid ................................................................. 71 Hình 4.1: Mô hình mạng sử dụng trong BitTorrent.................................................................... 74

Page 9: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

1

Chương 1: TỔNG QUAN VỀ MẠNG NGANG HÀNG

1.1. Định nghĩa mạng ngang hàng

1.1.1. Giới thiệu Chúng ta đã biết rằng, hầu như mọi dịch vụ mà Internet cung cấp ngày nay đều dựa

trên mô hình client/server. Theo mô hình này thì một máy khách (client) sẽ kết nối với một máy chủ thông qua một giao thức nhất định (WWW, FTP, Telnet, email ...). Nói chung, mô hình client/server có nhiều ưu điểm, nổi bật là mọi xử lý sẽ nằm trên máy chủ do đó sẽ tránh cho máy khách phải xử lý những tính toán nặng nề.

Tuy nhiên, khi Internet phát triển với tốc độ nhanh chóng như hiện nay thì mô hình client/server gặp phải một vài nhược điểm lớn. Nếu số lượng máy khách tăng đến một mức độ nào đó thì nhu cầu tải file và băng thông tăng lên dẫn đến máy chủ không có khả năng cung cấp dịch vụ cho các máy khách, hiện tượng đó được gọi là hiện tượng thắt nút cổ chai.

Để giải quyết các nhược điểm của mô hình client/server, công nghệ mạng ngang hàng P2P được tin tưởng sẽ là lời giải cho các vấn đề trên.

1.1.2. Định nghĩa mạng ngang hàng Định nghĩa: mạng ngang hàng (tiếng Anh: Peer-to-Peer network hay gọi tắt là

P2P) là mạng mà trong đó hai hay nhiều máy tính chia sẻ tập tin và truy cập các thiết bị như máy in mà không cần thông qua máy chủ hay phần mềm máy chủ. Hay ở dạng đơn giản nhất, mạng P2P được tạo ra bởi hai hay nhiều máy tính được kết nối với nhau và chia sẻ tài nguyên mà không phải thông qua một máy chủ dành riêng.

Mạng ngang hàng không có khái niệm máy chủ (server) hay máy khách (client), mà chỉ có khái niệm các nút (peer) đóng vai trò như cả máy chủ và máy khách.

Mạng overlay: là mạng máy tính được xây dựng trên nền của một mạng khác. Các nút trong mạng overlay được xem là nối với nhau bằng liên kết ảo (logical link), mỗi liên kết ảo có thể bao gồm rất nhiều các liên kết vật lý của mạng nền.

Rất nhiều các mạng P2P được gọi là mạng overlay vì nó được xây dựng và hoạt động trên nền Internet, ví dụ như: Gnutella, Freenet, DHTs ….

Page 10: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

2

Hình 1.1: Mô hình mạng overlay

1.1.3. Lịch sử phát triển của mạng ngang hàng P2P Lịch sử ra đời và phát triển của P2P gắn liền với phần mềm ứng dụng Napster.

Năm 1999, Shawn Fanning một sinh viên ở tuổi 18 đã rời bỏ trường Đại học để bắt đầu xây dựng phần mềm mang tên Napster do bức xúc với việc rất khó khăn để đưa và chia sẻ các file nhạc trực tuyến trên Internet mặc dù mọi người đều có nguồn tài nguyên trong đĩa cứng của mình.

Napster được xây dựng thành công và trở thành cách chia sẻ file chính vào thời điểm lúc bấy giờ. Nó đã làm thay đổi cách tải các file nhạc và dung lượng file chia sẻ cũng lớn hơn nhiều so với các chương trình chia sẻ file trước đó.

Khoảng 60 triệu người trên thế giới đã sử dụng phần mềm Napster vào thời điểm đó (trong đó có khoảng 1 triệu người Nhật). Tuy nhiên, do có quá đông người dùng và vấn đề bản quyền âm nhạc nên công ty Napster đã bị cấm hoạt động. Phần mềm Napster không còn được sử dụng kể từ năm 2003.

Sau Napster, rất nhiều các chương trình khác như Gnutella, KaZaa và WinMP đã xuất hiện. Công nghệ P2P không chỉ dừng lại ở ứng dụng chia sẻ file nhạc mà còn mở rộng cho tất cả các loại file. Nó còn được ứng dụng để chia sẻ các tiến trình rỗi của CPU tại các nút trong mạng.

Sau sự ra đời của Napster, công nghệ P2P phát triển một cách nhanh chóng. Cho đến hiện nay các ứng dụng P2P đã chiếm khoảng 50% và thậm chí lên đến 75% băng thông trên mạng Internet.

Page 11: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

3

1.2. So sánh mô hình P2P với mô hình Client/Server truyền thống

1.3. Các lĩnh vực ứng dụng của mạng ngang hàng Sự ra đời của mạng ngang hàng đã tạo ra cách thức quản lý mới cho hàng loạt các

lĩnh vực ứng dụng. Trong phần này chúng ta sẽ đưa ra một cách nhìn tổng quát cho vấn đề các lĩnh vực ứng dụng của mạng ngang hàng như: giao tiếp, chia sẻ file, băng thông, không gian lưu trữ, các chu trình xử lý của CPU.

1.3.1. Giao tiếp Đóng vai trò quan trọng trong các ứng dụng mạng ngang hàng.

Là nhân tốt quyết định trong các mạng ngang hàng vì nó cung cấp thông tin về các nút và các nguồn tài nguyên nào là sẵn sàng trên mạng.

P2P Client/Server

Tổng quan

- Một mạng ngang hàng cho phép các nút đóng góp, chia sẻ nguồn tài nguyên với nhau. Tài nguyên riêng rẽ của các nút (ổ cứng, CD-ROM, máy in …). Các nguồn tài nguyên này có thể được truy cập từ bất cứ nút nào trong mạng. - Các nút đóng vai trò như cả máy khách và máy chủ.

- Dữ liệu được lưu tại một máy chủ trung tâm, tốc độ cao. - Khi một máy khách yêu cầu lấy thông tin về thời gian nó sẽ phải gửi một yêu cầu theo một tiêu chuẩn do máy chủ định ra, nếu yêu cầu được chấp nhận thì máy chủ sẽ trả về thông tin mà máy khách yêu cầu.

Ưu điểm

- Không cần máy chủ. - Các máy khách tự chia sẻ tài nguyên cho nhau. - Khi mạng càng được mở rộng thì khả năng hoạt động của hệ thống càng tốt. - Chi phí thấp. - Dễ cài đặt và bảo trì. - Thuận lợi cho việc chia sẻ file, máy in, ổ đĩa quang, ….

- Tốc độ truy cập nhanh. - Khả năng mở rộng cao. - Hoạt động với bất kì loại ứng dụng nào. - Sử dụng được với các ứng dụng chia sẻ cơ sở dữ liệu. - Đáng tin cậy hơn (có máy chủ riêng). - Mức độ an toàn cao.

Nhược điểm

- Chậm. - Không tốt cho các ứng dụng cơ sở dữ liệu. - Độ tin cậy thấp.

- Cần máy chủ riêng. - Dễ gặp hiện tượng thắt cổ chai. - Chi phí cao. - Phức tạp trong việc bảo trì, duy trì hoạt động của mạng.

Page 12: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

4

Tạo ra khả năng cho các nút kết nối trực tiếp với các nút khác và yêu cầu các nguồn tài nguyên.

Một ví dụ điển hình về ứng dụng mạng ngang hàng trong giao tiếp là hệ thống chuyển tin nhắn trực tiếp: thông thường, máy chủ trung tâm lưu trữ thông tin và danh sách người dùng đăng ký. Khi có sự giao tiếp giữa các nút, việc tìm kiếm nút khác được thực hiện trên máy chủ. Trong trường hợp nút đó không trưc tuyến, hệ thống sẽ phải lưu trữ các tin nhắn cho đến khi nút này trực tuyến lại. Các dịch vụ tin nhắn điển hình: Napster, ICQ, Jabber.

1.3.2. Chia sẻ File Có thể nói ứng dụng được sử dụng nhiều nhất của mạng ngang hàng đó là chia sẻ

file. Theo ước tính khoảng 70% lưu lượng mạng trên Internet được cho là để trao đổi các file đặc biệt là các file âm nhạc (hơn 1 tỷ các file âm nhạc được tải mỗi tuần).

Đặc điểm của vấn đề chia sẻ file là các nút có các file được tải với vai trò là một máy khách làm cho chúng luôn sẵn sàng với các nút khác trong vai trò của một máy chủ.

Vấn đề chủ yếu cho mạng ngang hàng nói chung và cho vấn đề chia sẻ file nói riêng là vấn đề tìm kiếm. Trong ngữ cảnh của hệ thống chia sẻ file, có ba mô hình khác nhau được phát triển: mô hình flooded request, mô hình thư mục trung tâm và mô hình hướng tài liệu. Các mô hình này được minh họa qua các ứng dụng thực của mạng ngang hàng: Gnutella, Naspter và FreeNet.

Trong hệ thống Gnutella, không có sự tập trung hóa, các file được lưu trữ trên các nút của hệ thống, khi có yêu cầu tìm kiếm một file, máy tính sẽ gửi yêu cầu này tới tất cả các nút láng giềng của nó cho tới khi tìm thấy máy lưu giữ file cần tìm. Tiếp theo là quá trình trao đổi file trực tiếp giữa hai máy tính trong mạng.

Trong hệ thống Naspter, có sự tập trung hóa. Khi một máy tham gia vào mạng, danh sách các file sẽ được đăng ký và lưu trữ trên máy chủ trung tâm, khi có yêu cầu tìm kiếm, máy tính sẽ hỏi máy chủ trung tâm về vị trí của file. Sau đó việc trao đổi file được thực hiện giữa hai máy tính với nhau.

Trong hệ thống Freenet, các file chia sẻ không được lưu trữ trên đĩa cứng của các máy cung cấp mà chúng được lưu trữ ở các máy khác nhau trong mạng. Mục đích của việc phát triển mạng Freenet là làm cho thông tin được lưu trữ và truy cập mà không cần

Page 13: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

5

biết định danh. Với các tổ chức như vậy, chủ sở hữu của một nút mạng cũng không biết được tài liệu gì được lưu trữ trên đĩa cứng của máy anh mình. Vì lý do này mà các nút và các file được gắn các số định danh khác nhau. Khi một file được tạo, nó được truyền qua các nút láng giềng tới các nút có số định danh gần với số định danh của file nhất và được lưu trữ ở đó.

1.3.3. Băng thông Do yêu cầu về khả năng truyền dẫn của các mạng ngày càng đòi hỏi cao đặc biệt là

khi một số lượng lớn dữ liệu đa phương tiện tăng nhanh, hiệu quả của việc sử dụng băng thông ngày càng trở nên quan trọng. Hiện nay, hướng tiếp cận tập trung trong đó các file được lưu trữ trên một máy chủ và được truyền từ nó tới máy khách đang được sử dụng chủ yếu. Trong trường hợp này khi số lượng các yêu cầu tăng nhanh sẽ dẫn tới tình trạng thắt nút cổ chai. Với hướng tiếp cận theo mạng ngang hàng vấn đề cân bằng tải sẽ đạt được sự tối ưu nhất vì nó tận dụng tối đa các hướng truyền dẫn trong hệ thống.

Tăng khả năng cân bằng tải trong mạng: khác với kiến trúc client/server các mạng ngang hàng lai có thể nhận được sự cân bằng tải tốt hơn. Với mô hình client/server thì cả yêu cầu truy vấn thông tin và việc truyền dữ liệu đều được thực hiện giữa máy chủ và máy khách, việc đó sẽ làm mất sự cân bằng tải khi có nhiều yêu cầu kết nối tới máy chủ. Với kiến trúc ngang hàng, chỉ có yêu cầu truy vấn được thực hiện giữa máy tính trong mạng với máy chủ, còn vấn đề truyền file được thực hiện giữa hai máy tính trong mạng với nhau, điều này sẽ giúp cân bằng tải thông qua việc phân bố tải đều trên toàn hệ thống.

Chia sẻ băng thông: mạng ngang hàng có thể làm tăng khả năng tải và truyền các file do cơ chế tận dụng đường truyền thông qua các nút trong mạng. Một file dữ liệu lớn được chia thành các phân mảnh dữ liệu nhỏ độc lập nhau, các mảnh dữ liệu này được chuyển đồng thời đến các nút khác nhau và cuối cùng đến nút yêu cầu chúng. Tại nút yêu cầu các mảnh dữ liệu được phép lại thành file dữ liệu ban đầu. Các phần mềm tải file điển hình cho việc chia sẻ băng thông, chẳng hạn như: BitTorrent, FlashGet, vv.

1.3.4. Không gian lưu trữ Ngày nay, khi các dữ liệu càng ngày càng lớn, kích thước file cũng càng lớn, với các máy tính có tài nguyên đĩa cứng hạn hẹp sẽ gặp khó khăn trong việc lưu trữ các file dữ liệu lớn trên máy tính của mình. Phát huy ưu điểm của mạng ngang hàng để chia sẻ không gian lưu trữ giữa các máy tính trong hệ thống thì điều đó không còn là một điều đáng lo ngại. Bằng cách này, dữ liệu sẽ được chia nhỏ thành các phần và lưu trữ mỗi phần

Page 14: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

6

trên các máy trong mạng. Mỗi khi cần lấy lại dữ liệu, máy đó sẽ nhận lại các phần của dữ liệu trên các máy và ghép chúng lại để nhận được dữ liệu ban đầu. Với việc chia sẻ không gian lưu trữ, hệ thống P2P càng ngày càng được mở rộng với nhiều máy tính tham gia vào hệ thống.

1.3.5. Các chu trình xử lý Có thể nhận thấy rằng trong các ứng dụng đòi hỏi cần phải có sức mạnh tính toán

người ta thường tìm cách xây dựng các máy tính mạnh, đắt tiền chứ chưa chú trọng vào việc tận dụng khả năng tính toán của các máy tính được nối mạng. Ngày nay do những yêu cầu đòi hỏi tính toán hiệu năng cao như các thao tác tính toán trong tin sinh học, trong tài chính, trong đo lường mà nhiều nghiên cứu ứng dụng mạng ngang hàng vào xử lý tính toán đã được đưa ra. Bằng việc sử dụng các ứng dụng mạng ngang hàng để bó cụm các chu trình xử lý có thể nhận được khả năng tính toán ngang bằng với một siêu máy tính đắt tiền. Trong một mạng mỗi máy tính là trong suốt với các máy tính khác và tất cả các nút được kết nối mạng sẽ tạo thành một máy tính logic.

1.4. Kiến trúc mạng ngang hàng

1.4.1. Phân loại mạng ngang hàng Trong mô hình client/server, máy chủ là nơi cung cấp các dịch vụ, thông tin cho hệ

thống, chẳng hạn như máy chủ Web, máy chủ cơ sở dữ liệu, vv. Máy khách là máy yêu cầu nội dung thông tin, yêu cầu dịch vụ từ máy chủ. Địa chỉ IP của máy chủ phải được cung cấp cho các máy khách, nội dung thông tin chứa trên máy chủ có thể là các file âm thanh, hình ảnh, file cơ sở dữ liệu, vv. Máy khách không cung cấp bất kỳ nội dung hoặc dịch vụ nào để chạy hệ thống.

Mạng ngang hàng có thể được phân loại theo mục đích sử dụng, ví dụ:

- Chia sẻ file.

- Điện thoại VoIP.

- Đa phương tiện.

- Diễn đàn thảo luận.

….

Page 15: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

7

Mạng ngang hàng có thể được phân loại theo mức độ tập trung của mạng như trong hình vẽ dưới đây:

Hình 1.2: Phân loại mạng P2P theo mức độ tập trung

1.4.2. Kiến trúc mạng ngang hàng

1.4.2.1. Mạng ngang hàng không cấu trúc Nơi lưu trữ nội dung hoàn toàn không liên quan gì đến cấu trúc hình học của mạng.

Kỹ thuật tìm kiếm chủ yếu là sử dụng flooding với các giải thuật tìm kiếm ưu tiên theo chiều rộng (breadth – first), hoặc ưu tiên theo chiều sâu (depth – first) cho đến khi nội dung được tìm thấy. Các kỹ thuật khác phức tạp hơn gồm bước nhảy ngẫu nhiên (random walk) và chỉ số routing (routing indices).

Các hệ thống không cấu trúc thường phù hợp trong trường hợp các nút ra vào mạng thường xuyên, tùy ý.

1.4.2.1.1. Mạng ngang hàng tập trung

Page 16: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

8

Đây là mạng ngang hàng thế hệ thứ nhất, đặc điểm là vẫn còn dựa trên một máy chủ tìm kiếm trung tâm, chính vì vậy nó còn được gọi là mạng ngang hàng tập trung. Cấu trúc Overlay của mạng ngang hàng tập trung có thể được mô tả như một mạng hình sao:

Hình 1.3: Mạng ngang hàng tập trung

Nguyên tắc hoạt động:

Mỗi client lưu trữ file định chia sẻ với các nút khác trong mạng.

Một bảng lưu trữ thông tin kết nối của người dùng đăng ký (địa chỉ IP, kết nối băng thông, …).

Một bảng liệt kê danh sách các file mà mỗi người dùng định chia sẻ (tên file, dung lượng, thời gian tạo file …).

Mọi máy tính tham gia mạng được kết nối với máy chủ tìm kiếm trung tâm, các yêu cầu tìm kiếm được gửi tới máy chủ trung tâm phân tích, nếu yêu cầu được giải quyết máy chủ sẽ gửi trả lại địa chỉ IP của máy chứa tài nguyên trong mạng và quá trình truyền file được thực hiện theo đúng cơ chế của mạng ngang hàng, giữa các host với nhau mà không cần qua máy chủ trung tâm.

Ưu điểm:

- Dễ xây dựng.

- Tìm kiếm file nhanh và hiệu quả.

Nhược điểm:

- Vấn đề luật pháp, bản quyền.

Page 17: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

9

- Dễ bị tấn công.

- Server tập trung.

Napster là mạng ngang hàng được đặc trưng cho hệ thống mạng ngang hàng của thể hệ thứ nhất, chúng được dùng cho việc chia sẻ file giữa các người dùng Internet, được sử dụng rộng rãi, tuy nhiên nhanh chóng bị mất thị trường bởi yếu tố về luật pháp. Khái niệm và kiến trúc của Napster vẫn còn được sử dụng trong các ứng dụng khác như: Audiogalaxy, WinMX.

Hình 1.4: Mạng ngang hàng tập trung thế hệ thứ nhất (Napster)

Với Napster, việc tìm kiếm file bị thất bại khi bảng tìm kiếm trên máy chủ vì lý do nào đó không thực hiện được. Chỉ có các file truy vấn và việc lưu trữ được phân tán, vì vậy máy chủ đóng vai trò là một nút cổ chai. Khả năng tính toán và lưu trữ của máy chủ tìm kiếm phải tương xứng với số nút mạng trong hệ thống, do đó khả năng mở rộng mạng bị hạn chế rất nhiều.

1.4.2.1.2. Các mạng ngang hàng cơ bản Mạng ngang hàng cơ bản là một dạng khác của thế hệ thứ nhất trong hệ thống các

mạng ngang hàng. Không còn máy chủ tìm kiếm tập trung như trong mạng Napster, nó khắc phục được vấn đề nút cổ chai trong mô hình tập trung. Tuy nhiên vấn đề tìm kiếm trong mạng ngang hàng cơ bản lại sử dụng cơ chế Flooding, yêu cầu tìm kiếm được gửi cho tất cả các nút mạng là láng giềng với nó, điều này làm tăng đáng kể lưu lượng trong

Page 18: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

10

mạng. Đây là một yếu điểm của mạng ngang hàng cơ bản. Các phần mềm tiểu biểu cho mạng ngang hàng dạng này là Gnutella 4.0, FreeNet.

Hình 1.5: Mạng ngang hàng cơ bản (Gnutella 4.0, FreeNet)

Ưu điểm:

- Dễ xây dựng.

- Đảm bảo tính phân tán hoàn toàn cho các nút tham gia mạng, các nút tham gia và rời khỏi mạng một cách tùy ý mà không ảnh hưởng đến cấu trúc của mạng.

Nhược điểm:

- Tốn băng thông.

- Phức tạp trong tìm kiếm.

- Các nút có khả năng khác nhau (sức mạnh bộ vi xử lý, băng thông, không gian lưu trữ) đều có thể phải chịu tải như nhau.

1.4.2.1.3. Các mạng ngang hàng lai Để khắc phục nhược điểm của mạng ngang hàng cơ bản, một mô hình mạng ngang

hàng mới được phát triển với tên gọi là mạng ngang hàng lai. Đây được gọi là mạng ngang hàng thế hệ thứ 2. Phần mềm tiêu biểu cho mạng ngang hàng kiểu này là Gnutella 0.6 và JXTA (Juxtapose). JXTA được bắt đầu phát triển bới SUN từ 2001 (Đây là giao thức P2P mã nguồn mở). JXTA được sử dụng cho máy tính cá nhân, máy tính lớn, điện

Page 19: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

11

thoại di động, các thiết bị cầm tay khác – để giao tiếp theo cách không tập trung. Skype cũng được xây dựng dựa trên cấu trúc này.

Hình 1.6: Mạng ngang hàng lai

Trong mô hình mạng ngang hàng lai tồn tại một trật tự phân cấp bằng việc định nghĩa các SuperPeer. Các SupperPeer tạo thành một mạng không cấu trúc, có sự khác nhau giữa SupperPeer và ClientPeer trong mạng, mỗi SupperPeer có nhiều kết nối đến các ClientPeer.

Mỗi SupperPeer chứa một danh sách các file được cung cấp bởi các ClientPeer và địa chỉ IP của chúng vì vậy nó có thể trả lời ngay lập tức các yêu cầu truy vấn từ các ClientPeer gửi tới.

Ưu điểm:

Hạn chế việc tràn ngập các truy vấn, làm giảm lưu lượng trong mạng, nhưng vẫn tránh được hiện tượng thắt cổ chai (do có nhiều SupperPeer).

Khắc phục được nhược điểm về sự khác nhau về khả năng xử lý của CPU, băng thông, … ở mạng ngang hàng cơ bản, các SupperPeer sẽ chịu tải chính, các nút khác chịu tải nhẹ.

1.4.2.2. Mạng ngang hàng có cấu trúc Cấu trúc hình học của mạng được kiểm soát chặt chẽ.

Page 20: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

12

File (hoặc con trỏ trỏ tới file) được đặt ở một vị trí xác định.

Điều quan trọng đối với những hệ thống có cấu trúc là cung cấp sự liên kết giữa nội dung (ví dụ: id của file) và vị trí của nút (ví dụ: địa chỉ nút). Việc này thường dựa trên một cấu trúc dữ liệu bảng băm phân tán (Distributed Hash Table).

Dựa trên cấu trúc bảng băm phân tán đã có nhiều nghiên cứu và đề xuất ra các mô hình mạng ngang hàng có cấu trúc, điển hình là cấu trúc dạng vòng (hình 1.7): Chord, Pastry, …. Và cấu trúc không gian đa chiều: CAN, Viceroy.

Hình 1.7: Mạng ngang hàng có cấu trúc

Ưu điểm:

Khả năng mở rộng hệ thống mạng trong mô hình không cấu trúc thường bị hạn chế bởi các kỹ thuật trong việc xây dựng mạng chẳng hạn như: Mô hình tập trung dẫn tới việc thắt nút cổ chai khi mở rộng, kỹ thuật Flooding dẫn tới việc tăng lưu lượng mạng khi mở rộng mạng. Trong khi đó khả năng mở rộng với mô hình mạng có cấu trúc được nâng cao rõ rệt.

Nhược điểm:

Việc quản lý cấu trúc của topo mạng gặp khó khăn, đặc biệt trong trường hợp tỷ lệ vào/ra mạng của các nút cao.

Vấn đề cân bằng tải trong mạng.

Page 21: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

13

Chương 2: BẢO MẬT TRONG HỆ THỐNG MẠNG NGANG HÀNG

Để hệ thống P2P được chấp nhận và áp dụng rộng rãi thì chúng phải được bảo mật tốt. Bảo mật trong môi trường P2P đặt ra nhiều thách thức lớn so với bảo mật trong môi trường client/server. Trong hệ thống P2P, một nút có thể tham gia hoặc rời khỏi mạng bất cứ lúc nào. Vấn đề này có thể gây ra tiềm năng của nhiều mối đe dọa (như tấn công từ chối dịch vụ) làm gián đoạn hoạt động của hệ thống. Một nút độc hại có thể thay đổi định danh của nó bất cứ lúc nào khi nó gia nhập lại vào mạng, điều này sẽ là trờ ngại để xác định một nút có phải là nút độc hại hay không khi nó vừa mới gia nhập vào mạng.

Trong chương này chúng ta sẽ tìm hiểu về các vấn đề của bảo mật trong mạng ngang hàng, cụ thể sẽ gồm các phần sau: tấn công định tuyến, tấn công lưu trữ và phục hồi, tấn công từ chối dịch vụ, xác thực dữ liệu và tính toán, riêng tư và ẩn danh và bảo mật dựa vào hạ tầng cơ sở khóa công khai (PKI).

2.1. Tấn công định tuyến Các hệ thống P2P có cấu trúc như Chord[8], CAN[9], Pastry[10] và BATON[11]

áp dụng nguyên lý tương tự như quá trình xử lý truy vấn: khi một nút nhận một yêu cầu truy vấn, nếu nó không chứa kết quả truy vấn thì nó sẽ chuyển tiếp truy vấn tới một nút trong bảng định tuyến mà gần hơn với nút lưu kết quả truy vấn và tiến trình kết thúc khi có một nút phản hồi. Điều này có nghĩa, trong một mạng phủ cố định, không có các nút mới tham gia và cũng không có các nút rời khỏi mạng, với cùng một truy vấn bắt đầu từ cùng một nút thì luôn luôn theo cùng một tuyến đường nhất định (thông qua các nút trung gian). Trong các hệ thống như thế, điều quan trọng là phải đảm bảo tính đúng đắn của chức năng định tuyến và các trường hợp tấn công định tuyến phải được xử lý kịp thời. Trong các cuộc tấn công định tuyến, các nút xấu hoạt động tích cực trong hệ thống, chúng không chỉ tham gia định tuyến mà thông tin của chúng còn được lưu ở trong các bảng định tuyến của các nút khác. Tấn công định tuyến được chia làm 3 dạng chính như sau:

2.1.1. Tấn công làm sai lệch đường đi trong định tuyến Tấn công làm sai lệch đường đi trong định tuyến là dạng tấn công mà một nút xấu

chuyển tiếp yêu cầu truy vấn đến một nút không chính xác hoặc trả về một kết quả không chính xác cho nút yêu cầu truy vấn (ví dụ như: trả về một nút ngẫu nhiên và xem như nút

Page 22: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

14

đó giữ kết quả truy vấn). Đối với trường này, giải pháp để giải quyết vấn đề là: cho nút yêu cầu truy vấn theo dõi quá trình truy vấn. Với cách này, nếu một nút chuyển tiếp xâu truy vấn tới một nút khác mà không có xu hướng “gần” sang nút đích, trong trường hợp đó nó bị coi như một nút xấu. Để khôi phục lại hệ thống sau cuộc tấn công này, nút yêu cầu truy vấn có thể quay lại nút tin cậy sau cùng trên đường định tuyến và yêu cầu nút đó cung cấp một tuyến đường khác. Đối với trường hợp tấn công thứ hai, nút yêu cầu truy vấn có thể kiểm tra vùng giá trị được quản lý bởi nút đích để xác minh kết quả. Ví dụ, nút yêu cầu truy vấn có thể kiểm tra định danh để xác minh chính xác là nút đích.

2.1.2. Tấn công làm cập nhật sai bảng định tuyến Tấn công làm cập nhật sai bảng định tuyến là dạng tấn công mà một nút xấu muốn

làm hỏng bảng định tuyến của các nút khác bằng cách cung cấp thông tin định tuyến sai lệch. Hậu quả gây ra từ dạng tấn công này là làm cho các nút “tốt” trong hệ thống truy vấn sai lệch điểm đích dẫn đến kết quả trả về không chính xác, hoặc truy vấn đến một nút không tồn tại. Giải pháp để loại bỏ các cuộc tấn công dạng này là kiểm tra các nút ở xa trước khi tích hợp chúng vào trong bảng định tuyến của các nút. Một cách thức tấn công tinh vi hơn có thể xảy ra khi hệ thống cung cấp thêm tính linh hoạt bằng cách cho phép lựa chọn máy chủ. Cách thức tấn công này có thể không ảnh hưởng đến việc định tuyến nhưng nó có thể ảnh hưởng đến chất lượng của dịch vụ. Ví dụ, thay vì chọn nút nhanh nhất thì một nút xấu sẽ định tuyến xâu truy vấn đến một nút mà ở đó băng thông rất thấp và có thể độ tin cậy vào nút đó là rất thấp.

2.1.3. Phân vùng mạng định tuyến không chính xác Phân vùng định tuyến không chính xác xảy ra khi một nút mới gia nhập vào mạng

và hình thành một phân vùng mạng khác bằng một nhóm các nút độc hại. Điều này có thể xảy ra bởi vì, khi một nút mới gia nhập vào hệ thống, nó cần được kích hoạt thông qua một vài nút trong hệ thống. Một nút như thế có thể là thành viên của phân vùng mạng độc hại. Ngoài ra, một nút xấu ở trong một phân vùng mạng chính đáng cũng có thể định tuyến các nút mới vào phân vùng mạng độc hại. Các cuộc tấn công như vậy không chỉ có thể từ chối các dịch vụ đối với các nút mới mà quan trọng là chúng còn có thể quan sát các hành vi của các nút đó. Một giải pháp cho vấn đề này là chỉ cho các nút mới kích hoạt đến các nút đáng tin cậy. Bằng giải pháp này, mỗi nút phải duy trì một danh sách các nút đáng tin cậy mà chúng đã được xác định trước và chỉ liên lạc với các nút trong danh sách

Page 23: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

15

đó khi tham gia vào mạng (nếu nút vừa mới tham gia vào mạng lần đầu tiên và nó chưa biết danh sách các nút tin cậy thì nó có thể lấy thông tin từ một vài nút đáng tin cậy đã được xác nhận). Ngoài ra, nút mới tham gia có thể kiểm tra bảng định tuyến để phát hiện phân vùng độc hại. Điều này có thể được thực hiện bằng cách khởi tạo các truy vấn ngẫu nhiên tại các nút láng giềng ngẫu nhiên và so sánh các kết quả trả về. Nếu hai kết quả không giống nhau, có khả năng nút đó sẽ rơi vào phân vùng độc hại. Trên thực tế, như được thảo luận bởi Sit và Morris[12], một giải pháp đơn giản và hiệu quả để tránh các nút độc hại là cấp định danh cho các nút bằng cách sử dụng khóa công khai của chúng. Mặc dù chi phí cho giải pháp này có thể rất cao nhưng với giải pháp này các nút độc hại không thể dễ dàng làm tê liệt hệ thống.

2.2. Tấn công lưu trữ và phục hồi Hệ thống P2P (có cấu trúc và không có cấu trúc) được triển khai là nơi lưu trữ dữ

liệu phân tán và đó cũng là môi trường thuận lời cho các cuộc tấn công lưu trữ và phục hồi xảy ra, bao gồm các vấn đề dưới đây:

- Một nút xấu có thể từ chối việc lưu trữ dữ liệu mà đáng lẽ ra nó phải chịu trách nhiệm lưu trữ.

- Một nút xấu có thể thỏa thuận để lưu trữ dữ liệu nhưng sau đó nó sẽ xóa dứ liệu. Đây là một vấn đề nghiêm trọng nếu như dữ liệu bị xóa vĩnh viễn.

- Một nút xấu có thể chấp nhận trách nhiệm lưu trữ dữ liệu nhưng có thể nó sẽ từ chối các yêu cầu của client hoặc tệ hơn nó có thể thay thế bằng các bản sao có sự thay đổi.

- Một nút xấu có thể hợp tác với các nút khác để cùng tấn công.

- Một nút xấu có thể giả mạo danh tính của một nút khác.

Các dạng tấn công trên cũng xảy ra trong các hệ thống khác, nơi mà những siêu dữ liệu được lưu trữ. Đặc biệt, các siêu dữ liệu phổ biến nhất là những dữ liệu được sử dụng trong các chỉ số định tuyến và rất quan trọng, chúng cần được bảo đảm tính chính xác và đầy đủ. Một giải pháp để chặn các cuộc tấn công này được đề xuất trong hệ thống PIPE[13] (Peer-to-Peer Information Preservation and Exchange network - hệ thống mạng bảo tồn và trao đổi thông tin ngang hàng). Hệ thống PIPE về cơ bản là một hệ thống phân tán được thiết kế để bảo vệ tài nguyên từ các bản đã bị sửa đổi hoặc bị làm hỏng gây ra

Page 24: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

16

bởi các nút xấu. Giả sử có k nút thất bại và m nút là xấu, hệ thống PIPE cung cấp một vài dịch vụ cho các nút như sau:

- Discover(): dịch vụ này sử dụng một nút mới gia nhập vào hệ thống. Nhiệm vụ của nó là thông báo cho hệ thống biết các nút mới vừa gia nhập để thống kê các nút đang trực tuyến, và hỗ trợ các nút mới có được một danh sách ít nhất k nút, những nơi có thể lưu trữ tài liệu. Để chắc chắn bất cứ tài liệu nào được lưu trữ tại các nút khác là không bị mất, ít nhất (m + 1) nút phải được giao tiếp để bảo đảm ít nhất một trong số các nút đó là không phải nút xấu. PIPE giả định nút mới đã biết danh tính của những nút đó để kích hoạt quá trình học hỏi danh tính của các nút khác trong hệ thống. Trong thực tế, có thể nó cần giao tiếp với (m + k + 1) nút khác nếu k nút bị thất bại. Từ (m + 1) nút (hoặc lớn hơn), nút mới gia nhập sẽ hợp nhất các danh sách các nút được cung cấp bởi mỗi nút để có được danh sách các nút mà nó có thể lưu trữ tài liệu trên đó để tải về một bản có giá trị vào một thời điểm sau.

- publish(D, i): dịch vụ này có nhiệm vụ lưu giữ tài liệu D tại nút i. Vì các nút xấu có thể xóa D hay thậm chí từ chối phục vụ D, vì thế các nút có thể thất bại, P phải tạo ra ít nhất (m + k + 1) nút. Bằng cách này, sẽ có ít nhất một bản sao có giá trị tại ít nhất một nút có hiệu lực.

- recover(D, i): dịch vụ này được sử dụng để xuất bản thêm số bản sao của tài liệu vào hệ thống PIPE khi các nút xấu hoặc các nút thất bại đã xóa tài liệu, do đó sẽ luôn có ít nhất một bản sao có hiệu lực được lưu giữ đâu đó trong mạng.

- search(q): dịch vụ này sẽ gửi quảng bá truy vấn tìm kiếm q đến tất cả các nút. Các nút chứa tài liệu phù hợp với q sẽ trả lại id của tài liệu đó và id của chính nó. Vấn đề thách thức ở đây là bằng cách nào có thể chọn lọc ra các bản sao bị thay đổi.

- retrieve(D, i): dịch vụ này sẽ lấy id của tài liệu D từ nút i. Để đảm bảo tài liệu được lấy ra là một bản sao hợp lệ (không phải là bản bị thay đổi), một trong những giải pháp an toàn đó là ràng buộc id của tài liệu với nội dung của tài liệu. Điều này có thể thực hiện bằng cách đại diện id của tài liệu như một chữ ký (bằng cách sử dụng hàm băm một chiều như SHA hoặc MD5). Một tài liệu được xác thực bằng cách kiểm tra chữ ký của nó trùng với id của nó (thu được từ hoạt động search()).

Hiệu quả của hệ thống PIPE phụ thuộc vào mức độ chính xác của sự dự báo về m và k. Trong khi hầu hết các giải pháp đơn giản sử dụng phương pháp lưu trữ dư thừa

Page 25: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

17

(nhân rộng tài liệu trên một số lượng lớn các nút), một giải pháp thay thế là hạn chế ảnh hưởng của các nút xấu, càng thấp càng tốt. Cách này có thể đạt được bằng cách sử dụng các kỹ thuật để phát hiện một số hành vi nguy hiểm rõ ràng. Trong hệ thống PIPE, hai kỹ thuật đã được đề xuất để yêu cầu challenger truy vấn đến nút bị coi là giả mạo lưu giữ tài liệu. Kỹ thuật đầu tiên, kỹ thuật phát hiện giả mạo lưu giữ tài liệu: yêu cầu nút đó (nút bị coi là giả mạo) cung cấp tài liệu mà nó đã được phân phát lưu giữ. Rõ ràng, nếu nó không có khả năng trả lại tài liệu thì nó bị coi là nút xấu. Kỹ thuật thứ hai, kỹ thuật phát hiện bản sao không hợp lệ yêu cầu một nút đang giữ tài liệu trả lại một phần của tài liệu (lựa chọn ngẫu nhiên bởi challenger). Một lần nữa, nếu nút đó trả lại phần tài liệu có nội dung không như mong đợi thì nút đó cũng bị coi là nút xấu. Khi một nút xấu được phát hiện, hệ thống sẽ phục hồi bằng cách tạo thêm các bản sao.

2.3. Tấn công từ chối dịch vụ Trong một mạng ngang hàng, các nút tham gia nên sẵn sàng đóng góp các dữ liệu

hoặc các tài nguyên của chúng cho các nút khác. Tuy nhiên, một nút có thể trở nên không sẵn sàng vì lý do nó bị tấn công. Một trong những hình thức tấn công đó là tấn công từ chối dịch vụ (denial-of-service – DoS). Trong một vụ tấn công từ chối dịch vụ, một nút bị quá tải bởi các tin nhắn vô ích và lãng phí tài nguyên của nó để thực hiện các công việc vô nghĩa, do đó nó không thể đáp ứng đúng mục đích. Ví dụ, một nút xấu có thể gửi liên tục các tin nhắn đến một nút duy nhất. Bằng cách này, nó sẽ làm cho băng thông của một nút bị tiêu thụ chỉ để chuyển tin nhắn, làm cho các tài nguyên mà nó chia sẻ (như CPU, bộ nhớ) không sẵn sàng cho các nút khác trong mạng. Tấn công từ chối dịch vụ được chia thành hai dạng: tấn công tầng mạng và tấn công tầng ứng dụng. Trong khi các cuộc tấn công tầng mạng cố gắng để làm tê liệt một nút bằng cách làm ngập và sau đó làm tràn với một số lượng lớn giao thông trong mạng, các cuộc tấn công tầng ứng dụng làm cho một nút không sẵn sàng cho một số lượng lớn các yêu cầu ứng dụng. Sau đó nút đó có thể hư hỏng do phải sử dụng cạn nguồn tài nguyên để phục vụ các yêu cầu vô ích.

Trong phần này chúng ta sẽ xem xét một số phương pháp hiện nay được xây dựng để (a) phát hiện khi một cuộc tấn công từ chối dịch vụ diễn ra, (b) quản lý các cuộc tấn công để các nút có thể duy trì dịch vụ của nó cho các nút khác. (c) phục hồi từ cuộc tấn công bằng cách ngắt kết nối với các nút nguy hiểm.

Page 26: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

18

2.3.1. Quản lý các cuộc tấn công Daswani và Garcia-Molina[14] đã nghiên cứu tấn công dịch vụ ở tầng ứng dụng

trong phạm vi của một mạng ngang hàng sử dụng kiến trúc siêu nút. Trong một kiến trúc như vậy, các nút được phân loại thành hai cấp: nút cục bộ kết nối với mạng ngang hàng thông qua một siêu nút; các nút siêu nút giao tiếp trong một bộ Gnutella-like, nơi mà một truy vấn được gửi quảng bá từ một siêu nút đến tất cả các siêu nút láng giềng của nó. Công việc tập trung vào việc quản lý các cuộc tấn công từ chối dịch vụ, rất khó để phân biệt giữa các truy vấn hợp lệ với các truy vấn nhằm mục đích tấn công. Giải pháp cơ bản là cân bằng hệ thống bằng cách chia sẻ công bằng tài nguyên cho mỗi nút, tức là không quan tâm bao nhiêu thông điệp, bao nhiêu yêu cầu được xử lý từ một nút mà nút phục vụ chỉ dành ra một con số cụ thể các tài nguyên cho nút đó. Bằng cách này, mức độ nguy hiểm của các cuộc tấn công vào một nút sẽ được hạn chế.

Với kiến trúc siêu nút, mỗi siêu nút có 2 cấp truy vấn: truy vấn cục bộ và truy vấn liên bộ. Để hạn chế tác hại của một cuộc tấn công từ chối dịch vụ mà không có thể nhận biết một truy vấn có phải là truy vấn nhằm mục đích tấn công hay không, các tác giả đã đưa ra một tham số được gọi là tỷ lệ hạn chế ρ (0 <= ρ <=1), để xác định tỷ lệ của các truy vấn cục bộ và các truy vấn liên bộ. Ví dụ, nếu một nút có khả năng phục vụ k truy vấn trong một đơn vị thời gian, sau đó nó chấp nhận ρ * k truy vấn cục bộ, và (1 – ρ) * k truy vấn liên bộ trong một đơn vị thời gian. Ngoài ra, vì một nút sẵn sàng chấp nhận chỉ (1–ρ) * k truy vấn liên bộ, điều này làm phát sinh hai vấn đề: vấn đề đầu tiên là có bao nhiêu truy vấn mà một nút nên chấp nhận từ một nút láng giềng; vấn đề thứ hai là phải làm gì nếu số lượng truy vấn liên bộ lớn hơn (1 – ρ) * k. Để giải quyết hai vấn đề này, một lý thuyết đã đề xuất hai chiến lược: chiến lược incoming allocation strategy - IAS và chiến lược drop strategy – DS.

- Chiến lược IAS: có hai kỹ thuật được sử dụng trong chiến lược này. Kỹ thuật thứ nhất là kỹ thuật Weighted IAS, trong đó tập hợp xác suất được chấp nhận của các truy vấn là bằng nhau. Vì thế, nếu các nút láng giềng gửi nhiều truy vấn sẽ chỉ có một tỷ lệ các truy vấn được chấp nhận. Ví dụ, nếu một nút có n nút láng giềng và mỗi nút gửi αi truy vấn

(1<= i <= n), sau đó nút đó sẽ nhận ( )*)1(1

kn

j j

i

truy vấn từ nút láng giềng thứ i.

Kỹ thuật thứ hai là kỹ thuật Fractional IAS, nó xử lý công bằng đối với mỗi nút láng

Page 27: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

19

giềng. Nói cách khác, một nút có n nút láng giềng sẽ chấp nhận n

k*)1( truy vấn từ mỗi

nút láng giềng. Với nút láng giềng có ít hơn n

k*)1( truy vấn, thì khả năng xử lý còn lại

được nhường cho các nút láng giềng khác.

- Chiến lược DS: Trong khi một nút áp dụng chiến lược IAS chấp nhận m truy vấn từ nút láng giềng gửi (m + δ) truy vấn thì chiến lược DS xác định m truy vấn (trong số m + δ truy vấn) nên được lựa chọn để chấp nhận (hay đúng hơn là nên loại bỏ δ truy vấn). Nút X là nút mà nó chấp nhận truy vấn từ nút láng giềng Y của nó. Có j truy vấn riêng biệt từ Y và số lượng mỗi truy vấn riêng biệt là q1, …, qj. Có ba kỹ thuật được sử dụng trong chiến lược này. Kỹ thuật Proportional DS: mỗi loại truy vấn được thiết lập một trọng số

như nhau, và do đó X sẽ chấp nhận ( mq

qj

l l

i *1

) truy vấn từ truy vấn loại i. Kỹ thuật

Equal DS: các truy vấn được lựa chọn dựa vào nút nguồn (nút phát ra truy vấn) và mỗi nút nguồn đều được lựa chọn bằng nhau. Vì vậy, nếu có s nút nguồn khác nhau, thì X sẽ

chấp nhận sm truy vấn từ mỗi nút nguồn đó. Khả năng xử lý truy vấn còn lại sẽ chuyển

cho các truy vấn từ các nút nguồn. Cuối cùng, kỹ thuật OrderbyTTL DS: được sử dụng để loại bỏ các truy vấn dựa trên giá trị thời gian sống (time-to-live – TTL) của chúng. Có hai cơ chế sử dụng trong kỹ thuật này: PreferHighTTL sẽ loại bỏ những truy vấn có thời gian sống thấp nhất đầu tiên và PreferLowTTL sẽ loại bỏ những truy vấn với thời gian sống cao nhất đầu tiên.

2.3.2. Phát hiện và phục hồi từ các cuộc tấn công Trong một hệ thống mạng ngang hàng P2P, quan sát thấy rằng topo của hệ thống

tuân theo luật phân phối lớn, nơi một phần nhỏ các nút giữ một số lượng lớn các kết nối đến các nút khác trong khi số lượng lớn các nút còn lại chỉ duy trì một số lượng nhỏ các kết nối. Điều này có nghĩa, một phần lớn lưu thông trong mạng đi qua một số nhỏ các nút kết nối cao. Kết quả là các cuộc tấn công vào các nút này có thể dễ dàng phân vùng mạng thành các vùng cô lập, làm cho hệ thống hoạt động kém hiệu quả. Để trành và phục hồi từ các cuộc tấn công, kỹ thuật phát hiện và phục hồi từ các cuộc tấn công là rất đáng quan tâm. Các cuộc tấn công nhằm mục đích phân vùng mạng khác với sự thất bại. Sự thất bại của các nút là kết quả từ việc các nút bị loại bỏ khỏi mạng một cách bất ngờ (hoặc do các

Page 28: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

20

nút rời khỏi mạng hay các hình thức tấn công khác, như tấn công DoS ở tầng ứng dụng). Còn đối với các cuộc tấn công nhằm mục đích phân vùng mạng thường để ý vào các nút có kết nối cao. Như vậy, kỹ thuật phát hiện thất bại cơ bản xem xét một nút láng giềng là thất bại nếu nó ngừng đáp ứng dịch vụ. Keyani[15] đã đề xuất một giải pháp để phát hiện một cuộc tấn công bằng cách quan sát sự kết nối giữa các nút có bị giảm hay không. Trong giải pháp này, cần có một nút duy trì thông tin của cả các nút láng giềng trực tiếp và các nút láng giềng gián tiếp. Giải pháp này dựa vào sự quan sát một cuộc tấn công vào một nút sẽ loại bỏ nút láng giềng có kết nối mạnh nhất của nút đó với xác suất cao và do đó ngắt kết nối một số lượng lớn của các nút láng giềng của nút láng giềng bị loại bỏ. Như vậy, để phát hiện một cuộc tấn công, trong một khoảng thời gian, mỗi nút giám sát số nút láng giềng trực tiếp và gián tiếp đang bị hủy kết nối. Nếu tỉ lệ các nút láng giềng trực tiếp bị ngắt kết nối lớn hơn tỷ lệ các nút láng giềng gián tiếp bị ngắt kết nối và lớn hơn một ngưỡng nhất định (đã được xác định trước), có khả năng là một cuộc tấn công đang xảy ra. Lý do của việc đưa ra ngưỡng là để lọc ra các sai sót do các lỗi ngẫu nhiên. Để khôi phục lại mạng sau khi phát hiện thấy tấn công, Keyani đã đề xuất một kỹ thuật phục hồi. Ý tưởng cơ bản rất đơn giản nhưng lại hiệu quả: hệ thống duy trì một mạng ảo thay thế lớp phủ bên ngoài mạng hoạt động để khi mạng hoạt động bị phá vỡ, các nút từ mạng phủ ảo có thể được sử dụng thay thế các liên kết bị phá vỡ. Để cung cấp như một sự thay thế lớp phủ ảo, một vài vấn đề đã được giải quyết: (a) Mạng ảo nên được thiết kế như thế nào? (b) làm thế nào để duy trì mạng ảo này? Làm thế nào để sử dụng mạng ảo trong một cuộc tấn cống. Keyani cũng đề xuất một mạng lũy thừa [15]. Trong loại mạng này, tất cả các nút có khoảng chừng bằng nhau số lượng các liên kết. Điều này có nghĩa, một cuộc tấn công vào một số lượng nhỏ các nút không thể dễ dàng phân vùng mạng. Để đảm bảo một mạng lũy thừa có thể duy trì mà không cần quá nhiều chi phí, một kỹ thuật phát hiện nút ngẫu nhiên đã được đề xuất: một nút phát ra một thông điệp kiểm tra kết nối, được gọi là một khám phá ngẫu nhiên (random discovery ping – RDP), chọn ngẫu nhiên một nút láng giềng để gửi thông điệp. Quá trình này lặp đi lặp lại cho đến khi thông điệp đã được chuyển đi với một số bước xác định trước. Nút cuối cùng nhận được RDP sẽ trả lời một thông điệp pong cho nút gửi thông điệp ping, qua đó nút cuối cùng nhận được RDP sẽ được xác định. Để phục hồi toàn bộ mạng, số lượng các bước phải đủ lớn để khôi phục vùng mạng lớn. Hai chiến lược áp dụng việc chọn những nút láng giềng để gửi RDP. Chiến lược thứ nhất áp dụng số lượng các bước ban đầu và lựa chọn các nút láng giềng

Page 29: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

21

một cách ngẫu nhiên với xác suất tỉ lệ với số lượng các nút láng giềng. Chiến lược này cho phép thông điệp được truyền đi xa tới mức có thể từ nút nguồn để ngăn chặn vòng lặp tuần hoàn. Chiến lược thứ hai áp dụng số lượng các bước còn lại và ủng hộ các nút mà có ít láng giềng. Sử dụng chiến lược này có thể giảm thiểu tính chất ưu đãi luôn đi kèm trong mạng hoạt động. Như vậy, mỗi nút trong mạng sẽ duy trì số láng giềng có hiệu lực cho mạng hoạt động và số láng giềng ảo cho mạng ảo.

Trong trường hợp mạng bị gián đoạn, mạng ảo sẽ được sử dụng: một nút sẽ chọn từ danh danh sách các nút láng giềng ảo để tahy thê láng giềng bị lỗi của nó. Lưu ý rằng, trong quá trình thay thế, hệ thống không tìm láng giềng ảo mới vì làm việc này hệ thống sẽ gánh thêm lưu lượng truy cập trong mạng và do đó đặt thêm gánh nặng cho hệ thống mạng đã thực sự thất bại. Việc tìm láng giềng ảo có thể thực hiện sau đó khi mạng không còn “bận rộn”.

Nghiên cứu mô phỏng cho thấy, việc đề xuất phương pháp phát hiện và phục hồi có thể hạn chế sự phân vùng mạng giảm xuống 25 lần so với cách tiếp cận thông thường. Kết quả cho thấy hiệu quả của truy vấn cũng được cải thiện cả trong và sau vụ tấn công. Với chi phí 20% lưu thông trong mạng được cọi là có thể chấp nhận được nếu nhìn về những lợi ích nó mang lại cho hệ thống.

Đối với hệ thống mạng ngang hàng, Sit và Morris[12] đã nêu ra rằng, các cuộc tấn công DoS vào một nút duy nhất được coi là thất bại để hệ thống có thể sử dụng các kỹ thuật phục hồi nhằm cô lập nút mục tiêu. Tuy nhiên, để giảm thiểu tác hại của cuộc tấn công, một vài mức độ nhân rộng là cần thiết.

2.4. Xác thực và toàn vẹn dữ liệu Với sự gia tăng nhanh chóng của các tài nguyên có giá trị trên các máy tính cá

nhân hiện nay, các hệ thống P2P như Freenet [16], Publis [17], OceanStore [18] và CFS [19] cung cấp giải pháp với chi phí rất thấp, việc lưu trữ sẵn sàng ở mức độ cao và không cần đến máy chủ tập trung. Tuy nhiên, môi trường P2P là môi trường dễ phát sinh các mối nguy hiểm chủ yếu theo nghĩa một nút có thể trở thành một nút độc hại (ngay cả khi phần lớn các nút đều là các nút có thể tin cậy). Một nút độc hại có thể làm hỏng nội dung, thay thế nó bằng một nội dung có hại (có chứa virus), hoặc có thể không trả lại đầy đủ các câu trả lời cho nút yêu cầu (ví dụ: trong các ứng dụng cơ sở dữ liệu, nó có thể chọn ra k

Page 30: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

22

đối tượng để trả lại kết quả phản hồi trong khi câu trả lời đầy đủ chứa (k+j) đối tượng với (j >=1)).

Một giải pháp đơn giản là chỉ lưu giữ dữ liệu trên các nút tin cậy, tức là nút đó đã được xác thực là tin cậy bởi một vài người có thẩm quyền. Một giải pháp khả thi hơn mà có thể không cần đến phải tin cậy bất kỳ nút nào. Thay vào đó, một nút sẽ tạo ra một số đối tượng xác minh để đáp ứng truy vấn. Các đối tượng xác minh được sử dụng bởi các nút truy vấn để xác nhận rằng các câu trả lời là chính xác. Hai điểm quan trọng trong một kỹ thuật như vậy là: (a) nó phải cho phép các nút truy vấn để xác minh các câu trả lời được trả về bởi nút không tin cậy thực sự thuộc về tập các câu trả lời; (b) nó phải cho phép các nút truy vấn để xác minh các câu trả lời đầy đủ.

2.4.1. Các truy vấn xác thực trong cớ sở dữ liệu quan hệ Devanbu [20] đề xuất một ý tưởng mà có thể thuận lời để lưu giữ cơ sở dữ liệu

quan hệ trên các nút không tin cậy. Ý tưởng cở bản như sau:

- Người sở hữu dữ liệu gửi quảng bá một thông điệp đến các nút mà họ sẽ truy vấn quan hệ. Thông điệp này được lấy từ gốc của một cây băm Merkle xây dựng trên quan hệ này. Một cây băm Merkle là một cây nhị phân mà nút lá thứ i có giá trị băm Hi thu được bằng cách áp dụng hàm băm h trên bộ thứ i. Tức là Hi = h(h(ti . A1) || h(ti . A2) || ... h(ti . An)) đối với một quan hệ có n thuộc tính. Các nút khác trên cây cũng được tạo ra bằng cách tính giá trị băm của các nút con của nó. Hình 2.1 cho thấy một ví dụ về một cây băm Merkle. Ở đây, có 4 bộ. H1 đến H4 là những giá trị băm của bốn bộ tương ứng từ t1 đến t4. Nút cha của t1 và t2 có giá trị băm được tính: H12 = h(H1|| H2). Thông điệp cho 4 bộ là Hr.

Hình 2.1(a): Cây băm Merkle

Page 31: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

23

- Đối với một truy vấn, nút không tin cậy đánh giá truy vấn và trả về cùng với các bộ trả lời một đối tượng xác minh gọi là VO. Về bản chất, VO là một cây con được tạo ra từ cây băm Merkle trên quan hệ này. Để một truy vấn chính xác được trả về từ một bộ đơn cần tìm đường đi từ bộ đó đến gốc tương đương với việc tìm các nút trung gian giữa bộ đó với nút gốc, đó là một dạng của VO. Ví dụ, để tìm được t2, VO gồm các nút H1 và H34. Đối với một truy vấn phức tạp, như có thể thấy truy vấn q trong hình 2.1(b), VO cũng rất phức tạp. Ở đây GLB(q) và LUB(q) biểu thị giá trị lớn nhất nhỏ hơn so với câu trả lời của q và giá trị nhỏ nhất lớn hơn các câu trả lời của q. LCA(q) là giá trị giao nhau của các cây con và nó giới hạn những câu trả lời từ GLB(q) đến LUB(q). VO trong trường hợp này bao gồm các nút cần thiết để xác định 3 đường: từ GLB(q) đến LCA(q), từ LUB(q) đến LCA(q) và từ LCA(q) đến gốc.

- Khi nhận được câu trả lời và VO, nút truy vấn sẽ xác minh tính đúng đắn của câu trả lời bằng cách tính lại thông điệp sử dụng câu trả lời và VO.

Hình 2.1(b): Miền xác thực liên tục

Chúng ta lưu ý rằng các giá trị GLB(q) và LUB(q) cần thiết để xác minh tính đầy đủ của các câu trả lời. Nếu kết quả thu được giống với kết quả cung cấp bởi chủ sở hữu, thì câu trả lời trả về bởi nút không tin cậy là chính xác và đầy đủ. Tiếp tục với ví dụ trên, để xác minh t2 không bị giả mạo, client làm các công việc sau: đầu tiên nó tính H2’; với H1 và H2’ có thể xác định được H12’; và cuối cùng, kết hợp H12’ và H34 để tính Hr’. Nếu Hr = Hr’ thì t2 không bị giả mạo. Lưu ý ở đây là client đã được giả định là đã có Hr từ chủ sở hữu. Ngoài ra, Hr có thể được ký bởi chủ sở hữu (với khóa riêng của họ) và được coi như một phần của VO; trong trường hợp này, client có thể tự xác minh xem Hr’ có giống với chữ ký Hr (với khóa công khai của chủ sở hữu) hay không.

Page 32: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

24

Davanbu[20] và các đồng nghiệp của mình cũng trình bày cách xác định VO cho các thao tác SQL như selection, projection, join và set có thể được tính bằng cách sử dụng kỹ thuật này. Tuy nhiên với kỹ thuật này cũng đặt ra 3 điểm hạn chế:

1. Do các cách sắp xếp khác nhau của các bộ trong một bảng dẫn đến các cây băm Merkle khác nhau, khi sự sắp xếp các bộ thay đổi, nó cần tái tạo lại cây băm Merkle theo sự sắp xếp trong bảng. Kết quả là hệ thống phải chịu chi phí cao cho việc cập nhật dữ liệu. Hơn nữa, nếu bảng được sắp xếp theo các cách khác nhau, nó sẽ tạo ra các cây băm Merkle khác nhau, vì thế tổng phí để lưu trữ các cây băm Merkle là rất lớn.

2. Vì đối tượng xác minh VO cho một kết quả truy vấn chứa tất cả các nút trong đường đi từ nút chứa kết quả truy vấn đến nút gốc dẫn đến kích thước của VO là tỷ lệ thuận với kích thước của kết quả truy vấn và bằng logarit kích thước của bảng. Kết quả là nếu kích thước của kết quả truy vấn lớn thì kéo theo kích thước của VO cũng sẽ lớn.

3. Vì hàm băm được áp dụng trên tất cả các bộ, để xác định VO của một kết quả truy vấn, nó cần gửi tất cả các bộ của kết quả truy vấn đến nơi phát ra truy vấn. Do đó việc xác minh được thực hiện tại nơi phát ra truy vấn có thể gây ra sự tiêu thụ tài nguyên rất lớn bộ lọc lọc ra các thuộc tính. Ngoài ra, yêu cầu gửi tất cả các bộ của kết quả truy vấn làm giới hạn kỹ thuật này trong việc hỗ trợ kiểm soát truy cập ở mức cột, tức là không thể cho phép một người dùng truy cập một số cột trong khi không cho người khác truy cập.

Để khắc phục những hạn chế trên, Pang và Tan [21] đã đưa ra một cây B xác thực (Verifiable B-Tree – VB-Tree). Giải pháp này có thể tạo ra một đối tượng VO của một truy vấn không phụ thuộc vào kích thước của kết quả truy vấn và độc lập với kích thước của bảng và cho phép việc xác minh được thực hiện tại các nút cung cấp kết quả truy vấn thay vì ở các nút phát ra truy vấn. Ngoài ra, giải pháp này cũng cho phép việc cập nhật được thực hiện tự động không vi phạm tính nhất quán của dữ liệu. Một ví dụ về một cây VB được thể hiện trong hình 2.2. Cấu trúc cây này được xây dựng trên ba ý tưởng cơ bản sau:

- Thứ nhất, cây VB tạo các ký tự chữ ký cho tất cả các thuộc tính trong một bộ và sử dụng các ký tự chữ ký để tính toán các ký tự chữ ký của bộ đó. Đặc biệt, để tạo ra một

Page 33: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

25

ký tự chữ ký cho một thuộc tính, đầu tiên hệ thống sử dụng hàm băm một chiều như MD5 hoặc SHA-1 để băm chuỗi (tên của cơ sở dữ liệu, bảng, bộ, khóa của bộ, giá trị của thuộc tính). Giá trị của kết quả này sau đó được ký với khóa bí mật của cơ sở dữ liệu. Bằng cách này, hệ thống cần có một máy chủ đáng tin cậy để lưu giữ các khóa công khai của cơ sở dữ liệu và một nguồn chứng thực như chứng thực cơ sở hạ tầng khóa công khai X.509 và CRL Profile [22], cho phép người dùng lấy khóa công khai của cơ sở dữ liệu để sử dụng trong việc tính ngược.

Hình 2.2: Cây VB

- Thứ hai, giải pháp này sử dụng hàm băm h(x) = gx mod q để tạo ra giá trị băm cho các nút trong cây VB. Vì hàm băm này có tính chất quan trọng đó là h(x+y) = h(y+x), bằng cách sử dụng hàm băm này cho phép hệ thống tính các thông điệp của các nút trên cây ở một bậc tùy ý, do đó tránh được vấn đề đầu tiên trong hệ thống sử dụng cây băm Merkle để thực hiện tại nút giữ kết quả truy vấn và vì thế tránh được vấn đề thứ ba của hệ thống sử dụng cây băm Merkle.

- Cuối cùng, để giảm bớt vấn đề thứ hai của cây băm Merkle, đối tượng VO của một kết quả truy vấn trong một cây VB chỉ cần chứa các nút trên cây thuộc cây con nhỏ nhất bao gồm tất cả các kết quả truy vấn. Giải pháp này rất khả thi do hệ thống duy trì một thông điệp chữ ký cho mỗi nút trong cây VB. Một ví dụ để làm rõ cách mà một đối tượng xác minh VO được tạo ra như thế nào được thể hiện trong hình 2.3.

Page 34: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

26

Hình 2.3: Quá trình tính đối tượng xác minh VO

2.4.2. Tự xác thực dữ liệu với mã Erasure Weatherspoon [23] tích hợp các khái niệm về một cây băm Merkle và mã erasure

để thiết kế một chương trình tự thẩm tra cho dữ liệu lưu trữ trong một môi trường P2P. Dữ liệu có thể là một tài liệu, một đối tượng hoặc một khối. Chúng ta sẽ sử dụng đối tượng dữ liệu ở đây. Với mã erasure [24], một đối tượng dữ liệu có thể được chia thành m mảnh nhỏ và sau đó mã hóa lại vào n mảnh nhỏ (n > m) sao cho nó có thể tái tạo lại đối tượng dữ liệu gốc từ sự kết hợp bất kỳ m mảnh vỡ nào. Trong môi trường P2P, mỗi mảnh được lưu giữ trong một nút, nơi đó cũng có thể là một nút độc hại. Trong trường hợp đó, các nút độc hại có thể sửa đổi các mảnh để làm hỏng nó (một bộ phận bị hỏng được gọi là erasure). Rõ ràng, nếu hệ thống không thể nhận ra các mảnh vỡ bị hư hỏng, quá trình xây dựng tính toán trở nên phức tạp, nghĩa là chúng ta cần thử tổ hợp của n

m .

Một giải pháp cho vấn đề này là xây dựng một cây băm Merkle cho các đối tượng dữ liệu và các phân mảnh của nó, tức là các đối tượng dữ liệu và các phân mảnh của nó tạo thành lá của cây. Hình 2.4(a) cho thấy một ví dụ về một cây băm Merkle cho đối tượng dữ liệu với 4 phân mảnh. Ở đây, mảnh Fi có giá trị băm Hi và đối tượng dữ liệu có giá trị băm Hd. GUID là định danh duy nhất mà có thể được dùng để nhận biết và xác nhận đối tượng. Mỗi phân mảnh được thực hiện tự kiểm chứng bằng cách lưu trữ trong mỗi mảnh tất cả các thông tin cần thiết để xác minh giá trị băm của các phân mảnh, tức là giá trị băm của các nút sibling trong đường đi từ mảnh lá đến gốc. Hình 2.4(b) cho thấy tự

Page 35: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

27

kiểm chứng nội dung của phân mảnh cho ví dụ trong hình 2.4(a). Khi một nút nhận được một phân mảnh để tái tạo đối tượng, nút đó xác minh phân mảnh đó bằng cách đầu tiên tính giá trị băm của phân mảnh đó, sau đó lặp lại quá trình băm kết quả tính toán ở bước trước với giá trị băm tương ứng trong cây Merkle cho đến khi thu được giá trị băm của nút gốc. Nếu giá trị băm cuối cùng phù hợp với GUID, phân mảnh đó là phân mảnh hợp lệ và có thể sử dụng để tái tạo đối tượng; nếu không, néo là một phiên bản đã bị hỏng và cần phải tìm kiếm một phân mảnh khác.

Hình 2.4: Chương trình tự xác minh

2.5. Xác thực tính toàn vẹn của tính toán 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ể

Page 36: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

28

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

Page 37: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

29

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ự

Page 38: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

30

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

Page 39: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

31

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.

Page 40: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

32

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

2.6.3. Kiểm soát sự phân bổ 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

Page 41: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

33

L, F) vào danh sách cục bộ. Rõ ràng, cả L và R 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 hết các truy vấn: như truy vấn làm tràn ngập trong mạng không cấu trúc, láng giềng của một nút sẽ kiểm soát việc gia nhập vào mạng của nó. Nói cách khác, một thành viên có thể (a) từ chối phục vụ yêu cầu của nút láng giềng (nếu nó chứa tài nguyên mà nút láng giềng yêu cầu), (b) Loại bỏ các yêu cầu của nút láng giềng của nó (nếu nó không chứa tài nguyên mong muốn nhưng cũng không cho tài nguyên đó được chuyển qua nó), (c) nó cũng có thể đáp ứng yêu cầu hoặc cho phép truy vấn yêu cầu được truyền qua nó. SLIC khai thác mối quan hệ này như sau: Nút N đánh giá nút láng giềng M của nó dựa vào số lượng các đáp ứng của M đóng góp cho N (M đáp ứng các truy vấn trực tiếp hoặc gián tiếp thông qua các nút láng giềng của nó). Nếu M được đánh giá tốt thì N sẽ đáp ứng các

Page 42: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

34

yêu cầu của M một cách thuận lợi. Ngược lại, nếu M được đánh giá là không mang lợi cho N (M không đáp ứng các yêu cầu của N) thì N cũng không chia sẻ nhiều đối với M. Do đó, các nút được khích lệ để cung cấp nội dung và kết nối đến các nút cung cấp nội dung.

SLIC hoạt động dựa trên một chương trình đã có hiệu lực. Xét một nút N với M nút láng giềng của nó. Mỗi nút láng giềng được cấp một trọng số Wi với 0 <= Wi <= 1 (1 <= i <= M) dựa vào chất lượng dịch vụ được cung cấp bởi N. Wi = 1 nghĩa là nút láng giềng cung cấp dịch vụ rất tốt. Ngược lại, Wi = 0 ngụ ý một láng giềng vô dụng. Tài nguyên hoặc dịch vụ mà N sẽ cung cấp cho nút láng giềng thứ i tỷ lệ thuận với Wi. Chú ý rằng, khả năng của N được sử dụng cho cả các yêu cầu cục bộ và các yêu cầu gửi đến từ xa, chỉ có phần khả năng còn lại sau khi đáp ứng các truy vấn cục bộ được giành cho các nút láng giềng. Một cách định kỳ, các trọng số đó được cập nhật để theo dõi sự thay đổi trạng thái của các nút láng giềng. Để kỹ thuật SLIC hoạt động một cách hiệu quả, một vài vấn đề cần lưu tâm tới. Đầu tiên, cần xác định rõ trọng số của các láng giềng để phân biệt giữa láng giềng tốt và láng giềng xấu và cập nhật các trọng số đó một cách định kỳ. Trong SLIC, dịch vụ cung cấp bởi một láng giềng được đo bởi phần truy vấn được đáp ứng, ví dụ, số lượng dữ liệu có thể đáp ứng cho truy vấn tìm kiếm. Có 3 phương pháp để thiết lập trọng số cho các nút láng giềng mới: average – trọng số của một nút láng giềng mới được thiết lập là giá trị trung bình của các trọng số giữ bởi nút đó; average_inverse – trọng số

được tính bằng cách nhân giá trị trung bình với iAvgHits

1 , trong đó AvgHitsi là giá trị

trung bình đáp ứng mỗi truy vấn được gửi bởi một nút trong suốt giai đoạn thứ i; average_exponential – trọng số được tính bằng cách nhân giá trị trung bình với iAvgHitse . Phương pháp average đảm bảo tính công bằng cho các nút mới gia nhập, nhưng phương pháp này có thể dễ mắc phải hiện tượng tải tự do – một nút có thể dễ dàng ngắt kết nối và gia nhập lại hệ thống mỗi lần để khai thác những dịch vụ tốt từ các nút láng giềng mới. Ngược lại, phương pháp average_inverse và average_exponential dựa vào số lượng dịch vụ mà một nút được đáp ứng từ láng giềng hiện tại của nó. Về cơ bản, nếu các láng giềng hiện tại thực sự cung cấp dịch vụ tốt thì nó có thể không gặp rủi ro để phải chấp nhận thêm một láng giềng mới; ngược lại nếu một nút không hài lòng với các dịch vụ mà nút láng giềng mang lại thì một nút láng giềng mới có thể được thay thế để cải thiện mức độ hài lòng của nút đó. Hai phương pháp đó khác nhau trong việc thu nhận một nút láng

Page 43: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

35

giềng mới. Trọng số được thay đổi đơn giản trong SLIC bằng cách sử dụng một cơ chế phân rã theo hàm mũ để cập nhật các trọng số đó.

Ví dụ: Wi(t) = α * Wi(t - 1) + (1 – α) * I(t). Trong đó, Wi(t) biểu thị trọng số của nút thứ i trong suốt thời gian t, I(t - 1) biểu thị chất lượng của dịch vụ trong suốt thời gian t -1; (0<α<1).

2.6.5. Topo mạng phù hợp Trong một mạng P2P không có cấu trúc, cấu trúc tổng quan của mạng luôn thay

đổi và topo mạng phù hợp cũng được thay đổi dựa vào tác động qua lại giữa các nút nhằm duy trì và cải thiện hệ thống. Ví dụ, nếu một nút luôn tìm những file hữu ích từ nút khác (nút không kết nối trực tiếp) thì nút này sẽ tiếp tục tìm các file hữu ích đó từ những nút khác trong hệ thống. Do đó, sẽ thuận lợi cho hệ thống nếu hai nút cùng liên kết trong một mạng để những tìm kiếm tiếp theo không cần phải đi qua các nút trung gian khác. Hơn nữa, khả năng thích ứng của mạng phủ cho phép các nút thay đổi định kỳ láng giềng của chúng để thay đổi quyền lợi của chúng. Trong khi các công trình trước tập trung vào các vấn đề hiệu quả, Condie [37] cho thấy, bằng cách triển khai một topo phù hợp, hệ thống P2P có thể ưu tiên cho các nút hoạt động tích cực và ngược đãi các nút xấu, do đó hệ thống có thể đạt hiệu quả bằng cách tăng khả năng ngăn chặn các loại tấn công. Cụ thể, mỗi nút trong hệ thống nên duy trì một lịch sử trước đó, cho phép các nút ước tính tiềm năng của việc tải các tập tin về từ các nút khác trong tương lai. Một kết quả cho thấy, khi một nút gia nhập lại hệ thống sau khi bị ngắt kết nối, nó có thể chọn kết nối với các nút có xác suất cao nhất chứa tập tin cần được tải về. Thông tin lịch sử của một nút được mã hóa thành một véc tơ tin cậy cục bộ, trong đó thực thể thứ i trong véc tơ biểu thị sự tin cậy của một nút (đo bằng tỉ lệ giữa các giao dịch thành công và các giao dịch không thành công) của nút thứ i. Giao thức tối đa hóa tính tin cậy của hệ thống mạng được biểu thị bởi công thức:

k

i

k

jjisjiconnectionQ

1 1,*),(

Trong đó, k là số lượng các nút trong hệ thống, connection(i,j) = 1 nếu nút i kết nối trực tiếp với nút j và bằng 0 nếu nó không kết nối trực tiếp; si,j là giá trị tin cậy mà nút i đánh già về nút j. Khi một nút i gia nhập vào hệ thống, nó thử kết nối với N kết nối ngẫu nhiên. Khi có ít nhất một kết nối, nút i sẽ tải một file từ nút j (nút j phải là một láng giềng

Page 44: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

36

trực tiếp của i), sau khi nhận được một tập tin xác thực, nút i sẽ kết nối với nút j. Chú ý rằng, nếu nút i chỉ được phép kết nối với một số lượng tối đa nhất định, gọi là Ti, nếu đã có Ti kết nối thì kết nối với j chỉ được tạo ra khi nút j có độ tin cậy cao hơn một trong các nút láng giềng hiện tại của i. Rõ ràng, nút j chỉ chấp nhận kết nối nếu nút i có lợi cho nó: hoặc j có số kết nối hiện tại ít hơn số lượng tối đa các kết nối Tj hoặc giá trị tin cậy mà nút i đánh giá về nút j, sji lớn hơn giá trị tin cậy của các láng giềng hiện tại của nút j. Trong trường hợp này, nút j sẽ thay thế một láng giềng của nó bằng nút i. Tuy nhiên, phương pháp này hoạt động chưa hiệu quả do nó gặp phải hai điểm hạn chế sau:

- Có khẳ năng một nút xấu sẽ gieo rắc các tập tin phi chứng thực. Một kịch bản được đề xuất bởi Condie, Kamvar và Garcia-Molina [37] là chog một nút xấu i kết nối đến một nút j (j có lòng khoan dung cao). Lòng vị tha của nút j ở đây theo nghĩa nó đáp ứng các truy vấn đến nó nhưng nó không gửi đi các truy vấn từ nó. Ví dụ, nó cho phép nút khác tải file từ nó nhưng nó không tải file từ các nút khác. Kết quả là tất cả các véc tơ tin cậy cục bộ đều có giá trị bằng 0, và nó sẽ chấp nhận kết nối từ tất cả các nút. Thông qua kết nối từ nút j, nút i nhận được các truy vấn được chuyển tiếp bởi nút j, vì thế nó có thể trả lời các truy vấn đó với các file phi chứng thực. Các giải pháp được đề xuất nhằm liên kết mỗi kết nối giữa hai nút với một giá trị tin cậy của kết nối. Giá trị tin cậy của kết nối ci,j phản ánh bao nhiêu lợi ích mà nút i thu lợi thông qua nút j, và được xác định từ số lượng các câu trả lời xác thực (hoặc phi xác thực) thu được từ các nút mà sự đáp ứng lại của nó của chúng là kết quả truy vấn được chuyển đến thông qua nút j. Do đó, nút i có thể ngắt kết nối giữa nó với nút j nếu các nút kết nối với j (trực tiếp hoặc gián tiếp) là các nút xấu. Nút j cũng có thể giải phóng các kết nối từ các nút xấu bằng cách loại bỏ tất cả các kết nối với các nút bắt đầu lại quá trình xây dựng kết nối của nó. Bây giờ, để phương pháp này được hoạt động, các truy vấn gửi ra bởi nút i thông qua nút j phải được gắn với một định danh đã được mã hóa bởi nút j. Các nút liên quan đến j (quen biết j) phải tríc xuất cả thẻ này và trả lại nó cung với các câu trả lời. Bằng cách này nút i sẽ biết được các nút có liên quan với nút j. Hơn nữa, một câu trả lời không có thẻ gắn kết thì không thể tin cậy vào câu trả lời đó.

- Cũng có thể một nút sẽ bị kẹt trong nội bộ, nơi mà nút đó liên tục bị trì hoãn lâu dài trong việc nhận các câu trả lời cho các truy vấn của nó. Giải pháp cho trong trường hợp này là thay thế các kết nối có vấn đề bởi các kết nối mới đến các nút

Page 45: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

37

ngẫu nhiên. Trong trường hợp xấu nhất, một nút có thể loại bỏ tất cả các kết nối hiện tại và tạo ra một tập hoàn toàn mới của các kết nối.

2.7. Bảo mật dựa vào hạ tầng cơ sở khóa công khai PKI Để cung cấp tính bảo mật, tính toàn vẹn, và tính ủy quyền của dữ liệu, kỹ thuật dựa

trên hạ tầng cơ sở khóa công khai X.509 có thể được sử dụng. Một cách tiếp cận như vậy được thông qua trong hệ thống scishare [38] để tạo điều kiện hợp tác an toàn trong môi trường P2P. Hệ thống scishare nhằm vào hai mục tiêu chính: (a) đảm bảo an toàn các truy vấn được quảng bá đến một nhóm nút (từ là, cả thông điệp truy vấn và thông điệp đáp ứng truy vấn sẽ được giữ bí mật), (b) thông điệp yêu cầu vận chuyển và vận chuyển thông tin được bảo vệ. Để đảm bảo an toàn cho thông tin liên lạc trong nhóm, Sercure Group Layer [39] (SGL) được sử dụng. SGL sử dụng khóa chia sẻ nhóm để bảo vệ thông điệp, trong khi cung cấp một kỹ thuật hiệu quả để tạo ra và phân phối khóa mới bất cứ khi nào các thành viên của nhóm thay đổi. Truyền thông giữa các cặp nút được đảm bảo thông qua TLS [40]. Cùng một nhóm chính sách ủy quyền có thể được thi hành trên toàn bộ nhóm. Để tạo thuận lợi cho việc kiểm soát truy cập tốt hơn mà cho phép các nút khác có các đặc quyền khác nhau, kỹ thuật ủy quyền Akenti [41] đã được sử dụng. Trong Akenti, chủ sở hữu nguồn tài nguyên có thể truy cập từ xa và xác định độc lập các ràng buộc cần thiết để đáp ứng người sử dụng tài nguyên của họ. Trong khi các nút có chứng thực X.509 được đưa ra bởi một cơ quan cấp chứng thực đáng tin cậy, người dùng giảo mạo làm giảm độ trễ trong việc tiếp cận các nguồn tài nguyên. Một người dùng giả mạo là người có đặc quyền cơ bản và được tạo ra tự động khi có yêu cầu truy cập tài nguyên công cộng.

Page 46: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

38

Chương 3: CÁC MÔ HÌNH TIN CẬY

3.1. Các khái niệm

3.1.1. Định nghĩa sự tin cậy

3.1.1.1. Tin cậy là gì Sự tin cậy có thể được định nghĩa đơn giản như là “niềm tin hay sự tin cậy vào tính

trung thực, lòng tốt, hay sự chắc chắn của một người, một tổ chức”. Tuy nhiên, với nhiều cách tiếp cận khác nhau, quan điểm khác nhau mà có nhiều định nghĩa về sự tin cậy. Để có một sự hiểu biết sâu hơn về sự tin cậy, trong phần còn lại chúng ta sẽ tìm hiểu các định nghĩa chính xác về sự tin cậy trong một số lĩnh vực khác nhau như: tâm lý học, xã hội học, sinh vật học, và kinh tế học. Những định nghĩa từ Morton Deutsch[42, 43], Niklas Luhmann[44], Bernard Barber[45] và Diego Gambetta[46], những người đã nghiên cứu các khía cạnh chính của sự tin cậy.

3.1.1.2. Sự tin cậy trong tâm lý học Có lẽ trong nhiều định nghĩa về sự tin cậy thì định nghĩa của Morton Deutsch đưa ra

vào năm 1962 là định nghĩa phổ biến nhất. Định nghĩa này dựa trên quan điểm của tâm lý học. Theo đó sự tin cậy được định nghĩa là: “một hành vi tin cậy xảy ra khi một cá nhân phải đối mặt với một sự lựa không rõ ràng, một sự lựa chọn có thể dẫn đến kết quả tốt đẹp và cũng có thể dẫn đến hậu quả khó lường. Trong nhận thức của người này, sự xuất hiện của những sự kiện này còn tùy theo hành vi của người khác và độ tin cậy vào sự kiện có hại có lớn hơn độ tin cậy của sự kiện có lợi hay không. Nếu người này gặp phải sự lựa chọn không rõ ràng, họ sẽ tìm một người giúp đỡ họ trong việc lựa chọn và tin cậy vào sự giúp đỡ đó. Người đó tin một người khác có thể lựa chọn được hành động dẫn đến kết quả tốt. Nếu không, người đó phải mạo hiểm lựa chọn một hành động mà không có một sự tin cậy nào”. Sau đó, trong cuốn “The Resolution of Conflict” [47] đồng tác giả, định nghĩa về sự tin cậy tiếp tục được mở rộng như là sự tin rằng sẽ tìm thấy những gì được mong muốn từ người khác, hơn là những điều đáng lo ngại. Định nghĩa của Morton Deutsch[42, 43] cho thấy một đặc tính đáng quan tâm của sự tin cậy đó là tính cá thể hóa. Mỗi người đều có nhận thức riêng của mình về sự tin cậy. Nói cách khác, sự tin cậy mang tính chủ quan phụ thuộc vào quan điểm của cá nhân.

Page 47: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

39

3.1.1.3. Sự tin cậy trong xã hội học Tiếp cận sự tin cậy từ lĩnh vực xã hội học, Niklas Luhmann[44] chỉ ra một vấn đề

của xã hội: sự phức tạp của mối quan hệ xã hội như là toàn bộ và đặc tính cá nhân trong đó. Theo đó, định nghĩa sự tin cậy được đưa ra: “như là một phương tiện để giảm độ phức tạp xã hội; phức tạp được tạo ra bằng cách tương tác cá nhân với các mục tiêu và nhận thức khác nhau”. Giống như Niklas Luhmann[44], Bernard Barber[45] cũng dựa vào xã hội học trong định nghĩa của ông. Đặc biệt, ông nói niềm tin đó là “phần lớn như một hiện tượng của sự biến thiên văn hóa và cấu trúc xã hội, không phải là một chức năng của sự biến thiên cá nhân. Nói chung, những định nghĩa này vượt được những định nghĩa của Morton Deutsch[42, 43] kể từ khi họ cho thấy rằng sự tin cậy được nhìn từ cả 2 khía cạnh: khía cạnh cá nhân và khía cạnh xã hội.

3.1.1.4. Sự tin cậy ở góc nhìn rộng hơn Diego Gambetta[46] đã nhìn nhận quan điểm tin cậy ở những lĩnh vực khác nhau từ

sinh học cho đến lĩnh vực kinh tế. Ông đã đưa ra định nghĩa về sự tin cậy “như một mức độ cụ thể của xác suất chủ quan mà một người sẽ thực hiện một hành động cụ thể cả trước khi người đó có thể theo dõi hành động và cả trong khung cảnh mà trong đó nó ảnh hưởng đến hành động của chính mình”. Định nghĩa này củng cố lại định nghĩa sự tin cậy là sự chủ quan của cá nhân. Nói cách khác, cùng một niềm tin nhưng có thể có mức độ tin cậy khác nhau đối với từng cá nhân, hay ngắn gọn hơn, độ tin cậy là một xác suất. Định nghĩa này cũng ngụ ý rằng các thông tin, mà một cá nhân có thể giám sát, có hiệu lực vào mức độ tin cậy của mình.

3.1.2. Các dạng tin cậy Thông thường có 2 dạng tin cậy: tin cậy vào hành động của một người hoặc tin cậy

vào sự giới thiệu của một người.

3.1.2.1. Tin cậy dựa vào hành động Dạng đầu tiên của sự tin cậy phản ánh định nghĩa cơ bản của tin cậy: tin cậy vào một

hành vi của người khác. Ví dụ, chúng ta tin cậy các bác sỹ phẫu thuật về các hành động khám sức khỏe cho chúng ta hay tin cậy vào các hành động mà các kỹ sư cơ khí sẽ bảo trì xe cho chúng ta. Một lưu ý quan trọng ở đây là sự tin cậy dựa vào hành động là luôn xác

Page 48: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

40

định đối với một hành động cụ thể. Ví dụ, chúng ta không tin cậy vào hành động bác sỹ sửa xe, hay chúng ta không tin cậy vào hành động giải phẩu của các kỹ sư cơ khí.

3.1.2.2. Tin cậy dựa vào sự giới thiệu Dạng thứ 2 của sự tin cậy sẽ đưa vào sự đánh giá mối quan hệ giữa các cá thể trong

xã hội: tin cậy vào sự giới thiệu. Một người có thể tin cậy hành động của người khác, nhưng không phải tin cậy hoàn toàn vào lời giới thiệu đó. Ví dụ, chúng ta có thể tin cậy vào một bác sỹ nếu đó đúng là một bác sỹ giỏi. Tuy nhiên nếu bác sỹ giới thiệu cho chúng ta gặp một bác sỹ khác mà chúng ta chưa bao giờ biết đến thì chúng ta không thể tin cậy vào sự giới thiệu của bác sỹ. Dạng tin cậy này có thể chia thành 2 dạng nhỏ hơn: tin cậy vào sự giới thiệu của một người và tin cậy vào sự giới thiệu của một người mà họ được giới thiệu bởi một người đại diện.

Lưu ý: mặc dù tồn tại các dạng tin cậy khác nhau, trong các hệ thống máy tính phổ biến, để duy trì sự đơn giản chúng ta không nên phân biệt chúng. Nói chung, nếu một cá thể tin vào một cá thể khác, nó cũng tin rằng lời khuyên của cá thể đó là tốt cũng như lời khuyến nghị của các cá thể khác, đó là sự giới thiệu bởi cá thể này. Nói một cách khác, một giá trị duy nhất có thể được dùng để đại diện cho tất cả các dạng tin cậy trong các hệ thống máy tính.

3.1.3. Biểu diễn sự tin cậy bởi giá trị Thông thường, chúng ta có thể phân loại thành 4 loại giá trị trong sự tin cậy: đơn giá

trị, giá trị nhị phân, đa giá trị và giá trị liên tục.

3.1.3.1. Đơn giá trị Trong trường hợp đơn giản, giá trị tin cậy được biểu diễn bởi một giá trị duy nhất:

hoặc tin cậy hoặc không tin cậy. Ví dụ, trong một bài viết của Aberer và Despotovic [48], một giá trị tin cậy chỉ có thể chỉ rõ như một lời xác nhận. Khi một cá thể không đáp ứng trong một phiên dịch, nó sẽ gửi một lời xác nhận đến hệ thống hoặc là nó không làm gì. Vì phương pháp này chỉ sử dụng một giá trị duy nhất nên nhược điểm của nó là không thể phân biệt giữa cá thể tin cậy với cá thể chưa xác định.

Page 49: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

41

3.1.3.2. Giá trị nhị phân Để khắc phục nhược điểm của phương pháp biểu diễn đơn giá trị, trong cách biểu

diễn bởi giá trị nhị phân, hai giá trị được đưa vào sử dụng: một giá trị tương ứng với sự tin cậy còn giá trị kia tương ứng với giá trị không tin cậy. Phương pháp này có thể phân biệt được cá thể tin cậy và cá thể không tin cậy. Tuy nhiên nếu chúng ta xét đến trường hợp phức tạp hơn thì một cá thể vẫn không thể phân biệt được giữa cá thể mà họ chưa bao giờ giao tiếp với cá thể mà họ đã từng giao tiếp. Tuy nhiên, nó cũng không tin cậy hay phủ nhận cá thể đó.

3.1.3.3. Đa giá trị Sử dụng đa giá trị để biểu diễn sự tin cậy có lẽ là phương pháp tốt nhất để khắc phục

các nhược điểm trong các phương pháp trên đây. Nó cung cấp cho các người dùng một cách linh hoạt để xác minh mức độ tin cậy của các người dùng khác. Ví dụ, một người dùng có thể xác định được một người dùng khác là “tin cậy mức rất thấp”, “tin cậy mức thấp”, “tin cậy mức trung bình”, “tin cậy mức cao” và “tin cậy mức rất cao” trong đó “tin cậy mức rất thấp” và “tin cậy mức thấp” có thể coi là không tin cậy, “tin cậy mức cao” và “tin cậy mức rất cao” có thể coi là tin cậy tuyệt đối, còn “tin cậy mức trung bình” có thể xem là không rõ ràng hoặc chưa xác định. Đây là loại giá trị được áp dụng trong hầu hết các hệ thống.

3.1.3.4. Giá trị liên tục Các loại giá trị trên đều là giá trị rời rạc. Vì thế chúng luôn giới hạn số lượng các giá

trị tin cậy của một người dùng có thể truyền cho các đối tác. Để cung cấp một phạm vi rộng hơn cho sự chọn lọc, một dải giá trị liên tục có thể được sử dụng. Ví dụ, một người dùng có thể đánh giá đối tác của họ với một giá trị tin cậy nằm trong khoảng giữa 0 và 1. Bằng cách này, một người có thể tin cậy người khác nếu giá trị tin cậy của người đó lớn hơn giá trị ngưỡng trên hoặc không tin cậy nếu nó nhỏ hơn giá trị ngưỡng dưới. Các giá trị giữa ngưỡng dưới và ngưỡng trên được coi là chưa xác định. Lưu ý rằng trong cách này, các giá trị ngưỡng cũng được xác định một cách rất linh hoạt, nó phụ thuộc vào từng cá thể tùy theo từng trường hợp.

Page 50: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

42

3.1.4. Đặc tính của sự tin cậy Có 4 đặc tính cơ bản của tin cậy: tính cá thể hóa, tính bất đối xứng, tính bắc cầu và

tính tổng hợp.

3.1.4.1. Tính cá thể hóa Như đã nêu trong định nghĩa sự tin cậy của Morton Deutsch và Diego Gambetta

trong phần trước, mức độ tin cậy phụ thuộc vào quan điểm của cá nhân. Đó là tính chất cá thể hóa. Ví dụ, nếu chúng ta hỏi hai người về việc họ tin như thế nào về sự phát triển của kinh tế thế giới, chúng ta có thể nhận được hai câu trả lời khác nhau. Nếu người thứ nhất chúng ta hỏi là một người thất nghiệp, câu trả lời có thể là “không”. Tuy nhiên, nếu người thứ hai chúng ta hỏi là người giàu có thì câu trả lời có thể là “có”. Thậm chí, ngay cả khi chúng ta nhận được cùng một câu trả lời ở cả hai người đó thì giữa họ vẫn có những quan điểm khác nhau và độ tin cậy khác nhau về câu trả lời đó: một người có thể khẳng định mạnh mẽ câu trả lời của họ, còn người kia tuy trả lời nhưng họ không dám chắc mình trả lời đúng. Điều đó cho thấy, hiếm khi mà chúng ta nhận được cùng một câu trả lời giống nhau hoàn toàn.

3.1.4.2. Tính bất đối xứng Tính bất đối xứng là một tính chất quan trọng của sự tin cậy. Nó khẳng định thêm

cho tính cá thể hóa của cá thể trong xã hội. Các cá thể khác nhau có các ý kiến khác nhau không chỉ đối với bên thứ 3 mà còn khác nhau trong mối quan hệ của họ. Một người có thể rất tin cậy bạn của mình. Tuy nhiên, người bạn của anh ta có thể không tin cậy anh ta với cùng mức độ tin cậy. Sự khác nhau giữa mức độ tin cậy của các đối tác trong một mối quan hệ có thể khác nhau tùy theo tình huống. Trong một số trường hợp, một người hoàn toàn có thể tin cậy người khác trong khi người đó không tin cậy gì họ. Nói cách khác, tin cậy có tính bất đối xứng hay nếu chúng ta muốn thể hiện “tính cá nhân trong xã hội và mối quan hệ tin cậy giưa hai cá thể” trong một đồ thị, thì đồ thị đó phải là một đồ thị có hướng.

3.1.4.3. Tính bắc cầu Sự tin cậy có tính chất bắc cầu. Tuy nhiên, nó không phải là hoàn toàn bắc cầu. Ví

dụ, một người luôn tin vào kỹ sư cơ khí về hành động sửa xe, vì thế bất cứ khi nào chiếc xe của anh ta có vấn đề thì anh ta sẽ đưa xe đến cho kỹ sư cơ khí sửa chữa. Giả sử một

Page 51: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

43

lúc nào đó chiếc xe có vấn đề trong khi các kỹ sư cơ khí đang rất bận rộn và không thể sửa chữa chiếc xe ngay lập tức. Kết quả là anh ta có hai sự lựa chọn: lựa chọn đầu tiên là phải chờ đợi một ngày để anh ta có thể khắc phục vấn đề vào ngày hôm sau, lựa chọn thứ hai là kỹ sư cơ khí có thể đề nghị anh ta mang xe cho một kỹ sư cơ khí khác để họ khắc phục chiếc xe. Trong trường hợp này, nếu anh ta tin cậy vào người kỹ sư cơ khí được giới thiệu thì anh ta có thể làm theo sự gợi ý đó. Tuy nhiên, trường hợp này hiếm khi xảy ra vì anh ta không tin cậy vào tay nghề của người được giới thiệu. Trong hầu hết các trường hợp, các hành động sau đây là có nhiều khả năng xảy ra. Anh này chỉ mang xe của mình cho kỹ sư cơ khí được giới thiệu nếu vấn đề của chiếc xe cần được xử lý kịp thời. Nếu không, anh ta có thể chờ đợi một ngày. Lý do là anh ta không tin cậy vào kỹ sư cơ khí được giới thiệu ở cùng một mức độ tin cậy với kỹ sư cớ khí mà anh ta đã tín nhiệm lâu nay. Nói cách khác, anh ta tin cậy kỹ sư cơ khí được giới thiệu ở mức độ thấp hơn. Vì thế sự tin cậy hoàn toàn là hiếm khi xảy ra, nếu một lời giới thiệu được thực hiện thông qua nhiều người khác nhau, giá trị tin cậy của nó sẽ giảm xuống đáng kể. Vì giá trị tin cậy sẽ giảm sau mỗi bước giới thiệu. Ví dụ, nếu chúng ta tìm một người giúp trông coi việc nhà và được sự giới thiệu của một dây chuyền những người bạn thì chúng ta không thể tin cậy hoàn toàn vào tất cả họ.

3.1.4.4. Tính tổng hợp Như đã đề cập ở trên, vì sự tin cậy có tính cá thể hóa, các cá thể khác nhau có thể có

các quan điểm khác nhau về sự tin cậy. Thông qua tính bắc cầu, một người có thể nhận được các giá trị tin cậy khác nhau. Để đưa ra kết quả cuối cùng từ các giá trị đã nhận được, nó cần tổng hợp tất cả các giá trị đó. Nói cách khác, sự tin cậy có tính chất tổng hợp. Tuy nhiên, cách thức tổng hợp các giá trị để có kết quả cuối cùng là tùy vào từng trường hợp. Ví dụ, nếu chúng ta thực hiện một cuộc khảo sát đơn giản về việc người dân tin vào sự phát triển của nền kinh tế thế giới và nhận được kết quả trong đó một nửa số người được khảo sát nói “có”, trong khi nửa kia nói “không”. Kết luận cuối cùng là gì? Nếu chúng ta không thể rút ra kết quả cuối cùng, thì câu trả lời sẽ không rõ ràng. Tuy nhiên, giả định rằng hầu hết mọi người nói “có” là nhà kinh tế học trong khi hầu hết mọi người nói “không” không phải là nhà kinh tế học, thì cầu trả lời có thể là “có”. Ngược lại, nếu tất cả những người nói “không” là nhà kinh tế học trong khi tất cả những người nói “có” không phải là nhà kinh tế học thì câu trả lời có thể là “không”. Đó là vì trong

Page 52: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

44

tiềm thức của chúng ta, chúng ta có thể tin cậy vào nhà kinh tế học hơn là những người không phải là nhà kinh tế học.

3.2. Các mô hình tin cậy Thông thường, chúng ta có thể phân loại các mô hình tin cậy thành hai loại: một là

dựa vào các thông tin chứng thực, hoặc là dựa vào uy tín. Các hệ thống trong mô hình đầu tiên chỉ đơn giản là dựa trên các thông tin để xác minh sự tin cậy. Ví dụ, nếu chúng ta gặp một người có bằng lái xe, chúng ta có thể tin cậy anh ta trong việc lái xe. Tuy nhiên, trong một số trường hợp, mặc dù một người có bằng lái xe, nó không có nghĩa là chúng ta nên tin vào việc lái xe của anh ta vì có thể anh ta là một người lái xe bất cẩn, và điều đó thật nguy hiểm nếu ngồi trong chiếc xe được lái bởi anh ta. Trong trường hợp này, chúng ta cũng nên đánh giá dựa trên uy tín của anh ta hoặc các hoạt động trước đây của anh ta. Đó là những gì hệ thống tin cậy dựa trên việc sử dụng mô hình thứ hai để xác minh sự tin cậy.

3.2.1. Tin cậy dựa vào sự chứng thực Một mô hình tin cậy đơn giản là dựa vào sự chứng thực. Khi một người dùng muốn

xác định xem nó nên tin cậy vào một người dùng khác hay không, nó sẽ xem xét các thông tin chứng thực của người dùng đó. Nếu các chứng chỉ của người dùng đó đáp ứng được nguyên tắc của nó, người dùng đó có thể được tin cậy trong hành vi của mình. Nếu không, người dùng đó không nên sử dụng hành vi đó. Các hệ thống chứng thực phổ biến nhất được sử dụng trong các hệ thống máy tính là hệ thống khóa bí mật/công khai. Bằng cách này, khi một người dùng muốn gia nhập một hệ thống, nó đã tạo ra một cặp khóa khóa bí mật và khóa công khai, trong đó khóa công khai có thể được sử dụng để mã hóa thông tin trong khi khóa bí mật được dùng để giải mã thông tin. Lưu ý ở đây là khóa công khai và khóa bí mật là các khóa bất đối xứng. Điều đó có nghĩa là không thể tính khóa công khai từ khóa bí mật và ngược lại. Sau khi cặp khóa được tạo, khóa công khai được đăng ký với một bên tin cậy với thông tin của người dùng trong khi đó khóa bí mật được người dùng giữ bí mật như một định danh của nó. Khi một người dùng muốn cộng tác, nó có thể đăng ký thông tin với khóa công khai của nó. Vì chỉ có khóa công khai mới có thể sử dụng để mã hóa thông tin, và nó đã được đăng ký với một bên tin cậy, các chứng thực của người dùng có thể xác minh thông qua đối tác của mình. Bởi vì các khóa được tạo ra chỉ một lần, mô hình tin cậy này không thể đưa vào tài khoản các hành động quá khứ của

Page 53: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

45

một người dùng trong đánh giá sự tin cậy. Kết quả là mô hình này chỉ phù hợp với một loại hệ thống cụ thể: hệ thống kiểm soát truy cập. Ví dụ, hệ thống X.509 [49], PGP [53], PolicyMaker [50] và những người kế tiếp, REFEREE [51] và KeyNote [52] là những hệ thống sử dụng mô hình tin cậy này.

3.2.2. Tin cậy dựa vào uy tín Trong nhiều trường hợp, chúng ta không thể luôn tin vào một người chỉ bằng cách

nhìn vào các thông tin chứng thực của họ, như trong ví dụ trên: chúng ta không thể tin vào hành động lái xe của một người mà chỉ dựa vào bằng lái xe của họ. Đó là bởi vì có thể một người sẽ lái xe tốt vào đúng lúc anh ta đăng ký nhưng anh ta có thể lái xe rất tồi sau thời điểm đó. Kết quả là cần xem xét các hành động trước đây của anh ta trong việc xác minh độ tin cậy. Khái niệm uy tín đã được sử dụng rộng rãi trong xã hội, nơi mà mỗi người trong đó mức uy tín của họ được xác định dựa trên những hành động họ đã làm trước đây. Ví dụ phổ biến của việc kiểm soát độ tin cậy dựa theo uy tín là các hệ thống như: eBay và Amazon Auctions. Các hệ thống này cung cấp một kênh thông tin phản hồi cho người dùng. Sau mỗi giao dịch, cả người bán và người mua có thể đánh giá lẫn nhau và điểm số được giữ để tham khảo cho lần sau. Kết quả là từ điểm số uy tín của một người, những người khác có thể quyết định xem họ có thể tin cậy vào người đó hay không (tức là người có nhiều giao dịch thành công là một trong những người chúng ta có thể tin cậy, trong khi một người với tất cả các giao dịch không thành công sẽ không được tin cậy). Nói chung, định nghĩa về uy tín có thể đưa ra như sau:

- Uy tín: nhận thức của một người dùng X qua đánh giá của người dùng Y thông qua các giao tiếp trước đây của X. Có hai loại uy tín: uy tín cục bộ (local reputation) là ấn tượng của Y đối với X chỉ từ các giao tiếp giữa X và Y. Uy tín toàn cục (global reputation) là toàn bộ uy tín mà Y nhận được từ tất cả các giao tiếp trước đây của X với tất cả các người dùng trong hệ thống.

Sử dụng uy tín để đánh giá sự tin cậy, bây giờ chúng ta đưa ra một định nghĩa mới cho sự tin cậy dựa trên uy tín.

- Sự tin cậy là niềm tin vào một người dùng Y về người dùng X trong sự thành công của một chức năng giao tiếp của uy tín của X: nếu uy tín của X là tốt, Y tin cậy vào X. Ngược lại nếu uy tín của X là xấu thì Y không nên tin cậy X trong giao tiếp.

Page 54: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

46

Mô hình tin cậy dựa trên uy tín có thể được chia thành hai loại nhỏ: một loại chỉ dựa vào uy tín cá nhân trong khi loại kia còn suy xét đến mối quan hệ xã hội. Bằng cách xem xét các mối quan hệ xã hội, uy tín của một người dùng không chỉ dựa trên khía cạnh cá nhân mà còn khía cạnh khác của xã hội. Regret [54] và Node Ranking [55] là các hệ thống áp dụng loại này trong khi đó phần lớn các hệ thống P2P khác lại áp dụng loại đầu tiên bởi sự đơn giản của nó. Nói chung, phân loại mô hình tin cậy có thể được mô tả như trong hình 3.1. Trong 3 phần tiếp theo, chúng ta giới thiệu các hệ thống cụ thể áp dụng các mô hình này.

Hình 3.1: Phân loại mô hình tin cậy

3.3. Các hệ thống tin cậy dựa vào chứng thực

3.3.1. Hệ thống PolicyMaker PolicyMaker là một hệ thống quản lý tin cậy dựa vào chứng thực, phát triển ở phòng

nghiên cứu AT&T. Hệ thống này cung cấp một nền tảng linh hoạt sử dụng một ngôn ngữ lập trình “an toàn” để thống nhất mô tả các chính sách, các chứng thực và các mối quan hệ tin cậy thay vì xử lý chúng một cách riêng biệt như trong các hệ thống khác. Trong hệ thống này, mỗi người dùng có thể đưa ra quyết định một cách linh hoạt: hoặc nội bộ hoặc thông qua một bên thứ ba. Hơn nữa, PolicyMaker tách từ cơ chế chính sách và do đó làm cho các ứng dụng không phụ thuộc vào nền tảng.

Page 55: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

47

3.3.1.1. Kiến trúc hệ thống Hệ thống PolicyMaker hoạt động như một công cụ truy vấn cơ sở dữ liệu, mà có thể

tích hợp vào các ứng dụng thông qua một thư viện liên kết hoặc chạy như một dịch vụ độc lập. Nó cho phép các người dùng trong hệ thống xác định chính sách cục bộ và các chứng thực như nâng cao niềm tin của các truy vấn về các hành động. Tùy thuộc vào các chứng thực và chính sách, hệ thống có thể trả lại “yes” cho hành động được cho phép hoặc “no” cho hành động bị cấm. Tuy nhiên, trong một số trường hợp khi hành động không thể biện minh, hệ thống sẽ trả về thêm các hạn chế - một sự chấp nhận có điều kiện. Các người dùng dẫn xuất sau đó được coi là đáng tin cậy và được phép tiến hành chỉ dựa trên sự hài lòng của những yêu cầu bổ sung. Kiến trúc của hệ thống PolicyMaker được miêu tả trong hình 3.2.

Hình 3.2: Kiến trúc hệ thống PolicyMaker

3.3.1.2. Ngôn ngữ trong hệ thống PolicyMaker Hệ thống PolicyMaker sử dụng ngôn ngữ riêng của nó để chỉ định các chính sách

cục bộ, các chứng thực và các truy vấn. Chính sách và chứng thực được mô tả như là sự xác nhận với cú pháp sau:

Source ASSERTS AuthorityStruct WHERE Filter

Trong đó:

- Source xác định nguồn gốc của chính sách hoặc là có chính sách cục bộ hay khóa công khai của bên thứ ba.

Page 56: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

48

- AuthorityStruct đại diện cho khóa công khai để người xác nhận áp dụng.

- Filter mô tả hành động được tin cậy bởi các khóa công khai tương ứng ở nguồn gốc của xác nhận.

Khi một người dùng muốn xác minh một hành động của người dùng khác, nó sẽ gửi một truy vấn đến PolicyMaker. Truy vấn xuất hiện trong các dạng sau:

key1, key2, …, key,n REQUESTS ActionString

Trong đó ActionString đại diện cho các thông điệp mô tả một hành động đáng tin cậy được yêu cầu bởi một chuỗi các khóa công khai.

3.3.1.3. Quá trình truy vấn Chúng ta hãy xem điều khẳng định như là một đồ thị có hướng G, trong đó các nút

là các nguồn sách hoặc các khóa, và các cạnh là các bộ lọc. Ví dụ, nếu chúng ta có một sự khẳng định mà có nguồn là s, quyền hạn là a và bộ lọc là f, chúng có thể được hiển thị bằng hai nút s và a, và a hướng cạnh có nhãn f từ s đến a: s a. Bằng cách này, Một truy vấn có chứa các khóa k1, k2, .., kn và hành động t, quá trình tìm câu trả lời cho một truy vấn tin cậy chỉ là một quá trình tìm kiếm một đường đi trong đồ thị từ nút nguồn s là một chính sách cục bộ đến nút đích d có đầu vào là k1, k2, …, kn và chứa hành động t.

Chú ý rằng hệ thống PolicyMaker không xác minh tính chính xác của các thông tin chứng thực bằng cách kiểm tra chữ ký của người dùng. Bước này được xử lý bên ngoài hệ thống bằng cách áp dụng vào chúng trước khi đưa vào hệ thống. Tuy nhiên, điểm yếu này đã được giải quyết trong các hệ thống REFEREE, KeyNode và các phiên bản tiếp theo của hệ thống PolicyMaker.

3.3.2. Hệ thống Trust-X Trong một cách tiếp cận khác, hệ thống Trust-X đưa ra một nền tảng sử dụng một

ngôn ngữ dựa trên XML được gọi là X-TNL để chỉ định các chứng thực và chính sách. Khác với PolicyMaker là không xác minh tính đúng đắn của chứng thực. Thêm vào đó, hệ thống Trust-X cải thiện tốc độ của việc kiểm định sự tin cậy bằng cách sử dụng nhãn và bộ nhớ đệm:

- Nhãn tin cậy (trust ticket): là một chứng chỉ đặc biệt có thể được cấp bởi một người dùng cho đối tác của mình sau mỗi lần giao dịch thành công. Sử dụng nhãn tin cậy

Page 57: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

49

các đối tác có thể tăng tốc độ quá trình đàm phán của các nguồn tài nguyên liên quan đến giao dịch trước. Mỗi nhã tin cậy có một giới hạn về thời gian và nó chỉ có thể sử dụng trước thời điểm đó.

- Bộ đệm (caching): vì hai hay nhiều người dùng có thể yêu cầu cùng một tài nguyên, và quá trình đàm phán có thể là giống nhau cho tất cả chúng, bộ nhớ đệm giúp làm giảm thời gian của việc tìm kiếm và thiết lập quá trình đàm phán. Nghĩa là chuỗi các hoạt động liên quan đến quá trình đàm phán được lưu lại để các tài nguyên phổ biến.

3.3.2.1. Kiến trúc hệ thống Trong hệ thống Trust-X, mỗi thực thể có một thông tin về chứng thực, trong đó có

thể là một chứng chỉ hoặc một tuyên bố. Quá trình đàm phán được xử lý thông qua bốn giai đoạn:

- Mở đầu: trong giai đoạn này, điều kiện cần thiết để thiết lập một giao dịch giữa 2 người dùng là kiểm tra sơ bộ. Xác thực tính tin cậy không được chú trọng ở giai đoạn này. Ví dụ, người dùng ở máy trạm kiểm tra đặc điểm của tài nguyên được cung cấp bởi người dùng trên máy chủ còn người dùng trên máy chủ kiểm tra điều kiện cần của người dùng trên máy trạm để áp dụng cho tài nguyên.

- Sinh chuỗi tin cậy: đây là giai đoạn quan trọng nhất trong quá trình, một chuỗi các chứng chỉ của cả hai bên yêu cầu các tài nguyên cần thiết để phù hợp với chính sách của chúng và đã được xác minh. Nếu cùng một giao dịch đã được thực hiện trước đó và chuỗi tin cậy đã được lưu giữ thì nó có thể được lấy từ bộ đệm để tăng tốc quá trình này. Hơn nữa, nếu người dùng có một nhãn tin cậy, và nếu nhãn tin cậy vẫn còn giá trị, nguồn tài nguyên có thể được cấp ngay lập tức và toàn bộ quá trình sẽ dừng.

- Trao đổi chứng thực: một khi chuỗi tin cậy được tạo ra và thống nhất giữa các bên trong bước trước đó, chứng thực sẽ bắt đầu trao đổi: các người dùng trao đổi yêu cầu các chứng thực. Sau khi yêu cầu chứng chỉ được kiểm tra và thỏa mãn, các tài nguyên yêu cầu sẽ được cấp.

- Lưu giữ chuỗi tin cậy: giai đoạn cuối cùng là để lưu giữ chuỗi tin cậy tham gia vào các giao dịch và nó có thể được sử dụng để tăng tốc độ ở những lần tiếp theo.

Quá trình đàm phán và các giai đoạn của nó được mô tả như hình 3.3.

Page 58: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

50

Hình 3.3: Các giai đoạn trong quá trình đàm phán của hệ thống Trust-X

3.4. Hệ thống tin cậy dựa trên uy tín cá nhân

3.4.1. Hệ thống P2PRep Một trong những vấn đề lớn nhất trong hệ thống chia sẻ file P2P là các nút xấu có

thể lợi dụng hệ thống để phát tán nội dung độc hại như spyware hoặc virus. P2PRep là một giao thức dựa vào uy tín sử dụng để xác định các nút xấu trong các hệ thống như vậy. Giao thức này chính là một phần mở rộng của giao thức Gnutella để quản lý sự tin cậy. Ý tưởng cở bản của P2PRep đó là: một người dùng cần tìm kiếm một tài nguyên thì người đó cần phải kiểm tra sự uy tín của tất cả các người dùng có thể cung cấp tài nguyên như người đó yêu cầu trước khi tải tài nguyên về. Uy tín của một người dùng hoặc là tốt hoặc là xấu, điều đó có thể được xác minh bằng cách hỏi các người dùng khác, những người

Page 59: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

51

dùng đã thực hiện giao tiếp với người dùng đó từ trước. Có hai phiên bản của P2PRep: bỏ phiếu cơ bản và bỏ phiếu nâng cao. Sự khác nhau duy nhất giữa hai phiên bản này là giao thức bỏ phiếu cở bản xử lý tất cả các ý kiến từ các người dùng khác về uy tín của một người dùng như nhau trong khi giao thức bỏ phiếu nâng cao không xét độ tin cậy dựa vào ý kiến các người dùng. Lưu ý rằng, để đảm bảo tính chính xác khi trao đổi thông điệp, P2PRep sử dụng cặp khóa bí mật/công khai để giải mã/mã hóa thông điệp.

3.4.1.1. Giao thức bỏ phiếu cơ bản Giao thức bỏ phiếu cơ bản được miêu tả trong hình 3.4. Bao gồm 5 giai đoạn: Tìm

kiếm tài nguyên, lựa chọn tài nguyên và bỏ phiếu đánh giá, bỏ phiếu đánh giá, kiểm tra người dùng tốt nhất, và cuối cùng là giai đoạn tải tài nguyên về.

Hình 3.4: Giao thức bỏ phiếu cơ bản

- Tìm kiếm tài nguyên: giai đoạn này được xử lý giống như cách xử lý tìm kiếm

trong hệ thống Gnutella. Ban đầu người dùng tìm kiếm nguồn tài nguyên sẽ gửi một yêu

Page 60: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

52

cầu truy vấn đến nút láng giềng của họ, sau đó lần lượt chuyển đến các người dùng khác. Mỗi truy vấn có một thời gian sống nhất định được sử dụng để kiểm soát số lượng các bước chuyển tiếp xâu truy vấn. Khi một người dùng nhận được một yêu cầu truy vấn, nếu nó chứa các tài nguyên đáp ứng các điều kiện tìm kiếm, nó sẽ trả về kết quả cho người dùng yêu cầu bởi một thông điệp QueryHit. Các thông điệp trả về có chứa số lượng các thông tin và tài liệu thỏa mãn để tải tài nguyên về.

- Lựa chọn tài nguyên và bỏ phiếu bình chọn: trong giai đoạn này, đầu tiên người dùng yêu cầu lựa chọn trong danh sách các người dùng từ kết quả trả về trong giai đoan trước. Sau đó người dùng đó gửi quảng bá các thông điệp đánh giá đến các người dùng trong hệ thống để thu thập uy tín của các người dùng cung cấp nguồn tài nguyên. Các người dùng nhận được thông báo Poll sẽ kiểm tra kiến thức của chúng về các yêu cầu của các người dùng, và gửi thông tin phản hồi PoolReply về cho người dùng yêu cầu.

- Đánh giá bình chọn: vì những người dùng xấu luôn cố gắng can thiệp vào quá trình bỏ phiếu bình chọn, trước khi đánh giá bình chọn, người dùng yêu cầu sẽ phân tích các lá phiếu để xác minh và loại bỏ các lá phiếu đáng nghi (tức lá phiếu đến từ các IP xấu). Ngoài ra, người dùng yêu cầu sẽ chọn một số “cử tri” để gửi thông điệp TrueVote để kiểm tra xem chúng có phải đích thực gửi phiếu hay không. Cử tri đích thực sẽ trả lời thông điệp này với một thông điệp TrueVoteReply. Sau khi tính chính xác của một lá phiếu được xác thực, người dùng yêu cầu có thể lựa chọn người dùng cung cấp uy tín nhất để tải tài nguyên họ cần.

- Kiểm tra người dùng tốt nhất: trước khi tải tài nguyên, người dùng yêu cầu làm một bước cuối cùng để xác minh: kiểm tra tính chính xác của người dùng cung cấp tài nguyên đã được chọn. Xác minh này được thực hiện bằng cách gửi thông điệp thách thức đến người dùng cung cấp để yêu cầu xác minh lại định danh của họ. Nếu người dùng yêu cầu nhận được một thông điệp thỏa mãn sự chính xác từ người dùng cung cấp, họ có thể chuyển đến bước cuối cùng để tải tài nguyên họ cần. Nếu thông điệp nhận được là không chính xác họ cũng có thể quay lại bước trước đó để lựa chọn một người dùng cung cấp khác tốt hơn.

- Tải tài nguyên về: tài nguyên cần thiết sẽ được tải ở giai đoạn này. Sau đó người dùng yêu cầu sẽ cập nhật kinh nghiệm của họ về uy tín của người dùng đã cung cấp tài nguyên.

Page 61: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

53

3.4.1.2. Giao thức bỏ phiếu nâng cao Như chúng ta đã đề cập, giao thức bỏ phiếu cơ bản coi ý kiến của tất cả các người

dùng là như nhau. Kết quả là nó không thể phản ánh tầm quan trọng của các người dùng có uy tín để so sánh với các người dùng xấu hoặc người dùng chưa xác định danh tính. Giao thức bỏ phiếu nâng cao cải thiện giao thức trước bởi việc xem xét độ tin cậy của các người dùng trong bỏ phiếu đánh giá. Để làm được điều đó, mỗi người dùng phải duy trì một giá trị tin cậy của các người dùng khác để bổ sung độ uy tín của họ. Tương tự như quản lý uy tín, độ tin cậy của các người dùng được tích lũy sau mỗi giao dịch: nếu kết quả giao dịch phù hợp với ý kiến của một người dùng, độ tin cậy của họ sẽ được tăng lên. Nếu không, độ tin cậy của họ sẽ giảm xuống. Giao thức bỏ phiếu nâng cao thực sự giống giao thức bỏ phiếu cơ bản trừ quá trình bỏ phiếu đánh giá: người dùng yêu cầu tài nguyên đo trọng số ý kiến các người dùng khác dựa vào độ tin cậy của họ.

Một điểm hạn chế của P2PRep là nó phải chịu chi phí cao trong quá trình bỏ phiếu, bởi vì nó cần quảng bá thông điệp để hỏi ý kiến các người dùng trong hệ thống về các người dùng cung cấp tài nguyên. Ngoài ra, các giải pháp để kiểm tra và loại bỏ lá phiếu đáng nghi từ các người dùng xấu dường như không thực tế bởi nó không dễ dàng để xác định các người dùng xấu để loại bỏ các phiếu bầu của họ. Những gợi ý để nhận biết các người dùng xấu bằng cách đơn giản là kiểm tra IP của họ xem có luôn luôn hoạt động hay không. Đó là bởi vì các người dùng xấu có thể đối phó với giải pháp này bằng cách thay đổi hoặc ẩn IP của họ (thực ra, nếu có thể xác định các nút xấu từ IP của chúng, quá trình bỏ phiếu có thể không cần thiết bởi vì các người dùng xấu có thể được xác định trực tiếp khi họ cung cấp tài nguyên).

3.4.2. Hệ thống XRep Mặc dù ngay cả các người dùng xấu cũng có thể được thừa nhận qua uy tín của họ,

là kết quả của những hành vi của họ trước đây, nhưng không phải thế mà dễ dàng để theo dõi định danh của họ bởi định danh của họ thay đổi thường xuyên. XRep – một hệ thống kế thừa từ P2PRep, đã đưa ra một phương pháp để theo dõi uy tín của các tài nguyên, và cập nhật vào uy tín của các người dùng. Bằng cách này, mỗi người dùng lưu giữ hai trọng số uy tín: một là cho uy tín cá nhân, còn cái kia là lưu giữ uy tín của tài nguyên. Vì XRep là một biến thể của P2PRep nên giao thức này tương tự như giao thức P2PRep. Cũng như thế, XRep cũng bao gồm 5 giai đoạn: tìm kiếm nguồn tài nguyên, bỏ phiếu và lựa chọn

Page 62: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

54

nguồn tài nguyên, bỏ phiếu đánh giá, kiểm tra người dùng uy tín nhất, và tải tài nguyên về. Chúng ta chỉ cần nghiên cứu sự khác nhau giữa hai giao thức.

- Sự khác nhau đầu tiên là trong giai đoạn thứ hai “lựa chọn tài nguyên và bỏ phiếu đánh giá”: thay vì lấy danh sách đầu tiên của các người dùng có chứa truy vấn đã tìm kiếm và hỏi họ về mức độ uy tín của các người dùng khác, XRep lựa chọn danh sách đầu tiên của các tài nguyên từ kết quả trả về và hỏi các người dùng khác về mức độ uy tín của cả tài nguyên và người dùng cung cấp tài nguyên đó. Như đã nói ở trên, điểm khác nhau chính giữa XRep và P2PRep là: XRep không chỉ xét đến uy tín của các người dùng mà còn xét đến cả uy tín của tài nguyên trong quá trình thẩm định. Nghĩa là từ ý kiến của các người dùng khác về tài nguyên và các người dùng cung cấp tài nguyên thu được trong giai đoạn trước, người dùng yêu cầu lựa chọn một người dùng uy tín nhất và tải tài nguyên về. Các tiêu chí lựa chọn ở đây có thể khác nhau tùy thuộc vào sự ưu tiên của người dùng yêu cầu. Ví dụ, nó có thể ưu tiên chọn tài nguyên có độ uy tín cao nhất cho dù tài nguyên đó được trả về chỉ từ một người dùng có độ uy tín ở mức vừa hoặc tài nguyên có mức độ uy tín vừa được lấy từ người dùng có độ uy tín cao nhất.

- Sự khác nhau cuối cùng là trong giai đoạn cuối “giai đoạn tải tài nguyên về”: sau khi tài nguyên được tải về, nút yêu cầu cập nhật kiến thức của mình cho cả uy tín của người dùng và uy tín của tài nguyên tùy vào chất lượng của tài nguyên được tải về.

3.4.3. Mô hình tin cậy NICE Hệ thống Cooperative Peer Groups là một hệ thống mô hình tin cậy xây dựng trên

nền tảng NICE – một nền tảng tích hợp công cụ được ứng dụng trên Internet. Hệ thống xác định các người dùng tốt để tạo thành các nhóm cộng tác và cô lập các người dùng xấu. Bằng cách tách các người dùng tốt từ các người dùng xấu, tính bảo mật của hệ thống được cải thiện. Tương tự như các hệ thống tin cậy khác, trong hệ thống này, sau mỗi giao dịch một người dùng sẽ đánh giá đối tác của họ dựa vào chất lượng của giao dịch. Điểm số sẽ được lưu trong file cookie. Tuy nhiên, khác với các mô hình khác, nơi các điểm số được lưu giữ là người dùng ban hành xác nhận tin cậy hoặc lưu giữ ở người nhận, ở đây điểm số lại được lưu giữ ở cả hai: điểm số tích cực được lưu ở các người nhận còn điểm số tiêu cực được lưu giữ tại các người dùng ban hành xác nhận tin cậy. Lưu ý rằng để giữ một “constant storage” cho các file cookies, các cookies cũ được kết thúc hoặc bị loại bỏ sau một thời gian nhất định để dành không gian lưu trữ cho các cookies mới.

Page 63: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

55

3.4.3.1. Đánh giá sự tin cậy Trong hệ thống, đánh giá sự tin cậy được thực hiện thông qua một đồ thị có hướng

gọi là đồ thị tin cậy trong đó mỗi cạnh có hướng giữa hai nút đại diện cho mối quan hệ giữa hai người dùng mà họ đã giao dịch với nhau thành công. Nút nguồn là một trong những nút ban hành giá trị tin cậy, trong khi các nút đích là các nút nhận đã được đề cập ở phần trên. Trọng số của cạnh tổng số các nút nguồn tin cậy nút đích. Ví dụ, sau một lần giao dịch thành công giữa người dùng A và người dùng B, nếu người dùng A thiết lập một giá trị tin cậy là 0.8 đến B, chúng ta có một cạnh có hướng có trọng số là 0.8 từ A đến B trong đồ thị tin cậy. Hai chiến lược để tính độ tin cậy trong đồ thị được đưa ra cho hệ thống là: đường đi tốt nhất và có tổng trọng số của các đường đi thành phần tốt nhất.

- Đường đi tốt nhất: trong chiến lược này, người dùng đầu tiên sẽ tìm đường đi tốt nhất giữa nó và nút đích. Đường đi tốt nhất được xác định là đường đi có giá trị tối thiểu dọc theo đường đi hoặc sự tạo thành từ tất cả các cạnh dọc theo đường đi là cao nhất trong số tất cả các đường đi có thể có giữa 2 nút. Khi đường đi tốt nhất được xác định, giá trị tin cậy là trọng số nhỏ nhất trong số các cạnh trong đường đi. Ví dụ, nếu chúng ta sử dụng chức năng cạnh có giá trị tối thiểu để để tìm kiếm đường đi tốt nhất, thì đường đi tốt nhất giữa A và F trong hình 3.5 là A C D F. Kết quả là giá trị tin cậy của F được suy ra từ A là 0.65.

Hình 3.5: Đồ thị tin cậy Nice

- Tổng trọng số của các đoạn thành phần: trong chiến lược này, giá trị tin cậy được

tính bằng tổng trọng số của các đoạn thành phần. Ví dụ, trong minh họa ở hình 3.5 còn có

Page 64: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

56

một đường đi khác giữa A và F: A B E F. Vì giá trị tin cậy của đường đi này là 0.5 trong khi giá trị tin cậy của các cạnh thành phần trong đường đi trước là 0.65, giá trị

tin cậy của F là 8.05.0

65.0*8.05.0*5.0 = 0.59.

3.4.3.2. Tìm đường đi giữa hai nút trong đồ thị tin cậy Cần lưu ý rằng đồ thị tin cậy được hình thành thực sự và không một người dùng nào

biết toàn bộ đồ thị. Để đánh giá độ tin cậy của các người dùng khác, một người dùng không cần phải biết toàn bộ đồ thị. Họ chỉ cần biết tất cả các đường đi từ vị trí của họ đến người dùng đó. Những đường đi đó có thể được tìm thấy khi một người dùng tìm giá trị tin cậy của một người dùng khác. Đặc biệt, khi một người dùng muốn tìm một đường đi đến người dùng khác, họ sẽ gửi một yêu cầu tìm kiếm đến tất cả các nút mà họ tin cậy, bằng cách xem họ trong danh sách các file cookie tin cậy mà mình đã lưu. Nếu chúng giữ cookie của các người dùng yêu cầu thì chúng sẽ trả lại cho người dùng yêu cầu. Lý do sau việc sử dụng đường đi nối giữa hai nút A và C là nếu A tin cậy B và B tin cậy C, A sẽ tin cậy C.

Cần lưu ý rằng, phương pháp xác minh sự tin cậy trong hệ thống này là khác với các hệ thống khác. Trong các hệ thống khác, người dùng sở hữu tài nguyên là những người xác minh sự tin cậy của người dùng yêu cầu tài nguyên. Tuy nhiên, trong hệ thống này, người dùng yêu cầu tài nguyên là người chịu trách nhiệm làm bằng chứng cho chủ sở hữu tài nguyên là họ xứng đáng được tin cậy. Thêm nữa, mỗi nút cần thiết phải lưu giữ một danh sách ưu tiên chứa các nút tốt nhất (tức là các nút có độ tin cậy cao). Các nút đó có thể được tìm thấy trong quá trình tìm đường đi. Bằng cách này, hệ thống có thể tăng khả năng của những nút tốt để lập thành nhóm và cô lập các nút xấu. Tuy nhiên, hệ thống này có nhược điểm là phải gánh chịu một chi phí cao trong quá trình tìm đường đi tin cậy giữa nút có người dùng yêu cầu tài nguyên và nút có người dùng sở hữu tài nguyên nếu như một trong hai nút có số giao dịch thấp (chẳng hạn như các nút mới gia nhập hệ thống).

3.4.4. Hệ thống PeerTrust Hệ thống PeerTrust phân tích uy tín của một người dùng một cách chi tiết hơn. Nó

chỉ ra rằng nếu uy tín của một người dùng chỉ đơn giản dựa vào số lượng các giao dịch thành công thì chưa đủ chặt chẽ để loại bỏ những người dùng xấu. Vì thế, PeerTrust đã

Page 65: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

57

phân tích 5 yếu tố quan trọng là nên sử dụng hình thái uy tín của một người dùng. Chúng được trình bày như sau:

- Tổng số các giao dịch tốt: một ý tưởng cơ bản để tin cậy một người dùng nếu họ có một số lượng lớn các giao dịch tốt với các người dùng khác.

- Số lượng các giao dịch: một vấn đề đặt ra với tiêu chí trên là những người dùng xấu chỉ cần có đủ số giao dịch tốt thì sẽ có một uy tín tốt. Sau đó có thể chúng sẽ luôn tạo ra các giao dịch xấu mà không mất đi uy tín của nó. Do vậy, chúng ta cần phải xem xét tổng số các giao dịch để xác minh uy tín của một người dùng.

- Sự tin cậy của thông tin phản hồi: ý kiến sau các yếu tố này là nếu một người dùng là xấu, chúng ta không nên tin vào người dùng đó và cũng không tin vào thông tin phản hồi của nó về các người dùng khác. Nếu không, nó có thể hợp tác để cung cấp điểm số cao cho những người dùng khác để tăng điểm số uy tín của họ.

- Phạm vi giao dịch: nếu chúng ta không xem xét phạm vi giao dịch, những người dùng xấu có thể rất tốt trong nhiều giao dịch nhỏ nhưng lại xấu trong một số giao dịch lớn để thu được lợi ích. Trong hệ thống này, nếu không xét đến phạm vi thì chúng vẫn có thể có một uy tín tốt vì có số lượng giao dịch tốt lớn hơn số lượng giao dịch xấu.

- Phạm vi cộng đồng: Đôi khi, cũng cần phải xem xét các phạm vi công đồng để đánh giá sự tin cậy. Ví dụ, một người dùng có thể “lười biếng” trong việc cung cấp thông tin phản hồi cho các giao dịch của nó. Chính vì thế, nếu chúng ta cộng điểm cho những người dùng cung cấp thông tin phản hồi có thể khuyến khích họ tích cực cung cấp thông tin phản hồi, và vì thế làm tăng kiến thức của hệ thống về uy tín của các người dùng. Một cách khác để có hiệu quả cao trong quá trình đánh giá độ uy tín là lấy ý kiến từ các người dùng tin cậy đã có uy tín từ trước.

3.4.4.1. Đo độ tin cậy Từ những tiêu chí trên, một số liệu tin cậy chung được đưa ra như sau:

T(u) =

)(

1)(.),()).,(().().,(.

uI

iuCFiuTFiupCruCFiuS .

Ở đây, I(u) biểu thị tổng số các giao dịch của người dùng u với các người dùng khác trong hệ thống; i đại diện cho giao dịch thứ i của người dùng u; S(u,i) là mức hài lòng mà đối tác của u đánh giá trong giao dịch thứ i; Cr(p(u,i)) là độ tin cậy của các thông tin của

Page 66: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

58

đối tác p đối với giao dịch thứ i; TF(u,i) là các giao dịch thích ứng liên hệ với các yếu tố trong giao dịch thứ i; CF(u) là yếu tố cộng đồng thích ứng với phạm vi của người dùng u. Các hệ số α và β là hệ số trung bình trong việc đánh giá tập thể và hệ số phạm vi công cộng. Các hệ số thay đổi theo từng trường hợp. Ví dụ, α và β có thể lấy giá trị như trên nếu một người dùng có đủ số lượng các giao dịch cho việc đánh giá, hệ thống có thể trở nên đơn giản dựa vào thông tin phản hồi. Còn trong trường hợp nếu người dùng cần đánh giá là một người dùng mới và mới chỉ giao dịch với số lượng nhỏ các giao dịch thì hệ thống có thể đề bạt sử dụng giá trị mặc định.

3.5. Hệ thống tin cậy dựa vào uy tín cá nhân và uy tín dưới khía cạnh xã hội.

3.5.1. Hệ thống Regret Tương tự như các hệ thống trước, Regret cũng dựa vào uy tín để đánh giá sự tin cậy.

Tuy nhiên khác với các hệ thống trên, Regret coi uy tín đánh giá dưới khía cạnh xã hội để đánh giá sự tin cậy. Đặc biệt, Regret xem xét ba khía cạnh của sự uy tín: cá nhân, xã hội và bản thể luận.

3.5.1.1. Uy tín đánh giá dưới khía cạnh cá nhân Uy tín cá nhân của một người dùng j qua sự đánh giá của người dùng i trên một khía

cạnh s chỉ phản ánh ý kiến cá nhân của người dùng i về người dùng j từ những giao dịch trước đây của họ và được định nghĩa: Ri j(S).

3.5.1.2. Uy tín đánh giá dưới khía cạnh xã hội Điều quan trọng để nhận ra rằng khi một cá nhân thuộc về xã hội, hành vi của người

đó bị ảnh hưởng bởi hành vi của người khác trong xã hội đó. Nói cách khác, cá nhân trong cùng một xã hội có xu hướng cư xử theo cùng một cách và các hành vi của xã hội bị ảnh hưởng bởi hành vi của mỗi cá nhân. Nói một cách đối lập, uy tín của một cá nhân bị ảnh hưởng bởi uy tín của xã hội mà nó thuộc về. Vì thế, cần xem xét uy tín đánh giá dưới hình thức xã hội để tăng thêm uy tín cá nhân. Đặc biệt, giá trị uy tín đánh giá dưới hình thức xã hội của một người dùng j qua đánh giá của người dùng i, SRi -> j(s), được đưa vào bốn yếu tố tính toán. Hai yếu tố đầu tiên là các ý kiến cá nhân của i về uy tín cá nhân của j: Ri-> j(s), và nhóm uy tín của J: Ri->J(s), (j J). Hai yếu tố cuối cùng là nhóm các ý kiến của I, (i I), về uy tín cá nhân của j: Ri->j(s), và nhóm uy tín của J: RI->J(s):

SRi->j(s) = ξij.Ri->j(s) + ξiJ.Ri->J(s) + ξIj.RI->j(s) + ξIJ.Ri->J(s).

Page 67: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

59

Trong đó, ξij, ξIj, ξiJ và ξIJ là hệ số phản ánh tầm quan trọng của mỗi thành phần tính toán và ξij+ξIj+ ξiJ + ξIJ = 1. Các hệ số được thay đổi tùy theo từng trường hợp. Công thức này được minh họa trong hình 3.6.

Hình 3.6: Uy tín dưới khía cạnh xã hội

3.5.1.3. Khía cạnh bản thể luận Thường có nhiều yếu tố có thể góp phần vào uy tín của một cá nhân. Ví dụ, khi

chúng ta muốn đặt phòng khách sạn cho kỳ nghỉ, chúng ta có thể xem uy tín của khách sạn như là sự cấu thành của các yếu tố: về giá cả, về vị trí và các dịch vụ của khách sạn. Bằng cách kết hợp tất cả các yếu tố uy tín thành một, tạo thành một bản thể luận về uy tín. Trong Regret, giá trị uy tín ở khía cạnh bản thể luận của một người dùng j qua đánh giá của người dùng i được tính bằng công thức sau:

ORi-->j(s) = )(schildrenk

wsk . ORi->j(k).

Trong đó, ORi->j(k) = SRi->j(k) nếu k là một nguyên tử; wsk đại diện cho một vài trọng số trong tính toán, chuẩn hóa

)(schildrenkwsk = 1. Sự tồn tại của các trọng số là cần thiết bởi

vì các cá nhân khác nhau có thể có quan điểm khác nhau về các yếu tố trong công thức. Hơn nữa, các trọng số tại mỗi nút là không cố định. Chúng có thể thay đổi theo thời gian,

Page 68: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

60

tùy thuộc vào nhu cầu cần thiết. Hình 3.7 cho thấy một ví dụ của một bản thể luận cho uy tín của khách sạn, bao gồm giá cả, vị trí và các dịch vụ cung cấp.

Hình 3.7: Bản thể luận

Trong khi ý tưởng sử dụng cả uy tín cá nhân và uy tín dưới khía cạnh xã hội trong đánh giá sự tin cậy được chú ý, chi phí xây dựng và duy trì xã hội, tính toán uy tín dưới khía cạnh xã hội và xác định xã hội mà một nút thuộc về là rất cao. Thêm nữa, luôn có những lỗ hổng mà các nút xấu có thể khai thác và sử dụng để có được lợi ích từ uy tín dưới khía cạnh xã hội một khi chúng biết được cách thức xã hội được hình thành.

3.5.2. Hệ thống NodeRanking Tương tự như hệ thống Regret, hệ thống NodeRanking cũng xét đến khía cạnh xã

hội trong đánh giá sự tin cậy. Tuy nhiên, khác với Regret, NodeRanking sử dụng cách tiếp cận rất khác trong tính toán độ uy tín. Ý tưởng cơ bản của NodeRanking là: trong một xã hội, một cá nhân luôn có mối quan hệ với nhiều cá nhân khác trong khi các cá nhân xấu thường đứng đơn lẻ vì không ai muốn tạo mối quan hệ với nó. Kết quả là, nếu bằng một vài cách chúng ta có thể có một cấu trúc tổng quan về mạng xã hội, chúng ta có thể suy luận uy tín của từng cá nhân trong đó. Ưu điểm của phương pháp này là nó không yêu cầu các cá nhân cung cấp thông tin phản hồi cho mỗi giao dịch như trong các phương pháp khác.

3.5.2.1. Xây dựng mạng xã hội Mạng xã hội có thể được xây dựng từ nhiều nguồn thông tin như liên kết các trang

web cá nhân, trao đổi thư điện tử, sự hợp tác của các cá nhân trong các giao dịch, vv. Ví dụ, một công thức đơn giản để xây dựng mối quan hệ giữa hai cá nhân i và j trong hệ thống thông qua các thông tin lấy từ các trang web cá nhân như sau:

w(i j) = wemail(i j) + wlink(i j).

Page 69: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

61

Trong đó, wemail(i j) = 1 nếu tồn tại một địa chỉ email của j trong trang web của i. Nếu không thì wemail(i j) = 0. Tương tự như vậy, wlink(i j) = 1 nếu tồn tại một liên kết tới trang web của j trong trang web của i và bằng 0 nếu ngược lại.

Chúng ta có thể nghĩ về các kỹ thuật khai phá dữ liệu để lấy các loại thông tin này. Từ những thông tin thu được, một mạng xã hội sẽ được xây dựng như là một đồ thị có hướng mà trong đó hướng của một nút đến nút khác phản ánh sự ảnh hưởng của nút này lên nút kia.

3.5.2.2. Đánh giá uy tín Giá trị uy tín của một cá nhân trong một xã hội có thể được đánh giá bằng sự tham

khảo ý kiến của các cá nhân khác về cá nhân đó: số lượng ý kiến càng lớn thì uy tín của một cá nhân càng cao. Vì mạng xã hội được biểu diễn như một đồ thị, uy tín của một cá nhân chỉ đơn giản là đo mức độ vào (ra) của một nút thường xuyên liên lạc trong đồ thị. Nếu một nút không được tham chiếu bởi một nút bất kỳ thì nó được gán một giá trị mặc định của uy tín. Chú ý rằng khi hệ thống được khởi tạo đầu tiên, cùng một giá trị uy tín được gán cho tất cả các nút. Ví dụ trong hình 3.8, nút C, G và H là các nút tốt, vì mỗi nút trong số chúng có ít nhất 3 tham chiếu từ các nút khác, trong khi nút F có thể là một nút xấu vì nó không có một tham chiếu nào tới nó.

Hình 3.8. Mạng xã hội

Page 70: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

62

3.5.2.3. Thuật toán sử dụng trong hệ thống NodeRanking Vì uy tín của một nút i được tính từ các nút tham chiếu, trong khi uy tín của các nút

khác (các nút mà i tham chiếu tới) được tính từ uy tín của i, nếu có một tham chiếu tuần hoàn, quá trình tính toán có thể là vô hạn. Vì thế, thuật toán sử dụng trong hệ thống NodeRanking cần xem xét và ngăn chặn vấn đề này. Thuật toán NodeRanking đưa ra giả thiết và làm theo cách thông qua chiến lược đi ngẫu nhiên: nó bắt đầu từ một nút tùy ý và sau đó đi ra các nút khác. Thuật toán sẽ dừng lại khi hội tụ các giá trị của uy tín.

3.6. Quản lý sự tin cậy Cho đến bây giờ, chúng ta đã thảo luận về các mô hình tin cậy và các hệ thống sử

dụng chúng. Nhớ lại rằng, có hai mô hình tin cậy: mô hình dựa vào chứng thực và mô hình dựa vào uy tín. Mô hình thứ hai có thể được chia thành hai mô hình nhỏ: một mô hình chỉ xem xét uy tín cá nhân trong khi mô hình kia còn đưa thêm vào cả sự tính toán các mối quan hệ xã hội. Vì tất cả các mô hình này đòi hỏi phải có kiến thức toàn hệ thống để đánh giá sự tin cậy và như một kiến thức không tồn tại ở bất kỳ cá nhân nào. Trong phần này chúng ta sẽ bàn về các phương pháp tin cậy được đánh giá theo cách phân loại. Đặc biệt chúng ta tập trung thảo luận về cách quản lý các người dùng và sự trao đổi hiểu biết giữa họ về uy tín của các người dùng khác để có được một cái nhìn tổng quát về hệ thống mạng ngang hàng. Giải pháp cho vấn đề này một phần đã được thảo luận trong các hệ thống cụ thể được trình bày trong các phần trên. Tuy nhiên, ở đây chúng ta muốn nhấn mạnh và tổ chức chúng thành các loại và thảo luận chúng một cách chi tiết hơn. Nói chung, có ba phương pháp để quản lý sự tin cậy trong hệ thống P2P như sau.

3.6.0.1 Quản lý sự tin cậy dựa vào máy chủ Đây là cách đơn giản, trong cách này, máy chủ được sử dụng để duy trì giá trị uy tín

của các người dùng. Bằng cách này, sau khi giao dịch, mỗi người dùng tham gia chỉ cần gửi ý kiến của họ về đối tác tới máy chủ. Các máy chủ có trách nhiệm quản lý uy tín của mọi người dùng và trả lời các truy vấn của bất kỳ người dùng nào. Cách này thích hợp cho các hệ thống P2P dựa trên máy chủ vì chúng có thể sử dụng cấu trúc hiện có để quản lý tin cậy. Tuy nhiên, vì phương pháp này dựa vào các máy chủ, nên nó gặp các vấn đề của hệ thống dựa vào máy chủ như: thắt cổ chai và thiếu khả năng mở rộng.

Page 71: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

63

3.6.0.2. Quản lý tin cậy dựa vào thuật toán lan truyền Nếu không sử dụng máy chủ, có hai phương pháp để quản lý sự tin cậy của toàn hệ

thống. Cách đầu tiên sử dụng một thuật toán lan truyền để trao đổi kiến thức giữa các người dùng trong hệ thống. Kết quả, sau khi đủ các bước trao đổi, một người dùng có thể có một cái nhìn tổng quan về hệ thống. Đặc biệt, sau mỗi giao dịch hoặc sau một khoảng thời gian, các người dùng báo cáo điểm số của các đối tác trong các giao dịch mới nhất cho tất cả các nút khác trong hệ thống bằng cách sử dụng một thuật toán lan truyền. Ban đầu, người dùng đó gửi điểm số cho tất cả các người dùng khác mà người đó biết, rồi chúng sẽ lần lượt chuyển tiếp cho các người dùng khác. Từng bước, điểm số được cập nhật tại tất cả các nút. Phương pháp đơn giản này rất tốn kém vì nó yêu cầu lưu giữ thông tin sự hiểu biết của tất cả các người dùng trong hệ thống tại mỗi nút, mặc dù hầu hết các lần giao dịch, một nút chỉ giao dịch với một số lượng nhỏ các nút khác trong hệ thống. Thêm nữa, hệ thống cho thấy chỉ nên duy trì uy tín cục bộ của một nút khi nó giao dịch với nút khác trong nội bộ của nó. Bất cứ khi nào một nút cần lấy lại uy tín của một nút chưa xác định, nó có thể sử dụng thuật toán lan truyền để yêu cầu uy tín của các nút đó từ nút láng giềng của nó, nút láng giềng của nút láng giềng của nó, và cứ như vậy cho đến khi tìm thấy. Kết hợp các thông tin phản hồi với những hiểu biết cục bộ, nó có thể xác định giá trị tin cậy của các nút đó. Lưu ý rằng phương pháp này có chi phí thấp hơn so với phương pháp đơn giản ở trên vì nó không cần thiết yêu cầu tất cả các nút trong hệ thống cung cấp thông tin về uy tín của một nút. Giá trị chính xác có thể hội tụ chỉ sau một số bước truyền các truy vấn.

3.6.0.3. Quản lý tin cậy dựa vào cấu trúc mạng P2P Phương pháp trên dựa vào thuật toán lan truyền có chi phí cao vì uy tín của một nút

hoặc một truy vấn có thể phải lan truyền tới tất cả các nút khác hoặc đa số các nút trong hệ thống. Tuy nhiên, nếu không làm điều này, kết quả truy vấn về uy tín của một nút có thể không chính xác. Phương pháp thứ ba đề xuất rằng chính bản thân một mạng ngang hàng có cấu trúc có thể sử dụng để quản lý uy tín của các nút trong hệ thống.

Ý tưởng cơ bản được đưa ra cho mỗi nút trong mạng, định danh của nó được coi như khóa và uy tín của nó được đánh chỉ số cùng với khóa định danh vào hệ thống mạng. Khi một nút muốn biết uy tín của các nút khác, đơn giản nó chỉ cần gửi một truy vấn với định danh của nút đó như là khóa tìm kiếm. Một vấn đề tiềm năng là một nút có thể giữ

Page 72: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

64

uy tín của chính nó nằm trong vùng giá trị thay đổi chứa định danh của nó, do đó nó có thể thay đổi giá trị uy tín nếu nó là một nút xấu. Để tránh vấn đề này, thay vì giữ giá trị uy tín của một nút chỉ ở một ở một vị trí, hệ thống sẽ tạo các bản sao giá trị uy tín của một nút và giữ ở một vài vị trí khác. Tuy nhiên, nếu có nhiều nút xấu, và nếu chúng hợp tác với nhau, chúng vẫn có thể cung cấp thông tin sai đối với một vài nút. Giải pháp cho vấn đề này là yêu cầu một nút phải đánh giá uy tín của các nút tham chiếu. Điều này có thể dẫn tới sự kiểm tra vòng lặp cho tất cả các nút trong hệ thống, như thế rất tốn kém, nhưng trong nhiều trường hợp, hệ thống có thể quyết định tính đúng đắn của các giá trị uy tín chỉ sau một vài bước. Phương pháp này có thể được áp dụng trong bất kỳ hệ thống P2P có cấu trúc như P-Grid [56], CAN [9] hoặc CHORD [8].

Kết luận, sự phân loại các phương pháp quản lý tin cậy có thể được thể hiện như trong hình 3.9.

Hình 3.9. Phân loại các phương pháp quản lý tin cậy

Chúng ta thấy rằng, sự phân loại các phương pháp quản lý tin cậy tương tự như sự phân loại mạng ngang hàng: mô hình đầu tiên có thể ví như mạng ngang hàng không có cấu trúc, mô hình P2P dựa vào máy chủ; mô hình thứ hai sử dụng thuật toán lan truyền có thể coi như là mạng P2P không có cấu trúc, mô hình P2P thuần túy; và cuối cùng như là mô hình P2P có cấu trúc. Trong phần tiếp theo, chúng ta sẽ tìm hiểu ba hệ thống đại diện cho các mô hình này bao gồm các hệ thống: XenoTrust – sử dụng mô hình quản lý tin cậy dựa vào máy chủ; EigenRep [57] – sử dụng mô hình quản lý tin cậy dựa vào phương pháp lan truyền, và sự hợp tác của Ge, Luo và Xu [58] – sử dụng P-Grid để quản lý tin cậy.

3.6.1. Hệ thống XenoTrust XenoTrust là một hệ thống quản lý tin cậy sử dụng nền tảng mở XenoServer - một

nền tảng mã nguồn mở và sử dụng công cộng, trong đó các máy chủ có thể cho thuê tài

Page 73: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

65

nguyên của chúng để các máy trạm triển khai ứng dụng. Nền tảng mở XenoServer bao gồm 5 thực thể:

- XenoServer: cung cấp dịch vụ máy chủ cho các máy trạm. Bất kỳ máy chủ nào cũng có thể tham gia vào nền tảng bằng cách đăng ký thông tin với XenoCorp đầu tiên. Sau đó, nó cần phải quảng cáo dịch vụ của mình cho dịch vụ thông tin của XenoServer (XenoServer Information Service – XIS). Ngoài ra, nó còn phải thông báo định kỳ cho XIS về trạng thái của nó (các dịch vụ). Khi một máy trạm thuê tài nguyên của nó, máy chủ có thể yêu cầu XenoCorp xác nhận chi phí cho thuê.

- XenoCorp: hoạt động như một bên tin cậy để xử lý tính toán. Nó có trách nhiệm xác thực cả XenoServer và các máy trạm trên nền tảng và đảm bảo tính chính xác của các khoản thanh toán.

- XenoServer information service (XIS): phụ trách việc duy trì trạng thái và danh sách các dịch vụ của XenoServers. Thông tin này có thể được truy vấn bởi các máy khách hoặc bởi hệ thống tìm kiếm tài nguyên.

- Hệ thống tìm kiếm tài nguyên: được sử dụng để hỗ trợ các máy khách trong việc tìm các XenoServer tương ứng mà chúng cần.

- Các máy khách: thuê tài nguyên từ XenoServers. Cũng giống như XenoServers, để tham gia vào hệ thống thì một máy khách phải đăng ký thông tin cá nhân thông qua XenoCorp đầu tiên. Sau đó, nó có thể tìm thấy một XenoServers phù hợp, hoặc thông qua các tài nguyên của hệ thống tìm kiếm tài nguyên hoặc bởi chính nó tự lựa chọn XIS. Các máy khách có thể kiểm tra dịch vụ của máy chủ bằng cách truy vấn trực tiếp. Đối với các tài nguyên cho thuê, máy khách cần thuê từ XenoCorp. Cuối cùng, nó có thể tạo ra các phiên giao dịch tại các máy chủ và triển khai nhiệm vụ của mình.

Nền tảng mở XenoServer có thể được nhìn thấy ở phần trên cùng của hình 3.10. Mặc dù nền tảng này có một thành phần XenoCorp, nhưng chúng có thể cung cấp một dịch vụ thanh toán đáng tin cậy cho các máy trạm của nó, nó không thể cho chúng biết về uy tín của nhau (nghĩa là, nếu chúng có thể là máy chủ/máy trạm tốt hay xấu). Vì thế các máy chủ và các máy trạm có tính chất tự trị, nó cần cung cấp cho người sử dụng (cả máy chủ và máy trạm) một cơ chế để đánh giá uy tín của nhau. XenoTrust được dành riêng cho mục đích này.

Page 74: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

66

Hình 3.10. Nền tảng mở XenoServer trong hệ thống XenoTrust

3.6.1.1. Kiến trúc hệ thống XenoTrust là một thành phần quản lý tin cậy dựa vào sự kiện, nó cho phép những

người tham gia nền tảng mở XenoServer tìm kiếm uy tín của các nút trong hệ thống đạt kết quả như phương pháp gửi quảng bá. Các thành phần mới bổ sung một mực độ mới của sự tin cậy: tin cậy dựa vào uy tín được đặt lên mức hàng đầu trong các mức tin cậy hiện có: tin cậy có căn cứ rõ ràng. Đây là quá trình xác minh các thông tin chứng thực của cá nhân từ việc đăng ký tại XenoCorp. XenoTrust dựa trên các máy chủ để quản lý tin cậy. Máy trạm có thể bổ sung uy tín của các máy chủ sau mỗi giao dịch bằng cách thông báo

Page 75: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

67

cho XenoCorp ý kiến đánh giá của nó. Các máy trạm cũng có thể yêu cầu máy chủ đó cung cấp thông tin về uy tín của các máy chủ khác thông qua hai phương pháp sau:

- Statement advertisement: được sử dụng khi một nút muốn thực hiện báo cáo về uy tín của các nút khác. Một tuyên bố có định dạng (advertiser, subject, token, value(s), timestamp), trong đó advertiser và subject là định danh của nút đánh giá uy tín và nút được đánh giá uy tín, token là khía cạnh thẩm định, value(s) biểu thị điểm số (s) về uy tín và timestamp thiết lập thời gian hiệu lực của yêu cầu.

- Rule-set deployment: được sử dụng để truy vấn uy tín của một nút. Nó có định dạng (principal, property, advertiser, function, [trigger]), trong đó principal là định danh của nút mà uy tín của nó đang được tìm kiếm, property là khía cạnh đánh giá uy tín, advertiser là tập hợp các lời quảng cáo và được xem xét trong suốt quá trình đánh giá, function cung cấp phương thức để tính toán uy tín, [trigger] thiết lập ngưỡng của giá trị thay đổi khi một thông báo được gửi đến máy trạm.

Nói chung, uy tín của một nút được cập nhật trong hệ thống bằng cách tuyên bố quảng cáo. Tập các quy tắc có thể được triển khai trong hai phương pháp: dựa vào sự kiện hoặc dựa vào truy vấn. Trong phương pháp dựa vào sự kiện, sau khi thiết lập, một thông báo sẽ được gửi đến nút đó bất cứ khi nào có sự thay đổi đáng chú ý của nút truy vấn. Trong mô hình truy vấn, XenoTrust chỉ đơn giản trả lại kết quả cho nút yêu cầu. Kiến trúc của XenoTrust được thể hiện ở phần dưới của hình 3.10.

Như đã đề cập, bằng cách sử dụng máy chủ để quản lý tin cậy, hệ thống XenoTrust phải gánh chịu các vấn đề của hệ thống sử dụng máy chủ đó là: thắt cổ chai và thiếu khả năng mở rộng.

3.6.2. Hệ thống EigenRep EgenRep cũng là một hệ thống quản lý tin cậy dựa vào uy tín cá nhân của các nút. Ở

đây, mỗi nút giữ một danh sách uy tín của các nút mà trước đây nó đã giao tiếp. Uy tín toàn cục của các nút được tổng hợp thông qua một thuật toán lan truyền.

3.6.2.1. Uy tín cục bộ Uy tín cục bộ của một nút j qua đánh giá của nút i được tính như sau:

Sij = sat(i, j) – unsat(i, j)

Page 76: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

68

Trong đó, sat(i, j) là số lượng giao dịch đạt yêu cầu mà i đã thực hiện với j và unsat(i, j) là số lượng các giao dịch không đạt yêu cầu mà i đã thực hiện với j. Ví dụ, khi nút i tải một file từ nút j trong mạng chia sẻ file, nếu tập tin là tốt, giao dịch được coi là đạt yêu cầu vì thế sat(i, j) được tăng thêm 1 (đơn vị). Tuy nhiên, nếu tập tin là xấu hay việc tải tệp tin không thành công, giao dịch được coi là không đạt yêu cầu vì thế nó làm tăng usat(i, j) thêm 1 (đơn vị).

3.6.2.2. Uy tín toàn cục Chỉ sử dụng uy tín cục bộ thì chưa đủ để xác định rõ giá trị tin cậy, đặc biệt với

những nút mà nó chưa hề biết đến thì càng rất khó khăn. Kết quả là nó phải hỏi các nút trong hệ thống – những nút đã có hiểu biết về nút đó. Nói cách khác là nó phải tính uy tín toàn cục cho các nút có liên quan để có thể đánh giá đúng giá trị tin cậy mà nó cần thiết lập cho nút đó. Một cách trực quan, uy tín toàn cục của một nút được tính bằng cách tập hợp các uy tín cục bộ. Tuy nhiên, điều đó không hề đơn giản chút nào. Nếu có nhiều nút xấu, và chúng hợp tác với nhau, có khả năng chúng sẽ cung cấp các giá trị uy tín cục bộ cao trong khi các nút khác thì có giá trị thấp. Kết quả là chúng có thể làm hỏng hệ thống tin cậy. Để tránh vấn đề này, uy tín cục bộ đã được bình phương hóa trước khi tập hợp như sau:

cij = j ij

ij

ss

)0,max()0,max(

.

Công thức này đảm bảo uy tín cục bộ bình thường không phải là cao hay thấp. Nó luôn nằm giữa 0 và 1. Tuy nhiên, nếu một nút không có giá trị uy tín với một vài nút (xảy ra khi nút đó vừa gia nhập vào mạng) thì .0)0,max( j ijS Kết quả là cij không xác định.

Giải pháp cho vấn đề này là phải có một tập hợp các nút tin cậy được biết đến toàn cục (ví dụ như các điểm truy cập mạng). Vì vậy, công thức trên sẽ sửa lại như sau:

Trong đó, Pj = 1/|P| là một giá trị uy tín đã được xác định trước của một nút j đã có

uy tín trong số P – các nút đã được biết rõ hoặc các nút đã được tin cậy từ trước. Bình

Page 77: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

69

thường hóa giá trị uy tín cục bộ khi đã được tính, sẽ được lưu trong một véc tơ gọi là véc

tơ uy tín cục bộ chuẩn hóa trên nút cục bộ: .),...,,( 21T

iniii cccc Khi một nút có giá trị tin

cậy khác với các nút khác, công thức sẽ xem xét nó bằng cách thêm vào các giá trị uy tín cục bộ của nút láng giềng của nó như là hệ số trong tính toán giá trị uy tín toàn cục của một nút. Kết quả là, giá trị uy tín toàn cục của nút j qua đánh giá của nút i sẽ được tính như sau:

tij = k

kjik cc ..

Nếu chúng ta kết hợp các giá trị uy tín toàn cục của các nút trong hệ thống vào một

véc tơ uy tín toàn cục it , và đặt C là ma trận [cij], thì it = CT . ic

iN

i

i

t

tt

...2

1

=

NNNN

N

N

ccc

cccccc

..................

......

21

22212

12111

.

iN

i

i

c

cc

...2

1

.

Công thức trên phản ánh kinh nghiệm của các nút và các nút láng giềng của chúng. Tuy nhiên, nếu một nút hoặc các nút láng giềng của nó chưa có kinh nghiệm về một nút không xác định, các nút đó sẽ tiếp tục tham khảo ý kiến của các nút láng giềng của nút

láng giềng của nó. Bằng cách này, công thức trên sẽ thay đổi ..)( 2)2(

iT

i cCt Liên tục như

thế, kiến thức tổng thể của hệ thống có thể được xác định sau n bước, với giá trị đủ lớn của n:

..)().( )1()(i

nTni

Tni cCtCt

Sau các cuộc thảo luận trên, các thuật toán phân phối được đưa ra như trong thuật toán Distributed. Trong đó A và B, tương ứng là một tập hợp các nút tải file từ nút i và một tập hợp các nút mà từ đó nút i đã tải file về. Quá trình tính ti

(k+1) có thể minh họa như hình 3.11.

Page 78: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

70

Hình 3.11: Thuật toán Distributed

3.6.3. Quán lý tin cậy với P-Grid Cả hai mô hình quản lý tin cậy trên đây đều không tốt với các mạng có quy mô lớn

bởi chúng dựa vào các máy chủ hoặc sử dụng các thuật toán lan truyền cho sự quảng bá uy tín giữa các nút trong hệ thống. Mặt khác, một trong những đặc tính nổi bật của hệ thống P2P là khả năng mở rộng. Điều đó giúp ta lưu ý, tại sao không sử dụng hệ thống P2P có cấu trúc để quản lý tin cậy cho mạng P2P? Câu trả lời sẽ được giải đáp trong hệ thống cộng tác của Ge, Luo và Xu [19], nơi mà một hệ thống P2P có cấu trúc P-Grid được sử dụng để triển khai hệ thống quản lý tin cậy.

3.6.3.1. Đánh giá sự tin cậy Trong hệ thống này, uy tín của một nút được đánh giá dựa trên số lượng các khiếu

nại bởi các nút khác và số lượng khiếu nại của nó về các nút khác. Mặc dù đếm số khiếu nại của một nút để đánh giá uy tín có thể không phải là mục đích hàng đầu nhưng nó giúp cho việc xác định các nút xấu một cách nhanh hơn. Lý do là nếu một nút là xấu nó luôn luôn tạo ra một khiếu nại về đối tác của nó, vì nó biết rằng đối tác của nó làm tương tự. Vì vậy, các nút xấu chỉ nhận được nhiều khiếu nại từ các nút khác nhưng cũng có nhiều khiếu nại về các nút khác. Thêm nữa, các nút xấu có một số lượng lớn các khiếu nại so với các nút khác, do đó chúng dễ dàng bị phát hiện. Đặt P biểu thị tập tất cả các nút và c(p, q) biểu thị một khiếu nại được tạo ra bởi p về q. Sau đó, uy tín một nút được xác định bởi công thức sau:

T(p) = |{c(p, q) | q P}| x |{c(q, p) | q P}|.

Page 79: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

71

3.6.3.2. Quản lý tin cậy dựa vào P-Grid Trong cấu trúc của P-Grid, mỗi nút được liên kết với một đường đi của một cây tìm

kiếm nhị phân, và chịu trách nhiệm cho tất cả dữ liệu chứa đường dẫn tìm kiếm như uy tín tiền tố của nó. Nó có thể sử dụng để lưu trữ các khiếu nại của các nút trong hệ thống bằng cách sử dụng định danh của các nút như là các khóa. Một ví dụ được minh họa trong hình 3.12.

Hình 3.12: Hệ thống quản lý tin cậy dựa vào P-Grid

Có tổng số 6 nút trong hệ thống chúng ta quan sát, sắp xếp trong một cây tìm kiếm nhị phân có độ sâu là 2. Nếu chúng ta sử dụng 3 bits để mã hóa định danh của các nút, các khiếu nại về nút 1 và bởi nút 1 khiếu nại được lưu giữ trên cả nút 1 và nút 6 vì đường đi tìm kiếm nhị phân liên quan đến nút 1 và nút 6, 00 là tiền tố của định danh của nút 1, 001. Tương tự như vậy, nút 2 lưu giữ các khiếu nại về nút 2 và nút 3, có tiên tố của định danh là 01; nút 3 và nút 4 lưu giữ các khiếu nại về nút 4 và nút 5, có tiền tố của định danh là 10; nút 5 lưu giữ các khiếu nại về nút 6, có tiền tố của định danh là 11.

Sử dụng cấu trúc P-Grid, các khiếu nại được chèn vào và sau các truy vấn các liên định tuyến được lưu ở các nút. Ví dụ, nếu nút 2 vừa thực hiện giao dịch với nút 6, và muốn đưa ra một khiếu nại về nút 6, nó tạo ra một yêu cầu cho phép chèn khiếu nại với khóa 110. Bằng cách kiểm tra các liên kết định tuyến của nó, nút 2 sẽ gửi yêu cầu đến nút 3. Đổi lại, nút 3 sẽ chuyển tiếp yêu cầu đến nút 5, và tại đây nó lưu giữ các khiếu nại về

Page 80: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

72

nút 6. Một quy trình tương tự được thực hiện để tìm kiếm. Trong đó, việc chèn thêm và tìm kiếm các yêu cầu được định nghĩa như công thức dưới đây:

- insert(t, k, v): Trong đó t là mục tiêu của khiếu nại, k là khóa hay định danh của t, và v là giá trị của khiếu nại.

- query(t, k): trong đó t là mục tiêu và uy tín đã được điều tra; k là khóa hay định danh của t.

Một điều mà bạn đọc sẽ quan tâm khi quan sát trong hình 3.12, ta thấy là nút 1 giữ khiếu nại về chính nó. Nếu nút 1 là một nút xấu, nó có thể thay đổi kết quả. Do đó, các khiếu nại phải được lập chỉ mục ở một vài nơi thay vì chỉ lưu giữ một nơi, bằng cách sử dụng kỹ thuật nhân bản. Bằng cách này, kết quả truy vấn có thể được kiểm tra nhiều lần. Ngoài ra, nó cũng gợi ý rằng uy tín của các nút đưa ra kết quả cũng cần được kiểm tra để tránh vấn đề của một nhóm các nút xấu hợp tác để đưa ra kết quả sai. Mặc dù điều này có thể dẫn đến sự kiểm tra tuần hoàn trong toàn hệ thống, điều này hiếm khi xảy ra vì quá trình chỉ ngừng lại sau một vài bước khi kết quả nhận được là phù hợp.

Page 81: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

73

Chương 4: MÔ PHỎNG MẠNG NGANG HÀNG VỚI PEERSIM

Trong chương này, chúng ta sẽ tìm hiểu nền tảng PeerSim – một nền tảng mã nguồn mở dùng để mô phỏng mạng ngang hàng và xây dựng các ứng dụng chạy trên nền P2P. Đặc biệt, chúng ta sẽ tìm hiểu về ứng dụng BitTorrent (một ứng dụng đã được xây dựng trên nền tảng PeerSim) cho việc chia sẻ dữ liệu.

4.1. Tổng quan về PeerSim

4.1.1. Giới thiệu về PeerSim

PeerSim là một nền tảng mã nguồn mở được sử dụng để mô phỏng mạng ngang hàng và xây dựng các ứng dụng chạy trên nền P2P. PeerSim được phát triển tại phòng nghiên cứu khoa học máy tính, trường đại học Bologna và ngôn ngữ Java là ngôn ngữ được dùng để phát triển nền tảng. Mã nguồn của PeerSim có thể được tìm thấy và tải về từ trang chủ của Source Forge: http://peersim.sf.net.

4.1.2. Các gói dịch vụ trong PeerSim Trong PeerSim, người ta đã tổng quát hóa các giao thức peer-to-peer mà cho phép

bất kỳ các thiết bị được kết nối trên mạng từ cell phone đến PDA, từ PC đến server – để truyền thông và cộng tác các peer lại với nhau. Các giao thức trong PeerSim thì độc lập với ngôn ngữ và được triển khai trong nhiều môi trường khác nhau.

Các gói dịch vụ trong PeerSim bao gồm:

- peersim: thư mục chính của PeerSim, chứa các gói dịch vụ con trong PeerSim.

- peersim.cdsim: cài đặt các giao thức cho việc mô phỏng dựa vào mô hình cycle-driven – một trong hai mô hình của PeerSim.

- peersim.config: khởi tạo các file cấu hình hệ thống.

- peersim.core: cài đặt các lớp cơ bản.

- peersim.dynamics: các lớp kiểm soát việc khởi tạo hệ thống mạng hoặc điều chỉnh hệ thống trong quá trình mô phỏng.

- peersim.edsim: cài đặt các giao thức cho việc mô phỏng dựa vào mô hình event-driven – một trong hai mô hình của PeerSim.

Page 82: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

74

- peersim.graph: cấu trúc dữ liệu biểu diễn trên đồ thị, cài đặt các thuật toán vào/ra.

- peersim.rangesim: cài đặt phạm vi mô phỏng trong PeerSim, thiết lập giá trị cho các biến.

- peersim.reports: cài đặt các lớp chứa các đối tượng cung cấp thông tin cho hệ thống mạng.

- peersim.transport: cài đặt các lớp và các giao diện mô phỏng các giao thức truyền thông giao tiếp trong mạng.

- peersim.util: cài đặt các lớp tiện ích.

4.2. Ứng dụng BitTorrent 4.2.1. Giới thiệu về BitTorrent

BitTorrent là một giao thức chia sẻ tài nguyên trên mạng P2P, đồng thời cũng là tên của một chương trình chia sẻ tài nguyên trên mạng P2P được phát triển bởi lập trình viên Bram Cohen. BitTorrent dùng để tải về những dữ liệu lớn mà không tốn chi phí máy chủ và băng thông mạng. Chương trình BitTorrent nguyên thuy được viết bằng ngôn ngữ lập trình Python và mã nguồn của chương trình BitTorrent phiên bản 4.0 được phát hành dưới dạng mã nguồn mở tuân theo bản quyền sử dụng mã nguồn BitTorrent. BitTorrent có nhiều biến thể khác nhau được viết bằng các ngôn ngữ lập trình khác nhau, chạy trên các hệ điều hành khác nhau. Chương trình BitTorrent xây dựng trên nền tảng PeerSim được viết bằng ngôn ngữ lập trình Java và chạy trên môi trường hệ điều hành Linux.

4.2.2. Cách thức hoạt động của BitTorrent

Hình 4.1: Mô hình mạng sử dụng trong BitTorrent

Page 83: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

75

BitTorrent giảm tải cho nút hạt giống bởi vì tài nguyên được tải về từ các người dùng khác nhau. Các mảnh của tệp được lưu giữ trên các máy ngang hàng khác nhau bởi sự phân phối từ máy gieo hạt. Các máy ngang hàng muốn tải tệp về thì chúng sẽ trao đổi cho nhau các mảnh của tệp. Máy gieo hạt chỉ gửi một lần các mảnh của tệp cho tất cả các máy ngang hàng trong mạng và các máy ngang hàng tự bổ sung các mảnh còn thiếu của tệp cho nhau.

Giao thức BitTorrent định nghĩa một phương thức để phổ biến và chia sẻ tệp trên mạng. Trước khi BitTorrent ra đời đã tồn tại các giao thức P2P có khả năng cho phép một nhóm máy tính trên mạng chia sẻ tệp với các máy tính khác nhóm mà không cần phải sử dụng một máy chủ để làm kho lưu trữ trung tâm. BitTorrent là một cải tiến từ các giao thức đồng đẳng trước. Giao thức BitTorrent có một nguyên lý hoạt động chặt chẽ để có khả năng tùy biến, tin cậy và chi phí duy trì danh sách các máy tính chia sẻ tệp tốt hơn các giao thức P2P trước đó. Do giao tiếp theo chuẩn TCP/IP nên giao thức BitTorrent có thể hoạt động trên đường truyền Internet thông thường.

BitTorrent client là một chương trình hoạt động theo giao thức BitTorrent. Mỗi BitTorrent client có khả năng so sánh, yêu cầu, và vận chuyển tệp trên mạng sử dụng giao thức BitTorrent. Tệp có thể chứa bất kỳ thông tin nào, bao gồm cả văn bản, âm thanh, phim và nội dung đã được mã hóa.

4.2.3. Tạo và phát hành tệp Torrent lên mạng Để chia sẻ một tệp hay nhiều tệp bằng giao thức BitTorrent, đầu tiên cần tạo tệp

“torrent”. Mỗi tệp torrent chứa thông tin miêu tả tệp muốn chia sẻ, và thông tin về máy tính cung cấp bản gốc của tệp. Thông tin chi tiết lưu trên máy tính theo dõi sẽ khác nhau tuỳ thuộc vào phiên bản của giao thức BitTorrent, nhưng dù ở phiên bản nào tệp “torrent” luôn luôn có đuôi mở rộng là .torrent. Cụ thể thì một tệp torrent chứa thông tin loan báo (địa chỉ URL của máy vi tính theo dõi), và thông tin về tên tệp được chia sẻ, kích thước mảnh, chiều dài khóa, chiều dài tệp, và vé thông hành để tải tệp. Một tệp torrent có thể chứa thông tin về một tệp hoặc nhiều tệp. Máy tính đã tải về tệp xong có thể lựa chọn hoạt động như máy gieo hạt, cung cấp bản sao hoàn chỉnh của tệp. Sau khi tệp torrent được tạo, một đường dẫn để tải tệp về từ máy đó được đặt lên trang web, và tệp torrent được đăng ký với máy theo dõi (tiếng Anh: tracker). Máy theo dõi chứa một danh sách các máy

Page 84: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

76

tính hiện thời đang tải tệp về. Máy ngang hàng đang cung cấp tệp hoàn chỉnh được gọi là máy gieo hạt (seeder).

4.2.4. Tải tệp Torrent và chia sẻ tệp Dùng một trình duyệt Internet bất kì, như FireFox, duyệt trang web có danh sách

các tệp torrent, tải nó về, sau đó dùng chương trình BitTorrent client mở tệp đó ra. Sau khi đã mở tệp torrent, chương trình BitTorrent sẽ kết nối với máy theo dõi, máy theo dõi sẽ cung cấp cho nó một danh sách các máy tính đang tải tệp này. Một nhóm các thành viên của một mạng BitTorrent để tải về cùng một tệp được gọi là quần thể. Việc chia sẻ được bắt đầu từ máy gieo hạt. Các máy tính kết nối đầu tiên sẽ hướng trực tiếp tới máy gieo hạt để bắt đầu tải về các mảnh của tệp. Giao thức BitTorrent chia tệp cần tải về thành các phần nhỏ có kích thước bằng nhau, ví dụ một tệp có kích thước 4,37 GB thường sẽ bị chia thành các mảnh nhỏ có kích thước là 4 MB (4096 kB) hoặc nhỏ hơn nữa. Khi máy tính nhận được các mảnh này nó sẽ dùng giải thuật băm để kiểm tra xem mảnh nó tải về có bị lỗi hay không.

Khi máy tính kết nối vào quần thể, các máy tính sẽ bắt đầu chia sẻ tệp với nhau. Các máy tính sẽ chia sẻ các mảnh với nhau thay vì chia sẻ trực tiếp với máy gieo hạt, vì vậy số lượng máy trong quần thể chia sẻ theo giao thức BitTorrent có thể phát triển rất nhanh. Vì nguyên lý hoạt động của giao thức rất chặt chẽ nên các máy tự chọn máy ngang hàng có kết nối tốt nhất để tải về các mảnh nó cần. Một điểm mới đột phá của giao thức BitTorrent so với các giao thức P2P trước đó là nguyên lý “mảnh hiếm”. Theo giao thức BitTorrent máy khách luôn luôn yêu cầu các mảnh hiếm nhất, mảnh này ít máy tính trong quần thể có nhất. Với nguyên lý yêu cầu mảnh hiếm nhất giao thức BitTorrent làm giảm tải của các máy khách trong việc đáp ứng các yêu cầu gửi đến nó, và không còn hiện tượng thắt cổ chai.

Giao thức BitTorrent có một nguyên lý là “tín nhiệm mở” tạo nên “nhóm máy ưa thích”. Máy ưa thích là một tập các máy ngang hàng trong quần thể cung cấp băng thông tải lên lớn cho các máy khách có yêu cầu tải về. Tín nhiệm mở cho phép các chương trình BitTorrent kiểm tra định kỳ xem máy nào trong quần thể nên lựa chọn để tải về. Nếu một máy ngang hàng ngoài nhóm ưu thích có băng thông phục vụ các máy khác trong quần thể tốt hơn một máy trong nhóm ưa thích thì nó đẩy máy phục vụ kém hơn ra khỏi nhóm

Page 85: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

77

ưa thích và thay thế vào vị trí đó. Nguyên lý này làm cho các máy khách luôn luôn tải về từ nhóm máy ngang hàng phục vụ tốt nhất.

Page 86: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

78

KẾT LUẬN

Sau quá trình làm khóa luận, em đã rút ra được nhiều kiến thức bổ ích và nhiều bài học kinh nghiệm cho bản thân.

Về lý thuyết, em đã nắm vững được những khái niệm cơ bản trong an toàn dữ liệu: mã hóa dữ liệu, chữ ký điện tử, bảo mật dữ liệu. Tìm hiểu đề tài này giúp em hiểu rõ hơn về hệ thống mạng ngang hàng P2P: kiến trúc của hệ thống, một số dạng tấn công vào hệ thống, vấn đề chia sẻ dữ liệu giữa các nút trong mạng. Và quan trọng hơn, được nghiên cứu hai mô hình tin cậy sử dụng để đánh giá độ tin cậy của một nút trong mạng: mô hình tin cậy dựa vào chứng thực và mô hình tin cậy dựa vào uy tín. Nghiên cứu các hệ thống cộng tác sử dụng các mô hình tin cậy đó.

Phần cuối của khóa luận nghiên cứu về nền tảng mã nguồn mở PeerSim dùng để mô phỏng mạng ngang hàng và xây dựng trên nó các ứng dụng chạy trên nền P2P. Hiện nay, các ứng dụng được xây dựng trên nền tảng PeerSim đều chưa áp dụng các mô hình tin cậy nêu trong khóa luận này. Trong tương lai em sẽ phát triển một ứng dụng chạy trên nền P2P sử dụng nền tảng PeerSim và áp dụng một trong hai mô hình tin cậy đã được nghiên cứu.

Bên cạnh những lý thuyết đã nắm được, em còn học được những bài học vô cùng quý giá với bản thân để bổ sung vào kiến thức sống hàng ngày như: cách trình bày một báo cáo khoa học, cách ăn nói trước đám đông. Những bài học này sẽ là những kiến thức khởi nguồn của bước ngoạt cuộc đời trước khi em trở thành một con người của xã hội.

Page 87: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

TÀI LIỆU THAM KHẢO

1. http://peersim.sourceforge.net/doc/index.html.

2. http://peersim.sourceforge.net.

3. http://en.wikipedia.org/wiki/Peer-to-peer.

4. Phan Đình Diệu, Giáo trình lý thuyết mật mã và an toàn thông tin, Nhà xuất bản Đại Học Quốc Gia Hà Nội.

5. Trịnh Nhật Tiến, Giáo trình an toàn dữ liệu, Đai học Công nghệ - Đại học Quốc

Gia Hà Nội, 2008.

6. Phan Anh, Nguyễn Đình Nghĩa, Bài giảng tổng quan về mạng ngang hàng – Đại

học Công Nghệ - Đại học Quốc Gia Hà Nội.

7. Quang Hieu Vu, Mihai Lupu, Beng Chin Ooi, Peer-to-Peer Computing: Principles and Applications.

8. D.Karger, F.Kaashoek, I. Stoica, R. Morris, H. Balakrishnan, Chord: a scalable peer-to-peer lookup service for internet applications, in Proceedings of the ACM SIGCOMM Conference, pp. 149-160, 2001.

9. S. Ratnasamy, P. Francis, M. Handley, R. Karp, S. Shenker, A scalable content-addressable network, in Proceedings of the ACM SIGCOMM Conference, pp. 161-172, 2001.

10. A. Rowstron, P. Druschel, Pastry: scalable, distributed object location and routing for largescale peer-to-peer systems, in Proceedings of the 18th IFIP/ACM International Conference of Distributed Systems Platforms (Middleware), pp. 329-350, 2001.

11. H.V. Jagadish, B.C. Ooi, Q.H. Vu, BATON: a balanced tree structure for peer-to-peer networks, in Proceedings of the 31st International Conference on Very Large Databases (VLDB), pp. 661-672, 2005.

Page 88: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

12. E. Sit, R. Morris, Security considerations for peer-to-peer distributed hash tables, in Proceedings of the 1st International Workshop on Peer-to-Peer Systems (IPTPS), pp. 261-269, Cambridge, MA, 2002.

13. B. Cooper, M. Bawa, N. Daswani, H. Garcia-Molina, Protecting the pipe from malicous peers. Technical report, Computer Sciences Dept, Stanford University, 2002.

14. N. Daswani, H. Garcia-Molina, Query-flood DoS attacks in Gnutella, in Proceedings of the 9th ACM Conference on Computer and Communications Security (CCS), pp. 181-192, Washington, DC, 2002.

15. P. Keyani, B. Larson, M. Senthil, Peer pressure: Distributed recovery from attacks in peer-to-peer systems. Lect. Notes Comput. Sci. 2376, 306-320 (2002).

16. Freenet, http://feenet.sourceforge.net

17. M. Waldman, L. Cranor, A. Rubin, Publius, in Peer-to-Peer: Harnessing the Power of Disruptive Technologies (O’Reilly & Associates, 2001), pp. 145-158.

18. OceanStore, http://oceanstore.cs.berkeley.edu/

19. F. Dabek, M.F. Kaashoek, D. Karger, R. Morris, I. Stoica, Wide-area cooperative storage with CFS, in Proceedings of the 18th ACM Symposium on Operating Systems Principles (SOSP), 2001.

20. P. Devanbu, M. Gertz, C. Martel, S.G. Stubblebine, Authentic data publication over the internet. J. Comput. Secur. 11(3), 291-314 (2003).

21. M. Lupu, J. Li, B.C. Ooi, S. Shi, Clustering wavelets to speed-up data dissemination in structured P2P MANETs, in Proceeding of the 23rd IEEE International Conference on Data Engineering (ICDE), 2007.

22. R. Housley, W. Ford, W. Polk, D. Solo, Internet x.509 public key infrastructure certificate and cr1 profile, in RFC 2459, 1999.

23. H. Weatherspoon, J. Kubiatowicz, Naming and integrity: self-verifying data in peer-to-peer systems, in Proceedings of the International Workshop on Future Directions in Distributed Computing (FuDiCo), pp. 142-147, 2003.

Page 89: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

24. H. Weatherpoon, J. Kubiatowicz, Erasure coding vs. replication: a quantitative comparison, in Proceedings of the 1st International Workshop on Peer-to-Peer Systems (IPTPS), March 2002.

25. SETI@home, http://setiathome.ss1.berkeley.edu/

26. D. Carroll, C. Rahmlow, T. Psiaki, G. Wojtaszczyk, Distributing science. http://boinc.berkeley.edu/trac/wiki/BoincPapers, 2005.

27. Folding@home, http://folding.stanford.edu

28. W. Du, J. Jia, M. Mangal, M. Murugesan, Uncheatable grid computing, in Proceedings of the 24th International Conference on Distributed Computing Systems (ICDCS), pp. 4-11, Tokyo, Japan, March 2004.

29. M. Feldman, K. Lai, J. Chuang, I. Stoica, Quantifying disincentives in peer-to-peer networks, in Proceedings of the 1st Workshop on Economics of Peer-to-Peer Systems (P2PEcon), Berkeley, CA, June 2003.

30. G. Hardin, The tragedy of the commons. Science 162, 1234-1248 (1986).

31. R. Axelrod, The Evolution of Cooperation (Basic Books, New York, 1984).

32. M.A. Nowak, K. Sigmund, Evolution of indirect reciprocity by image scoring. Nature 393, 573-577 (1998).

33. J. Feigenbaum, C. Papadimitriou, R. Sami, S. Shenker, A BGP-based mechanism for lowest-cost routing, in Proceedings of the 21st ACM Symposium on Principles of Distributed Computing (PODC), pp. 173-182, 2002.

34. J. Feigenbaum, C. Papadimitriou, S. Shenker, Sharing the cost of multicast transmmissions. J. Comput. Syst. Sci. 63, 21-41 (2001).

35. T.-W. Ngan, D. Wallach, P. Druschel, Enforcing fair sharing of peer-to-peer resources, in Proceedings of the 2nd International Workshop on Peer-to-Peer Systems (IPTPS), Berkeley, CA, USA, 2003.

36. Q. Sun, H. Garcia-Molina, SLIC: a selfish link-based incentive mechanism for unstructured peer-to-peer networks, in Proceedings of the 24th International Conference on Distributed Computing Systems (ICDCS), pp. 506-515, Tokyo, Japan, March 2004.

Page 90: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

37. T.E. Condie, S.D. Kamvar, H. Garcia-Molina, Adaptive peer-to-peer Computing, August 2004.

38. K. Berket, A. Essiari, A. Muratas, PKI-based security for peer-to-peer information sharing, in Proceedings of the 4th IEEE International Conference on Peer-to-Peer Computing, August 2004.

39. D.A. Agarwal, O. Chevassut, M.R. Thompson, G. Tsudik, An integrated solution for secure group communication in wide-area networks, in Proceedings of the 6th IEEE Symposium on Computers and Communications, pp. 22-28, Hammamet, Tunisia, July 2001.

40. The TLS Protocol Version 1.0. IETF RFC 2246. http:/www.ietf.org/rfc/rfc2246.txt.

41. M.R. Thompson, A. Essiari, S. Mudumbai, Certificate-based authorization policy in a PKI environment. ACM Trans. Inf. Syst. Secur. 6(4), 566-588 (2003).

42. M. Deutsch, Cooperation and trust: some theoretical notes, in Nebraska Symposium on Motivation, 1962.

43. M. Deutsch, The Resolution of Conflict (Yale University Press, New Haven, 1973).

44. N. Luhmann, Trust and Power (Wiley, Chichester, 1979).

45. B. Barber, Logic and Limits of Trust (Rutgers University Press, New Jersey, 1983).

46. D. Gambetta, Trust (Blackwell, Oxford, 1990).

47. M. Deutsch, The Resolution of Conflict (Yale University Press, New Haven, 1973).

48. K. Aberer, Z. Despotovic, Managing trust in a peer-2-peer information system, in Proceedings of the 10th ACM International Conference on Information and Knowledge Management (CIKM), 2001.

49. International Telegraph and Telephone Consultative Committee (CCITT). The Directory Authentication Framework, Recommendation X. 509. 1993 update.

Page 91: Bảo Mật Tính Riêng Tư Của Dữ Liệu Trong Mạng Ngang Hàng P2P

50. M. Blaze, J.Feigenbaum, Decentralized trust management, in Proceedings of the IEEE Symposium on Security and Privacy (S&P), 1996.

51. Y.-H. Chu, J. Feigenbaum, B. LaMacchia, P. Resick, M. Strauss, REREREE: trust management for web applications. Comput. Netw. ISDN Syst. 29(8-13), 953-964 (1997).

52. M. Blaze, J. Feigenbaum, J. Ioannidis, A. Keromytis, The KeyNote trust management system, version 2. RFC-2704. IETF, 1999.

53. P. Zimmermann, PGP User’s Guide (MIT Press, Cambridge, 1994).

54. J. Sabater, C. Sierra, Regret: a reputation model for gregarious societies, in Proceedings of the 4th Workshop on Deception, Fraud and Trust in Agetn Societies, 2001.

55. J. Pujol, R. Sanguesa, Extracting reputation in multi agent systems by means of social network topology, in Proceedings of the 1st International Joint Conference on Autonomous Agents and Multi-Agent Systems (AAMAS), 2002.

56. K. Aberer, P-Grid: a self-organizing access structure for P2P information systems, in Proceedings of the 9th International Conference on Cooperative Information Systems (CoopIS), 2001.

57. S. Kamvar, M. Schlosser, H. Garcia-Molina, Eigenrep: reputation management in P2P networks, in Proceedings of the 12th World Wide Web Conference (WWW), 2003.

58. K. Aberer, Z. Despotovic, Managing trust in a peer-2-peer information system, in Proceedings of the 10th ACM International Conference on Information and Knowledge Management (CIKM), 2001.