Понимая этот риск, производители не должны выпускать продукцию для интернета вещей, не оснащенную защитой от хакерских атак. Очевидно, что эти системы требуют использования средств аутентификации и шифрования. Поскольку при этом необходимо также ограничить энергопотребление интернета вещей, задача по реализации эффективных и адекватных механизмов обеспечения безопасности намного усложняется.
Для защиты встраиваемых систем требуется программное и аппаратное обеспечение. В незащищенное оборудование может проникнуть вредоносный код, который используется киберпреступниками для атаки на операторскую сеть или для кражи данных. В то же время многие неопытные разработчики испытывают немалые трудности при оснащении приложений средствами безопасности.
Одним из главных требований к эффективной защите является обеспечение уникальной идентификации для каждого сетевого устройства. Хакеры используют один общий недостаток – слишком простой пароль или логин, который присваивается специалистами по ремонту и техническому обслуживанию. Зная логин, можно получить доступ не только к одному устройству, но и к целому парку оборудования. Кибермошенники создают ботнеты – компьютерные сети, создающие распределенные атаки типа «отказ в обслуживании» (DoS-атаки), в результате которых пользователи не могут получить доступ к сайту или веб-сервису из-за его перегрузки. Вредоносные коды идентифицируются и регистрируются в каждом подключенном к интернету устройстве.
Метод уникальной идентификации предоставляет каждой системе собственный набор удостоверений защиты и существенно сокращает возможности хакеров создать бот-сети. Доступ получает только авторизованный пользователь с правильным набором регистрационных данных. Однако такой повышенный уровень защиты по-разному реализуется при проектировании и в процессе управления сервисами.
Реализация эффективной защиты, которая облегчает разработку, достигается путем тщательного выбора. Сначала выбирается оборудование для защиты целостности устройства. Эта защита не только исключает доступ к встроенному ПО устройства без прохождения авторизации, но и предотвращает возможность его использования для сетевой атаки. Например, если хакер получил параметры доступа к одному устройству, необходимо, чтобы он не смог применить их для создания, например, бот-сети. Таким образом, идентификация и сохранность (целостность) тесно связаны друг с другом.
Инфраструктура открытых ключей (PKI) предоставляет средства создания и проверки уникальной доверенной идентификации не только внутри самого устройства, но и всей сети. PKI-инфраструктура основана на идее асимметричного шифрования – методе, который арифметически связывает два цифровых ключа. Один из них является открытым и, как правило, применяется для проверки сообщений. Как следует из его названия, этот ключ можно широко использовать, не создавая угрозы безопасности. Открытый ключ обеспечивает простой способ отправки защищенных сообщений устройствам, которые его «знают». Самому устройству требуется закрытый ключ для подписи отправленных сообщений, которые верифицируются с помощью соответствующего открытого ключа.
По базовым операциям в PKI-инфраструктуре можно установить более структурированные модели аутентификации, к которым относятся цифровые сертификаты, доказывающие идентификацию устройства. Для создания цифрового сертификата устройство помечает сообщение или вызов, создавая подпись (сигнатуру) с помощью закрытого ключа. Соответствующий открытый ключ используется принимающей стороной для установления подлинности подписи.
Закрытому ключу требуется надежная защита. Недостаточно только записать ключ в энергонезависимую память устройства до его использования в сети, т.к. легко получить доступ к этому ключу. Закрытый ключ никогда нельзя раскрывать. Если это произойдет, хакеры получат возможность создать клоны сетевых устройств. Подменив оригинальные устройства, клоны нарушают безопасность сетевых приложений, работа которых зависит от данных, передаваемых устройствами.
Проблема схемы на основе стандартного микроконтроллера заключается в том, что любой криптографической программе, работающей на процессорном ядре, требуется доступ к закрытому ключу для вычислений. При этом предполагается, что ключ хранится в контроллере. Следовательно, главное требование к оборудованию состоит в использовании элемента безопасности для перемещения операций шифрования в отдельную защищенную область вместе с безопасным хранилищем закрытых ключей (см. рис. 1).

Рис. 1. Элемент безопасности, являющийся вспомогательным средством для микроконтроллера, – тот самый «сейф», в котором хранится конфиденциальная информация
Если ключ и криптографические функции хранятся совместно в одной и той же физической защищенной области, исключается необходимость в отправке конфиденциальных данных через внутреннюю системную шину.
В тех случаях, когда системе требуется установить безопасную связь или подтвердить свою идентификационную информацию, применяется элемент безопасности, который отвечает на случайный вызов. Ответом на него является код, получаемый арифметическим путем из случайной части вызова и соответствующего закрытого ключа, хранящегося в этом элементе. Другими словами, случайный вызов получает подпись от закрытого ключа. Таким образом, элемент безопасности может доказать наличие соответствующей секретной информации, но у него нет необходимости раскрывать закрытый ключ.
Элемент безопасности также защищает устройство от поддельного кода, которым может попытаться воспользоваться злоумышленник для взлома системы. Во избежание этого требуется защитный механизм в виде проверки кода, которую иногда называют защищенной загрузкой или верификацией при выполнении кода. В этом случае элементу безопасности отправляется сигнатура, полученная из помеченной области начальной загрузки, которая хранится в устройстве. Любые изменения кода должны получить подпись от производителя с использованием его закрытого ключа. С помощью процедур защищенной загрузки и проверки при выполнении кода система может поддерживать обновления по беспроводной связи, предоставляемые производителем. При этом исключается риск получить обновления с помощью атаки через посредника или схожей хакерской технологии.
Ключ, применяемый для проверки сигнатуры кода, представляет собой конфиденциальные идентификационные данные, которые должны храниться в защищенной и неизменной области памяти. Если этот ключ изменится, система перестанет работать. Если изменится пара ключей, код можно будет подделать.
В качестве примера эффективной защиты можно привести элемент безопасности ATECC608A компании Microchip. Допускается использованием этого элемента в любой микроконтроллерной системе с поддержкой стандартного интерфейса I2C или 1-Wire. В этом устройстве энергонезависимая память комбинируется с несколькими криптоускорителями для реализации алгоритмов на эллиптических кривых. Данное устройство никогда не раскрывает секретные ключи в канале связи и оснащено рядом аппаратных функций для защиты от взлома, что практически исключает риск обнаружения конфиденциальной информации.
Несмотря на то, что элемент безопасности совместно с микроконтроллером создает надежную основу для обеспечения высокого уровня защиты подключаемых устройств, эта комбинация – лишь часть всего решения. Известно немало сценариев использования приложений, включая создание сложных протоколов для встраиваемого ПО с помощью основных функций, которыми располагает элемент безопасности. Например, помимо безопасной загрузки IoT-устройству требуется связь с удаленными хостами с использованием шифрованных протоколов, например TLS, и генерация сертификатов по требованию, которые доказывают, что устройство не подверглось взлому, если оно намеревается подключиться к новому сервису. В тех случаях, когда производитель или оператор услуг желает отправить обновления для кода, необходимо верифицировать сигнатуру встроенного ПО до обновления памяти и перезагрузки системы.
Еще одним требованием может стать наличие способности осуществлять опознание вспомогательных устройств или картриджей и определять их подлинность. Эта функция может выполняться с помощью протоколов, сходных с теми, которые применяются для верификации кода, но с несколькими принципиальными отличиями. Например, каждое периферийное устройство должно иметь собственный элемент безопасности для проверки подлинности хост-системы, в которую оно встроено.
Хотя принципы реализации этих функций у каждого протокола достаточно простые, оснащение ими может оказаться затруднительным, поскольку возможность отладки ограничена необходимостью системы отвечать требованиям протоколов безопасности.
Часто считается, что нажатие кнопки перезагрузки системы или очистка содержимого памяти обеспечит доступ к нереагирующему устройству. Режимы отладки, как правило, предоставляют разработчику привилегированный доступ к системе. Однако при использовании более высоких уровней безопасности подключаемой к интернету системы некоторые из этих способов не работают. Невозможность корректной реализации программного обеспечения может стать причиной утраты доступа к опытному образцу. Наибольшие хлопоты при разработке безопасной системы возникают при отладке ключевых протоколов.
Например, можно легко внести ошибки в код, который обрабатывает пароли или сертификат безопасности, в результате чего устройство перестанет отвечать на допустимые запросы. Если для восстановления доступа к устройству было бы достаточно нажать кнопку перезагрузки, этой возможностью легко воспользовались бы хакеры для проникновения в систему. Таким образом, разработка, отвечающая требованиям к безопасности, требует гораздо больше усилий. Это препятствие становится труднопреодолимым, если группа разработчиков не обладает достаточным опытом.
Однако одним из преимуществ систем, построенных на PKI-инфраструктуре, является реализация приложений поверх основных протоколов и сценариев использования в виде, например, верификации подписанного исполняемого модуля и создания сертификатов, которые можно повторно применять во многих проектах. Такой подход привел к созданию платформы доверия (Trust Platform) компании Microchip, которая предоставляет набор конфигураций, исходный код, аппаратные и программные средства, облегчающие исполнение широкого ряда сценариев использования в рабочем процессе, начиная с появления концепции и заканчивая аппаратной реализацией, включающей элемент безопасности, например ATECC608A.
Платформа доверия предлагается в трех основных видах. Самым простым из них является платформа Trust&GO, которая обеспечивает постоянный набор функций. К ним относится предоставление доступа устройства к облачным сервисам AWS, Google Cloud, Microsoft Azure или к частным облакам. К еще одной конфигурации, которая поддерживается платформой Trust&GO, относится комплексное решение для безопасной аутентификации устройств, которые подключаются к беспроводной сети LoRaWAN. Платформа TrustFLEX предоставляет дополнительный уровень кастомизации с поддержкой широкого ряда операций, начиная с безопасной загрузки и заканчивая генерацией сертификатов. TrustCUSTOM, третья разновидность платформы, предоставляет клиентам возможность регулировать параметры разработки и интеграции элементов безопасности в заданную модель безопасности. На рисунке 2 показаны основные этапы проектирования с помощью платформы доверия компании Microchip.

Рис. 2. Основные этапы разработки с помощью платформы доверия от компании Microchip
Важным преимуществом платформы доверия, благодаря которому упрощается безопасный доступ по сравнению с другими решениями, является сервис регистрации ключей для мелкосерийных приложений. У конкурентов компании Microchip минимальный размер заказа может составлять 100 тыс. элементов безопасности, что обусловлено расходами на установку исходных сертификатов и ключей, которые необходимо запрограммировать на оборудовании защищенной производственной линии. С помощью платформы Trust&GO клиенты имеют возможность сделать заказ на приобретение элементов безопасности объемом от 10 ед. При этом заказчики получают всестороннюю поддержку инфраструктуры Trust Platform, включая регистрацию ключей. При использовании платформы TrustFLEX минимальный объем заказа составляет 2000 ед. При этом обеспечивается регистрация, а пользователь получает больший контроль над сертификатами, ключами и приложениями с учетом того, что речь идет о безопасной поставке кастомизированных решений.
Благодаря платформе доверия Microchip клиенты получают доступ к механизмам безопасности с высокой степенью кастомизации; при этом в процессе разработки и внедрения риски нарушения безопасности намного меньше, чем у других решений. Комбинация инструментов, исходного кода и инфраструктуры поставок позволяет разработчикам встраиваемых систем получить доступ к полностью защищенной зарегистрированной системе на всех этапах проектирования, что намного уменьшает его длительность.
На рисунке 3 в схематичном виде показан пример заказа и поставки платформы доверия Microchip.

Рис. 3. Процессы заказа и поставки платформы доверия Microchip
Шифр статьи: МСА814
Дополнительную информацию и опытные образцы можно получить в ООО «Компонента»
8(495) 150-2-150
info@komponenta.ru

30 ноября, 2017
24 ноября, 2017