top of page

1.1 Матрица «Угроза – Риск – Меры защиты»

 Цель задания:

  • Выявить и классифицировать основные угрозы для IoT-устройств;

  • Научиться оценивать риски и последствия реализации угроз;

  • Предложить обоснованные меры по обеспечению безопасности в системах IoT.

 Инструкция к заданию:

  1. Ознакомьтесь с примерами типичных угроз для IoT-экосистемы:

    • Подделка данных с датчиков

    • Несанкционированный доступ к устройствам

    • Атаки типа «человек посередине» (MITM)

    • Потеря соединения или данных

    • Утечка личной информации через незащищённые каналы

  2. Постройте матрицу в табличной форме:(см.рисунок №1)

  3. Выберите ещё 1–2 угрозы, характерные для вашего проекта (например, полив, умный класс, температура в теплице) и дополните таблицу самостоятельно.

Ожидаемый результат:

  • Заполненная таблица с не менее чем 5 строками;

  • Аргументированные меры защиты для каждой угрозы;

  • Понимание взаимосвязи: Угроза → Риск → Последствия → Контрмера.

image.png

Шаблон матрицы

1.2 Внедрение TLS-соединения с MQTT-брокером

Цель задания:

  • Настроить безопасное соединение между устройством и MQTT-брокером;

  • Использовать TLS (Transport Layer Security) для шифрования обмена данными;

  • Проверить шифрование и корректность подключения.

Требования:

  • ESP32 с Arduino IDE

  • Wi-Fi-соединение

  • MQTT-брокер с поддержкой TLS (например, test.mosquitto.org)

  • Установленные библиотеки WiFiClientSecure, PubSubClient

Инструкция: Подключение ESP32 к MQTT через TLS

Шаг 1. Установка библиотек

Убедитесь, что у вас установлены библиотеки:

  • PubSubClient

  • WiFiClientSecure

Шаг 2. Базовый скетч для подключения через TLS

#include <WiFi.h>
#include <WiFiClientSecure.h>
#include <PubSubClient.h>

// Данные вашей сети
const char* ssid = "ВАШ_SSID";
const char* password = "ВАШ_ПАРОЛЬ";

// MQTT брокер (Mosquitto с TLS)
const char* mqtt_server = "test.mosquitto.org";
const int mqtt_port = 8883;

WiFiClientSecure wifiClient;
PubSubClient client(wifiClient);

void setup_wifi() {
  delay(10);
  Serial.begin(115200);
  Serial.println("Подключение к Wi-Fi...");
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("Wi-Fi подключен");
}

void reconnect() {
  while (!client.connected()) {
    Serial.print("Попытка подключения к MQTT...");
    if (client.connect("ESP32_TLS_Client")) {
      Serial.println("Успешно");
      client.publish("/iot/tls", "Привет через TLS!");
    } else {
      Serial.print("Ошибка, код=");
      Serial.println(client.state());
      delay(5000);
    }
  }
}

void setup() {
  setup_wifi();
  wifiClient.setInsecure(); // ⚠ Только для тестирования!
  client.setServer(mqtt_server, mqtt_port);
}

void loop() {
  if (!client.connected()) {
    reconnect();
  }
  client.loop();
}
 

📌 Важно: В строке wifiClient.setInsecure() отключена проверка сертификата — это упрощённый способ подключения. Для продакшн-среды нужно использовать wifiClient.setCACert() с реальным корневым сертификатом.

Ожидаемый результат:

  • ESP32 успешно подключается к MQTT-брокеру через порт 8883 (TLS)

  • Сообщение публикуется в топик /iot/tls

  • В Serial Monitor видно подтверждение соединения и публикации

Итог семинара

  • Каждая группа сдаёт:

    • Заполненную таблицу «угроза–риск–мера» (в PDF/таблице)

    • Фото или скриншот подключения ESP по TLS

    • Код подключения (основные строки)

    • Краткий комментарий (3–5 предложений): что нового узнали, что было сложно, какие сертификаты использовались

Дополнительный материал: 

Для загрузки выполненных работ:

Нажмите "МЕНЮ" - Загрузка работ - Перейдите по ссылке в кнопке.

bottom of page