ЗАЩИТА ВСТРОЕННОГО ПРИЛОЖЕНИЯ ОТ КОПИРОВАНИЯ И НЕСАНКЦИОНИРОВАННОГО ИСПОЛЬЗОВАНИЯ

Рассказываем о том, как обеспечить надежную защиту данных в приложении на Python для Raspberry Pi.

Разработчик мобильных роботов обратился в ЦПР с просьбой организовать защиту Python приложения от его копирования и несанкционированного использования. Решение в качестве контроллера использовало распространенный одноплатный компьютер класса Raspberry Pi, где OC и приложения размещаются на съемном носителе (SD card).

Основные пункты защиты:

  • Закрыть любой доступ к коду (чтение исходных текстов) при использовании мобильного робота, включая любой физический доступ к контроллеру и носителю информации
  • Запретить модификацию носителя информации (ОС и приложения)
  • Исключить возможность успешного клонирования носителя или переустановки в такой же или совместимый контроллер
Дополнительно достигнута защита аппаратной части устройства от несанкционированного использования (запуск с другой ОС или приложением).

С этой целью были проделаны:

  • Доработка сборки ОС на основе Debian Linux c уменьшением поверхности атаки и контролем изоляции ресурсов и функций приложения
  • Отключение неиспользуемых аппаратных интерфейсов ввода-вывода на уровне ядра Linux
  • Защита системных файлов на уровне ядра Linux (dm-verity) и криптографической подписи с аппаратным ключом
  • Шифрация раздела с Python приложением используя ключ привязанный к оборудованию
  • Аудит безопасности сетевого и локального доступа, включая penetration tests с имитацией действий злоумышленников для выявления уязвимостей
  • Инициализация и настройка доверенной загрузки (Secure Boot) и защищенного хранилища ключей с использованием встроенных аппаратных средств криптографической защиты.
Дополнительно была решена задача проработать механизмы промышленной (массовой при производстве) установки ключей и специализированного ПО, а также последующих обновлений по воздуху (OTA update).
Реализация безопасных механизмов OTA update включала в себя шифрование передаваемых данных, аутентификацию обновлений с использованием цифровой подписи, контроль целостности и автовосстановление при сетевых и аппаратных сбоях в процессе обновления.
Подробнее о продукте ЦПР РТСофт, позволяющем безопасно управлять обновлениями ПО по воздуху, можно узнать по ссылке.

Немного о Secure Boot

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

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

Сначала код ROM проверяет, что загрузчик поставляется от производителя, затем загрузчик проверяет, что ядро ​​Linux также поставляется от производителя, прежде чем запускать его, и, наконец, ядро ​​проверяет, что ROOTFS (приложение) поставляется от производителя.

Secure Boot помогает гарантировать, что на устройстве будет загружаться только программное обеспечение, одобренное компанией-производителем, что также обеспечивает целостность системы робота или сервера. Secure Boot запускает эту проверку с момента включения робота: на каждом этапе загрузки компоненты программного обеспечения, такие как ядра, загрузчики, а также исполняемые программы и сценарии, проверяются на предмет “правильности” происхождения с использованием криптографических подписей перед выполнением этого программного обеспечения.



 алгоритм работы системы распознавания символов при помощи ML и компьютерного зрения, реализация системы, распознавание документов, abbyy finereader

Наши статьи:

Блог ЦПР РТСофт