Inhaltsverzeichnis

NitroPad X230

Bild: Nitrokey Logo

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.

Bild: Photo des NitroPad X230

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:

  1. Die aus Sicherheitsaspekten durchaus fragwürdige IME2) wurde deaktiviert.
  2. Das sonst übliche UEFI3) wird durch Coreboot ersetzt.
  3. 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.

Bild: Hinweis beim Starten des Systems ohne angestecktem Nitrokey

Grundsätzlich sei natürlich erwähnt, dass das Betriebssystem aber auch ohne angestecktem Nitrokey Stick gestartet werden kann.

Bild: NitroPad X230 mit angestecktem Nitrokey Pro Stick

Wenn der Nitrokey angesteckt war oder nach dem Anstecken die RETURN-Taste gedrückt wurde, erscheint auf dem NitroPad folgender Bildschirm.

Bild: Hinweis beim Starten des Systems mit angestecktem Nitrokey

  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.

Bild: Hinweis beim Starten des Systems mit angestecktem Nitrokey, bei dem das HOTP nicht passt

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.

Bild: Hinweis beim Starten des Systems mit angestecktem Nitrokey

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.

Bild: Installation Linux Mint - Abfrage LUKS Passwort

Im Anschluss daran erfolgt dann die gewohnte Installation von Linux Mint.

Bild: Installation Linux Mint - menügeführte Installation

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.

Bild: Linux Mint - Auswahl Programm-/Startmenü

In folgendem Fenster wählen wir dann die entsprechende Festplatte aus und klicken auf das Zahnradsymbol

Bild: Linux Mint - Menü zum Verwalten der Massenspeicher

Hier wählen wir dann aus dem Menü den Punkt Change Passphrase aus.

Bild: Linux Mint - Menü zum Ändern der Optionen des gewälten Massenspeichers

Nun geben wir einmal das Default Passphrase PleaseChangeMe ein sowie zweimal unsere neue Passphrase für die Festplattenversachlüsselung.

Bild: Linux Mint - Dialog zum Ändern der LUKS-Passphrase

Zum Schluss erfolgt noch einmal zum Aktvieren unserer Konfigurationsänderung die Abfrage des Passwortes unseres Users.

Bild: Linux Mint  -Abfragedialog des Benutzerpasswortes

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.

Bild: Linux Mint - Auswahl Programm-/Startmenü

In der Statusleiste rechts taucht nun das Icon der Nitrokey App auf, welches wir nun mit meinem Mausklick aus-/anwählen.

Bild: Linux Mint - Auswahl der Nitrokey App über die Statusleiste

Als erstes ändern wir über den betreffenden Menüpunkt die Admin-PIN.

Bild: Linux Mint - Nitrokey App Änderungsdialog Admin-PIN

Nach Eingabe der default PIN 12345678 und unserer individuellen Admin-PIN klicken wir auf die Schaltfläche [ OK ].

Bild: Linux Mint - Nitrokey App Bestätigung der PIN-Änderung

Anschließend machen wir das Gleiche mit der User-PIN.

Bild: Linux Mint - Nitrokey App Änderungsdialog User-PIN

Nach Eingabe der default PIN 123456 und unserer individuellen Admin-PIN klicken wir auf die Schaltfläche [ OK ].

Bild: Linux Mint - Nitrokey App Bestätigung der PIN-Änderung

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.

Bild: Coreboot Prompt

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“.

Bild: Head Fehlermeldung

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.

Bild: Head Dialog zum Neugenerieren der Checksum/Signaturen

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.

Bild: Coreboot Prompt

Hier können wir nun den ersten Menüpunkt Default boot auswählen.

Bild: Heads systemmeldungen beim Bootvorgang

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.

Bild: Coreboot Prompt

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.

Bild: Coreboot Fehlermeldung nach Systemupgrade

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.

Bild: Head Dialog zum Neugenerieren der Checksum/Signaturen

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.

Bild: 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

Bild: Heads Systemmeldungen beim Bootvorgang

Diese Meldung bestätigen wir durch Druck der Taste RETURN-Taste.

Bild: Heads Systemmeldungen zum Auswahl des Defaultbootimages

Hier wählen wir den gewünschten Boot-Eintrag, also den ersten Eintrag aus.

Bild: Heads Systemmeldungen zur Bestätigung der Bootoption

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.

Bild: Cinnamon Anmeldefenster von Linux Mint

Nach Eingabe der Anmeldeinformationen befinden wir uns auf der gewohnten aktualisierten Linux Mint Umgebung.

Bild: Cinnamon Desktop Umgebung von Linux Mint 20.0

Links

1)
Intel Management Engine ⇒ MINIX in der Intel Management Engine