Box Vị trí Mã hĩa Giải mã Nội dung bản rõ
Hello Client C’(S) S(P) 0
Cookies Server S’(S) C’(P) s(…), S’(S), N(S’(P)
Vouch Client C(S) S’(P) C’(P), S’(P)
Initiate Client C’(P) S’(S) V(…), C(P)
CMessage Client C’(P) S’(S) Data
SMessage Server S’(P) C’(S) Data
Mã hĩa CurveCP sử dụng nguyên tắc: “Khĩa mã hĩa và khĩa giải mã khơng đến từ cùng một bên cung cấp”. Cĩ nghĩa là Box chỉ được mã hĩa bằng khĩa của bên
96
gửi và giải mã bằng khĩa của bên nhận. Ưu điểm của phương pháp này là cho phép phục vụ mục đích xác thực và bảo mật thơng tin. Bởi vì Box chỉ được giải mã bằng khĩa phiên mật của bên nhận nên sự an tồn được đảm bảo trong khi, trong giao thức phân phối khĩa, chỉ cĩ bên nhận cĩ được khĩa phiên cơng khai của bên gửi nên sẽ đảm bảo chỉ cĩ bên nhận mới mã hĩa được thơng điệp đĩ.
Như vậy giao thức CurveCP sử dụng một cơ chế mã hĩa kết hợp xác thực và mã hĩa dữ liệu nhằm tiết kiệm cơng suất tính tốn cho mạng IoT nhưng vẫn đảm bảo mục đích chính là giúp mạng IoT nâng cao khả năng phịng chống các cuộc tấn cơng nghe lén và giả mạo dữ liệu nâng cao sự an tồn trong tính tồn vẹn và tính bảo mật của dữ liệu.
b. Điều chỉnh giao thức CurveCP
Các điều chỉnh này sẽ diễn ra trên cả ba loại thơng điệp bao gồm Thơng điệp Hello, Thơng điệp Cookies và thơng điệp Initiate. Cụ thể, tất cả 8 khĩa (mỗi nút 4 loại khĩa) bao gồm các khĩa như đã ký hiệu trên Bảng 3.3 bao gồm C(P), C(S), C’(P), C’(S) ở Client và S(P), S(S), S’(P) S’(S) ở Sever đều cĩ độ dài là 32 bit, sẽ được giảm xuống cịn 16 bits.
Cụ thể, tất cả 8 khĩa (mỗi nút 4 loại khĩa) bao gồm các khĩa như đã ký hiệu trên Bảng 3.4 bao gồm C(P), C(S), C’(P), C’(S) ở Client và S(P), S(S), S’(P) S’(S) ở Sever đều cĩ độ dài là 32 bits, sẽ được giảm cịn 16 bit. Với việc giảm như vậy, thời gian tính tốn của từng lần mã hĩa trong thuật tốn sẽ ít hơn, mặc dù vậy các điều chỉnh này cũng làm độ bảo mật của giao thức CurveCP bị giảm đi do độ dài khĩa ngắn sẽ khiến cho nguy cơ bị tấn cơng vét cạn thành cơng trở nên lớn hơn. Mặc dù vậy rõ ràng là mục tiêu của giao thức bảo mật như CurveCP, ngồi bảo vệ an tồn dữ liệu, cịn phải đảm bảo hiệu năng hoạt động của mạng IoT và vai trị của giao thức bảo mật sẽ là vơ nghĩa nếu hoạt động của giao thức đĩ làm mạng bị ngưng trệ và khơng đạt u cầu hiệu năng. Chính vì lý do đĩ, việc đánh đổi giữa độ mạnh trong tính bảo mật của giao thức CurveCP với độ tiêu thụ tài nguyên của giao thức này trong tồn hoạt động mạng IoT là cần thiết.
3.4.2. Thử nghiệm triển khai CurveCP với các điều chỉnh
Hệ điều hành Contiki cĩ những ưu điểm nổi trội, đã được triển khai với nhiều nghiên cứu khoa học khác nhau nên cĩ đầy đủ cơ sở hạ tầng, tài nguyên để thực hiện,
97
do đĩ để đảm bảo tính tối ưu, do vậy luận án tiếp tục sử dụng hệ điều hành này để mơ phỏng giải pháp CurveCP.
Thư viện mã nguồn “curvecp” về giao thức CurveCP trên hệ điều hành Contiki OS được viết bởi Jan Mojzis trong dự án phát triển cơ chế Tiny SSH cho mạng IoT với việc kế thừa các giao thức bảo mật trong Networking and Cryptography library (NaCl) cũng do nhĩm nghiên cứu của Daniel J. Bernstein thiết kế. Do giao thức này sử dụng thư viện MUSL được phát triển bởi Rich Felker vào năm 2011 [84], nên việc cần làm đầu tiên là cài đặt thư viện MUSL cũng như tồn bộ tham chiếu đến thư viện này trong Hệ điều hành Contiki OS sẽ mơ phỏng mạng IoT. Việc cài thư viện MUSL bao gồm 2 bước là tải thư viện mã nguồn “musl” về và cấu hình trên hệ điều hành Contiki OS.
Giao thức này chỉ hoạt động bên trong mơi trường mơ phỏng mạng IoT nên phải tiếp tục tải thư mục “contiki-master” chứa các mã nguồn mơ phỏng hoạt động nút mạng IoT trong thực tế cũng như mơi trường thí nghiệm Cooja. Mã nguồn “curvecp” sẽ được cài đặt trong thư mục “apps” của “contiki” vì đây là thư mục lưu trữ các giao thức bên ngồi bổ trợ cho mạng IoT. Ngồi ra, vì cĩ hai kịch bản là kịch bản CurveCP cĩ điều chỉnh giảm độ dài mã, và kịch bản CurveCP thơng thường khơng cĩ tùy biến, nên cần sao lưu thành hai thư mục giống nhau là “curvecp” và “improved-curvecp”. Với những kịch bản điều chỉnh trên giao thức CurveCP thì việc giảm độ dài mã khĩa sẽ được diễn ra trên file cấu hình “crypto-block.IoT” trong thư mục “src” ở thư mục “improved-curvecp” (mã lệnh được mơ tả trong Phụ lục Hình 10 (PL)).
Sau khi đã cài đặt xong thì việc cuối cùng là cài đặt tham chiếu lên kịch bản mơ phỏng nằm ở file “project-conf.IoT” trong thư mục “rpl-udp” cĩ đường dẫn “contiki-master/examples/ipv6/” bằng cách thêm vào tham chiếu sau:
Với CurveCP nguyên bản: APPS += curvecp
Với CurveCP cĩ điều chỉnh: APPS += improved-curvecp
Ngồi ra, cũng cần lưu ý rằng giao thức CurveCP cĩ hai phiên bản riêng biệt: một dành cho Server và một dành cho Client. Trước các tệp cấu hình thơng số nút mạng phải thêm dịng mã nguồn tham chiếu đến phiên bản của giao thức CurveCP.
98
File “sensor-node.c”, nút Client thêm dịng: initiate_server_curvecp().
Sau quá trình cấu hình thì cấu hình tồn bộ phục vụ giao thức CurveCP đã hồn thành. Cơng việc tiếp theo là xây dựng mơ hình và kịch bản thí nghiệm.
Mục tiêu của thí nghiệm là cho thấy sự khả thi trong triển khai giao thức CurveCP vào mạng IoT mơ phỏng, cho thấy hoạt động của giao thức CurveCP khơng gây ảnh hưởng lớn về tốc độ, hiệu năng thơng thường và mạng IoT vẫn hoạt động bình thường. Sẽ cĩ 3 tình huống trên cùng mơ hình mạng IoT là kịch bản cĩ cài giao thức CurveCP điều chỉnh và kịch bản khơng cài giao thức CurveCP, cài đặt CurveCP nguyên bản, từ đĩ sẽ dễ dàng so sánh và đối chiếu giữa các trường hợp với nhau, thời gian là mỗi tình huống là 60 phút.
3.4.3. Kết quả thí nghiệm mơ phỏng với giải pháp điều chỉnh CurveCP
Trên tồn bộ WSNs, trên từng kịch bản cả ba thơng số đo đạc, giá trị từng thơng số đo đạc sẽ lấy trung bình của tất cả các nút mạng, khơng phân biệt vị trí của nút mạng. 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à τ = 2345+2
Kết quả sẽ được biểu thị trong Bảng 3.9: