Passkeys - Funktionsweise und Sicherheitsaspekte

Hallo Community,

folgende Frage zum Thema Passkeys bei der Benutzung am PC.
Die sollen ja nach Möglichkeit Passwörter ablösen.

Folgendes verstehe ich dabei nicht …

a) Passkeys werden lokal irgendwo auf Betriebssystem-Ebene gespeichert. Wenn ich das OS neu aufsetze – dann sind die Dinger weg.
Wie generiert man dann einen neuen?

Bei einer Passwort-Anmeldung lasse ich mir einfach ein neues generieren.
Gleiches dann auch beim Passkey?

Ich klicke auf „Passkey verloren“ und es wird ein neuer erstellt?
Woher weiß dann aber die Seite, dass ich der bin, der ich bin?

b) Wie wird so ein Passkey überhaupt generiert, wenn ich mich nicht vorher einlogge?
Ich registriere mich irgendwo und dann wird einer erstellt?

c) Was ist mit Leuten, die sich ständig von anderen Geräten aus auf ihre Mail-Konten oder was auch immer, einloggen?
Wie können die ohne Passkey nachweisen, dass sie sind, wer sie sind? (Abgesehen von Passkeys auf Sticks oder dergleichen)

1 „Gefällt mir“

Hast du dir schon hierzu die Support Dokumente von Apple durchgelesen? Zum Beispiel:

Informationen zur Sicherheit von Passkeys

Anmeldung mit Passkeys auf dem iPhone

Dort steht u.a.:

Dein iPhone speichert den Passkey im iCloud-Schlüsselbund. Dadurch ist er auf anderen Geräten verfügbar, auf denen du mit deiner Apple-ID angemeldet bist.

D.h. die Keys sind nicht weg, wenn du dein Handy neu aufsetzt (das war ja eine deiner Fragen).

D.h., die Keys liegen in der Cloud, und das ist auch ein Kritikpunkt an dem ganzen Konzept, denn nicht jedeR möchte nicht, dass seine Keys in der Cloud liegen.

1 „Gefällt mir“

Sorry, dann war ich weiter oben nicht hinreichend genau.
Ich spreche vom PC, nicht vom Smartphone.

Habe das oben nochmal korrigiert.

Bei Microsoft/Google/Apple sind entsprechende Kontos notwendig bei dem das Ganze in der cloud gespeichert wird. Wenn du das nicht möchtest gibt es (zunehmend) Alternativen wie passwortmanager mit passkey Unterstützung - da musst du dann selber für Backups sorgen.

Du wirst dich mit dem passkey einloggen müssen - also entweder per Smartphone den QR code scannen und einloggen oder einen unterstützen passwortmanager verwenden.

1 „Gefällt mir“

Weil man zum Beispiel damit die Kontrolle über seine Logins verliert bzw. es (Paranoia on) Geheimdiensten oder sonstigen staatlichen Behörden oder auch den bösen Hackern zu einfach macht auf alle Accounts zuzugreifen?

1 „Gefällt mir“

Apple:

Passkeys werden mit dem iCloud-Schlüsselbund auf allen Geräten eines Benutzers synchronisiert.

Der iCloud-Schlüsselbund ist Ende-zu-Ende mit starken kryptografischen Schlüsseln verschlüsselt, die Apple nicht bekannt sind. Die Schlüssel unterliegen außerdem einem Rate-Limiting, damit Brute-Force-Angriffe auch aus privilegierten Positionen im Cloud-Backend verhindert werden, und können wiederhergestellt werden, selbst wenn der Benutzer alle seine Geräte verliert.

Wie beschrieben … Smartphones sind nicht so ganz Teil meiner Frage, mir geht es wirklich um den PC als Arbeitsgerät.

Nochmal eine Frage zur Kontoerstellung: Wird dann BEI der Kontoerstellung der Schlüssel erzeugt?
Wie weiß dann aber das Benutzerkonto, wenn ich mich das nächste Mal von einem fremdem Gerät einlogge, dass ich ich bin?
Wenn doch der Passkey in der Cloud und nicht lokal gespeichert ist.

(Sorry für die doofe Frage … aber da hab ich gerade eine Verständnislücke …)

Strenggenommen sind es mehrere Schlüssel da asynchrone Kryptografie, aber prinzipiell ist das so ja.

Der passkey identifiziert auch deinen account, der passkey ersetzt damit sowohl die eingabe des accountnamen/email/whatever als auch eines passworts.

Von einem unbekannten Gerät auch?

Da muss doch erst überprüft werden, ob ich auch ich bin o.O

1 „Gefällt mir“

Deswegen gibts ja noch mit der biometrischen Abfrage/PIN einen 2 Faktor.

Gibt es hierzu Neuigkeiten? Mittlerweile bieten mir viele Webseiten Passkeys in Bitwarden an.

Bin mir nicht sicher ob sich ein Sicherheitsgewinn daraus ergibt.

Ich habe kürzlich einen Blogartikel dazu geschrieben, welcher diese Fragen (wenn auch nicht alle) klären soll. Im Prinzip ist der Artikel eher ein Memo für mich, aber wenn du damit klar kommst (oder auch nicht) würde mich ein kurzes Feedback freuen:

https://kb.prontosystems.de/knowledge-base/passkey-authentication/
https://kb.prontosystems.de/knowledge-base/passkey-fuer-wordpress-und-keepassxc/

HTH CD

Hallo,
vielen Dank für diesen Beitrag.
So wie sich das liest, ist es aber eine sehr einseitige Versicherung bzw. ist es eine Identifizierung, oder findet auch eine Signatur Überprüfung der Relying Party statt?
Kann die Relying Party nicht auch ein dritter unbekannter Beteiligter sein, so das meine Anfragen an diesen ohne mein Wissen weitergeleitet werden? Als Dienstleistung so zu sagen?
Denn es heißt ja " Der Identity Provider (IdP) ist eine externe oder interne Entität", es muss also nicht der Server sein an den ich ursprünglich meine Anfrage sende.

Für mich klingt das nach der Abschaffung des freien anonymen Internets, weil so was wie das Metadata Repository Dir vorschreiben kann, was für Geräte und Software Du einzusetzen hast und zentrale Datenbanken der Relying Partys, sich wunderbar für die Identifizierung und Analysen sämtlicher Art hervorragend eignen.

Oder sehe ich das falsch?

Die Authentizität des Servers wird durch Origin Binding sichergestellt. Origin ist eine Metainformation, die während des Registrierungs- und Anmeldeprozesses verwendet wird. Sie besteht aus dem Scheme (z.B. https), der Domain (z.B. www.server.de) und dem Port (z.B. 443). Als zusätzliche Identifikationsschicht kann das TLS-Zertifikat des Servers verwendet werden. Die Authentizität des Servers sollte also auf mehreren Ebenen überprüfbar sein.

Bei einem externen Identity Provider (IdP) wie Google oder Microsoft fungiert der Dienst, bei dem man sich anmeldet, als Vermittler, der die Anfrage an den IdP weiterleitet und dann selbst mit dem Client kommuniziert. Der externe IdP sieht nur die Benutzer-ID und authentifikator-spezifische Geräteinformationen. Der Benutzer selbst bekommt das aber nicht zwingend mit, wie es einigen SSO-Szenarien mit der Dienstleistung wie z.B. Anmelden mit Google oder Amazon Konto der Fall ist. Vielleicht lässt sich das durch eine Analyse der Metadaten feststellen aber im Frontend der Anmeldung ist nicht ersichtlich, dass ein externer IdP verwendet wird. Vielleicht als freiwilliger Hinweis, aber technisch ist es nicht erforderlich.

Man muss aber betonen, dass unabhängig von der Art des verwendeten IdP die wichtige Information, nämlich der private Schlüssel, das Gerät des Benutzers nicht verlässt. Verglichen mit einem klassischen Passwort, das bei jedem Authentifizierungsvorgang über das Netzwerk zum Abgleich übertragen wird. Obwohl verschlüsselt und gehasht, verlässt das Kronjuwel die sichere Burg. Das ist bei Passkey nicht der Fall, hier bleibt der private Schlüssel auf dem Rechner des Benutzers und es wird nur eine signierte Nachricht versendet. Das macht die Passkey-Anmeldung einzigartig und damit sicher. Um den digitalen Fußabdruck so klein und unauffällig wie möglich zu halten, wurde das Konzept nicht vorrangig entwickelt.

Insgesamt fand ich deinen Einwand aber spannend und musste mich vor allem mit der ersten Geschichte, dem Origin, noch tiefer in die Dokumentation einlesen. Ein interessanter Einwand.

2 „Gefällt mir“

Ist diese Identifikation, den vorgeschrieben, oder ist das nur eine kann Option?Sobald dieser Host nicht mehr vorhanden ist, hat man keine Möglichkeit mehr sich als Nutzer zu verifizieren, bei Domain Umzug oder erneuerten Zertifikat z.B.

Ich habe mich zuvor ein wenig mit dem System der Gematik befasst und konnte ein paar Gemeinsamkeiten mit dem FIDO2 sehen, aber der entscheidende Unterschied ist, dass die erstellten Schlüssel zur Identifizierung nicht bei mir liegen, sondern beim IdP der Versicherung und hierfür eine eindeutige Identifizierung vorgeschrieben wird. Das alles läuft Parallel zu ePA.

Ich liefere bei der Registrierung mein Gerät (Token) was beim Provider mit der Identität (eID) verknüpft ist und kann einzelne Willenserklärungen durch Eingabe des PINs in den Authentifikator (App der Versicherung) sicher übermitteln, diese Identifizierung muss Regelmäßig wiederholt werden.

Es gibt auch nicht nur einen IdP Instanz, sondern für jeder Gruppe in der Struktur der Telematik einen eigenen, plus eine Master Instanz der Gematik. Innerhalb der Telematik müssen sich die Gruppen IdP alle bei der Master Instanz registrieren, so das innerhalb des System die Verifizierung gesichert ist.
Externe Nutzer (ich) können so über den IdP der Versicherung die Leistungen der Telematik in Anspruch nehmen und diese Gruppen werden mir durch die gegenseitige Überprüfung als Berechtigte auch vorgestellt.

Das geht sogar nur mit einer Online Identität und später ist sogar geplant mit gesenkten Sicherheitsniveau die eKG durch die Online Identität zu ersetzen. Statt Gesundheits-ID plus selbst gewählter PIN soll eine biometrische Authentifizierung ausreichen. Wäre Benutzerfreundlicher und findet mehr Akzeptanz.

Warum soll diese Zusammensetzung nicht auch sicher sein?

Origin Binding ist ein zentrales Sicherheitsmerkmal von WebAuthn und nicht nur eine Kann-Option, sondern eine zwingende Anforderung für die Sicherheit und Integrität des Authentifizierungsprozesses. Vergleiche Kapitel 13.4.9. Validating the origin of a credential in:

https://w3c.github.io/webauthn/#sctn-validating-origin

Mit dem Telematiksystem der Gematik habe ich mich überhaupt nicht beschäftigt. Auch die Frage, ob und warum dieses System nicht sicher sein soll, kann ich nicht beantworten. Beim Überfliegen der Beschreibung ist mir nur aufgefallen, dass offenbar nur bekannte Akteure beteiligt sind, die von einer zentralen (Master) Instanz verwaltet werden. Auch die angestrebten Schutzziele scheinen sich zu unterscheiden. FIDO2 schützt primär den Benutzer und seine Identität bei der Authentifizierung, indem es sich auf die Sicherheit des Anmeldeprozesses konzentriert. Bei Gematik hingegen scheint der primäre Schutzfokus auf den sensiblen Gesundheitsdaten und der Sicherheit der gesamten Telematikinfrastruktur zu liegen, um die Integrität und Vertraulichkeit der medizinischen Daten und Prozesse zu gewährleisten. Details hierzu sind mir jedoch nicht bekannt und eine Bewertung wäre nicht seriös.

ich habe es hier mal ein wenig beschrieben.

Anscheinend sollen hier in erster Linie die Daten geschützt werden und jeder Akteur muss bekannt sein (sichere Identifizierung) und jeder Zugriff wird protokolliert.

Die Telematik bzw. die IdP nutzen OpenID connect oder/und Open Authorization 2.0 um die Nutzer sicher zu identifizieren, mit registrierten Geräten die mit einer eindeutigen Kennung (eGK o. eID) und dem Wissen (PIN) als Voraussetzung.

Zusätzlich volle Transparenz wer worauf zugreift und einem Berechtigungsmanagement, wo Freigaben/Sperren beim speichern der Daten ersichtlich bleiben.

Ja, man merkt, dass du dich intensiv mit dem Thema auseinandergesetzt hast. Tiefer als ich es bei FIDO/Passkey getan habe. Woher kommst du mit der Telematik-Expertise? Was machst du beruflich, wenn ich so direkt fragen darf?

In erster Linie bin ich gesetzlich Krankenversichert und es besteht ein persönliches Interesse.
Telematik Expertise erlangt man durch die frei zugänglichen Informationen. Wenn man dem System genug vorwerfen kann, aber Nontransparent gehört definitiv nicht dazu. Das sind meine Erfahrungen bis jetzt.

Ja, so geht es mir auch. Zumindest wenn es um die Grundlagen geht. Man muss Passkey nicht unbedingt verstehen, um es zu benutzen, aber es interessiert mich. Und mein Job hat sich im letzten Jahr sehr in Richtung Organisation und Projektmanagement entwickelt, so dass ich mich privat um die spannenden Themen kümmern musste. Daher blieben nur die Grundlagen übrig. Das ändert sich jetzt wieder, nächste Woche fange ich wieder mit einem operativen IT-Job an. Dann wird es wieder spezifischer. Ich mag Leute, die sich freiwillig in solche Themen reinhängen.