U97
#آردوینو #ESP32 #IoT #رباتیک #خانه هوشمند #سنسور #I2C #میکروکنترلر
امنیت در اینترنت اشیا: TLS، به‌روزرسانی OTA و مدیریت کلید روی ESP32

امنیت در اینترنت اشیا: TLS، به‌روزرسانی OTA و مدیریت کلید روی ESP32

میثم پورجعفری ۱۶ بهمن ۱۴۰۴ ۴۳۱ بازدید ۱ دقیقه مطالعه پیشرفته ۶۵ دقیقه
چرا MQTT بدون TLS قابل دستکاری است؛ راه‌اندازی HTTPS، تثبیت گواهی، به‌روزرسانی OTA امضاشده و قابلیت‌های Secure Boot.

تهدید واقعی چیست؟

ارتباط MQTT یا HTTP بدون رمزنگری یعنی هر کسی در مسیر می‌تواند داده را ببیند، تغییر دهد یا فرمان جعلی بفرستد. دستگاه بدون بررسی امضای فریم‌ور هم در برابر فیریمور دستکاری شده آسیب‌پذیر است.

۱) HTTPS با گواهی CA

WiFiClientSecure net;
net.setCACert(ca_cert);        // گواهی ریشه سرور
HTTPClient http;
http.begin(net, "https://api.example.com/status");
int code = http.GET();

۲) MQTT روی TLS

بروکر را روی پورت 8883 و با گواهی سرور راه‌اندازی کنید؛ سپس در کد، CA certificate را ست کرده و کلاینت را با نام‌کاربری و رمز متصل کنید. از حالت setInsecure() فقط برای دیباگ استفاده کنید.

۳) به‌روزرسانی OTA امضاشده

  1. فیریمور را در ESP-IDF با Secure Boot v2 و Flash Encryption فلش کنید.
  2. از esp_https_ota برای دریافت و راستی‌آزمایی امضای بسته جدید استفاده کنید.
  3. بسته جدید ابتدا در پارتیشن غیرفعال نوشته و در صورت موفقیت کلید سوئیچ عوض شود (Rollback فعال).

۴) نگهداری کلیدها

  • کلیدها و توکن‌ها را در NVS با قابلیت رمزگذاری ذخیره کنید، نه به‌صورت متن ساده در کد.
  • برای هر دستگاه یک شناسه و کلید اختصاصی بسازید تا لو رفتن یک دستگاه، بقیه را هم از کار نیندازد.

تمرین

یک نود ESP32 بسازید که داده دما را با MQTT over TLS منتشر کند و سپس از راه دور و با یک بسته امضاشده به‌روزرسانی شود.

اشتراک در تلگرام

میثم پورجعفری

مهندس برق - الکترونیک

مهندس برق - الکترونیک؛ طراح و مجری پروژه‌های میکروکنترلری، برد الکترونیکی و سیستم‌های کنترل صنعتی. در U97 تجربه‌های عملی، آموزش‌های کاربردی و ابزارهای مهندسی را در اختیار…

درباره نویسنده
نصب اپلیکیشننسخه اپلیکیشن U97 را روی گوشی خود نصب کنید؛ سریع‌تر و با دسترسی آفلاین.