Получение и развертывание сертификатов для сетей EAP-TLS

Прежде чем устройство Azure Sphere сможет подключиться к сети EAP-TLS, оно должно иметь сертификат клиента, который сервер RADIUS может использовать для проверки подлинности устройства. Если сеть требует взаимной проверки подлинности, каждое устройство также должно иметь сертификат корневого ЦС, чтобы оно могло пройти проверку подлинности сервера RADIUS.

Способ получения и развертывания этих сертификатов зависит от сетевых ресурсов, доступных для ваших устройств.

  • Если сеть EAP-TLS является единственной доступной сетью, необходимо развернуть сертификаты вручную.
  • Если доступна другая форма сети, например открытая сеть, можно использовать подход начальной загрузки. В подходе начальной загрузки высокоуровневое приложение Azure Sphere получает сертификаты из открытой сети, а затем использует их для подключения к сети EAP-TLS.

Осторожностью

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

Развертывание вручную

Если сеть EAP-TLS является единственной сетью, доступной для ваших устройств, необходимо развернуть сертификаты вручную. Развертывание вручную включает получение сертификатов с помощью сетевого компьютера или компьютера Linux, а затем загрузку сертификатов на каждое устройство Azure Sphere с помощью Интерфейса командной строки Azure Sphere. Для этого подхода требуется физическое подключение между компьютером или компьютером Linux и устройством Azure Sphere.

Получение сертификатов вручную

Корневой ЦС и сертификаты клиента должны находиться в . Формат PEM для загрузки на устройство Azure Sphere. Вам потребуется получить сертификат корневого ЦС с соответствующего сервера, а также сертификат клиента и закрытый ключ (и при необходимости пароль для закрытого ключа) для устройства. Каждый сертификат должен быть создан и подписан соответствующим сервером в сети EAP-TLS. Администратор сети или группа безопасности может предоставить сведения, необходимые для получения сертификатов.

Сохраните сертификаты в . Формат PEM на компьютере или компьютере Под управлением Linux, а затем используйте Azure Sphere CLI, чтобы сохранить их на устройстве Azure Sphere.

Хранение сертификатов с помощью интерфейса командной строки

Подключите устройство Azure Sphere к сетевому компьютеру или компьютеру Linux и используйте команду az sphere, чтобы сохранить сертификаты на устройстве.

Чтобы сохранить сертификат корневого ЦС на устройстве Azure Sphere, выполните следующие действия.

az sphere device certificate add --certificate "server-key-xyz" --cert-type rootca --public-key-file <filepath_to_server_ca_public.pem>

Чтобы сохранить сертификат клиента на устройстве Azure Sphere, выполните следующие действия:

az sphere device certificate add --certificate "client-key-abc" --cert-type client --public-key-file <filepath_to_client_public.pem> --private-key-file <filepath_to_client_private.pem> --private-key-password "_password_"

Развертывание начальной загрузки

Чтобы подключить устройства Azure Sphere в большом количестве или во многих расположениях, рекомендуется использовать подход начальной загрузки. Чтобы использовать этот метод, устройства должны иметь возможность подключения к сети, через которую они могут получить доступ к серверу, который может предоставить сертификаты. Высокоуровневое приложение Azure Sphere подключается к серверу по доступной сети, запрашивает сертификаты и сохраняет их на устройстве.

На следующем рисунке показан этот процесс.

Поток сертификатов во время развертывания начальной загрузки

  1. Приложение на устройстве Azure Sphere подключается к открытой сети и обращается к службе безопасности Azure Sphere, чтобы получить сертификат DAA. Затем он устанавливает сертификат DAA на устройство. Устройство должно использовать этот сертификат для проверки подлинности в службе выдачи сертификатов.

  2. Затем приложение подключается к службе выдачи сертификатов, назначенной администратором сети. Он представляет свой сертификат DAA для проверки его удостоверения на сервере и запрашивает сертификат корневого ЦС для сервера RADIUS в сети EAP-TLS, а также сертификат клиента и закрытый ключ. При необходимости служба может передавать в приложение другую информацию, например удостоверение клиента и пароль закрытого ключа. Затем приложение устанавливает сертификат клиента, закрытый ключ клиента и сертификат корневого ЦС на устройстве. Затем он может отключиться от открытой сети.

  3. Приложение настраивает и включает сеть EAP-TLS. Он предоставляет сертификат клиента и закрытый ключ для подтверждения удостоверения устройства. Если сеть поддерживает взаимную проверку подлинности, приложение также проверяет подлинность сервера RADIUS с помощью сертификата корневого ЦС.

Проверка подлинности устройства и получение сертификата клиента во время начальной загрузки

Устройство Azure Sphere может использовать свой сертификат проверки подлинности и аттестации устройства (DAA) для проверки подлинности в службе, которая может предоставить другие необходимые сертификаты. Сертификат DAA доступен в службе безопасности Azure Sphere.

Чтобы получить сертификат DAA, выполните следующие действия:

  1. Укажите идентификатор клиента Azure Sphere (устаревшая версия) в разделе DeviceAuthentication манифеста приложения для приложения высокого уровня.
  2. Вызовите DeviceAuth_CurlSslFunc из приложения высокого уровня, чтобы получить цепочку сертификатов для текущего каталога Azure Sphere.

Если манифест приложения содержит идентификатор клиента Azure Sphere (устаревшая версия) для текущего устройства, функция DeviceAuth_CurlSslFunc будет использовать цепочку сертификатов клиента DAA для проверки подлинности, если целевая служба требует взаимной проверки подлинности TLS.

Получение сертификата корневого ЦС для сервера RADIUS

Чтобы получить сертификат корневого ЦС для сервера RADIUS, приложение подключается к конечной точке сервера сертификатов, доступной в сети, и может предоставить сертификат. Администратор сети должен иметь возможность предоставить сведения о том, как подключиться к конечной точке и получить сертификат.

Установка сертификатов с помощью API CertStore

Приложение использует API CertStore для установки сертификатов на устройство. Функция CertStore_InstallClientCertificate устанавливает сертификат клиента и CertStore_InstallRootCACertificate устанавливает сертификат корневого ЦС для сервера RADIUS. Управление сертификатами в высокоуровневых приложениях предоставляет дополнительные сведения об использовании API CertStore для управления сертификатами.

В примере приложения Certificates показано, как приложение может использовать эти функции.