У меня есть система, которая отображает видео с камеры с наложением, и она должна загружаться без какого-либо вмешательства пользователя (чем быстрее, тем лучше). Однако эти системы будут в руках клиентов, поэтому мы беспокоимся о реверс-инжиниринге.
Операционная система (Linux), программное обеспечение и журналы хранятся на SSD-диске mSATA. Процессор - это Core i3 4-го поколения с 4 ГБ оперативной памяти.
В принципе, как мы можем помешать недобросовестным клиентам или конкурентам просто удалить SSD и украсть код нашего приложения? Очевидный ответ - зашифровать диск, но он должен загружаться без присмотра. Следующий логический шаг - расшифровать программное обеспечение во время выполнения, но вам все равно нужно будет хранить ключ дешифрования где-нибудь в виде открытого текста, верно?
На плате есть модуль TPM, который может быть решением, но я не смог найти никакой хорошей документации по его использованию для этого.
Я открыт для любых предложений.
dm-crypt
и LUKS
seal
ключ к TPM и использование ограничений доступа в соответствии с хорошо известными PCR
устанавливать.Без безопасной загрузки единственный способ предотвратить передачу ключа TPM всем - это использовать пароль - это невозможно, если требуется автоматическая операция.
Диск можно расшифровать только на машине с конкретным TPM.
Ключ освобождается только после безопасной загрузки. Таким образом, доступ к диску может иметь только одобренное вами программное обеспечение. Однако вы должны разработать правильную стратегию обновления, чтобы иметь возможность обновлять систему. (Если обновления вызывают беспокойство)
TPM можно обмануть низкой стоимостью (<100 €) аппаратные атаки. Это требует определенных навыков, но вполне выполнимо.
Ключ все еще можно получить, вынув оперативную память и прочитав ее с помощью специального устройства. Но он будет удален во время сброса платформы Intel TXT.
Резервное копирование - всегда проблема. Если легко получить доступ к ценным данным в резервных копиях, вся защита вашей платформы ничего не стоит. Если вы храните резервную копию в той же системе, это не резервная копия.
Поведение во время выполнения! Если ваш клиент может получить доступ к работающей системе (SSH, HTTP, ...), то диск будет смонтирован и все данные станут доступны.
Несколько лет назад был выпущен проект исследования прототипа, вы также можете найти там некоторую информацию: Платформа IAIK acTvSM