ключ eCryptfs в изображении ядра или initramfs

У меня встроенная система Linux с незашифрованным изображением ядра и initramfs в NAND flash. Моя RootFS находится на SD-карте.

Я хочу зашифровать некоторые файлы на SD-карте, так как моя SD-карта легко доступна физически.

Для этого я планирую использовать eCryptfs.

Но я хочу держать ключи внутри флешки NAND в изображении ядра или initramfs. Каковы мои варианты, что является лучшим способом защитить некоторые файлы на моей SD-карте.

Если у вас не было initramfs , вы можете сделать это с помощью параметров ядра. Просто добавьте случайную строку в качестве параметра ядра, а затем используйте ключ /proc/cmdline в качестве ключа для вашего шифрования. Если добавлять такие параметры к загрузчику не так просто, в ядре Linux есть CMDLINE конфигурации CMDLINE которая позволяет вам скомпилировать ее. (Примечание: возможно, что параметры ядра будут входить в файлы журналов и т. Д. Подходит ли он для ваш сценарий зависит от того, что работает / записывается на вашу SD-карту.)

С initramfs , конечно, вы можете делать все, что захотите. Он может запрашивать вашу парольную фразу при загрузке, или включать ключ, либо использовать оба зашифрованных ключа. Это зависит от вас, но точная реализация зависит от того, как выглядят ваши initramfs без таких изменений. Вы можете посмотреть различные руководства по initramfs онлайн, чтобы получить представление о том, как это работает в принципе, например: https://wiki.gentoo.org/wiki/Custom_Initramfs

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