Основы SRAM PUF и способы его развертывания для безопасности Интернета вещей
В этой статье рассказывается об основах того, что такое SRAM PUF (физическая неклонируемая функция) и как она работает, а также о функциональных возможностях, которые она предлагает для обеспечения безопасности Интернета вещей (IoT) в качестве якоря доверия для любого устройства.
В любой ситуации безопасность начинается с доверия. Если в вашем доме установлена сигнализация, вы сообщаете ее пин-код только тем, кому доверяете. Будь то член семьи или ваш дружелюбный сосед, без доверия вы не поделитесь своим секретом. Так и должно быть!
Этот вопрос доверия также означает идентификацию личности. Здесь основу доверия составляют официальные документы, такие как паспорт или свидетельство о рождении. Однако эти документы должны быть «надежно привязаны» к конкретному человеку. Обычно это работает с биометрическими данными человека. Во всех документах, удостоверяющих личность, есть что-то, что связывает документ с нужным человеком, будь то просто изображение человека или биометрическая идентификация по отпечаткам пальцев, как в современных паспортах. Итак, биометрия - это якорь безопасности, на котором построена система с разрешениями (вы можете пересечь границу?).
Этот якорь безопасности необходим для предотвращения копирования и использования простого документа неавторизованными сторонами. Если документ привязан к чему-то, что нельзя скопировать или клонировать, например к отпечаткам пальцев, безопасность становится достаточно сильной, чтобы превратить относительно простой документ в мощный инструмент аутентификации.
Аналогичная проблема существует и для Интернета вещей (IoT). Безопасное соединение миллиардов недорогих устройств возможно только в том случае, если каждое устройство способно защищать конфиденциальные данные и безопасную связь. Эта защита обеспечивается сертификатами и криптографическими ключами, аналогичными паспорту в предыдущем примере. Однако для этих ключей и сертификатов также требуется физическая привязка безопасности, чтобы гарантировать, что они не могут быть скопированы на мошенническое устройство, выдавая себя за подлинное. Технология, обеспечивающая этот якорь безопасности, - это физические неклонируемые функции (PUF). PUF - это физическая структура, из которой создается уникальный для устройства и неклонируемый криптографический корневой ключ. Этот корневой ключ используется для защиты ключей приложений и сертификатов устройства.
Хотя существует множество различных типов PUF, мы сосредоточимся на PUF SRAM из-за его надежности, масштабируемости и простоты использования. SRAM PUF легко и гибко реализовать таким образом, чтобы он масштабировался по множеству различных технологических узлов, развернутых в IoT. Это также единственный известный сегодня тип PUF, который может быть реализован простой загрузкой программного обеспечения в микросхему (в качестве альтернативы интеграции выделенного аппаратного IP-блока, что также возможно). SRAM PUF - это аппаратный якорь безопасности, популярность которого растет из-за постоянно растущего числа подключенных устройств.
Что такое SRAM PUF?
PUF использует глубокие субмикронные вариации, которые возникают естественным образом при производстве полупроводников и которые придают каждому транзистору слегка случайные электрические свойства. Эти уникальные свойства составляют основу уникальной идентичности чипа.
PUF SRAM основан на поведении стандартной памяти SRAM, доступной в любом цифровом чипе. Каждая ячейка SRAM имеет свое собственное предпочтительное состояние каждый раз, когда SRAM получает питание, в результате случайных различий в пороговых напряжениях транзисторов. Следовательно, при питании памяти SRAM каждая память будет выдавать уникальный и случайный шаблон из нулей и единиц. Эти шаблоны похожи на отпечатки пальцев чипа, потому что каждый из них уникален для конкретной SRAM и, следовательно, для конкретного чипа.
Однако этот так называемый ответ SRAM PUF представляет собой «зашумленный» отпечаток пальца, и превращение его в высококачественный и безопасный криптографический ключ требует дальнейшей обработки. Используя так называемый IP «Fuzzy Extractor», можно каждый раз и при любых обстоятельствах восстанавливать точно такой же криптографический ключ.
Этот способ получения ключа из свойств SRAM имеет большие преимущества с точки зрения безопасности по сравнению с традиционным хранением ключей в энергонезависимой памяти (NVM). Поскольку ключ не хранится постоянно, он отсутствует, когда устройство не активно (нет ключа в состоянии покоя), и, следовательно, не может быть обнаружен злоумышленником, который открывает устройство и компрометирует его содержимое памяти.
Как можно использовать PUF SRAM в качестве корня доверия?
Устройствам, особенно устройствам, которые являются частью Интернета вещей, требуются ключи для защиты своих данных, IP-адреса и операций. Если источнику этих ключей можно доверять и ключи надежно хранятся в оборудовании, которое защищает от атак, они образуют так называемый «корень доверия» устройства.
Ключи могут быть предоставлены на устройства самими производителями устройств (также называемыми OEM-производителями) или на более раннем этапе поставщиком микросхем. Когда поставщики микросхем поставляют предварительно подготовленные микросхемы, это увеличивает стоимость продукта, который они продают OEM-производителям. Если производители оригинального оборудования решат заняться подготовкой к работе, они обычно могут покупать более дешевые микросхемы.
Независимо от того, какая из двух сторон берет на себя ответственность за предоставление криптографических ключей, это никогда не бывает тривиальной задачей. Для внедрения секретных ключей в микросхемы требуется надежная фабрика, это увеличивает стоимость и сложность производственного процесса и ограничивает гибкость. Этой сложности можно избежать, создав ключи внутри микросхемы либо с помощью внутреннего генератора случайных чисел (ГСЧ), либо с помощью PUF.
Получение криптографического корневого ключа на устройстве - не единственная проблема. Надежное хранение конфиденциальных данных на устройствах также далеко не тривиально. Секретные ключи нельзя просто хранить в NVM, так как NVM уязвим для аппаратных атак. Аппаратные атаки, позволяющие злоумышленникам читать содержимое NVM, становятся все более распространенными, что делает незащищенное хранилище ключей нежизнеспособным. Следовательно, существует потребность в альтернативном безопасном хранилище ключей. Один из подходов - добавить к устройству безопасный элемент. Однако добавление оборудования также сопряжено с повышенной сложностью и стоимостью. Кремниевый PUF, такой как SRAM PUF, может безопасно хранить криптографические ключи без необходимости добавления какого-либо дополнительного оборудования.
В таблице ниже приведены уровень безопасности, накладные расходы цепочки поставок и стоимость технологических вариантов для предоставления и хранения криптографических ключей:
Создание хранилища ключей с использованием SRAM PUF
Когда у нас есть этот корневой ключ из SRAM PUF, каков следующий шаг для создания корня доверия? Следующим шагом является использование ключа SRAM PUF для создания встроенного хранилища ключей для защиты всех секретных данных на устройстве. Ключи, защищенные этим хранилищем, необходимы для высокоуровневых служб и приложений устройства. Таким образом, хранилище ключей позволяет использовать такие приложения безопасности, как аутентификация, шифрование сообщений, шифрование программного / микропрограммного обеспечения и многое другое.
С помощью SRAM PUF мы можем создать хранилище ключей со следующими свойствами:
- Никакие ключи никогда не хранятся в открытом виде, в особенности самый верхний или «корневой» ключ.
- Различные приложения могут хранить и использовать свои собственные уникальные ключи.
- Выходные данные хранилища ключей могут быть отправлены непосредственно в аппаратный криптографический механизм.
Хранилище ключей на основе SRAM PUF выполняет следующие функции:
- Регистрация:операция регистрации обычно выполняется один раз в жизненном цикле устройства. Он устанавливает корневой ключ PUF, который может воспроизводиться в течение срока службы устройства. Корневой ключ PUF никогда не покидает устройство и никогда не сохраняется. Он используется для получения второго уровня ключей, которые могут быть выведены или использованы для упаковки / разворачивания конфиденциальных данных. Кроме того, создаются вспомогательные данные для исправления ошибок. Эти данные не являются конфиденциальными - они не предоставляют никакой информации о корневом ключе PUF - и поэтому могут храниться в NVM, доступном для устройства. Вспомогательные данные используются только для надежного восстановления того же корневого ключа из PUF SRAM после последующего считывания изначально зашумленного PUF.
- Старт:операция запуска повторно генерирует внутренний корневой ключ PUF с использованием вспомогательных данных, которые были сгенерированы во время регистрации, в сочетании со свежим, «шумным» измерением PUF SRAM. Вспомогательные данные, которые создаются на устройстве, уникальны для этого устройства. Использование вспомогательных данных, которые копируются с другого устройства при выполнении операции запуска, приводит к неудачной операции с соответствующей индикацией ошибки.
- Перенос:операция переноса преобразует предоставленный извне ключ в код ключа (KC), который представляет собой зашифрованную и аутентифицированную версию исходного ключа. Благодаря этой защите KC может храниться незащищенным на равнине. KC позволит получить доступ к оригинальному ключу только на том устройстве, на котором он был «обернут».
- Unwrap:операция разворачивания является обратной по отношению к операции wrap, поэтому она преобразует KC обратно в исходный ключ, который был упакован, после проверки его подлинности.
- Стоп. Операцию остановки можно выполнить всякий раз, когда нет необходимости выполнять дальнейшие операции с хранилищем ключей. Он очищает все конфиденциальные данные, включая корневой ключ, из внутренних регистров и может использоваться перед переходом в спящий режим, чтобы уменьшить поверхность для атаки.
Получение нескольких ключей из PUF
Для реализации системы безопасности обычно требуется более одного криптографического ключа. Это потому, что:
- компрометация определенного ключа для одного приложения не должна влиять на безопасность секретов, используемых другими приложениями в той же системе, что требует, чтобы разные приложения в системе использовали разные ключи.
- разные криптографические алгоритмы в системе ожидают ключей разной длины или разной структуры, несовместимых друг с другом.
- разным приложениям требуются секреты с разным временем жизни, например, одному приложению системы требуется несколько короткоживущих ключей, а второму приложению - один долгоживущий ключ.
- ключи часто связаны с идентификаторами и используются для целей аутентификации, что имеет смысл только в том случае, если разные пользователи системы имеют доступ к разным ключам.
По этим и другим причинам общепринятой практикой в области безопасности является использование одного ключа только для одной цели и / или одного приложения. Однако во многих практических ситуациях реализация системы безопасности имеет доступ только к одному корневому секрету, как в этом случае, из PUF SRAM. Чтобы выполнить требование «один ключ - одноразовое использование», следует использовать компонент управления ключами с возможностью создания нескольких ключей приложения из этого единственного корневого секрета.
Важнейшим свойством нескольких сгенерированных ключей приложения является то, что они криптографически разделены, то есть они должны быть сгенерированы таким образом, чтобы раскрытие конкретного производного ключа не влияло на силу безопасности любого другого производного ключа. Это означает, что об упрощенных методах генерации (например, применении простых арифметических операций или использовании перекрывающихся частей секрета) не может быть и речи. Вместо этого следует использовать криптографически безопасную функцию получения ключа (KDF), которая использует криптографические примитивы (например, AES или SHA-256) для обеспечения криптографического разделения между своими выходами. Следовательно, использование хорошо реализованного KDF гарантирует, что практически неограниченное количество ключей может быть получено из одного экземпляра SRAM PUF.
Реализация PUF SRAM с помощью программного обеспечения
Одно из самых больших преимуществ PUF SRAM, которое еще не было рассмотрено, заключается в том, что он основан на физической структуре, доступной практически в любом чипе:памяти SRAM. Поскольку этот тип PUF использует стандартную «готовую» SRAM, это единственный вариант аппаратного источника энтропии для защиты продуктов IoT, которые не нужно загружать при изготовлении кремния. Его можно установить позже в цепочке поставок и даже удаленно модернизировать на развернутых устройствах. Это обеспечивает невозможную ранее удаленную установку аппаратного корня доверия и открывает путь к масштабированию Интернета вещей до миллиардов устройств.
Описанные ранее функции для создания хранилища ключей и получения нескольких ключей могут быть реализованы как аппаратный или программный IP. Единственное оборудование, необходимое для разработки PUF, - это фактическая уникальная физическая структура самого PUF. Таким образом, на любом устройстве, где для алгоритмов PUF доступен доступ к (неинициализированной) SRAM, можно реализовать рабочую PUF-память SRAM. Это свойство делает SRAM PUF уникальным среди множества различных PUF на рынке. Насколько известно автору, PUF SRAM - единственный существующий тип PUF, который может быть реализован аппаратно путем простой загрузки программного обеспечения на устройство.
Заключение
Без доверия нет безопасности. Любое решение безопасности начинается с чего-то, что удостоверяет личность субъекта - вне зависимости от того, является ли этот субъект лицом, которому будут выданы документы, удостоверяющие личность, или чипом, который будет развернут в IoT, - вне всякого сомнения. В этой статье мы представили технологию SRAM PUF как надежный, масштабируемый и простой в использовании корень доверия для любого устройства IoT. Независимо от того, реализован ли он в виде выделенного аппаратного IP-блока или в виде программного обеспечения, загруженного на устройство, он создает надежный криптографический корневой ключ из крошечных уникальных для устройства вариаций в кристалле микросхем. Использование PUF SRAM гарантирует, что корневой ключ устройства неизвестен никому в цепочке поставок и не может быть изменен или клонирован, если устройство попадет в ненадежные руки. Расширяя функциональные возможности безопасности на основе этого корневого секрета, можно создать надежное хранилище для конфиденциальных данных и секретных ключей, а также получить и защитить все дополнительные ключи, необходимые устройству. Вот почему PUF SRAM - отличный способ обезопасить вашу систему с нуля (или кремния).
Интернет вещей
- Советы и тенденции безопасности IIoT на 2020 год
- Как IoT устраняет угрозы безопасности в нефтегазовой отрасли
- Поиск универсального стандарта безопасности IoT
- Как подготовиться к использованию ИИ с помощью Интернета вещей
- Сдерживают ли безопасность и конфиденциальность IoT?
- Оценка ИТ-риска - как и почему
- Как компании могут использовать Интернет вещей для сбора и анализа широкомасштабных данных
- Автоматизация и Интернет вещей:рай для логистики и безопасности здравоохранения
- Три шага для глобальной безопасности Интернета вещей
- Делаем Мемфис «умным»:видимость, контроль и безопасность для устройств Интернета вещей