Ксавье Биньяле (Xavier Bignalet), менеджер по маркетингу продукции, Microchip Technology
Появление интернета вещей (IoT) значительно расширило область угроз кибербезопасности во всех областях рынка. Каждое подключенное к сети IoT-устройство становится мостом для атаки не только на само устройство, но и на управляющие системы (локальные и облачные).
Атаки на IoT-устройства могут иметь серьезные последствия, т.к. взлом интернета вещей позволяет загрузить в устройства новую прошивку, которая впоследствии может использоваться не только для изменения алгоритма работы (например, для программирования узла на проведение DoS-атак), но и для вторжения в сервисную сеть оператора.
Взлом упрощается при использовании только программных средств аутентификация и защиты, к которым относится ограничение доступа при помощи пароля. Получив доступ к данным аутентификации, злоумышленник сможет использовать их для доступа к удаленным службам, что существенно упростит процесс проведения на них атак. Использование аппаратных средств защиты в сочетании с программными средствами позволит значительно повысить общий уровень безопасности и снизить риск проведения хакерских атак.
Аппаратная безопасность основана на создании уникальных идентификаторов и кодов доступа для устройств в процессе производства с использованием т.н. инфраструктуры открытых ключей (Public Key Infrastructure, PKI). Эта инфраструктура подразумевает присваивание каждому устройству уникального закрытого ключа, связанного с цифровым сертификатом, который охраняется производителем. Закрытый ключ применяется для подписи запроса на идентификацию устройства на сервере, имеющем доступ к соответствующему открытому ключу. Открытый ключ является общедоступным и при использовании PKI не представляет риска в случае его распространения среди неавторизованных пользователей.
Идентичность устройства в PKI-инфраструктуре определяется с помощью его закрытого ключа, а связанный с ним открытый ключ используется в протоколах для того, чтобы установить, что заявленный пользователь (устройство) определен в системе. Присвоенные ключи применяются на протяжении всего жизненного цикла устройства для проверки подлинности обновлений, а также для идентификации при работе с удаленными службами.
Учитывая ключевую роль закрытых ключей в системе безопасности, они должны быть должным образом защищены и от физических, и от программных атак. Идеальным случаем является хранение ключей в специальном элементе, который ограничивает к ним доступ. Однако реализация такого варианта на практике является нетривиальной задачей. Предполагаемая конструкция, в частности, подразумевает наличие защиты от несанкционированного доступа и атак по сторонним каналам (side-channel attack), что требует от разработчика отличных знаний и навыков работы с системами безопасности. Организация должного уровня защиты увеличивает время разработки IoT-устройства, но в то же время является жизненно необходимым аспектом, который в любом случае требуется реализовать. Эффективным решением этой задачи является использование готовых криптоэлементов, позволяющих организовать должный уровень безопасности, к которым относится микросхема ATECC608 семейства CryptoAuthentication от компании Microchip Technology (см. рис. 1).
Рис. 1. Криптоэлемент в составе платформы Trust Platform компании Microchip. На элементе хранятся ключи и сертификаты, генерируемые в процессе производства на заводе-изготовителе, которые не раскрываются на протяжении всего жизненного цикла устройства
Несмотря на простоту использования, наличие криптоэлементов не является панацеей, т.к. по-прежнему остаются проблемы с управлением процессом аппаратной идентификации. Для большинства производителей создание системы, к которой злоумышленник не смог бы получить доступ, обладая достаточным количеством ресурсов, является непростой задачей. Традиционный подход при создании такой системы заключается в настройке криптоэлемента на этапе производства с использованием соответствующих закрытых ключей. Однако логистика и цикл поставок часто ограничивают использование этого подхода на крупных предприятиях. Обеспечение каждого производимого устройства уникальным защищенным идентификатором означает соответствующую настройку производственной линии, что представляет собой дорогостоящее мероприятие, если только эта настройка не амортизируется за счет больших объемов производимой продукции.
Использование новых моделей для организации системы аппаратной идентификации на основе платформы Trust от Microchip обеспечивает IoT-устройства уникальными идентификаторами даже при небольших серийных выпусках с минимальным заказом объемом от 10 ед. Благодаря этой платформе даже такие устройства как IoT-камеры наблюдения, сетевые шлюзы, кондиционеры и т.д. получают должную степень защиты за счет использования предварительно сгенерированных сертификатов безопасности и интеграции крптоэлемента с закрытыми ключами для автономной облачной аутентификации. Стоимость применения этой платформы значительно ниже решений, предлагаемых сторонними поставщиками PKI. Кроме того, ее использование позволяет значительно сократить сложность разработки и производства, уменьшив время выхода устройства на рынок.
Развертывание платформы
Благодаря платформе Trust предприятия с небольшим или средним объемом выпускаемой продукции теперь имеют доступ к экономически эффективному способу обеспечения безопасной идентификации для своих устройств. Следующим шагом является настройка криптоэлемента с учетом особенностей конечного устройства и его вариантов использования. Необходимость настройки элемента объясняется записью в него учетных данных и других криптографических активов, используемых в модели аутентификации. Кроме того, помимо идентификатора, в криптоэлемент записываются дополнительные закрытые ключи или другая важная информация. Примером является запись ключей, не являющихся производными от корневого ключа и требующихся для аутентификации периферийных устройств, стороннего контента и удаленных хостов, что позволит независимо управлять их учетными данными.
Принцип, составляющий основу работы криптоэлемента, заключается в контроле доступа к жизненно важным ресурсам и защите их от несанкционированных действий. Наиболее частым примером таких действий является попытка замены одобренной производителем прошивки вредоносным кодом, который затем используется для доступа к секретной информации, хранящейся на устройстве, и проведения с помощью нее атак на всю сеть.
Одной из ключевых опций, позволяющих не допустить проникновение и перепрограммирование устройства злоумышленником, является безопасная загрузка. Она осуществляется при помощи криптоэлемента. Такая загрузка гарантирует, что IoT-устройство запускает только авторизованный код, хешированный и подписанный закрытым ключом, который принадлежит производителю.
Если микроконтроллеру требуется получить код из загрузочного ПЗУ (boot ROM), он запрашивает проверку подлинности неизменяемого открытого ключа, хранящегося в криптоэлементе. Загрузка кода в микроконтроллер происходит только в том случае, если проверка прошла успешно. Если же в процессе загрузки обнаруживается блок кода с некорректной подписью, загрузка останавливается, и устройство пытается вернуться к исходному состоянию, запрограммированному изготовителем. Если это невозможно, скомпрометированные блоки кода деактивируются. Таким образом, код загрузчика микроконтроллера невозможно изменить при помощи записи стороннего кода в ROM или флэш-память, т.к. для этого потребуется обойти проверку подлинности.
Реализовав базовые функции безопасности, их становится довольно-таки легко расширить, например добавив поддержку аутентификации на основе сертификатов на удаленных серверах, что является одним из ключевых опций для IoT-устройств. Такая аутентификация, как правило, использует стандартные протоколы и стандарты, к которым относится протокол защиты транспортного уровня (Transport Layer Security, TLS) и стандарт X.509, определяющий форматы данных и процедуры распределения открытых ключей с помощью соответствующих сертификатов, что, в свою очередь, позволяет проверить подлинность подключаемого устройства.
В соответствии со стандартом X.509, все цифровые сертификаты ссылаются на основной сертификат OEM-производителя через цепочку иерархии дочерних сертификатов. Информация, переносимая сертификатами, предоставляет средства для идентификации владельца каждого сертификата и получения от него открытого ключа сертификата далее по иерархии, что позволяет проверить подпись зависимого сертификата.
Когда защищенное IoT-устройство обменивается данными с удаленным сервером, оно предоставляет ему информацию, хранившуюся в сертификатах, для прохождения проверки подлинности. То же происходит и в обратном направлении: при обмене данными с IoT-устройством сервер передает ему информацию из собственного набора сертификатов, что позволяет осуществлять двустороннюю аутентификацию.
Одним из способов использования цифровых сертификатов в интернете вещей является упрощение процесса подключения устройств через интернет при первом запуске. Во время подключения и первого программирования криптоэлемента осуществляется ретрансляция необходимых сертификатов на управляющие серверы, а также сохранение сертификатов, которые устройство будет использовать для аутентификации этих серверов, в криптоэлементе вместе с основным закрытым ключом. Такой подход был, в частности, реализован компанией Microchip для работы с веб-сервисами AWS (Amazon Web Services), что в итоге позволило любым устройствам, созданных с использованием платформы Trust, использовать сервисы AWS IoT. Поддержка стандартных протоколов безопасности и систем сертификации означает, что описанный выше метод можно также легко применять и с другими облачными сервисами, например Azure компании Microsoft, а также работать с частной или гибридной облачной инфраструктурой.
Еще одним важным аспектом, касающимся устройств интернета вещей, является обновление прошивки «по воздуху» (over-the-air, OTA). Обновление позволяет исправлять возможные уязвимости в системе безопасности, не подвергая само устройство риску компрометации. Такие обновления сопровождаются цифровой подписью и проверяются дважды: во время загрузки по беспроводной сети и записи в память устройства, а также при загрузке кода обновления из памяти в микроконтроллер после перезагрузки.
К дополнительным вариантам использования сертификатов безопасности относится обеспечение защиты IP-адреса для проверки дополнительных устройств и периферии в сети, а также обеспечение защиты пользовательских данных, смену ключей и аутентификацию LoRaWAN. Некоторым производителям могут потребоваться дополнительные настраиваемые параметры, выходящие за рамки приведенных выше возможностей. С другой стороны, многие поставщики стараются сэкономить на системах безопасности и предоставляют своим клиентам IoT-устройства с ограниченным функционалом. К примеру, для авторизации в Google Cloud IoT не требуется создание полных цифровых сертификатов. Эта служба использует веб-токены JSON (JWT), которые генерируются на основе закрытого ключа, хранящегося внутри ATECC608B, что, по сути, заменяет авторизацию с использованием пароля.
Платформа Trust увеличила гибкость и расширила возможности по использованию сертификатов безопасности для разных сценариев использования. Эта платформа поддерживает несколько моделей взаимодействия. Первая модель предоставляет пользователям простой способ организации безопасного подключения устройств с использованием стандартных настроек. В этой модели закрытый ключ криптоэлемента и сертификаты безопасности генерируются при производстве на заводе Microchip. Ключ и сертификаты остаются закрытыми в течение всего срока эксплуатации. В то же время открытый ключ и другие общедоступные данные могут переадресовываться облачным сервисам или серверу, ответственному за присоединение к сети LoRaWAN для проведения аутентификации.
Поскольку многие производители хотели бы получить возможность гибче настраивать систему безопасности, а также создавать и внедрять сертификаты на основе собственной цепочки аутентификации, вторая модель взаимодействия предоставляет набор предварительно настроенных сценариев использования, которые обеспечивают выполнение этих действий автоматически. Третья модель взаимодействия подразумевает еще более широкие возможности (см. рис. 2).
Рис. 2. Процесс определения и подготовки ключей для криптоэлемента. После создания прототипа и написания кода начинается процесс предоставления ключей. После завершения тестирования прототипа закрытый ключ и сертификаты блокируются в криптоэлементе
В этой модели клиент приобретает пустое устройство с интегрированным криптоэлементом, а затем использует предоставленные Microchip инструменты, при помощи которых сам проходит все необходимые этапы инициализации, включая работу с XML, используемым для доставки закрытых ключей и сертификатов в криптоэлемент Microchip.
Благодаря современным онлайн-инструментам и компонентам для обеспечения аппаратной безопасности, компании с проектами любого масштаба получают возможность обеспечить должный уровень защиты IoT-устройств. Барьеры, затруднявшие процесс создания и удорожающие системы защиты, сняты, что позволяет реализовать безопасную цепь поставок и распространить передовые модели безопасности на всю экосистему интернета вещей.
МСА835