Использование PKI для безопасности IoT

Устройства интернета вещей в последнее десятилетие получили широкое распространение. Их используют и в системах умного дома и в более важных промышленных системах. При этом, массовое развертывание приводит к угрозам безопасности, последствия которых растут с увеличением количества развернутых устройств. Злоумышленники могут легко скомпрометировать незащищенные устройства и использовать их не по назначению в неблаговидных целях.

d15ae9670b86362645f1bc1d6cc6c126.png

Поэтому обеспечение защиты устройств IoT является очень важной задачей. Так, многие устройства содержат усеченные версии операционных систем семейства Linux, и в случае компрометации, такие системы могут использоваться для выполнения различных хакерских задач, от DDoS атак и рассылок спама, до использования в качестве элементов APT атак.

Проблемы IoT

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

Например, приложение Интернета вещей, собирающее данные с нескольких подключенных устройств, может предъявлять совершенно иные требования к безопасности, чем само устройство. Безопасность должны учитываться и решаться в рамках каждой части информационной архитектуры устройства в IoT.

Рассмотрим список основных уязвимостей Интернета вещей, подготовленный проектом Web Application Security Project (OWASP).

8c63aa33ad3e7eccf45d808ad03e1164.png

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

  • Weak Guessable, or Hardcoded Passwords

  • Insecure Network Services

  • Insecure Ecosystem Interfaces

  • Lack of Secure Update Mechanism

  • Use of Insecure or Outdated Components

  • Insufficient Privacy Protection

  • Insecure Data Transfer and Storage

  • Lack of Device Management

  • Insecure Default Settings

  • Lack of Physical Hardening

Многие из этих уязвимостей так или иначе связаны со слабой аутентификацией. Прежде всего это возглавляющие список слабые/захардкоженные пароли. И вот об аутентификации мы поговорим далее.

НСД в IoT

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

 В общем случае, для аутентификации на каком-либо устройстве используется PIN-код или пароль. Так, при подключении к устройству по Bluetooth мы указываем код для аутентификации. А для более интеллектуальных устройств, работающих по Wi-Fi зачастую может использоваться веб интерфейс или SSH для управления, использующий аутентификацию по паролю.

Очевидным недостатком использования паролей для аутентификации является риск их компрометации. Так учетные данные могут быть украдены различными способами. Даже если вы храните пароли в голове, их можно перехватить с помощью кейлоггера — клавиатурного шпиона, непосредственно во время ввода. Захешированный пароль можно подобрать с помощью перебора по словарю и здесь требования к сложности паролей постоянно увеличиваются. Так если раньше было достаточно длины пароля в восемь символов и подмножества букв и цифр, то сейчас многие ресурсы требуют длину не менее 12 символов и использование букв в разных регистрах, цифр и спецсимволов. И при этом пароли еще проверяются на наличие в списках утекших в сеть.

Также пароли или их хэши могут быть украдены при передаче по сети. Использование шифрования здесь не всегда позволяет защититься, так как злоумышленник может реализовать атаки класса «человек посередине», по сути, встав посередине между отправителем и получателем. Подробнее об этих атаках мы поговорим чуть позже, когда перейдем к основной теме статьи. Усложнение паролей это конечно хороший механизм защиты, но пользователь всегда может приклеить бумажку с труднозапоминаемым паролем на монитор.

Аутентификация по сертификату

Использование сертификатов для аутентификации позволяет существенно усилить защищенность ресурсов сети. Так, при аутентификации с помощью X.509-сертификатов используются приватный ключ и сертификат в формате pem-файлов. Они хранятся на устройстве или реестре. Для приватного ключа вы указываете путь к pem-файлу при отправке сообщений или подписке на получение сообщений. Сертификат вы добавляете к устройству или реестру и указываете путь до pem-файла с сертификатом при отправке сообщений или подписке на получение сообщений.

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

4886de40de719141355a99917828681e.png

Инфраструктура открытого ключа (PKI) позволяет защититься о подобных атак. Вообще, Public Key Infrastructure — это набор средств, распределённых служб и компонентов, которые используются для поддержки криптографических задач на основе закрытого и открытого ключей. По сути, компоненты PKI позволяют подтвердить подлинность сертификатов участников информационного обмена. В результате реализовать MitM атаку становится невозможно.  

Компоненты инфраструктуры открытых ключей представлен на следующем рисунке.

86202cb34c41ea08980d8c05dc4227b3.png

Таким образом, являясь общепринятым и устоявшимся стандартом, PKI является основой, необходимой для обеспечения безопасности связи между устройствами и платформами Интернета вещей.

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

При наличии большого числа клиентских устройств IoT мы можем построить иерархию удостоверяющих центров для того, чтобы сделать работу инфраструктуры PKI стабильнее.

bc4a3dd14bdcba6c00c5afc60f4a4ff5.png

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

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

Внедрение PKI в IoT

Внедрение PKI в IoT может помочь повысить общую безопасность системы IoT, что в свою очередь может затруднить хакерам доступ к данным, а также может помочь гарантировать, что только аутентифицированные устройства смогут взаимодействовать друг с другом.

Чтобы обеспечить правильную реализацию PKI, необходима система управления сертификатами, поскольку вручную управлять количеством ключей и датами их обновления может быть сложной задачей, особенно при наличии большого количества подключенных устройств. Использование системы управления сертификатами для выдачи и отзыва цифровых сертификатов упрощает управление сетью IoT.

Заключение

В этой статье мы рассмотрели основные моменты, связанные с безопасностью интернета вещей, а также связанные с использованием инфраструктуры PKI для обеспечения безопасности компонентов IoT.

В заключение приглашаю посетить полезные уроки, которые пройдут в рамках курса «Инфраструктура открытых ключей PKI»:

  • Криптография и алгоритмы асимметричной криптографии — 13 марта в 20:00. Запись на урок

  • Проектирование инфраструктуры открытых ключей на основе решений Microsoft — 20 марта в 20:00. Запись на урок

© Habrahabr.ru