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 toá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 toà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 toá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 ngoà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.