Starting September 1, 2026, Microsoft Entra ID will start pushing users toward passkeys instead of SMS and voice codes for MFA. People who still use Microsoft’s SMS or voice verification will be prompted to set up a passkey, and Microsoft plans to stop providing those codes altogether by February 1, 2027.
The reason is pretty straightforward. SMS and voice codes are increasingly vulnerable to phishing and social-engineering attacks, particularly as those attacks become easier to automate with AI.
That makes this a pretty significant change for organizations that still depend on phone-based MFA. It’s also a good reason to look at what a passkey actually does. Most people encounter one as a fingerprint prompt on a laptop or phone, but there’s quite a bit more happening underneath.
Table of Contents
Disclaimer: This blog post is provided for informational purposes only. While every effort has been made to ensure accuracy, implementation of these features should be performed by qualified administrators in accordance with your organization’s security and change management policies. Several values and behaviors described in this post fall outside Microsoft’s documented ranges and were only confirmed through direct testing in a single tenant; they are not guaranteed to behave the same way in every environment, and Microsoft support was not consulted before publishing. The author is not responsible for any issues, data loss, or security incidents that may occur from following this guidance. Always test in a non-production environment first.
Key dates
| Date | Milestone |
|---|---|
| September 1, 2026 | Passkeys become the default authentication method in Entra ID. SMS/voice users are nudged to register one. |
| September 18, 2026 | Microsoft publishes pricing and a list of supported telecom providers for organizations that still need SMS/voice. |
| October 30, 2026 | Organizations still using SMS/voice must configure their own telecom provider through the Microsoft Security Store. |
| February 1, 2027 | Microsoft’s own SMS/voice delivery is retired. SMS/voice still works, but only through a self-configured provider. |
The problem passkeys are solving
Passwords have one structural flaw: they’re a shared secret. You know it, and the server knows it, or a hash of it. Every login sends that secret, or a proof of it, somewhere. That means it can be phished with a fake login page, leaked in a database breach, reused across sites, or intercepted.
Passkeys throw out the “shared secret” model entirely and replace it with public-key cryptography. Instead of a secret you type in, you have a mathematical key pair: a private key that never leaves your device, and a public key that you hand over freely to whatever service you’re signing up with.
The core idea: prove you have a key, without showing it
In public-key cryptography, a private key can produce a digital signature over a piece of data, and anyone holding the matching public key can verify that the signature is genuine, without ever seeing the private key itself.
A passkey login is essentially this: the server sends a random challenge, your device signs it with a private key only it has, and the server checks that signature against the public key it stored when you registered. No secret ever crosses the wire. There’s nothing to steal in transit, and nothing meaningful to steal from the server’s database either, since a leaked public key is useless to an attacker who can’t use it to sign anything.
This whole mechanism is standardized as WebAuthn (Web Authentication API), a W3C standard built on the FIDO2 framework from the FIDO Alliance. When people say “passkey,” they mean a WebAuthn credential used in a passwordless flow.
Registration: creating a passkey
When you first set up a passkey with a service (the “relying party” in WebAuthn terminology, think microsoft.com, github.com, your bank), roughly this happens:
- The browser or OS asks the relying party’s server for a registration challenge: a random, single-use value plus some metadata about the account.
- Your device’s authenticator (a secure enclave, TPM, hardware key like a YubiKey, or your phone’s biometric hardware) generates a brand-new public/private key pair, specific to that one website.
- The private key is sealed inside secure hardware, generated in a way that’s designed to never be exportable in plaintext.
- The public key, a credential ID, and an attestation statement (proof about what kind of authenticator created it) are sent back to the server and stored, tied to your account.
Crucially, this key pair is scoped to the origin (the domain) it was created for. A passkey minted for login.microsoft.com is cryptographically bound to that origin and simply will not produce a valid signature for login-micros0ft.com. This is where passkeys get their built-in phishing resistance: it’s not that users are more careful, it’s that the browser refuses to even attempt a signature against the wrong domain.
Authentication: logging in
Once a passkey is registered, signing in looks like this:
- You tell the relying party who you are, or it looks you up by the credential ID it already has for this device.
- The server sends a fresh random challenge.
- Your device asks you to unlock the authenticator, using Face ID, a fingerprint, Windows Hello, or a PIN, but this unlock step is purely local. It never touches the network. It just authorizes the device to use the private key for one operation.
- The authenticator signs the challenge, plus some context like the origin, with the private key.
- The signed response goes back to the server, which verifies it against the stored public key.
If it checks out, you’re in. Notice what never happened: no password was typed, no OTP was read off a text message, and no secret was transmitted anywhere. The biometric or PIN isn’t sent to the server either, it only ever unlocks local hardware.

Where does the private key actually live?
This is where implementations diverge, and it matters for security posture, which is exactly what Microsoft’s Entra ID rollout forces admins to decide on via a setting called passkeyType.
Device-bound passkeys are generated inside a specific piece of hardware, such as a TPM, a secure enclave, or a dedicated security key like a YubiKey, and physically cannot leave it. Lose the device, lose the passkey (you’d need a backup authenticator registered). This is the highest-assurance option, and it’s the only kind that can be attested: the authenticator can cryptographically prove “I am specifically a YubiKey 5 NFC” or “I am a genuine Windows Hello TPM,” which matters for organizations that need hardware-level guarantees.
Synced passkeys are the newer, more convenient model. The private key is generated on one device but then encrypted and synced across your other devices through a cloud provider’s keychain, such as Apple’s iCloud Keychain, Google Password Manager, or Microsoft Authenticator. The sync itself is end-to-end encrypted, so the cloud provider can’t read the raw private key. This solves the single biggest usability complaint with hardware-bound credentials, namely getting a new phone and losing all your logins, at the cost of a slightly larger trust boundary: you’re now also trusting the sync provider’s encryption implementation, and synced passkeys generally can’t produce the same hardware attestation, since the key isn’t tied to one physical chip.
Enterprises can require attestation, forcing device-bound keys and blocking synced ones, for high-privilege accounts, while allowing synced passkeys for general staff who just want painless logins across their phone and laptop. That’s precisely the granularity Microsoft added to Entra ID this year, replacing what used to be a blunt, tenant-wide on/off switch for FIDO2.

Why this stops AITM phishing specifically
The phishing technique that’s made SMS and push-based MFA obsolete is the adversary-in-the-middle (AITM) attack. An attacker stands up a proxy site that looks identical to the real login page, sitting transparently between you and the real service. You type your password into it, the proxy relays it to the real site, the real site asks for your OTP, the proxy relays that prompt to you, you type the code, and the proxy relays it onward and captures the resulting session cookie. From your perspective everything looked normal. This works against passwords, SMS codes, authenticator app codes and even push approvals, because all of those are just values a human can be tricked into typing or approving on the wrong page.
Passkeys break this specific attack at the protocol level rather than relying on the user noticing anything is wrong. When the browser negotiates a WebAuthn signature, it binds the signed challenge to the actual origin the browser is talking to. If that origin is the attacker’s proxy domain rather than the real relying party, the authenticator either won’t offer the passkey at all or will sign for the wrong origin, and the real server will reject the result. There’s no code or value for the proxy to relay in between, so there’s nothing for an AITM setup to steal in transit. This is why “phishing-resistant” has become the specific industry term for passkeys, rather than just “more secure MFA.”
This protection assumes the browser itself is trustworthy. If an attacker gets a user to install a malicious or compromised browser, that browser controls what gets reported to the authenticator as the origin, since it’s the one constructing the clientDataJSON that gets signed. It still can’t extract the private key, that stays sealed in hardware, but it can act as a live, on-device relay: request a genuine signature for the real site the moment the user logs in, then hijack the resulting session. The cryptography isn’t broken here. The trusted component just isn’t trustworthy anymore. And the attacker needs the malware installed and needs to be present during the actual login.
Passkeys neutralize AITM and credential-relay phishing. They don’t make the device invulnerable. Malware with enough privileges, a hijacked session, or physical access paired with a stolen unlock method can all still get an attacker to a live passkey. A device-bound passkey on stolen hardware is still usable. So is a synced passkey pulled from a compromised cloud account. What passkeys actually do is move the attack surface: away from tricking a user into typing a secret on a fake page, toward compromising the endpoint or the account that holds the key. Smaller target. Harder to hit. Not zero risk.
The trade-offs, briefly
Device-bound passkeys can’t be moved between devices at all, they’re sealed to the hardware they were created on. Cross-device sign-in works between an iPhone and a Windows PC, scanning a QR code on your phone over the CTAP2 hybrid-transport protocol, but that’s borrowing the phone as an authenticator for one login, not migrating the credential itself, and both devices need Bluetooth enabled. Sync ecosystems from different vendors don’t fully interoperate yet either, though the FIDO Alliance’s credential-exchange work is closing that gap: CXF is already an approved standard, and CXP is rolling out at providers like Bitwarden and Dashlane.
Synced passkeys shift the risk somewhere else rather than removing it. A passkey synced through iCloud Keychain or Google Password Manager is only as safe as the account it lives in. Compromise that account, through account-recovery social engineering rather than phishing the login itself, and every synced passkey in it is potentially exposed at once. Device-bound passkeys don’t have that concentration risk, but they come with the opposite problem: lose the device without a backup authenticator registered, and you lose access. Either way, a passkey-only setup needs a real recovery path that doesn’t quietly reintroduce a phishable fallback.
Entra ID adds a couple of its own wrinkles. During the transition window between September 2026 and February 2027, SMS and voice often stay enabled alongside passkeys, which means an AITM attack can still try to downgrade a sign-in to the weaker method unless an organization has explicitly blocked it through Conditional Access or an authentication strength policy. And on the provisioning side, Windows Hello for Business, the usual way to get a device-bound passkey onto a Windows machine, currently requires the device to be Entra Joined or Hybrid Joined. Unmanaged BYOD devices can’t use it, so organizations with a lot of those still have to lean on FIDO2 keys or the Authenticator app instead, which is more rollout and support work than a fully managed fleet would need.
Passkeys are a structural fix, not a bolt-on mitigation. That’s the real reason an entire ecosystem, not just Microsoft, is converging on them as the default.
Conclusion
Microsoft forcing this shift doesn’t make passkeys perfect, but it does make them the default most people will end up with whether they dig into the mechanics or not. Understanding what’s actually happening under the hood, the key pair, the origin binding, the difference between device-bound and synced, makes it easier to configure Entra ID sensibly instead of just accepting whatever passkeyType default gets rolled out to your tenant.
The AITM resistance is real and it’s the main reason this migration is happening now. The trade-offs are real too: portability is still clunky, recovery needs a proper plan, and Entra ID’s own rollout has a few rough edges during the transition. None of that changes the direction of travel. September 1, 2026 is coming either way, worth setting up passkeys properly before Microsoft nudges your users into it for you.










