3. SỬ DỤNG MÃ HĨA NHẸ CHO CÁC THIẾT BỊ IOT TÀI NGUYÊN YẾU
3.4. Triển khai CurveCP trên mạng WSN
3.4.1. Tổng quan về CurveCP
Như đã trình bày ở trên, các cuộc tấn cơng nghe lén vào tính bảo mật và các cuộc tấn cơng giả mạo vào tính tồn vẹn của thơng tin gây ra nhiều thiệt hại cho hệ thống mạng IoT về cả tài chính lẫn niềm tin. Trước tình hình đĩ, các nhà khoa học đã thiết kế các giao thức bảo mật dành riêng cho các thành phần trong mạng IoT và một trong số đĩ là giao thức mã hĩa CurveCP. Giao thức CurveCP đã được giới thiệu vào năm 2011 [30] và đã qua nhiều lần cải tiến và hồn thiện về mặt lý thuyết. Mặc dù vậy, chưa cĩ một nghiên cứu nào cĩ thể cài đặt hồn chỉnh giao thức này và thí nghiệm
93
với một mơ hình mạng cĩ thật trong thực tế. Về mặt lý thuyết, việc triển khai một mơ hình phụ trợ đặc biệt là các mơ hình bảo mật cĩ cơ chế mã hĩa luơn luơn tạo ra sự tiêu thụ rất nhiều tài nguyên, ảnh hưởng đến hoạt động mạng IoT và thậm chí cĩ thể làm ngưng trệ tồn mạng. Chính vì lẽ đĩ, phần nghiên cứu này tập trung vào điều chỉnh và cài đặt mã nguồn của giao thức CurveCP trên mơ phỏng hoạt động IoT ở hệ điều hành Contiki OS để so sánh hiệu năng mạng đã cài đặt giao thức CurveCP với mạng chưa cài đặt giao thức CurveCP và từ đĩ đánh giá tính khả thi của việc cài đặt CurveCP trên mạng IoT.
CurveCP là một giao thức bảo mật kết hợp mã hĩa, sử dụng mật mã Elliptic Curve Cryptography, với sự gọn nhẹ, linh hoạt, độ an tồn tương đối tốt thơng qua các cơ chế mã hĩa, phù hợp với mơi trường IoT. Vị trí cài đặt của giao thức CurveCP được mơ tả như Trong Hình 3.6.
Hình 3.6. Vị trí cài đặt của Giao thức CurveCP
Từ Hình 3.6, dễ dàng nhận ra giao thức CurveCP được chia làm hai phiên bản là CurveCP Server dành cho một nút Sink cĩ vai trị tập hợp dữ liệu và CurveCP Client dành cho các nút Sensor. Giao thức CurveCP kiểm sốt đường truyền của mỗi nút mạng IoT, mọi dữ liệu đi ra và vào các nút mạng này đều được CurveCP bắt chặn gĩi tin để tiến hành mã hĩa – giải mã trước khi được xử lý bởi nút mạng.
a. Cơ chế mã hĩa trong CurveCP
Giao thức CurveCP tuân theo cơ chế mã hĩa dịng (Stream-Cipher), sử dụng trên tầng Ứng dụng của mạng IoT. CurveCP cĩ 4 đặc điểm quan trọng gồm những đặc điểm sau:
- Thứ nhất, giao thức CurveCP dùng cho cơ chế Client – Server và chỉ tập trung vào bảo vệ máy chủ Server.
94
- Thứ hai, giao thức CurveCP sử dụng cơ chế khĩa bất đối xứng bao gồm khĩa cơng khai (Public key) và khĩa mật (Secret key). Cơ chế này cho phép kết hợp mã hĩa với xác thực dữ liệu thơng qua một Hộp mã hĩa (Cryptography Box) mà chỉ chức năng mã hĩa hoặc giải mã bằng các khĩa riêng biệt. Chính vì thế, ưu điểm của giao thức mã hĩa CurveCP là kết hợp giữa xác thực và mã hĩa thơng qua hàm Box nên chi phí tính tốn thấp hơn.
- Thứ ba, giao thức CurveCP phân phối khĩa theo cơ chế khĩa phiên – khĩa chính. Khĩa chính sử dụng cĩ tần suất thay đổi rất thấp nhưng yêu cầu bảo mật cao cịn khĩa phiên thì được ánh xạ từ khĩa chính, thời gian sử dụng ngắn và được sử dụng thường xuyên nên khơng cĩ tính bảo mật cao như khĩa chính. Việc điều phối hoạt động giữa khĩa chính và khĩa phiên do một đoạn mã Thơng báo điều phối (Nonce) quyết định. Trong việc trao đổi dữ liệu, chỉ cĩ khĩa phiên cơng khai, định danh và Nonce là nằm ở bản rõ, cịn tất cả những thơng số cịn lại đều phải được mã hĩa thơng qua các khĩa phiên cơng khai của cả Server và Client. Ngồi ra, điều đặc biệt của Hộp mã hĩa trong CurveCP cĩ thể sử dụng khĩa phiên để mà hĩa và khĩa chính để giải mã hoặc ngược lại và phải đi kèm với Nonce.
- Cuối cùng, giao thức CurveCP sử dụng bộ đệm (Cookies) mà chỉ cĩ Server cĩ thể đọc được và Server cĩ sở hữu một khĩa đối xứng được gọi là khĩa siêu mật để mã hĩa và giải mã Cookies đĩ.
Trong cơ chế mã hĩa ở Giao thức CurveCP, Giao thức trao đổi khĩa là nhân tố quan trọng làm lên thành cơng của bộ mã hĩa này. Giao thức này được chia làm 2 giai đoạn: Khởi tạo và Truyền tin. Hình 3.7 mơ tả tổng thể giao thức trao đổi khĩa mã hĩa trong CurveCP.
Hình 3.7. Cơ chế trao đổi khĩa trong giao thức CurveCP.
95
như sau: Client sở hữu khĩa chính cơng khai C(P), khĩa chính mật C(S), khĩa phiên cơng khai C’(P) và khĩa phiên mật C’(S); Server sở hữu khĩa chính cơng khai S(P), khĩa chính mật S(S), khĩa phiên cơng khai S’(P) và khĩa phiên mật S’(S); Nonce sẽ được ký hiện là N(x) trong đĩ x là khĩa cần xác thực; B(x) là bản mật của bản rõ x được mã hĩa đối xứng bằng Box B. Nếu x quá dài và đã được đề cập thì cĩ thể ký hiệu tắt là B(…) trong đĩ B là tên của Box; s(x) là bản mật của bản rõ x được mã hĩa phi đối xứng bằng khĩa siêu mật của Server. Nếu x quá dài và đã được đề cập thì cĩ thể ký hiệu tắt là s(…); 0 là các bit 0 và Data là dữ liệu.
Bảng 3.6 sẽ chỉ ra thành phần thơng điệp trong giai đoạn 1: Khởi tạo.
Bảng 3.6. Thành phần thơng điệp trong của giao thức CurveCP
Thơng điệp Bên gửi Bên nhận Nội dung
Hello Client Server Hello(0), C’(P), N(C’(P))
Cookies Server Client Cookies(s(C’(P), N(C’(P)), S’(S), N(S’(S))), S’(P)), N(S’(P)) Initiate Client Server s(C’(P),N(C’(P)), S’(S), N(S’(S)), Initiate(Vouch(C’(P), S’(P)), C(P)), N(C’(P)) Ở giai đoạn 2: Trao đổi dữ liệu, cho dù là Server gửi Client hay Client gửi Server, thơng điệp hai bên sẽ như sau: Client gửi Server: CMessage(Data), N(C’(P)), Server gửi Client: SMessage(Data), N(S’(P)). Bảng 3.7 sẽ chỉ rõ hoạt động của từng Box trong giao thức CurveCP.
Bảng 3.7. Hoạt động của Box trong giao thức CurveCP
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 yê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à τ = +2
2345 Kết quả sẽ được biểu thị trong Bảng 3.9:
Bảng 3.8. Kết quả đo thơng số mạng IoT với CurveCP
Loại mạng PDR
(%) Latency (ms/m) Energy Consumption (mJ)
Khơng cài CurveCP 98.67 543.98 119.21
Cài CurveCP nguyên bản 92.13 893.24 287.90
Cài CurveCP điều chỉnh 95.04 700.13 219.81
Từ dữ liệu thu thập được ở Bảng 3.8, ta cĩ một số nhận xét như dưới đây. - Thứ nhất, Giao thức CurveCP nguyên bản đã tiêu thụ nhiều tài nguyên mạng IoT, khiến hiệu năng mạng khơng đạt yêu cầu về cả ba tiêu chí. Cụ thể PDR đã ở dưới ngưỡng cho phép là 95% [44] trong khi Độ trễ đã ở vượt mức cho phép là 800 ms [47]. Về năng lượng, mặc dù tiêu thụ năng lượng chưa vượt ngưỡng cho phép nhưng năng lượng tiêu thụ cũng gần gấp đơi khi mạng khơng cài giao thức CurveCP.
- Thứ hai, Giao thức CurveCP khi đã được điều chỉnh giảm độ dài mã hĩa, vẫn tiêu thụ tài nguyên nhưng ít hơn và vì thế hiệu năng mạng vẫn đảm bảo ngưỡng cho phép. Năng lượng tiêu thụ cũng tăng lên so với mạng khơng cài đặt nhưng khơng quá
99 nhiều.
Tổng kết lại, giao thức CurveCP sau khi điều chỉnh hồn tồn cĩ thể được triển khai trên mạng IoT và đảm bảo tiêu thụ năng lượng khơng ảnh hưởng xấu đến hoạt động của mạng, đảm bảo được tính bí mật của thơng tin sau khi đã mã hĩa.
Mục tiêu, phù hợp với điều kiện các thiết bị tài nguyên yếu. Với các điều chỉnh đề xuất đáp ứng được 2 nội dung:
• Triển khai được trên thiết bị tài nguyên yếu • Đảm bảo hiệu năng tồn hệ thống mạng IoT
Kết quả của giải pháp được trình bày trong “Hội nghị quốc tế lần thứ ba về các mơ hình tính tốn và truyền thơng nâng cao (ICACCP 2021)” xuất bản trên Springer, và bài báo [9] tại tuyển tập các cơng trình cơng bố của luận án.
3.5. Giới thiệu hàm băm xác thực hạng nhẹ Quark
Như đã trình bày, điểm yếu của mơi trường cảm biến trong WSN là tài nguyên bị giới hạn, khơng thể đảm bảo WSN hoạt động ổn định khi phải chia sẻ tài nguyên với các giao thức an tồn bảo mật vốn dành cho mạng Internet khơng bị giới hạn tài nguyên, đặc biệt là các giao thức mã hĩa. Chính vì vậy, phương hướng khi tích hợp các giao thức an ninh và an tồn thơng tin là tận dụng các lý thuyết an ninh của các giao thức bảo mật an ninh hiện cĩ mà đã được minh chứng tính tin cậy và sau đĩ, nghiên cứu giảm khả năng tiêu thụ tài nguyên để cĩ thể tích hợp các giao thức mới vào WSN mà khơng làm ảnh hưởng tới hoạt động các giao thức này. Bản thân giao thức DTLS cũng được kế thừa từ giao thức TLS với sự giản lược một số chức năng và việc cải tiến giao thức DTLS để cĩ thể tích hợp được cơ chế Overhearing cũng theo cách tiếp cận giảm tiêu thụ tài nguyên thơng qua giảm độ dài khĩa. Hiện nay, cĩ rất nhiều cơ chế mã hĩa nhẹ đã và đang được nghiên cứu phát triển dựa trên từng yêu cầu bài tốn khác nhau. Trong số đĩ, cơ chế băm Quark là được nghiên cứu và phát triển Jean-Philippe Aumasson sử dụng cho WSN cỡ nhỏ. Chính vì băm Quark được phát triển chuyên biệt cho WSN cỡ nhỏ như hệ thống RFID nên độ tiêu thụ tài nguyên nhỏ và vì thế được xem xét tích hợp vào giải pháp an ninh tổng thể [78]. Quark hoạt động theo cơ chế nổi bọt chồng (padded sponge construction) được giới thiệu bởi Guido Bertoni [79], với các hàm băm chồng lên nhau mà đầu ra của hàm băm này sẽ là đầu vào của hàm băm sau. Mục đích của cơ chế nổi bọt chồng là tăng độ khĩ trong