Как стать автором
Обновить

S for Security: безопасность в Интернете Вещей и доклады на InoThings++ 2019

Время на прочтение 7 мин
Количество просмотров 4K
Всего голосов 33: ↑30 и ↓3 +27
Комментарии 38

Комментарии 38

По-хорошему, шифрование должно вестись от устройства, которое производит данные, до устройства, которое данные потребляет (т.е. без доверия к промежуточным узлам).
В связи с этим, в своих хоббийных проектах использую WiFi MCU TI CC3200.
Причины: бесплатная удобная IDE (CCS), очень удобное SDK, внятная документация, аппаратная поддержка шифрования и возможность закупить модули с готовой обвязкой на китайский площадках (по вменяемой цене).
Данный SoC поддерживает только симметричное шифрование, следовательно ключ хранится во внутренней памяти. При физическом доступе к устройству ключ, может быть скомпрометирован. Также возможен взлом ключа при передаче неизменных данных в радиоканале. Таким образом применение только SoC со встроенным шифрованием не дает полной защиты. Нужны еще программные методы.
Подводя резюме:
Задача разработчика сделать не абсолютно неприступную защиту, а такую, чтобы «стоимость взлома» (время, затраченное на процесс взлома) превышало стоимость получаемой выгоды от взлома.
А потом получается вот так.

Забудьте про классическую ИБ, в которой канал зашифровали — и всё хорошо. Считайте, что у вас одно из конечных устройств находится в полном распоряжении злоумышленника, причём вы не знаете, какое и когда.
НЛО прилетело и опубликовало эту надпись здесь
Защищено что именно и от чего именно?

Пишем свою прошивку, которая сдампит нужные данные из флэша или EEPROM, заливаем через штатный апдейтер под видом обновления, запускаем, voila.

Надёжная защита в таких системах бывает только многоуровневая — подписанные (а то и зашированные, но это, понятно, до утекания заводского ключа) обновления прошивок, secure bootloader с проверкой подписи в обновлениях, шифрование данных индивидуальным для данного контроллера ключом…
НЛО прилетело и опубликовало эту надпись здесь
Что значит «от копирования»? Если внутренняя флэш защищена от чтения внутренним же софтом, вы не можете хранить в ней ключ от Wi-Fi, потому что ваша же легальная прошивка его оттуда не прочитает.

А если не защищена, то его может прочитать не только ваша прошивка, но и любая другая прошивка, которую удастся загрузить на устройство.

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

А если вы хотите секьюрити по-настоящему, то тут уже начинаются разные интересные пляски с secure element — аппаратными хранилищами.
НЛО прилетело и опубликовало эту надпись здесь
Что нельзя штатными апдейтерами слить прошивку из микроконтроллера


Штатный апдейтер — это который по UART общается? Не хочу вас расстраивать, но в контексте OTA он абсолютно бессмысленен, вам придётся писать свой.

Например у sonoff схемы открытые


До первого червя, добавленного к штатной прошивке.
НЛО прилетело и опубликовало эту надпись здесь
Я к тому, что в руках злоумышленников, когда закрыта от считывания флешка, слить прошивку крайне сложно


Злоумышленнику вообще не нужен исполняемый код вашей прошивки, он его с вашего же сайта из раздела «Обновления» загрузит.

Ему нужны настройки устройства, позволяющие либо сделать клон, либо влезть в вашу сеть. Для того, чтобы их слить, загрузчика, не проверяющего подпись прошивки, более чем достаточно.

При открытой схеме штатная прошивка не очень то и нужна.


Если вы планируете ограничиться продажами в десяток тысяч штук для энтузиастов, которые что-то там будут ковырять руками, то, конечно, да.
НЛО прилетело и опубликовало эту надпись здесь
А вот для того чтобы сделать клон, нужна расшифрованная прошивка


Между зашифрованной прошивкой и расшифрованной ровно один шаг, требующий знания ключа. Который у вас во флэше и который без малейших проблем можно слить, если ваш бутлоадер позволяет загрузить неподписанный код.

Честно говоря я не знаю сколько sonoff продаёт


Зато наверняка знаете, что продаёт он устройства со штатной прошивкой.
НЛО прилетело и опубликовало эту надпись здесь
Что нельзя штатными апдейтерами слить прошивку из микроконтроллера.

Микропрограммное обеспечение не сольют. А ключи вы хранить где и как планируете?
НЛО прилетело и опубликовало эту надпись здесь
Таким образом получается, что конечный пользователь не сможет интегрировать Ваш датчик или актуатор в инфраструктуру своей беспроводной сети? Тогда за чем ему покупать Ваше устройство?
НЛО прилетело и опубликовало эту надпись здесь
Вы как и большинство не совсем понимаете, что такое IoT и ИБ. Судя по Вашим комментариям.

Зачем тогда продают и покупают всякие устройства? У которых всё устроено так как я и написал.

Вы точно уверены, что в них так реализовано?
Почему тогда получается, как выше уже указывали?

Какая интеграция…

И тогда какой IoT без интеграции?

НЛО прилетело и опубликовало эту надпись здесь
Мои устройства ещё не взламывали, ну пока…

Интереса к взлому Ваших устройств не у кого не было, так как взлом Вашего устройства не принесет коммерческой выгоды.
Много ли Ваших устройств работает на критически важных объектах?
Какой смысл взламывать Ваши часы, например? Взломать часы, чтобы пораньше будить, часа в два ночи?
НЛО прилетело и опубликовало эту надпись здесь
На моих серийный девайсах, закрыта флеш от чтения, свой загрузчик, и обновления зашифрованы.

Это не дает 100% защиты. Изучите на досуге, методы взлома микроконтроллеров и систем построенных на микроконтроллерах. Есть методы извлечения микропрограммного обеспечения микроконтроллера не только с помощью отладчика.

И потом, чтобы добыть ключи шифрования не обязательно извлекать микропрограммное обеспечение.

Вы точно хотите продолжать дискуссию?
НЛО прилетело и опубликовало эту надпись здесь
Довольно интересной сейчас является ситуация с GSM-управляемыми устройствами. Огромное количество устройств ломаются удаленно практически незаметно для пользователя, при этом «стоимость» взлома составляет что-то на уровне 50 рублей за устройство. При этом отдельный прикол части устройств (куча сигнализаций, контроллеров и других штук с Алиэкспресса и от местных умельцев) в том, что их невозможно эксплуатировать безопасно: их можно купить, поставить в изолированной среде, настроить по инструкциям, но это не поможет, так как они изначально сделаны небезопасно, а проблемы никто не исправляет.
А если хочется безопасно сделать самому для себя?
Кажется, что можно, но это будет далеко не самое дешёвое решение, плюс никто не гарантирует, что систему, которые не можете сломать вы, не может сломать кто-то другой.
Я думаю вопрос о абсолютной безопасности не стоит, скорее можно ли сделать немного лучше, чем покупное изделие. Плюс хоть в абсолютном виде security through obscurity это плохо, но на случайные попытки взлома стандартными методами и девайсами без цели сломать конкретное устройство должно повлиять.
Это древняя борьба между взломщика и разработчиками изделий. Поэтому достичь абсолютной безопасности не возможно. Всегда будут появляться новые средства и методы защиты, и как следствие новые средства и способы взлома. ИБ — это всегда компромисс между стоимость заложенных защит в устройство и получаемой выгоды в результате взлома.
Стоимость защит и убытка или стоимость атак и выгоды тогда уж.
А так может я просто спать спокойнее буду, тоже дорогого стоит)
Опечатка вышла, конечно «стоимость заложенных защит в устройство и убытков в результате взлома»
Ну а тут как понимаете, затраты собственных сил бесплатны, вопрос на сколько дороже будет железо, чем серийное покупное.
Насколько неподьемным является реализация SSL-хендшейка (условно, я про любую ассиметричную криптографию), с лайфтаймом ключа в бесконечность/до потери питания? Например на STM32 103? Я когда-то баловался своими велосипедами на подобных чипах, секьюрити у меня конечно не было. Есть результаты профилирования там по питанию/времени? Ясное дело что есть чипы совсем слабые, которые это точно не потянут, но какие-то там условные 50% покрыть?
Асимметричная криптография очень тяжёлая — 20-30 КБ флэша, 10-20 КБ ОЗУ у типичной библиотеки.

Наверное, надо в сторону чипов с аппаратным шифрованием глядеть. Те же ESP32, хотя и у стмок есть. Дело даже не в флеше и озу — дело в затратах батареи.

Аппаратная криптография — это AES всякий, сугубо симметричная.
У нас в Wiren Board есть, расскажем на докладе
Зарегистрируйтесь на Хабре , чтобы оставить комментарий