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.
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)}')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.
| Authenticator | Factor | Phishing-resistant? | Main weaknesses |
|---|---|---|---|
| SMS or voice code | Have (phone number) | No | SIM swap, interception, real-time relay; restricted under NIST |
| TOTP app or hardware OTP token | Have | No | Real-time relay; shared seed on server |
| Push approval | Have | No, unless combined with origin checks | Fatigue and prompt bombing; mitigate with number matching |
| Smart card or PIV with PIN | Have plus know | Yes, with mutual TLS or verifier binding | Card readers, issuance cost, middleware |
| FIDO2 security key | Have (plus PIN or biometric) | Yes | Loss; need a backup key |
| Passkey (synced) | Have plus device unlock | Yes | Security depends on the sync account |
| Device-bound passkey or platform authenticator | Have plus device unlock | Yes | Tied 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.
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.
| Level | Requirements (simplified) | Overall session limit | Inactivity limit |
|---|---|---|---|
| AAL1 | Single-factor or multifactor | Should be no more than 30 days | Optional |
| AAL2 | Two factors; at least one phishing-resistant option offered; syncable keys allowed | Should be no more than 24 hours | Should be no more than 1 hour |
| AAL3 | Phishing-resistant hardware authenticator with non-exportable key | Shall be no more than 12 hours | Should 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
- 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.
- Administrators and finance approvers: two device-bound FIDO2 security keys each, one kept as a backup, meeting AAL3 for privileged sessions.
- 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.
- 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.
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%}')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%
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
- Necessity and proportionality: could badge-plus-photo or supervisor checks achieve the purpose with less intrusion?
- 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.
- 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.
- 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.
What does TOTP use instead of HOTP's counter?
Show answer
The number of fixed time steps, usually 30 seconds, since the Unix epoch.
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.
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.
Are synced passkeys permitted at AAL3?
Show answer
No; AAL3 needs a non-exportable key.
What is the maximum overall session length at AAL3?
Show answer
12 hours.
Which biometric error is a Type II error?
Show answer
False acceptance.
What does a lower CER indicate?
Show answer
A more accurate biometric system.
How long before deployment must a Quebec organization disclose a biometric identity system to the Commission?
Show answer
At least 60 days.
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.
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.
Create a free account to save your progress, take quizzes and earn a certificate.