CISSP-114 · Lesson 4 of 12 · 29 min

Multifactor, passwordless and biometric authentication

Adding a second factor is the single most effective step most organizations can take against account takeover. But not all second factors are equal. A one-time code sent by text message stops a password-spraying bot, yet a convincing phishing page can relay that code to the real site within seconds. A push notification is convenient until an attacker sends fifty of them at two in the morning and a tired user taps approve. Phishing-resistant authenticators, such as FIDO2 security keys, passkeys and smart cards, defeat both attacks because the cryptography is bound to the genuine site. This lesson compares the authenticators, explains NIST's authenticator assurance levels, works through one-time password algorithms and biometric accuracy, and sets out the legal rules that govern biometrics in Canada and the United States.

One-time passwords

A one-time password, OTP, is valid for a single use or a short time, so a captured code cannot be replayed later. Two open algorithms dominate. HOTP, defined in RFC 4226, computes a code from a shared secret key and a counter that increments with each use: it takes an HMAC-SHA-1 of the counter, extracts four bytes at an offset given by the last nibble, a step called dynamic truncation, and reduces the result modulo \(10^d\) for a \(d\)-digit code. TOTP, defined in RFC 6238, replaces the counter with the number of 30-second intervals since the Unix epoch, so codes change automatically. Authenticator apps implement TOTP; the shared secret is usually delivered once by QR code at enrollment.

HOTP and TOTP from RFC 4226 and RFC 6238 using only the standard library. The 8-digit code at t = 59 matches the RFC 6238 test vector; codes change at each 30-second boundary.
import hmac, hashlib, struct
def hotp(key, counter, digits=6, alg=hashlib.sha1):
    mac = hmac.new(key, struct.pack('>Q', counter), alg).digest()
    offset = mac[-1] & 0x0F
    code = struct.unpack('>I', mac[offset:offset + 4])[0] & 0x7FFFFFFF
    return str(code % 10 ** digits).zfill(digits)
def totp(key, unix_time, step=30, digits=6):
    return hotp(key, unix_time // step, digits)
key = b'12345678901234567890'          # RFC test key, never use in production
print('HOTP counters 0-3:', [hotp(key, c) for c in range(4)])
# RFC 6238 test vector: time 59 s, 8 digits, SHA-1 -> 94287082
print('TOTP at t=59, 8 digits:', totp(key, 59, digits=8))
for t in (1_767_225_600, 1_767_225_629, 1_767_225_630):  # 1 Jan 2026 00:00:00 UTC and nearby
    print(f't={t}  window={t // 30}  code={totp(key, t)}')
Output
HOTP counters 0-3: ['755224', '287082', '359152', '969429']
TOTP at t=59, 8 digits: 94287082
t=1767225600  window=58907520  code=745690
t=1767225629  window=58907520  code=745690
t=1767225630  window=58907521  code=119644

Verifiers accept a small window of adjacent time steps to tolerate clock drift, must reject a code that has already been used and must throttle guessing, since a six-digit code has only a million values. The shared secret is the weak point: it exists on both the device and the server, so a server breach can expose every user's seed. OTPs also do nothing against real-time phishing, because the user reads the code from the device and types it into whatever page is in front of them.

Comparing authenticators

Authenticators differ in whether they resist phishing, how they fail and what they cost. SMS and voice codes depend on the telephone network: they can be intercepted or redirected through SIM swapping, number porting fraud and weaknesses in signaling networks, so NIST classes PSTN-based out-of-band authentication as restricted, usable only with extra risk assessment and an alternative offered. Email is not permitted for out-of-band authentication at all. Push notifications are convenient but vulnerable to fatigue attacks; number matching, where the user types a number shown on the login screen into the app, and showing the location of the request reduce this. Smart cards, such as the US government's PIV card or corporate certificate cards, hold a private key on tamper-resistant hardware and prove possession with a challenge-response protected by a PIN.

Common authenticators compared
AuthenticatorFactorPhishing-resistant?Main weaknesses
SMS or voice codeHave (phone number)NoSIM swap, interception, real-time relay; restricted under NIST
TOTP app or hardware OTP tokenHaveNoReal-time relay; shared seed on server
Push approvalHaveNo, unless combined with origin checksFatigue and prompt bombing; mitigate with number matching
Smart card or PIV with PINHave plus knowYes, with mutual TLS or verifier bindingCard readers, issuance cost, middleware
FIDO2 security keyHave (plus PIN or biometric)YesLoss; need a backup key
Passkey (synced)Have plus device unlockYesSecurity depends on the sync account
Device-bound passkey or platform authenticatorHave plus device unlockYesTied to one device; recovery planning needed

Phishing resistance has a precise meaning. An authenticator is phishing-resistant when the protocol binds the authentication to the genuine verifier, so that a response produced on a fake site is useless on the real one. FIDO2, which combines the W3C WebAuthn browser interface with the FIDO Client to Authenticator Protocol, does this through origin binding: the browser tells the authenticator which website origin is asking, the authenticator uses a separate key pair for each origin and signs a challenge that includes the origin, and the real site rejects any signature made for a different origin. The user cannot be tricked into producing a valid response for the attacker, because the attacker's site has a different origin. Private keys never leave the authenticator, and the server stores only public keys, so a server breach exposes nothing reusable.

Sequence diagram with three participants: authenticator, browser and relying party server. The server sends a random challenge. The browser passes the challenge with the website origin to the authenticator. The user unlocks the authenticator with a fingerprint or PIN. The authenticator signs challenge plus origin with the private key for that site and returns the signature. The server verifies with the stored public key. A side panel shows a phishing site with a different origin, where the signature fails verification.
FIDO2 binds each signature to the website origin, so responses captured by a look-alike site fail at the real one.

Passkeys are FIDO2 credentials designed for consumers and workforce alike. Synced passkeys are backed up and synchronized across a user's devices through a platform account such as an Apple, Google or Microsoft account or a password manager; device-bound passkeys stay on one security key or device. Synced passkeys solve the recovery problem that kept hardware keys niche, but their security now depends on the account that syncs them. NIST SP 800-63B-4 permits syncable authenticators at AAL2 but not at AAL3, which requires a non-exportable key.

Authenticator assurance levels

NIST defines three authenticator assurance levels. AAL1 gives some assurance using single-factor or multifactor authentication. AAL2 gives high confidence and requires two distinct factors; under revision 4, verifiers must offer at least one phishing-resistant option at AAL2, and US federal agencies must require phishing-resistant authentication for their staff, contractors and partners. AAL3 gives very high confidence and requires a hardware-based, phishing-resistant authenticator with a non-exportable private key, such as a FIDO2 security key or a PIV card. The levels also set reauthentication limits.

Authenticator assurance levels in NIST SP 800-63B-4, checked October 2026
LevelRequirements (simplified)Overall session limitInactivity limit
AAL1Single-factor or multifactorShould be no more than 30 daysOptional
AAL2Two factors; at least one phishing-resistant option offered; syncable keys allowedShould be no more than 24 hoursShould be no more than 1 hour
AAL3Phishing-resistant hardware authenticator with non-exportable keyShall be no more than 12 hoursShould be no more than 15 minutes

In the United States, OMB memorandum M-22-09 directed federal agencies to adopt phishing-resistant multifactor authentication, such as PIV cards and FIDO2, for staff, contractors and partners, and NIST SP 800-63B-4 now writes that requirement into the guidelines. CISA promotes phishing-resistant MFA to the private sector as well, and regulators such as the New York Department of Financial Services require multifactor authentication for access to covered systems.

Worked problem

Choosing authenticators by role

A 900-person engineering firm uses passwords plus SMS codes for everyone. After a fatigue attack and a SIM swap against two project managers, the board asks for a plan. Propose authenticators for general staff, administrators and field staff with shared tablets.

Show solution
  1. General staff: passkeys on managed laptops and phones, meeting AAL2 with phishing resistance; keep app-based push with number matching only as a temporary fallback.
  2. Administrators and finance approvers: two device-bound FIDO2 security keys each, one kept as a backup, meeting AAL3 for privileged sessions.
  3. Field staff on shared tablets: individual security keys or smart cards with a PIN, so the device can be shared while the credential is personal.
  4. Retire SMS except as a documented, monitored recovery path; require helpdesk recovery to follow independent verification.

Answer: Match strength to risk, but move everyone toward phishing-resistant methods. Issuing backup keys and planning recovery is what makes the rollout sustainable.

Biometrics

Biometric systems capture a sample, extract features into a template and compare a new sample with stored templates. In verification, a one-to-one match, the system checks a sample against the template of the claimed identity. In identification, a one-to-many search, it compares a sample against many templates to find who the person is, which is harder and riskier. Biometric characteristics are physiological, such as fingerprint, face, iris, retina, palm vein and hand geometry, or behavioral, such as voice, signature dynamics and keystroke patterns.

Accuracy is measured with two error rates. The false acceptance rate, FAR, also called a Type II error, is the proportion of impostor attempts wrongly accepted. The false rejection rate, FRR, a Type I error, is the proportion of genuine attempts wrongly rejected. Raising the matching threshold lowers FAR and raises FRR. The crossover error rate, CER, also called the equal error rate, is where the two are equal; a lower CER indicates a more accurate system and is used to compare products. In practice, a door to a data center is tuned for low FAR even at the cost of more rejections, while a phone unlock is tuned for convenience. Presentation attacks, such as photos, masks or silicone fingerprints, are countered with liveness detection.

Raising the threshold trades false acceptances for false rejections; the crossover error rate is where they meet.
import random
random.seed(5)
# Simulated match scores: genuine users score high, impostors low, with overlap
genuine = [random.gauss(0.78, 0.08) for _ in range(5000)]
impostor = [random.gauss(0.45, 0.09) for _ in range(5000)]
def rates(threshold):
    far = sum(s >= threshold for s in impostor) / len(impostor)
    frr = sum(s < threshold for s in genuine) / len(genuine)
    return far, frr
print('threshold   FAR      FRR')
for th in (0.50, 0.55, 0.60, 0.65, 0.70):
    far, frr = rates(th)
    print(f'  {th:.2f}    {far:6.2%}   {frr:6.2%}')
best = min((abs(rates(t / 1000)[0] - rates(t / 1000)[1]), t / 1000) for t in range(500, 701))
far, frr = rates(best[1])
print(f'Crossover near threshold {best[1]:.3f}: FAR {far:.2%}, FRR {frr:.2%}')
Output
threshold   FAR      FRR
  0.50    28.82%    0.00%
  0.55    12.98%    0.20%
  0.60     4.76%    1.42%
  0.65     1.34%    5.16%
  0.70     0.32%   16.36%
Crossover near threshold 0.624: FAR 2.76%, FRR 2.78%
A graph with the matching threshold on the horizontal axis and error rate on the vertical axis. The false acceptance rate curve falls from left to right; the false rejection rate curve rises. They cross at a point labeled crossover error rate. A shaded region to the right is labeled high-security settings, low FAR; a region to the left is labeled convenience settings, low FRR.
FAR falls and FRR rises as the threshold increases; their crossover is the CER.

Biometrics should normally be used to unlock a local authenticator, as when a fingerprint unlocks a passkey on a phone, rather than as a credential sent to a server. In that model the biometric never leaves the device, and the server sees only a cryptographic proof. Central biometric databases create a high-value target, and unlike passwords, a compromised fingerprint cannot be changed.

The law on biometrics

In the United States, there is no general federal biometric privacy law, so state laws govern. Illinois's Biometric Information Privacy Act, BIPA, requires written notice, a written release, a published retention schedule and destruction rules before collecting biometric identifiers, and gives individuals a private right of action with liquidated damages of $1,000 per negligent and $5,000 per intentional or reckless violation. After courts held that each scan could be a separate violation, Illinois amended BIPA in August 2024 so that repeated collection of the same biometric by the same method counts as a single violation per person, and it confirmed that electronic signatures satisfy the written-release requirement. Texas and Washington have biometric statutes enforced by their attorneys general, and comprehensive state privacy laws, such as California's, treat biometric data as sensitive. The FTC has also acted against misuse of facial recognition. Checked October 2026.

Worked problem

A biometric time clock

A retailer with stores in several jurisdictions wants fingerprint time clocks to stop employees clocking in for each other. List the legal and design questions to resolve first.

Show solution
  1. Necessity and proportionality: could badge-plus-photo or supervisor checks achieve the purpose with less intrusion?
  2. Consent and notice: obtain express, informed consent and offer a non-biometric alternative; in Quebec, disclose to the Commission at least 60 days before deployment; in Illinois, obtain written releases and publish a retention and destruction schedule first.
  3. Design: store templates, not images, encrypted, ideally on the device or a card rather than in a central database; set short retention after employment ends.
  4. Vendor contracts: forbid secondary use, require breach notification and confirm the vendor's compliance with biometric laws.

Answer: Biometric deployments are privacy decisions before they are technical ones. Getting consent and disclosure wrong has produced large class actions in Illinois and regulatory findings in Canada.

Thinking like a manager

The exam wants you to know that multifactor authentication is not one thing. When asked for the best defense against phishing or real-time relay, choose a phishing-resistant method such as FIDO2 or smart cards, not SMS or OTP. When asked about biometrics, know FAR, FRR and CER, and know that privacy law, consent and template protection are part of the decision. And always plan for loss and recovery: an authentication scheme without a secure recovery path pushes users and help desks back to the weakest method.

Common mistakes

  • MistakeTreating SMS codes as strong multifactor authentication.

    InsteadUse phishing-resistant authenticators for high-risk accounts and treat SMS as restricted.

  • MistakeAllowing unlimited push approvals without context.

    InsteadUse number matching, show request details and alert on repeated prompts.

  • MistakeIssuing one security key per user with no backup.

    InsteadRegister at least two authenticators per user and define recovery.

  • MistakeStoring biometric images in a central database.

    InsteadMatch on the device or store protected templates only, with consent and retention limits.

  • MistakeComparing biometric products by FAR alone.

    InsteadUse the crossover error rate to compare, then tune the threshold to the risk.

Summary and key terms

  • HOTP and TOTP produce one-time codes from a shared secret and a counter or time, but do not resist real-time phishing.
  • NIST treats SMS and voice codes as restricted and forbids email for out-of-band authentication.
  • FIDO2 security keys and passkeys resist phishing through origin binding and store no reusable secret on the server.
  • AAL2 requires two factors with a phishing-resistant option offered; AAL3 requires non-exportable hardware keys and allows no synced passkeys.
  • FAR is a false acceptance, FRR a false rejection and the CER is where they meet; lower CER means better accuracy.
  • Quebec requires express consent and 60 days' notice to the Commission for biometric identity systems; Illinois BIPA requires written releases and allows private lawsuits.
  • Every authenticator rollout needs backup authenticators and a secure recovery process.
HOTP
Counter-based one-time password algorithm defined in RFC 4226.
TOTP
Time-based one-time password algorithm defined in RFC 6238.
Phishing resistance
Binding authentication to the genuine verifier so captured responses cannot be reused.
FIDO2
Standards, WebAuthn and CTAP, for public-key authentication with origin binding.
Passkey
A FIDO2 credential, synced across devices or bound to one device.
False acceptance rate
The proportion of impostor attempts wrongly accepted; a Type II error.
False rejection rate
The proportion of genuine attempts wrongly rejected; a Type I error.
Crossover error rate
The point where FAR equals FRR; used to compare biometric accuracy.
Liveness detection
Checks that a biometric sample comes from a live person present at capture.
Number matching
A push-approval method where the user enters a number shown on the login screen.

Practice problems

Work each problem on paper first, then reveal the answer to check.

  1. What does TOTP use instead of HOTP's counter?

    Show answer

    The number of fixed time steps, usually 30 seconds, since the Unix epoch.

  2. Why do OTP codes fail against a real-time phishing proxy?

    Show answer

    The user types the code into the fake page, which relays it to the real site within its validity window.

  3. How does FIDO2 resist phishing?

    Show answer

    Signatures include the website origin and use per-site keys, so a fake origin cannot obtain a valid response.

  4. Are synced passkeys permitted at AAL3?

    Show answer

    No; AAL3 needs a non-exportable key.

  5. What is the maximum overall session length at AAL3?

    Show answer

    12 hours.

  6. Which biometric error is a Type II error?

    Show answer

    False acceptance.

  7. What does a lower CER indicate?

    Show answer

    A more accurate biometric system.

  8. How long before deployment must a Quebec organization disclose a biometric identity system to the Commission?

    Show answer

    At least 60 days.

  9. What did the 2024 BIPA amendment change about damages?

    Show answer

    Repeated collection of the same biometric by the same method counts as one violation per person.

  10. What reduces push-fatigue attacks?

    Show answer

    Number matching, showing request context and alerting on repeated prompts.

Lesson quiz · 5 questions

Score 60% or more to complete this lesson.

Take the quiz