Problem:
Es wurde im Eigenbau ein neuer Rechner gebaut. Aufgabe ist es jetzt diesen Rechner im UEFI mit meinen eigenen Keys für Secureboot zu versehen und damit den Rechner speziell für seine Linux-Aufgabe und für seinen Verwendungszweck abzusichern, Die Hoheit über den Rechner im UEFI soll einzig bei mir liegen. Absicherung des UEFI gegen Booten von unautorisierten Betriebssystemen, Scriptkiddies, Bundestrojaner, Schad- und Spionagesoftware und sonstiges was eventuell die nächsten Jahre einen Default-Rechner im UEFI angreifen könnte, ohne mir dabei die Möglichkeit zu verbauen auch weiterhin im und mit dem UEFI herum experimentieren zu können.
Ausgangssituation
Rechner wurde aufgebaut mit Gigabyte GA-Z97N-WIFI, mit einer etwas moderaten CPU aber fetten und schnellen 2 x 8GB Hauptspeicher. Das Ganze mit 64GB SSD und einem CPU-Kühler in ein NAS-Gehäuse. Derzeit 2 x 2TB Western Digital Red SATA III in den Wechselrahmen runden das Ganze ab. Das alles aber nur so nebenbei für alle die, die etwas Anleitung benötigen wie man sich zB. seine eigenen Rechner zusammenstellen kann.
Geplante Aufgabe des Rechners, er soll später Headless als Home-NAS fungieren und nebenbei ein paar VMs für Tests und Experimente im virtualisiertem NAS-Umfeld zur Verfügung stellen, sowie als Plattform für die regelmäßigen und sehr umfangreichen Testläufe dienen, die bei meiner Entwicklerarbeit doch gelegentlich anfallen.
Installiert wurde ein OpenSuse 13.1 64bit mit UEFI + Secureboot, zusätzlich wurde noch efitools und sbsigntools von diesem Projekt installiert.
Die mitgelieferte Software sowie die Herstellerseite sind voll mit Windowstools, Treibern und ähnlichen, Erwähnt wird Linux nur einmal, auf gut deutsch: "man soll sich für Linux seine Treiber bei den Herstellern der Chips oder irgendwo anders zusammensuchen, wenn man denn welche braucht". (Habe keine Treiber benötigt, der Suse-Kernel hat alles problemlos im Griff) Handbuch und Doku reicht aus um die Hardware zusammen zu bauen und in Betrieb zu nehmen. Genaue Beschreibung der einzelnen BIOS/UEFI-Funktionen oder ähnliches sucht man vergeblich. Geschweige denn irgendwelche genauen Infos über UEFI oder gar den Secureboot. Eine EFI-Shell sucht man auch vergeblich auf den Hersteller Seiten. Es wird überhaupt keinerlei Anstalten gemacht Otto den Normalkäufer eines solchen Boards oder Rechners mit einem solchem Board vernünftig über die reichlich vorhanden normalen Funktionen und Setupeinstellungen aufzuklären. Dafür gibt es aber mehrere Möglichkeiten und Oberflächen für die Einstellung des UEFI und spezielle Tools für das Tuning und Overclocking. Der Kunde hat hier wunderschön anzuschauende Setuptools auch multilingual und mit Mausbedienung, Aber wer ein richtiges optimales UEFI-Bios Setup oder gar ein Tuning oder Overclocking manchen will, der muss entweder Ahnung haben von dem was er macht, oder sich die Infos dazu irgendwo anders im Netz suchen, oder ausprobieren, hoffen und beten das ihm der Prozessor der Speicher oder das ganze Board dabei nicht um die Ohren fliegt.
Im "Klassischem" Setupmenu ist so ziemlich alles zu finden was man sich an den System Einstellungen für die Hardware wünscht. Allerdings ist die Namensgebung und besonders die deutsche Übersetzung teilweise Hahnebüchend. Die Hilfe dazu ist durchweg ein Plazebo. Das man irgendwelchen "Itzelpritzl" hier ein- und ausschalteten kann, sieht man selbst, das braucht man nicht noch links als Hilfe dazu zu schreiben und was "Itzelpritzl" eigentlich ist, steht nirgends, weder in der Hilfe noch im Handbuch noch irgendwo auf der Herstellerseite. Ob man eventuell vom Support Hilfe dazu bekommen könnte, habe ich nicht probiert. Wer einigermaßen Ahnung hat oder sich wochenlang durchs Web gegooglet hat, findet was er sucht. Ansonsten sind die default Einstellungen ganz gut und für viele Einsatzgebiete auch optimal.
Mit dem Wahlschalter "Windows 8 feature" -> "Windows 8 WHQL " -> "Other OS" und zusätzlich dem Schalter für "CSM" kommt man an die Secureboot Einstellungen. Je nach dem wie diese beiden Schalter gesetzt werden, sieht man (oder eben sieht man nicht) unten den derzeit aktuellen "System Modus" und "Secureboot Modus" oder kann sogar "System Modus" von "Standard" auf "Custom" umschalten und "Secureboot" ein- und ausschalten. Also alles so wie es es in der Windowsspezifikation von Windows 8 "empfohlen wird. Windows 10 dürfte man mit der Schalterstellung "Windows 8 Feature" auch erfüllen, denn da lässt sich Secureboot nicht mehr abschalten, weil eben die Menüpunkte dazu nicht mehr angezeigt sind.
Aber alles Kokolores. Das Systemboard ist definitiv im SetupMode und es ist nicht ein Zertifikat installiert. Also egal was man einstellt, es gibt derzeit keinen Secureboot. Zu sehen auch unter Linux mit dem Befehl efi-readvar das alle Key Variablen ohne einen Eintrag sind.
Die Booteinstellungen im Setupmenu sind gewöhnungsbedürftig. Die Bezeichnung der automatisch vom UEFI-BIOS erzeugten Namen mag vielleicht für UEFI verständlich sein, Otto der Normaluser kann damit wenig anfangen. Je nach dem was man für Optionen eingestellt hat sieht man mehr oder weniger Bootmöglichkeiten, schnell unübersichtlich wird es wenn man den Networkboot eingestellt hat, da hier dann sofort beide NICs sowohl mit IPV4 und IPV6 Boot in der Bootauswahl vorkommen, dann noch UEFI + CSM ausgewählt und es blickt keiner mehr durch in der Liste mit 10 oder noch mehr Bootmöglichkeiten.
Einen speziellen Booteintrag im Setup selbst zu erstellen ist nicht möglich, und auch das Sortieren der selben muss man erst mittels ausprobieren erlernen.
Es gibt im Setupmenü leider keinen default Menupunkt um eine EFI-Shell zu laden. Im BIOS ist keine interne vorhanden und eine optionale wird auch vom Hersteller nicht auf den Downloadseiten angebooten und nach diesem Begriff zu suchen ist beim Hersteller auch vergebene Mühe. Das wird dem Normalo vorenthalten. Na ja der Nomalo will dort ja auch gar nicht hin, dieser geheime Ort soll den Scriptkiddies und Überbringern des Bundestrojaners vorenthalten bleiben.
UEFI-Version habe ich V2.3.1 ermittelt. Leider und überhaupt nicht erwartet funktioniert die UEFI-Shell v2 nicht und bei der Geschwindigkeit des Rechners ist auch keine Fehlermeldung unmittelbar vor dem clear des Bildschirms zu erkennen. Aber UEFI-Shell v1 tuts auch. Nur eben bcfg gibts bei der nicht, dafür haben wir aber den prima in Linux funktionierenden efibootmgr
Die Aufgabe für die nächsten Tage:
- # Erstellung von eigenen PK KEK und db Zertifikaten
# Signierung der EFI-Shell und des Keytoos mit dem erstelltem db
# Ausprobieren der Schlüssel auf einer VM
# Testen ob und wie wir einzelne Schlüssel hinzufügen,austauschen und löschen können
# Wenn auf VM alles soweit passt, dann diese Zertifikate und zusätzlich das OpenSuse auf dem Systemboard installieren
Ich rechne damit, dass laut der Spezifikation die Windows an die Hardwarehersteller stellt, nachdem der PK das erste mal installiert ist, hinterher nach jedem clear CMOS, oder vergleichbaren Voll-Reset, oder sonstigen "Back 2 default" oder umstellen von Custom- auf Standard Mode genau diese ersten installieren Zertifikate wieder aktiv werden. Es sollte dort also nichts schief gehen, denn sonst ist das Mainboard für immer versaut.
also bis die Tage.
robi