How Passkeys Replace Passwords in the Safari Browser
This article provides a complete overview of how passkeys eliminate the need for traditional passwords when signing into websites on the Safari browser. By leveraging the FIDO2 and WebAuthn standards, Safari replaces vulnerable text-based credentials with cryptographic key pairs authenticated through Apple's biometric systems, such as Face ID and Touch ID. Below, we explore the underlying technology of these open standards, the step-by-step login process within Safari, how Apple syncs these credentials, and why this shift makes online accounts significantly more secure.
The Core Standards: FIDO2 and WebAuthn
Passkeys are built on open industry standards created by the FIDO (Fast Identity Online) Alliance and the World Wide Web Consortium (W3C).
- FIDO2 is the overarching framework that enables passwordless authentication using local device capabilities.
- WebAuthn (Web Authentication) is the specific browser API within the FIDO2 framework. It allows websites to communicate directly with the Safari browser to generate, manage, and verify credentials without ever needing a password.
Cryptographic Keys Instead of Shared Secrets
Traditional passwords rely on a "shared secret" model, where both you and the website must know the same string of characters. Passkeys replace this shared secret with public-key cryptography.
When you register a new account in Safari using a passkey, your device generates two mathematically linked keys:
- The Public Key: Safari sends this key to the website's server to be stored. It is not a secret. Even if a hacker steals a website's database of public keys, they cannot use them to access accounts.
- The Private Key: This is the secret key that actually logs you in. It remains securely stored on your Apple device and is never shared with the website or transmitted over the internet.
How the Safari Sign-In Process Works
When you return to a website in Safari to sign in, the traditional password field is bypassed entirely. Instead, the WebAuthn API triggers a four-step process that happens in seconds:
- The Challenge: You select your username, and the website sends a unique, random string of data (a "challenge") to Safari.
- Biometric Verification: Safari prompts you to authenticate using Face ID or Touch ID. Your biometric data is never sent to the website; it simply unlocks access to the private key stored on your device.
- Signing the Challenge: Once Face ID or Touch ID confirms your identity, your device uses the private key to mathematically "sign" the website's challenge and sends the signed data back through Safari.
- Verification: The website uses your stored public key to verify the signature. Because only your specific private key could have created that exact signature, the website knows it is you and logs you in.
Synchronization via iCloud Keychain
In Safari, passkeys are stored and managed by the iCloud Keychain. If you only stored a private key on a single device, losing that device would lock you out of your accounts. Apple solves this by syncing passkeys across all your devices using end-to-end encryption.
If you create a passkey in Safari on your iPhone, it is automatically available in Safari on your Mac and iPad. Apple itself cannot read these keys. Furthermore, if you need to sign into a website on a non-Apple device, the FIDO2 standard allows you to use your iPhone to scan a QR code on the other computer's screen. This establishes a secure, temporary Bluetooth connection to verify your proximity and complete the login remotely.
Built-In Phishing Resistance
Passkeys in Safari completely neutralize phishing attacks. A human can easily be fooled into typing a password into a fake website that looks identical to a real one.
Because of the WebAuthn standard, passkeys are intrinsically bound to the specific domain name of the website where they were created. If you accidentally visit a fraudulent website, Safari immediately recognizes that the website's domain does not match the registered passkey. Safari will simply refuse to present the passkey option, making it impossible for you to accidentally give your credentials to an attacker.