NitroPad X230
In diesem Kapitel befassen wir uns eingehender mit dem NitroPad X230 einem speziell modifizierten sicheren Laptop mit einzigartiger Manipulationserkennung. In der Produktbeschreibung wie auch dem zugehörigen Datenblatt finden sich alle wichtigen Hintergrundinformationen die man bei der Beschaffung des Gerätes heranziehen sollte.
Ein besonderes Augenmerk beim NitroPad X230 wurde auf das Thema Sicherheit gelegt. So wird das Betriebssysteme bereits pese via LUKS vollständig verschlüsselt ausgeliefert. Beim Starten des Rechners meldet sich statt des Lenovo-BIOS das quelloffene Coreboot. Somit muss man nicht darauf vertrauen dass der Gerätehersteller und Author des originalen BIOS keine Sicherheitslücken oder Backdoors eingeschleust hat. Bei Bedarf kann man also hier den Quellcode kontrollieren und bei Bedarf sogar selbst kompilieren. Darüber hinaus wurde auch die sicherheitstechnisch bedenkliche IME1) entfernt.
Gestartet wird der Laptop per Coreboot mit Unterstützung der Sicherheits-Firmware Heads, die darauf abzielt die physische Sicherheit und den Schutz der Daten auf dem System zu verbessern. Heads ist quasi ein kleines abgekapseltes LINUX-OS, dessen Hauptaufgabe es ist, das sichere und vertrauenswürdige Booten des Laptops sicherzustellen. Da alle Bootkomponenten vom Nutzer signiert und somit auf Veränderunen hin überprüft werden können, ist der Nutzer so in der Lage Rootkits oder eine sog. Evil-Maid-Attacke zu erkennen. Bemerkt Heads eine falsche oder fehlerhafte Signatur, stoppt es unweigerlich den Systemstart und informiert den Nutzer mit einer entsprechenden Warnmeldung. In solch einem Fall muss der Anwender sofort hellhörig werden, denn dies zeigt unweigerlich an, dass die Software verändert bzw. der Rechner manipuliert wurde!
Zur Erkennung solcher böswillige Änderungen am BIOS, am Betriebssystem und der Software, wird beim NitroPad X230 der zugehörige Nitrokey Pro bzw. Nitrokey Storage, oder genauer gesagt mit dem darauf befindlichen Schlüsselmaterial, verwendet.
Im Onlineshop von Nitrokey kann man dann sehr leicht und einfach sein gewünschtes individuelles NitroPad X230 zusammenstellen. Die Preise bewegen sich von der einfachsten Ausführung von ca. EUR 450,00 bis hin zur Highend-Variante mit Qubes OS 4.0 bis hin zu EUR 1.480,00.
Das NitroPad X230 wird auf Wunsch hin getrennt vom zugehörigen Nitrokey Pro bzw. Nitrokey Storage angeliefert. Zum Lieferumfang gehört neben dem Laptop ein passendes Originalnetzteil.
Dokumentation
Vor der ersten Inbetriebnahme ist es dringendst (!) angeraten
sich ausführlich mit der Systemdokumentation unter
https://www.nitrokey.com/doc/nitropad
zu befassen!
Inbetriebnahme
Grundsätzliches zum Bootvorgang
Wie eingangs bereits erwähnt liegt beim NitroPad X230 der eigentliche Sicherheitsgewinn des NitroPad darin, dass beim Starten des Systems erkannt werden kann, ob das System seit der letzten Nutzung verändert oder manipuliert wurde. Erreicht wird dies durch einen, aus mehreren Teilen bestehender Measured Boot. Eine detaillierte Beschreibung rund um das Thema Measured Boot findet sich in dem detailliert beschriebenen Security-Artikel What’s the Difference between Secure Boot and Measured Boot? von gfedorkow.
Dieser Measured Boot wird beim NitroPad mit Hilfe von Coreboot und Heads, aber ohne der IME realisiert:
- Die aus Sicherheitsaspekten durchaus fragwürdige IME2) wurde deaktiviert.
- Zusätzlicher Härtung des Systems wird durch die Einbindung und Nutzung der Security-Firmware Heads erreicht, mit deren Hilfe das sichere und vertrauenswürdige Booten des Laptops erreicht wird. Grundlage hierzu sind unter anderem dass alle Bootkomponenten vom Nutzer signiert und somit auf Veränderunen hin überprüft werden können.
Diese Härtungsmaßnahmen beeinflussen die grundsätzlichesn Sicherungseinstellungen des geladenen Betriebssystems nicht, lediglich beim Hochfahren oder beim Updaten des Systems wird vom Benutzer mehr Auchtsamkeit eingefordert. Durch das Entfernen der IME verliert der Laptop, wie eingangs bereits erwähnt, die standby-Funktion oder auch langläufig als Schlafmodus bezeichnete Funktion.
Es empfiehlt sich, bei jedem Neustart des Systems den zugehörigen Nitrokey Stick anzustecken.
Grundsätzlich sei natürlich erwähnt, dass das Betriebssystem aber auch ohne angestecktem Nitrokey Stick gestartet werden kann.
Wenn der Nitrokey angesteckt war oder nach dem Anstecken die RETURN-Taste gedrückt wurde, erscheint auf dem NitroPad folgender Bildschirm.
Der Hinweis HOTP: Sucess, in dem zuvor gezeigten Bildschirmphoto grün markiert, zeigt an, dass das gemeinsame Geheimnis des NitroPad und des Nitrokey übereinstimmen und somit das BIOS nicht manipuliert bzw. geändert wurde. Aber nur wenn die grüne LED in dem Nitrokey blinkt, kann mann davon ausgehen, dass der Laptop hier nach wie vor sicher ist, denn ein Angreifer hätte Zugriff auf das NitroPad und den Nitrokey haben müssen, um dieses Ergebnis zu erreichen.
Daher ist unbedingt darauf zu achten, dass keinenfalls das NitroPad zusammen mit dem zugehörigen Nitrokey Stick, aufbewahrt oder noch schlimmer unbeaufsichtigt zurückgelassen wird!
Sind die Informationen auf dem NitroPad nicht mit denen des Nitrokey in Einklang zu bekommen, wird dies entsprechend mit der Meldung „Ungültiger Code“ quittiert - in nachfolgendem Beispiel rot markiert.
Erster Start / first boot
Im Auslieferungsstand sind folgende Default-Einstellungen gesetzt:
- LUKS-Festplattenverschlüsselung: PleaseChangeMe
- User-Pin des Nitrokey-Sticks: 123456
- Admin-PIN des Nitrokey-Sticks: 12345678
Diese müssen später noch abgeändert werden!
Installation/Konfiguration Linux Mint
Nachfolgend wird exemplarisch die Installation/Konfiguration eines Linux Mint basierenden NitroPad X230 beschrieben.
Nachdem wir uns, wie zuvor im Abschnitt Measured Boot ausführlich beschrieben, vergewissern wir uns erst einmal, dass das gemeinsame Geheimnis des NitroPad und des Nitrokey übereinstimmen und somit das BIOS nicht manipuliert bzw. geändert wurde.
Sofern hier keine Fehler angezeigt wurde und die grüne LED des Nitrokey Sticks grün mehrmals blinkte, wählen wir nach dem Hochfahren des Systems die Eingabetaste („Standard-Boot“) aus und drücken die RETURN-Taste.
Nach kurzer Zeit, erfolgt die Abfrage des Default-Sicherungspasswortes für die LUKS-Festplattenverschlüsselung.
Im Anschluss daran erfolgt dann die gewohnte Installation von Linux Mint.
Nach der Auswahl der Sprachoption, Tastaturlayout, (wireless) Netzwereinstellung, Zeitzone und der Erstellung des Benutzerkontos können wir uns nach dem automatischen Starten anmelden und es bereits normal benutzen.
Root Passwort setzen
Da der Benutzer root bei der Installation noch kein Passwort gesetzt bekommen hatte, werden wir als ersten wichtigen Konfigurationsschritt, dies nachholen. Hierzu öffnen wir ein Shell-Fenster und geben folgenden Befehl ein:
$ sudo passwd root
Hier geben wir nun zweimal das erforderliche Passwort ein und können somit künftig direkt root-Rechte erleangen in dem wir auf der Shell-Konsole den Befehl su -
verwenden.
$ su -
#
LUKS-Passphrase ändern
Zum Ändern der Passphrase für die LUKS-Festplattenverschlüsselung klicken wir auf das Linx Mint Logo links unten und geben in dem Suchfeld disk ein und bestätigen die Eingabe mit der ENTER-Taste.
In folgendem Fenster wählen wir dann die entsprechende Festplatte aus und klicken auf das Zahnradsymbol
Hier wählen wir dann aus dem Menü den Punkt Change Passphrase aus.
Nun geben wir einmal das Default Passphrase PleaseChangeMe ein sowie zweimal unsere neue Passphrase für die Festplattenversachlüsselung.
Zum Schluss erfolgt noch einmal zum Aktvieren unserer Konfigurationsänderung die Abfrage des Passwortes unseres Users.
User- und Admin PIN des Nitrokey Sticks ändern
Was nun noch fehlt ist die Änderung der beiden Default PINs für den Benutzer (123456) und für den Admin-Zugriff (12345678). Hierzu klicken wir auf das Linx Mint Logo links unten und geben in dem Suchfeld nitro ein und wählen anschließend die angezeigte Applikation Nitrokey App mit einem Mausklick aus.
In der Statusleiste rechts taucht nun das Icon der Nitrokey App auf, welches wir nun mit meinem Mausklick aus-/anwählen.
Als erstes ändern wir über den betreffenden Menüpunkt die Admin-PIN.
Nach Eingabe der default PIN 12345678 und unserer individuellen Admin-PIN klicken wir auf die Schaltfläche [ OK ].
Anschließend machen wir das Gleiche mit der User-PIN.
Nach Eingabe der default PIN 123456 und unserer individuellen Admin-PIN klicken wir auf die Schaltfläche [ OK ].
Erster System-Neustart / first reboot
Nachdem wir nun unser System Grundversorgt und unseren individuellen Bedürfnissen angepasst haben werden wir unseren ersten Reboot/Neustart unseres Laptops vornehmen.
Zunächst einmal werden wir von dem bereits bekannten Measured Boot nach dem Einschalten begrüßt.
Wie gewohnt wählen wir den ersten Menüpunkt Default boot aus. Nur statt dem erhofften [#heads@Heads]] Systemmeldungen werden wir durch eine Fehlermeldung „gewarnt“.
Was war bzw. ist passiert? Das Bootimage wurde natürlich bei der Installation unseren Wünschen nach angepasst und das Boot-Image vom Installations-Image auf unsere Installation geändert. dies wurde natürlich von Heads erkannt uns wird nun angemahnt. Wir müssen nun also die Check-Summe des neuen Images erstellen und anschließend mit dem PGP-Key des Nitrokey sticks neu signieren.
Wir bestätigen also die vorbelegte Auswahl [ Yes ] durch drücken der Return-Taste.
Falls noch nicht geschehen stecken wir nun unseren Nitrokey Stick an einem der beiden USB-Ports und bestätigen die vorbelegte Auswahl [ Yes ] durch drücken der Return-Taste.
Wir werden nun nochmals gefragt, ob der Stick auch wirklich angesteckt wurde:
Please confirm that you PGP card is inserted [Y/n]:
ACHTUNG:
Bevor wir nun die Frage mit der eingabe von y bestätigen, erinnern wir uns besser daran, dass die Tastaturbelegung hier nicht die gewohnte Deutsche Tatsturbelegung ist, sondern die englische Tastaturbelegung, also z und y vertauscht sind!
Wir drücken also entweder RETURN zur Übernahme des Defaultwertes „Yes“ oder entsprechend die Taste z auf der Tastatur und bestätigen so mit yes dass der Nitrokey Stick angesteckt ist.
Verifying presence of GPG card... 42112666: 000e1412197100000009 Please unlock the card Number: 0005 000067E8 Holder: Counter: 6 PIN:
Hier geben wir nun unsere zuvor geänderte User-PIN ein.
Im Anschluss daran befinden wir uns wieder beim bekannten Coreboot-Prompt.
Hier können wir nun den ersten Menüpunkt Default boot auswählen.
Aktualisierung der Head-Daten nach einem System-/Kernel/-glibc-Update
Aktualisierungen der Head-Daten stehen in aller Regel nach einem System-/Kernel/-glibc-Update an, bzw. wenn direkt nach dem Updatevorgang ein Neustart des Systems gefordert wird. Wie auch schon beim Erster System-Neustart nach der Grundinstallation von bereits bekannten Measured Boot nach dem Einschalten begrüßt.
Hier wählen wir den gewohnten Menüpunkt Default boot aus und sehen natürlich nach einem Systemstart eine entsprechende Warnmeldung statt der erhofften heads@Heads Systemmeldungen, da sich ja wesentliche Änderungen durch den Systemupgrade unseres Linux Mint Systems ergeben hatten.
Je nach Art und Umfang der Meldungen, kann es sein, dass die Meldung Would you update to update your checksumnow?
nicht zu sehen sit wie im gezeigten Fall, da zu viele Meldungen ausgegeben wurden. Wir bestätigen also die vorbelegte Auswahl [ Yes ] durch drücken der Return-Taste.
Falls noch nicht geschehen stecken wir nun unseren Nitrokey Stick an einem der beiden USB-Ports und bestätigen die vorbelegte Auswahl [ Yes ] durch drücken der Return-Taste.
Wir werden nun nochmals gefragt, ob der Stick auch wirklich angesteckt wurde:
Please confirm that you PGP card is inserted [Y/n]:
ACHTUNG:
Bevor wir nun die Frage mit der eingabe von y bestätigen, erinnern wir uns besser daran, dass die Tastaturbelegung hier nicht die gewohnte Deutsche Tatsturbelegung ist, sondern die englische Tastaturbelegung, also z und y vertauscht sind!
Wir drücken also entweder RETURN zur Übernahme des Defaultwertes „Yes“ oder entsprechend die Taste z auf der Tastatur und bestätigen so mit yes dass der Nitrokey Stick angesteckt ist.
Verifying presence of GPG card... 42112666: 000e1412197100000009 Please unlock the card Number: 0005 000067E8 Holder: Counter: 10 PIN:
Hier geben wir nun unsere zuvor geänderte User-PIN ein.
Im Anschluss daran befinden wir uns wieder beim bekannten Coreboot-Prompt.
Hier können wir nun den ersten Menüpunkt Default boot auswählen und bekommen im Anschluss eine Fehlermeldung ERROR: Boot Entry Has Benn Changed
Diese Meldung bestätigen wir durch Druck der Taste RETURN-Taste.
Hier wählen wir den gewünschten Boot-Eintrag, also den ersten Eintrag aus.
Auf der gezeigten Auswahl wählen wir den zweiten Eintrag durch einem Druck der ↓-Taste aus und bestätigen die Auswahl mit der ENTER-Taste.
Bei den folgenden drei Abfragen bestätigen wir die Defaultwerte jeweils mit der ENTER-Taste.
Saving a default will modify the disk. Proceed? (Y/n):
Do you wish to add a disk encryption to the TPM? [y/N]:
Please confirm that you PGP card is inserted [Y/n]:
Anschließend wir der am USB-Port angesteckte Nitrokey Stick geprüft.
Verifying presence of GPG card... 42112666: 000e1412197100000009 Please unlock the card Number: 0005 000067E8 Holder: Counter: 11 PIN:
Hier geben wir nun unsere zuvor geänderte User-PIN ein.
Anschließend bottet das system und nach Eingabe der LUKS-Passphrase befinden wir uns beim Cinnamon Anmeldefenster.
Nach Eingabe der Anmeldeinformationen befinden wir uns auf der gewohnten aktualisierten Linux Mint Umgebung.