Nếu nhận được phản hồi lỗi,chuyển hướng truyền dữ liệu lên bộđiều khiển Controller và phânluồng nhận dữ liệu từ các thiết bị vàlưu trữ, đồng thời gửi tín hiệu điềukhiển đến cơ cấp chấp h
Trang 1ĐẠI HỌC BÁCH KHOA HÀ NỘI
Dự án môn học
Kiến trúc và giao thức truyền
thông trong IOT
Trịnh Nguyễn Tú Linh
linh.tnt210520@sis.hust.edu.vn
Trần Ngọc Thuận
thuan.nt210823@sis.hust.edu.vn
Ngành Kỹ thuật Điều khiển và Tự động hóa
Bảng ghi chú sửa đổi
Trang 2Trịnh Nguyễn Tú Linh
12/11/2024
Meeting notes Bổ sung nội dung họp tuầnhiện tại và nội dung tuần
tiếp theo
Trịnh Nguyễn Tú Linh
Cơ sở lý thuyết HTTP
Trần Ngọc ThuậnKết quả thực
nghiệm Gửi dữ liệu bằng HTTP vàthực hiện lệnh RPC
18/11/2024
Meeting notes Bổ sung nội dung 2 cuộchọp trong tuần
Trịnh Nguyễn Tú Linh
Tóm tắt dự án Bổ sung sơ đồ tổng quát vàsơ đồ triển khai, use cases
Kết quả thựcnghiệm
Thực hiện ICMPGửi dữ liệu bằng CoAP vàthực hiện lệnh RPC
Thiết lập local server Trần Ngọc Thuận26/11 Meeting notes Cập nhật công việc Trần Ngọc Thuận10/12 Meeting notes Cập nhật công việc Trịnh Nguyễn Tú Linh17/12 Meeting notes Cập nhật công việc Trịnh Nguyễn Tú
Linh24/12 Meeting notes Cập nhật công việc Trịnh Nguyễn Tú Linh
Cơ sở lý thuyết MQTT, CoAP
29/12
Phương phápnghiên cứu ThingsBoard, Controller
Trần Ngọc Thuận
Kết quả thựcnghiệm ThingsBoard, Controller
Bảng 1 Bảng ghi chú sửa đổi
Trang 3Tóm tắt nội dung đồ án
Sơ đồ tổng quát
Hình GIỚI THIỆU CHUNG-1 Sơ đồ tổng quát
Chú thích:
Xanh dương Dữ liệu được truyền qua giao thức MQTT
Đỏ Dữ liệu được truyền qua giao thức CoAP
Xanh lá Dữ liệu được truyền qua giao thức HTTP
Nếu độ ẩm/độ sáng vượt ngưỡngđặt ra, thiết bị sẽ nhận lệnh giảmcường độ hoạt động cho cơ cấuchấp hành (bơm, đèn)
Kết nối
Internet gặp
sự cố
Thiết bị chuyển hướng truyền
dữ liệu qua bộ điều khiển(Controller) Dữ liệu được lưutrữ tại đây Cần duy trì một sốluật điều khiển cơ bản về độ ẩm
và cường độ sáng
Ví dụ: Duy trì một kết nối thứ 3 từthiết bị đến server để kiểm tra kếtnối Nếu nhận được phản hồi lỗi,chuyển hướng truyền dữ liệu lên bộđiều khiển (Controller) và phânluồng nhận dữ liệu từ các thiết bị vàlưu trữ, đồng thời gửi tín hiệu điềukhiển đến cơ cấp chấp hành (bơm,đèn) qua các luật điều khiển cơ bản.Sau khi khôi
phục kết nối
Internet
Thiết bị chuyển hướng truyền
dữ liệu trở lại server, trở vềtrường hợp 1 Bộ điều khiển(Controller) truyền dữ liệu đãlưu lên server
Duy trì 1 kết nối thứ 3 từ bộ điềukhiển (Controller) đến server đểkiểm tra tình trạng kết nối mạng.Khi kết nối mạng được khôi phục,
cả thiết bị và bộ điều khiển đều phảichuyển hướng truyền dữ liệu lên
Trang 4Lưu ý: Các luật điều khiển cũng có thể được cập nhật từ cloud qua bộ điều khiển (mũi tên 2 chiều).
Sơ đồ triển khai
Hình GIỚI THIỆU CHUNG-2 Sơ đồ triển khai
Chú thích:
Trong dự án này, nhóm sẽ sử dụng vi điều khiển ESP32 đóng vai trò là thiết bị gửi dữliệu đo từ cảm biến, đồng thời cũng là thiết bị nhận lệnh/tín hiệu điều khiển
Như vậy, dự án sẽ cần tổng cộng 3 vi điều khiển ESP32
Bộ điều khiển được thực hiện trên máy tính cá nhân Cần lưu ý rằng việc này không chỉ
ra rằng bộ điều khiển cần khả năng xử lí mạnh mẽ mà nó này chỉ mang ý nghĩa minhhọa 1 thiết bị bất kì, được thiết lập để có thể nhận dữ liệu qua các giao thức HTTP,MQTT và CoAP, cũng như có khả năng lưu trữ dữ liệu
Trang 5Things, Hive, …Thực hiện các giaothức trên các nềntảng phù hợp
Trình bày môphỏng truyền tinbằng giao thức
Trình bày kiếnthức về các nềntảng hỗ trợ IOT
có vẻ dùng để giảiquyết các chức năngtrong dự án: điềukhiển, lưu trữ vàthiết lập từ ngườidùng
Trình bày kiếnthức về RPC vàRule Engine củaThingsBoard(cách dùng, nhiệm
ThingsBoard (quanền tảng mô phỏngWokwi và thiết bịthực)
Chưa thực hiệnđược truyền thôngCoAP giữa cảWokwi lẫn thiết bị
ThingsBoard
Tiếp tục tìm cáchthực hiện truyềnthông CoAP
Lí do:
Do thư việnsimple CoAPkhông tương thíchvới ThingsBoard(không được tíchhợp DTLS nênThingsBoardkhông nhận dạngđược dữ liệu)Chưa tìm đượcđúng thư viện hỗtrợ ??
Thực hiện RPC (lấy
dữ liệu tín hiệu điềukhiển từ server, tínhtoán đối với dữ liệuđược đưa lên server)
Thử truyền CoAPgiữa 2 thiết bị(device2device)
Cụ thể hóa, kếthợp 2 phương thứclấy và tính toán dữliệu từ server
13/11
Trang 6sơ đồ chức năng (?)
và sơ đồ triển khaiTìm hiểu và thựchiện MicroPython
và MicroCoAPyKiểm thử với trườnghợp kết nối Wifi từESP32
Chia thành 2 sơ đồriêng
Tìm hiểu chế độAccess PointThực hiện CoAPtrên vi điều khiển,gửi dữ liệu lênserver và lấy tínhiệu điều khiển từserver
Đã thực hiện đượcviệc kiểm tra kết nốimạng sử dụng giaothức ICMP
Mô phỏng thựcnghiệm trườnghợp bị mất kết nốiInternet (chuyểnhướng truyền dữliệu từ server sang
Mô phỏng thựcnghiệm trườnghợp bị mất kết nốiInternet (chuyểnhướng truyền dữliệu từ server sang
Trang 7Phân chia công việc
Trịnh Nguyễn Tú
Linh
Hoàn thành sơ bộ bảng kế hoạch thực hiện Tuần 1Tìm hiểu về giao thức MQTT và CoAP Triển
khai mô phỏng trên một nền tảng bất kì hỗ trợ 2
Viết phần Cơ sở lý thuyết về MQTT và CoAP
Tìm hiểu về các nền tảng IOT cụ thể(ThingsBoard, Thingspeak, …)
Trần Ngọc Thuận
Tìm hiểu về giao thức MQTT và CoAP Triểnkhai mô phỏng trên một nền tảng bất kì hỗ trợ 2giao thức trên
Tuần 2Viết phần Cơ sở lý thuyết về HTTP
Tìm hiểu về các nền tảng IOT cụ thể(ThingsBoard, Thingspeak, …)
Trịnh Nguyễn Tú
Trần Ngọc Thuận Tìm hiểu về Rule Engine trong ThingsBoard
Trần Ngọc Thuận Thiết lập máy tính cá nhân để thực hiện nhiệm vụ
truyền, nhận và kiểm tra kết nối mạng (phục vụchức năng chuyển hướng truyền dữ liệu)
Trần Ngọc Thuận Tìm hiểu và thực hiện phân luồng server (tiếp nối
Trần Ngọc Thuận Kết hợp CoAP vào controller
Tú Linh Triển khai thực tế cả hệ thống
Hoàn thành báo cáo Word
Tuần 8
Bảng 3 Phân chia công việc
Trang 8Kế hoạch thực hiện
Tuần 1
Tìm hiểu kiếnthức nền và
phương án triểnkhai
Mô hình, kiến trúc, cơ chế hoạt độngcủa MQTT, CoAP, HTTP
Tính năng, đặc điểm nổi bật, ưu nhượcđiểm của 3 giao thức trên
Xác định số lượng và loại vi điều khiểnphù hợp với khả năng và chi phí
Hoàn thành sơ bộ bảng kế hoạch thựchiện
Đã hoànthành
Tuần 2
Thực hiện truyềnthông bằng các
MQTT, CoAP,HTTP
Mô phỏng truyền thông trên một nềntảng có hỗ trợ triển khai các giao thứccần thiết
Ví dụ: gửi một bản tin bất kì từ thiết bịlên cloud và ngược lại
Hoànthành70% (cònthiếutriển khaiCoAP)
Tuần 3
Thực hiện một
số luật điềukhiển cơ bản tạithiết bị điềukhiển
Hiểu cách thức truyền thông giữa thiết
bị người dùng và thiết bị điều khiển
Thiết lập luật điều khiển trên server,cho phép thiết bị nhận được tín hiệuđiều khiển từ server
Đã hoànthành (thiếutriển khaiCoAP)
Tuần 4
Tìm hiểu cáchthức kiểm tra kếtnối mạng, xử lícác vấn đề về sự
cố kết nối và saukhi khôi phục kếtnối
Tìm hiểu một số tình huống vấn đề vềkết nối, thực hiện truyền thông giữathiết bị người dùng và thiết bị điềukhiển, luu trữ thông tin tại thiết bị điềukhiển
Tìm hiểu khôi phục kết nối, thực hiệntruyền thông giữa thiết bị người dùng
và cloud, chuyển dữ liệu từ thiết bịđiều khiển lên cloud
Đã hoànthành
Tuần 5
Mô phỏng hệthống khi gặp sự
Tuần 6 - 7
Ghép nối cáckhối chức năngrời rạc
Mô phỏng hệ thống hoạt động đủnhững chức năng cơ bản (truyền thôngthiết bị - cloud, thiết bị - thiết bị điềukhiển, thiết bị điều khiển – cloud)
Đã hoànthành
Tuần 8
Tìm hiểu về bảomật giao thức Áp dụng các phương thức mã hóa chocác giao thức trên Có thể triển khai
trên phần cứng
2/3 (chỉhoànthành vớiHTTPSvàMQTTS)
Trang 9Bảng 4 Kế hoạch thực hiện
Trang 10MỤC LỤC
CHƯƠNG 1 GIỚI THIỆU CHUNG 1
1.1 Bối cảnh 1
1.2 Vấn đề nghiên cứu 1
1.3 Mục tiêu 1
1.4 Phạm vi nghiên cứu 2
1.5 Cấu trúc báo cáo 2
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 2
2.1 HTTP Protocol 2
2.2 MQTT Protocol 3
2.3 CoAP Protocol 4
2.4 ICMP 5
2.5 Bảo mật 5
2.5.1 Các thuật toán mã hóa 6
2.5.2 Các giao thức bảo mật 7
2.5.3 Chứng chỉ số 8
CHƯƠNG 3 PHƯƠNG PHÁP NGHIÊN CỨU 9
3.1 ThingsBoard – Open-source IoT Platform 9
3.1.1 Entities Overview 9
3.1.2 Rule Engine 10
3.1.3 Remote Procedure Call 11
3.2 Socket Programming với Python 13
3.2.1 Tạo client 13
3.2.2 Tạo server 14
CHƯƠNG 4 KẾT QUẢ THỰC NGHIỆM 14
4.1 ThingsBoard Tenant 14
4.1.1 Định nghĩa mô hình 14
4.1.2 Định nghĩa Rule Chain 15
4.1.3 Xây dụng DashBoards 16
4.2 Controller 16
4.2.1 Xây dựng khối Connected to the Internet 16
4.2.2 Chế độ Client 17
Trang 114.2.3 Chế độ Server 17
4.2.4 Phân luồng 18
4.3 Đo và điều khiển ánh sáng từ thiết bị (giao thức HTTP) 18
4.3.1 Công cụ 18
4.3.2 Kết quả 18
4.3.3 HTTPS 20
4.4 Đo và điều khiển độ ẩm từ thiết bị (CoAP) 21
4.4.1 Công cụ 21
4.4.2 Phương thức 21
4.4.3 Kết quả 24
4.5 Đo và gửi dữ liệu nhiệt độ từ thiết bị (giao thức MQTT) 25
4.5.1 Công cụ 25
4.5.2 Triển khai 25
4.5.3 Kết quả 26
4.6 Triển khai ICMP 27
4.6.1 Công cụ 27
4.6.2 Cách thức 27
CHƯƠNG 5 KẾT LUẬN 28
5.1 Nhận xét 28
5.2 Hướng phát triển 29
CHƯƠNG 6 LỜI KẾT 29
CHƯƠNG 7 Phụ lục 30
7.1 Kịch bản kiểm thử 30
7.2 Log 30
7.3 Source code dự án 30
Trang 12DANH MỤC HÌNH VẼ
Hình 1-1 Sơ đồ tổng quát iii
Hình 1-2 Sơ đồ triển khai iv
Hình 2-1 Ví dụ HTTP GET Message 3
Hình 2-2 Minh họa mã hóa đối xứng 6
Hình 2-3 Minh họa mã hóa bất đối xứng 7
Hình 3-1 Một ví dụ các thực thể được cấu hình và lưu trữ trên ThingsBoard 10
Hình 3-2 Root Rule Chain mặc định của ThingsBoard 11
Hình 3-3 Cilent-side RPC 12
Hình 3-4 One-way server-side RPC 12
Hình 3-5 Two-way server-side RPC 13
Hình 4-1 Rule Chain Configuration 15
Hình 4-2 Nội dung của Transformation node, dựa trên dữ liệu cuối cùng của cảm biến ánh sáng mà trả về giá trị điều khiển cho cơ cấu chấp hành 15
Hình 4-3 DashBoards đơn giản để giám sát hệ thống 16
Hình 4-4 Sơ đồ thuật toán của Controller 16
Hình 4-5 HTTP header với POST request 17
Hình 4-6 CoAP header với POST request kiểu NON-CONFIRMABLE 17
Hình 4-7 Threading 18
Hình 4-8 DashBoards giám sát dữ liệu được gửi lên bởi cảm biến ánh sáng 19
Hình 4-9 Serial Monitor của ESP32 thực hiện đo và điều khiển ánh sáng, update telemetry data và request RPC calls 19
Hình 4-10 Terminal của Controller, thực hiện chứa các thông tin về ánh sáng và xử lí các RPC calls khi không có kết nối Internet 20
Hình 4-11 Serial Monitor của ESP32 khi gửi dữ liệu ánh sáng và request RPC calls lên Controller 20
Hình 4-12 Chương trình gửi dữ liệu ánh sáng từ thiết bị lên ThingsBoard HTTPS .21 Hình 4-13 Gửi dữ liệu ánh sáng từ controller lên Thinsboard HTTPS 21
Hình 4-14: Chương trình gửi dữ liệu độ ẩm bằng CoAP trên ESP32 sử dụng MicroPython 22
Hình 4-15: Kết quả trên consolo MicroPython 22
Hình 4-16: Chương trình gửi lệnh RPC lên ThingsBoard trên ESP32 sử dụng MicroPython 23
Hình 4-17: Phản hồi của ThingsBoard dựa trên dữ liệu độ ẩm mà server nhận được23 Hình 4-18 Chương trình gửi dữ liệu và RPC CoAP bằng thư viện coap-simple bởi Arduino 24
Hình 4-19 Kết quả cập nhật dữ liệu độ ẩm từ thiết bị lên ThingsBoard bằng CoAP 24 Hình 4-20 Kết quả trên Serial Monitor gửi dữ liệu độ ẩm bằng CoAP 25
Trang 13Hình 4-21 Truyền thông giữa thiết bị và Controller khi mất Internet bằng CoAP 25
Hình 4-22 Kết quả trên Serial Monitor truyền thông CoAP từ thiết bị 25
Hình 4-23 Chương trình gửi dữ liệu nhiệt độ từ thiết bị đến server bằng MQTT 26
Hình 4-24 Cập nhật dữ liệu nhiệt độ trên ThingsBoard từ thiết bị bằng MQTT 26
Hình 4-25 Kết quả trên console Arduino IDE gửi dữ liệu nhiệt độ lên ThingsBoard bằng MQTT 27
Hình 4-26 Cập nhật dữ liệu nhiệt độ từ thiết bị lên Controller bằng MQTT 27
Hình 4-27 Kết quả gửi dữ liệu nhiệt độ từ thiết bị bằng MQTT 27
Hình 4-28: Chương trình thực hiện Ping một vài server “đã biết” trên ESP32 28
Hình 4-29: Phản hồi khi có kết nối Internet 28
Hình 4-30: Phản hồi khi không có kết nối Internet nhưng vẫn kết nối Wifi 28
Trang 14DANH MỤC BẢNG BIỂU
Bảng 1 Bảng ghi chú sửa đổi ii
Bảng 2 Meeting notes vi
Bảng 3 Phân chia công việc vii
Bảng 4 Kế hoạch thực hiện ix
Bảng 2.1 Một số đặc điểm của HTTP Protocol 3
Trang 15CHƯƠNG 1 GIỚI THIỆU CHUNG 1.1 Bối cảnh
Internet of Things (IoT) đang phát triển mạnh mẽ và trở thành một trong những lĩnh vực công nghệ chủ chốt, tạo ra tác động sâu rộng trên toàn cầu Với sự bùng
nổ của các thiết bị thông minh và kết nối, IoT hiện được áp dụng rộng rãi trong các lĩnh vực như sản xuất (Industry 4.0), chăm sóc sức khỏe, giao thông thông minh, thành phố thông minh, và nông nghiệp chính xác
Hiện nay, sự phát triển của công nghệ 5G, điện toán đám mây, và trí tuệ nhân tạo(AI) đã giúp nâng cao hiệu quả của các hệ thống IoT, từ khả năng truyền dữ liệu tốc độ cao, xử lý thông tin theo thời gian thực đến đưa ra các quyết định dựa trên
dữ liệu Đồng thời, vấn đề bảo mật và quyền riêng tư ngày càng trở nên quan trọng khi số lượng thiết bị kết nối và khối lượng dữ liệu phát sinh không ngừng tăng lên
Với tiềm năng kinh tế hàng nghìn tỷ USD, IoT không chỉ thay đổi cách các
doanh nghiệp vận hành mà còn ảnh hưởng mạnh mẽ đến cuộc sống hàng ngày, đưa thế giới tiến gần hơn đến một xã hội số hóa toàn diện
1.2 Vấn đề nghiên cứu
Dù IoT mang lại nhiều lợi ích, các nhà phát triển phải đối mặt với nhiều thách thứcnhư:
Lựa chọn và triển khai giao thức phù hợp với từng ứng dụng cụ thể
Xử lý tình huống mất kết nối giữa thiết bị IoT và cloud, đảm bảo hệ thốngvẫn hoạt động mượt mà
Bảo mật dữ liệu trong bối cảnh các mối đe dọa an ninh mạng ngày càng giatăng
Làm quen và tùy chỉnh các nền tảng quản lý IoT để đáp ứng yêu cầu thực tế
Dự án này nhằm giải quyết các thách thức trên thông qua việc triển khai các giảipháp thực tiễn với các giao thức MQTT, CoAP, và HTTP, cùng với việc ứng dụngnền tảng ThingsBoard trong quản lý thiết bị
1.3 Mục tiêu
Dự án tập trung vào các mục tiêu cụ thể sau:
Hiểu về mô hình IoT: Nắm vững cấu trúc và hoạt động của hệ thống IoT,
bao gồm thiết bị, gateway, và cloud
Triển khai giao thức truyền thông: Xây dựng các ứng dụng IoT sử dụng
MQTT, CoAP, và HTTP để truyền dữ liệu từ cảm biến lên cloud và thựchiện điều khiển thiết bị
Xử lý mất kết nối: Phát triển giải pháp dự phòng bằng cách sử dụng thiết bị
điều khiển (controller) để lưu trữ và xử lý dữ liệu khi kết nối với cloud bịgián đoạn
1
Trang 16 Bảo mật hệ thống: Thực hiện mã hóa dữ liệu và đảm bảo an toàn truyền
thông qua các giao thức
Tích hợp nền tảng ThingsBoard: Quản lý, giám sát thiết bị IoT và tùy
chỉnh giao diện hiển thị dữ liệu
Kết nối mạng: sử dụng mạng LAN và Wi-Fi cho các thí nghiệm
Không mở rộng phạm vi nghiên cứu sang các giao thức hoặc nền tảng IoTkhác như LoRa, Zigbee hay AWS IoT
1.5 Cấu trúc báo cáo
Báo cáo sẽ được tiến hành theo trình tự từ tìm hiểu cơ sở lí thuyết ở chương 2 Tạiđây, người đọc sẽ được cung cấp những kiến thức cơ bản nhất về CoAP, MQTT vàHTTP
Chương tiếp theo trình bày phương pháp nghiên cứu, mô hình hóa hệ thống và cáccông cụ được sử dụng
Chương 4 trình bày kết quả thực nghiệm (triển khai trên phần cứng)
Chương 5 trình bày nhận xét và kết luận rút ra từ thực nghiệm, đồng thời nêu ranhững hướng phát triển trong tương lai
Chương 6 là lời kết và chương 7 là phụ lục
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 2.1 HTTP Protocol
HTTP là một giao thức request/response Khi một client, thường là trình duyệtweb, gửi yêu cầu đến máy chủ, HTTP đưa ra 3 kiểu bản tin sử dụng cho giao tiếp:GET, POST, và PUT
- GET: Đây là yêu cầu dữ liệu từ client Một client (trình duyệt web) gửi bản tin GET tới máy chủ để yêu cầu trang HTML pages
- POST: Kiểu bản tin này sẽ gửi dữ liệu lên máy chủ
- PUT: Kiểu bản tin này gửi tài nguyên (resources) hoặc là nội dung
(content) (ví dụ như một bức ảnh) lên máy chủ
2
Trang 17Hình CƠ SỞ LÝ THUYẾT-3 Ví dụ HTTP GET Message
Mặc dù HTTP vô cùng linh hoạt, nhưng nó không phải là một phương thức an toàn.Các bản tin yêu cầu gửi thông tin lên máy chủ ở dạng plaintext có thể bị chặn vàđọc Phản hồi từ máy chủ như HTML pages cũng không mã hóa
Để giao tiếp an toàn qua Internet, HTTP Secure (HTTPS) protocol được sử dụng.HTTPS sử dụng xác thực (authentication) và mã hóa (encryption) để bảo mật dữliệu khi truyền giữa client và server Quá trình yêu cầu từ client và phản hồi từserver là giống nhau giữa HTTPS và HTTP, nhưng luồng dữ liệu được mã hóa bằngTLS (Transport Layer Security) hoặc là tiền thân của nó SSL (Secure SocketLayer), trước khi được truyền qua mạng
Có thể tóm tắt một vài đặc điểm chính của HTTP Protocol như sau:
HTTPMục đích Đươc phát triển nhằm mục đích chia sẻ tài liệu trên
Internet
Mô hình hoạt động Request/Response
Cách truyền dữ liệu Chỉ truyền thông tin từ client đến server
Loại nội dung Văn bản (sử dụng mã hóa Base64 cho dữ liệu nhị
phân)Chế độ truyền tin Đồng bộ
Kích thước tiêu đề 8 bytes
3
Trang 18chuẩn hóa trong OASIS, MQTT nổi bật nhờ sự nhẹ nhàng, hiệu quả và đáng tin cậy trong các ứng dụng IoT.
MQTT sử dụng giao thức TCP/IP làm nền tảng và tập trung vào truyền dữ liệu dạng tin nhắn nhỏ gọn giữa các thiết bị, từ cảm biến đến cloud, qua một "broker" trung gian
MQTT hoạt động theo mô hình publish/subscribe, gồm ba thành phần chính:
1 Publisher: Thiết bị phát thông điệp, chẳng hạn cảm biến gửi dữ liệu nhiệt
độ
2 Subscriber: Thiết bị nhận thông điệp, chẳng hạn hệ thống giám sát nhiệt
độ
3 Broker: Máy chủ trung gian nhận thông điệp từ publisher và chuyển tiếp
tới các subscriber đăng ký đúng chủ đề (topic)
2.3 CoAP Protocol
CoAP (Constrained Application Protocol) là một giao thức ứng dụng được thiết
kế dành riêng cho các thiết bị IoT hạn chế tài nguyên, như cảm biến hoặc thiết bị điều khiển Được chuẩn hóa bởi IETF trong RFC 7252, CoAP dựa trên mô hình REST (Representational State Transfer), tương tự như HTTP, nhưng được tối ưu hóa cho các mạng có băng thông thấp và thiết bị có bộ nhớ, CPU hạn chế
CoAP sử dụng giao thức truyền thông UDP thay vì TCP để giảm độ trễ, tiết kiệmtài nguyên và tăng cường hiệu suất trong các ứng dụng IoT Giao thức này hỗ trợ
các phương thức cơ bản như GET, POST, PUT, và DELETE, giúp truy cập tài
nguyên trên thiết bị IoT một cách đơn giản và hiệu quả
CoAP được xây dựng dựa trên hai thành phần chính:
Client và Server:
o Client gửi yêu cầu (request) đến server để truy cập hoặc thay đổi trạng thái tài nguyên
o Server phản hồi (response) với dữ liệu hoặc trạng thái tương ứng
Resource-Oriented Architecture (ROA):
Mỗi tài nguyên trên thiết bị được biểu diễn dưới dạng URI (Uniform Resource Identifier), giúp truy cập dễ dàng thông qua các phương thức RESTful
Các tính năng chính của CoAP
Tối ưu hóa tài nguyên: CoAP được thiết kế để hoạt động hiệu quả trên các thiết
bị có tài nguyên hạn chế
Sử dụng UDP để giảm overhead so với TCP
Gói tin CoAP nhỏ gọn và phù hợp với các mạng IoT như 6LoWPAN
4
Trang 19Tương tác RESTful: CoAP sử dụng mô hình REST, giúp các thiết bị giao tiếp với nhau thông qua các phương thức tiêu chuẩn:
GET: Lấy dữ liệu từ server (ví dụ, đọc giá trị cảm biến).
POST: Gửi dữ liệu lên server để tạo mới tài nguyên.
PUT: Cập nhật trạng thái tài nguyên hiện tại.
DELETE: Xóa tài nguyên từ server.
Quan sát: CoAP hỗ trợ cơ chế "observe" cho phép client đăng ký nhận thông báo
tự động từ server khi trạng thái tài nguyên thay đổi Điều này tối ưu hóa việc giám sát trạng thái mà không cần client liên tục gửi yêu cầu
Đảm bảo giao tiếp: CoAP sử dụng DTLS (Datagram Transport Layer
Security) để bảo vệ dữ liệu truyền qua mạng Các cơ chế bảo mật bao gồm:
Xác thực: Đảm bảo rằng các thiết bị giao tiếp đúng danh tính.
Mã hóa: Bảo vệ dữ liệu khỏi bị đọc lén trong quá trình truyền.
Bảo vệ toàn vẹn dữ liệu: Phát hiện và ngăn chặn dữ liệu bị sửa đổi.
2.4 ICMP
Giao thức ICMP (Internet Control Message Protocol) là một giao thức thuộc tầngmạng trong bộ giao thức TCP/IP, được thiết kế để trao đổi thông điệp điều khiển vàbáo lỗi giữa các thiết bị mạng ICMP không được sử dụng để truyền dữ liệu ngườidùng, mà chủ yếu hỗ trợ quản lý và giám sát hoạt động mạng
ICMP hoạt động bằng cách gửi các gói tin, thường gọi là ICMP messages, giữa
các thiết bị mạng như router, máy tính, hoặc server Các thông điệp ICMP phổ biếnbao gồm:
Echo Request và Echo Reply: Được sử dụng để kiểm tra khả năng kết nối
giữa hai thiết bị mạng, ví dụ thông qua công cụ ping
Destination Unreachable: Thông báo rằng một địa chỉ đích không thể truy
cập
Time Exceeded: Báo hiệu rằng thời gian sống (TTL) của gói tin đã hết
trước khi đến đích
Trong thực tế, ICMP được ứng dụng rộng rãi để kiểm tra kết nối mạng và chẩn
đoán sự cố Một ví dụ điển hình là lệnh ping, sử dụng ICMP Echo Request để xác
minh xem một thiết bị mạng cụ thể (thường là máy chủ) có phản hồi hay không.Ping không chỉ cho biết kết nối có tồn tại mà còn đo lường thời gian trễ (latency)giữa hai điểm
Ngoài ra, công cụ traceroute cũng dựa trên ICMP để xác định đường đi của gói tin
qua các thiết bị trung gian trên mạng Thông qua ICMP, quản trị viên mạng có thểnhanh chóng phát hiện và khắc phục các sự cố như mất gói tin, chậm trễ, hoặc cácvấn đề liên quan đến cấu hình thiết bị
2.5 Bảo mật
5
Trang 202.5.1 Các thuật toán mã hóa
2.5.1.1 Mã hóa đối xứng
Mã hóa đối xứng là phương pháp mã hóa mà key mã hóa và key giải mã là nhưnhau (sử dụng cùng một secret key để mã hóa và giải mã) Đây là phương phápthông dụng nhất hiện nay dùng để mã hóa dữ liệu truyền nhận giữa 2 bên Vì chỉcần có secret ket là có thể giải mã được, nên bên gửi và bên nhận cần làm 1 cáchnào đó để cùng thống nhất về secret ket
Để thực hiện mã hóa thông tin giữa 2 bên :
- Đầu tiên bên gửi và bên nhận bằng cách nào đó sẽ phải thóa thuận secret key(khóa bí mật) được dùng để mã hóa và giải mã Vì chỉ cần biết được secretkey này thì bên thứ ba có thể giải mã được thông tin, nên thông tin này cầnđược bí mật truyền đi (bảo vệ theo một cách nào đó)
- Sau đó bên gửi sẽ dùng một thuật toán mã hóa với secret key tương ứng để
mã hóa dữ liệu sắp được truyền đi Khi bên nhận nhận được sẽ dùng chínhsecret key đó để giải mã dữ liệu Vấn đề lớn nhất của phương pháp mã hóađối xứng là làm sao để “thỏa thuận” secret key giữa bên gửi và bên nhận, vìnếu truyền secret key từ bên gửi sang bên nhận mà không dùng một phươngpháp bảo vệ nào thì bên thứ ba cũng có thể dễ dàng lấy được secret key này
Hình CƠ SỞ LÝ THUYẾT-4 Minh họa mã hóa đối xứng
2.5.1.2 Mã hóa bất đối xứng
Mã hóa bất đối xứng (Hay còn gọi là mã hóa khóa công khai) là phương pháp mãhóa mà key mã hóa (lúc này gọi là public key – khóa công khai) và key giải mã (lúcnày gọi là private key – khóa bí mật) khác nhau Nghĩa là key ta sử dụng để mã hóa
dữ liệu sẽ khác với key ta dùng để giải mã dữ liệu Tất cả mọi người đều có thể biếtđược public key (kể cả hacker), và có thể dùng public key này để mã hóa thông tin.Nhưng chỉ có người nhận mới nắm giữ private key, nên chỉ có người nhận mới cóthể giải mã được thông tin
Để thực hiện mã hóa bất đối xứng thì:
Bên nhận sẽ tạo ra một gặp khóa (public key và private key) Bên nhận sẽ dữlại private key và truyền cho bên gửi public key Vì public key này là côngkhai nên có thể truyền tự do mà không cần bảo mật
6
Trang 21 Bên gửi trước khi gửi dữ liệu sẽ mã hóa dữ liệu bằng thuật toán mã hóa bấtđối xứng với key là public key từ bên nhận.
Bên nhận sẽ giải mã dữ liệu nhận được bằng thuật toán được sử dụng ở bêngửi, với key giải mã là private key
Điểm yếu lớn nhất của mã hóa bất đối xứng là tốc độ mã hóa và giải mã rất chậm sovới mã hóa đối xứng, nếu dùng mã hóa bất đối xứng để mã hóa dữ liệu truyền –nhận giữa hai bên thì sẽ tốn rất nhiều chi phí
Do đó, ứng dụng chỉnh của mã hóa bất đối xứng là dùng để bảo mật secret key cho
mã hóa đối xứng: Ta sẽ dùng phương pháp mã hóa bất đối xứng để truyền secretkey của bên gửi cho bên nhận Và hai bên sẽ dùng secret key này để trao đổi thôngtin bằng phương pháp mã hóa đối xứng
Hình CƠ SỞ LÝ THUYẾT-5 Minh họa mã hóa bất đối xứng
2.5.2 Các giao thức bảo mật
2.5.2.1 SSL
SSL (Secure Sockets Layer) là một giao thức mã hóa cho phép truyền thông an toànqua internet Giao thức này đảm bảo việc mã hóa và xác thực dữ liệu được truyềngiữa nguồn và đích, ngăn chặn truy cập trái phép hoặc giả mạo dữ liệu SSL hoạtđộng ở tầng vận chuyển (Transport Layer) trong bộ giao thức TCP/IP, tạo ra mộtkênh mã hóa để truyền tải dữ liệu Bằng cách sử dụng SSL, những thông tin nhạycảm như thẻ tín dụng hoặc thông tin đăng nhập có thể được truyền an toàn trêninternet
Trong thời đại kỹ thuật số ngày nay, nơi internet là một phần thiết yếu của cuộcsống, việc bảo vệ dữ liệu cá nhân trong quá trình truyền tải là vô cùng quan trọng.Khi dữ liệu được truyền qua mạng, nó đi qua nhiều trạm chuyển trung gian, làmtăng nguy cơ bị chặn hoặc sửa đổi SSL giải quyết vấn đề này bằng cách mã hóa dữliệu, làm cho nó không thể đọc được đối với những người không được phép Ngoài
ra, SSL còn đảm bảo rằng dữ liệu được gửi đến đúng người nhận và không bị thay
7
Trang 22đổi trong quá trình truyền Điều này là rất quan trọng để duy trì tính tin cậy và bảomật trong các giao dịch trực tuyến.
2.5.2.2 TLS
SSL và TLS đều là các giao thức mã hóa dùng để truyền thông an toàn trên internet.SSL được phát triển bởi Netscape Communications, trong khi TLS (TransportLayer Security) là phiên bản nâng cấp của SSL được thiết kế bởi InternetEngineering Task Force (IETF) TLS đã thay thế SSL trở thành tiêu chuẩn côngnghiệp, mặc dù hai thuật ngữ này thường được sử dụng thay thế cho nhau TLScung cấp các tính năng bảo mật nâng cao và thuật toán mã hóa được cải thiện, giúp
an toàn và đáng tin cậy hơn so với SSL Tuy nhiên, chức năng và mục đích của SSL
và TLS vẫn giống nhau: thiết lập một kết nối an toàn và bảo vệ dữ liệu trong quátrình truyền
2.5.2.3 DTLS
DTLS (Datagram Transport Layer Security) là một biến thể của TLS hoạt độngtrên giao thức UDP (User Datagram Protocol) thay vì TCP (Transmission ControlProtocol) Trong khi TLS đảm bảo truyền dữ liệu đáng tin cậy và có thứ tự, DTLSđược thiết kế để hoạt động trên các mạng không đáng tin cậy, như các ứng dụngthời gian thực, truyền thông VoIP, hoặc phát trực tiếp DTLS đảm bảo tính toànvẹn, mã hóa và xác thực cho các thông điệp trong giao tiếp dựa trên UDP, làm cho
nó phù hợp với các ứng dụng mà độ trễ là yếu tố quan trọng hơn độ tin cậy
Chứng chỉ CA là một loại chứng chỉ kỹ thuật số được phát hành bởi Tổ chức Chứngnhận (Certificate Authority - CA), một bên thứ ba đáng tin cậy, để xác thực danhtính của một thực thể (ví dụ: một trang web, tổ chức hoặc cá nhân) trên mạng.Chứng chỉ CA đóng vai trò quan trọng trong việc đảm bảo tính bảo mật, toàn vẹn vàtin cậy của các giao dịch và truyền thông trực tuyến
Mã hóa dữ liệu:
o Các chứng chỉ do CA cấp thường được sử dụng trong các giao thứcnhư SSL/TLS để mã hóa dữ liệu giữa máy khách và máy chủ, ngănchặn việc nghe lén hoặc can thiệp
Tạo niềm tin:
o Vì CA là một tổ chức trung gian được công nhận, người dùng có thểtin tưởng vào tính xác thực và bảo mật của các chứng chỉ mà CA pháthành
8
Trang 23Cấu trúc của chứng chỉ CA
Chứng chỉ CA thường tuân theo tiêu chuẩn X.509 và chứa các thông tin sau:
Tên của chủ thể được cấp chứng chỉ (Common Name - CN)
Khóa công khai của thực thể được chứng thực
Tên của tổ chức phát hành (CA)
Thời hạn hiệu lực của chứng chỉ
Chữ ký số của CA, xác nhận tính hợp lệ và không bị giả mạo của chứng chỉ.Quy trình hoạt động của chứng chỉ CA
Tạo yêu cầu chứng chỉ (CSR - Certificate Signing Request):
Một tổ chức hoặc cá nhân gửi CSR đến CA, chứa thông tin khóa công khai
Dưới đây là môt vài entities cơ bản của ThingsBoard
- Devices: các IoT entities cơ bản mà có thể tạo ra telemetry data, xử lí các lệnh RPC Ví dụ như cảm biến, cơ cấu chấp hành, …
- Assets: các IoT entities trìu tượng mà có thể liên quan đến các devices và assets khác Ví dụ như factory, field, vehicle
- Dashboards: trực quan hóa dữ liệu IoT và có thể dùng để điều khiển các devices cụ thể thông qua user interfeace
Mỗi entity hỗ trợ:
- Attributes: cặp key-value tĩnh và bán tĩnh được liên kết với các thực thể
Ví dụ: serial number, model, firmware version
- Time-series data: time-series data points cho lưu trữ, truy vấn và trực
quan Ví dụ nhiệt độ, nhiệt độ, …
- Relations: các kết nối có hướng tới các entities khác Ví dụ như contains, manages, owns, …
Relations
9