Пытаюсь подключить IMA/EVM основываясь на вики: https://sourceforge.net/p/linux-ima/wiki/Home/#compiling-the-kernel-with-evmima-appraisal-enabled
TPM у меня нет, ибо виртуалка (а может и совсем нет), поэтому для генерации мастер ключа поступаю следующим образом:
# To create and save the kernel master key (user type):
$ su -c 'modprobe trusted encrypted'
$ su -c 'keyctl add user kmk-user "`dd if=/dev/urandom bs=1 count=32 2>/dev/null`" @u'
$ su -c 'keyctl pipe `keyctl search @u user kmk-user` > /etc/keys/kmk-user.blob'
# Create the EVM encrypted key
$ su -c 'keyctl add encrypted evm-key "new user:kmk-user 32" @u'
$ su -c 'keyctl pipe `keyctl search @u encrypted evm-key` >/etc/keys/evm-user.blob'
Однако
$ su -c 'keyctl add user kmk-user "`dd if=/dev/urandom bs=1 count=32 2>/dev/null`" @u'
Password:
24606028
$ su -c 'keyctl pipe `keyctl search @u user kmk-user` > /etc/keys/kmk-user.blob'
Password:
keyctl_read_alloc: Permission denied
При этом
$ systemctl show root@ubuntu | grep KeyringMode
KeyringMode=private
Не могу ничего сделать, ключи сгенерены, файлы через evmctl sign можно подписать, но толку то, EVM не включается. Где-то натыкался на формуе, что это systemd блокирует keyctl, но как поменять режим keyring’ов я не знаю.
Скрипт из initramfs обваливается, потому что (почему-то) не может прочитать файл сертификата x509, хотя он явно лежит в нужной папке
/etc/keys$ ls
kmk-user.blob privkey_ima.pem x509_evm.der
privkey_evm.pem pubkey_evm.pem x509_ima.der
Может кто-то занимался этой технологией без сборки ядра с нуля? Флаги в последней доступной для скачивания убунте все соответствуют. А то получается ни ключи не поэкспортировать, ни запустить EVM в принципе - не могу понять в чем причина