Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 48 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
48
Dung lượng
1,68 MB
Nội dung
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ ĐẶNG XUÂN ĐÍCH PHÁT HIỆN XÂM NHẬP THEO THỜI GIAN THỰC TRONG MẠNG INTERNET CỦA VẠN VẬT Ngành: Công nghệ thông tin Chuyên ngành: Truyền liệu mạng máy tính LUẬN VĂN THẠC SĨ CƠNG NGHỆ THƠNG TIN Ngƣời hƣớng dẫn khoa học: TS NGUYỄN ĐẠI THỌ Hà Nội, 2016 LỜI CẢM ƠN Lời đầu tiên, xin gửi lời cảm ơn chân thành đến thầy giáo, Tiến sĩ Nguyễn Đại Thọ Thầy tận tình bảo, hướng dẫn tơi suốt q trình nghiên cứu, tìm hiểu, hồn thành luận văn Tơi xin bày tỏ lời cảm ơn chân thành đến thầy cô giảng dạy thời gian học cao học, thầy cô giúp trang bị kiến thức để phát triển tương lai Tôi xin cảm ơn đến bạn bè, người thân gia đình ủng hộ, động viên vượt qua khó khăn sống Hà Nội, ngày 28 tháng năm 2016 Học viên Đặng Xn Đích TĨM TẮT Luận văn tập trung nghiên cứu cải tiến giải pháp phát xâm nhập theo thời gian thực mạng Internet vạn vật đề xuất năm 2013 SVELTE [6] SVELTE thực tái cấu trúc mạng thiết bị trung tâm, thiết bị trung tâm nơi trung gian gửi nhận liệu thiết bị bên mạng Internet bên Việc tái tái cấu trúc thực dựa thông tin từ thiết bị mạng gửi cho thiết bị trung tâm Trong q trình gửi nhận thơng tin, việc mát gói tin cơng mạng, không quán thông tin thiết bị xảy Một module SVELTE giải vấn đề Luận văn tập trung vào cải tiến thuật toán phát không quán thông tin thiết bị mạng kỹ thuật gán nhãn thời gian vector [1] Tôi tự gọi hệ thống cải tiến với tên SVELTE-VC Kết mơ cho thấy thuật tốn cải tiến có hiệu so với phương pháp cũ Tỉ lệ phát thành công công giữ SVELTE tỉ lệ phát sai giảm xuống đáng kể Từ khóa: SVELTE, IDS, Internet of Things ABSTRACT My graduation thesis will present an improvement to intrusion detection system in the Internet of Things, SVELTE [6] that was introduced in 2013 SVELTE reconstructs the network topology on a control device, this device functions as sending and receiving data centre among internal and external network nodes The reconstruction is based on informations that the control device has received from internal network devices When transfer is in progress, because of the loss of information or network attacks, the inconsistency of informations among devices would happen Therefore, a module in SVELTE was created to solve this problem My Thesis proposes an improvement to the inconsistent information detection algorithm in SVELTE, using a novel vector clock timestamp technique [1] Improved system is also called SVELTE-VC The simulation results indicate that our improved system has achieved better performance: the detection rate for attack is the same as SVELTE's while the wrong alarm rate significantly reduces Keyword: SVELTE, IDS, IoT Lời cam đoan Tôi xin cam đoan vấn đề trình bày luận văn xây dựng hệ thống phát xâm nhập theo thời gian thực mạng Internet vạn vật tìm hiểu cá nhân hướng dẫn Tiến sĩ Nguyễn Đại Thọ Tất tham khảo từ nghiên cứu liên quan trích dẫn, nêu rõ nguồn gốc cách rõ ràng từ danh mục tài liệu tham khảo luận văn Trong luận văn này, cam đoan không chép nguyên tài liệu, cơng trình nghiên cứu người khác mà không rõ tài liệu tham khảo Hà Nội, ngày 28 tháng năm 2016 Học viên Đặng Xuân Đích MỤC LỤC MỞ ĐẦU 1.1 Bối cảnh chung 1.2 Các cơng trình nghiên cứu liên quan 1.3 Mục đích luận văn 1.4 Kết đạt 1.5 Cấu trúc luận văn HỆ THỐNG PHÁT HIỆN XÂM NHẬP SVELTE 2.1 Định tuyến RPL chế công sinkhole 2.2 Các thành phần phát xâm nhập SVELTE 2.2.1 6LoWPAN Mapper 2.2.2 6LoWPAN Client 12 CẢI TIẾN GIẢI THUẬT PHÁT HIỆN SỰ KHÔNG NHẤT QUÁN VỀ THÔNG TIN TRONG MẠNG 14 3.1 Hạn chế SVELTE 14 3.2 Cải tiến SVELTE sử dụng nhãn thời gian Vector 16 3.2.1 Khái niệm đồng hóa tiến trình 16 3.2.2 Xác định trật tự cho kiện hệ phân tán 16 3.2.3 Thiết lập nhãn thời gian Vector SVELTE 20 MÔ PHỎNG 26 4.1 Cài đặt cấu hình 26 4.2 Kịch mô 27 4.3 Kết mô 29 4.3.1 Tỉ lệ phát 30 4.3.2 Năng lượng tiêu thụ 33 KẾT LUẬN VÀ PHƢƠNG HƢỚNG PHÁT TRIỂN 36 TÀI LIỆU THAM KHẢO 37 PHỤ LỤC 39 BẢNG CÁC KÝ HIỆU, CHỮ VIẾT TẮT Viết tắt Tiếng Anh Tiếng Việt IoT Internet of Things Mạng Internet vạn vật 6LoWPAN IPv6 over Low-power Wireless Personal Area Network Mạng thiết bị không dây lượng thấp 6BR 6LoWPAN Border Router Thiết bị định tuyến biên 6LoWPAN IDS Intrusion detection system Hệ thống phát xâm nhập 6Mapper 6LoWPAN Mapper Tên module hệ thống SVELTE RPL Giao thức định tuyến cho Routing Protocol for Low Power mạng tổn hao lượng and Lossy Network thấp mạng cảm biến khơng dây DAG Directed Acyclic Graph Đồ thị có hướng khơng tuần hồn DAG ROOT Directed Acyclic Graph ROOT Gốc đồ thị có hướng khơng tuần hồn Destination-Oriented DAG Đồ thị có hướng khơng tuần hồn có điểm đến định hướng DODAG DANH SÁCH HÌNH VẼ Hình 1.1 - Ví dụ mạng Internet of Things Hình 2.1 - Chọn Node cha (parent) thuật toán định tuyến RPL Hình 2.2 - Cơ chế cơng sinkhole attack Hình 2.3 – Hệ thống phát xâm nhập SVELTE Hình 2.4 - Cấu trúc mapping request packet Hình 2.5 – Luồng xử lý liệu SVELTE Hình 2.6 - Cấu trúc mapping response packet 13 Hình 3.1 – Ví dụ SVELTE không phân biệt không quán thân mạng 14 Hình 3.2 – Ví dụ cập nhật Logic Lamport timestamp 19 Hình 3.3 – Ví dụ cập nhật nhãn thời gian Vector 20 Hình 3.4 – Cấu trúc mapping response packet sử dụng nhãn thời gian vector 21 Hình 3.5 – Ví dụ mơ phát khơng qn thân mạng 24 Hình 4.1 - Giao diện chương trình cooja ubuntu 26 Hình 4.2 - Đặt tên thư mục để chạy SVELTE-VC 27 Hình 4.3 - Mơ với Node, có Node bị attacker điều khiển 28 Hình 4.4 - Mơ với 16 Node, có Node bị attacker điều khiển 28 Hình 4.5 - Mơ với 32 Node, có Node bị attacker điều khiển 29 Hình 4.6 - Mơ sinkhole attack với 26 node mạng 29 Hình 4.7 – Tỉ lệ dương tính sai với kịch node SVELTE SVELTE-VC 31 Hình 4.8 – Tỉ lệ dương tính sai với kịch 16 node SVELTE SVELTE-VC 31 Hình 4.9 – Tỉ lệ dương tính sai với kịch 32 node SVELTE SVELTE-VC 32 Hình 4.10 – Tỉ lệ dương tính với kịch node SVELTE SVELTE-VC 32 Hình 4.11 – Tỉ lệ dương tính với kịch 16 node SVELTE SVELTE-VC 32 Hình 4.12 – Tỉ lệ dương tính với kịch 32 node SVELTE SVELTE-VC 33 Hình 4.13 – Năng lượng sử dụng tồn mạng 30 phút 34 Hình 4.14 – Điện sử dụng trung bình node 30 phút 35 Luận văn thạc sĩ CNTT Đặng Xuân Đích MỞ ĐẦU 1.1 Bối cảnh chung IoT thuật ngữ khoa học dùng để đối tượng nhận biết (identifiable) tồn chúng kiến trúc mang tính kết nối Cụm từ đưa Kevin Ashton vào năm 1999 Ông nhà khoa học sáng lập Trung tâm Auto-ID đại học MIT, nơi thiết lập quy chuẩn toàn cầu cho RFID (một phương thức giao tiếp khơng dây dùng sóng radio) số loại cảm biến khác IoT sau dùng nhiều ấn phẩm đến từ hãng nhà phân tích Hình 1.1 - Ví dụ mạng Internet of Things Internet of Things phát triển mạnh mẽ, nhận nhiều quan tâm Dưới số dự đoán từ chuyên gia Businessinsider, blog tài tiếng, dự đốn tương lai IoT: - Internet of Things thị trường thiết bị lớn giới Vào năm 2019 số lượng thiết bị IOT gấp đôi tổng số smartphone, PC, tablet, thiết bị đeo thông minh wearable cộng lại Luận văn thạc sĩ CNTT Đặng Xuân Đích - IOT mang lại 1700 tỷ USD giá trị gia tăng cho kinh tế toàn cầu năm 2019 Con số bao gồm phần cứng, phần mềm, chi phí lắp đặt, dịch vụ quản lý, giá trị kinh tế gia tăng - Giá trị thiết bị IOT chạm mốc 6,7 tỷ USD vào năm 2019 Trong doanh thu từ phần cứng chiếm 8% - khoảng 50 triệu USD, nhà sản xuất phần mềm công ty sở hạ tầng thu lợi nhiều từ cổ phiếu IOT - Sự tăng trưởng IOT mang lại hiệu lớn chi phí thấp nhà, nơi làm việc thành phố tương lai Tuy nhiên, việc sử dụng thiết bị điện tử hệ thống an ninh vấn đề nan giải - Nền tảng IOT thiếu chuẩn công nghệ tiêu chuẩn chung để tương thích sử dụng với thiết bị Hiện có tiêu chuẩn (hoặc quy định) cho thiết bị chạy tảng Vấn đề cấp bách phải chuẩn hoá tảng IOT giải vấn đề an ninh (Trích, genk.vn – Internet of Things năm tới) Rõ ràng, IoT thay đổi hồn tồn cách sống người tương lai Khi thứ “Internet hóa”, người dùng hồn tồn điều khiển chúng từ đâu, cần điện thoại có kết nối Internet Nhưng thách thức cho nhà quản lý, “vạn vật” kết nối, tính bảo mật bị đặt dấu hỏi lớn trở nên quan trọng Các thiết bị mạng IoT kết nối với thông qua thiết bị điều khiển, thiết bị điều khiển máy tính, smartphone, Các thiết bị có khả kết nối trực tiếp Internet, dễ dàng cho kẻ cơng sử dụng mạng Internet xâm nhập công thiết bị mạng Do IoT mạng kết nối mà phần tử truyền tải thơng tin, giao tiếp với nhau, việc truyền tải gói tin cần bảo vệ chặt chẽ Mặc dù giải pháp mã hóa xác thực thực IoT IoT bị ảnh hưởng nặng số kiểu công đặc biệt sinkhole attack, selective forwarding attack Vì cần có giải pháp chống lại kiểu công dạng Giải Luận văn thạc sĩ CNTT Đặng Xn Đích MƠ PHỎNG 4.1 Cài đặt cấu hình Tơi chạy mơ mơi trường giả lập Contiki Cooja, node sử dụng Tmote Sky Để cài Contiki 2.6, trước hết ta vào trang chủ ContikiOS [8], tải mã nguồn về, phiên phiên 2.7 Trong luận văn này, Contiki cài đặt hệ điều hành Ubuntu 12.04 Sau download mã nguồn về, giải nén mã nguồn, bật terminal di chuyển tới thư mục Contiki\tool\cooja Để chạy Cooja ta dùng lệnh: sudo ant run Để chạy lệnh trên, ta phải cài ant ubuntu trước Để cài đặt ant, sử dụng lệnh: sudo apt-get -u install ant Giao diện Cooja: Hình 4.1 - Giao diện chương trình cooja ubuntu Để thực mô sử dụng mã nguồn SVELTE cải tiến, ta chạy tool Cooja phần trên, lưu ý để chạy mơ có 26 Luận văn thạc sĩ CNTT Đặng Xuân Đích IDS, ta phải tạo thêm folder giống folder chứa module phát xâm nhập thêm đuôi “-evil” cuối, folder chứa mã nguồn node bị kẻ cơng điều khiển Như hình, folder Contiki-IDS-IDS folder chứa mã nguồn SVELTE-VC, folder Contiki-IDS-IDS-evil folder chứa mã nguồn node bị kẻ công điều khiển Hình 4.2 - Đặt tên thư mục để chạy SVELTE-VC 4.2 Kịch mô Để tiện việc so sánh kết với báo [6], luận văn sử dụng kịch mô tương tự với báo [6], cụ thể sau Mô nhiều lần với số lượng node Node, 16 Node, 32 Node Đối với số lượng node, ta chạy 30 lần mơ với vị trí node mạng khác Đối với lần chạy, kết lấy thời điểm phút, 10 phút, 20 phút, 30 phút Đối với kịch công, mô chạy với kiểu công sinkhole attack: o Node bị kẻ công điều khiển báo cáo sai giá trị rank cho 6Mapper Như phân tích trên, ta sử dụng giải thuật cải tiến với kỹ thuật gán nhãn thời gian vector để phát node sai khác có phải khơng qn q trình xây dựng mạng hay công sinkhole gây Từ đánh giá tỉ lệ phát thành cơng node độc hại thuật toán gốc thuật toán cải tiến, số lượng cảnh báo hệ thống đưa Các ví dụ cấu trúc mạng với số lượng node mạng node, 16 node, 32 node 27 Luận văn thạc sĩ CNTT Đặng Xuân Đích Hình 4.3 - Mơ với Node, có Node bị attacker điều khiển Hình 4.4 - Mơ với 16 Node, có Node bị attacker điều khiển 28 Luận văn thạc sĩ CNTT Đặng Xn Đích Hình 4.5 - Mơ với 32 Node, có Node bị attacker điều khiển 4.3 Kết mô Chạy mô SVELTE-VC Đây mô hệ thống phát xâm nhập với sinkhole attack với 26 node node bị cơng Hình 4.6 - Mơ sinkhole attack với 26 node mạng 29 Luận văn thạc sĩ CNTT Đặng Xuân Đích Các loại Node mơ phỏng: - Node màu xanh 6BR, node thu thập liệu sensor mạng để phân tích liệu, đưa cảnh báo - Node màu vàng node bình thường mạng - Node màu tím mote bị kẻ cơng điều khiển, có hành động gây ảnh hưởng xấu đến mạng, sinkhole attack, node gửi rank nhỏ để node hàng xóm định tuyến qua Với kịch mơ trình bày phần 4.2 Tôi đánh giá tỉ lệ phát thành công node độc hại xâm nhập vào hệ thống Tỉ lệ tính số lượng node độc hại phát thành công so với tổng số lượng node độc hại xâm nhập vào hệ thống tỉ lệ dương tính tức tỉ lệ cảnh báo thành công tổng số cảnh báo mà hệ thống đưa Việc phát thời gian thực có ý nghĩa phát node độc hại xâm nhập vào Trong tất mô phỏng, 6Mapper cấu hình để yêu cầu liệu phân tích liệu sau phút Do đó, việc yêu cầu phân tích liệu sau phút, nhiên không đem lại kết liệu chưa thu thập Thời gian phát sớm khoảng phút Theo thuật tốn gốc tỉ lệ phát node độc hại đơi khơng cao đưa cảnh báo sai hay phát sai node độc hại xâm nhập vào hệ thống, ngun nhân sai khác thơng tin node thân mạng gây trình bày Với thuật tốn cải tiến có sử dụng nhãn thời gian vector, tỉ lệ phát sai node độc hại giảm rõ rệt, nhiều trường hợp khơng có phát sai 4.3.1 Tỉ lệ phát Kết mô với kịch kẻ công khai báo sai rank cho 6Mapper nhằm tránh phát hành vi gian lận mạng Kết cho thấy tỉ lệ phát thành công công ngang so với giải thuật gốc, đồng thời hệ thống phát sai khác thông tin node sai khác trình xây dựng DODAG bị công giả mạo thông tin từ giảm cảnh báo sai Tỉ lệ dương tính sai tính tổng số cảnh báo sai số cảnh báo mà hệ thống đưa Tỉ lệ dương 30 Luận văn thạc sĩ CNTT Đặng Xuân Đích tính tính tổng số cảnh báo phát thành công tổng số cảnh báo đưa False Positive Rate with nodes 100 Rate 80 60 40 20 Minutes 10 Minutes 20 Minutes Runtime (Minutes) SVELTE SVELTE-VC 30 Minutes Hình 4.7 – Tỉ lệ dương tính sai với kịch node SVELTE SVELTE-VC False Positive Rate with 16 nodes 100 Rate 80 60 40 20 Minutes 10 Minutes 20 Minutes Runtime (Minutes) SVELTE SVELTE-VC 30 Minutes Hình 4.8 – Tỉ lệ dương tính sai với kịch 16 node SVELTE SVELTE-VC 31 Luận văn thạc sĩ CNTT Đặng Xuân Đích False Positive Rate with 32 nodes 100 Rate 80 60 40 20 Minutes 10 Minutes 20 Minutes Runtime (Minutes) SVELTE SVELTE-VC 30 Minutes Hình 4.9 – Tỉ lệ dương tính sai với kịch 32 node SVELTE SVELTE-VC True Positive Rate with nodes 100 Rate 80 60 40 20 Minutes 10 Minutes 20 Minutes Runtime (Minutes) SVELTE SVELTE-VC 30 Minutes Hình 4.10 – Tỉ lệ dương tính với kịch node SVELTE SVELTE-VC True Positive Rate with 16 nodes 100 Rate 80 60 40 20 Minutes 10 Minutes 20 Minutes Runtime (Minutes) SVELTE SVELTE-VC 30 Minutes Hình 4.11 – Tỉ lệ dương tính với kịch 16 node SVELTE SVELTE-VC 32 Luận văn thạc sĩ CNTT Đặng Xuân Đích True Positive Rate with 32 nodes 100 Rate 80 60 40 20 Minutes 10 Minutes 20 Minutes Runtime (Minutes) SVELTE SVELTE-VC 30 Minutes Hình 4.12 – Tỉ lệ dương tính với kịch 32 node SVELTE SVELTE-VC 4.3.2 Năng lượng tiêu thụ Các node mạng Internet vạn vật thường sử dụng lượng thấp mà chủ yếu Pin, nên nguồn lượng tài nguyên khan thiết bị Ở sử dụng Contiki – Powertrace module Contiki OS để đo lượng tiêu thụ sử dụng node hệ thống Tơi sử dụng 3V để tính tốn sử dụng giá trị danh nghĩa (Bảng 4.1) điều kiện hoạt động Tmote Sky [12] MCU idle radio off coi chế độ lượng thấp hay LPM MCU on radio off coi thời gian CPU Thời gian radio nhận truyền với MCU on coi nghe truyền riêng biệt Thời gian mà đo lượng tiêu thụ mơ có RPL RPL có thêm Network mapper 30 phút Typical conditions Min NOM Max Unit Voltage 2.1 3.6 V MCU on, Radio RX 21.8 23 mA MCU on, Radio TX 19.5 21 mA MCU on, Radio off 1800 2400 MCU idle, Radio off 54.5 1200 MCU standby 5.1 21.0 Bảng 4.1 - Tmote Sky Operating Conditions 33 Luận văn thạc sĩ CNTT Đặng Xuân Đích Từ lượng tiêu thụ tồn mạng, tơi tính tốn lượng tiêu thụ trung bình sau: Khi chia lượng tiêu thụ cho tổng số node, tơi có điện trung bình node hệ thống Với kết nhận được, nhận thấy lượng tiêu thụ hệ thống điện trung bình node so sánh mạng có RPL mạng RPL có 6Mapper mạng nhỏ (8 nodes, 16 nodes) có độ chênh lệch không đáng kể, từ 32 node trở lên thấy rõ chênh lệch Energy (mJ) 200000 150000 100000 50000 Nodes 16 Nodes 32 Nodes Number of Nodes RPL Only RPL & Mapper network 64 Nodes Hình 4.13 – Năng lượng sử dụng tồn mạng 30 phút 34 Luận văn thạc sĩ CNTT Đặng Xuân Đích Avarage Power per Node (mW) 1.8 1.6 1.4 1.2 0.8 0.6 0.4 0.2 Nodes 16 Nodes 32 Nodes Number of Nodes RPL Only RPL & Mapper network 64 Nodes Hình 4.14 – Điện sử dụng trung bình node 30 phút 35 Luận văn thạc sĩ CNTT Đặng Xuân Đích KẾT LUẬN VÀ PHƢƠNG HƢỚNG PHÁT TRIỂN Xây dựng hệ thống phát xâm nhập nhu cầu cần thiết cho mạng Internet vạn vật Do phát triển không ngừng công nghệ phát triển IoT, lỗ hổng ngày nhiều phương pháp công kẻ xấu thực Vì vậy, việc nghiên cứu phát triển hệ thống cần thiết Kết nghiên cứu luận văn sau: - Luận văn trình bày đặc điểm hệ thống phát xâm nhập mạng Internet vạn vật SVELTE - Luận văn nghiên cứu, cải tiến thuật tốn phát khơng qn mạng Kết thu cho thấy thuật toán cải tiến có hiệu so với thuật tốn cũ - Contiki OS hệ điều hành phổ biến để mô hệ thống phát xâm nhập Qua thời gian nghiên cứu, tìm hiểu, tơi hiểu rõ chế hoạt động process Contiki OS, hiểu biết thuật toán định tuyến RPL Do thời gian kinh nghiệm có hạn, luận văn tồn số hạn chế việc thực mô với số lần chưa đủ nhiều, dẫn đến sai sót kết Do thời gian tới, mô chạy lại với nhiều lần để có kết khách quan SVELTE thiết kế để mở rộng với kiểu cơng khác Hệ thống mở rộng với việc phát wormhole attack cách mơ hình hóa lại mạng qua đồ họa máy tính Việc khả thi giải phát phát wormhole attack mạng không dây đề xuất [10] 36 Luận văn thạc sĩ CNTT Đặng Xuân Đích TÀI LIỆU THAM KHẢO [1] Sukumar Ghosh, Distributed Systems: An Algorithmic Approach Distributed Systems, Second Edition,2015 [2] J Hui, P Thubert, Compression Format for IPv6 Datagrams Over IEEE 802.15.4-Based Networks, RFC 6282, September 2011 [3] C Karlof, D Wagner, Secure routing in wireless sensor networks: attacks and countermeasures, Ad Hoc Networks (2) (2003) 293–315 [4] N Kushalnagar, G Montenegro, C Schumacher, IPv6 over LowPower Wireless Personal Area Networks (6LoWPANs): Overview, Assumptions, Problem Statement, and Goals, RFC 4919, August 2007 [5] Linus Wallgren, Shahid Raza, and Thiemo Voigt Routing Attacks and Countermeasures in the RPL-Based Internet of Things International Journal of Distributed Sensor Networks, vol 2013, Article ID 794326, 11 pages, 2013 [6] Shahid Raza, Linus Wallgren, Thiemo Voigt SVELTE: Real-time Intrusion Detection in the Internet of Things Ad Hoc Networks (Elsevier), 11(8), 2661-2674, November, 2013 [7] Amin, Syed Obaid, et al “A novel coding scheme to implement signature based IDS in IP based Sensor Networks.” Integrated Network Management-Workshops, 2009 IM’09 IFIP/IEEE International Symposium on IEEE, 2009 [8] Kasinathan, Prabhakaran, et al “Denial-of-Service detection in 6LoWPAN based internet of things.” Wireless and Mobile Computing, Networking and Communications (WiMob), 2013 IEEE 9th International Conference on IEEE, 2013 [9] Jun, Chen, and Chen Chi “Design of Complex EventProcessing IDS in Internet of Things.” Measuring Technology and Mechatronics Automation (ICMTMA), 2014 Sixth International Conference on IEEE, 2014 [10] W Wang, B Bhargava, Visualization of wormholes in sensor networks, in: Proceedings of the 3rd ACM Workshop on Wireless Security, ACM, 2004, pp 51–60 37 Luận văn thạc sĩ CNTT Đặng Xuân Đích [11] http://www.contiki-os.org [12] http://www.eecs.harvard.edu/~konrad/projects/shimmer/references/tmot e-sky-datasheet.pdf [13] https://tools.ietf.org/html/rfc6550 [14] https://www.net.in.tum.de/fileadmin/TUM/NET/NET-2011-07-1/NET2011-07-1_09.pdf [15] Trần Thị Lý, Xây dựng giải pháp phân tán chống đăng ký trùng vé vận tải đường sắt, 2013 38 Luận văn thạc sĩ CNTT Đặng Xuân Đích PHỤ LỤC Hàm kiểm tra không quán hiệu chỉnh thông tin đƣợc cài đặt 6Mapper int correct_rank_inconsistencies(void) { PRINTF("PHAT HIEN XAM NHAP BANG CACH KIEM TRA SU KHONG NHAT QUAN RANK| VECTOR \n"); int i, j, k; int inconsistencies = 0; for (i = 0; i < node_index; ++i) network[i].visited = 0; for (i = 1; i < node_index; ++i) { // If we haven't gotten any information for this node, ignore it if (!valid_node(&network[i])) continue; for (j = 0; j < network[i].neighbors; ++j) { // If we haven't gotten any information from this neighbor, ignore it if (!valid_node(network[i].neighbor[j].node) || network[i].neighbor[j].node == &network[0]) continue; int diff; if (network[i].neighbor[j].node->rank > network[i].neighbor[j].rank) diff = network[i].neighbor[j].node->rank - network[i].neighbor[j].rank; else diff = network[i].neighbor[j].rank - network[i].neighbor[j].node->rank ; if(network[i].neighbor[j].node->vclock[j]< network[i].neighbor[j].vclock[j]) { network[i].visited1++; network[i].neighbor[j].node->visited1++; } else // If the absolute difference is > 20% of the ranks averages // (r1+r2)/2*0.2 => (r1+r2)/10 if (diff > (network[i].neighbor[j].rank + network[i].neighbor[j].node>rank)/10) { PRINTF("Node %d is claiming node %d has rank %d, while it claims it has %d\n", (uint8_t) network[i].id, (uint8_t) network[i].neighbor[j].node->id, network[i].neighbor[j].rank, network[i].neighbor[j].node->rank); 39 Luận văn thạc sĩ CNTT Đặng Xuân Đích network[i].visited++; network[i].neighbor[j].node->visited++; } } } for (i = 0; i < node_index; ++i) { if (network[i].visited > INCONSISTENCY_THREASHOLD) { PRINTF("Rank inconsistency: "); PRINT6ADDR(network[i].ip); PRINTF("\n"); inconsistencies = 1; // Update the rank of the lying node with the information from one of its // neighbors struct Node * neighbor = NULL; for (k = 0; k < network[i].neighbors; ++k) { for (j = 0; j < network[i].neighbor[k].node->neighbors; ++j) { if (network[i].neighbor[k].node->neighbor[j].node->id == network[i].id) { neighbor = network[i].neighbor[k].node; network[i].rank = neighbor->neighbor[j].rank; network[i].vclock[i] = neighbor->neighbor[j].vclock[j]; break; } } } if (neighbor == NULL) { PRINTF("Could not correct ranks\n"); continue; } PRINTF("Updating information with info from node %x\n", neighbor->id); // As we not trust this node, overwrite the neighboring information // with the info from the nodes we trust for (j = 0; j < network[i].neighbors; ++j) { if(network[i].neighbor[j].node->visited rank; network[i].neighbor[j].ts = network[i].neighbor[j].node->timestamp; network[i].neighbor[j].vclock[j]=network[i].neighbor[j].node->vclock[j]; } PRINTF("New rank: %d\n", network[i].rank); } } return inconsistencies; } 40