Was sind passkeys?
Passkeys basieren auf dem Prinzip der asymetrischen Verschlüsselung, d.h. es gibt 1 öffentlichen Schlüssel und 1 privaten Schlüssel.
Der öffentliche Schlüssel (public key) kann nur verschlüsseln, nicht entschlüsseln. Der private Schlüssel (private key) kann beides. Nur er kann die Verschlüsselung des public keys wieder entschlüsseln.
Passkeys werden auf dem Geräte (Mac, iPhone, PC) angelegt. Der private key bleibt auf dem Gerät. Er ist in der Passwörter-App gespeichert, die wiederum alles verschlüsselt ablegt.
Der private key verlässt nie das Gerät. Natürlich nur dann, wenn man nicht selbst den private key exporteirt, weil man meint man müsse den irgendwohin anders geben. Man kann das machen, sollte das dann aber verschlüsselt transferieren. Der Sync der Passwörter-App zwischen verschiedenen Apple-Geräten ist verschlüsselt, also sicher.
Diese Funktionsweise gibt es im Grudn schon sehr lange. Auf diese Art funktionieren auch passwortlose ssh logins mit einem ssh-key.
Wie funktioniert das mit der Anmeldung am Dienst?
Wenn man sich bei einem online-Dienst / Webseite anmelden will, wo man einen passkey hat, sendet der Dienst / Webseite eine mit dem private key verschlüsselte "Anfrage" an das Gerät. Diese Anfrage enthält auch die domain des Dienstes / webseite. Mit dabei liefert der Server selbst seinen public key mit.
Das Gerät entschlüsselt die Anfrage "beantwortet" sie und sendet sie verschlüsselt zurück, verschlüsselt mit dem public key des Dienstes / Webseite. Der Dienst / Webseite kann dies daher entschlüsseln und kann an der "Antwort" erkennen, ob du tatsächlich derjenige bist, der berechtigt ist, den account zu betreten.
Warum sind passkeys phishing-resistent?
Da bei diesem Verfahren (Challenge - Rsponse) auch die Domain mit enthalten ist, kann ein Angreifer, der einen Phishing-Webseite aufabaut, selbst dann, wenn er den public key irgendwie erlangen konnte, damit nichts anfangen, da er ja auch die korrekte Domain zu dem Account benötigen würde. Insofern sind passkey phishing resistent.
Muss man einen passkey auf Windows oder Linux syncen?
Passkey kann man zwischen Geräten syncen lassen, wenn dies verschlüsselt geschieht. Passwörter-App macht das via iCloud.
Aber man muss das nicht tun, denn man auch auf einem Account einen weiteren passkey erzeugen lassen, Also bspw auf einem Windows-PC oder einem Linux-System. Dem Account ist das egal.
Aus diesem Grund benörigt man auch keinen plattfrmübergreifenden Passkey-Manager. Man erstellt einfach auf macOS/iOS und Windows und Linux eigene passkeys.
Was ist mit dem bisherigen Passwort?
Ob ein Account es nun ermöglicht, dass man nach Einrichten eines passkeys auch das Passwort deaktivert, hängt vom Dienst / Webseite ab. Da viele User technisch nicht so versiert sind und vielleicht kein backup haben und dann bei einem crash auch ihren passkey verlieren, bieten manche Dienste / Webseiten eben noch parallel Passwörter an (leider). Amazon ist da das wohl bekannteste Beispiel. Die wollen halt keine Kunden verlieren.
In so einem Fall bietet es sich an, das Passwort möglichst lang, so mit 32 Zeichen und mehr (soviel wie halt geht) anzulegen und gleichzeitg 2FA zu aktivieren.
Wenn man dann selbst zum Einloggen nur passkeys verwendet bleibt man weiterhin phishing resitent. Und Ein Angreifer, der irgendwie an den Account kommt und ein 32 oder 64 Zeichen langes Passwort knackt muss, kommt nicht an den 2. Faktor heran, da man ja selbst nur passkeys, also phishing resisten, unterwegs ist und der 2.Faktor ja so nicht abegriffen werden kann.