Eine Gruppe namens PrivacyIdea hat ein kleines Paket erstellt, um eine HMAC-SHA1- Challenge-Response-Routine zu den initramfs hinzuzufügen . Dies bedeutet, dass Ubuntu Sie nach einer Challenge fragen kann, die an Yubikey weitergeleitet werden soll, und die Antwort dann zum Entsperren des LUKS-Volumes verwendet. Zum größten Teil folge ich diesen Anweisungen mit einigen zusätzlichen Kommentaren. Der Prozess ist eigentlich sehr einfach zu machen.
Ich habe dies auf Ubuntu 14.04, 16.04 und 18.04 getestet; mit einem Yubikey Neo. Es sollte mit jedem neueren Yubikey, mit Firmware 2.0+ und mit jeder Version von Ubuntu nach 14.04 funktionieren. Ich habe Ubuntu 19.04 auch mit einem Yubikey 5C getestet, einige zusätzliche Arbeiten waren erforderlich, aber es kann zum Laufen gebracht werden. Es könnte auch andere Hardware-HMAC-SHA1-Challenge-Response-Geräte geben, mit denen dies funktioniert, mir sind jedoch keine bekannt. Stellen Sie wie immer sicher, dass Sie eine Sicherungskopie Ihrer Daten haben, bevor Sie fortfahren. Es sollte hier keine Probleme geben, aber es besteht immer die Möglichkeit, dass dies alles auf Ihrem Computer zerstört. Für diese Anweisungen wird keine Garantie übernommen.
Update: Seit Ubuntu 16.04 befinden sich die benötigten Pakete in den Haupt-Repositories und es wird kein PPA benötigt.
Schreibe einen Kommentar, wenn du Fragen hast!
0. Voraussetzungen
Damit dies funktioniert, muss bereits die LUKS-Festplattenverschlüsselung eingerichtet sein und funktionieren. Sie können dies tun, indem Sie bei der Installation von Ubuntu die entsprechende Option auswählen. Für maximale Sicherheit sollten Sie während der Installation eine sehr starke Passphrase wählen. Wenn Ihre Passphrase nicht auf dem neuesten Stand ist, sollten Sie sie ändern, bevor Sie fortfahren ( ausführlichere Anweisungen hier ).
Die folgende Methode ersetzt keine vorhandenen Passphrasen, sondern fügt stattdessen eine andere Passphrase zu einem der LUKS-Slots hinzu. Wenn Sie Ihren Yubikey verlieren, können Sie Ihren Computer dennoch mit einer vorhandenen Passphrase entsperren. Ich schlage vor, Sie machen sich eine Notiz und verstecken sie an einem sicheren Ort. Sie werden sie auch einige Male während dieses Vorgangs benötigen. Ihre neue Passphrase für die Yubikey-Herausforderung sollte immer noch einigermaßen sicher sein, muss aber nicht so lang sein wie die Passphrase, die Sie bei der Installation von Ubuntu verwendet haben.
1. Fügen Sie PrivacyIdea PPA hinzu und installieren Sie das Paket
Auf Ubuntu 14.04
Öffnen Sie ein Terminal und führen Sie den folgenden Befehl aus:
sudo add-apt-repository ppa:privacyidea/privacyidea
Drücken Sie die Eingabetaste, wenn Sie dazu aufgefordert werden, und führen Sie dann Folgendes aus:
sudo apt-get update
Dann installieren Sie das Paket mit:
sudo apt-get install yubikey-luks
Auf Ubuntu 16.04, 18.04
Es ist kein PPA erforderlich. Sie können das Paket mit den folgenden Schritten installieren:
sudo apt-get install yubikey-luks
Auf Ubuntu 19.04
In dieser Antwort erfahren Sie, wie Sie das yubikey-luks
Paket aus dem Quellcode für Ubuntu 19.04 erstellen.
2. Installieren Sie die Yubikey-Software
Wenn Sie die HMAC-SHA1-Funktionalität des Yubikey für etwas anderes verwenden, können Sie diesen Abschnitt überspringen. Die Konfiguration im zweiten Yubikey-Steckplatz wird gelöscht. Führen Sie diesen Schritt nicht aus , wenn Sie HMAC-SHA1 für andere Zwecke mit diesem Yubikey verwenden.
Sie müssen Ihr Yubikey so einrichten, dass es mit Ubuntu zusammenarbeitet, indem Sie die erforderliche Software entweder von Yubico PPA auf Ubuntu 14.04 oder vom Haupt-Ubuntu-Repository auf 16.04 und höher installieren .
Auf Ubuntu 14.04
Wenn Sie dies noch nicht getan haben, fügen Sie die PPA hinzu und installieren Sie das Paket mit:
sudo add-apt-repository ppa:yubico/stable
sudo apt-get update
sudo apt-get install yubikey-personalization
Unter Ubuntu 16.04, 18.04 (und später)
sudo apt-get install yubikey-personalization
3. Initialisieren Sie den Yubikey-Steckplatz für HMAC-SHA1
Jetzt müssen wir den zweiten Steckplatz des Yubikey mit einer HMAC-SHA1-Konfiguration programmieren. Dadurch wird Ihre vorherige Steckplatzkonfiguration gelöscht, die standardmäßig leer ist. Wenn Sie HMAC-SHA1 für einen anderen Zweck verwenden, geben Sie diesen Befehl nicht ein. Dadurch wird Ihre Konfiguration gelöscht. Sie können für dieses LUKS-Setup sicher denselben geheimen Schlüssel im Yubikey verwenden wie für Ihre anderen Zwecke. (Zum Beispiel mit einem anderen Computer, der LUKS + Yubikey verwendet).
ykpersonalize -2 -ochal-resp -ochal-hmac -ohmac-lt64 -oserial-api-visible
Das Terminal zeigt einige Informationen zu den vorgenommenen Änderungen an. Sie müssen dies nicht notieren, aber es wird der geheime Schlüssel angezeigt, der vom Yubikey im HMAC-SHA1-Algorithmus verwendet wird, um die Antwort bei einer gegebenen Herausforderung zu berechnen.
4. Registrieren Sie Yubikey für den LUKS Slot
Jetzt werden wir die LUKS-Konfiguration bearbeiten, um die Antwort vom Yubikey als einen der Entschlüsselungsschlüssel anzuhängen.
Die Partition, die wir angeben müssen, hängt davon ab, ob Sie BIOS oder UEFI zum Booten Ihres Computers verwenden. Für das BIOS ist das verschlüsselte Volume /dev/sda5
standardmäßig auf, für UEFI auf /dev/sda3
. Sie können dies überprüfen, indem Sie das disks
Dienstprogramm öffnen und den Pfad der Partition bestätigen - dies sollte entweder sda3
oder sein sda5
. HINWEIS: Auf neueren Computern mit NVMe-Datenträgern lautet der Pfad ungefähr /dev/nvme0n1p3
.
Führen Sie dies in einem Terminal aus:
sudo yubikey-luks-enroll -d /dev/sda3 -s 7
Dies wird in Steckplatz 7 der LUKS-Konfiguration geschrieben. Befolgen Sie die Anweisungen im Installationsprogramm (sie variieren geringfügig, je nachdem, welche Version Sie ausführen).
Dann sind Sie fertig! Sie sollten in der Lage sein, Ihren Computer neu zu starten. Wenn Ihr Yubikey eingefügt ist, können Sie Ihr Challenge-Passwort eingeben und den Yubikey als zweiten Faktor verwenden, um die LUKS-Partition zu entsperren und das System zu starten. Sobald Sie die Festplatte entschlüsselt haben, können Sie den Yubikey entfernen.
Wenn Sie Ihren Yubikey verlieren, können Sie immer noch Ihre ursprüngliche (hoffentlich sehr lange) Passphrase eingeben, um die Festplatte zu entschlüsseln. Anschließend können Sie diesen Vorgang erneut ausführen, um einen neuen Yubikey zu registrieren.
Ändern der Passphrase für die Verschlüsselungsaufforderung
Das Passwort zu einem späteren Zeitpunkt zu ändern ist ganz einfach. Verwenden Sie einfach diesen Befehl, um den geheimen Schlüssel zurückzusetzen. Es ist nicht unbedingt erforderlich, den geheimen Schlüssel zurückzusetzen, aber es tut nicht weh. Denken Sie daran, dass dies den vorherigen geheimen Schlüssel zerstört. Tun Sie dies nicht , wenn Sie HMAC-SHA1 für etwas anderes mit diesem Yubikey verwenden. (Zum Beispiel mit einem anderen Computer, der LUKS + Yubikey verwendet).
ykpersonalize -2 -ochal-resp -ochal-hmac -ohmac-lt64 -oserial-api-visible
Dann, ähnlich wie in Schritt 4 oben, um ein neues Passwort in den LUKS-Schlüssel-Slot einzutragen, außer, um Slot 7 mit diesem Befehl zu löschen:
sudo yubikey-luks-enroll -d /dev/sda3 -s 7 -c
Wenn Sie dazu aufgefordert werden Enter any remaining passphrase
, verwenden Sie Ihre Sicherungs-Passphrase - nicht die Yubikey-Challenge-Passphrase. Geben Sie anschließend zweimal eine neue Yubikey-Challenge-Passphrase ein. Anschließend müssen Sie die Backup-Passphrase ein letztes Mal eingeben.
Jetzt wurde Ihre alte Yubikey-Challenge-Passphrase entfernt und nur Ihre neue entschlüsselt die Festplatte. Ihre vorherige Sicherungs-Passphrase bleibt unverändert. Sie können diese Passphrase ändern, indem Sie den Links in Schritt 0 folgen .
Hinweis zu Sicherheitsrisiken
Durch das Hinzufügen eines Yubikey wird Ihrem System ein gewisses Maß an Sicherheit verliehen - jemand muss sowohl die Challenge-Passphrase als auch Ihren Yubikey kennen, um Ihre Festplatte entsperren zu können (oder Ihre ursprüngliche Passphrase finden, die Sie jetzt als Backup verwenden). . Es ist jedoch technisch machbar, dass ein Angreifer die Festplatte entschlüsselt, wenn er Ihre Challenge-Passphrase kennt (z. B. indem er beim Eintippen auf der Schulter surft) und nur für kurze Zeit auf Ihren Yubikey zugreifen kann. Mithilfe der Challenge-Passphrase können sie die Antwort vom Yubikey abrufen und speichern und sie dann verwenden, um die Festplatte jederzeit ohne den Yubikey zu entschlüsseln. Wenn ein Angreifer oder ein Teil der Malware Ihre Passphrase kannte und Code auf einem Computer ausführen konnte, der mit Ihrem Yubikey verbunden ist, konnte er auch die Herausforderung auslösen und die Antwort speichern. Es ist daher nach wie vor äußerst wichtig, bei der Eingabe Ihrer Challenge-Passphrase wachsam zu sein und sicherzustellen, dass Sie den Yubikey immer an einem sicheren Ort aufbewahren. Sie sollten es auch immer nur an einen Computer anschließen, dem Sie vertrauen. Wenn Sie den Überblick über Ihren Yubikey verlieren und vermuten, dass jemand versucht hat, den Entschlüsselungsschlüssel zu erlernen, führen Sie die Schritte 2 und 3 erneut aus, um den geheimen Schlüssel im Yubikey zurückzusetzen und eine neue Passphrase für die Herausforderung auszuwählen. Beachten Sie, dass ein Angreifer, der es geschafft hat, eine Ihrer Passphrasen (entweder die HMAC-SHA1-Antwort vom Yubikey oder Ihre Sicherungskopie) zu lernen, eine Sicherungskopie des LUKS-Hauptschlüssels erstellen und diese dann verwenden kann, um Ihre Festplatte zu entschlüsseln, selbst wenn Sie ändern die Passphrase in der Zukunft. und um sicherzustellen, dass Sie den Yubikey immer an einem sicheren Ort haben. Sie sollten es auch immer nur an eine Maschine anschließen, der Sie vertrauen. Wenn Sie den Überblick über Ihren Yubikey verlieren und vermuten, dass jemand versucht hat, den Entschlüsselungsschlüssel zu erlernen, führen Sie die Schritte 2 und 3 erneut aus, um den geheimen Schlüssel im Yubikey zurückzusetzen und eine neue Passphrase für die Herausforderung auszuwählen. Beachten Sie, dass ein Angreifer, der es geschafft hat, eine Ihrer Passphrasen (entweder die HMAC-SHA1-Antwort vom Yubikey oder Ihre Sicherungskopie) zu lernen, eine Sicherungskopie des LUKS-Hauptschlüssels erstellen und diese dann verwenden kann, um Ihre Festplatte zu entschlüsseln, selbst wenn Sie ändern die Passphrase in der Zukunft. und um sicherzustellen, dass Sie den Yubikey immer an einem sicheren Ort haben. Sie sollten es auch immer nur an eine Maschine anschließen, der Sie vertrauen. Wenn Sie den Überblick über Ihren Yubikey verlieren und vermuten, dass jemand versucht hat, den Entschlüsselungsschlüssel zu erlernen, führen Sie die Schritte 2 und 3 erneut aus, um den geheimen Schlüssel im Yubikey zurückzusetzen und eine neue Passphrase für die Herausforderung auszuwählen. Beachten Sie, dass ein Angreifer, der es geschafft hat, eine Ihrer Passphrasen (entweder die HMAC-SHA1-Antwort vom Yubikey oder Ihre Sicherungskopie) zu lernen, eine Sicherungskopie des LUKS-Hauptschlüssels erstellen und diese dann verwenden kann, um Ihre Festplatte zu entschlüsseln, selbst wenn Sie ändern die Passphrase in der Zukunft. Führen Sie die Schritte 2 und 3 erneut aus, um den geheimen Schlüssel im Yubikey zurückzusetzen und eine neue Passphrase für die Herausforderung auszuwählen. Beachten Sie, dass ein Angreifer, der es geschafft hat, eine Ihrer Passphrasen (entweder die HMAC-SHA1-Antwort vom Yubikey oder Ihre Sicherungskopie) zu lernen, eine Sicherungskopie des LUKS-Hauptschlüssels erstellen und diese dann verwenden kann, um Ihre Festplatte zu entschlüsseln, selbst wenn Sie ändern die Passphrase in der Zukunft. Führen Sie die Schritte 2 und 3 erneut aus, um den geheimen Schlüssel im Yubikey zurückzusetzen und eine neue Passphrase für die Herausforderung auszuwählen. Beachten Sie, dass ein Angreifer, der es geschafft hat, eine Ihrer Passphrasen (entweder die HMAC-SHA1-Antwort vom Yubikey oder Ihre Sicherungskopie) zu lernen, eine Sicherungskopie des LUKS-Hauptschlüssels erstellen und diese dann verwenden kann, um Ihre Festplatte zu entschlüsseln, selbst wenn Sie ändern die Passphrase in der Zukunft.Die Manpage für cryptsetup erklärt dies im Abschnitt luksHeaderBackup . Wenn Sie den Verdacht haben, dass dies geschehen ist, müssen Sie ein völlig neues LUKS-Volume erstellen, um Ihre Daten zu schützen.
Update für Ubuntu 19.04:
Es sieht so aus, als ob Ubuntu 19.04 (und vielleicht 18.10, ich habe dieses Release nicht ausprobiert)
cryptsetup
gerade genug geändert hat, um die Funktionsweise zu ändernyubikey-luks
. Dies verpflichten von der Upstream - Repository scheint eine Lösung zu implementieren, aber die Original - Repository scheint nicht seit 2018. Oktober aktualisiert worden sein ich diese Gabel des Repo gefunden , die das Update hat, sowie ein paar anderen Bits von tidying- und schaffte es, ein Paket zu erstellen, das am 19.04.Da ich kein vorhandenes Build des aktualisierten Fork gefunden habe, müssen Sie den
yubikey-luks
Quellcode abrufen und das DEB-Paket lokal erstellen und dann installieren.Befolgen Sie die Schritte in meiner vorherigen Antwort , außer dass Sie Schritt 1 durch die folgenden ersetzen:
1. Holen Sie sich die Quelle von yubikey-luks, bauen Sie das Paket auf und installieren Sie es
Installieren Sie Build-Abhängigkeiten mit:
Laden Sie dann das Quellarchiv herunter und extrahieren Sie es:
Bauen Sie das Paket mit:
Dann installiere es:
Folgen Sie dann den weiteren Schritten in meiner ersten Antwort.
Hoffentlich kann bis 19.10 die Version von
yubikey-luks
im Ubuntu-Hauptarchiv aktualisiert werden, so dass kein manuelles Erstellen erforderlich ist.Als Bonus hat die neuere Version eine Konfigurationsdatei, die unter zu finden ist
/etc/ykluks.cfg
. Die beim Booten angezeigte Meldung kann in dieser Datei konfiguriert werden.quelle