Есть ли способ зашифровать файлы на SSD, который должен загружаться без присмотра?

285
Chriszuma

Моя компания разрабатывает продукт, который в основном представляет собой ПК с Linux и специальным программным обеспечением.

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

Очевидным ответом будет использование пароля жесткого диска BIOS, но система должна загружаться полностью без присмотра. Существуют ли какие-либо варианты шифрования наших данных, но все равно они загружаются без ввода паролей? Может быть, что-то связано с серийным номером процессора или MAC-адресом?

1
Если обратное проектирование устройства вызывает у вас беспокойство, то почему бы не назначить уникальный идентификатор для каждого изготовленного устройства и встроить этот идентификатор в код, чтобы его можно было отследить в случае, если кто-то обратный проектирует его? bwDraco 10 лет назад 0
Я никогда не видел реализацию Linux, но то, что вы просите, - это в основном то, для чего был разработан TPM. Есть ли в вашей системе TPM? Теоретически ключи шифрования диска отправляются на TPM и теоретически не могут быть извлечены. (См. Битлокер) Zoredache 10 лет назад 2

2 ответа на вопрос

3
LPChip

You can't encrypt an entire HDD and still boot from it without being able to access the data. I mean, if the bootloader can access it, anyone can. What you want to look into is creating a boot loader that has access to just enough to boot, and make the rest secure.

Preferably you want to compile your OS/program to a state where decompile becomes something so time consuming they'd be better of developing something themselves. Perhaps it is an idea to make the code run solely on specific hardware tags. If the hardware is not present it gives a weird error.

Я тоже так думал. Я предполагаю, что мой дополнительный вопрос будет о том, какой не выдуманный аппаратный тег я могу использовать в качестве блокировки. Chriszuma 10 лет назад 0
@Chriszuma: классическим решением этой проблемы является [обфускация кода] (https://en.wikipedia.org/wiki/Obfuscation_%28software%29). Обратите внимание на слова «странная ошибка»: если для пользователя очевидно, что программное обеспечение не запускается из-за несанкционированного оборудования, пользователь может попытаться выполнить обратное проектирование самого оборудования. Если вы оставите пользователя в неведении относительно причины ошибки, он с меньшей вероятностью попытается перепроектировать устройство. bwDraco 10 лет назад 2
0
yorodm

If your're using Linux as OS you should check out LUKS. It is known to work even on mobile devices

И как это позволяет загружать систему ** без участия **? AFAIK luks требует от вас ввести пароль в приглашении или в виде незашифрованного файла ключа. Zoredache 10 лет назад 0
На мой взгляд, «незашифрованный ключевой файл» звучит как хорошее место для начала. Проверьте [это] (http://www.howtoforge.com/automatics-unlock-luks-encrypted-drives-with-a-keyfile) и [это] (http://www.gno.org/~gdr/sysadmin / CentOS / 5 / крипто-диск /) yorodm 10 лет назад 0