Khóa luận Bảo mật tính riêng tư của dữ liệu trong mạng ngang hàng P2P

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  
ii  
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 htầ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.  
iii  
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 hi.......................................................................................... 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ù hp................................................................................................. 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 CY...................................................................................... 38  
3.1. Các khái niệm................................................................................................................. 38  
3.1.1. Định nghĩa sự tin cậy............................................................................................... 38  
iv  
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  
v
DANH SÁCH CÁC TỪ VIẾT TẮT  
TỪ VIẾT TẮT  
CBS  
DoD  
TỪ CHƯA VIẾT TẮT  
Commitment-Based-Sampling  
Denial-of-Service  
DS  
Drop Strategy  
IAS  
JXTA  
P2P  
Incoming Allocation Strategy  
Juxtapose  
Peer-to-Peer  
PIPE  
RDP  
SGL  
Peer-to-Peer Information Preservation and Exchange network  
Random Discovery Ping  
Sercure Group Layer  
SLIC  
TTL  
Selfish Link-based InCentives  
Time-To-Live  
VB  
Verifiable B  
XIS  
XenoServer Information Service  
vi  
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  
vii  
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 ….  
1
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.  
2
1.2. So sánh mô hình P2P với mô hình Client/Server truyền thống  
P2P  
Client/Server  
- 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.  
- 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ủ.  
Tổng quan  
- Không cần máy chủ.  
- Tốc độ truy cập nhanh.  
- Các máy khách tchia sẻ tài nguyên - Khả năng mở rộng cao.  
cho nhau.  
- Hoạt động với bất kì loại ứng dụng  
- Khi mạng càng được mở rộng thì khnào.  
Ưu điểm  
năng hoạt động của hệ thống càng tốt.  
- Chi phí thấp.  
- Sử dụng được với các ứng dụng  
chia sẻ cơ sở dữ liệu.  
- Dễ cài đặt và bảo trì.  
- Đáng tin cậy hơn (có máy chủ  
- Thuận lợi cho việc chia sẻ file, máy in, riêng).  
ổ đĩa quang, ….  
- Mức độ an toàn cao.  
- Chậm.  
- Cần máy chủ riêng.  
- Không tốt cho các ứng dụng cơ sở dữ - Dễ gặp hiện tượng thắt cổ chai.  
liệu.  
- Chi phí cao.  
- Phức tạp trong việc bảo trì, duy trì  
hoạt động của mạng.  
Nhược điểm  
- Độ tin cậy thấp.  
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.  
3
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 gifile 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 chtrung tâm, khi có yêu cầu tìm  
kiếm, máy tính sẽ hỏi máy chtrung 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  
4
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 dliệ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  
5
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.  
….  
6
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  
7
Đâ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.  
8
- 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  
9
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ã ngun mở). JXTA được sử dụng cho máy tính cá nhân, máy tính lớn, điện  
10  
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ẽ.  
11  
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.  
12  
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 trvà 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  
13  
đó 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 vn 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  
la 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 bng 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ó thlà 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ó  
thtừ 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  
14  
đó 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 tmộ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ó thnó 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  
15  
bởi các nút xấu. Gisk 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 bthấ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 sgử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ó thchọ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 tnú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  
k. Trong khi hầu hết các giải pháp đơn giản sdụng phương pháp lưu trữ dư thừa  
16  
(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à gimạ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ó btấ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ó slàm cho băng thông của một  
nút btiê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.  
17  
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 bGnutella-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 btrong 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 blớ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ẽ chcó 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  
i  
(1)*k)  
(1<= i <= n), sau đó nút đó sẽ nhận (  
truy vấn từ nút láng giềng thi.  
n
j  
j1  
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  
18  
(1)*k  
giềng. Nói cách khác, một nút n nút láng giềng sẽ chấp nhận  
(1)*k  
truy vấn từ mỗi  
n
nút láng giềng. Với nút láng giềng có ít hơn  
được nhường cho các nút láng giềng khác.  
truy vấn, thì khả năng xử lý còn lại  
n
- 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  
tnú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  
tY và số lượng mỗi truy vấn riêng biệt 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ố  
qi  
như nhau, và do đó X sẽ chấp nhận (  
*m ) truy vấn từ truy vấn loại i. Kỹ thuật  
j
ql  
l1  
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ẽ  
m
chấp nhận  
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  
s
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á trthờ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ố nhcá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  
19  
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 skết nối giữa các nút có bị giảm hay không.  
Trong gii pháp này, cần có một nút duy trì thông tin của ccá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 tmạ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 mng 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  
20  
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ì sláng giềng có hiệu lực cho  
mạng hoạt động và slá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  
21  
đố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à hsẽ 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á thi có giá trị băm Hi thu được  
bằng cách áp dụng hàm băm h trên bthi. 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 t2 có giá trị băm được tính: H12 = h(H1|| H2). Thông điệp cho 4 bHr.  
Hình 2.1(a): Cây băm Merkle  
22  

Tải về để xem bản đầy đủ

pdf 91 trang yennguyen 06/04/2025 170
Bạn đang xem 30 trang mẫu của tài liệu "Khóa luận Bảo mật tính riêng tư của dữ liệu trong mạng ngang hàng P2P", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pdfkhoa_luan_bao_mat_tinh_rieng_tu_cua_du_lieu_trong_mang_ngang.pdf