Platform

Platform overview How it works Authorization testing Evidence & reports Private scanning Integrations

Solutions

Security agencies Product teams Regulated industries Partner programme

Learn

Blog Knowledge hub Compare

Resources

Pricing Documentation Help centre FAQ Security & data What we haven’t proved

Company

About Contact Careers Sign in to the platform Start a $199 pilot →

Home / Knowledge hub / WebAuthn

Knowledge hub

WebAuthn

The browser standard behind passkeys and hardware security keys.

Illustration explaining WebAuthn

What it means

WebAuthn, short for Web Authentication, is a W3C standard that lets a website ask the browser to create and use a cryptographic key pair. The browser talks to an authenticator, such as a phone, a laptop chip or a hardware security key, and returns a signed result.

Your server never sees the private key. It stores a public key at registration, then sends a random challenge at each sign-in and checks that the signature on it is valid and made for your website address. That pairing of challenge and domain is what makes a captured response useless anywhere else.

Why it matters

Because the credential is tied to your site's domain, a lookalike page cannot collect a response that works on the real one. That is why it resists phishing in a way that one-time codes and passwords do not. A copied sign-in message is worth nothing on another site.

The standard does the cryptography well, but it is up to your server to do its half. A server that skips the challenge check, the origin check or the signature check turns a strong design into a login that anyone can satisfy with a forged response.

How it shows up

You meet it as two browser calls, navigator.credentials.create() to register and navigator.credentials.get() to sign in, plus server code that handles the results. It only works in a secure context, meaning over HTTPS. It underpins passkeys and security keys used as a second factor.

Check that each challenge is random, single use and tied to the session that asked for it. Check that the server verifies the origin and the relying party identifier, and that the credential belongs to the account being signed in. A library handles most of this, and the usual mistake is stopping halfway through its checks.

Questions people ask

WebAuthn, answered

Is WebAuthn the same as FIDO2?

They are two halves of one thing. WebAuthn is the W3C web interface, and CTAP is the FIDO Alliance protocol for talking to external authenticators. Together they are often called FIDO2.

Do we need a hardware key to use WebAuthn?

No. A phone or a laptop with a fingerprint reader or a PIN can act as the authenticator. Hardware keys are one option, useful for administrators and high-risk accounts.

What does the server need to verify?

The challenge matches the one it issued, the origin is your site, the relying party identifier is correct and the signature is valid against the stored public key. Skipping any one weakens the whole flow.

Can WebAuthn be used as a second factor only?

Yes. It can sit behind a password as a second step, or replace the password entirely. The second approach is what passkeys are about. It simply needs one of the two steps to be done with a key on the device.

What are the common implementation bugs?

Reusable challenges, no origin check, credentials not tied to an account, and weak recovery routes. They are logic mistakes, which makes them easy for a scanner to miss.

Cyberlop mark

Does your server verify every step?

Sign-in logic is tested on the running app, including replayed challenges and mismatched accounts, and each finding carries the request and response. In white-box mode it can point to the line. Book a pilot on one app.

Or start with a $199 pilot on one application: thirty days, success criteria agreed before day one, credited against the annual if you convert.