Cài đặt giao thức blackholeAODV mô phỏng tấn công lỗ đen

Một phần của tài liệu (LUẬN văn THẠC sĩ) đánh giá về an toàn giao thức định tuyến trong mạng manet phonesavanh phongsenpheng (Trang 51 - 53)

Việc cài đặt giao thức blackholeAODV chỉ là chỉnh sửa lại của giao thức gốc AODV. Trong đó chỉ thay đổi hành vi của nút trung gian đóng vai trò nút độc hại sửa đổi gói tin RREP để chiếm quyền điều khiển tuyến, thực hiện loại bỏ gói tin.

- Thứ nhất, chỉnh sửa tệp “\tcl\lib\ns-lib.tcl”, đây là nơi chứa các thủ tục khai báo các giao thức. Khi node sử dụng giao thức blackholeAODV, agent này sẽ được lập lịch để bắt đầu quátrình mô phỏng và nó được gán thuộc tính của agent này cho những nút sẽ sử dụng giao thức blackholeAODV

-Thứ hai, tập tin được điều chỉnh là “/makefile” trong thư mục gốc “ns- 2.35”. Thêm các dòng mã như sau:

blackholeAODV {

set ragent [$self create-blackholeaodv-agent $node] }

Simulator instproc create-blackholeaodv-agent { node } { set ragent [new Agent/blackholeAODV [$node node-addr]] $self at 0.0 "$ragent start" # start BEACON/HELLO Messages $node set ragent_ $ragent

return $ragent }

42

Cho tới lúc này, về mặt hình thức đã tạo xong giao thức định tuyến mới blackholeAODV. Tuy nhiên về bản chất để nó thực hiện đúng cơ chế loại bỏ gói tin như mong muốn cần phải tiến hành sửa đổi cơ chế làm việc của ciao thức AODV trong tệp blackholeaodv.cc. Hành vi của các nút được giải thích cụ thể như sau:

Khi một gói tin được nhận bởi hàm “recv” trong tệp “aodv/aodv.cc”, nó xử lý gói tin tùy theo loại gói tin này. Nếu gói tin là một trong số các gói thông tin điều khiển quá trình định tuyến AODV, nó sẽ gửi gói tin tới hàm “recvAODV” được giải thích ở dưới. Còn nếu gói tin nhận được là gói dữ liệu, thì theo thông thường nó sẽ được chuyển tới đích, nhưng với hành vi của nút lỗ đen nó sẽ loại bỏ toàn bộ gói tin mà không cần thiết với nó. Trong đoạn mã dưới đây, điều kiện if đầu tiên xử lý quá trình nhận dữ liệu nếu đúng là địa chỉ đích, điều kiện else nút độc hại sẽ loại bỏ toàn bộ dữ liệu nhận được. Đoạn mã như sau:

Trường hợp gói tin là một trong số các gói thông tin điều khiển định tuyến AODV, hàm “recv”sẽ gửi chúng tới hàm“recvblackholeAODV”. Tại đây hàm này sẽ kiểm tra loại của gói tin điều khiển AODV và dựa trên loại gói tin đó sẽ gửi chúng đến các hàm tương ứng bằng câu lệnh case. Ví dụ, nếu gói tin là RREQ sẽ được gửi đến hàm “recvRequest”, nếu là gói RREP sẽ được gửi tới hàm “recvReply”. Đoạn mã như sau

if ((u_int32_t)ih->saddr() == index)

forward((blackholeaodv_rt_entry*) 0, p, NO_DELAY); else

Trong đó chú ý tới hành vi của nút lỗ đen thông qua hàm xử lý gói tin RREQ để trả lời gói tin giả mạo RREP. Nút độc hại cố gắng đánh lừa các nút gửi bằng gói RREP của mình với giá trị của số SN được gán giá trị cao nhất 4294967295 và hop count gán bằng 1. Giá trị cụ thể của gói tin sai RREP được minh họa dưới đây:

Sau khi thực hiện những thay đổi trên, tiến hành biên dịch lại NS-2 để tạo các đối tượng tệp.

Một phần của tài liệu (LUẬN văn THẠC sĩ) đánh giá về an toàn giao thức định tuyến trong mạng manet phonesavanh phongsenpheng (Trang 51 - 53)

Tải bản đầy đủ (PDF)

(89 trang)