Skip to main content
PacketMentor logo
Open menu
← All topics
Security Fundamentals Foundational

Password Policy: Management, Complexity, MFA, Certificates, Biometrics

Modern authentication has moved past 'strong passwords'. The elements of a real-world password policy — length + complexity, rotation, MFA, certificate-based auth, and biometrics — and where Cisco IOS supports each.

Quick summary
  • A modern password policy is layered: length + rotation (NIST 800-63B), MFA on top, and certificates or biometrics as stronger alternatives when the platform supports them.
  • Cisco IOS 15+/IOS-XE supports per-user password aging, minimum length (security passwords min-length), lockout after failed attempts, PKI/cert auth for VPN + SSH, and RADIUS/TACACS handoff for MFA.
  • Long random passphrases (16+ chars) beat short-complex passwords (Password1!) — NIST reversed the 'must have a symbol' rule in 2017 because it drives users to predictable patterns.

Mental model

Password strength alone stopped mattering years ago. Attackers dump hash databases, rent GPUs, and brute-force at billions of hashes per second. Real security comes from layering: something you know (password), plus something you have (phone / token / certificate), plus something you are (biometric).

For the CCNA, you’ll be asked to identify the layers of a “modern” policy — not to memorise a specific vendor’s product.

The layers of a modern password policy

LayerWhat it doesCisco IOS support
Length + complexityLongest single factor; a 16-char passphrase is ~2^80 harder than 8-char complexsecurity passwords min-length 12
RotationForce change on cadence (30/60/90 days) — NIST 800-63B (2017) actually discourages mandatory rotation unless there’s evidence of compromiseusername X secret 5 <hash> per user; TACACS/RADIUS backend handles cadence
History / no-reuseDon’t accept the last N passwordsBackend AAA (TACACS+/RADIUS) — IOS doesn’t store history natively
Lockout on failureFreeze the account after N wrong trieslogin block-for <sec> attempts <n> within <sec>
Encryption at restPasswords never stored in plaintextservice password-encryption (weak, Type 7) or enable secret (Type 5/8/9 hashed)
MFA / 2FAAdd “something you have”RADIUS to a backend that speaks TOTP / push (Duo, Cisco ISE, Okta)
CertificatesPublic/private keypair replaces passwordcrypto pki for VPN + SSH pubkey auth
BiometricsFingerprint / face — usually paired with a certificateEndpoint (laptop / phone), not the network device
Passwordless (FIDO2/WebAuthn)Hardware-backed keypair per siteEndpoint OS + IdP; not a device-CLI concern

What NIST 800-63B says today (2017 revision)

  • Length ≥ 8 (12+ recommended for admin accounts).
  • No mandatory periodic rotation unless compromise is suspected.
  • No enforced complexity rules (e.g., “must have a symbol”) — they push users to predictable substitutions.
  • Block common passwords — check against known-breached lists (Have I Been Pwned, RockYou).
  • Enable MFA for anything privileged or remote-accessible.

Older policies you’ll still see on the exam (rotate every 90 days, require symbol/upper/number) exist in Cisco’s blueprint for historical continuity but the NIST modern guidance is the direction the industry is moving.

Real Cisco IOS knobs

! Minimum length on all newly-configured passwords
R1(config)# security passwords min-length 12

! Lockout: 3 wrong tries within 60 seconds → block logins for 300 seconds
R1(config)# login block-for 300 attempts 3 within 60

! Log every failed login (populates syslog for SIEM correlation)
R1(config)# login on-failure log

! Log every successful login (audit trail)
R1(config)# login on-success log

! Store enable password as a Type-5 MD5 hash (not the weak Type-7)
R1(config)# enable secret NeverT3llMe

! User accounts — always use `secret` (hashed), not `password` (Type-7-reversible)
R1(config)# username admin privilege 15 secret Sup3rL0ngPassphrase

! Encrypt Type-7 passwords already stored in config
R1(config)# service password-encryption

! SSH pubkey auth for a user (certificate-adjacent — no password needed)
R1(config)# ip ssh pubkey-chain
R1(config-ssh-pubkey)# username admin
R1(conf-ssh-pubkey-user)# key-string
R1(conf-ssh-pubkey-data)# AAAAB3NzaC1yc2EAAA...
R1(conf-ssh-pubkey-data)# exit

MFA on Cisco: the RADIUS / TACACS+ handoff

Cisco IOS itself doesn’t do TOTP or push-approval. The pattern is:

  1. IOS uses aaa authentication login default group RADGROUP local.
  2. Login attempts hit a RADIUS server (Cisco ISE, Duo Auth Proxy, Aruba ClearPass).
  3. That server does the MFA challenge — TOTP code, phone push, hardware key.
  4. Only if MFA passes does RADIUS respond Access-Accept and IOS lets you in.

The relevant CCNA topic page is AAA — it covers TACACS+ / RADIUS server config in depth.

Password vs secret vs Type-5 vs Type-7 vs Type-8/9

TypeCommandStorageStrengthNotes
Type-0 (plaintext)enable passwordCleartextNoneNever use
Type-7 (Vigenere)password 7 ... (after service password-encryption)Reversible with online toolsNoneObfuscation only
Type-4 (SHA-256, no salt)enable secret 4 (deprecated by Cisco 2013)HashedWeakDeprecated
Type-5 (MD5 + salt)enable secret X (default older IOS)Hashed + saltMediumLegacy default
Type-8 (PBKDF2 SHA-256)enable secret 8 ... (IOS 15.3+)Hashed + salt + iterationsStrongPrefer this
Type-9 (scrypt)enable secret 9 ... (IOS 15.3+)Hashed + memory-hardStrongPrefer this

Rule: use Type-8 or Type-9 on any modern IOS device. If you must fall back, Type-5 is the last acceptable choice.

The #1 mistake

“Complexity = security.” Password1! satisfies the classic Cisco default template — uppercase, digit, symbol — but is guessable in seconds. A 20-character passphrase like correct-horse-battery-staple-42 has vastly more entropy and is easier for a human to remember. Length beats symbols; length + MFA beats everything.

Quick verification

R1# show login
     Login state and configuration information:
       Secure Login is enabled
       Quiet-Mode is enabled
       Block-for state is enabled
         Login-attempts allowed:            3
         Login-quiet-time:                  300 seconds
       Ongoing login-time is 60 seconds

R1# show running-config | include enable|secret|username|login
security passwords min-length 12
enable secret 8 $8$Fkkw3ISPRQEmiE$/PqxlP...
login block-for 300 attempts 3 within 60
login on-failure log
login on-success log
username admin privilege 15 secret 8 $8$Ax...
Master this on a real network

Want this drilled into reflex?

1:1 weekly sessions, live feedback on your labs, and US interview prep — built around the CCNA® exam blueprint. Free first session. No card on file until you decide.

Claim my free session →

Get the free CCNA 12-week roadmap

You're already reading up on Password Policy: Management, Complexity, MFA, Certificates, Biometrics. The roadmap is the order I recommend studying every CCNA topic in — with what to lab each week and where Password Policy: Management, Complexity, MFA, Certificates, Biometrics fits. A written personal reply, not an autoresponder. Expect it within one business day.

Personal reply from a senior network engineer. No third-party tracking. Unsubscribe any time.