Я хотел спросить, можно ли загрузить ключ в мой дистрибутив с постоянным доступом, чтобы пройти безопасную загрузку без отключения? Я думаю, что ответ, вероятно, нет, но я все равно хотел спросить.
1 ответ
Вы не сказали, для чего нужен ключ, но в Ubuntu я периодически делаю это, чтобы подписывать драйверы вручную. Мой драйвер BroadCom WiFi является сторонним и неподписанным, и я использую следующий скрипт каждый раз, когда устанавливается новое ядро:-
#!/bin/bash
if [ "$(whoami)" != "root" ]
then echo "wlsign: must be called from 'root'"
elif [ -z "$1" -o "$1" == "-c" ]
then
[ "$1" == "-c" ] && \
openssl req -new -x509 -newkey rsa:2048 -keyout wl.priv -outform DER -out wl.der -nodes -days 36500 -subj "/CN=BroadCom/"
/usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./wl.priv ./wl.der $(modinfo -n wl)
[ "$1" == "-c" ] && mokutil --import wl.der
[ "$1" == "-c" ] && echo Now reboot and select MOK install || modprobe wl
else
[ "$1" != "-h" ] && echo "wlsign: invalid options - $@"
echo 'wlsign [-c|-h] : signs proprietary Wireless kernel drivers'
echo ' -c : create new keys (default: use existing)'
echo ' -h : give this help information'
fi
Мне нужна была опция -c
только один раз, чтобы изначально создать файлы ключей. После использования -c
система должна быть перезагружена и новый ключ принят в прошивку UEFI.
У меня есть похожие сценарии для других неподписанных драйверов, особенно драйверов VMware, которые скомпилированы на лету, поэтому никогда не могут быть подписаны.
Поскольку Kali и Ubuntu являются производными Debian, я надеюсь, что структуры системных каталогов схожи. Обратите внимание, что программа sign-file
установлена в заголовках ядра, поэтому для вашего ядра должна быть установлена linux-headers-*
. В kmodsign
есть программа /usr/bin/
, которая может быть альтернативой, но я ее не пробовал.
Я не могу вспомнить, где я нашел эту информацию, поэтому я не могу подтвердить ее источник.