Một số giải pháp khác

Một phần của tài liệu Nghiên cứu giải pháp chống tấn công lỗ đen trong mạng không dây di động (Trang 27)

Ngoài ra còn một số giải pháp để giải quyết vấn đề tấn công lỗ đen trong giao thức AODV. Payal N.Rai, Prashant B. Swadas [11] đã đưa ra giao thức DPRAODV (phát hiện, phòng ngừa và phản ứng AODV), trong đó đòi hỏi nút nguồn khởi tạo một số thủ tục kiểm tra để xác định độ tin cậy của bất kỳ nút trung gian nào tuyên bố rằng nó có tuyến đường đủ mới tới đích. Kỹ thuật chính của thuật toán là kiểm tra số sequence number (SN) trong gói tin RREP nhận đầu tiên với giá trị SN trong bảng định tuyến của nó, RREP được chấp nhận nếu số SN cao hơn giá trị trong bảng định tuyến của nó, đồng thời nó cũng so sánh số SN này với một giá trị ngưỡng, nếu cao hơn giá trị ngưỡng thì nút đó coi như là một nút độc hại. Giá trị ngưỡng được tự động cập nhật trong một khoảng thời gian và được tính bằng giá trị trung bình của các số SN khác nhau giữa bảng định tuyến và trong gói tin RREP. Các nút bị phát hiện này được coi là bất thường và đưa vào danh sách đen (blacklist) đồng thời phát gói tin ALARM sao cho gói RREP từ nút độc hại bị loại bỏ. Giải pháp này dẫn đến việc tăng trễ trung bình và chi phí định tuyến trong mạng.

Mohammad Al-Shurman, Yoo Seong-Moo và Seungjin Park [12] đề nghị hai cách tiếp cận khác nhau để giải quyết vấn đề tấn công lỗ đen. Giải pháp đầu tiên được đưa ra là nút gửi cần phải xác minh tính xác thực của các nút khởi tạo các gói RREP bằng cách sử dụng tính dự phòng của mạng. Ý tưởng của giải pháp này là chờ đợi việc nhận gói RREP đến từ nhiều hơn hai nút. Trong suốt quá trình chờ gói RREP trả lời từ các tuyến đường đó, nút nguồn vẫn tiếp tục đưa dữ liệu lên bộ đệm chờ đến khi xác định được tuyến đường an toàn sẽ bắt đầu gửi dữ liệu qua mạng. Khi nút nguồn nhận một gói RREP nào đó nó sẽ trích xuất tuyến đường đầy đủ và chờ đợi các gói RREP còn lại. Các nút trong tuyến đường đã được trích xuất sẽ có chung các chặng (shared hop - dựa vào đặc tính mạng Ad hoc, tuyến đường dự phòng trong hầu hết thời gian thường có chung

các chặng hoặc các nút). Từ những chặng này, nút nguồn có thể nhận ra các tuyến đường an toàn tới đích. Nếu không có những chặng dùng chung trong các tuyến đường dự phòng, nút nguồn sẽ chờ đợi các gói RREP khác cho đến khi một tuyến đường với các chặng dùng chung được xác định. Giải pháp này có thể đảm bảo tìm được một con đường an toàn đến đích, nhưng nhược điểm chính là tăng độ trễ trên mạng, Nhiều gói RREP phải được xử lý tại nút nguồn. Ngoài ra, nếu không xác định được các chặng dùng chung giữa các tuyến đường sẽ không thiết lập được tuyến đường. Giải pháp thứ hai là khai thác số tuần tự có trong nội dung tiêu đề của gói tin. Như chúng ta đã biết mỗi gói tin trong MANET có một số sequence number duy nhất và tăng dần tức là các gói tin tiếp theo phải có giá trị số SN cao hơn gói tin hiện tại. Thông thường trong quá trình định tuyến nút sẽ lưu giữ giá trị số SN trong gói tin cuối cùng mà nó đã nhận và sử dụng để kiểm tra việc nhận các gói tin liên tiếp có đến từ cùng một nguồn hay không. Trong giải pháp này, mỗi nút cần lữu giữ thêm hai bảng có kích thước nhỏ, một để lưu giá trị số SN cuối cùng trong gói tin cuối cùng gửi tới các nút và bảng còn lại lưu giá trị số SN cuối cùng trong gói tin cuối cùng nhận từ mỗi nút. Những bảng này được cập nhật khi có bất kỳ gói tin được nhận hay truyền đi. Theo nguyên tắc, nút gửi sẽ gửi broadcast gói RREQ tới các láng giềng của nó. Khi gói RREQ này tới đích, đích sẽ khởi tạo một gói RREP gửi trả lời nút nguồn, và gói RREP này chứa giá trị số SN cuối cùng được nhận bởi nút nguồn. Khi một nút trung gian nhận được gới RREQ và tuyên bố có một tuyến đường đủ mới tới đích đồng nghĩa với việc nó trả lời nút nguồn một gói RREP trong đó phải có cùng giá trị SN cuối cùng đã được lưu trữ trong bảng nói trên, nếu không đúng giá trị thì nút sẽ phát một cảnh báo ALARM chỉ ra rằng có sự tồn tại của một nút lỗ đen. Giải pháp này cung cấp một cách nhanh chóng và đáng tin cậy để xác định các bản tin trả lời đáng ngờ. Ưu điểm của giải pháp này là không phải tăng thêm chi phí cho tải toàn mạng bởi vì giá trị số SN được chứa trong tiêu đề gói tin.

Semih Dokurer [13], dựa trên ý tưởng hết sức đơn giản theo cơ chế làm việc của giao thức AODV đó là kiểm tra số SN của gói tin RREP trả lời. Nếu trong mạng hiện diện nút lỗ đen thì ngay lập tức nút lỗ đen này sẽ trả lời gói tin RREP với giá trị số SN được gán cao nhất và đương nhiên sẽ trả lời ngay lập tức tới nút nguồn gửi yêu cầu RREQ. Do đó, chỉ cần loại bỏ gói tin RREP đầu tiên nhận được và chấp nhận gói tin RREP thứ hai với giá trị số SN cao nhất để thiết lập tuyến đường truyền thông bằng cơ chế bộ đệm gói tin.

Tuy nhiên, trong một số trường hợp không phải bao giờ gói tin RREP với giá trị số SN lớn nhất nhận đầu tiên cũng đến từ nút lỗ đen, đó là khi nút đích hay nút trung gian trả lời gói RREP với giá trị số SN lớn nhất có vị trí gần nút đích hơn so với nút lỗ đen.

Trong phạm vi nghiên cứu của mình, luận văn xin được trình bày ý tưởng của giải pháp và mô phỏng lại dựa trên mã nguồn viết bằng ngôn ngữ C được tác giả chia sẻ tại http://www.dokurer.net/files/others/. Phần cài đặt mô phỏng tấn công lỗ đen và giải pháp làm giảm hiệu ứng của nút lỗ đen theo cách này sẽ được luận văn trình bày trong chương sau.

Tóm lại, đã có nhiều nghiên cứu nhằm mục đích chống tấn công lỗ đen trong giao thức định tuyến AODV. Tuy nhiên, để đảm bảo đáp ứng được tốt các yêu cầu bảo mật, toàn vẹn, tin cậy, xác thực nguồn gốc cần phải phối hợp nhiều kỹ thuật như mã hóa, triển khai hệ thống PKI, sửa đổi các giao thức định tuyến riêng cho mạng MANET vừa linh hoạt đối với sự thay đổi vị trí các nút mạng vừa đảm bảo tính bảo mật của hệ thống.

Việc so sánh các giải pháp và kỹ thuật được sử dụng để chống lại tấn công lỗ đen trong giao thức AODV được trình bày trong Phụ lục D.

2.4. Tổng kết

Chương này luận văn đã giới thiệu về giao thức định tuyến AODV, làm căn cứ đi vào giải thích chi tiết cách thức tiến hành tấn công lỗ đen trên giao thức định tuyến AODV. Đồng thời luận văn chọn đi sâu vào mô tả hai giải pháp đã được áp dụng để giải quyết vấn đề tấn công lỗ đen trên giao thức định tuyến AODV đó là sử dụng giao thức SAODV và giải pháp bổ sung bảng thông tin định tuyến (DRI) kết hợp với kiểm tra chéo (Cross Checking). Cuối chương luận văn trình bày giải pháp phát hiện dấu hiệu tấn công lỗ đen nhằm làm giảm ảnh hưởng của tấn công lỗ đen.

CHƢƠNG 3. ĐÁNH GIÁ ẢNH HƢỞNG CỦA TẤN CÔNG LỖ ĐEN TRÊN GIAO THỨC ĐỊNH TUYẾN AODV BẰNG MÔ PHỎNG 3.1. Phân tích lựa chọn phƣơng pháp mô phỏng để đánh giá

Hiện nay có nhiều phương pháp được sử dụng để đánh giá hiệu năng mạng máy tính [1], về cơ bản chúng ta có thể chia chúng thành 3 nhóm chính bao gồm đánh giá dựa vào mô hình giải tích (Analytic Models), đánh giá dựa vào mô hình mô phỏng (Simulation Models) và đo hiệu năng trên mạng thực (Measurement).

Với mô hình giải tích ta thấy các kĩ thuật thường được áp dụng bao gồm quá trình ngẫu nhiên, lý thuyết hàng đợi hay lý thuyết đồ thị, thời gian của mỗi kết nối cũng thay đổi một cách thống kê do đó việc áp dụng các kỹ thuật trên để đánh giá đo lường hiệu năng của hệ thống mạng là hợp lý. Phương pháp đo hiệu năng trên mạng thực tập trung vào các độ đo mà người đo mong muốn. Kết quả của việc đo cho phép thu thập các số liệu để giám sát cũng như lập mô hình dữ liệu cho các phương pháp đánh giá hiệu năng khác. Mô phỏng theo định nghĩa đơn thuần là sự bắt chước một cách giống nhất có thể các khía cạnh của sự vật, hiện tượng trong đời thực. Trong lĩnh vực đánh giá, mô phỏng mạng thì mô phỏng là việc làm các thí nghiệm mạng sử dụng kỹ thuật mà máy tính điện tử số hỗ trợ.

Áp dụng ba phương pháp trên vào mạng MANET, chúng ta thấy rằng với mục tiêu có thể thay đổi các tham số hệ thống và các cấu hình trong mạng miền rộng đạt được kết quả tốt mà chỉ mất chi phí thấp thì sử dụng mô hình giải tích là tốt nhất. Tuy nhiên, vấn đề gặp phải là việc xây dựng các mô hình giải tích với mạng Ad hoc là khó có thể giải được nếu không dùng các giả thiết đơn giản hóa bài toán hoặc sử dụng phương pháp chia nhỏ bài toán thành các mô hình nhỏ hơn. Với các mô hình giải được thì lại khác xa so với thực tế, khó có thể áp dụng và hầu như chỉ dùng phương pháp này cho giai đoạn đầu của quá trình thiết kế mạng. Sử dụng phương pháp đo là tốn kém và hầu như không thể bởi việc đo đạc lấy kết quả cần phải tiến hành tại nhiều điểm của mạng thực trong những thời điểm khác nhau và cần lặp lại nhiều lần trong một khoảng thời gian đủ dài. Ngoài ra việc giới hạn về chi phí cho các công cụ đo đạc cũng là vấn đề cần lưu ý. Với phương pháp mô phỏng chúng ta thấy rằng nó đòi hỏi chi phí chạy thấp cho mỗi lần chạy nhờ đó người nghiên cứu muốn chạy bao nhiêu lần và với độ chính xác tùy ý đều được. Nhờ những ưu điểm đó, khi nghiên cứu về mạng Ad hoc thì việc sử dụng mô phỏng vẫn là phương pháp phổ biến nhất hiện nay.

Trong luận văn này tôi sử dụng bộ mô phỏng NS2, một bộ mô phỏng mã nguồn mở và hỗ trợ tốt giao thức định tuyến trong mạng MANET.

3.2. Bộ mô phỏng NS 2 và cài đặt mô phỏng 3.2.1. Giới thiệu NS2 3.2.1. Giới thiệu NS2

NS-2 [14] là phần mềm mô phỏng mạng, hoạt động của nó được điều khiển bởi các sự kiện rời rạc. NS-2 được thiết kế và phát triển theo kiểu hướng đối tượng, được phát triển tại đại học California, Berkely. Bộ phần mềm này được viết bằng ngôn ngữ C++ và OTcl. Ban đầu bộ mô phỏng này được xây dựng trên nền hệ điều hành Unix/Linux, sau này một số phiên bản có thể cài đặt để chạy trên môi trường Windows.

Việc sử dụng NS-2 rất linh hoạt, người dùng sau khi xây dựng xong các kịch bản mô phỏng của mình có thể cho nó chạy lặp đi lặp lại nhiều lần với các tham số cấu hình hệ thống khác nhau.

Tùy vào mục đích của người dùng đối với kịch bản mô phỏng mà kết quả mô phỏng có thể được lưu trữ vào tệp vết (trace file) với khuôn dạng (format) được những người phát triển NS định nghĩa trước hoặc theo khuôn dạng do người sử dụng NS quyết định khi viết kịch bản mô phỏng. Nội dung tệp vết sẽ được tải vào trong các ứng dụng khác để thực hiện phân tích. NS đã định nghĩa 2 loại tệp vết:

- Nam trace file (file.nam): Chứa các thông tin về tô-pô mạng như: các nút mạng, đường truyền, vết các gói tin; dùng để minh họa trực quan mạng đã thiết lập.

- Trace file (file.tr): Tệp ghi lại vết của các sự kiện mô phỏng, tệp file dạng text, có cấu trúc, dùng cho các công cụ lần vết và giám sát mô phỏng như: Gnuplot, XGRAPH hay TRACEGRAPH.

NS-2 hỗ trợ mô phỏng tốt cho cả mạng có dây và mạng không dây. Bao gồm các ưu điểm nổi bật sau:

- Khả năng trừu tượng hóa: Với bộ mô phỏng NS2, chúng ta có thể thay đổi độ mịn các tham số đầu vào cho phù hợp với mục đich nghiên cứu. - Khả năng phát sinh kịch bản: Bên trong phần mềm NS2 bao gồm rất

nhiều các gói bổ sung với nhiều công cụ hỗ trợ cho việc xây dựng các kịch bản như việc tạo mẫu lưu lượng, mô hình chuyển động của các nút.

- Khả năng mô phỏng tương tác với mạng thực: Đây là một điều khá đặc biệt ở bộ mô phỏng NS2. Nó có một giao diện đặc biệt, cho phép lưu lượng thực đi qua nút mạng tương tác với bộ mô phỏng chạy trên nút mạng đó.

- Khả năng hiển thị trực quan: Trong bộ mô phỏng NS2, có công cụ hiển thị NAM giúp chúng ta thấy được hình ảnh đã miêu tả trong kịch bản mô phỏng qua đó tìm ra điểm chưa hợp lý trong tham số đầu vào. - Khả năng mở rộng được: Bộ mô phỏng NS2 hỗ trợ khả năng mở rộng

dễ dàng. Vì đây là phần mềm mã nguồn mở nên cộng đồng mã nguồn mở có thể đóng góp trực tiếp tùy theo mục đích nghiên cứu.

Trong quá trình nghiên cứu tôi sử dụng bộ mô phỏng NS2 “all-in-one- package” (chứa các gói ns, nam, tcl, otcl..) phiên bản 2.34 cài trên hệ điều hành Ubuntu 11.04.

3.2.2. Cài đặt mô phỏng cuộc tấn công lỗ đen

a. Mô hình không dây cơ bản trong NS2

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. (adsbygoogle = window.adsbygoogle || []).push({});

i) 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, ~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~ns/tcl/ex/wireless.tcl.

Giao thức định tuyến mạng không dây được hỗ trợ trong NS2 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 NS2 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:

Một phần của tài liệu Nghiên cứu giải pháp chống tấn công lỗ đen trong mạng không dây di động (Trang 27)