Site icon TAPIT

Chuỗi bài viết đề tài “Giải pháp bảo mật cho thiết bị Datalogger” (P6)

Trong quá trình vận hành của các thiết bị Nhúng và IoTs, nhiều bài toán mà các nhà phát triển đang gặp phải như: bổ sung các tính năng mới, cập nhật tính năng bảo mật, nâng cấp hay sửa các lỗi còn tồn đọng trong bản chương trình hiện tại,… Cập nhật chương trình từ xa đang là một giải pháp được sử dụng khá phổ biến vì sự tiện lợi hơn so với thao tác cập nhật chương trình thủ công trực tiếp trước đây. Tại phần này của chuỗi bài viết, chúng ta cùng tìm hiểu Giải pháp bảo mật Cập nhật chương trình từ xa.

Các bạn tham khảo nội dung các phần trước của chuỗi bài viết:

? Phần 1: Tổng quan vấn đề bảo mật trên các hệ thống IoT. Xem tại đây.

? Phần 2: Đề xuất giải pháp bảo mật cho thiết bị Datalogger. Xem tại đây.

? Phần 3: Giải pháp 1 – Bảo vệ chương trình ứng dụng và dữ liệu tại thiết bị. Xem tại đây.

? Phần 4. Giải pháp 2 – Bảo vệ khi giao tiếp cổng vật lý. Xem tại đây.

? Phần 5. Giải pháp 3 – Bảo mật quá trình khởi động của thiết bị. Xem tại đây

Phần 6. Giải pháp 4 – Bảo mật Cập nhật chương trình từ xa

1. Quá trình cập nhật chương trình từ xa

Chương trình cập nhật được truyền tải trên đường truyền Internet, đây chính là mấu chốt sinh ra nhiều lỗ hổng bảo mật trong quá trình cập nhật như: kẻ tấn công chèn mã độc trong quá trình cập nhật; nội dung chương trình có thể bị rò rỉ khi truyền tải; chương trình ứng dụng của thiết bị có thể bị hạ cấp xuống phiên bản cũ, nơi có nhiều lỗ hổng bảo mật tồn tại.

Hình 1. Mô hình tổ chức bộ nhớ cho cập nhật chương trình trên thiết bị Datalogger

Với mô hình tổ chức bộ nhớ này thì có hai phân vùng dành cho chương trình ứng dụng với hai phiên bản khác nhau. Thiết bị có thể luân phiên cập nhật chương trình cho các vị trí A/B để thiết bị luôn duy trì hai phiên bản chương trình mới nhất. Chương trình OTA có nhiệm vụ chính là thực hiện tải tập tin chương trình ứng dụng từ máy chủ quản lý tập tin về và thực hiện thay thế chương trình ứng dụng. 

Quá trình cập nhật chương trình an toàn liên quan đến hai thực thể: chủ sở hữu chương trình ứng dụng và thiết bị được cập nhật. Kênh liên lạc là yếu tố không an toàn. Tại giải pháp này, chương trình sẽ được kiểm tra các yếu tố như tính bí mật, toàn vẹn, xác thực trước khi thiết bị hoạt động với chương trình phiên bản mới và đảm bảo thiết bị sẽ không sử dụng ứng dụng phiên bản cũ.

Hình 2. Cấu trúc cập nhật chương trình an toàn

Một cách tổng quát, quá trình cập nhật chương trình từ xa thường trải qua các bước sau:

2. Triển khai giải pháp bảo mật cập nhật chương trình từ xa

2.1. Quá trình chuẩn bị chương trình ứng dụng phiên bản mới

Quy trình xây dựng chương trình ứng dụng tại giải pháp cập nhật an toàn có các bước thực hiện tương đồng với giải pháp khởi động an toàn, cụ thể hơn tại các bước:

Hình 3. Quy trình xây dựng chương trình ứng dụng phiên bản mới

2.2. Bảo mật quá trình cập nhật chương trình từ xa

Quy trình thực hiện cập nhật chương trình được thể hiện cụ thể tại hình dưới đây. Quy trình này đảm bảo được các yếu tố đã được đề ra:

Hình 4. Quy trình thực hiện cập nhật chương trình an toàn

2.3. Các bước thực hiện bảo mật quá trình cập nhật từ xa:

3. Kết quả giải pháp bảo mật cập nhật chương trình

Quá trình xây dựng chương trình ứng dụng kết hợp với dữ liệu Meta và chữ ký của Meta tương tự với quá trình xây dựng chương trình trong giải pháp bảo mật quá trình khởi động của thiết bị. 

Giao diện tải chương trình ứng dụng lên hệ thống máy chủ như hình 4.8. Nhóm đề tài đã thực hiện việc tải chương trình ứng dụng phiên bản mới, lưu trữ được vào bộ nhớ Flash và chương trình khởi chạy thành công. 

Nhận xét: Kiểm nghiệm thành công. 

Hình 5. Giao diện tải tệp chương trình ứng dụng phiên bản mới lên hệ thống máy chủ

Hình 6. Kiểm nghiệm tải chương trình ứng dụng phiên bản mới

Trong bài viết này, mình tiếp tục hướng dẫn các bạn các bước triển khai của giải pháp bảo mật thứ 4 – Bảo mật Cập nhật chương trình từ xa. Các bạn nhớ đón chờ Giải pháp thứ 5 – Bảo mật dữ liệu truyền nhận qua môi trường Internet bằng TLS/SSL trong phần tiếp theo nhé!

Chúc các bạn thành công!

Nguyễn Thùy Nhiên – Đề tài Capstone Project tại TAPIT

Tìm hiểu thêm:
Tổng hợp hướng dẫn Internet of Things với NodeMCU ESP8266 và ESP32
Tổng hợp các bài hướng dẫn Lập trình vi điều khiển STM32
[HỌC ONLINE: LẬP TRÌNH VI ĐIỀU KHIỂN STM32, VI XỬ LÝ ARM CORTEX – M]
Fanpage TAPIT: TAPIT – AIoT Learning