1.1 Матрица «Угроза – Риск – Меры защиты»
Цель задания:
-
Выявить и классифицировать основные угрозы для IoT-устройств;
-
Научиться оценивать риски и последствия реализации угроз;
-
Предложить обоснованные меры по обеспечению безопасности в системах IoT.
Инструкция к заданию:
-
Ознакомьтесь с примерами типичных угроз для IoT-экосистемы:
-
Подделка данных с датчиков
-
Несанкционированный доступ к устройствам
-
Атаки типа «человек посередине» (MITM)
-
Потеря соединения или данных
-
Утечка личной информации через незащищённые каналы
-
-
Постройте матрицу в табличной форме:(см.рисунок №1)
-
Выберите ещё 1–2 угрозы, характерные для вашего проекта (например, полив, умный класс, температура в теплице) и дополните таблицу самостоятельно.
Ожидаемый результат:
-
Заполненная таблица с не менее чем 5 строками;
-
Аргументированные меры защиты для каждой угрозы;
-
Понимание взаимосвязи: Угроза → Риск → Последствия → Контрмера.

Шаблон матрицы
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 предложений): что нового узнали, что было сложно, какие сертификаты использовались
-
Дополнительный материал:
Для загрузки выполненных работ:
Нажмите "МЕНЮ" - Загрузка работ - Перейдите по ссылке в кнопке.