У меня вся система построена на Java. В отличии от браузера, Java работает и как Визуализатор и как Сервер (причём одновременно).
Это открывает совершенно новые возможности... О чём будет рассказано дальше... Заодно разберём что хорошо а что плохо.
Продолжаем...
Перерисуем схему по нормальному.
-на схеме показано для примера 7 устройств. Вся система рассчитана на 255 устройств. Можно и больше, но пока достаточно.
-в качестве Сервера можно использовать ATmega128 (если задач много и требуется много памяти) или ATmega8 (если задач мало и требуется мало памяти).
-сервер может иметь свою панель управления и экран для индикации работы всего Умного Дома. Или можно обойтись без панели управления и экрана, а правлять Сервером удалённо (с любого устройства - телефона, компьютера и т.д.).
-в качестве исполнительных устройств думаю достаточно ATmega8.
-все устройства имеют свой ID.
Добавлено after 36 minutes 12 seconds:
Маршрутизация.
Маршрутизация пакетов в сети может быть организовано по разному.
1. Например всё устройства могут общаться между собой напрямую. В этом случае Сервер работает как обычный коммутатор пакетов (с фильтрацией пакетов или без фильтрации пакетов).
2. Всё устройства могут общаться через Сервер. В этом случае Сервер управляет всеми устройствами в Доме (с фильтрацией пакетов и/или обработкой пакетов).
Думаю такой вариант наиболее подходящий.
3. Сервер связан со всеми устройствами в Доме как по проводам (топология "звезда"), так и по беспроводной связи (топология "общая шина").
В качестве радио модулей можно использовать любые радио модули, включая самодельные (не принципиально).
Протокол радиообмена можно использовать как "заводской", так и "самодельный" (не принципиально).
Для примера на схеме показаны радио модули NRF24.
4. Можно так же использовать Ячеистую топологию. Так называемую "mesh-сеть".
https://ru.wikipedia.org/wiki/Ячеистая_топология
Но это потребует дополнительной памяти на всех устройствах в Доме.
Поэтому думаю остановимся на варианте 2. - Всё устройства могут общаться только через Сервер.
В отличии от схем с браузером, в нашей схеме все устройства в Доме могут связываться напрямую с любым устройством (телефон, компьютер и т.д.), на котором запущен Сервом Java.
Добавлено after 1 hour 17 minutes 9 seconds:
Шифрование.
Пожалуй самая сложная часть проекта.
Сейчас используется протокол шифрования ГОСТ 28147-89
https://ru.wikipedia.org/wiki/ГОСТ_28147-89
Только немного модифицированный.
Режим шифрования.
Сейчас используется режим шифрования (
https://ru.wikipedia.org/wiki/Режим_шифрования) - Random_Delta_(RD).
Подробней:
-есть Вектор инициализации.
-есть Генератор гаммы. Конечная схема Генератора гаммы может немного отличаться, но сам принцип работы неизменный.
Вместо AES-256 используется ГОСТ-256.
1. Вектор инициализации состоит из нескольких частей:
-заголовка - ID устройства. Так как все устройства в Доме имеют свой уникальный ID, то все устройства в Доме будут генерировать свою уникальную гамму. Это повышает криптостойкость всей системы в целом.
-генератора случайный чисел. Генератор случайных чисел делает непредсказуемым номер вектора инициализации. Это значительно повышает криптостойкость всей системы в целом.
В качестве генератора случайных чисел в Сервере Java используется встроенный генератор случайных чисел Java.
В качестве генератора случайных чисел в исполнительных устройствах используется шум квантования АЦП МК (ATmega8 или ATmega128). См.выше.
-счётчика вектора инициализации. Счётчик вектор инициализации позволяет генерировать уникальные гаммы. Это значительно повышает криптостойкость всей системы в целом.
2. Вектор инициализации шифруется и передаётся вместе с зашифрованным пакетом.
3. Работа Генератора гаммы в особых пояснениях не нуждается. Стандартный режим сцепления блоков.
Единственное что - можно добавить опцию - "режим сцепления блоков с переменным шагом".
4. Имитовставки не используются. Вместо них используется хеш-функция. Сейчас обычный CRC.
На схеме зашифрованные пакеты выглядят так:
-с помощью хеш-функции (сейчас обычный CRC) Система Умный Дом проверяется целостность данных. При ошибках хеш-функции Система Умный Дом сообщает на все устройства (телефон, компьютер и т.д.), на которых запущен Сервер Java.
Далее Система Умный Дом переходит в режим "блокировки" или в другой режим (согласно настройкам).
-благодаря счётчику вектора инициализации все пакеты уникальны (никогда не повторяются).
Это позволяет легко защититься от так называемой "Атаки повторного воспроизведения".
https://ru.wikipedia.org/wiki/Атака_пов ... оизведения
Система Умный Дом автоматически обнаруживает все атаки "повторного воспроизведения" и сообщает на все устройства (телефон, компьютер и т.д.), на которых запущен Сервер Java.
Далее Система Умный Дом переходит в режим "блокировки" или в другой режим (согласно настройкам).
