гаджеты и прочие приборы,  дом,  софт

Про умный дом и разнородные гаджеты

Государства некоторые сильно думают об использовании интернета в критической инфраструктуре по совершенно понятной причине — он может сломаться. В случае с государством такое возможно только усилиями государственных мужей, а в случае с любой домашней автоматизацией всё радикально проще, то есть сломаться может в любой момент и способ быстро исправить иногда стоит крайне дорого. Так что, задумываться стоит именно при выборе железа-платформы-софта.

Исходные данные

Для протокола отмечу то, что Госдума РФ не внесла в закон о кастрации интернета:

  • есть опасность, что какой-то сервис просто сгинет (вариантов множество: продажа компании, простое закрытие проекта, изменение интересов собственника);
  • сам доступ в Интернет может внезапно исчезнуть на продолжительное время как силами тракториста перекопавшего кабель, так и силами просто пьяного водителя сбившего столб, ну и совсем надолго он может исчезнуть благая усилиям законодателей разных;
  • ну и, наконец, самое частое происходящее регулярно — просто обновление версии API или стандарта или просто устранение дырки в безопасности, то есть оно работало и вдруг перестало, это непредсказуемые затраты на сторонние сервисы, которые живут независимо от ваших желаний.

Реализация

Приведу наиболее неопрятные примеры: куча железок работающих «через облако» зачастую становятся просто кирпичами в силу того, что облако стало недоступно или сгинуло; какое-то обновление софта ждёт что бы вы нажали где-то кнопку и перестаёт работать пока не нажмёте, но вы об этом не имеете никакой возможности узнать ибо все письма от этой компании, конечно же, уходят в SPAM молча ибо они же никогда не задумываются с какого адреса слать рекламу, а с какого важные сообщения Ну и самое неприятное, что вы привыкаете, что оно работает само и зачастую просто не имеете возможности узнать что оно сломалось до той поры пока не проявились последствия не исправности, так что, лампочки — это самое то, что надо запускать через облако ибо тогда вы в первый же вечер узнаете о поломке.

В результате я разделяю домашнюю автоматизацию на два типа: критичный и опциональный. Критичный обязан работать без внешнего интернета и выполнять все задуманные сценарии, должна быть возможность его локально настроить. Это отопление, вода (полив, насосы вспомогательные), газ, электричество (управление освещением и розетками). Опциональные сервисы — это дистанционное управление, конечно, и всякие графики или взаимодействие с интернет-сервисами. Они имеют право не работать, но если я дома, от с большой вероятностью не должен заметить этой проблемы (на практике, конечно нет, так как облачные сервисы удобнее локальных всё же и мне придётся переключиться на другое приложение на телефоне).

Для критичных элементов я использую встроенные системы, то есть вентиляция, отопление имеют локальные контроллеры, управление вентиляцией сделано через KNX — очень надёжной локальной системы, которая позволяет управлять отоплением с учётом разнородных датчиков и управляет ШИМ (Широтного-Импульсной Модуляцией), а не тупым реле со случайным гистерезисом. Так же я считаю критичным включение освещения, так что, у меня есть тупые датчики освещённости, которые именно включают свет, а вот что включится уже функция релюшек, управляемых «умным домом». Второй уровень подразумевает более сложные сценарии и, в том числе, зависимость от внешних сервисов (например, прогноза погоды для полива) и наличие сложных правил или сценариев. Так как первый уровень в массе своей почти «железный», то есть не предполагает обновления программного обеспечения и подключения к Интернету (мы же понимаем, что в современном мире микропроцессоры везде). А вот второй уровень предполагает подключение к интернету и необходимость обновления ПО как из соображений безопасности, так и ради нового функционала.

Небольшое отступление про виртуализацию и контейнеры.

У систем с большой продолжительностью жизни есть проблема зависимостей, которые могут ломаться при обновлении любого из элементов. Конечно, это выливается в требования безопасности (изоляции от интернета), но некоторые системы, особенно облачные без последнего не лучше тыквы.

Люди думали над этими проблемами и первым большим шагом стала виртуализация, когда конкретная машина когда бесконечно долго жить на в старом окружении ПО, не обращая внимания на железо, которое требует модернизации и просто достойной надёжности путём замены-на-лету. Вторым шагом стали контейнеры, когда стало радикально проще выкатывать готовые контейнеры и отпала нужда в тонкой настройке операционных систем. Конечно, готовые контейнеры и образы виртуальных машин — это всегда потенциальная дырка в безопасности, так что, не стоит их ставить если вы не видели сценария их сборки (сценарии — это свойство контейнеров ибо виртуалки делаются фактически слепками).

То есть, если вы перейдёте на контейнеры или хотя бы виртуальные машины, то с большой вероятностью вы сможете их развернуть очень быстро на любом железе и это крайне важно ибо холодный резерв всё же дешевле в силу инфляции, как минимум, любого горячего (если кто-то понимает о чём я). Это про то, что нужно всегда покупать самое новое железо ибо оно быстро устареет если есть тренд развития.

Продолжение реализации

С учётом всего этого я выстраиваю систему резервирования и тут в ходу все возможные варианты, конечно. И просто резервные копии в дисковом массиве, и флэшки с копиями ( это самое слабое звено ибо тестировать их сложно). И копии машин и понимание, что надо всё железо брать overIP что бы при обновлении ПО не надо было думать о проводах. То есть, есть внутренний сервис на каком-то IP-порту и вот с ним мы по известному протоколу и общаемся, а что там кругом не должно влиять никак на работу.

И вот при покупке контроллеров я всегда смотрю что бы была возможность обойтись без облачного сервера неведомо где в интернете расположенного. Сейчас в моде у китайцев примерно такой подход: железка имеет IP, но она не умеет HTTPS и вся безопасность упирается в то как она подключена и знание некоего TOKEN, который по сути ключ доступа, но фактически простой ключ как вот прямо в Матрице (кино такое). То есть его предъявляешь и всё тебе доступно. Я почему про отсутствие HTTPS переживаю в этом месте? Просто тут получается что простая атака с подменой DNS + Man-in-Middle (весьма популярная история нынче) позволяет получить полный доступ к железке ибо поменять этот token зачастую невозможно никак, да и поменять его, так где он есть, весьма непросто ибо не всегда понятно где менять-то.

Итого я пытаюсь выстроить «Умный дом» внутри локальной сети, так что бы он работал без интернета вовсе. И последние приобретения делались именно после чтения документации как реализовать таковую локальность. Типовой подход — мини-хак китайских железок, когда железный токен из них выковыривается путём инициализации локальным приложением или вовсе запросом с консоли и в URL и дальше они управляются через OpenHAB без внешних облаков. Из недавних покупок это RoboRock и Sonoff — оба могут работать без интернета, но это не описано в документации, конечно.

PS: Важные мелочи (дополнения)

Одна из ключевых вещей в безопасности дома, конечно, WiFi ибо он доступен неограниченному кругу лиц. Я для целей контроля WiFi использую 3 разных SSID, доступные с разных точек доступа и полностью изолированных. Во-первых внутренняя сеть которая доступна как в диапазоне 2,4, так и 5 ГГц. Во-вторых, DMZ (De-Military Zone), которая имеет доступ во внешний мир по системе «ниппель», но лишена доступа во внутреннюю сеть от слова «established», то есть из внутренней сети она доступна, а сама туда попасть не может и это важно. И крайний случай — публичная сеть, которая требует регистрации по номеру телефона и облачена во всяческие фильтрации и совсем не отличается от FreeWiFi в кафе города. Весь этот зоопарк раздаётся одними и теми же точками доступа, но с разными идентификаторам сети (SSID), так что имеет «бесшовное» покрытие весьма большой зоны где могут оказаться люди. Ключевой момент что в каких диапазона доступно: всё медленное и универсальное — 2,4ГГц, а всё быстрое, конечно, 5ГГц, то есть по факту только внутренняя сеть есть в 5ГГц, а гости и железки в 2,4. Конечно, это отчасти проблема тоже, но эфир всегда подразумевает свободу и полагающиеся риски.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Спасибо!

Теперь редакторы в курсе.