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 từ chối dịch vụ , tấn công lưu trữ và phục hồi ,tấn công định tuyến, Tấn công
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
- -CÁC VẤN ĐỀ BẢO MẬT TRONG MẠNG NGANG HÀNG
Nhóm sinh viên : Thân Văn Dũng
Nguyễn Trường Giang
Lê Duy Mạnh Hoàng Nguyễn Thanh Tùng
Trang 2Hà Nội, tháng 06/2016
MỤC LỤC
MỤC LỤC ii
LỜI NÓI ĐẦU iii
TỔNG QUAN VỀ MẠNG NGang hàng 1
Khái niệm về mạng ngang hàng (peer to peer – P2P) 1
Khái niệm 1
Đặc điểm 1
Ưu nhược điểm của mô hình P2P so với Client-Server 2
Mô hình mạng P2P 3
Mô hình mạng ngang hàng thuần túy 3
Mô hình lai ghép 4
CÁC PHƯƠNG THỨC TẤN CÔNG MẠNG NGANG HÀNG 6
Tấn công từ chối dịch vụ DoS 6
Tấn công định tuyến 9
Tấn công làm sai lệch đường đi trong định tuyến 9
Tấn công làm cập nhật sai bảng định tuyến 9
Phân vùng mạng định tuyến không chính xác 10
Tấn công lưu trữ và phục hồi 10
CÁC GIẢI PHÁP BẢO MẬT CHO MẠNG NGANG HÀNG 7
Xác thực và toàn vẹn dữ liệu 7
Các truy vấn xác thực trong cớ sở dữ liệu quan hệ 7
Tự xác thực dữ liệu với mã Erasure 9
Xác thực tính toàn vẹn của tính toán 10
Chia sẻ dữ liệu giữa các nút trong mạng 11
Hệ thống dựa vào hạn ngạch 13
Hệ thống dựa vào trao đổi 14
Kiểm soát sự phân bổ 14
Kỹ thuật dựa vào sự khích lệ (SLIC) 15
Topo mạng phù hợp 17
Bảo mật dựa vào hạ tầng cơ sở và khóa công khai 19
Trang 3KẾT LUẬN 13 TÀI LIỆU THAM KHẢO 27
LỜI NÓI ĐẦU
Bên cạnh kiến trúc mạng Client – Server truyền thống, mạng P2P hay còn gọi là mạng ngang hàng đang phát triển ngày càng mạnh mẽ Mạng P2P có rất nhiều những ưu điểm như tiết kiệm chi phí cho việc thuê các Server, có tốc độ chia sẻ file cao, có thể dễ dàng hợp tác
đề bảo mật dữ liệu trong mạng P2P trở thành một đề tài quan trọng cần phải giải quyết
Với đề tài “Các vấn đề bảo mật trong mạng ngang hàng”, nhóm chúng em xin được
trình bày thành 3 phần chính:
Phần 1: Tổng quan về mạng ngang hàng Phần này trình bày khái niệm thế nào mạng
ngang hàng, phân tích các ưu nhược điểm của nó trên quan điểm so sánh với mô hình truyền thống Client – Server
Phần 2: Các phương thức tấn công mạng ngang hàng Phần này nêu ra các vấn đề về
bảo mật dữ liệu trong mạng ngang hàng cùng với đó là các phương thức tấn công khai thác những vấn đề bảo mật đó
Phần 3: Các giải pháp bảo mật cho mạng ngang hàng: Phần này trình bày các giải
pháp nhằm bảo mật tính riêng tư của dữ liệu trong mạng ngang hàng
Nghiên cứu của nhóm vẫn chỉ dừng lại ở mức độ lý thuyết và vẫn còn nhiều vấn đề chưa tốt Mong nhận được sự góp ý của thầy cô và các bạn
Nhóm sinh viên
Trang 4Tuy các dịch vụ thư điện tử hay DNS đã xuất hiện từ lâu trên Internet nhưng khái niệm mạng ngang hàng hay tính toán ngang hàng (P2P – Peer-to-Peer) thì mới được đưa ra gần đây Mạng ngang hàng là những hệ phân tán với đặc thù là không tồn tại trong nó một
cơ cấu điều khiển tập trung hoặc một tổ chức có phân cấp Trong một hệ thống thuần túy ngang hàng, chương trình chạy trên mỗi điểm nút có vai trò hoàn toàn tương đương và bình đẳng với nhau Tính chất này đối lập hoàn toàn với kiến trúc client – server truyền thống nơi
có một hoặc một số điểm nút chỉ đóng vai trò cung cấp dịch vụ (servers) và các điểm nút còn lại chỉ sử dụng dịch vụ (clients)
Đặc điểm
Các mạng ngang hàng ngày nay thường mang một số đặc trưng phổ biến sau :
• Các điểm nút trong mạng có thể nhận biết lẫn nhau Nghĩa là có một cơ chế nào đó giúp cho một điểm nút khi tham gia vào mạng có thể xác định một máy khác cũng là thành viên của mạng Từ đó chúng có thể định vị được nhau, gửi thông điệp tới nhau và nhận thông điệp từ nhau
• Các điểm nút tạo ra một mạng kết nối ảo và ở một mức trừu tượng cao hơn so với các
cơ cấu tổ chức như: tường lửa (firewall), NAT (Network Address Translation), mạng con (subnet) Mỗi điểm nút có thể nằm trong các mạng con khác nhau, chịu những cơ chế tổ chức, kiểm soát và giới hạn hoàn toàn riêng biệt Tuy nhiên khi đã tham gia vào mạng, chúng sẽ tổ chức được những mối liên kết logic với nhau thông qua việc sử dụng các dịch vụ hoặc chạy các ứng dụng ở tầng cao hơn so với những cơ chế vừa được nhắc tới Tạo ra một mạng kết nối logic giữa những điểm nút bị biệt
Trang 5lập hóa trong các mạng riêng biệt chính là ý tưởng xuyên suốt nhất của kiến trúc ngang hàng
• Mỗi điểm nút tự nó có thể vừa đóng vai trò của client vừa đóng vai trò của server Điều này thể hiện rõ vai trò bình đẳng và độc lập của từng điểm nút Mọi điểm nút vừa có thể cung cấp dịch vụ cho các điểm nút khác vừa có thể sử dụng dịch vụ của một hay nhiều điểm nút còn lại
• Xuất hiện một số nhóm điểm nút liên kết với nhau để chia sẻ dữ liệu và cộng tác với nhau trong xử lý Đây là sự tổ hợp lại các điểm nút có những mối liên hệ chặt chẽ và mang tính tương tác gần gũi hơn trong quá trình hoạt động của ứng dụng mạng
Ưu nhược điểm của mô hình P2P so với Client-Server
Ưu điểm
- Không cần server riêng, các client chia sẻ tài nguyên 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
- Đáng tin cậy hơn (có server riêng)
- Mức độ an toàn cao nhất, dễ dàng quản ly do các hoạt động đều thông qua server
Nhược điểm
- Chậm
- Không tốt cho các ứng dụng CSDL
Trang 6Mô hình mạng P2P
Mô hình mạng ngang hàng thuần túy
Một mạng ngang hàng thuần túy hoàn toàn không phụ thuộc vào server.Một ứng dụng mạng ngang hàng thuần túy có khả năng tự động tìm các nút khác một cách linh hoạt,
ko cần sự giúp đỡ của server Việc liên lạc giữa các nút bao gồm download và upload các file, các hoạt động trực tuyến, gửi yêu cầu – đáp trả yêu cầu,… Tính năng này của mô hình mạng ngang hàng phá vỡ các phương thức truyền thống trong mô hình client/server Mạng ngang hàng thuần túy cho phép người dùng thiết lập những quy tắc cho chính họ, thiết lập môi trường mạng cho chính họ
Mạng ngang hàng thuần túy cung cấp các tính năng “nối và chạy” khi làm việc với internet, bạn chỉ cần kết nối với internet là có thể sử dụng các tiện ích mạng ngang hàng Một lợi thế khác của thuần mạng ngang hàng là mô hình không chỉ hoạt động hiệu quả trên internet mà còn hoạt động hiệu quả trên mạng cục bộ Lan, intranet Tuy nhiên, vấn đề khó khăn nhất với mô hình mạng ngang hàng thuần túy là việc tìm các nút trong mạng Do không có bất kỳ trung tâm quản trị quản lý các nút khi các nút đăng nhập, người dùng buộc phải tự mình xác định các nút khác
Hình 1: Mô hình mạng ngang hàng thuần túy
Trang 7để trả về địa chỉ các nút thỏa mãn yêu cầu Sau đó, các nút sẽ kết nối với nhau và lúc này máy chủ sẽ không đóng bất kỳ vai trò nào, việc cung cấp/sử dụng tài nguyên/dịch vụ hoàn toàn giữa các nút với nhau
Hình 2: Mô hình mạng ngang hàng lai ghép
Trong mô hình chia sẻ mạng ngang hàng lai ghép, nhằm tăng tối đa số người dùng, người ta thường sử dụng nhiều server chỉ mục Tùy theo vai trò cũng như sự liên kết giữa
Trang 8các serve, người ta chia thành nhiều kiến trúc, trong báo cáo này, chúng tôi tập trung nghiên cứu về 2 kiến trúc sau:
Kiến trúc liên kết chuỗi: Các server liên kết với nhau thành chuỗi để trả lời các truy
vấn của điểm nút Khi một điểm nút đăng nhập, chỉ có một server cập nhật chỉ mục thông tin
về nút đó Khi 1 điểm nút yêu cầu tìm kiếm tài nguyên, nếu máy chủ cục bộ không tìm thấy
số lượng tài nguyên đáp ứng đủ yêu cầu, nó sẽ chuyển yêu cầu đó đến các server khác trong chuỗi Các server khác sẽ tìm kiếm trong chỉ mục của chính nó và trả lại kết quả cho server đầu tiên Việc tìm kiếm được chuyển đi giữa các server cho đến khi nào kết quả thỏa mãn yêu cầu (về số lượng kết quả) hoặc các server đều đã tham gia tìm kiếm Trong mô hình này, việc đăng nhập thực hiện nhanh do chỉ diễn ra ở trên một server nhưng việc tìm kiếm tốn nhiều thời gian do các server trong chuỗi đều thực hiện Khi xác suất tìm thấy tài liệu tại các server là thấp, thời gian tìm kiếm trung bình tăng lên do việc tìm kiếm phải thực hiện ở nhiều server
Kiến trúc sao lặp chỉ mục toàn bộ: Trong kiến trúc này, mỗi khi một điểm nút thuộc
một server đăng nhập, thông tin chỉ mục của nó sẽ được cập nhật tại server đó, đồng thời server này sẽ chuyển thông tin chỉ mục tới toàn bộ các server khác để tất cả các server đều cập nhật thông tin về điểm nút Vì vậy mỗi khi 1 điểm nút đăng nhập, tất cả các server đều câp nhật chỉ mục và tốn nhiều thời gian, chi phí Bù lại, khi 1 điểm nút yêu cầu tìm kiếm tài nguyên, thời gian tìm kiếm sẽ nhanh do chỉ phải thực hiện tại 1 server (vì tất cả các server đều có đầy đủ thông tin, không cần thiết phải hỏi lẫn nhau) Thời gian tìm kiếm không phụ thuộc vào xác suất có tìm thấy tài liệu hay không Mô hình này hiệu quả khi thông tin chỉ mục ít, khối lượng lưu trữ không lớn
Trang 9CÁC PHƯƠNG THỨC TẤN CÔ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
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 từ chối dịch vụ , tấn công lưu trữ và phục hồi ,tấn công định tuyến,
Tấn công từ chối dịch vụ DoS
Tấn công từ chối dịch vụ (hay còn gọi là DoS - Denial of Service) là một trong những thủ đoạn nhằm ngăn cản những người dùng hợp pháp khả năng truy cập và sử dụng vào một dịch vụ nào đó
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ố
Trang 10lượ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.
Daswani và Garcia-Molina đã 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 đuợ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 đuợ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 đ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ẽ đuợ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ế p (0 <= p <=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 p * k truy vấn cục bộ, và (1 - p) * 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-p) * 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 hấ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 - p) * 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 - IASvà chiến lược Drop Strategy - DS.
− Chiến dịch IAS : có hai kỹ thuật được sử dụng trong chiến lược này
+ Kỹ thuật thứ nhất là 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ụ , một nút có n nút láng giềng và mỗi nút gửi
Trang 11là a itruy vấn (1<=i<=n) , sau đó nút đó sẽ được (
1
i n i j
a a
=
∑ (1-p)*k) truy vấn từ nút láng
giềng thứ i.
+ Kỹ thuật thứ hai là kỹ thuật Franctional IAS, nó xử lý công bằng đối với mỗi nút láng
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 p k)*
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à q q1 j 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 trong số như nhau, và do đó X sẽ
chấp nhận
1
i j i l
q q
=
∑ truy vấn từ truy vấn loại i Kỹ thuậtEqual 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 truy vấn từ mỗi nút nguồn đó Khả
năng xử lý truy vấn còn lại 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á trị thời gian sống to-live - TTL) của chúng Có hai cơ chế sử dụng trong kỹ thuật này: PreferHighTTLsẽ loại
(time-bỏ những truy vấn có thời gian sống thấp nhất đầu tiên và PreferLowTTLsẽ loại (time-bỏ những
truy vấn với thời gian sống cao nhất đầu tiên
Trang 12Tấn công định tuyến
Các hệ thống P2P có cấu trúc như Chor, CAN, Pastryvà BATON á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:
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 đó 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
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ể
Trang 13xả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
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 đó 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, 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
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
Trang 14− 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 (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 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
Trang 15- 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 (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