Kịch bản 2: Thí nghiệm với thiết bị thực tế Zolertia

Một phần của tài liệu Luận án nghiên cứu phát triển giải pháp nâng cao an toàn trong mạng internet of things (Trang 68 - 78)

Tương tự thí nghiệm trên Hệ điều hành Contiki, xây dựng cơ sở vật chất cho thí nghiệm cũng như thiết lập kịch bản dữ liệu. Tuy nhiên, trước khi thực hiện hai

bước trên, cơng việc cần làm cho kịch bản thí nghiệm trên thiết bị Zolertia là thiết lập mơi trường thực tế bao gồm chuẩn bị và cài đặt thiết bị mơi trường thực địa.

Về việc chuẩn bị và cài đặt thiết bị, xây dựng quá trình tương tác với các thiết bị thực tế của tác giả được thể hiện trong sơ đồ trong Hình 2.4 dưới đây.

(a) (b)

Hình 2.4. Mơ hình tương tác với thiết bị Zolertia

Quá trình tương tác với thiết bị Zolertia bao gồm hai bước. Bước (a) tải mã nguồn từ máy tính cài hệ điều hành Contiki lên thiết bị Zolertia thơng qua mã lệnh trên Terminal và dữ liệu sẽ truyền qua cổng USB. Sau Bước (a), các nút sẽ biên dịch mã nguồn và thực hiện các kịch bản thí nghiệm dựa trên vai trị của mình. Khi đĩ thì máy tính cá nhân vẫn duy trì kết nối USB với các thiết bị nhưng khơng cịn can thiệp vào hoạt động của thiết bị nữa mà nhiệm vụ của máy tính là truy cập vào bên trong các thiết bị để đọc thơng số, phân tích các gĩi tin truyền và nhận của các nút mạng như Bước (b) trong sơ đồ Hình 2.4. Cách tương tác này hiệu quả và thuận tiện vì từ một máy tính cĩ khả năng tải mã nguồn cĩ kịch bản mơ phỏng lên từng thiết bị đồng thời thu thập dữ liệu từ các thiết bị đĩ mà khơng can thiệp vào hoạt động của thiết bị, để đảm bảo tính độc lập như hoạt động các cảm biến IoT trên mơi trường thực tế.

Về mơi trường, các thiết bị được đặt ngẫu nhiên trong mơi trường khơng gian phịng làm việc, điều kiện ngồi trời (khơng cĩ điều hịa) vào mùa hè với khí hậu nĩng ẩm ở miền Bắc Việt Nam, nhiệt độ phịng là 32oC, độ ẩm 83%. Đây cũng là mơi trường mà hầu hết sẽ triển khai các hệ thống IoT trên lãnh thổ Việt Nam chẳng hạn như bên trong các nhà máy, dưới bĩng râm trong các cảng biển, kho bãi. Khoảng cách giữa các nút là từ 2m đến 5m, các nút hồn tồn cĩ khả năng truyền dữ liệu trực tiếp cho nhau. Đây cũng là mơ hình kết nối của các mạng quy mơ vừa và nhỏ thường phục vụ các phịng làm việc, tổ sản xuất hoặc phịng cách ly tiêu

chuẩn trong bệnh viện với số nút từ 4 đến 10 thiết bị, tương ứng với các cảm biến thu thập dữ liệu và một thiết bị đĩng vai trị liên kết với các cổng kết nối. Về mặt kỹ thuật để cĩ thể mơ phỏng sát thực tế nhất, tác giả và các cộng sự đã để khơng cách ly mơi trường thí nghiệm với các thiết bị điện tử xung quanh. Trong phịng làm việc cũng là nơi cĩ chịu tác động các nguồn phát điện từ như mạng khơng dây, hệ thống điện dân dụng tịa nhà như đèn chiếu sáng, tủ lạnh,… điều này sẽ làm ảnh hưởng chất lượng kết nối.

Tương tự thí nghiệm trên Hệ điều hành mơ phỏng Contiki, thí nghiệm với thiết bị thực tế sẽ bao gồm 3 tình huống và 2 mơ hình mạng cĩ hình thái giống nhau. Ba kịch bản bao gồm Tình huống TH1: mạng hoạt động dưới điều kiện bình thường, khơng cài Overhearing cải tiến; Tình huống TH2: mạng hoạt động dưới điều kiện bị tấn cơng DoS, khơng cài Overhearing cải tiến và Tình huống TH3: mạng hoạt động dưới điều kiện bị tấn cơng DoS, cĩ cài Overhearing cải tiến. Hai mơ hình mạng sẽ bao gồm mạng cĩ nút Bots và mạng khơng cĩ nút Bots. Về mặt vật lý, do các thiết bị được kết nối vào máy tính thơng qua cổng USB mà cĩ thể được theo dõi trên máy tính thơng qua tệp /dev trên hệ điều hành Contiki với bốn định danh là ttyUSB0, ttyUSB1, ttyUSB2 và ttyUSB3. Thiết bị kết nối qua cổng

ttyUSB0 đĩng vai trị nút Coordinator, trong khi các thiết bị kết nối qua cổng ttyUSB1, ttyUSB2 và ttyUSB3 sẽ đĩng vai trị là nút Sensor đối với mơ hình mạng

khơng cĩ nút Bots. Trong mơ hình mạng cĩ nút Bots thì thiết bị kết nối qua cổng

Hình 2.5. Kết nối mơ phỏng giải pháp với thiết bị thực

Chú thích trong Hình 2.5, thiết bị được đánh số 1 là thiết bị kết nối qua cổng

ttyUSB0 đĩng vai trị nút Coordinator, thiết bị được số 2 và số 3 là thiết bị kết nối

qua cổng ttyUSB1 và ttyUSB2 đĩng vai trị là nút Cảm biến và thiết bị được số 4 là thiết bị kết nối qua cổng ttyUSB3 đĩng vai trị là nút Cảm biến trong kịch bản KB1, đĩng vai trị là nút Bots trong Kịch bản KB2 và KB3. Hình dưới đây là sơ đồ kết nối các thiết bị mơ phỏng.

(a) WSN khơng cĩ nút Bots (b) WSN cĩ nút Bots Hình 2.6. Sơ đồ kết nối các thiết bị mơ phỏng

Trong Hình 2.6, các thiết bị Zolertia được đánh định danh theo cổng USB bao gồm ttyUSB0, ttyUSB1, ttyUSB2, ttyUSB3 kết nối được ký hiệu là các hình trịn mà trong đĩ, nút Coordinator cĩ màu đen, nút cảm biến cĩ màu trắng cịn Bots cĩ

họa tiết gạch chéo. Các thiết bị cảm biến được đặt ngẫu nhiên trong khơng gian ba chiều và cĩ thể kết nối trực tiếp với nhau bằng kết nối khơng dây mà ký hiệu là mũi tên nét đứt. Các thiết bị đĩng vai trị nút Cảm biến sẽ gửi đều đặn các gĩi tin cho thiết bị đĩng vai trị nút Coordinator. Ngồi ra, các thiết bị Zolertia đều kết nối qua dây cáp chuẩn USB 3.0 mà ký hiệu là đường nét liền tới một chiếc máy tính cá nhân để phục vụ tải mã nguồn cũng như truy cập lấy dữ liệu từ thiết bị. Ở WSNs cĩ nút Bots thì nút Bots sẽ gửi thực hiện tấn cơng DoS vào nút Coordinator gây tắc nghẽn mạng. Mỗi thí nghiệm thực hiện trong 10 tiếng, kết quả sẽ lấy kết quả trung bình của cả 4 thiết bị.

Do đã cĩ sẵn các tệp mã nguồn C mà được kiểm chứng thơng qua giả lập Cooja nên việc cần làm là sao chép mã nguồn thư mục ra tệp “examples/zolertia/zoul/” là thư mục chứa file cấu hình tương tác với các thiết bị thực tế qua cổng USB. Để tránh nhầm lẫn với các tệp mã nguồn C trong giả lập Cooja thì các tệp mã nguồn C sẽ được đổi tên bằng cách thêm tiền tố “zoul-” ở phía trước. Như vậy, ba tệp mã nguồn C cấu hình là zoul-server.c, zoul-Client.c và zoul-

malicious.c.

Như đã đề cập, quá trình tương tác với các thiết bị sẽ bao gồm hai cơng đoạn là tải mã nguồn lên và lấy dữ liệu từ mã nguồn. Tải mã nguồn lên Z1 với câu lệnh (xem tại Phụ lục Hình 3 (PL)).

Nhiệm vụ là tham chiếu đến tệp “zoul” cũng như tải mã nguồn lên thiết bị qua cổng USB ttyUSB0 (xem Phụ lục Hình 4(PL)).

Tiếp theo sẽ tải mã nguồn lên các thiết bị khác. Ở kịch bản KB1, tất cả các thiết bị cịn lại qua cổng ttyUSB1, ttyUSB2, ttyUSB3 đều đĩng vai trị nút cảm biến. Vị trí gõ lệnh là ở trong thư mục “zoul” (xem Phụ lục Hình 5 (PL)).

Sang đến kịch bản KB2, thiết bị kết nối qua cổng ttyUSB3 đĩng vai trị Bots vì vậy sẽ phải tải lại mã nguồn lên thiết bị qua các lệnh (xem Phụ lục Hình 6 (PL)).

Lưu ý, cơ chế tải mã nguồn lên thiết bị là cơ chế ghi đè, nghĩa là xĩa mã nguồn cũ và ghi hồn tồn mã nguồn mới lên.

Ở Tình huống TH3 là kịch bản cĩ Overhearing, tiến hành sao chép hai tệp là

zoul-server.c và zoul-Client.c thành hai tệp mới là zoul-overhearing-server.c và zoul-overhearing-Client.c. Hai tệp mã nguồn này đã được chèn code thực thi thuật

tốn Overhearing lên. Sau đĩ sẽ ghi đè hai tệp mã nguồn này lên các thiết bị. Tệp

zoul-overhearing-server.c sẽ ghi đè lên thiết bị kết nối qua cổng ttyUSB0 là thiết bị

đĩng vai trị nút Coordinator. Trong khi đĩ Tệp zoul-overhearing-Client.c sẽ ghi đè lên thiết bị kết nối qua cổng ttyUSB1 và ttyUSB2 là thiết bị đĩng vai trị nút cảm biến. Riêng thiết bị kết nối qua cổng ttyUSB3 vẫn đĩng vai trị nút Bot nên khơng cần ghi đè.

Sang đến Bước thu thập dữ liệu, việc cần làm là truy cập tới các thiết bị thơng qua 4 Terminal tương ứng với các thiết bị. Lệnh sau được sử dụng với Terminal thực hiện kết nối với thiết bị đĩng vai trị nút Coordinator (xem Phụ lục Hình 7 (PL)).

Với các Terminal thì vẫn sử dụng câu lệnh tương tự, chỉ thay bằng tên cổng USB tương ứng với tên các thiết bị mà Terminal sẽ trỏ đến. Sau đĩ thì các bản tin gửi nhận của các nút sẽ được in ra Terminal tương tự như Mote Output trong thí nghiệm giả lập với Cooja đã trình bày ở phần trước. Do nhu cầu thu thập dữ liệu, các thiết bị thường xuyên được kết nối với máy tính, năng lượng liên tục được bổ sung nên việc đo đạc năng lượng tiêu thụ là khơng cần thiết. Do vậy thơng số đo đạc sẽ chỉ bao gồm tỉ lệ truyền nhận thành cơng và độ trễ.

Dữ liệu được thu thập từ Terminal sẽ được chạy trong đoạn mã nguồn

javascript phân tích gĩi tin đã sử dụng ở Simulation Script Editor. Cụ thể, đoạn mã

nguồn javascript tính PDR cũng như Độ trễ sẽ được lưu lại thành tệp “calculate-

measurement.js”. Tệp javascript sẽ được thực thi thơng qua cơng cụ biên dịch mã

nguồn Javascript nodejs trên Hệ điều hành Contiki. Tệp sẽ nhận đầu vào dữ liệu từ Terminal thơng qua thao tác Copy/ Paste sau đĩ xuất đầu ra là kết quả tính tốn qua file “output.csv” tương tự như với thí nghiệm giả lập.

Cũng tương tự như kịch bản mơ phỏng, trong kịch bản thực tế, tất cả các nút Client sẽ gửi một bản tin cho nút Server trong khoảng thời gian 10s. Bản tin này được giả định là mang thơng tin cụ thể thu thập từ mơi trường xung quanh tùy thuộc vào nhiệm vụ cụ thể của mỗi nút cảm biến (nhiệt độ, độ ẩm). Như vậy, với thời gian thí nghiệm là 10 tiếng, về mặt lý thuyết một nút cĩ khả năng gửi tối đa 3600 bản tin. Tuy nhiên, trong hầu hết trường hợp, các nút phải xây dựng cây DAG trước khi thiết lập ổn định mạng WSN trong khoảng từ 20 – 50 phút đầu nên trong trường

hợp mạng bình thường, một nút sẽ gửi khoảng 3300 – 3400 bản tin.

Theo mơ hình RPL, khi các nút Client ở xa sẽ truyền cho các nút Client gần nút Server hơn đến khi tới nút Client cĩ thể truyền tới nút Server.

2.4.3. Kết quả mơ phỏng tấn cơng, so sánh đánh giá

a. Kịch bản 1: Thí nghiệm mơ phỏng trên Hệ điều hành Contiki

Kết quả mơ phỏng bao gồm 2 phần là thống kê số gĩi tin mỗi nút mạng gửi nhận trong quá trình hoạt động của mạng cảm biến và hiệu năng tồn mạng với các trường hợp khác nhau.

- Thống kê số gĩi tin gửi nhận trong mỗi nút mạng.

Bảng 2.3 thống kê số gĩi tin mà mỗi nút mạng nhận được cũng như số gĩi tin mà mỗi nút mạng đã gửi trong suốt quá trình truyền tin của mạng. Lấy hai tình huống là TH1 và TH2 để thống kê số gĩi tin, do TH1 đã cài giải pháp Overhearing nên đảm bảo tính trực quan và bám sát thực tế, trong khi TH2 là cuộc tấn cơng DoS khơng được ngăn chặn bởi giải pháp Overhearing nên cĩ thể dễ dàng nhận biết thay đổi trong số gĩi tin các nút gửi nhận trong quá trình tấn cơng DoS.

Bảng 2.3. Thống kê số gĩi tin gửi nhận trung bình trong mỗi nút mạng a. Mơ hình Lưới 4 x 4:

Nút TH1 TH2

Số gĩi tin gửi Số gĩi tin nhận Số gĩi tin gửi Số gĩi tin nhận

2 45 80 76 80 3 147 71 160 104 4 139 92 67 40 5 97 63 75 70 6 80 144 230 149 7 341 88 745 39 8 234 107 84 39 9 129 66 203 96 10 245 85 301 111 11 249 65 259 146 12 195 55 124 92 13 93 52 110 69 14 97 30 216 81 15 194 41 246 61 16 56 38 78 74 TB 228 282

+ Giá trị trung bình: TH1: µ1= 228; TH2: µ2=282 + Độ lệch chuẩn đối với trường hợp 1: 91

+ Độ lệch chuẩn với trường hợp 2: 167

+ Trong TH1, ngưỡng 1 với K1 = µ1 + = 319; K2 = µ1 + = 410; K3 = µ1 + =501

+ Trong TH2, ngưỡng 1 với K1: µ2 + = 449; K2: µ2 + = 616; K3: µ2 + =783. + Trong TH1, mạng hoạt động bình thường, khơng cĩ xuất hiện Bot.

+ Trong TH2 cĩ thể xác định được nút 07 là nút Bot vì số lượng gĩi tin là 784 > k3.

b. Mơ hình Lưới 5 x 5

Nút TH1 TH2

Số gĩi tin gửi Số gĩi tin nhận Số gĩi tin gửi Số gĩi tin nhận

2 42 75 59 64 3 166 76 165 96 4 49 49 213 83 5 35 13 64 85 6 61 55 97 95 7 60 109 187 136 8 280 88 275 123 9 156 80 805 53 10 110 14 138 78 11 145 58 187 71 12 275 99 277 101 13 315 88 235 117 14 257 81 201 136 15 100 49 139 83 16 163 52 175 64 17 240 67 259 91 18 263 89 719 35 19 233 92 242 85 20 112 50 134 65 21 52 22 71 55 22 149 59 95 52 23 120 70 139 32 24 138 41 135 73 25 51 16 69 44

Tương tự như tính tốn tương tự như trường hợp trên cho thấy nút 9 và 18 là các nút Bot.

c. Mơ hình Lưới 6 x 6

Số gĩi tin gửi Số gĩi tin nhận Số gĩi tin gửi Số gĩi tin nhận 2 105 68 113 87 3 126 51 205 92 4 157 54 182 93 5 150 39 212 106 6 50 19 85 52 7 42 73 70 81 8 74 115 145 138 9 245 93 346 140 10 148 76 307 95 11 163 46 254 93 12 149 26 191 107 13 105 54 203 89 14 186 70 382 106 15 216 86 269 104 16 153 44 232 121 17 117 42 729 66 18 129 44 213 93 19 97 26 165 32 20 143 40 326 130 21 135 50 236 110 22 155 64 609 84 23 157 60 254 94 24 60 20 175 89 25 83 21 104 24 26 58 22 278 117 27 61 22 729 109 28 206 56 123 65 29 198 39 209 80 30 75 25 166 50 31 55 8 72 15 32 54 17 130 66 33 86 21 101 69 34 145 52 142 79 35 112 62 173 82 36 73 12 100 33

Tương tự như các tính tốn trên, cĩ thể xác định được nút 17, 22, 27 là các nút Bot.

Từ các kết quả trên, cho thấy thuật tốn đã chỉ ra được các nút Bot, từ đĩ cĩ thể thấy giải pháp Overhearing đề xuất là khả thi.

Với thiết bị Tmote Sky thì các hằng số tính năng lượng từ Cơng thức (3)

Phần 2.3 sẽ cĩ giá trị như sau dựa trên thơng số kỹ thuật của hãng Moteiv[55]: Et =

19.5; Er = 21.8; Eo = 1.8; EI = 0.545 và τ =

Bảng 2.4 chỉ ra kết quả thí nghiệm kịch bản mơ phỏng tấn cơng DoS với thời gian chạy mơ phỏng Cooja là 50 phút (thời gian vừa đủ để cĩ thể theo dõi được hậu quả của tấn cơng DoS). Cĩ 3 mơ hình lưới, mỗi mơ hình lưới cĩ 4 Tình huống.

Tổng cộng sẽ cĩ 12 thí nghiệm phải thực hiện với tổng thời gian là 600 phút. Bảng 2.4. Kết quả thơng số thí nghiệm kịch bản thí nghiệm mơ phỏng

Mơ hình Kịch bản PDR (%) Latency (ms/m) Energy (mJ) Lưới 4x4 TH0 95.13 674.92 139.05 TH1 94.98 796.55 148.46 TH2 13.59 56480.86 1204.05 TH3 91.34 1076.25 201.04 Lưới 5x5 TH0 97.03 618.76 127.66 TH1 96.31 642.23 132.27 TH2 15.83 51317.93 1185.78 TH3 93.69 983.27 195.13 Lưới 6x6 TH0 99.02 399.26 117.15 TH1 98.74 431.22 128.98 TH2 17.02 45208.63 1142.13 TH3 95.11 892.10 169.74

Sau đây là những nhận định được rút ra từ Bảng 2.3 và Bảng 2.4 trên thí nghiệm kịch bản mơ phỏng:

+ Trong trường hợp mạng bình thường ở TH1, khơng tấn cơng DoS, số lượng các gĩi

Một phần của tài liệu Luận án nghiên cứu phát triển giải pháp nâng cao an toàn trong mạng internet of things (Trang 68 - 78)