Under attack? Get incident response help

info@angelforce.eu
Identity and access

Passwords and passkeys - what NIST SP 800-63B-4 recommends

NIST's current password rules explained - 15-character minimums, no forced rotation, breached-password checks - plus MFA strength and where passkeys fit.

Also in:TürkçeDeutschFrançaisEspañolItalianoPolskiNederlandsEesti

Illustration: Passwords and passkeys - what NIST SP 800-63B-4 recommends

Your password policy may still demand a capital letter, a symbol and a change every 90 days. The US National Institute of Standards and Technology (NIST) has moved away from all three. Its current guidance, SP 800-63B-4, was finalised in 2025 and replaces the 2020 edition of SP 800-63B.

NIST writes these guidelines for US federal systems, but they are a useful reference for any organisation. Here is what they say and how to apply them.

The password rules in SP 800-63B-4

Section 3.1.1.2 sets the requirements for systems that check passwords. NIST uses SHALL for requirements and SHOULD for recommendations.

TopicWhat NIST says
Minimum length, password aloneSHALL be at least 15 characters
Minimum length, password as part of MFASHALL be at least 8 characters
Maximum lengthSHOULD allow at least 64 characters
CharactersSHOULD accept all printing ASCII characters, spaces and Unicode
Composition rulesSHALL NOT impose them, for example "one upper case, one digit, one symbol"
Periodic changesSHALL NOT require them
Known compromiseSHALL force a change when there is evidence the password is compromised
BlocklistSHALL check new passwords against known common, expected or compromised values
Hints and security questionsSHALL NOT store hints or prompt for knowledge-based questions
Password managersSHALL allow them and autofill; SHOULD allow paste
Failed attemptsSHALL rate-limit them
TruncationSHALL check the entire password as entered

Why the old rules are gone

Composition rules and forced rotation feel strict, but they push people towards predictable patterns. A user forced to change Autumn2026! may well choose Winter2026!, and an attacker who has the old password can guess the new one.

NIST relies on length and a blocklist instead. A long passphrase is easier to remember than a short random string. Rotation only helps once a password has leaked, so NIST ties changes to evidence of compromise rather than the calendar.

The blocklist replaces composition rules as the real filter. It rejects the passwords attackers try first: common choices, words tied to your organisation and passwords already seen in breaches.

Checking against breached passwords

The Have I Been Pwned "Pwned Passwords" service lets you check a password against breach data without sending the password. Your system hashes the password with SHA-1 and sends only the first five characters of the hash. The service returns every hash suffix that starts with those five characters, with a count, and you compare locally.

# SHA-1 of "password" is 5BAA61E4C9B93F3F0682250B6CF8331B7EE68FD8
curl -s -H "Add-Padding: true" https://api.pwnedpasswords.com/range/5BAA6

This approach, called k-anonymity, means the service never learns which password you checked. A typical response holds several hundred suffixes, and the Add-Padding header hides the real response size from anyone watching the traffic. No API key is needed for the password range search.

Build this check into password set and change screens. In Active Directory environments, look at tools that apply a breached-password list to domain password changes.

Let people use password managers

NIST requires verifiers to allow password managers and autofill. That makes sense: a manager makes long, unique passwords practical, and it fills in only on the domain where the password was saved. Blocking paste on login forms works against this.

For staff, provide a company password manager rather than leaving people to choose their own. Protect the manager itself with a strong master passphrase and phishing-resistant MFA.

Not all MFA is equal

With a second factor, a stolen password alone is no longer enough, but some methods can still be phished. An attacker's fake login page can ask for a code and pass it on in real time. NIST defines phishing resistance as the protocol's ability to stop secrets being disclosed without depending on the user's vigilance.

MethodPhishing-resistant?NIST notes
SMS or voice codeNoA "restricted" authenticator; verifiers must offer alternatives and should watch for SIM swaps and number porting
Authenticator app code (TOTP)NoCodes are typed by hand, so they can be relayed
Push approval or out-of-band appNoOut-of-band methods are not phishing-resistant
Email code or linkNot allowed for out-of-bandEmail SHALL NOT be used for out-of-band authentication
FIDO2 / WebAuthn security key or passkeyYesThe response is bound to the verified site name

At NIST's middle assurance level, AAL2, verifiers SHALL offer at least one phishing-resistant option. At the highest level, AAL3, the authenticator must provide phishing resistance and use a private key that cannot be exported.

Passkeys

A passkey is a FIDO credential built on WebAuthn. Your device creates a key pair for each site. The site stores only the public key, and the private key stays with you. You unlock it with the same method you use to unlock your device, such as a fingerprint, face or PIN. The FIDO Alliance notes that biometric data stays on the device and is never sent to the site.

Because each passkey is tied to one site, it simply does not work on a lookalike phishing domain. There is also no shared secret on the server to steal.

Passkeys come in two forms:

  • Synced passkeys are copied across your devices through a provider's sync service. NIST calls these syncable authenticators and allows them at AAL2. Because the key can be exported, they SHALL NOT be used at AAL3.
  • Device-bound passkeys stay on one device, such as a hardware security key. They suit administrators and other high-risk accounts.

Think about account recovery too. If someone can reset a passkey account with an email link or a call to the helpdesk, attackers can simply target that route instead. Make recovery at least as strong as the login it replaces.

A policy you can adopt

  1. Minimum 15 characters where a password is the only factor, and allow at least 64.
  2. No composition rules and no scheduled expiry.
  3. Check every new password against a breached and common password list.
  4. Force a change only on evidence of compromise.
  5. Provide a password manager, and allow paste and autofill.
  6. Require MFA everywhere it is available, and phishing-resistant MFA for administrators, email and remote access.
  7. Roll out passkeys where your systems support them, starting with high-risk accounts.
  8. Rate-limit failed logins, and make account recovery as strong as login.

Where to start

Check whether a password already appears in breach data with our Pwned Passwords checker, and test how long a passphrase needs to be with our password strength tool.

If you are reworking your identity policy or planning a passkey rollout, our consulting team can help you plan it.

How we can help

Password generator

Generate strong passwords and passphrases, and check how strong your own password is.

Contact us
AngelForce team

Written by the AngelForce team: security consultants with CEH, LPT Master and CISA certifications who test, monitor and defend systems for organisations across Europe and Türkiye.

Written with AI assistance from public sources listed below, and reviewed by the AngelForce team before publication.

Sources

  1. pages.nist.gov/800-63-4/sp800-63b.html
  2. csrc.nist.gov/pubs/sp/800/63/b/4/final
  3. fidoalliance.org/passkeys/
  4. haveibeenpwned.com/API/v3

Articles about Identity and access

Tell us what you need to protect

Describe your environment and what you want to achieve. We will reply by email.

Contact us
info@angelforce.eu

AngelForce OÜ · Tallinn, Estonia