Как передать ›конфиденциальную двоичную информацию размером 8 КБ на устройство Azure IoT

Как устройство Интернета вещей, которое подключается к Центру Интернета вещей с помощью пакета SDK Центра Интернета вещей Azure, может получать большие объемы конфиденциальных данных, которые являются частью конфигурации устройства?

Я знаю, что могу использовать Device Twins в качестве документов конфигурации для каждого устройства, но их общий размер ограничен 8 КБ. Мне нужны большие объемы данных в двоичном формате для передачи на устройство, когда устройство, например, сбрасывается до заводских настроек по умолчанию или каким-то образом теряет свое локальное хранилище как часть аппаратной ошибки.

Я думал об использовании метода D2C, запускающего запрос, который приводит к серии C2D или прямых вызовов метода к запрашивающему устройству, передающему рассматриваемую информацию (в основном имитируя поведение запроса / ответа). Однако это похоже на обходной путь.

Другая моя мысль заключалась в передаче URL-адресов в учетную запись хранения как часть свойств двойника устройства, позволяющих устройству загружать двоичную информацию с помощью Storage SDK, однако, учитывая конфиденциальный характер загруженной информации, я не могу напрямую предоставить эту информацию для Интернет с помощью общедоступного контейнера в хранилище Azure.

Итак, моей последней мыслью было получить доступ к REST API, который контролирует доступ к информации. Однако меня беспокоит то, что я вырвусь из безопасного канала связи, SDK Центра Интернета вещей предоставляет свои встроенные методы связи, и я должен защищать связь между устройством и REST API, используя какой-то вращающийся секрет, который может раскрыть другие риски наряду со сложной индивидуальной реализацией.

Каков предлагаемый способ предоставления доступа к данным, зависящим от устройства, для клиентов Azure IoT?


person Markus S.    schedule 26.11.2019    source источник


Ответы (1)


Я действительно рекомендую использовать новую функцию (все еще в предварительной версии) Центра Интернета вещей Azure, такую ​​как Потоки устройств.

Вы можете протестировать эту новую функцию предварительного просмотра с помощью моего обновленного инструмента Тестер Azure IoT Hub (см. Приложение A2)

person Roman Kiss    schedule 26.11.2019
comment
большое спасибо за указание на этот вариант. поэтому, поскольку потоки устройств кажутся инициированными на стороне сервера, для включения моего сценария мне нужно будет отправить начальное сообщение D2C, чтобы сообщить стороне сервера, чтобы инициировать поток устройства для клиента. после принятия на стороне устройства сервер может продолжить и отправить запрошенную конфиденциальную информацию. я правильно понимаю? - person Markus S.; 26.11.2019
comment
вы можете создать состояние, используя сообщенные свойства двойника устройства, которые будут уведомлять вашу облачную службу о потоковой передаче устройства (это запрос устройства). Служба, обрабатывающая процесс потоковой передачи устройства, аналогична прямому вызову метода устройством. Во время этого квитирования оба конца переключаются на защищенную связь через веб-сокет. Как только эта связь будет завершена, двойное состояние устройства может быть обновлено. - person Roman Kiss; 26.11.2019
comment
Спасибо! поэтому концептуально это похоже на отправку запроса с устройства в облако (либо свойство двойника устройства, либо сообщение D2C) и отправку нескольких прямых вызовов метода на рассматриваемое устройство, но это более эффективно, и клиент может использовать подключение к веб-сокету для отправки дополнительные запросы, да? - person Markus S.; 26.11.2019
comment
Между серверной службой и устройством существует только один вызов запроса / ответа. Служба отправляет полезные данные вашего пользовательского приложения с несколькими заголовками, такими как url, auth-token, ip-address (для связи wss), и устройство ответило полезной нагрузкой приложения и вернуло эти заголовки с добавлением еще одного например iothub-streaming-is-accept: True. - person Roman Kiss; 26.11.2019