Аттестация симметричных ключей
В этой статье описывается процесс аттестации удостоверения при использовании симметричных ключей с помощью Службы подготовки устройств. Аттестация симметричных ключей — это простой подход к аутентификации устройства в экземпляре Службы подготовки устройств. Этот метод аттестации представляет собой интерфейс "Hello world" для разработчиков, которые не знакомы с подготовкой устройств или не имеют строгих требований к безопасности. Аттестация устройства с помощью доверенного платформенного модуля или сертификата X.509 является более защищенной. Эти способы следует использовать при наличии более строгих требований к безопасности.
Регистрация симметричного ключа также позволяет устаревшим устройствам с ограниченными возможностями безопасности загружаться в облако через Azure IoT.
Создание симметричных ключей
По умолчанию служба подготовки устройств создает новые симметричные ключи с длиной 64 байта при создании новых регистраций с автоматически включенным параметром "Создать симметричные ключи".
Вы также можете предоставить собственные симметричные ключи для регистраций, отключив этот параметр. Симметричные ключи должны быть в формате Base 64 и иметь длину ключа в диапазоне от 16 байт до 64 байт.
Подробный процесс аттестации
Аттестация симметричного ключа со службой подготовки устройств выполняется с помощью одинаковых маркеров безопасности, поддерживаемых центрами Интернета вещей для идентификации устройств. Это маркеры подписанного URL-адреса (SAS).
Для маркеров SAS предоставлена хэшированная подпись, созданная с использованием симметричного ключа. Служба подготовки устройств повторно создает подпись для проверки подлинности маркера безопасности, представленного во время аттестации.
Маркеры SAS предоставляются в следующем формате:
SharedAccessSignature sig={signature}&se={expiry}&skn={policyName}&sr={URL-encoded-resourceURI}
Рассмотрим компоненты каждого маркера:
значение | Описание |
---|---|
{signature} | Строка подписи HMAC-SHA256. В отдельных регистрациях для выполнения хэширования эта подпись создается с использованием симметричного ключа (первичного или вторичного). Для групп регистраций ключ, полученный из ключа группы регистрации, используется для выполнения хэширования. Хэширование выполняется для сообщения в формате: URL-encoded-resourceURI + "\n" + expiry . Важно. Ключ должен быть декодирован из Base64 перед использованием для вычислений HMAC-SHA256. Кроме того, результат подписи необходимо закодировать в формате URL-адреса. |
{resourceURI} | URI конечной точки регистрации, доступ к которой может осуществляться с помощью этого маркера. Начинается с идентификатора области для экземпляра Службы подготовки устройств. Например: {Scope ID}/registrations/{Registration ID} |
{expiry} | Строки в формате UTF8, отображающие количество секунд с начала эры 00:00:00 (в формате UTC) 1 января 1970 г. |
{URL-encoded-resourceURI} | Строчное URL-кодирование строчного URL ресурса |
{policyName} | Имя политики общего доступа, к которой относится этот маркер. Имя политики, используемое при подготовке с применением аттестации симметричного ключа, — registration. |
Примеры кода, создающие маркер SAS, см. в разделе "Маркеры SAS".
Отдельные регистрации с симметричными ключами
Если аттестация устройства выполняется с применением отдельной регистрации, это устройство использует симметричный ключ, определенный в записи об этой регистрации, для создания хэшированной подписи маркера SAS.
Групповые регистрации с симметричными ключами
В отличие от отдельной регистрации, симметричный ключ группы регистрации не используется непосредственно устройствами при подготовке. Вместо этого устройства, которые подготавливают группу регистрации, используют производный ключ устройства. Производный ключ устройства — это хэш идентификатора регистрации устройства и вычисляется с помощью симметричного ключа группы регистрации. Затем устройство может использовать производный ключ устройства для подписи маркера SAS, который он использует для регистрации в DPS. Так как устройство отправляет идентификатор регистрации при регистрации, DPS может использовать симметричный ключ группы регистрации для повторного создания производного ключа устройства и проверки подписи маркера SAS.
Во-первых, для каждого устройства, выполняющего проверку подлинности через группу регистрации, определяется уникальный идентификатор регистрации. Идентификатор регистрации — это строка без учета регистра (до 128 символов длиной) буквенно-цифровых символов, а также допустимые специальные символы: - . _ :
Последний символ должен быть буквенно-цифровым или дефисом ('-'
). Идентификатор регистрации должен быть уникальным, идентифицирующий устройство. Например, MAC-адрес или серийный номер, доступный для уникального определения устройства. В этом случае идентификатор регистрации может состоять из MAC-адреса и серийного номера, как показано ниже:
sn-007-888-abc-mac-a1-b2-c3-d4-e5-f6
После определения идентификатора регистрации устройства для получения производного ключа применяется симметричный ключ группы регистраций с целью вычисления хэш-кода HMAC-SHA256 этого идентификатора. Некоторые примеры подходов к вычислению производного ключа устройства приведены на вкладках ниже.
Расширение Интернета вещей для Azure CLI предоставляет команду compute-device-key
для создания производных ключей устройств. Эту команду можно использовать в системах с ОС Windows или Linux с помощью PowerShell или оболочки Bash.
Замените значение аргумента --key
значением первичного ключа из группы регистрации.
Замените значение аргумента --registration-id
идентификатором регистрации.
az iot dps enrollment-group compute-device-key --key 8isrFI1sGsIlvvFSSFRiMfCNzv21fjbE/+ah/lSh3lF8e2YG1Te7w1KpZhJFFXJrqYKi9yegxkqIChbqOS9Egw== --registration-id sn-007-888-abc-mac-a1-b2-c3-d4-e5-f6
Пример результата:
"Jsm0lyGpjaVYVP2g3FnmnmG9dI/9qU24wNoykUmermc="
Затем полученный ключ устройства используется при создании маркера SAS, применяемого в целях аттестации. Каждое устройство в группе регистраций необходимо аттестовать с использованием маркера безопасности, созданного на основе уникального производного ключа. Симметричный ключ группы регистрации нельзя использовать непосредственно для аттестации.
Установка производного ключа устройства
В идеале ключи устройств являются производными и установлены в фабрике. Этот метод гарантирует, что ключ группы никогда не включается в любое программное обеспечение, развернутые на устройстве. Когда устройству назначен MAC-адрес или серийный номер, ключ можно получить и внедрить в устройство согласно методу хранения, выбранному производителем.
Рассмотрим следующую диаграмму, на которой показана таблица ключей устройств, созданных на этапе производства путем хэширования каждого идентификатора регистрации устройства с помощью ключа регистрации группы (K).
Удостоверение каждого устройства предоставляется с помощью идентификатора регистрации и производного ключа устройства, установленного на этапе производства. Ключ устройства нельзя копировать в другое расположение, а ключ группы нельзя хранить на устройстве.
Если ключи устройства не установлены в фабрике, аппаратный модуль безопасности HSM следует использовать для безопасного хранения удостоверения устройства.
Следующие шаги
Теперь, когда вы понимаете аттестацию симметричного ключа, проверка следующие статьи, чтобы узнать больше: