Выпущен Android Things 1.0 — слишком безопасный для успеха?


Тот, кому удастся контролировать большую часть рынка Интернета вещей, получит большую власть и, предположительно, прибыль. Android Things 1.0 — это предложение Google, в котором особое внимание уделяется безопасности. Но возможно ли слишком много хорошего?

Linux является основной ОС для больших модулей IoT, и даже если это какая-то другая ОС, под ней часто оказывается Linux. Все мы знаем, что устройства Интернета вещей небезопасны. Команда Things сделала безопасность своей главной заботой, но, возможно, она упускает некоторые моменты, когда речь идет об устройствах IoT.

Вещи — это урезанная версия Android. Вы можете использовать компоненты пользовательского интерфейса Android, но только если на устройстве IoT есть дисплей, клавиатура и / или мышь. Чтобы сделать его более подходящим для Интернета вещей, вы также получаете набор API, позволяющих взаимодействовать с внешним миром. Пока вы планируете использовать устройство внешнего мира высокого уровня, например I2C, SPI или UART, тогда проблем быть не должно.

Проблемы начинаются, когда вы хотите использовать линии GPIO в необработанном режиме. Это очень медленно и более или менее препятствует написанию каких-либо пользовательских интерфейсов, таких как 1-Wire или пользовательские последовательные протоколы. Он даже настолько медленный, что, если вы захотите мигать несколькими светодиодами, вы можете обнаружить, что это не так.

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

Конечно, очевидно, что из соображений безопасности IoT-программам не следует предоставлять возможность доступа к карте памяти периферийных регистров. Однако это только угроза безопасности в среде, где могут быть установлены новые программы. Пока устройство IoT может запускать только программу, которую вы для него написали, доступ к памяти не представляет опасности. Фактически, с учетом обнаружения уязвимостей Meltdown и Spectre программе не требуется доступ с отображением памяти для чтения системной памяти.

Для устройства IoT необходима безопасность периферии, а не ограничения кода IoT, который должен иметь полный доступ к оборудованию для выполнения своей работы.

Я попытался объяснить это команде Android Things в отчете об ошибке, но у меня сложилось впечатление, что все они настолько заботятся о безопасности, что это было немыслимо.

Итак, все это означает, что если вы хотите использовать Android Things, вы должны убедиться, что он достаточно быстр для работы с устройствами, которые вы имеете в виду. Обратите внимание, что переход с Java на C дает лишь незначительные улучшения и не является решением. Большой проблемой является использование SYSFS, которая работает медленно на любом языке.

Чтобы еще больше подчеркнуть безопасность, устройства, на которых работает Вещь, разделены на производство и разработку. Все производственные модули имеют средства безопасности — подтверждение ключа и идентификатора и подтвержденную загрузку. Это позволяет выполнять безопасные обновления программного обеспечения OTA. Google обещает, что обновления безопасности будут доступны в течение как минимум 3 лет, что, на мой взгляд, недостаточно долго.

Производственные щиты бывают:

Платы для разработки — это NXP Pico и Raspberry Pi 3 Model B. Интересно, сколько устройств в конечном итоге будет использовать Raspberry Pi в производстве из-за проблем с соотношением цена / производительность и, таким образом, выбрасывая большую часть работы, которая была проделана в области безопасности.

Консоль Android Things Console, которая контролирует обновления программного обеспечения, ограничена 100 активными устройствами для некоммерческого использования. На данный момент нет упоминания о ценах, но после 100 и для коммерческого использования необходимо подписать дистрибьюторское соглашение. Я не уверен, что хочу так быстро передать ключи от своих устройств Google. Учитывая то, что Google никогда не медлил с тем, чтобы отключить любой проект, который не вписывается в его планы, я бы беспокоился, что Android Things слишком заблокирован, чтобы считаться с открытым исходным кодом, даже если он был с открытым исходным кодом — а это не так.

Интернет вещей небезопасен, но способ решения проблемы безопасности в Android Things — неправильный. Программы Интернета вещей должны работать без ограничений, а безопасность, которая нам нужна, находится на грани операционной системы. Ограничение внешнего взаимодействия только данными кажется лучшей идеей.

Гарри Фэйрхед — автор Raspberry Pi IoT на C и Micro: bit IoT на C. Он является редактором веб-сайта IoT-Programmer.


Добавить комментарий