Linux EFI Tools 1.4 unterstützen nun das Verändern und Auslesen von UEFI-Signaturen
Wer efivars einbinden möchte, geht wie folgt vor:
modprobe efivars
mount -o efivarfs none /[Einhänge- / Mount-Verzeichnis]
Sollte dies erfolgreich sein, kannst Du nun die efi-tools verwenden und die Secure-Variablen auslesen und verändern. Wer das machen möchte, muss allerdings den privaten Teil der Schlüssel parat haben. Als Beispiel gibt Bottomley an, dass der private Schlüssel PK.key ist und so könntest Du Deinen eigenen KEK hinzufügen:
efi-updatevar -a -c KEK.crt -k PK.key KEK
- nun kannst Du Deine eigene Signatur in die Datenbank einfügen
efi-updatevar -a -c DB.crt -k KEK.key db
KEK.crt und DB.crt sind dabei X.509-Zertifikate. Per Standard gehören Dateien im efivars-Dateisystem dem Benutzer root und haben die Zugriffsrechte 0644. efi-readvar lässt sich somit von jedem Anwender ausführen. efi-updatevar muss allerdings root ausführen, weil die Dateien sonst nicht geschrieben werden können. Weiterhin gibt es ausführlich Man-Pages für efi-readvar und efi-updatevar, die alle Optionen erklären.
Herunterladen kannst Du efitools 1.4 von hier: http://download.opensuse.org/repositories/home:/jejb1:/UEFI/. Es gibt derzeit Pakete für Debian 6.0, Fedora 17, openSUSE 12.1, openSUSE 12.2, xUbuntu 11.10 und xUbuntu 12.10. Der Sprung der beiden letzteren ist mir irgendwie nicht ganz klar …
Wie man X.509-Zertifikate für UEFI erstellst, findest Du auch im Blog von James Bottomley:
openssl req -new -x509 -newkey rsa:2048 -keyout PK.key -out PK.crt -days <Anzahl wie lange Zertifikat gültig sein soll> -subj "/CN=<Dein Namen - kann alles sein>/"
- Schlüssel in DER-Format umwandeln
openssl x509 -in PK.crt -out PK.cer -outform DER