Защита Azure Sphere

Завершено

В этом уроке вы узнаете о безопасности Azure Sphere.

Приложения на Azure Sphere защищены по умолчанию. Вы должны предоставлять возможности приложению. Предоставление возможностей — главное в системе безопасности Azure Sphere. Это также называется принципом предоставления минимальных прав. Вы должны предоставлять только те возможности, которые необходимы для правильной работы приложения Azure Sphere.

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

Сетевые конечные точки IoT Central

Необходимо объявить все сетевые конечные точки, которые будет использовать приложение. В целях безопасности при попытке доступа к конечной точке, которая не объявлена в манифесте приложения, произойдет сбой приложения во время подключения. Эта функция реализована в виде сетевого брандмауэра, который нельзя изменить до перезапуска устройства.

При подключении к IoT Central необходимо объявить конечную точку глобальной службы подготовки устройств, а также конечные точки для приложения IoT Central. В противном случае приложение Azure Sphere не сможет подключиться к IoT Central.

Возможности сетевых конечных точек

Сетевые конечные точки объявляются в файле приложения app_manifest.json в разделе AllowedConnections.

{
    ...
    "AllowedConnections": [
      "global.azure-devices-provisioning.net",
      "your-iot-central-network-endpoints"
    ],
    ...
}

Доступ к оборудованию

Напомним, что приложения Azure Sphere приложения защищены по умолчанию, и вы должны объявить доступ к аппаратным периферийным устройствам, которые требуются вашему приложению. Если не объявить оборудование, необходимое для приложения, то приложению не удастся получить доступ к этому оборудованию. Безопасность доступа к оборудованию реализована в оборудовании в виде брандмауэра на микросхеме. Как дополнительный уровень безопасности брандмауэр на микросхеме можно назвать "липким" — его настройки сохраняются до перезапуска устройства.

Возможности оборудования

Оборудование объявляется в файле app_manifest.json в разделе Capabilities.

{
  ...
  "Capabilities": {
    "Gpio": [
      "$BUTTON_A",
      "$NETWORK_CONNECTED_LED",
      "$ALERT_LED"
    ],
    "I2cMaster": [
      "$I2cMaster2"
    ],
  ...
  },
  ...
}

Определения оборудования

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

В практических занятиях этого модуля обучения имеется ряд файлов определения оборудования для досок разработчика AVNET и SEEED Studio Azure Sphere. Файл определения оборудования azure_sphere_learning_path включен в main.c для каждого практического занятия.

#include "hw/azure_sphere_learning_path.h"

В следующем упражнении вы научитесь объявлять сетевые конечные точки.