Eigene Passkeys (ohne US-Cloud) | c't 3003

Passkeys sind sicherer als Passwörter, aber Apple und Google sperren sie ins eigene Ökosystem. c't 3003 zeigt, wie man sie selbst hostet.

vorlesen Druckansicht 8 Kommentare lesen

Empfohlener redaktioneller Inhalt

Mit Ihrer Zustimmung wird hier ein externes YouTube-Video (Google Ireland Limited) geladen.

Ich bin damit einverstanden, dass mir externe Inhalte angezeigt werden. Damit können personenbezogene Daten an Drittplattformen (Google Ireland Limited) übermittelt werden. Mehr dazu in unserer Datenschutzerklärung.

Lesezeit: 13 Min.
Inhaltsverzeichnis

Passkeys versprechen mehr Sicherheit als Passwörter: Der private Schlüssel bleibt auf dem Gerät, Phishing läuft ins Leere. Doch Apple, Google und Microsoft binden die Passkeys ans eigene Ökosystem – wer einen iPhone-Passkey hat, steht am Windows-Rechner dumm da. c't 3003 zeigt zwei Open-Source-Alternativen: Mit Vaultwarden lassen sich Passkeys auf dem eigenen Homeserver hosten, mit KeePassXC sogar komplett offline in einer Datei sichern.

(Hinweis: Dieses Transkript ist für Menschen gedacht, die das Video oben nicht schauen können oder wollen. Der Text gibt nicht alle Informationen der Bildspur wieder.)

Guck mal hier, meine Passkeys chillen jetzt nicht mehr auf den groĂźen Hersteller-Clouds, sondern die liegen total entspannt auf meinem eigenen Homeserver und als Backup noch in dieser KeePass-Datei. Alles Open-Source, alles lokal und vor allem alles super sicher.

In unserem letzten Video zu Passkeys haben wir das Problem ja schon angesprochen. Viele Anbieter wie Apple und Google bieten zwar einen einfachen Sync eurer Passkeys an, allerdings nur auf ihrer eigenen Plattform. Klar, wir haben da auch schon so ein paar Lösungen gezeigt, aber in diesem Video gehen wir noch einen Schritt weiter. Wir zeigen hier, wie man Passkeys wirklich lokal speichert, also ohne große Cloud, und in diesem Video beschäftigen wir uns auch mit der Möglichkeit, wie ihr die auf dem eigenen Homeserver hosten könnt.

Ihr habt ja immer gefragt, was passiert eigentlich, wenn ich meinen Passkey verloren habe? Und ja, da ihr mehrere Passkeys für einen Account erstellen könnt, könnt ihr eben auch easy eine Datei anlegen, in der einfach Backups von allen wichtigen Zugängen drin sind. Wie das genau geht, bleibt dran.

Liebe Hackerinnen... Achso, ja, ja, ja, ne, ist jetzt ein Video mal ohne... äh... Ja, ja, ne, wir können auch Videos ohne KI. Ja, und Linux kommt auch nicht vor in diesem Video. Andere Themen haben wir auch. Ja, ja. Herzlich Willkommen hier bei...

Ja, ein Hinweis noch aus dem heise-Universum: Mein lieber Kollege Jörg macht ja den YouTube-Channel Phasenlage, wo es um die Energiewende geht. Da könnt ihr Videos sehen zu Themen wie Balkonsolar.

Ganz kurz zur Erinnerung, damit wir alle auf dem gleichen Stand sind: Was sind Passkeys überhaupt? Wir haben darüber ja schon mehrere Videos gemacht, die verlinken wir euch natürlich in der Beschreibung. Passkeys ersetzen Passwörter. Und was ihr euch auf jeden Fall merken könnt: Passkeys sind vom Sicherheitsstandpunkt her definitiv besser als Passwörter. Warum? Weil euer privater Schlüssel immer auf eurem Gerät bleibt. Nur der öffentliche geht an den Dienst, bei dem ihr euch anmelden wollt. Das heißt also, auch wenn der Dienst gehackt wird, braucht ihr euch keine Gedanken zu machen, dass eure Accounts gekapert werden.

Und noch ganz wichtig: Passkeys sind prinzipbedingt gegen Phishing geschützt. Also die funktionieren nur auf der Website, auf der ihr euch anmelden wollt. Also auf youtube.com und eben nicht auf youtubee.com oder so. Und ganz klar ein Riesenvorteil: Ihr müsst euch keine Passwörter mehr merken. Ihr könnt euch einfach mit Fingerabdruck oder Gesichtserkennung anmelden. Also eigentlich alles ganz einfach. Das ist ganz nice.

Aber es gibt halt auch Probleme. Die großen Tech-Konzerne nutzen Passkeys nämlich gerne, um euch an ihre Plattform zu binden. Ein Passkey auf dem iPhone bringt euch auf dem Windows-Rechner herzlich wenig, außer ihr scannt halt ständig QR-Codes. Und genau deshalb gucken wir uns heute an, wie wir das selbst in die Hand nehmen können. Beide Möglichkeiten bieten natürlich nicht nur Passkey-Unterstützung, sondern auch ganz klassisch Passwörter an.

Ihr hostet auf eurem Homeserver Vaultwarden. Das ist eine Open-Source-Lösung, die eure Passwörter und eben auch Passkeys abspeichert und mit den ganz normalen Bitwarden-Apps funktioniert. Und die gibt es ja für die meisten Browser und auf Android und iOS.

Vaultwarden könnt ihr einfach als Docker-Container auf eurem Homeserver installieren. Hier als Beispiel habe ich das in CasaOS gemacht. Da kriegt ihr das direkt aus dem CasaOS-App-Store. Einfach installieren klicken. Aber auch bei anderen Homeserver-Systemen könnt ihr das einfach als Docker-Container installieren.

Aber Achtung! Hier kommt direkt Hürde Nummer 1: SSL-Zertifikate. Wichtig für Vaultwarden: Ihr müsst zwingend ein SSL-Zertifikat hinterlegen, sonst funktioniert das mit den Passkeys nicht. Der Browser sagt sonst einfach „Nö". Denn die Browser hantieren wirklich nur mit Passkeys rum, wenn ihr in einem sogenannten Secure Context seid. Und das ist eben HTTPS. Und dafür braucht man ein SSL-Zertifikat.

Um das zu kriegen, gibt es mehrere Möglichkeiten. Wir haben da ziemlich lange drüber diskutiert, was denn jetzt der beste Sweetspot zwischen „Einfach zu installieren" und „Okaye Sicherheit" ist. Und wir haben uns für Cloudflare entschieden. Das ist zwar ein kommerzieller Anbieter, der auch in den USA ist. Ist uns klar nicht die allersauberste Lösung. Aber es ist eben in diesem Fall die einfachste Lösung. Wenn ihr das nicht wollt, sage ich aber gleich auch noch was dazu. Gibt es natürlich noch tausend Alternativen.

Um Cloudflare zu nutzen, braucht ihr nur einen kostenlosen Account und könnt dann hier unter dem Punkt „Zero Trust" einen neuen Tunnel anlegen. Cloudflare erstellt euch einen Tunnel, der dann auch über Cloudflare geroutet wird. Es gibt aber auch noch ganz viele andere Möglichkeiten. Zum Beispiel Pangolin war zumindest in letzter Zeit mal sehr angesagt. Das würde hier wirklich in diesem Video zu weit gehen. Aber wenn ihr da Interesse daran habt, dann guckt euch das doch mal genauer an.

So, aber jetzt wieder zurück zu Cloudflare. Wenn ihr das damit machen wollt, kopiert ihr diesen Befehl, der mit „docker run" anfängt, in euer Terminal auf eurem Homeserver, also bei uns bei CasaOS. Oder noch entspannter: Ihr installiert euch, wenn ihr zum Beispiel CasaOS habt oder auch Unraid, die Cloudflared-Anwendung einfach auf der grafischen Benutzeroberfläche. Und dann gebt ihr da euren Token ein aus eurem Cloudflare-Account. Kurz danach läuft das als Container bei euch im Hintergrund. Und die Anzeige hier im Cloudflare-Dashboard sollte auf „Healthy", also grün, umschalten.

Unter dem Punkt „Public Hostname" wählt ihr dann eine Subdomain. In dem Fall nennen wir sie mal „vault". Wenn ihr eine Domain bei Cloudflare habt, könnt ihr die verwenden. Sonst bekommt ihr so eine lange von Cloudflare zugeteilt. Bei „URL" gebt ihr dann die lokale IP von eurer Docker-Installation ein. Und fertig.

So, dann holt ihr euch noch die Bitwarden-Browser-Erweiterung und/oder die App für Android oder iOS. Und das läuft dann alles so wie bei einem von Bitwarden gehosteten Tresor. Ihr müsst nur beim Einloggen hier auf das Zahnrad klicken oder „Selbst gehostet" auswählen und dann euren Server, also beispielsweise vault.3003-homeserver.de eingeben. Und zack, läuft das.

Und ab dann ist das wirklich identisch mit einem bei Bitwarden gehosteten Zugang. Ihr könnt einfach Passkeys hinzufügen und euch per Passkey anmelden. Und zwar über die App auf eurem Smartphone, genauso wie in Firefox, auf eurem Linux-Rechner oder in Windows. Da geht das mittlerweile sogar direkt mit Windows Hello zusammen. Aber nur, wenn ihr die App nicht aus dem Windows Store, sondern direkt von der Bitwarden-Seite runtergeladen habt.

Und wenn ihr wirklich so richtig lokal mit euren Passkeys sein wollt, also auf Wunsch sogar komplett ohne Netzwerk, dann schaut euch mal KeePassXC an. Ich sag ehrlich, das ist optisch jetzt nicht die allerschönste Oberfläche, aber dafür macht es eben auch genau das, was es soll.

Das Gute ist: Für KeePass gibt es für alle Plattformen Apps und ihr bekommt die Passkeys auch als Datei, die ihr einfach auf einem USB-Stick zum Beispiel backupen könnt. Zusätzlich könnt ihr die KeePass-Dateien natürlich auch direkt über die Cloud automatisch zwischen euren Geräten synchron halten. Das geht dann entweder über große Hersteller-Clouds wie iCloud, Google Drive oder Dropbox. Aber da kommt ihr natürlich vom Regen in die Traufe. Denn genau das wollten wir ja vermeiden, dass die Dateien bei den großen Herstellern gehostet werden. Aber ihr könnt natürlich auch euren eigenen Cloud-Dateispeicher verwenden, wie zum Beispiel Nextcloud auf eurem Homeserver.

Um Passkeys bei KeePassXC zu verwenden, braucht ihr mindestens Version 2.7.7. Wenn ihr das Ding zum ersten Mal startet, legt ihr eine neue Datenbank an, ihr wählt ein Masterpasswort. Das sollte so lang sein, dass ihr es euch gerade noch merken könnt. Schreibt es euch sicherheitshalber auf einen Zettel und packt das dann an einen sicheren Ort. Das ist ja nun wirklich euer absolutes Masterpasswort. Das wäre blöd, wenn ihr das vergesst. Am besten in einen unsprengbaren Tresor.

Dann speichert ihr die Datenbank-Datei irgendwo auf eurem Rechner. Ich habe die Dateien in einem Ordner, der sich automatisch mit meiner Nextcloud synchron hält. Dann habe ich die direkt auch auf meinen anderen Geräten.

Damit der Browser jetzt mit KeePassXC reden kann, braucht ihr noch die Erweiterung KeePassXC-Browser. In KeePassXC selbst klickt ihr oben auf das Zahnrad, dann auf „Browser-Integration" und setzt den Haken bei „Browserintegration aktivieren". Zum Schluss wählt euren Browser aus der Liste aus.

Und jetzt im Browser auf das KeePass-Icon klicken und „Verbinden". Gebt der Verbindung einen Namen. Und wichtig: Geht in der Browser-Erweiterung nochmal in die Einstellungen, scrollt runter bis „Passkeys" und setzt da unbedingt das Häkchen bei „Passkeys aktivieren". Sonst wundert ihr euch, warum nichts passiert.

Ja, probieren wir es mal aus. Ich gehe auf eine Testseite wie WebAuthn.io, trage einen Nutzernamen ein, klicke auf „Register" und seht ihr das? KeePassXC meldet sich sofort. Willst du einen Passkey erstellen? Ja, will ich. Bestätigen.

Beim Login genau das Gleiche. „Authenticate" klicken. KeePassXC fragt kurz nach. Ich bestätige und ich bin drin.

Und das Beste: Wenn ihr in KeePassXC auf „Datenbank" und „Passkeys" geht, dann habt ihr direkt so eine Übersicht. Ihr könnt Passkeys sogar exportieren. Aber Vorsicht: Wenn ihr die exportiert, liegen die privaten Schlüssel im Klartext vor. Also ist ganz cool, wie so ein Passkey aussieht. So, ne? So, so. Aber macht das wirklich nur, wenn ihr wisst, was ihr tut.

Wenn ihr die KeePass-Datei auch noch auf anderen Geräten verwenden wollt, dann könnt ihr die, wie gesagt, über die Cloud synchron halten oder ihr übertragt die manuell per Kabel oder AirDrop. Für zusätzliche Sicherheit könnt ihr auch noch eine Schlüsseldatei erzeugen. Die braucht ihr dann auch auf allen Geräten, aber kopiert die eben per Kabel und legt die nicht in die Cloud.

Ja, und dann ladet ihr euch noch die entsprechende App auf euer Smartphone oder Tablet. Mittlerweile gibt es auch Apps für Android und iOS, die die KeePass-Passkeys unterstützen. Auf iOS sind da KeePassium und Strongbox ganz gut. Auf Android wäre da KeePass DX. XC, DX. Ist ein bisschen verwirrend. Naja.

Die Apps sind relativ ähnlich aufgebaut. Ihr wählt eure Datenbank aus euren Dateien, gebt euer Passwort ein und gegebenenfalls die Schlüsseldatei. Bei iOS wählt ihr die App dann in den Einstellungen noch unter „Automatisch ausfüllen" und „Passwörter" aus. Bei Android das Gleiche unter „Passwörter, Passkeys & Konten".

Also, ich finde Passkeys nach wie vor super und verwende die, wo immer es geht. In der Praxis habe ich die schon alleine aus Testgründen auf mehreren Geräten und mehreren Accounts und es ist auch wirklich sinnvoll, da nicht nur bei einem Anbieter mit zu sein. Also bei so wichtigen Accounts, wo es weh tut, nicht mehr reinzukommen, erstelle ich einfach gleich mehrere Passkeys.

Ja, wie sieht es bei euch aus? Traut ihr euch dran an Vaultwarden oder KeePass? Oder bleibt ihr lieber bei den Komfortlösungen wie Apple und Google? Oder haltet ihr Passkeys generell für Teufelszeug und arbeitet weiterhin mit Passwörtern und zweitem Faktor? Gerne gute Argumente in die Kommentare schreiben. Wenn euch das Video geholfen hat, lasst gerne ein Abo da und drückt die Glocke, damit ihr das nächste Video nicht verpasst. Achso, Podcast haben wir auch und Newsletter. Alles in der Beschreibung. Tschüss.

c't 3003 ist der YouTube-Channel von c't. Die Videos auf c’t 3003 sind eigenständige Inhalte und unabhängig von den Artikeln im c’t Magazin. Die Redakteure Jan-Keno Janssen, Lukas Rumpler, Sahin Erengil und Pascal Schewe veröffentlichen jede Woche ein Video.

(rum)