Luận văn Đánh giá về an toàn giao thức định tuyến trong mạng Manet

1. Các kết quả của luận văn Luận văn đã tập trung nghiên cứu về các thách thức, mối đe dọa an ninh, ảnh hưởng của tấn công lỗ đen trong giao thức AODV, trình bày một số giải pháp phòng chống tấn công lỗ đen là IDSAODV và RAODV. Đồng thời luận văn cũng đã sử dụng công cụ mô phỏng NS-2, thực hiện mô phỏng quá trình tấn công lỗ đen và giải pháp phòng chống làm giảm ảnh hưởng của tấn công lỗ đen thông qua một số kịch bản khác nhau. Kết quả mô phỏng cho thấy các kết luận như sau: - Trong điều kiện bình thường, khi các nút mạng di chuyển với tốc độ từ 0 - 20m/s, giao thức AODV và IDSAODV đạt hiệu suất rất cao, giao thức RAODV thấp hơn một chút. - Khi mạng xuất hiện tấn công lỗ đen và số lượng nút lỗ đen tăng dần, hiệu suất của giao thức AODV giảm rõ rệt gây ra sự mất mát gói tin lớn. Giao thức IDSAODV tuy có làm giảm ảnh hưởng xấu từ nút lỗ đen, nhưng hiệu quả chưa cao, ưu điểm của giải pháp này là không phát sinh gói tin mới, không gây ra trễ trong mạng. Giao thức RAODV đạt hiệu suất cao và ổn định hơn hẳn giải pháp trước, tuy nhiên nhược điểm của giải pháp này là gây ra trễ trong mạng, tổng phí cao hơn nhiều lần so với 2 giao thức AODV và IDSAODV. 2. Hướng phát triển của đề tài Do hạn chế về mặt thời gian nên luận văn mới dừng lại ở mức độ nghiên cứu giao thức điển hình AODV và các giải pháp phòng chống tấn công lỗ đen trên giao thức này. Trong thời gian tới tác giả sẽ tiếp tục nghiên cứu mô phỏng, đánh giá kết quả của giải pháp với nhiều kiểu tấn công khác nhau trên các giao thức DSDV, DSR, OLSR Ngoài ra còn có một số vấn đề khác của các giao thức cần được xem xét như bảo mật kết hợp đảm bảo chất lượng dịch vụ.

pdf85 trang | Chia sẻ: yenxoi77 | Lượt xem: 602 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Luận văn Đánh giá về an toàn giao thức định tuyến trong mạng Manet, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
dây đặc biệt MANET: AODV, DSDV, DSR, TORA... - Hỗ trợ liên mạng sử dụng vệ tinh (Satellite Networking). * Trong lĩnh vực mạng hỗn hợp có dây và không dây: - Hỗ trợ các trạm cơ sở đóng vai trò cổng chuyển giữa mạng có dây và mạng không dây. - Hỗ trợ Snoop TCP. 4.2.4. Thiết lập mô phỏng mạng MANET trong NS-2 Mô hình không dây chủ yếu bao gồm nút di động (MobileNode) ở lõi, với các đặc điểm hỗ trợ mở rộng cho phép mô phỏng các mạng MANET, mạng không dây Đối tượng MobileNode là một đối tượng tách biệt. Lớp MobileNode được thừa kế từ lớp cha Node trong C++. Do đó lớp MobileNode là đối tượng Node cơ bản với các chức năng thêm vào của nút không dây và di động như là khả năng di chuyển trong hình trạng mạng cho trước, khả năng nhận và truyền các tín hiệu tới và từ kênh không dây. Trong mục này chúng ta sẽ mô tả các thành phần bên trong của MobileNode bao gồm các kỹ thuật định tuyến, việc tạo ngăn xếp mạng cho phép truy cập kênh trong MobileNode, mô tả ngắn gọn của mỗi thành phần ngăn xếp, hỗ trợ dò vết và tạo ra các ngữ cảnh di chuyển/lưu lượng cho mô phỏng không dây. * Nút di động: Nút di động (MobileNode) là một đối tượng ns Node cơ bản với các chức năng mở rộng như sự di chuyển, khả năng truyền và nhận trên kênh mà cho phép nó có thể sử dụng để tạo sự di động trong các môi trường mô phỏng không dây. Các đặc điểm di động bao gồm việc di chuyển nút, các cập nhật vị trí định kỳ, bảo đảm đường biên của hình trạng mạng được thực thi trong C++ trong khi các thành phần mạng trong bản thân MobileNode (như bộ phân loại, dmux, LL, Mac, Channel) lại được thực thi trong Otcl. Các hàm và thủ tục được mô tả dưới đây có thể tìm thấy trong ~ns/common/mobilenode.{cc,h}, ~ns/tcl/lib/ns- mobilenode.tcl, và ~ns/tcl/mobility/aodv.tcl. Các kịch bản ví dụ có thể tìm thấy trong ~ns/tcl/ex/wireless-test.tcl và ~ns/tcl/ex/wireless.tcl. 45 Giao thức định tuyến mạng không dây được hỗ trợ trong NS-2 bao gồm AODV, DSDV, DSR và TORA. Việc tạo các nút di động phụ thuộc vào giao thức định tuyến được sử dụng. Hiện nay NS-2 hỗ trợ API tạo nút di động được mô tả như sau: $ns_ node-config -adhocRouting $opt(adhocRouting) \ -llType $opt(ll) \ -macType $opt(mac) \ -ifqType $opt(ifq) \ -ifqLen $opt(ifqlen) \ -antType $opt(ant) \ -propType $opt(prop) \ -propInstance [new $opt(prop)] \ -phyType $opt(netif) \ -channel [new $opt(chan)] \ -topoInstance $topo \ -agentTrace ON \ -routerTrace ON \ -macTrace ON \ API ở trên cấu hình cho nút di động với tất cả các giá trị của giao thức định truyến trong MANET như ngăn xếp mạng, cấu trúc mạng, mô hình kênh truyền. Tiếp đến chúng ta tạo các nút di động như sau: for {set i 0} {$i < $val(nnaodv)} {incr i} { set node_($i) [$ns_ node] $node_($i) random-motion 0 ;# disable random motion } Thủ tục trên tạo ra các đối tượng nút di động, tạo tác tử định tuyến mạng MANET, tạo ngăn xếp mạng bao gồm lớp liên kết, hàng đợi, lớp MAC và giao diện mạng với ăng ten, sử dụng mô hình truyền thông được định nghĩa, kết nối các thành phần và kết nối ngăn xếp vào kênh. * Quy trình mô phỏng mạng MANET với NS-2: Quá trình mô phỏng mạng MANET với bộ mô phỏng NS-2 [1] thông thường trải qua các bước như sau trong việc xây dựng tệp kịch bản: - Tạo bộ lập lịch các sự kiện + Tạo bộ lập lịch set ns_ [new Simulator] + Lập lịch sự kiện $ns at 46 + Khởi động bộ lập lịch $ns run - Ghi lại vết các sự kiện của mạng mô phỏng + Dò vết các gói tin trên tất cả các liên kết, xuất ra tệp traceout.tr $ns trace-all [open traceout.tr w] + Dò vết các gói tin trên tất cả các liên kết, xuất ra định dạng dùng trong NAM $ns namtrace-all [open traceout.nam w] + Cũng có thể dò vết một số tham số, ví dụ: $ns trace-queue $n0 $n1 $ns nam trace-queue $n0 $n1 - Thiết lập mạng mô phỏng + Thiết lập tô-pô mạng set topo [new Topography] $topo load_flatgrid $val(x) $val(y) # Create God create-god $val(nn) - Cấu hình nút di động + Cấu hình nút di động $ns_ node-config -adhocRouting $val(rp) \ -llType $val(ll) \ -macType $val(mac) \ -ifqType $val(ifq) \ -ifqLen $val(ifqlen) \ -antType $val(ant) \ -propType $val(prop) \ -phyType $val(netif) \ -topoInstance $topo \ -agentTrace ON \ -routerTrace ON \ -macTrace ON \ -movementTrace ON \ -channel $chan_1_ + Thiết lập vị trí ban đầu $node_(0) set X_ 1.0 $node_(0) set Y_ 3.0 $node_(0) set Z_ 0.0 47 $node_(1) set X_ 4.0 $node_(1) set Y_ 6.0 $node_(1) set Z_ 0.0 + Thiết lập sự di chuyển cho các nút di động ta dùng $ns_ at 10.0 “$node_(0) setdest 20.0 10.0 15.0” - Tạo ra các nguồn sinh lưu lượng + Tạo lưu lượng set udp_(0) [new Agent/UDP] $ns_ attach-agent $node_(0) $udp_(0) set null_(0) [new Agent/Null] $ns_ attach-agent $node_(1) $null_(0) set cbr_(0) [new Application/Traffic/CBR] $cbr_(0) set packetSize_ 512 $cbr_(0) set interval_ 4.0 $cbr_(0) set random_ 1 $cbr_(0) set maxpkts_ 10000 $cbr_(0) attach-agent $udp_(0) $ns_ connect $udp_(0) $null_(0) $ns_ at 158.7047093914378 "$cbr_(0) start" + Việc tạo lưu lượng có thể lấy từ tệp sinh lưu lượng của công cụ có sẵn cbrgen trong bộ mô phỏng NS-2. 4.3. Cài đặt bổ sung các giao thức Trong phiên bản NS-2.35 đã hỗ trợ các giao thức định tuyến trong mạng MANET như AODV, DSDV, DSR, Tuy nhiên, không hỗ trợ sẵn giao thức mô phỏng lỗ đen, chống tấn công lỗ đen như IDSAODV và RAODV. Luận văn dựa trên ý tưởng và mã nguồn của tác giả Semih Dokurer, nhóm tác giả Chonggun Kim, Elmurod Talipov và Byoungchul Ahn, thông qua việc nghiên cứu cụ thể các mã nguồn trên cũng như tham khảo rất kỹ trong tài liệu [8] để tiến hành cài đặt các giao thức định tuyến mới. Quá trình cài đặt cụ thể như sau: 4.3.1. Cài đặt giao thức blackholeAODV mô phỏng tấn công lỗ đen 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 48 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. Đoạn 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 } - 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/blackholeaodv_logs.o blackholeaodv/blackholeaodv.o \ blackholeaodv/blackholeaodv_rtable.o blackholeaodv/blackholeaodv_rqueue.o \ 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 giao 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: if ((u_int32_t)ih->saddr() == index) forward((blackholeaodv_rt_entry*) 0, p, NO_DELAY); else drop(p, DROP_RTR_ROUTE_LOOP); 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à 49 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: case AODVTYPE_RREQ: recvRequest(p); break; case AODVTYPE_RREP: recvReply(p); break; case AODVTYPE_RERR: recvError(p); break; case AODVTYPE_HELLO: recvHello(p); break; default: fprintf(stderr, "Invalid blackholeAODV type (%x)\n", ah>ah_type); exit(1); 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: sendReply(rq->rq_src, // IP Destination 1, // Hop Count index, // Dest IP Address 4294967295, // Highest Dest Sequence Num MY_ROUTE_TIMEOUT, // Lifetime rq->rq_timestamp); // timestamp 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. 4.3.2. Cài đặt giao thức IDSAODV làm giảm ảnh hưởng tấn công lỗ đen Để cài đặt giải pháp IDSAODV, phải tiến hành thay đổi hàm nhận gói RREP (recvReply) và tạo cơ chế bộ đệm gói tin RREP để đếm số gói tin RREP thứ hai. Cụ thể như sau: 50 Cơ chế bộ đệm gói RREP được tạo thành với các hàm chức năng: “rrep_insert” có chức năng lưu đệm gói RREP, “rrep_lookup” có chức năng tìm kiếm bất kỳ gói RREP nếu nó tồn tại, “rrep_remove” loại bỏ tuyến đường với RREP đến từ nút được xác định và “rrep_purge” có chức năng xóa định kỳ từ danh sách những gói tin RREP đã hết hạn. Ở đây chọn thời gian hết hiệu lực (BCAST_ID_SAVE) đối với gói tin RREP trùng với thời gian hết hiệu lực trong giao thức AODV là 3s. Đoạn mã dưới đây mô tả cơ chế bộ đệm gói tin RREP: void idsAODV::rrep_insert(nsaddr_t id) { idsBroadcastRREP *r = new idsBroadcastRREP(id); assert(r); r->expire = CURRENT_TIME + BCAST_ID_SAVE; r->count ++; LIST_INSERT_HEAD(&rrephead, r, link); } idsBroadcastRREP * idsAODV::rrep_lookup(nsaddr_t id) { idsBroadcastRREP *r = rrephead.lh_first; for( ; r; r = r->link.le_next) { if (r->dst == id) return r; } return NULL; } void idsAODV::rrep_remove(nsaddr_t id) { idsBroadcastRREP *r = rrephead.lh_first; for( ; r; r = r->link.le_next) { if (r->dst == id) LIST_REMOVE(r,link); delete r; break; } } 51 void idsAODV::rrep_purge() { idsBroadcastRREP *r = rrephead.lh_first; idsBroadcastRREP *rn; double now = CURRENT_TIME; for(; r; r = rn) { rn = r->link.le_next; if(r->expire <= now) { LIST_REMOVE(r,link); delete r; } } } Tiếp đến là sửa đổi hàm recvReply, đầu tiên là việc kiểm soát nếu gói tin RREP đến cho chính nó thì chức năng “rrep_lookup” được gọi tới nếu gói tin được nhận, ngược lại chức năng “rrep_insert” được gọi để chèn các gói RREP cho các đích tương ứng của nó. Nếu gói tin RREP đã được lưu trước đó cho cùng địa chỉ đích thì chức năng RREP thông thường sẽ được thực hiện. Nếu không có nghĩa là gói tin RREP được chuyển tiếp tới các hàng xóm thích hợp của nó. Đoạn mã dưới đây cho thấy chức năng nhận gói tin RREP của IDSAODV được thực hiện. idsAODV::recvReply(Packet *p) { idsBroadcastRREP * r = rrep_lookup(rp->rp_dst); if(ih->daddr() == index) { if (r == NULL) { count = 0; rrep_insert(rp->rp_dst); } else { r->count ++; count = r->count; } UPDATE ROUTE TABLE } else { Forward(p); } } 52 Sau khi tất cả thay đổi kết thúc, tiến hành biên dịch lại tất cả các tệp trong phần mềm NS-2. 4.3.3. Cài đặt giao thức RAODV làm giảm ảnh hưởng tấn công lỗ đen Việc cài đặt giao thức RAODV được thực hiện trong tệp tin raodv.cc. Cụ thể như sau: Khi nhận được 1 RREQ, RAODV sẽ kiểm tra số SN để xác định đây là một tuyến đường có hiệu lực đến nút đích. if (rq->rq_src_seqno > rt0->rt_seqno ) { rt0->pc_insert(ih->saddr()); Trước khi gửi lại R-RREQ, tiến hành kiểm tra xem nút nhận có phải là nút đích hay không. Nếu đúng sẽ sử dụng sendReverse() để quảng bá R-RREQ cho các nút hàng xóm với dữ liệu vào là thông tin của nút nhận. if(rq->rq_dst == index) // Kiểm tra node nhận được có phải nút đích hay không { seqno = max(seqno,rq->rq_dst_seqno) + 1; if (seqno%2) seqno++; sendReverse(rq->rq_src); Packet::free(p); } Với RAODV sẽ có hàm recvReverse() để nhận và xử lý R-RREQ. Vì R- RREQ được quảng bá nên trước hết cần tiến hành kiểm tra xem gói tin vừa gửi có xuất phát từ chính nút đó hay không. Trong khi ở AODV thì không cần thiết việc này. void RAODV::recvReverse(Packet *p) { //struct hdr_cmn *ch = HDR_CMN(p); struct hdr_ip *ih = HDR_IP(p); struct hdr_raodv_reply *rp = HDR_RAODV_REPLY(p); char suppress_reply = 0; double delay = 0.0; raodv_rt_entry *rtc; raodv_rt_entry *rt0; // Kiểm tra gói tin nhận được có phải xuất phát từ chính node đó if (rp->rp_src == index) { Packet::free(p); 53 return; } // Kiểm tra rt entry, nếu chưa có thì add vào route table rt0 = rtable.rt_lookup(rp->rp_src); if(rt0 == 0) { rt0 = rtable.rt_add(rp->rp_src); } Tiếp đến, đồng thời kiểm tra tuyến đường đến đã phải là tuyến đích hay chưa. Nếu chưa sẽ thực hiện nghiệp vụ xem đây có phải là tuyến mới với số hop ngắn hơn không, đồng thời cập nhật lại route entry. if (rp->rp_dst != index) { if ((rt0->rt_seqno rp_dst_seqno ) || route mới hơn (( rt0->rt_seqno == rp->rp_dst_seqno) && ( rt0->rt_hops > rp->rp_hop_count ))) { rt0->rt_expire = max(rt0->rt_expire, (CURRENT_TIME+REV_ROUTE_LIFE)); rt0->pc_insert(ih->saddr()); // Update the rt entry rt_update(rt0, rp->rp_dst_seqno, rp->rp_hop_count,ih->saddr(), max(rt0->rt_expire, (CURRENT_TIME + REV_ROUTE_LIFE))); if (rt0->rt_req_timeout > 0.0 ) { //reset lại state của route rt0->rt_req_cnt = 0; rt0->rt_req_timeout = 0.0; rt0->rt_req_last_ttl = rp->rp_hop_count; rt0->rt_expire=CURRENT_TIME + ACTIVE_ROUTE_TIMEOUT; } } } Sau đấy RAODV sẽ kiểm tra nếu message gửi đi đã từng nhận được hay chưa. Hủy nếu đã từng có, cập nhật thêm mới nếu chưa. // Kiểm tra nếu đã từng nhận được message này trước đó. Nếu có - hủy if (id_lookup(rp->rp_src, rp->rp_bcast_id)) { Packet::free(p); return; 54 } // Cập nhật thêm mới message id_insert(rp->rp_src, rp->rp_bcast_id); Nếu nút đến là đích thì cần xác định tuyến mới có phải xuất phát từ cùng một nút trước đó không. Cập nhật lại route entry trong bảng định tuyến. //Xác định là route mới hơn hay không từ chính node trước đó if ( (rt0->rt_seqno rp_dst_seqno ) || // route mới hơn ? (( rt0->rt_seqno == rp->rp_dst_seqno) && ( rt0->rt_hops > rp->rp_hop_count )) && (rt0->rt_nexthop==ih- >saddr()) ) /* từ chính nút node trước đó */ { //Tạo mới hoặc update route entry trong route table rt0->rt_expire = max(rt0->rt_expire, (CURRENT_TIME+REV_ROUTE_LIFE)); // Update the rt entry rt_update(rt0, rp->rp_dst_seqno, rp->rp_hop_count,ih->saddr(), max(rt0->rt_expire, (CURRENT_TIME + REV_ROUTE_LIFE))); if (rt0->rt_req_timeout > 0.0 ) { rt0->rt_req_cnt = 0; rt0->rt_req_timeout = 0.0; rt0->rt_req_last_ttl = rp->rp_hop_count; rt0->rt_expire=CURRENT_TIME + ACTIVE_ROUTE_TIMEOUT; } rt0->rt_disc_latency[rt0->hist_indx] = (CURRENT_TIME - rp- >rp_timestamp) / (double) rp->rp_hop_count; rt0->hist_indx = (rt0->hist_indx + 1) % MAX_HISTORY; rtable.order_routes(rp->rp_src); //rt_print(rp->rp_src); //Print Source Node's Routing Table } Nếu không phải thì đây sẽ là một tuyến mới từ một nút đến khác nút trước đó. Thêm mới và cập nhật lại route entry trong bảng định tuyến. else if ((rp->rp_dst_seqno >= rt0->rt_seqno)) { // && (rtable.total_rts(rp- >rp_src)< 5)) { rt0=rtable.rt_add(rp->rp_src); rt_update(rt0, rp->rp_dst_seqno, rp->rp_hop_count,ih->saddr(), max(rt0->rt_expire, (CURRENT_TIME + REV_ROUTE_LIFE))); if (rt0->rt_req_timeout > 0.0 ) { 55 rt0->rt_req_cnt = 0; rt0->rt_req_timeout = 0.0; rt0->rt_req_last_ttl = rp->rp_hop_count; rt0->rt_expire=CURRENT_TIME + ACTIVE_ROUTE_TIMEOUT; } rtable.order_routes(rp->rp_src); rt0->rt_disc_latency[rt0->hist_indx] = (CURRENT_TIME - rp- >rp_timestamp) / (double) rp->rp_hop_count; rt0->hist_indx = (rt0->hist_indx + 1) % MAX_HISTORY; rt_print(rp->rp_src); //Print Source Node's Routing Table Thay vì gửi lại một RREP trở lại nút nguồn như AODV thì giao thức RAODV tạo ra một gói reverse route request (R-RREQ) và quảng bá cho các nút lân cận giống như RREQ của nút nguồn đã làm. void RAODV::sendReverse(nsaddr_t dst) { Packet *p = Packet::alloc(); struct hdr_cmn *ch = HDR_CMN(p); struct hdr_ip *ih = HDR_IP(p); struct hdr_raodv_reply *rp = HDR_RAODV_REPLY(p); raodv_rt_entry *rt = rtable.rt_lookup(dst); assert(rt); rp->rp_type = RAODVTYPE_RQREP; //rp->rp_flags = 0x00; rp->rp_hop_count = 1; rp->rp_dst = dst; rp->rp_bcast_id = bid++; rp->rp_src = index; // rp->rp_dst_seqno = seqno; rp->rp_timestamp = CURRENT_TIME; // Thời gian hiện tại ch->ptype() = PT_RAODV; ch->size() = IP_HDR_LEN + rp->size(); ch->iface() = -2; ch->error() = 0; ch->addr_type() = NS_AF_NONE; ch->prev_hop_ = index; ch->direction() = hdr_cmn::DOWN; ih->saddr() = index; 56 ih->daddr() = IP_BROADCAST; // IP Broadcast ih->sport() = RT_PORT; ih->dport() = RT_PORT; ih->ttl_ = NETWORK_DIAMETER; Scheduler::instance().schedule(target_, p, 0); } Sau khi tất cả thay đổi kết thúc, tiến hành biên dịch lại tất cả các tệp trong phần mềm NS-2. 4.4. Mô phỏng, đánh giá ảnh hưởng và giải pháp làm giảm hiệu ứng của tấn công lỗ đen Trong phần này luận văn sẽ trình bày việc tiến hành mô phỏng đánh giá ảnh hưởng và giải pháp làm giảm ảnh hưởng của tấn công lỗ đen trong mạng MANET. Để tiếp cận một cách có hệ thống, trước tiên ta phải xác định được các tham số của môi trường (hệ thống) trong quá trình mô phỏng, các độ đo hiệu năng được chọn làm tiêu chuẩn để so sánh. Sau đó thực hiện các thí nghiệm với các kịch bản khác nhau nhằm đưa ra được lượng thông tin lớn nhất về ảnh hưởng của tấn công lỗ đen. Cuối cùng là việc phân tích, đánh giá các kết quả thu được dưới dạng bảng, biểu từ đó đưa ra kết luận, nhận xét. a. Các độ đo hiệu năng được đánh giá - Tỷ lệ phân phát gói tin thành công (PDR - Packet Delivery Ratio): Là tỷ lệ giữa số gói tin được phân phát thành công tới đích so với số gói tin được gửi đi nguồn phát. Giá trị của tỉ số này càng lớn chứng tỏ hiệu năng hoạt động của mạng càng cao. - Độ trễ trung bình (End-to-End Delay): Thời gian trung bình để gửi một gói dữ liệu tới đích. Nó bao gồm cả độ trễ gây ra bởi quá trình khám phá tuyến và dữ liệu truyền tải nằm trong hàng đợi. Chỉ các gói dữ liệu được truyền thành công tới đích mới được tính. - Tổng phí (Routing Overhead): Là tổng của tất cả các gói tin điều khiển như gói tin yêu cầu tuyến, gói tin trả lời tuyến và các gói tin lỗi trên đường truyền từ cả hai phía nguồn và đích. b. Thiết lập các lựa chọn, tham số mô phỏng Như đã trình bày ở trên, do đặc thù của mạng MANET là mạng động với băng thông thấp, năng lượng của nút hạn chế cho nên khi nghiên cứu về ảnh hưởng của tấn công lỗ đen trong mạng MANET ta cần chú ý đến một số lựa chọn, tham số mô phỏng như: - Kích thước mạng (độ lớn của mạng): Số lượng nút trong mạng 57 - Mật độ nút: Tính theo số hàng xóm trung bình hoặc theo số nút trung bình trong diện tích phủ sóng (radio range) của một nút. - Độ linh động của mạng: Được đo bằng tốc độ chuyển động trung bình của các nút mạng. - Các mẫu lưu lượng: Hệ thống với các mẫu lưu lượng như CBR (truyền bằng giao thức UDP) hoặc FTP (truyền bằng giao thức TCP). c. Các kịch bản mô phỏng Kịch bản mô phỏng trong mạng MANET được cấu thành bởi các yếu tố như tô-pô mạng, mô hình chuyển động, mô hình sinh lưu lượng, diện tích và hình dạng vùng mô phỏng, thời gian hoạt động của các nguồn sinh lưu lượng, thời gian mô phỏng. Bằng cách thay đổi các yếu tố kể trên sẽ cho chúng ta những ngữ cảnh mạng khác nhau. Trong luận văn này, kịch bản mô phỏng được xây dựng gồm 50 nút có vị trí khởi tạo ngẫu nhiên trong một vùng địa lý có kích thước 1000m x 1000m với phạm vi truyền sóng vô tuyến của mỗi nút là 250m (bán kính). Tọa độ của mỗi nút tại một vị trí trong vùng mô phỏng có dạng (x,y,z) trong đó z có giá trị bằng 0. Nút di chuyển theo mô hình Random Waypoint [11], được hiểu là đầu tiên nút có một vị trí ngẫu nhiên trong khu vực mô phỏng và ở tại đó một khoảng thời gian gọi là thời gian tạm dừng. Khi quãng thời gian này hết hạn, nút chọn ngẫu nhiên một đích trong khu vực mô phỏng và một tốc độ được phân bố đều giữa [min Speed, max Speed]. Sau đó, nút di chuyển tới vị trí mới với tốc độ đã chọn. Khi tới vị trí mới, nút dừng một khoảng thời gian được chọn theo phân bố đồng đều giữa [Pmin, Pmax] và sau đó tiếp tục lại quá trình. Trong mô phỏng việc khởi tạo vị trí các nút và quá trình di chuyển theo mô hình trên được thực hiện bằng cách sử dụng công cụ “./setdest”- một ứng dụng đã được cài đặt trong bộ mô phỏng NS-2. Chạy setdest với các tham số sau để tạo hình trạng mạng với các tốc độ di chuyển khác nhau là 0, 5, 10, 15, 20m/s : ./setdest -n -p -s -t -x -y >/ ./setdest –n 50 –p 10 –s 0.0 –t 600 –x 1000 – y 1000> kichban1-n50-t600- s0-1000-1000 ./setdest –n 50 –p 10 –s 5.0 –t 600 –x 1000 – y 1000> kichban2-n50-t600- s5-1000-1000 ./setdest –n 50 –p 10 –s 10.0 –t 600 –x 1000 – y 1000> kichban3-n50-t600- s10-1000-1000 ./setdest –n 50 –p 10 –s 15.0 –t 600 –x 1000 – y 1000> kichban4-n50-t600- s15-1000-1000 58 ./setdest –n 50 –p 10 –s 20.0 –t 600 –x 1000 – y 1000> kichban5-n50-t600- s20-1000-1000 Thực thể truyền thông CBR được được tôi thiết lập tốc độ phát gói tin không đổi là 4 gói tin/giây và các gói tin có kích thước là 512 byte. Việc sinh ra các lưu lượng bao gồm 10 kết nối được cho bởi công cụ cbrgen đã được tích hợp sẵn trong phần mềm NS-2 với cú pháp như sau: ns cbrgen.tcl [-type cbr|tcp] [-nn nodes] [-seed seed] [-mc connections] [-rate rate] >/ ns cbrgen.tcl –type cbr –nn 50 –seed 1.0 –mc 10 –rate 4.0 > cbr Việc sử dụng các công cụ setdest và cbrgen này giúp người nghiên cứu dễ dàng tạo ra các kịch bản truyền thông cũngnhư di chuyển của mạng với số lượng các nút di động là tương đối lớn. Các kịch bản tiến hành có thời gian mô phỏng là 600s. Sau khi đã tạo các ngữ cảnh về mô hình di chuyển, nguồn lưu lượng, tiếp đến là việc tạo các nút đúng theo quy trình đã nêu ở phần trên. Việc tạo cấu hình các nút không dây cho bởi đoạn mã sau: # configure node, please note the change below. $ns_ node-config -adhocRouting $val(rp) \ -llType $val(ll) \ -macType $val(mac) \ -ifqType $val(ifq) \ -ifqLen $val(ifqlen) \ -antType $val(ant) \ -propType $val(prop) \ -phyType $val(netif) \ -topoInstance $topo \ -agentTrace ON \ -routerTrace ON \ -macTrace ON \ -movementTrace ON \ -channel $chan_1_ Tạo các nút với vòng lặp for và thay đổi giao thức cho mỗi kịch bản được cho bởi đoạn mã sau: for {set i 0} {$i < $val(nnaodv)} {incr i} { set node_($i) [$ns_ node] $node_($i) random-motion 0 ;#disable random motion 59 } # Creating Black Hole nodes for simulation $ns_ node-config -adhocRouting blackholeAODV for {set i $val(nnaodv)} {$i < $val(nn)} {incr i} { set node_($i) [$ns_ node] $node_($i) random-motion 0 ;#disable random motion $ns_ at 0.01 "$node_($i) label \"blackhole node\"" Trong đó các giá trị nnaodv và giá trị rp có thể thay đổi tùy từng kịch bản như đã đề cập ở trên. Trong mỗi ngữ cảnh mô phỏng, một số tham số mô phỏng được tôi giữ không thay đổi, trình bày ở bảng sau: Thông số Giá trị Cấu hình chung Khu vực địa lý 1000 x 1000m Tổng số nút 50 nút Vùng thu phát sóng 250 m Cấu hình di chuyển Tốc độ di chuyển nhanh nhất 20 m/s  72 km/h Tốc độ di chuyển chậm nhất 0 m/s  Đứng yên Cấu hình truyền dữ liệu Nguồn sinh lưu lượng CBR Số kết nối 10 Kích thước gói tin 512 bytes Tốc độ phát gói 4 gói/s 4.5. Tiến hành mô phỏng, phân tích tệp vết để tính các tham số hiệu năng Luận văn mô phỏng các kịch bản như đã nêu ở trên để thu được các tệp vết. Tệp vết là tệp chứa tất cả các sự kiện trong mô phỏng như thời điểm gói tin được gửi, nút nào sinh ra chúng, nút nào đã nhận chúng, kiểu của gói tin gửi, nếu bị loại bỏ thì lý do bị loại bỏ là gì? Trong các mô phỏng này, sử dụng định dạng tệp “new trace” cho môi trường mạng không dây. Để đánh giá các tham số hiệu năng, luận văn tập trung vào các trường sau trong tệp .tr: - “s” giá trị của thông tin sự kiện trong trường 0 để đếm xem có bao nhiêu gói CBR được gửi bởi nút gửi. 60 - “r” giá trị của thông tin sự kiện trong trường 0 để đếm xem có bao nhiêu gói CBR được nhận bởi nút nhận. - “node id” giá trị thông tin chỉ số nút trong trường 4, chỉ ra chỉ số nút gửi, nút nhận. Ngoài ra căn cứ vào dấu hiệu trường 19 - Trace Level chỉ ra gói tin gửi, nhận ở tầng nào trong mô hình OSI (trường thứ 19 trong tệp .tr bao gồm các giá trị như MAC, RTR, AGT tương ứng với các tầng MAC, tầng Network và tầng Transpot). Ở đây luận văn tạo ra các kịch bản như sau: Ứng với mỗi tốc độ di chuyển, sẽ tiến hành cài đặt các giao thức AODV, IDSAODV và RAODV với tỷ lệ nút lỗ đen tăng dần trên tổng số nút mạng. Sau khi xác định rõ các trường trong tệp .tr cho việc tính toán các tham số hiệu năng. Luận văn sử dụng ngôn ngữ AWK để tiến hành tính toán. Nội dung tệp ketqua.awk được trình bày trong phụ lục 2. Kết quả phân tích các giao thức với tốc độ di chuyển của nút mạng và tỷ lệ nút lỗ đen tăng dần trên tổng số nút mạng được thể hiện như sau: 61 * Tốc độ 0m/s: Bảng 4.1. Tỷ lệ phân phát gói tin thành công với tỷ lệ nút lỗ đen tăng dần và tốc độ 0m/s Tỷ lệ nút lỗ đen (%) AODV (%) IDSAODV (%) RAODV (%) 0% 95.58 91.17 79.34 2% 12.99 32.21 71.32 4% 10.44 40.36 72.94 6% 9.58 10.31 71.55 8% 0.00 2.79 72.71 10% 0.00 9.19 73.68 Hình 4.1. Biểu đồ thể hiện tỷ lệ phân phát gói tin thành công với tỷ lệ nút lỗ đen tăng dần và tốc độ 0m/s 0 20 40 60 80 100 120 0% 2% 4% 6% 8% 10% Tỷ l ệ ph ân p hát gói tin thà nh côn g (% ) Tỷ lệ nút lỗ đen tăng dần (%) Biểu đồ thể hiện Tỷ lệ phân phát gói tin thành công AODV IDSAODV RAODV 62 Bảng 4.2. Độ trễ trung bình với tỷ lệ nút lỗ đen tăng dần và tốc độ 0m/s Tỷ lệ nút lỗ đen (%) AODV (ms) IDSAODV (ms) RAODV (ms) 0% 131.06 109.38 147.65 2% 22.71 31.05 216.26 4% 7.15 28.43 191.92 6% 14.64 58.28 220.03 8% 18.90 25.52 173.62 10% 17.45 61.07 189.06 Hình 4.2. Biểu đồ thể hiện độ trễ trung bình với tỷ lệ nút lỗ đen tăng dần và tốc độ 0m/s 0 50 100 150 200 250 0% 2% 4% 6% 8% 10% Thờ i gia n (m s) Tỷ lệ nút lỗ đen tăng dần (%) Biểu đồ thể hiện Độ trễ trung bình AODV IDSAODV RAODV 63 Bảng 4.3. Tổng phí với tỷ lệ nút lỗ đen tăng dần và tốc độ 0m/s Tỷ lệ nút lỗ đen (%) AODV (gói) IDSAODV (gói) RAODV (gói) 0% 36244 39482 223006 2% 14314 9804 196450 4% 5045 10573 179208 6% 2974 11688 189184 8% 575 10433 176904 10% 544 12330 165983 Hình 4.3. Biểu đồ thể hiện tổng phí với tỷ lệ nút lỗ đen tăng dần và tốc độ 0m/s 0 50000 100000 150000 200000 250000 0% 2% 4% 6% 8% 10% Tổn g ph í (gó i tin ) Tỷ lệ nút lỗ đen tăng dần (%) Biểu đồ thể hiện Tổng phí AODV IDSAODV RAODV 64 * Tốc độ 5m/s: Bảng 4.4. Tỷ lệ phân phát gói tin thành công với tỷ lệ nút lỗ đen tăng dần và tốc độ 5m/s Tỷ lệ nút lỗ đen (%) AODV (%) IDSAODV (%) RAODV (%) 0% 98.86 93.98 83.42 2% 16.42 27.64 85.26 4% 6.38 18.18 85.45 6% 8.83 19.73 88.06 8% 5.37 15.52 87.02 10% 3.53 8.11 88.47 Hình 4.4. Biểu đồ thể hiện tỷ lệ phân phát gói tin thành công với tỷ lệ nút lỗ đen tăng dần và tốc độ 5m/s 0 20 40 60 80 100 120 0% 2% 4% 6% 8% 10% Tỷ l ệ ph ân p hát gói tin thà nh côn g (% ) Tỷ lệ nút lỗ đen tăng dần (%) Biểu đồ thể hiện Tỷ lệ phân phát gói tin thành công AODV IDSAODV RAODV 65 Bảng 4.5. Độ trễ trung bình với tỷ lệ nút lỗ đen tăng dần và tốc độ 5m/s Tỷ lệ nút lỗ đen (%) AODV (ms) IDSAODV (ms) RAODV (ms) 0% 41.43 50.86 426.63 2% 30.28 100.20 255.74 4% 218.07 94.43 332.59 6% 28.86 133.90 184.58 8% 20.71 197.68 210.36 10% 15.30 82.16 188.87 Hình 4.5. Biểu đồ thể hiện độ trễ trung bình với tỷ lệ nút lỗ đen tăng dần và tốc độ 5m/s 0 50 100 150 200 250 300 350 400 450 0% 2% 4% 6% 8% 10% Thờ i gia n (m s) Tỷ lệ nút lỗ đen tăng dần (%) Biểu đồ thể hiện Độ trễ trung bình AODV IDSAODV RAODV 66 Bảng 4.6. Tổng phí với tỷ lệ nút lỗ đen tăng dần và tốc độ 5m/s Tỷ lệ nút lỗ đen (%) AODV (gói) IDSAODV (gói) RAODV (gói) 0% 13166 15284 298873 2% 14721 20655 297404 4% 13201 16706 291804 6% 8676 17317 270966 8% 7682 15899 265998 10% 6646 17999 259335 Hình 4.6. Biểu đồ thể hiện tổng phí với tỷ lệ nút lỗ đen tăng dần và tốc độ 5m/s 0 50000 100000 150000 200000 250000 300000 350000 0% 2% 4% 6% 8% 10% Tổn g ph í (gó i tin ) Tỷ lệ nút lỗ đen tăng dần (%) Biểu đồ thể hiện Tổng phí AODV IDSAODV RAODV 67 * Tốc độ 10m/s: Bảng 4.7. Tỷ lệ phân phát gói tin thành công với tỷ lệ nút lỗ đen tăng dần và tốc độ 10m/s Tỷ lệ nút lỗ đen (%) AODV (%) IDSAODV (%) RAODV (%) 0% 95.92 86.99 81.04 2% 8.76 35.10 81.00 4% 6.03 26.80 80.23 6% 9.29 17.55 82.31 8% 4.24 16.90 81.01 10% 3.87 15.52 83.71 Hình 4.7. Biểu đồ thể hiện tỷ lệ phân phát gói tin thành công với tỷ lệ nút lỗ đen tăng dần và tốc độ 10m/s 0 20 40 60 80 100 120 0% 2% 4% 6% 8% 10% Tỷ l ệ ph ân p hát gói tin thà nh côn g (% ) Tỷ lệ nút lỗ đen tăng dần (%) Biểu đồ thể hiện Tỷ lệ phân phát gói tin thành công AODV IDSAODV RAODV 68 Bảng 4.8. Độ trễ trung bình với tỷ lệ nút lỗ đen tăng dần và tốc độ 10m/s Tỷ lệ nút lỗ đen (%) AODV (ms) IDSAODV (ms) RAODV (ms) 0% 111.78 198.07 174.54 2% 119.63 109.82 183.43 4% 17.08 50.23 182.65 6% 230.71 188.91 187.19 8% 17.35 353.69 142.82 10% 20.28 167.80 161.51 Hình 4.8. Biểu đồ thể hiện độ trễ trung bình với tỷ lệ nút lỗ đen tăng dần và tốc độ 10m/s 0 50 100 150 200 250 300 350 400 0% 2% 4% 6% 8% 10% Thờ i gia n (m s) Tỷ lệ nút lỗ đen tăng dần (%) Biểu đồ thể hiện Độ trễ trung bình AODV IDSAODV RAODV 69 Bảng 4.9. Tổng phí với tỷ lệ nút lỗ đen tăng dần và tốc độ 10m/s Tỷ lệ nút lỗ đen (%) AODV (gói) IDSAODV (gói) RAODV (gói) 0% 29512 52484 260260 2% 17826 25216 259762 4% 13952 20236 247105 6% 17264 22463 232714 8% 8682 21954 228592 10% 11205 18583 218018 Hình 4.9. Biểu đồ thể hiện tổng phí với tỷ lệ nút lỗ đen tăng dần và tốc độ 10m/s 0 50000 100000 150000 200000 250000 300000 0% 2% 4% 6% 8% 10% Tổn g ph í (gó i tin ) Tỷ lệ nút lỗ đen tăng dần (%) Biểu đồ thể hiện Tổng phí AODV IDSAODV RAODV 70 * Tốc độ 15m/s: Bảng 4.10. Tỷ lệ phân phát gói tin thành công với tỷ lệ nút lỗ đen tăng dần và tốc độ 15m/s Tỷ lệ nút lỗ đen (%) AODV (%) IDSAODV (%) RAODV (%) 0% 90.62 76.36 79.09 2% 9.89 25.95 78.57 4% 10.54 14.28 79.69 6% 4.84 15.30 80.63 8% 5.00 10.80 80.70 10% 7.03 14.95 80.97 Hình 4.10. Biểu đồ thể hiện tỷ lệ phân phát gói tin thành công với tỷ lệ nút lỗ đen tăng dần và tốc độ 15m/s 0 10 20 30 40 50 60 70 80 90 100 0% 2% 4% 6% 8% 10% Tỷ l ệ ph ân p hát gói tin thà nh côn g (% ) Tỷ lệ nút lỗ đen tăng dần (%) Biểu đồ thể hiện Tỷ lệ phân phát gói tin thành công AODV IDSAODV RAODV 71 Bảng 4.11. Độ trễ trung bình với tỷ lệ nút lỗ đen tăng dần và tốc độ 15m/s Tỷ lệ nút lỗ đen (%) AODV (ms) IDSAODV (ms) RAODV (ms) 0% 167.83 309.02 181.41 2% 341.19 213.15 174.08 4% 270.61 197.95 152.16 6% 24.18 242.78 153.64 8% 22.14 197.76 149.06 10% 76.29 404.72 189.35 Hình 4.11. Biểu đồ thể hiện độ trễ trung bình với tỷ lệ nút lỗ đen tăng dần và tốc độ 15m/s 0 50 100 150 200 250 300 350 400 450 0% 2% 4% 6% 8% 10% Thờ i gia n (m s) Tỷ lệ nút lỗ đen tăng dần (%) Biểu đồ thể hiện Độ trễ trung bình AODV IDSAODV RAODV 72 Bảng 4.12. Tổng phí với tỷ lệ nút lỗ đen tăng dần và tốc độ 15m/s Tỷ lệ nút lỗ đen (%) AODV (gói) IDSAODV (gói) RAODV (gói) 0% 57502 77727 213941 2% 31620 35761 209142 4% 20047 32724 200690 6% 14507 24568 185845 8% 12099 26664 177134 10% 10915 21823 172479 Hình 4.12. Biểu đồ thể hiện tổng phí với tỷ lệ nút lỗ đen tăng dần và tốc độ 15m/s 0 50000 100000 150000 200000 250000 0% 2% 4% 6% 8% 10% Tổn g ph í (gó i tin ) Tỷ lệ nút lỗ đen tăng dần (%) Biểu đồ thể hiện Tổng phí AODV IDSAODV RAODV 73 * Tốc độ 20m/s: Bảng 4.13. Tỷ lệ phân phát gói tin thành công với tỷ lệ nút lỗ đen tăng dần và tốc độ 20m/s Tỷ lệ nút lỗ đen (%) AODV (%) IDSAODV (%) RAODV (%) 0% 95.61 90.41 80.42 2% 19.07 34.25 81.52 4% 14.88 25.24 79.20 6% 11.29 20.79 80.32 8% 13.65 21.36 83.52 10% 8.96 18.86 84.29 Hình 4.13. Biểu đồ thể hiện tỷ lệ phân phát gói tin thành công với tỷ lệ nút lỗ đen tăng dần và tốc độ 20m/s 0 20 40 60 80 100 120 0% 2% 4% 6% 8% 10% Tỷ l ệ ph ân p hát gói tin thà nh côn g (% ) Tỷ lệ nút lỗ đen tăng dần (%) Biểu đồ thể hiện Tỷ lệ phân phát gói tin thành công AODV IDSAODV RAODV 74 Bảng 4.14. Độ trễ trung bình với tỷ lệ nút lỗ đen tăng dần và tốc độ 20m/s Tỷ lệ nút lỗ đen (%) AODV (ms) IDSAODV (ms) RAODV (ms) 0% 89.92 90.18 378.84 2% 235.46 193.03 355.77 4% 114.94 158.12 461.40 6% 129.51 140.17 329.31 8% 88.31 79.43 250.90 10% 60.97 40.64 192.10 Hình 4.14. Biểu đồ thể hiện độ trễ trung bình với tỷ lệ nút lỗ đen tăng dần và tốc độ 20m/s 0 50 100 150 200 250 300 350 400 450 500 0% 2% 4% 6% 8% 10% Thờ i gia n (m s) Tỷ lệ nút lỗ đen tăng dần (%) Biểu đồ thể hiện Độ trễ trung bình AODV IDSAODV RAODV 75 Bảng 4.15. Tổng phí với tỷ lệ nút lỗ đen tăng dần và tốc độ 20m/s Tỷ lệ nút lỗ đen (%) AODV (gói) IDSAODV (gói) RAODV (gói) 0% 35431 38399 290298 2% 23521 28944 272388 4% 24846 27760 283920 6% 18804 29136 258589 8% 16602 23643 248834 10% 12614 23586 232169 Hình 4.15. Biểu đồ thể hiện tổng phí với tỷ lệ nút lỗ đen tăng dần và tốc độ 20m/s 4.6. Đánh giá ảnh hưởng của tấn công lỗ đen trong các giao thức định tuyến AODV, IDSAODV và RAODV Với kết quả cấu hình mô phỏng đã được xây dựng, luận văn đã tiến hành mô phỏng, phân tích kết quả, vẽ biểu đồ các tham số hiệu suất với 5 kịch bản: - Kịch bản 1: So sánh hiệu suất của 3 giao thức AODV, IDSAODV và RAODV với số nút lỗ đen tăng dần và nút mạng đứng yên. - Kịch bản 2: So sánh hiệu suất của 3 giao thức AODV, IDSAODV và RAODV với tỷ lệ nút lỗ đen trên tổng số nút mạng tăng dần và tốc độ di chuyển của nút mạng là 5m/s. 0 50000 100000 150000 200000 250000 300000 350000 0% 2% 4% 6% 8% 10% Tổn g ph í (gó i tin ) Tỷ lệ nút lỗ đen tăng dần (%) Biểu đồ thể hiện Tổng phí AODV IDSAODV RAODV 76 - Kịch bản 3: So sánh hiệu suất của 3 giao thức AODV, IDSAODV và RAODV với tỷ lệ nút lỗ đen trên tổng số nút mạng tăng dần và tốc độ di chuyển của nút mạng là 10m/s. - Kịch bản 4: So sánh hiệu suất của 3 giao thức AODV, IDSAODV và RAODV với tỷ lệ nút lỗ đen trên tổng số nút mạng tăng dần và tốc độ di chuyển của nút mạng là 15m/s. - Kịch bản 5: So sánh hiệu suất của 3 giao thức AODV, IDSAODV và RAODV với tỷ lệ nút lỗ đen trên tổng số nút mạng tăng dần và tốc độ di chuyển của nút mạng là 20m/s. Khi trong mạng chưa xuất hiện nút tấn công lỗ đen: Với giao thức AODV, tỷ lệ phân phát gói tin thành công luôn đạt xấp xỉ 95% đối với cả 5 kịch bản. Độ trễ trung bình dao động thấp nhất là 41.43ms (hình 4.5) khi tốc độ di chuyển 5m/s và cao nhất là 167.83ms (hình 4.11) khi tốc độ di chuyển 15m/s. Với giao thức IDSAODV, tỷ lệ phân phát gói tin thành công không có nhiều khác biệt so với giao thức AODV, luôn đạt tỷ lệ rất cao xấp xỉ 90%, cá biệt khi tốc độ di chuyển mạng thay đổi 15m/s ở hình 4.10, tỷ lệ chỉ đạt 76.36%. Độ trễ trung bình cũng tương tự như giao thức AODV, thấp nhất là 50.86ms (hình 4.5) khi tốc độ di chuyển 5m/s và cao nhất là 309.02ms (hình 4.11) khi tốc độ di chuyển 15m/s. Với giao thức RAODV, tỷ lệ phân phát gói tin thành công đạt khoảng 80%. Độ trễ trung bình cũng lớn hơn so với 2 giao thức trên, thấp nhất là 147.65ms và cao nhất là 426.63ms. Tổng phí của giao thức RAODV cao hơn hẳn so với 2 giao thức AODV và IDSAODV, do RAODV quảng bá gói tin R-RREQ để tìm con đường đến nút nguồn thay vì truyền unicast giống AODV và IDSAODV. Như vậy, khi không xuất hiện tấn công lỗ đen trong mạng, hiệu suất của giao thức RAODV thấp hơn một chút so với 2 giao thức AODV và IDSAODV. Khi trong mạng xuất hiện tấn công lỗ đen: Với giao thức AODV, tỷ lệ phân phát gói tin thành công giảm mạnh khi trong mạng xuất hiện nút lỗ đen. Với 1 nút lỗ đen, tỷ lệ phân phát gói tin thành công chỉ đạt từ 8.76% - 19.07% tùy theo tốc độ di chuyển của nút mạng. Khi tăng dần số lượng nút lỗ đen trong mạng, tỷ lệ phân phát thành công giảm xuống dưới 10%, đặc biệt khi có 5 nút lỗ đen xuất hiện tỷ lệ phân phát thành công là 0% khi nút mạng đứng yên (hình 4.1). Độ trễ trung bình không thay đổi nhiều so với khi mạng không có tấn công lỗ đen, dao động ở mức 41.43ms - 167.83ms. 77 Với giao thức IDSAODV, khi mạng xuất hiện 1 nút lỗ đen, tỷ lệ phân phát gói tin thành công hiệu quả hơn so với giao thức AODV, từ 25.95% - 35.10% tùy theo tốc độ di chuyển của nút mạng. Khi số lượng nút lỗ đen tăng dần, tỷ lệ phân phát gói tin thành công cũng giảm dần, khi tốc độ di chuyển của nút mạng thay đổi, thấp nhất là 2.79% (hình 4.1) và cao nhất là 40.36% (hình 4.1). Độ trễ trung bình có gia tăng khi số lượng nút lỗ đen tăng dần, cao nhất là 404.72ms (hình 4.11) với tốc độ di chuyển nút mạng 15m/s. Với giao thức RAODV, tỷ lệ phân phát gói tin thành công rất cao, luôn giữ ở mức ổn định xấp xỉ 80% kể cả khi số lượng nút lỗ đen trong mạng tăng dần, và ở các tốc độ di chuyển khác nhau. Tuy nhiên, độ trễ trung bình không thay đổi nhiều so với khi mạng không có tấn công lỗ đen, độ trễ tương đối cao, từ 142.82ms (hình 4.8) lên đến 461.40ms (hình 4.14). Tổng phí của giao thức RAODV vẫn không thay đổi so với khi không có nút lỗ đen, cao hơn rất nhiều so với 2 giao thức AODV và IDSAODV. Như vậy, hiệu suất của giao thức RAODV cao hơn hẳn so với giao thức IDSAODV khi có tấn công lỗ đen xảy ra trong mạng. 78 KẾT LUẬN 1. Các kết quả của luận văn Luận văn đã tập trung nghiên cứu về các thách thức, mối đe dọa an ninh, ảnh hưởng của tấn công lỗ đen trong giao thức AODV, trình bày một số giải pháp phòng chống tấn công lỗ đen là IDSAODV và RAODV. Đồng thời luận văn cũng đã sử dụng công cụ mô phỏng NS-2, thực hiện mô phỏng quá trình tấn công lỗ đen và giải pháp phòng chống làm giảm ảnh hưởng của tấn công lỗ đen thông qua một số kịch bản khác nhau. Kết quả mô phỏng cho thấy các kết luận như sau: - Trong điều kiện bình thường, khi các nút mạng di chuyển với tốc độ từ 0 - 20m/s, giao thức AODV và IDSAODV đạt hiệu suất rất cao, giao thức RAODV thấp hơn một chút. - Khi mạng xuất hiện tấn công lỗ đen và số lượng nút lỗ đen tăng dần, hiệu suất của giao thức AODV giảm rõ rệt gây ra sự mất mát gói tin lớn. Giao thức IDSAODV tuy có làm giảm ảnh hưởng xấu từ nút lỗ đen, nhưng hiệu quả chưa cao, ưu điểm của giải pháp này là không phát sinh gói tin mới, không gây ra trễ trong mạng. Giao thức RAODV đạt hiệu suất cao và ổn định hơn hẳn giải pháp trước, tuy nhiên nhược điểm của giải pháp này là gây ra trễ trong mạng, tổng phí cao hơn nhiều lần so với 2 giao thức AODV và IDSAODV. 2. Hướng phát triển của đề tài Do hạn chế về mặt thời gian nên luận văn mới dừng lại ở mức độ nghiên cứu giao thức điển hình AODV và các giải pháp phòng chống tấn công lỗ đen trên giao thức này. Trong thời gian tới tác giả sẽ tiếp tục nghiên cứu mô phỏng, đánh giá kết quả của giải pháp với nhiều kiểu tấn công khác nhau trên các giao thức DSDV, DSR, OLSR Ngoài ra còn có một số vấn đề khác của các giao thức cần được xem xét như bảo mật kết hợp đảm bảo chất lượng dịch vụ. 79 TÀI LIỆU THAM KHẢO Tiếng Việt 1. Nguyễn Đình Việt, “Bài giảng đánh giá hiệu năng mạng máy tính”, 2010 Tiếng Anh 2. C.Perkins,“(RFC) Request for Comments 3561”, Category: Experimental, Network, Working Group, July 2003 3. Dr.Satya Prakash Singh, Ramveer Singh (2012), “Security challenges in mobile adhoc network”, International Journal of Applied Engineering Research, Volume 7 (11) 4. S. Mehla, B. Gupta, P. Nagrath, “Analyzing Security of Authenticated Routing Protocol (ARAN)”, International Journal of Computer Science and Engineering (IJCSE), Vol. 02, No. 03, 2010, 664-668, 2010 5. Manel Guerrero Zapata (2002), “Secure Ad hoc On-Demand Distance Vector Routing”, ACM Mobile Computing and Communications Review (MC2R), 6(3):106-107, July 2002 6. C. Kim, E. Talipov, and B. Ahn, “A Reverse AODV Routing Protocol in Ad Hoc Mobile Networks”, The International Conference on Emerging Directions in Embedded and Ubiquitous Computing (EUC’06), Seoul, 1-4 August 2006, pp.522-531. Springer, 2006 7. S. Dokurer, “Simulation of Black hole attack in wireless ad-hoc networks” Thesis Master in Computer Engineering Atihm University, September 2006 8. F.J.Ros and P.M.Ruiz (2004), “Implementing a New Manet Unicast Routing Protocol in NS-2”, December, 2004 9. C. P. Vandana and A. F. S. Devaraj, “MLDW - A MultiLayered Detection mechanism for Wormhole attacks in AODV based MANET”, in International Journal of Security, Privacy and Trust Management (IJSPTM) vol. 2, no. 3, (2013) June 10. H. Deng, W. Li and D. P. Agrawal (2002), “Routing Security in Wireless Ad Hoc Networks”,University of Cincinnati, IEEE Communication Magazine, October 2002 11. The VINT Project, “The NS manual”, A Collaboration between researches at UC Berkeley, LBL, USC/ISI, and Xerox PARC, March 14,2008 12. https://en.wikipedia.org/wiki/Open_Shortest_Path_First 80 13. Elizabeth M.Royer, C-K Toh (1999), “A review of current routing protocol for Ad hoc Mobile Wireless Networks”, IEEE Personal Communications, 6(2):46–55, April 1999 14. Charles E. Perkins, Pravin Bhagwat, “Highly Dynamic Destination- Sequenced Distance Vector Routing (DSDV) for Mobile Computers”, Comp Commun Rev, Oct. 1994 15. David B. Johnson, David A. Maltz, Josh Broch, “DSR: The Dynamic Source Routing Protocol for Multi-hop Wireless Ad Hoc Networks”, t. Imielinski and H.Korth , Eds Kluwer, 1996 16. Jathe S.R., Dakhane D.M. (2012), “A Review Paper on Black Hole Attack and Comparison of Different Black Hole Attack Tech-niques”, International Journal of Cryptography and Security, ISSN: 2249-7013 & E-ISSN: 2249-7021, Volume 2, Issue 1, pp.-22-26 17. Kimaya Sanzgiri, Bridget Dahill, Brian N. Levine, and Elizabeth M. Belding-Royer, “A Secure Routing Protocol for Ad Hoc Networks”. Proceedings of 10th IEEE International Conference on Network Protocols (ICNP’02), Paris, France, November 2002, pp. 78-90 18. Yi-an Huang and Wenke Lee, “Attack analysis and Detection for Ad-hoc Routing protocols”. Proceedings of the 7th International Symposium on Recent Advances in Intrusion Detection (RAID'04), French Riviera, France. September 2004 19. Mishra Amitabh, Nadkarni Ketan M., Ilyas Mohammad, “Chapter 30: Security in wireless ad-hoc networks, the handbook of Ad hoc wireless network”, CRC PRESS Publisher, 2003 20. C.Siva Ram Murthy, B. S. Manoj, “Ad hoc wireless networks: Architecture and Protocols”. Prentice Hall Publishers, May 2004, ISBN 013147023X 21. William Stallings, “Network Security essentials: Application and Standards”, Pearson Education , Inc 2003, ISBN 0130351288 22. Preeti Sachan, Pabitra Mohan Khilar (2011), “Securing AODV routing protocol in MANET based cryptographic authentication”, International Journal of Network Security & Its Applications, Volume 3 (5) 81 PHỤ LỤC Phụ lục 1 - Kịch bản mô phỏng # Define options set val(chan) Channel/WirelessChannel ;#Channel Type set val(prop) Propagation/TwoRayGround ;# radio-propagation model set val(netif) Phy/WirelessPhy ;# network interface type set val(mac) Mac/802_11 ;# MAC type set val(ifq) Queue/DropTail/PriQueue ;# interface queue type set val(ll) LL ;# link layer type set val(ant) Antenna/OmniAntenna ;# antenna model set val(ifqlen) 150 ;# max packet in ifq set val(nn) 50 ;# total number of mobilenodes set val(nnaodv) 49 ;# number of AODV mobilenodes set val(rp) AODV ;# routing protocol set val(x) 1000 ;# X dimension of topography set val(y) 1000 ;# Y dimension of topography set val(cstop) 600 ;# time of connections end set val(stop) 600 ;# time of simulation end set val(cp) "/kichban-n50-t600-1000-1000" ;#Connection Pattern Connections set val(cc) "/cbr" ;#CBR Connections set ns_ [new Simulator] $ns_ use-newtrace set tracefd [open aodv1.tr w] $ns_ trace-all $tracefd set namtrace [open aodv1.nam w] $ns_ namtrace-all-wireless $namtrace $val(x) $val(y) # set up topography object set topo [new Topography] $topo load_flatgrid $val(x) $val(y) # Create God create-god $val(nn) # Create channel #1 and #2 set chan_1_ [new $val(chan)] set chan_2_ [new $val(chan)] set god_ [God instance] # configure node, please note the change below. $ns_ node-config -adhocRouting $val(rp) \ -llType $val(ll) \ -macType $val(mac) \ -ifqType $val(ifq) \ -ifqLen $val(ifqlen) \ -antType $val(ant) \ -propType $val(prop) \ -phyType $val(netif) \ -topoInstance $topo \ -agentTrace ON \ -routerTrace ON \ -macTrace ON \ -movementTrace ON \ -channel $chan_1_ # Creating mobile AODV nodes for simulation puts "Creating nodes..." for {set i 0} {$i < $val(nnaodv)} {incr i} { 82 set node_($i) [$ns_ node] $node_($i) random-motion 0 ;#disable random motion } # Creating Black Hole nodes for simulation $ns_ node-config -adhocRouting blackholeAODV for {set i $val(nnaodv)} {$i < $val(nn)} {incr i} { set node_($i) [$ns_ node] $node_($i) random-motion 0 ;#disable random motion $ns_ at 0.01 "$node_($i) label \"blackhole node\"" } puts "Loading random connection pattern..." source $val(cp) # CBR Connections generated by cbrgen source $val(cc) # Define initial node position for {set i 0} {$i < $val(nn) } {incr i} { $ns_ initial_node_pos $node_($i) 30 } # CBR connections stops for {set i 0} {$i < 9 } {incr i} { $ns_ at $val(cstop) "$cbr_($i) stop" } # Tell all nodes when the simulation ends for {set i 0} {$i < $val(nn) } {incr i} { $ns_ at $val(stop).000000001 "$node_($i) reset"; } # Ending nam and simulation $ns_ at $val(stop) "finish" $ns_ at $val(stop).0 "$ns_ trace-annotate \"Simulation has ended\"" $ns_ at $val(stop).00000001 "puts \"NS EXITING...\" ; $ns_ halt" proc finish {} { global ns_ tracefd namtrace $ns_ flush-trace close $tracefd close $namtrace # exec nam aodv1.nam & exit 0 } puts "Starting Simulation..." $ns_ run 83 Phụ Lục 2 – Tính toán các tham số hiệu năng # ============================= ketqua.awk ======================== BEGIN { sends=0; recvs=0; droppedPackets=0; highest_packet_id=0; sum=0; recvnum=0; routing_packets=0; } { time = $3; packet_id = $41; #============= TINH TY LE PHAN PHOI GOI TIN THANH CONG ================ if (( $1 == "s") && ( $35 == "cbr" ) && ( $19=="AGT" )) { sends++; } if (( $1 == "r") && ( $35 == "cbr" ) && ( $19=="AGT" )) { recvs++; } #============= TINH DO TRE TRUNG BINH ================================= if ( start_time[packet_id] == 0 ) start_time[packet_id] = time; if (( $1 == "r") && ( $35 == "cbr" ) && ( $19=="AGT" )) { end_time[packet_id] = time; } else { end_time[packet_id] = -1; } #============= TINH TONG PHI ========================================== if (($1 == "s" || $1 == "f") && $19 == "RTR" && $35 =="AODV") routing_packets++; #============= SO GOI TIN BI MAT ====================================== if (( $1 == "d" ) && ( $35 == "cbr" ) && ( $3 > 0 )) { droppedPackets=droppedPackets+1; } #find the number of packets in the simulation if (packet_id > highest_packet_id) highest_packet_id = packet_id; } END { for ( i in end_time ) { start = start_time[i]; end = end_time[i]; packet_duration = end - start; if ( packet_duration > 0 ) { sum += packet_duration; recvnum++; } } delay = sum/recvnum; PDR = (recvs/sends)*100; printf("So goi tin phat = %.2f\n",sends); printf("So goi tin nhan = %.2f\n",recvs); printf("Ti le phan phat thanh cong = %.2f\n",PDR); printf("Do tre trung binh (ms)= %.2f\n",delay*1000); printf("So goi tin bi mat (packets) = %d\n",droppedPackets); printf("Tong phi = %d\n",routing_packets); }

Các file đính kèm theo tài liệu này:

  • pdfluan_van_danh_gia_ve_an_toan_giao_thuc_dinh_tuyen_trong_mang.pdf