Password Protection
A basic access control mechanism using a 32-bit password to restrict read/write access to specific memory areas. Used in NTAG 21x and MIFARE Ultralight EV1 chips. The password is transmitted in plaintext, making it vulnerable to eavesdropping.
Password Protection
Password protectionPassword protection32-bit access control for memory areas (plaintext transmission)View full → is a basic access control mechanism in NFC tags that uses a fixed-length password to restrict read and/or write operations on specified memory blocks. The password is a 32-bit (4-byte) value stored in a configuration page of the tag, and a reader must transmit this password using the PWD_AUTH command before accessing protected memory areas. While simple to implement, password protection has significant security limitations compared to cryptographic authenticationauthenticationIdentity verification of NFC tags/readers via passwords or cryptographyView full →.
Implementation in NTAG 21x
In NTAG 213, NTAG 215, and NTAG 216, password protection is configured through three parameters:
- PWD (Password): A 4-byte value stored in the chip's configuration pages (page 43 for NTAG 213, page 133 for NTAG 215, page 229 for NTAG 216).
- PACK (Password Acknowledge): A 2-byte value the tag sends back upon successful authentication. Allows the reader to verify it is talking to the expected tag.
- AUTH0: The page address from which password protection begins. Pages before AUTH0 remain freely accessible. For example, setting AUTH0 = 4 protects all user memory pages; setting AUTH0 = 10 leaves pages 4-9 unprotected.
Access control modes: - Write-only protection (PROT bit = 0): Reading is always allowed; writing to protected pages requires authentication. - Read-and-write protection (PROT bit = 1): Both reading and writing require authentication.
Security Limitations
Password protection has critical weaknesses that make it unsuitable for security-sensitive applications:
- Plaintext transmission: The 32-bit password is sent from reader to tag without encryption over the RF field. An attacker with an NFC sniffer can capture the password from the air interface.
- Small keyspace: A 32-bit password has only 4.3 billion possible values — feasible to brute-force with dedicated hardware, though NTAG chips limit authentication attempts (AUTHLIM counter) to slow down attacks.
- No session keys: After authentication, subsequent commands are not encrypted. The session is vulnerable to replay and man-in-the-middle attacks.
- Static credential: The password does not change between sessions, so a captured password grants permanent access.
When to Use Password Protection
Despite its limitations, password protection is appropriate for:
- Write protection of publicly readable data: Preventing unauthorized overwrites of NDEF URLs on marketing tags while keeping the content freely readable. Eavesdropping risk is low because the protected content is public.
- Low-value access gating: Fitness badges, simple loyalty cards, or internal asset labels where the threat model does not include sophisticated RF attacks.
For security-critical applications (payments, brand protection, access control), use AES encryption and mutual authentication via chips like NTAG 424 DNA or MIFARE DESFire EV3.
Related Terms
Related Guides
Perguntas frequentes
The NFC glossary is a comprehensive reference of technical terms, acronyms, and concepts used in Near Field Communication technology. It is designed for developers, product managers, and engineers who work with NFC and need clear definitions of terms like NDEF, APDU, anti-collision, and ISO 14443.
Each glossary term is cross-referenced with related NFC chips, standards, and other terms. For example, the term 'AES-128' links to chips that support AES encryption (NTAG 424 DNA, DESFire EV2/EV3), and the term 'ISO 14443' links to all chips compliant with that standard.
Yes. NFCFYI provides glossary definitions in 15 languages including English, Korean, Japanese, Chinese, Spanish, Portuguese, Hindi, Arabic, French, Russian, German, Turkish, Vietnamese, Indonesian, and Thai. Use the language selector in the header to switch languages.