Я работаю в стартапе, создающем продукт, который будет выпущен вместе с необходимым оборудованием.
Оборудование представляет собой мини-ПК под управлением Ubuntu 20.04. Приложение состоит из служб Python внутри контейнеров Docker, базы данных и некоторых моделей глубокого обучения, поэтому мини-ПК используется в основном в качестве замены сервера. Пользователи получают доступ к приложению, подключаясь к точке доступа. У некоторых клиентов оборудование будет изолировано.
Я не могу вдаваться в подробности, но конфигурация имеет смысл в их особом случае использования.
Теперь мне было поручено защитить оборудование, чтобы не допустить закалки/модификации приложения. Я провел небольшое исследование (см. ниже), но у меня немного нет идей о том, что можно сделать, чтобы решить эту проблему удовлетворительным образом.
Мое исследование:
- Моя первая идея, которую я нашел, заключалась в том, чтобы зашифровать корневой раздел с помощью LUKS, а затем сохранить ключ в TPM — текущее оборудование не поддерживает TPM (надеюсь, это то, что можно изменить для будущих покупок оборудования)
- Вторая идея заключалась в том, чтобы зашифровать корневой раздел, а также доставить ключ раздела. Несмотря на то, что теперь вам нужно две части, я не думаю, что это усложнит работу.
- Другая идея, выходящая за рамки возможностей операционной системы, заключалась в том, чтобы, по крайней мере, запутать код приложения чем-то вроде pyarmor, но это снова похоже на очень низкую планку.
Я уже пытался найти другие возможности — возможно, мои поисковые запросы — отстой, — но я не смог найти удовлетворительного способа решить эту проблему. Я надеюсь, что кто-то здесь может указать мне в правильном направлении.