chương 1 dựa vào những tính chất và những ảnh hưởng của các dạng tấn công đã gây ra cho mạng và những ưu điểm, nhược điểm của các phương pháp nghiên cứu trước đây là cơ sở nghiên cứu cho tác giả đưa ra những phân tích đề xuất lựa chọn ứng dụng các thuật toán mã hóa xác thực phù hợp với mạng tổn hao năng lượng thấp. Trong đó, nội dung được trình bày bao gồm các nội dung chính sau: 4 Phân tích các cơ chế mã hóa xác thực. Đánh giá, so sánh các cơ chế mã hóa xác thực AES-CCM, AES-GCM và Salsa20-Poly1305. Đề xuất sử dụng Salsa20-Poly1305 trong mã hóa và xác thực thông điệp.
Đánh giá thực nghiệm. Kết luận chương 2. Trong chương 3, luận án trình bày về phát triển phương pháp phát hiện và phòng chống tấn công hố đen dựa trên svBLOCK bằng cách triển khai tích hợp cơ chế mã hóa xác thực Salsa20-Poly1305 nhằm phát hiện và phòng chống dạng tấn công hố đen vào giao thức định tuyến RPL. Trong đó, nội dung được trình bày bao gồm các nội dung chính sau: Đánh giá ảnh hưởng các dạng tấn công vào giao thức định tuyến RPL.
Dạng tấn công hố đen. Đề xuất phương pháp phát hiện và phòng chống tấn công hố đen dựa trên svBLOCK. Những hạn chế của svBLOCK trong phát hiện và phòng chống dạnh tấn công hố đen. Đánh giá thực nghiệm.
Kết luận chương 3. CÁC DẠNG TẤN CÔNG VÀ PHÒNG CHỐNG TẤN CÔNG VÀO GIAO THỨC ĐỊNH TUYẾN RPL 1. Giao thức định tuyến RPL RPL – IPv6 Routing Protocol for Low Power and Lossy Network là giao thức định tuyến được thiết kế cho mạng tổn hao năng lượng thấp nói chung và mạng cảm biến không dây nói riêng được sử dụng rộng rãi trong hệ thống IoT. RPL là giao thức gọn nhẹ, có khả năng định tuyến tốt và được trang bị một số chức năng bảo mật cơ bản.
RPL được IETF (Internet Engineering Task Force) phát triển năm 2012 [1] và được định nghĩa trong tiêu chuẩn RFC 6550 [2] hiện nay vẫn đang trong quá trình nghiên cứu. Sự phát triển của giao thức định tuyến RPL cũng nhận được sự quan tâm, đóng góp của rất nhiều tổ chức, cá nhân đến từ những tổ chức nghiên cứu khoa học, các trường đại học, viện nghiên cứu trên toàn thế giới để hoàn thiện với mục tiêu đặt ra là giải quyết các vấn đề về năng lượng, tổn hao năng lượng nhưng vẫn đáp ứng được chất lượng mạng như: Thời gian hội tụ, độ trễ, mất gói tin.RPL được phát triển dựa trên nền IPv6 [3] là giao thức định tuyến động dạng Distance - Vector, được sử dụng và kế thừa nhiều ưu điểm của giao thức TCP/IP nhằm đạt được những yêu cầu định tuyến. INSTANCE 1 INSTANCE 2 DODAG1 DODAG2 DODAG3 root root root 2 3 DIO 1 DIO DIO MP2P DAO P2MP DAO DIS 6 11 12 4 5 15 16 DIO DAO-ACK 10 DIO DAO DIS 13 14 17 19 7 8 9 18 Hình 1.1 Mạng RPL gồm hai Instance và ba DODAG [2] Mạng RPL được tổ chức theo cấu trúc phân cấp không có vòng lặp DAG (Directed Acyclic Graph) và gồm một hoặc nhiều DODAG (Destination Oriented DAG). Mỗi DODAG có một nút gốc với nhiệm vụ thu thập thông tin từ các nút khác trong mạng.
Việc xây dựng và duy trì DODAG đều dựa trên bản tin điều khiển DIO (DODAG Information Object). DIO được gửi thường xuyên và cung cấp thông tin để các nút có thể tính toán thứ hạng và lựa chọn nút cha nhằm phục vụ cho mục đích chuyển tiếp gói tin đến nút gốc. Giá trị thứ hạng tăng dần từ nút gốc đến nút lá. Thứ 6 hạng của nút cha phải thấp hơn thứ hạng của các nút con.
Bản tin điều khiển DIS (DODAG Information Solicitation) được dùng khi một nút mới muốn tham gia vào mạng, trong khi bản tin điều khiển DAO (DODAG Advertisement Object) có nhiệm vụ tạo ra đường đi xuống, hỗ trợ nút gốc gửi bản tin điều khiển khi cần. Các thiết bị RPL được kết nối với nhau theo một cấu trúc liên kết cụ thể kết hợp các cấu trúc liên kết lưới và cây được gọi là đồ thị chu kỳ theo hướng đích (DODAG). Một đồ thị DODAG được xây dựng từ một nút gốc là phần dữ liệu chìm của đồ thị. Một mạng có thể vận hành một hoặc nhiều phiên bản RPL bao gồm nhiều đồ thị DODAG như trong hình 1.1 Mỗi trường hợp RPL được liên kết với một hàm mục tiêu chịu trách nhiệm tính toán định tuyến tốt nhất tùy thuộc vào một tập hợp các số liệu và / hoặc các ràng buộc.
Chẳng hạn, chức năng này có thể giảm thiểu mức tiêu thụ năng lượng hoặc đơn giản là tính toán định tuyến ngắn nhất. Các gói tin trong giao thức định tuyến RPL có thể được chuyển tiếp theo ba mẫu lưu lượng như được hiển thị trong DODAG thứ ba tại hình 1.1: multipoint-to-point (MP2P) từ nút lá đến gốc thông qua các định tuyến đi lên; point-to-multipoint (P2MP) từ nút gốc đến nút lá theo các định tuyến đi xuống và point-to-point (P2P) được minh họa bằng dấu chấm mũi tên màu đỏ được sử dụng cả định tuyến đi lên và xuống. Những khái niệm chính: Quá trình thực hiện định tuyến RPL xây dựng các DAG (DODAG) là một hình trạng mạng mà mọi liên kết giữa các nút trong mạng đều có hướng nhất định, hướng đến DAG root và đảm bảo không tạo ra vòng lặp trong mạng. Các thành phần trong mô hình RPL DAG: RPL Instance: một RPL Instance là tập hợp của một hoặc nhiều DODAG sử dụng chung một hàm OF (objective function).
DAG Identifier (DAGID): mã nhận dạng của mỗi DAG trong mạng, tất cả các nút trong mạng đều lưu DAG-ID của DAG mà nó là một thành viên. DAG root: là một nút trong DAG có chức năng tập trung và xử lý dữ liệu từ các nút khác trong mạng gửi đến, mọi liên kết trong DAG đều hướng về DAG root và kết thúc tại DAG root. DAG thứ hạng: là thông số cho biết vị trí tương đối của nút so với DAG root. Những nút càng xa DAG root thì có thứ hạng càng cao.
Thứ hạng của nút có thể được tính thông qua khoảng cách hình học giữa nút và DAG root hoặc có thể được tính toán thông qua những hàm chức năng khác. Trong RPL, DAG root luôn có thứ hạng bằng 1. Thứ hạng được sử dụng để đánh giá mối quan hệ logic parent - sibling - children giữa các nút trong cùng một DAG, từ đó tránh các vòng lặp có thể xảy ra khi truyền gói tin đến DAG root. 7 SUB-DAG: là tập hợp các nút khác mà có đường dẫn đến nút gốc thông qua một nút.
Các nút trong sub-DAG của một nút luôn có thứ hạng cao hơn nút đó. DAG parent: trong cùng một DAG, nút A được gọi là nút cha của nút B khi A có khả năng kết nối trực tiếp đến B và A có thứ hạng thấp hơn B. Khi đó, A có thể đóng vai trò là next-hop của B trong quá trình truyền gói tin về DAG root và B là một nút con của A. DAG sibling: nút A là một sibling của nút B trong một DAG nếu chúng có cùng thứ hạng trong DAG đó.
DAG Grounded: một DAG gọi là grounded khi DAG root của nó thực hiện một nhiệm vụ cụ thể. DAG Interaction: mỗi DAG-ID và DAG sequence number cho phép xác định một DAG interaction. Khái niệm này cho phép mỗi nút trong mạng phân biệt các DAG mà nút đã tham gia với một DAG mà nút chưa từng là thành viên. Đồng thời khái niệm DAG interaction cũng cho phép cơ chế tránh các vòng lặp hoạt động hiệu quả hơn.
RPL Goal: là một host hoặc một tập hợp gồm nhiều host có khả năng đáp ứng được các Objective Function, phục vụ việc tập trung dữ liệu từ các DAG hoặc tạo kết nối giữa các DAG với các mạng và ứng dụng ngoài. Nút parent: trong cùng một DAG, nút A được gọi là cha của nút B khi A có khả năng kết nối trực tiếp đến B và A có thứ hạng thấp hơn B. Khi đó, A có thể đóng vai trò là next-hop của B trong quá trình truyền gói về nút DAG root và B là một nút con của A. Nút sibling: nút A là một nút sibling của nút B trong một DAG nếu chúng có cùng thứ hạng trong DAG đó.
Objective Function (OF): là hàm chức năng cung cấp các phương thức cho phép một nút lựa chọn được DAG phù hợp, tính toán thứ hạng và lựa chọn các nút cha trong DAG. DAG Floating: DAG gọi là floating khi DAG root của nó không thể chuyển dữ liệu hoặc không thực hiện một nhiệm vụ cụ thể nào. DAG sequence number: là một bộ đếm tuần tự được sử dụng trong quá trình sửa chữa và làm mới DAG. Khi một nút DAG root muốn xây dựng lại một DAG mới, số thứ tự được tăng lên một đơn vị và quảng bá tới các nút khác trong mạng.
8 Các bản tin điều khiển được sử dụng trong giao thức định tuyến RPL: Giao thức định tuyến RPL sử dụng 04 loại bản tin điều khiển gồm có: DAG Information Solicitation (DIS), DAG Information Object (DIO), Destination Advertisement Object (DAO) và bản tin DAO-ACK [4]. DIO là bản tin điều khiển quan trọng nhất, đóng vai trò quyết định trong việc xây dựng và duy trì DAG. DIO được tạo ra tại các DAG ROOT mang những thông tin định tuyến của DAG như: Instance, thứ hạng, metric, OCP.DIO được sử dụng để quảng bá các thông tin định tuyến của một DAG xác định trong mạng, phục vụ quá trình xây dựng DAG và định tuyến đi lên. Quá trình nhận và xử lý bản tin DIO cho phép một nút nhận diện và tham gia vào DAG phù hợp.
Từ đó lựa chọn các nút cha, xác định các thông số cấu hình và tiếp tục quảng bá thông tin DAG đến các nút khác trong mạng. DIS là một bản tin được gửi từ những nút tự do trong mạng nhằm quảng bá sự xuất hiện của nút, thăm dò sự xuất hiện của các nút lân cận và yêu cầu những nút khác phản hồi bằng các bản tin DIO. Bản tin DIS được gửi multicast khi nút ở trạng thái tự do và được gửi unicast đến một nút cha trong DAG khi muốn nhận lại một bản tin unicast DIO nhằm cập nhật các thông tin về DAG của nút cha đó. DAO là bản tin được sử dụng để quảng bá thông tin của các đích, được gửi từ những nút có thứ hạng cao hơn đến những nút có thứ hạng thấp hơn dọc theo DAG.
DAO được sử dụng chủ yếu để định tuyến theo hướng đi xuống.