3. SỬ DỤNG MÃ HĨA NHẸ CHO CÁC THIẾT BỊ IOT TÀI NGUYÊN YẾU
3.3.2. Mơ hình đề xuất
TLS là một trong những giao thức bảo mật được dùng nhiều nhất hiện nay trong các ứng dụng web, mail, VoIP trên Internet. TLS được định nghĩa theo RFC
84
5246 [77], hoạt động ở tầng phiên (thiết lập kênh truyền sử dụng mật mã bất đối xứng) và tầng trình diễn (mã hĩa dữ liệu sử dụng mật mã đối xứng). Cùng với sự phát triển về chủng loại và số lượng thiết bị IoT, những ứng dụng dựa trên nền tảng UDP ngày càng trở nên phổ biến. Những ứng dụng này khơng phù hợp với TLS do một số nguyên nhân cơ bản. TLS giả thiết gĩi tin được gửi trên kênh truyền ổn định, vì vậy nĩ khơng thể thực hiện bắt tay nếu một trong các gĩi tin bắt tay bị mất. Trong TLS, việc giải mã bản tin N+1 phụ thuộc vào bản tin N. Sự phụ thuộc đĩ được được thể hiện thơng qua ngữ cảnh mã hĩa và số thứ tự được đính kèm trong mỗi bản tin.
DTLS được thiết kế tương tự như TLS, tuy nhiên, nĩ được thiết kế để phù hợp với ứng dụng sử dụng UDP và khắc phục các hạn chế của TLS. DTLS thiết lập bộ đếm thời gian ở cả phía máy chủ và máy khách. Nĩ thực hiện gửi lại các bản tin bị mất hoặc khơng nhận được khi bộ đếm thời gian hết hạn. Tuy nhiên, bộ đếm này khơng áp dụng với bản tin Hello Verify Request để tránh việc phải thiết lập trạng thái trên máy chủ. Các bản tin trong DTLS cĩ một thứ tự nhất định. Thứ tự này giúp máy chủ và máy khách xác định một bản tin nhận được cĩ phải bản tin chúng đang đợi. Nếu đúng, bản tin sẽ được xử lý. Trong trường hợp sai, bản tin sẽ được lưu lại để xử lý sau. Bản tin TLS và DTLS cĩ thể lớn (lên đến 224-1 byte) trong khi kích thước khung dữ liệu UDP bị giới hạn < 1500 byte. DTLS thực hiện chia dữ liệu thành nhiều đoạn và đính kèm số thứ tự vào từng đoạn để phục vụ cho mục tiêu tổng hợp bản tin đã bị phân mảnh.
Mơ hình bảo mật cho hệ thống IoT theo chuẩn OneM2M, được áp dụng cho các hệ thống IoT với nhiệm vụ giám sát, theo dõi, thu thập thơng tin và tương tác với mơi trường thực tế thơng qua các hệ thống cảm biến. Các thiết bị cảm biến này là các thiết bị hạn chế về năng lượng, khả năng tính tốn và phân bố tại các vị trí khác nhau. Trên cùng một hệ thống IoT cĩ thể triển khai đồng thời nhiều ứng dụng tùy theo các yêu cầu đặc thù của từng lĩnh vực. Kiến trúc tổng quan của mơ hình được minh họa tại Hình 3.2. Hệ thống sẽ gồm ba thành phần chính theo kiến trúc chuẩn của oneM2M, phần thứ nhất là các ứng dụng chuyên biệt đầu cuối cho người dùng. Các ứng dụng này sẽ kết nối và truy cập các tài nguyên dịch vụ được cung cấp thơng qua CSE trong các IN (Infrastructure Node) và MN (Middle Node) của hệ thống M2M bằng RESTful API. Các node này sẽ nằm trên các máy chủ vật lý và kết nối với nhau thơng qua
85
mạng core hay Internet. Trong một hệ thống M2M sẽ chỉ cĩ một IN đĩng vai trị máy chủ trung tâm và được kết nối đến nhiều MN máy chủ cục bộ tại các vị trí khác nhau. Phần thứ ba của hệ thống là các thiết bị cảm biến, cĩ nhiệm vụ thu thập thơng tin, theo dõi sự thay đổi của mơi trường thực tế và chuyển chúng thành các dữ liệu số. Các cảm biến trong cùng một khu vực sẽ được kết nối với một MN để các các tài nguyên của nĩ được cung cấp cho các ứng dụng hoặc người dùng đầu cuối thơng qua CSE trong phạm vi mạng nội bộ, và các MN này sẽ kết nối IN để dữ liệu và tài nguyên này được cung cấp trong một phạm vi rộng rãi thơng qua mạng M2M. Tuy nhiên do các cảm biến hay các thiết bị IoT này là các thiết bị hạn chế nên chúng sẽ giao tiếp với nhau thơng qua giao thức cho mạng năng lượng thấp. Vì vậy, để các thiết bị này cĩ thể giao tiếp với MN sẽ cần cĩ một Gateway trung gian ở giữa làm nhiệm vụ chuyển đổi thơng điệp giữa các giao thức. Trong Hình 3.2 cũng đặc tả chi tiết chồng giao thức được sử dụng trong các thành phần của hệ thống. Các thiết bị IoT sử dụng giao thức IEEE 802.15.4 tại tầng PHY/MAC cho kết nối tốc độ và năng lượng thấp và sử dụng giao thức 6LoWPAN tại tầng mạng để cho phép triển khai IPv6 trên các thiết bị này. Mặt khác, tuy hạ tầng mạng IPv6 đã sẵn sàng triển khai trong thực tế, nhưng hiện nay mạng Internet vẫn chủ yếu sử dụng IPv4. Chính vì vậy, để các thiết bị cảm biến cĩ thể kết nối đến Internet và giao tiếp với các hệ thống khác trên Internet, thì các thiết bị này sẽ kết nối với các Gateway hỗ trợ cả hai chuẩn IEEE 802.15.4 và chuẩn Wifi (IEEE 802.11) hoặc Ethernet (IEEE 802.3), cùng cơ chế ánh xạ giữa địa chỉ IPv4 và IPv6.
86
Hình 3.2. Kiến trúc bảo mật cho hệ thống IoT theo chuẩn oneM2M
Để đảm bảo mật cho hệ thống thì việc bảo mật cho quá trình truyền nhận dữ liệu hay thiết lập bảo mật đầu cuối cho hệ thống là một yêu cầu bắt buộc. Trong mơ hình bảo mật của oneM2M, giao thức TLS được sử dụng để thiết lập kênh truyền bảo mật giữa các thực thể trong hệ thống. Tuy nhiên giao thức TLS sẽ khơng phù hợp cho việc truyền nhận dữ liệu an tồn giữa các thiết bị cảm biến với các node trong oneM2M vì sự hạn chế về năng lượng, tài nguyên tính tốn của các thiết bị cảm biến. Trong mơ hình này, việc thiết lập kênh truyền bảo mật giữa các thiết bị cảm biến với các node trong mạng oneM2M sẽ dựa trên giao thức DTLS. Như đã trình bày ở trên, DTLS khơng được thiết kế cho các thiết bị IoT hạn chế nên mặc dù hiện nay cũng cĩ một số cơng trình nghiên cứu đề xuất các cơ chế tinh chỉnh và tối ưu DTLS cho các thiết bị IoT nhưng việc triển khai DTLS trên các thiết bị đĩ trong thực tế vẫn gặp rất nhiều khĩ khăn, đặc biệt là khi tích hợp DTLS với các giao thức khác như CoAP, 6LoWPAN. Những vấn đề gặp phải trong quá trình triển khai thực tế sẽ được trình bày chi tiết trong phần thực nghiệm và đánh giá.
Hình 3.3. Xây dựng Plugin để làm việc với giao thức DTLS
Trong phần MN của OM2M nghiên cứu xây dựng một Plugin để làm việc với giao thức DTLS, mơ tả được thể hiện thơng qua Hình 3.3. Module DTLS-Client là module dùng để giao tiếp với DTLS-Server trên sensor với kênh truyền bảo mật DTLS. Module DTLS-Client được viết bằng ngơn ngữ C, sau đĩ build ra file thực thi rồi đưa vào MN làm một module trong đĩ. DTLS-Client cĩ mở một TCP socket dùng để đưa dữ liệu giao tiếp với DTLS-Server ra mơi trường bên ngồi thơng qua chuẩn Socket, module TCP Socket cĩ nhiệm vụ làm cầu nối giữa OM2M với DTLS, module này sẽ giao tiếp với TCP Socket Server được mở trên DTLS-Server giúp việc kết nối trở nên dễ dàng và linh hoạt. Thành phần tiếp theo trong plugin ở MN đĩ là Data
87
model, dữ liệu sau khi lấy từ DTLS-Client rồi chuyển sang TCP Socket sẽ được chuẩn hĩa theo cấu trúc đã được định nghĩa sẵn tại Data model.
Trong mơ hình thử nghiệm, các thiết bị được sử dụng trong mơi trường IoT là các thiết bị tài nguyên yếu, cần cĩ sự điều chỉnh các thơng số, thiết lập cấu hình và bổ sung module kết nối.