Відкриваєш оголошення про пачку NFC-міток. Там написано «NFC 213», або «сумісні з NTAG215», або просто «NFC-картка 1K, працює з усіма телефонами». Тебе цікавить одне: чи впорається це з тим, що ти задумав? А оголошення не відповість, бо його автор і сам не знає.
Я роками роблю NFC.cool Tools, застосунок, який при кожному дотику насамперед відповідає саме на це питання: що це за чип і що він уміє? Сам лише код розпізнавання знає близько шістдесяти продуктів від семи виробників, і кожен із них потрапив до списку тому, що хтось підніс його до телефона, а щось пішло не так, як обіцяло оголошення. Цей посібник я хотів би мати під рукою, коли писав той код. Він довгий навмисно. Якщо потрібна коротка версія, почни з посібника з NFC-міток для початківців, а звідти посилання ведуть сюди, коли захочеш копнути глибше.
Головне одним реченням, щоб воно було в тебе ще до таблиць: найкращої NFC-мітки не існує, є лише правильний чип для задачі, а задачу визначають три речі: скільки треба зберігати, кого треба не пустити і що має цю мітку зчитувати.
Як користуватися цим посібником
Кожна цифра в цьому посібнику взята з даташита виробника, з документації Apple чи Google або з коду мого власного застосунку, а джерела зібрані в кінці. Якщо чип лежав у мене на столі, я пишу про це в примітці з практики. Якщо не лежав, теж кажу прямо: екзотичні чипи описано за даташитами, а даташит дає обіцянку, а не результат вимірювання.
Двох речей тут не буде: покрокової інструкції, як записати першу мітку (для цього є посібник із запису), і повної історії NTAG 424 DNA, якій я присвятив окремий допис.
З чого складається NFC-мітка
NFC-мітка складається з трьох склеєних між собою частин: чипа завбільшки з піщинку, антени з кількох витків витравленого алюмінію чи міді і підкладки, яка все це тримає. Підкладкою буває паперова наліпка, PET-інлей, PVC-картка або скляна капсула. Батарейки в чипі немає. Живить його телефон.
В основі лежить індуктивний зв’язок. Антена в телефоні влаштована як котушка, яка створює магнітне поле, що змінює напрямок 13,56 мільйона разів на секунду. Внеси в це поле другу котушку, і в ній наведеться струм, так само як у бездротовій зарядці, лише з мізерною часткою потужності. Цим наведеним струмом чип мітки й живиться. Щоб відправити дані назад, він нічого не передає сам. Він вмикає й вимикає навантаження на своїй антені, а котушка телефона відчуває це як крихітну зміну власного поля. Цей трюк називається модуляцією навантаження, і саме через нього всю роботу виконує телефон, а мітка може коштувати вісім центів.
Звідси й така дальність. Поле маленької котушки слабне пропорційно кубу відстані, тому мітка, яка ідеально зчитується з одного сантиметра, на десяти не отримує нічого. Я порівнюю це зі свічкою: поруч із нею можна читати, а з іншого кінця кімнати не допоможе, хоч як примружуйся. Визначення від самого NFC Forum каже «типова дальність до 2 см», документація Android каже «4 см або менше», а даташити NXP кажуть «до 100 мм залежно від напруженості поля і геометрії антени». Праві всі троє. Цифру для телефона ти побачиш на практиці, а 100 мм чип видає з великим зчитувачем і великою антеною.
Швидкості скромні, бо більших і не треба. Мітка типу A або B говорить на 106 кбіт/с, а швидші чипи після початкового рукостискання домовляються про 212, 424 чи 848 кбіт/с. FeliCa працює на 212 або 424. ISO 15693, родина далекої дії, ще повільніша: 26,48 кбіт/с у звичайному режимі, бо її створювали для зчитування з метра складською рамкою, а не телефоном. Повний дамп 888 байтів NTAG216 у будь-якому разі триває частку секунди.
| Стандарт | Базова швидкість | Швидші режими | Зворотний канал |
|---|---|---|---|
| ISO/IEC 14443 тип A і B | 106 кбіт/с | 212, 424, 848 кбіт/с на чипах, які про них домовляються (DESFire, Plus, NTAG 424 DNA) | модуляція навантаження на піднесучій 847,5 кГц |
| FeliCa (JIS X 6319-4, ISO/IEC 18092) | 212 кбіт/с | 424 кбіт/с | модуляція навантаження |
| ISO/IEC 15693 | 26,48 кбіт/с (6,62 кбіт/с у повільному режимі) | швидкий режим NXP 53 кбіт/с; ICODE 3 до 212 кбіт/с | модуляція навантаження на піднесучій 423,75 кГц |
Абеткова каша: стандарти, типи NFC Forum і що до NFC не належить
Кожне оголошення змішує три системи назв: стандарти ISO, які описують радіочастину, типи міток NFC Forum, які описують, як розкладено дані, і торгові назви виробників. Ось карта.
Стандарти
| Стандарт | Що він визначає | Назва в NFC Forum | Приклади чипів |
|---|---|---|---|
| ISO/IEC 14443 тип A (частини з 1 по 3) | безконтактні картки ближньої дії, 106 кбіт/с, модуляція типу A, антиколізія, UID | NFC-A | NTAG, MIFARE Ultralight, MIFARE Classic, Topaz |
| ISO/IEC 14443 тип B | те саме, але з іншою модуляцією і без UID у тому самому сенсі | NFC-B | ST SRI512, транспортні картки Calypso, багато електронних паспортів |
| ISO/IEC 14443-4 | транспортний протокол поверх A чи B під назвою ISO-DEP | ISO-DEP | DESFire, NTAG 424 DNA, MIFARE Plus у SL3, банківські картки, паспорти |
| ISO/IEC 7816-4 | мова команд (APDU) і файлова система, якими користуються через ISO-DEP | усе з рядка вище | |
| ISO/IEC 7816-6 | серед іншого, реєстр кодів виробників чипів | перший байт UID | |
| ISO/IEC 15693 | картки віддаленої дії, до метра з відповідним зчитувачем, 8-байтний UID | NFC-V | ICODE, ST25TV, ST25DV, TI Tag-it, NTAG 5 |
| JIS X 6319-4 | FeliCa від Sony | NFC-F | FeliCa Lite-S, Suica, Octopus |
| ISO/IEC 18092 | сам NFC (NFCIP-1): однорангова передача і пасивні режими, якими користуються телефони | твій телефон |
Типи міток NFC Forum
NFC Forum чипів не проєктував. Він написав п’ять рецептів, як зберігати повідомлення NDEF (формат-контейнер, який розуміє будь-який телефон) на чипах, що вже існували. Саме це й означає «мітка Type 2»: не чип, а спосіб розкладки даних.
| Тип Forum | Радіо | Модель пам’яті | Типові чипи | Підтримка телефонами |
|---|---|---|---|---|
| Type 1 | NFC-A | блоки по 8 байтів, одноразове блокування | Topaz від Innovision/Broadcom | зчитується на обох платформах; NFC Forum прибрав Type 1 зі своєї редакції специфікацій 2021 року |
| Type 2 | NFC-A | сторінки по 4 байти, контейнер можливостей на сторінці 3, блоки TLV | NTAG21x, MIFARE Ultralight, ST25TN, Fudan FM11NT0x1, Infineon my-d move | iPhone і Android, зокрема фонове зчитування на iPhone |
| Type 3 | NFC-F | блоки по 16 байтів, коди сервісів | FeliCa Lite-S, FeliCa Standard | iPhone і Android (на Android підтримка NFC-F обов’язкова) |
| Type 4 | ISO-DEP поверх NFC-A або NFC-B | файли, які вибирають командою APDU: файл CC і файл NDEF | NTAG 424 DNA, DESFire, ST25TA | iPhone і Android |
| Type 5 | NFC-V | блоки по 4 байти, CC у блоці 0 | ICODE SLIX і SLIX2, ST25TV, ST25DV, NTAG 5 | iPhone з iOS 13, Android через NfcV; до Forum додано у 2015 році |
Двох речей у цьому списку немає навмисно. MIFARE Classic взагалі не належить до типів Forum: NDEF на Classic тримається на розмітці від NXP, яку Android підтримує на деяких телефонах, а iOS не підтримує на жодному. І рецепти Forum нічого не кажуть про безпеку. Міткою Type 2 може бути проста NTAG213 або NTAG 224 DNA з автентифікацією AES-128, а міткою Type 4 гола ST25TA02K або банківська картка. Тип показує, як зберігається повідомлення NDEF, а не хто може до нього дістатися.
Що тільки схоже на NFC-мітку
Половина листів «чому мій телефон це не читає» приходить про речі, які ніколи не мали стосунку до NFC. Котушка NFC у телефоні налаштована на 13,56 МГц і говорить протоколами, описаними вище. Решти вона просто не бачить, хоч якою схожою на мітку була б річ.
| Схоже на мітку, але | Частота | Що це насправді | Чи прочитає телефон |
|---|---|---|---|
| пропуск в офіс чи на парковку без видимого чипа | 125 кГц | низькочастотний RFID: ідентифікатори EM4100 лише для читання, HID Prox, перезаписувані T5577 | ні, і жоден застосунок цього не змінить |
| мікрочип тварини | 134,2 кГц | транспондер FDX-B за ISO 11784/11785 | ні |
| магазинна протикрадіжна чи логістична етикетка | від 860 до 960 МГц | UHF RAIN RFID, EPC Gen2 | ні |
| ключ від готелю чи стара транспортна картка | 13,56 МГц | MIFARE Classic або пропрієтарна HF-картка | Android іноді, iPhone показує лише UID |
| банківська картка | 13,56 МГц | смарт-картка EMV, яка говорить через ISO-DEP | технічно так: застосунок може прочитати список платіжних застосунків на картці і відкриті дані, але Core NFC від Apple блокує зчитування платіжних карток, і жоден телефон не зробить робочої копії |
| паспорт | 13,56 МГц | електронний документ за ICAO 9303 | так, з машинозчитуваною зоною як ключем; я це зробив |
| ключ безпеки | 13,56 МГц | автентифікатор FIDO2 через ISO 7816 | так, для браузера, але не як мітка |
Найболючіша історія саме з пропуском на 125 кГц. Він підходить до зчитувача на дверях, у його пластику ховається котушка, а з телефоном він не заговорить ніколи. Я написав, чому iPhone не відчиняє двері під’їзду, бо чесна відповідь тут лежить у залізі.
Як читати даташит чи оголошення
На першій сторінці даташита є всі потрібні цифри, а хороше оголошення їх переписує. Ось що означає кожна і які з них брешуть.
Пам’ять користувача і загальна пам’ять
У кожного чипа EEPROM більше, ніж можна використати. NTAG213 має 180 байтів загалом, і 144 з них твої; решта 36 зберігають UID, біти блокування, контейнер можливостей і сторінки конфігурації. MIFARE Classic 1K має 1024 байти, з яких під дані віддано 752, бо кожен сектор втрачає один блок на ключі. Оголошення наводять ту цифру, яка більша. Важить саме пам’ять користувача, і навіть вона не дорівнює тому, що вміщається в повідомлення NDEF, але про це в наступному розділі.
UID
Унікальний ідентифікатор прошивають на заводі, і змінити його не можна, хіба що на клонах, зроблених саме для цього. Буває три довжини:
| Довжина UID | Де | Примітки |
|---|---|---|
| 4 байти | старі MIFARE Classic, сьогоднішні дешеві картки Classic | NXP називає їх «неунікальними ідентифікаторами» (NUID), бо 4 байтів забракло. Коду виробника в 4-байтному UID немає. Перший байт 08 означає, що чип генерує випадковий ID при кожному дотику |
| 7 байтів | NTAG, Ultralight, DESFire, NTAG 424 DNA, Classic EV1 (як опція), а 8-байтний IDm у FeliCa їхній близький родич | перший байт містить код виробника |
| 8 байтів | кожен чип ISO 15693 | перший байт завжди E0, другий містить код виробника |
Код виробника береться з реєстру ISO/IEC 7816-6, і це найшвидша чесна перевірка оголошення. Якщо мітка «справжня NXP» повідомляє 1D, її зробила Fudan.
| Код | Виробник |
|---|---|
| 01 | Motorola |
| 02 | STMicroelectronics |
| 03 | Hitachi |
| 04 | NXP Semiconductors |
| 05 | Infineon |
| 07 | Texas Instruments |
| 08 | Fujitsu |
| 16 | EM Microelectronic |
| 1A | Sony |
| 1D | Shanghai Fudan Microelectronics |
| 25 | Innovision (Topaz) |
| 2C | Impinj |
| 2E | Broadcom |
ATQA, SAK і GET_VERSION: як зчитувач розрізняє чипи
Коли чип типу A відповідає телефону, він надсилає два невеликі значення: ATQA і SAK. Зчитувачі, зокрема мій застосунок, розкладають чипи на родини за SAK, бо біти SAK показують, чи говорить чип ISO-DEP і до якої загальної родини належить. Власна примітка NXP щодо ідентифікації чипів жирним шрифтом радить не покладатися на ATQA ні в чому, бо значення збігаються і вводять в оману, і я на практиці переконався, що так і є.
| SAK | Родина | Типове ATQA |
|---|---|---|
| 00 | NTAG і MIFARE Ultralight, усі без винятку | 00 44 |
| 08 | MIFARE Classic 1K, MIFARE Plus 2K або SE на рівні безпеки 1 | 00 04 (4-байтний UID), 00 44 (7-байтний) |
| 09 | MIFARE Classic Mini | |
| 18 | MIFARE Classic 4K, MIFARE Plus 4K на рівні 1 | 00 02 або 00 42 |
| 10, 11 | MIFARE Plus X на рівні 2 | |
| 20 | усе, що говорить ISO-DEP: DESFire, NTAG 424 DNA, Plus на рівні 3, банківські картки, JCOP | 03 44 (DESFire, 424), 03 04 з випадковим ID |
Оскільки кожен NTAG і кожен Ultralight відповідає SAK 00, щоб відрізнити NTAG213 від NTAG216 чи від Ultralight EV1, потрібна ще одна команда: GET_VERSION. Вона повертає вісім байтів, і роботу роблять три з них. Байт 2 задає тип продукту (03 Ultralight, 04 NTAG, 07 NTAG I2C, 01 DESFire, 02 Plus, 08 DESFire Light), байт 4 задає покоління, а байт 6 кодує розмір пам’яті. Так NFC.cool дізнається, що перед ним, і саме про це консоль, яка читає Amiibo, насамперед питає мітку.
| Чип | Відповідь GET_VERSION |
|---|---|
| NTAG213 | 00 04 04 02 01 00 0F 03 |
| NTAG215 | 00 04 04 02 01 00 11 03 |
| NTAG216 | 00 04 04 02 01 00 13 03 |
| NTAG210 | 00 04 04 01 01 00 0B 03 |
| NTAG212 | 00 04 04 01 01 00 0E 03 |
| Ultralight EV1 48 B | 00 04 03 01 01 00 0B 03 |
| Ultralight EV1 128 B | 00 04 03 01 01 00 0E 03 |
| Ultralight AES | 00 04 03 0x 04 00 0F 03 |
| NTAG 223 DNA | 00 04 04 02 04 00 0F 03 |
| NTAG 424 DNA (загорнуто в APDU) | виробник 04, тип 04, основна версія 30, пам’ять 11 |
Бувають чипи без GET_VERSION: оригінальний Ultralight, Ultralight C і старий NTAG203 цієї команди ніколи не мали, як і більшість клонів. Сама її відсутність теж працює як відбиток.
Ресурс запису, збереження даних, температура
Ці три цифри оголошення майже ніколи не наводять, а даташити наводять завжди.
Ресурс запису показує, скільки разів можна перезаписати байт. Для будь-якого сучасного чипа мінімум становить 100 000 циклів; чипи епохи Classic і оригінальний Ultralight розраховані на 10 000. DESFire EV3 і родина ST25DV розраховані типово на 1 000 000.
Збереження даних показує, скільки байти живуть без живлення. Старий стандарт обіцяє 10 років, NXP заявляє 50 років для NTAG 424 DNA і родини ICODE SLIX, а ST для чипів Type 4 ST25TA заявляє 200 років. Цей строк вказують для кімнатної температури; спека його скорочує.
Робоча температура для більшості споживчих чипів NXP становить від -25 до +70 °C, для чипів ST та EM від -40 до +85 °C, а для ICODE 3 сягає 105 °C. Межу зазвичай ставить не чип, а клей і підкладка.
Драбина безпеки
Саме в цій частині оголошення брешуть найбільше. «Зашифровано», «захищено», «захист від клонування» друкують на мітках, увесь захист яких зводиться до 32-бітного пароля, що передається відкритим текстом. Ось драбина знизу догори, і кожен чип із цього посібника стоїть на одному з її щаблів.
| Щабель | Що це | Чипи | Від чого захищає |
|---|---|---|---|
| 0. Нічого | читати й записувати може будь-хто | оригінальний Ultralight, NTAG203, TI Tag-it Standard, Topaz | ні від чого |
| 1. Біти блокування | односторонні біти, які назавжди роблять сторінки доступними лише для читання | кожен чип Type 2 і Type 5 | від перезапису; від копіювання не рятує |
| 2. Пароль | 32-бітний пароль плюс 16-бітне підтвердження (PACK), за бажанням з лімітом невдалих спроб; на NTAG21x пароль іде в ефір незашифрованим | NTAG21x, Ultralight EV1, NTAG 223 DNA, родина ICODE SLIX (32 біти), ST25TV (32 або 64 біти), ST25TA (128 бітів) | від випадкового перезапису чужою людиною із застосунком; від рішучого зловмисника зі сніфером не захищає |
| 3. CRYPTO1 | 48-бітний потоковий шифр NXP з 1990-х | MIFARE Classic, MIFARE Plus на рівні 1 | ні від чого з 2008 року; вважай його щаблем 0 |
| 4. Triple DES | взаємна автентифікація 16-байтним ключем | Ultralight C, FeliCa Lite-S, DESFire D40 і EV1 | від копіювання вмісту без ключа |
| 5. AES-128 | взаємна автентифікація, захищений обмін повідомленнями | Ultralight AES, NTAG 224 DNA, DESFire від EV1 до EV3, DESFire Light, Plus на рівні 3, ICODE DNA, FeliCa Standard, EM4425 | від того самого, але з шифром, якому досі довіряють |
| 6. AES плюс SUN | кожен дотик створює свіжий криптографічний доказ просто в URL | NTAG 424 DNA, NTAG 22x DNA, DESFire EV3 | від клонування, бо копія не зможе підписати наступний дотик |
| 7. Контур проти розкриття | провідник, який назавжди повідомляє, якщо його колись розірвали | NTAG 213 TT, NTAG 424 DNA TT, NTAG 22x DNA StatusDetect, ICODE 3 TT, ST25TV02KC-T | від повторного використання пломби |
Дві функції стоять поруч із драбиною, а не на ній. Підписом оригінальності називають цифровий підпис над UID, який записує виробник, щоб зчитувач міг перевірити, що чип зробила NXP чи ST. Від копіювання він не захищає, бо клон може нести скопійований підпис, і NXP сама пише про це у своїй примітці щодо застосування. А лічильники (24-бітний лічильник зчитувань на NTAG213/215/216, три односторонні лічильники на Ultralight EV1, 16-бітний лічильник записів на SLIX2) призначені для сценаріїв використання, а не для безпеки, хіба що їх вбудовано в повідомлення SUN.
NDEF і що насправді вміщається на мітку
NDEF (NFC Data Exchange Format) працює як конверт. Телефон не зчитує з мітки «URL»; він зчитує повідомлення NDEF, у якому лежить запис URI, а конверт теж має вагу. Знаючи цю вагу, можна відповісти на питання «чи влізе моє посилання на NTAG213».
Запис
Кожен запис починається з байта прапорців (початок повідомлення, кінець повідомлення, короткий запис і трибітний формат назви типу), далі йдуть довжина типу, довжина корисного навантаження (один байт, якщо навантаження менше за 256 байтів, і чотири в іншому разі), сам тип і корисне навантаження. Тож короткий запис URL забирає 4 байти заголовка ще до першого байта посилання.
| Запис | Тип | Корисне навантаження |
|---|---|---|
| URL | загальновідомий тип U | один байт префікса плюс решта URL в UTF-8 |
| Текст | загальновідомий тип T | байт стану, код мови (en), потім сам текст |
| Smart Poster | загальновідомий тип Sp | ціле повідомлення NDEF усередині: URL плюс необов’язкові заголовки і дія |
| Контакт | MIME text/vcard | текст vCard як є |
| Wi-Fi | MIME application/vnd.wfa.wsc | атрибути Wi-Fi Simple Configuration: SSID, тип автентифікації, ключ |
| Застосунок Android | зовнішній тип android.com:pkg | назва пакета; Android відкриває цей застосунок або його сторінку в Play Store |
Єдина хитра деталь запису URI ховається в байті префікса. Замість того щоб виписувати https://, перший байт навантаження містить код поширеного префікса, а телефон підставляє його назад сам.
| Код | Префікс | Код | Префікс |
|---|---|---|---|
| 00 | немає | 12 | rtsp:// |
| 01 | http://www. | 13 | urn: |
| 02 | https://www. | 14 | pop: |
| 03 | http:// | 15 | sip: |
| 04 | https:// | 16 | sips: |
| 05 | tel: | 17 | tftp: |
| 06 | mailto: | 18 | btspp:// |
| 07 | ftp://anonymous:anonymous@ | 19 | btl2cap:// |
| 08 | ftp://ftp. | 1A | btgoep:// |
| 09 | ftps:// | 1B | tcpobex:// |
| 0A | sftp:// | 1C | irdaobex:// |
| 0B | smb:// | 1D | file:// |
| 0C | nfs:// | 1E | urn:epc:id: |
| 0D | ftp:// | 1F | urn:epc:tag: |
| 0E | dav:// | 20 | urn:epc:pat: |
| 0F | news: | 21 | urn:epc:raw: |
| 10 | telnet:// | 22 | urn:epc: |
| 11 | imap: | 23 | urn:nfc: |
Тож https://nfc.cool/ зберігається як байт 04, за яким іде nfc.cool/: дев’ять байтів навантаження для URL на сімнадцять символів. Даташит NXP на NTAG 5 сам наводить приклад D1 01 0C 55 01, за яким іде nxp.com/nfc, і розшифровується це як http://www.nxp.com/nfc.
Конверт навколо запису
На мітці Type 2 чи Type 5 повідомлення лежить усередині TLV: один байт зі значенням «повідомлення NDEF» (03), один байт довжини (три байти, якщо повідомлення має 255 байтів чи більше), саме повідомлення і байт-термінатор (FE). На мітці Type 4 TLV немає: файл NDEF починається з двобайтової довжини. А на NTAG213 чи NTAG212 із заводу перші п’ять байтів пам’яті користувача вже зайняті Lock Control TLV, який NXP записує заздалегідь і який зберігає кожен застосунок для запису.
Ось арифметика для одного посилання https://, порахована вручну для чипа, який купує більшість:
пам’ять користувача NTAG213: 144 байти
мінус заводський Lock Control TLV: 139
мінус обгортка NDEF TLV (03, довжина, FE): 136 байтів на повідомлення
мінус заголовок запису (прапорці, довжина типу, довжина навантаження,
U): 132 байти навантаженнямінус байт префікса: 131 символ після
https://
Що куди вміщається
| Мітка | Область NDEF | Символів URL після https:// | Мінімальна vCard (132 байти: ім’я, телефон, email, URL) | Типова vCard (від 250 до 500 байтів) | Запис Wi-Fi (від 67 до 88 байтів) |
|---|---|---|---|---|---|
| NTAG210, Ultralight EV1 48 B | 48 | 40 | ні | ні | ні |
| NTAG212 | 128 | 115 | ні | ні | так |
| Ultralight EV1 128 B | 128 | 120 | ні | ні | так |
| NTAG213, заводський стан | 144 | 131 | ні, бракує 9 байтів | ні | так |
| NTAG213, lock TLV видалено | 144 | 136 | ні, бракує 4 байтів | ні | так |
| ST25TN01K | 160 | близько 147 | так, упритул | ні | так |
| NTAG215 | 496 заявлено (504 у користувача) | 483 | так | так, більшість | так |
| NTAG216 | 872 заявлено (888 у користувача) | 859 | так | так | так |
| ICODE SLIX | 112 (разом із CC) | 100 | ні | ні | так |
| ICODE SLIX2 | 316 | близько 300 | так | зазвичай | так |
| NTAG 424 DNA | файл NDEF на 256 байтів | 249 | так | невеликі | так |
| DESFire EV3 2K | файл NDEF до 2048 байтів | до 2038 | так | так | так |
Дві примітки, на яких люди спотикаються. Контейнер можливостей, який NXP записує на NTAG215 і NTAG216, заявляє 496 і 872 байти, менше за пам’ять користувача, тому getMaxSize() в Android повідомляє меншу цифру, і вона правильна. А vCard з ім’ям, телефоном, email і URL займає 132 байти без конверта і 148 разом із ним, тому на NTAG213 вона трохи не влазить, і тому продавці візитівок за замовчуванням беруть NTAG215 або NTAG216. Округлені цифри з посібника для початківців (близько 130, 480 і 850 символів) взято саме звідси, лише без дрібних хвостів.
Карта пам’яті: що де лежить на чипі
Якщо ти колись робив дамп мітки в NFC.cool і вдивлявся в шістнадцяткові числа, ось ключ до цього шифру.
Type 2: карта сторінок NTAG213
| Сторінка | Байти | Вміст |
|---|---|---|
| 00 | 4 | байти UID з 0 по 2 і контрольний байт |
| 01 | 4 | байти UID з 3 по 6 |
| 02 | 4 | контрольний байт, внутрішній байт, два статичні байти блокування для сторінок з 3 по 15 |
| 03 | 4 | контейнер можливостей: E1 10 12 00 (магічне число, версія 1.0, 18 x 8 = 144 байти, читання і запис дозволено) |
| з 04 по 27 | 144 | пам’ять користувача, де живуть TLV |
| 28 | 4 | динамічні байти блокування для сторінок від 16 і далі |
| 29 | 4 | CFG0: налаштування дзеркала, сторінка, на яку потрапляє дзеркало, і AUTH0, перша захищена паролем сторінка |
| 2A | 4 | CFG1: байт ACCESS з бітом захисту читання чи запису і AUTHLIM, ліміт невдалих спроб |
| 2B | 4 | PWD, пароль, доступний лише для запису |
| 2C | 4 | PACK, двобайтове підтвердження, плюс два зарезервовані байти |
NTAG215 має таку саму будову, тільки пам’ять користувача тягнеться до сторінки 81, а конфігурація займає сторінки з 83 по 86; у NTAG216 пам’ять іде до E1, а конфігурація займає сторінки з E3 по E6. Біти контейнера можливостей односторонні: щойно встановлено прапорець «лише для читання» в байті 3 або біт блокування, скинути його вже не вийде, і саме це насправді записує «постійне блокування» в застосунку. «Форматування» на Type 2 записує порожній NDEF TLV (03 00 FE) на сторінку 4; пам’ять воно не обнуляє, тож старі дані можна витягти дампом, доки їх не перезаписано.
Type 4: файлова система NTAG 424 DNA
Сторінок тут немає. Застосунок ISO 7816 з назвою D2760000850101 містить три файли: 32-байтний контейнер можливостей (E103), 256-байтний файл NDEF (E104) і 128-байтний пропрієтарний файл (E105). Кожен файл має власні права на читання, запис і зміну прав, і кожне з них прив’язане до одного з п’яти ключів AES. DESFire працює так само, але дозволяє створювати власні застосунки й файли, а три файли NTAG 424 DNA фіксовані, тому я й описав цей чип як маленький замкнений сейф із трьома шухлядами.
Type 5: блоки ISO 15693
Тут пам’ять поділено на чотирибайтні блоки, пронумеровані від нуля: контейнер можливостей лежить у блоці 0 (E1 40, а за ним розмір), а NDEF TLV починається в блоці 1. UID, AFI, DSFID і стан блокування зберігаються поза адресованими блоками, і їх зчитують окремою командою GET SYSTEM INFORMATION. На ICODE SLIX2 останній адресований блок, 79, містить 16-бітний лічильник; на ICODE 3 блок 75 зберігає 24-бітний лічильник, а блоки від 76 і далі утворюють окрему область конфігурації.
MIFARE Classic: сектори, трейлери і каталог
Classic 1K має 16 секторів по 4 блоки по 16 байтів. Останній блок кожного сектора називається трейлером сектора: ключ A, три байти доступу, один вільний байт, ключ B. Блок 0 сектора 0 відведено під блок виробника з UID. Щоб розмістити NDEF на Classic, NXP придумала каталог: сектор 0 стає MIFARE Application Directory (MAD), який читається відкритим ключем A0 A1 A2 A3 A4 A5, і в ньому вказано, які сектори містять NDEF під кодом застосунку 03 E1. Ці сектори використовують другий відкритий ключ, D3 F7 D3 F7 D3 F7. На новій картці з заводу всі ключі мають значення FF FF FF FF FF FF. Коли NFC.cool на Android форматує картку Classic, він записує саме цей каталог і ці ключі, і саме тому відформатована картка Classic читається на деяких телефонах з Android і на жодному iPhone.
Таблиця вибору
Починай звідси, якщо задача відома, а потрібен чип.
| Задача | Чип | Чому | Підтримка в NFC.cool |
|---|---|---|---|
| посилання, мережа Wi-Fi, тригер для Швидких команд, наліпка на якусь річ | NTAG213 | 131 символ URL, пароль, лічильник, вісім центів | повна на iPhone, Android, iPad і Mac |
| контактна картка, довше посилання, усе, чому потрібен запас | NTAG216 | 859 символів, ті самі функції, чип, на якому я тестую | повна |
| Amiibo | NTAG215 | консоль перевіряє саме цей чип і його 504 байти | резервне копіювання і відновлення на обох платформах |
| підрахунок дотиків на постері, візитівці, демозразку | NTAG213, 215 або 216 | апаратний лічильник зчитувань і ASCII-дзеркало, і саме ці три чипи підтримує Лічильник дотиків у застосунку | Лічильник дотиків на обох платформах |
| крихітна антена, перстень, дешева одноразова мітка | NTAG 210µ або Ultralight EV1 48 B | 48 байтів, 17 пФ для малих котушок, без пароля | читання і запис |
| довести справжність товару одним дотиком, без застосунку | NTAG 424 DNA | кожен дотик підписується AES-128, а копія так не вміє | повне налаштування, зокрема перевірка підпису |
| те саме, але як дешева наліпка Type 2 | NTAG 223 DNA | SUN на чипі Type 2, 144 байти | показується як мітка Type 2; налаштування SUN поки не підтримується |
| пломба, яка повідомляє, що її відкрили | NTAG 213 TT, NTAG 424 DNA TT, ST25TV02KC-T | провідник проти розкриття, стан якого запам’ятовується назавжди | 424 TT повністю; інші читаються як їхній базовий чип |
| інвентар або бібліотека на відстані витягнутої руки з рамкою-зчитувачем | ICODE SLIX2 або ICODE 3 | ISO 15693 читається з 1 чи 1,5 метра на нормальному зчитувачі, а з телефоном усе одно працює від дотику | читання, запис, форматування на обох платформах |
| котушка філаменту для 3D-принтера, яку має читати сам принтер | ICODE SLIX2 | стандарт OpenPrintTag розрахований на NFC-V | читання і запис |
| двері, турнікет, транспортна система | DESFire EV3 або MIFARE Plus EV2 | AES, справжнє керування ключами, сертифікована безпека | визначає чип і робить дамп відкритих даних; операцій з ключами немає |
| безбатарейний датчик, який спілкується з мікроконтролером | NTAG I2C plus, ST25DV, NTAG 5 | інтерфейс I2C і збирання енергії на одному кристалі | читається своєю NFC-стороною |
| усе, що стосується транспорту чи електронних грошей у Японії | FeliCa | саме цією мовою говорять тамтешні зчитувачі | читання; запис NDEF на Lite-S і Standard на iPhone |
| мітка на металевій поверхні | будь-який із наведених чипів у виконанні для металу | працює завдяки феритовому шару, а не чипу | як відповідний чип |
| під шкірою | NTAG216 (xNT), NTAG I2C (xSIID), DESFire (xDF) | малим скляним антенам потрібна найчутливіша точка телефона | як відповідний чип |
Чого в таблиці немає, так це MIFARE Classic. У 2026 році немає жодної задачі, для якої я купив би чип Classic, і розділ нижче пояснює чому.
Родина за родиною
Кожна родина отримує однаковий розбір: таблицю характеристик з даташита, для чого цей чип, що з ним роблять телефони, і примітку з практики, якщо вона в мене є.
NTAG 21x: родина наліпок
Цей чип стоїть майже в кожній NFC-наліпці, монетці й картці, які продають звичайним покупцям, і NXP у 2026 році досі значить їх усі як активні, хоча даташит не змінювався з 2015 року.
| Чип | Байтів для користувача / загалом | Пароль | Лічильник | Дзеркало | Підпис | Ресурс / збереження | Статус |
|---|---|---|---|---|---|---|---|
| NTAG 210µ | 48 / 64 | ні | ні | ні | так, перепрограмовуваний | 100 тис. / 10 років | випускається |
| NTAG210 | 48 / 80 | 32 біти + PACK, AUTHLIM | ні | UID | так | 100 тис. / 10 років | випускається |
| NTAG212 | 128 / 164 | так | ні | UID | так | 100 тис. / 10 років | випускається |
| NTAG213 | 144 / 180 | так | 24-бітний лічильник зчитувань | UID і лічильник | так | 100 тис. / 10 років | випускається |
| NTAG215 | 504 / 540 | так | так | так | так | 100 тис. / 10 років | випускається |
| NTAG216 | 888 / 924 | так | так | так | так | 100 тис. / 10 років | випускається |
| NTAG213F, NTAG216F | 144 або 888 | так | так | так | так | 100 тис. / 10 років | випускається; має вивід детектора поля і режим сну для вбудовування в електроніку |
| NTAG 213 TT | 144 / 184 | так | так | UID, лічильник і стан захисту від розкриття | так | 100 тис. / 10 років | випускається; має провідник проти розкриття |
| NTAG203 | 144 / 168 | ні, 32-бітна область OTP | 16-бітний лічильник записів | ні | ні | 10 тис. / 5 років | знятий з виробництва, замінений на NTAG213 |
Усі вони належать до NFC Forum Type 2 і ISO/IEC 14443 тип A, мають 7-байтний UID, працюють на 106 кбіт/с і розраховані на температуру від -25 до +70 °C. NTAG210 і NTAG212 мають вхідну ємність 17 пФ для малих антен, а у 213, 215 і 216 вона становить 50 пФ. Підпис оригінальності зроблено за ECDSA на кривій secp128r1, він займає 32 байти і зчитується командою READ_SIG; ключ для перевірки наведено в непублічній примітці NXP щодо застосування, тому майже жоден споживчий застосунок його не перевіряє.
На практиці важать три функції. Пароль: 32-бітний PWD, 16-бітний PACK, яким мітка відповідає, AUTH0, що вказує, звідки починається захист, і AUTHLIM, що назавжди виводить мітку з ладу після заданої кількості невдалих спроб. NFC-лічильник: 24 біти, збільшується раз за сеанс зчитування, читається окремою командою. І ASCII-дзеркало, яке вставляє UID і лічильник текстом у повідомлення NDEF, тож звичайний URL при кожному дотику перетворюється на https://example.com/?u=04A1...&c=000123. Насадки для щіток Philips Sonicare, про які я писав, використовують NTAG213 з AUTHLIM, рівним трьом, і саме так насадка блокує сама себе, якщо не вгадати пароль.
З практики: на цих чипах я тестую кожен реліз, і саме NTAG216 я раджу, коли людина хоче купити одну пачку й більше про це не думати. Пароль варто ставити на все, що лишаєш у публічному місці: він зупиняє людину з безкоштовним застосунком, а таких більшість. Людину зі сніфером він не зупинить, бо сам пароль летить в ефірі незашифрованим, і в застосунку я кажу про це прямо.
Що вміють телефони: читання і запис NDEF усюди, фонове зчитування записів URL на iPhone і прямий доступ до пароля, лічильника і дзеркала на обох платформах. NFC.cool робить усе це на iPhone, на Android, а на iPad і Mac через USB-зчитувач.
NTAG DNA: чипи, які підписують кожен дотик
Три покоління, два з яких досі випускають.
| Чип | Тип Forum | Байтів для користувача | Ключі | SUN | Підпис | Ресурс / збереження | Статус |
|---|---|---|---|---|---|---|---|
| NTAG 413 DNA | Type 4 | 160 (32 CC + 128 NDEF) | 3 AES-128 | так, 24-бітний лічильник | ECC | 200 тис. / 50 років | знятий з виробництва |
| NTAG 424 DNA | Type 4 | 416 (32 + 256 + 128) | 5 AES-128, опція LRP, опція Random ID | так, з опцією шифрованого UID | ECDSA secp224r1, 56 байтів, плюс ключі оригінальності AES | 200 тис. / 50 років | випускається; Common Criteria EAL4 |
| NTAG 424 DNA TT | Type 4 | 416 | 5 AES-128 | так, плюс стан захисту від розкриття в повідомленні | такий самий | 200 тис. / 50 років | випускається |
| NTAG 223 DNA | Type 2 | 144 / 240 | один 16-байтний ключ SUN плюс 32-бітний пароль | так, 24-бітний лічильник | ECDSA secp192r1, 48 байтів | 100 тис. / 10 років | випускається з лютого 2022 року |
| NTAG 224 DNA | Type 2 | 208 / 304 | взаємна автентифікація AES-128 замість пароля | так | такий самий | 100 тис. / 10 років | випускається |
| NTAG 223 і 224 DNA StatusDetect | Type 2 | як вище | як вище | так, зі станом датчика в повідомленні | такий самий | 100 тис. / 10 років | випускається |
Саме SUN (Secure Unique NFC) робить ці чипи вартими втричі вищої ціни, ніж NTAG213: мітка дзеркалить свій UID і лічильник зчитувань в URL і додає до них AES-128 CMAC, обчислений заново при кожному дотику. Сервер перевіряє MAC; у клонованої мітки ключа немає, і перевірку вона не проходить. Я розібрав усе це, зокрема режим LRP і п’ять ключів, у дописі про NTAG 424 DNA, тож тут лише те, що змінилося відтоді: NXP тепер продає ще NTAG 426Q DNA і NTAG X DNA, підключений чип Type 4 на 16 кБ із сертифікацією EAL6+. Тож 424 уже не найновіший чип DNA, а просто той, який реально можна купити у вигляді наліпки.
Найцікавіше з нового принесла родина 22x DNA: SUN на чипі Type 2, тобто наліпка дешевша, а телефон читає її як звичайний NTAG. Варіанти StatusDetect додають датчик: або провідний контур, який незворотно фіксує, що його розірвали, або вимірювання ємності від 0 до 11 пФ між двома виводами, яке NXP пропонує для рівня рідини, вологості й тиску.
З практики: перші NTAG 424 DNA я купив на AliExpress за кілька євро і побудував навколо них увесь набір функцій 424 у застосунку: зміну ключів, SUN у відкритому і шифрованому режимах, права доступу до файлів, файл-сховище, стан захисту від розкриття. До того ж лише для 424 NFC.cool перевіряє підпис оригінальності за опублікованим відкритим ключем NXP і показує «Genuine NXP». 22x DNA я знаю лише з паперу.
MIFARE Ultralight: родина квитків
Ultralight доводиться NTAG старшим братом. Той самий радіоінтерфейс, ті самі 4-байтні сторінки, той самий SAK, а починаючи з EV1 і ті самі команди. Різниця в призначенні: Ultralight створювали для разових квитків, а лінійку NTAG для наліпок з URL, тому NTAG постачається із заздалегідь записаним контейнером можливостей, а Ultralight ні.
| Чип | Байтів для користувача / загалом | Захист | Лічильник | Підпис | Ресурс / збереження | Статус |
|---|---|---|---|---|---|---|
| MIFARE Ultralight (MF0ICU1) | 48 / 64 | біти блокування і 32-бітна область OTP | ні | ні | 10 тис. / 5 років | знятий з виробництва |
| Ultralight C | 144 / 192 | взаємна автентифікація triple DES, 16-байтний ключ | 16-бітний односторонній | ні | 100 тис. / 10 років | не рекомендований для нових розробок, замінений на Ultralight AES |
| Ultralight EV1 | 48 / 80 або 128 / 164 | 32-бітний пароль, AUTHLIM | три незалежні 24-бітні односторонні лічильники | так, 32 байти | 100 тис. / 10 років | випускається |
| Ultralight AES | 144 / 240 | взаємна автентифікація AES-128, обмін із CMAC, опція Random ID | три 24-бітні лічильники | так, плюс ключ оригінальності AES | 100 тис. / 10 років | випускається з лютого 2022 року, Common Criteria EAL3+ |
| Ultralight Nano | 40 / 56 | біти блокування і OTP | ні | так | 100 тис. / 10 років | зник з каталогу NXP без жодного повідомлення, яке я зміг би знайти |
Головна відмінність Ultralight EV1 полягає в трьох односторонніх лічильниках: транспортний оператор списує поїздки, і чип відмовляється рахувати назад. Ultralight AES тихо відповідає на побажання «хочу NTAG213 зі справжньою автентифікацією»: ті самі 144 байти, AES-128 замість пароля, на мітці Type 2, яку прочитає будь-який телефон.
Що вміють телефони: усе з цієї таблиці читається як мітка Type 2. Core NFC від Apple має родину .ultralight і дозволяє застосунку надсилати власні команди чипа; в Android є клас MifareUltralight, необов’язковий, але присутній на кожному телефоні, який я бачив. NFC.cool розпізнає варіанти EV1 та AES за GET_VERSION і працює з паролем на EV1 так само, як з паролем NTAG; саму автентифікацію AES застосунок не виконує.
MIFARE Classic, Plus і DESFire: родина контролю доступу
Три родини в одному розділі, бо історія в них одна: Classic зламали, Plus став шляхом міграції, а на DESFire галузь зрештою й зупинилася.
MIFARE Classic стоїть у твоєму старому ключі від готелю, картці спортзалу і величезній кількості офісних пропусків. До типів міток NFC Forum він не належить. У нього власний шифр, CRYPTO1, який у 2008 році розібрали дві дослідницькі групи: Ноль і Пльотц, роздивившись кремній під мікроскопом, і група з Університету Радбауда, яка спостерігала за протоколом і відновлювала ключ «лише з однієї-двох спроб автентифікації зі справжнім зчитувачем менш ніж за секунду». NXP подала до суду, щоб зупинити другу статтю, і програла. Через шістнадцять років, у серпні 2024-го, Quarkslab опублікувала апаратний бекдор у Fudan FM11RF08S, найпоширенішому сумісному з Classic чипі останніх п’яти років, і знайшла старіший бекдор-ключ, спільний для ранніх чипів Fudan, деяких чипів Infineon і навіть деяких чипів NXP приблизно 2000 року. Для захисту Classic не годиться, і на сторінці самої NXP про Classic EV1 тепер написано «не рекомендовано для нових розробок» з відсиланням до DESFire Light.
| Чип | Байтів для користувача / загалом | UID | Захист | Ресурс / збереження | Статус |
|---|---|---|---|---|---|
| Classic Mini | 224 / 320 | 4 байти | CRYPTO1 | 100 тис. / 10 років | знятий з виробництва |
| Classic 1K | 752 / 1024 | 4-байтний NUID | CRYPTO1 | 100 тис. / 10 років | знятий з виробництва; EV1 не рекомендований для нових розробок |
| Classic 4K | 3440 / 4096 | 4-байтний NUID | CRYPTO1 | 100 тис. / 10 років | знятий з виробництва; EV1 не рекомендований |
| Classic EV1 1K і 4K | як вище | 7 або 4 байти, опція випадкового ID | CRYPTO1; перевірка оригінальності лише на 1K | щонайменше 100 тис. / 10 років | не рекомендований для нових розробок |
Пряма відповідь щодо iPhone, бо мене питають про це щотижня: iPhone не може прочитати вміст картки MIFARE Classic, і жоден застосунок цього не змінить. У Core NFC від Apple немає родини Classic в API, а документація до його команди MIFARE прямо каже, що він «не підтримує протокол Crypto1». Телефон бачить UID і SAK, мій застосунок за ними називає родину, і на цьому все. З Android інакше: клас MifareClassic необов’язковий, його реалізують телефони, у NFC-контролері яких CRYPTO1 зроблено апаратно (у контролерах NXP так, а в чипах Broadcom цілого покоління телефонів Nexus і Galaxy ні), і на таких телефонах NFC.cool читає кожен сектор, який відкриває заводський ключ, і може відформатувати нову картку під NDEF.
MIFARE Plus бере карту пам’яті Classic і прикручує до неї AES-128, щоб оператор міг спершу замінити картки, а зчитувачі потім. Він працює на рівнях безпеки: SL1 поводиться як Classic (з необов’язковим AES), SL3 працює лише з AES через ISO-DEP, а в Plus X між ними був ще SL2. Plus S і Plus X зняті з виробництва; Plus SE (1K, 752 байти) і Plus EV2 (2K або 4K, EAL5+, збереження 25 років, типовий ресурс 1 000 000 циклів) актуальні. На SL1 телефон бачить SAK 08 або 18, як у Classic, а на SL3 бачить картку ISO-DEP.
MIFARE DESFire влаштований зовсім інакше: усередині невелика файлова система із застосунками, файлами, правами доступу до кожного файлу і до 14 ключів на застосунок, а говорить він командами APDU через ISO-DEP на швидкості до 848 кбіт/с.
| Чип | Доступна пам’ять | Криптографія | Додатково | Ресурс / збереження | Статус |
|---|---|---|---|---|---|
| DESFire D40 | 4 кБ | DES, triple DES | 100 тис. / 10 років | виведений з обігу у 2011 році; того ж року його ключі відновили аналізом енергоспоживання | |
| DESFire EV1 | 2304, 4864 або 7936 байтів | DES, 3DES, AES-128 | підтримка NFC Forum Type 4, випадковий ID | щонайменше 200 тис. / 10 років | не рекомендований для нових розробок |
| DESFire EV2 | 2560, 5120, 8192 або 16384 байти | AES-128, EAL5+ | MAC транзакцій, перевірка близькості, підпис оригінальності | 200 тис. / 25 років | не рекомендований для нових розробок |
| DESFire EV3 | 2560, 5120, 8192 або 16384 байти | AES-128, EAL5+ | усе з EV2 плюс SUN/SDM і таймер транзакцій; сертифікат NFC Forum Type 4 № 58652 | щонайменше 200 тис., типово 1 млн / 25 років, від -25 до +85 °C | випускається |
| DESFire Light | 640 байтів | лише AES-128, опція LRP, EAL4 | один фіксований застосунок із шістьма файлами | 200 тис. / 10 років | випускається |
«2K» у назві DESFire не означає 2048 байтів, якими можна користуватися напряму. Порівняльна примітка NXP дає доступні цифри, наведені в таблиці, а кожен створений застосунок і файл забирає шматок на власні заголовки, причому пам’ять виділяється сторінками по 256 байтів. Питай саму картку командою FreeMemory, а не вір етикетці. DESFire EV3 також приніс у родину SUN, тож EV3 уміє той самий трюк NTAG 424 DNA з підписом URL, а EV2 ні.
Що вміють телефони: iOS віддає DESFire як мітку MIFARE .desfire або як мітку ISO 7816, якщо застосунок запитує NDEF-застосунок картки; Android використовує IsoDep. NFC.cool визначає покоління і розмір за GetVersion і показує застосунки та файли, які дозволено бачити без ключів. Автентифікації на DESFire і запису на нього NFC.cool не робить: для цього в оператора є власні інструменти, і я краще так прямо й скажу, ніж удаватиму інше.
ISO 15693: родина далекої дії
Ці чипи створювали для метра, а не для сантиметра. Телефон їх усе одно читає (Apple з iOS 13, Android через NfcV), і GoToTags виміряли, що на iPhone мітки Type 5 читаються приблизно вдвічі далі, ніж мітки Type 2, але живуть вони переважно в бібліотечних рамках, на складських стелажах і в пральнях. UID має 8 байтів і починається з E0, блоки мають по 4 байти, а родина додає три речі, яких немає в чипів типу A: AFI (байт родини застосувань, за яким зчитувач може фільтрувати), DSFID (байт формату даних) і EAS, біт електронного нагляду за товаром, через який пищить рамка в магазині.
NXP ICODE. Родовід такий: SLI (2000), SLI-S і SLI-L (2007), SLIX і його варіанти S та L (2010), SLIX2 (2014), ICODE DNA (2016) і ICODE 3 (2024). Ніякого «SLIX3» не існує; оголошення, де так написано, має на увазі ICODE 3 або просто вгадує.
| Чип | Байтів для користувача / загалом | Захист | Лічильник | Підпис | Ресурс / збереження | Статус |
|---|---|---|---|---|---|---|
| ICODE SLI | 112 / 128 | лише біти блокування | ні | ні | 100 тис. / 10 років | кінець життєвого циклу |
| ICODE SLI-S | 160 / 256 | п’ять 32-бітних паролів: читання, запис, знищення, приватність, EAS | ні | ні | 100 тис. / 10 років | знятий з виробництва |
| ICODE SLI-L | 32 / 64 | три паролі | ні | ні | 100 тис. / 10 років | знятий з виробництва |
| ICODE SLIX | 112 / 128 | один 32-бітний пароль для EAS і AFI | ні | ні | 100 тис. / 50 років | не рекомендований для нових розробок |
| ICODE SLIX-S | 160 / 256 | п’ять 32-бітних паролів, режим приватності, знищення | ні | ні | 100 тис. / 50 років | випускається |
| ICODE SLIX-L | 32 / 64 | три паролі | ні | ні | 100 тис. / 50 років | випускається |
| ICODE SLIX2 | 316 / 320 | п’ять 32-бітних паролів, режим приватності, знищення | 16-бітний, збільшується командою запису | так, 32 байти | 100 тис. / 50 років | випускається |
| ICODE DNA | 252 / 256 | взаємна автентифікація AES-128, три ключі | 16-бітний | так, перепрограмовуваний | 100 тис. / 50 років | випускається |
| ICODE 3 | 300 / 304 плюс 192-байтна область конфігурації | шість 32-бітних паролів, два режими приватності | 24-бітний, уміє рахувати дотики, як NTAG | так, 32 або 48 байтів, перепрограмовуваний | 100 тис. / 50 років, до 105 °C | випускається; є варіант TagTamper |
Про ICODE 3 варто знати: він дзеркалить UID і свій лічильник дотиків у повідомлення NDEF так само, як NTAG213, читається на швидкості до 212 кбіт/с і сам підлаштовує свою антену. AES у нього немає: AES має ICODE DNA, і жоден з них не підтримує SUN.
STMicroelectronics ST25TV і ST25DV. Лінійка Type 5 від ST, і цифри в даташитах у неї найкращі в усьому посібнику.
| Чип | Байтів для користувача | Захист | Лічильник | Підпис | Ресурс / збереження | Статус |
|---|---|---|---|---|---|---|
| ST25TV512, ST25TV02K | 64 або 256 | 32- або 64-бітні паролі, kill, режим невідстежуваності, захист від розкриття у варіанті -AD | 16-бітний лічильник подій запису | TruST25 | 100 тис. / 60 років | не рекомендований для нових розробок |
| ST25TV512C, ST25TV02KC | 64 або 320 | паролі, kill, тихий і непомітний режими, захист від розкриття у варіанті -T | немає; натомість 3-значний унікальний код дотику | TruST25 | 100 тис. / 60 років | випускається, доступний до 2035 року |
| ST25TV04K-P | 512 | 64-бітні паролі, kill | ні | ні | 1 млн / 40 років | випускається; має вивід для збирання енергії |
| ST25TV16K, ST25TV64K і версії KC | 2048 або 8192 | 64-бітні паролі, kill | ні | ні | 1 млн / 40 років | версії K не рекомендовані, версії KC випускаються |
| ST25DV04K, 16K, 64K і версії KC | 512, 2048 або 8192 | три 64-бітні RF-паролі плюс пароль I2C | ні | ні | 1 млн / 40 років | версії K не рекомендовані, версії KC випускаються |
| M24LR04E, 16E, 64E | 512, 2048 або 8192 | 32-бітні паролі | ні | ні | 1 млн / 40 років | не рекомендовані для нових розробок |
Augmented NDEF у ST25TV02KC заслуговує на окремий абзац, бо його продають як захист. При кожному зчитуванні чип вставляє в URL свій UID, власне поле і трисимвольний унікальний код дотику, не чіпаючи EEPROM. Код змінюється з кожним дотиком, і даташит ST прямим текстом називає його «передбачуваним». Цей маркер свіжості повідомляє серверу, що дотик новий, але не доводить, що мітка справжня. Справжність перевіряє TruST25, підпис оригінальності ST над UID, і, як і підпис NXP, він статичний, тож клон може його скопіювати.
Решта світу Type 5. Інлеї Tag-it HF-I від Texas Instruments (Standard на 32 байти, Pro на 32 байти із захищеним паролем записом і командою kill, Plus на 256 байтів) стоять у кожній бібліотеці, яка перейшла на NFC до 2015 року, і всі вони тепер мають позначку «не рекомендовано» або «застарілий». EM4233 від EM Microelectronic (208 байтів, режим приватності з 96-бітним ключем, збереження 60 років) доступний на замовлення. my-d від Infineon і MB89R118 від Fujitsu є в коді розпізнавання NFC.cool, бо їх надіслали користувачі. NTAG 5 від NXP (link, boost, switch) попри назву NTAG належить до ISO 15693, має 2048 або 512 байтів, порт I2C, збирання енергії до 30 мВт і EEPROM на 1 000 000 циклів і 40 років. Йдеться про підключену мітку для електроніки, а не про наліпку, і програмне забезпечення, написане для NTAG21x, з нею не порозуміється.
З практики: SLIX2 стоїть у кожній котушці філаменту з OpenPrintTag, тож через мої руки їх пройшло чимало, і NFC.cool читає, записує і форматує їх на обох платформах. Чого застосунок не вміє, і я хочу сказати про це чітко, так це команд ISO 15693 для пароля, приватності, EAS і AFI. Байти команд лежать у коді як довідкова таблиця, а кнопок для них поки немає.
Type 4 поза MIFARE: ST25TA
Родина ST25TA від ST складається з міток Type 4 на ISO/IEC 14443 тип A без усієї машинерії DESFire: один файл NDEF, файл контейнера можливостей і системний файл, два 128-бітні паролі (на читання і на запис) і 20-бітний лічильник подій, який може рахувати зчитування або записи.
| Чип | Файл NDEF | Паролі | Лічильник | Підпис | Ресурс / збереження | Статус |
|---|---|---|---|---|---|---|
| ST25TA512, ST25TA512B | 64 байти | два 128-бітні | 20-бітний на B | TruST25 на B | 1 млн / 200 років | 512 не рекомендований |
| ST25TA02K, ST25TA02KB (-P, -D) | 256 байтів | два 128-бітні | 20-бітний | TruST25 на B | 1 млн / 200 років | 02K і 02KB не рекомендовані; 02KB-P і 02KB-D випускаються |
| ST25TA16K, ST25TA64K | 2048 або 8192 байти | два 128-бітні | ні | ні | 1 млн / 200 років | випускається |
Двісті років збереження і мільйон циклів запису, щоправда лише на 106 кбіт/с. Варіанти -P і -D мають вихід загального призначення, який перемикається, коли мітку зчитують, і саме так можна змусити лампу реагувати на телефон. На обох платформах ці чипи читаються як мітки Type 4; NFC.cool читає і записує на них NDEF і показує подробиці ISO-DEP.
Датчики і чипи з двома інтерфейсами
У цих чипів два обличчя: з одного боку антена NFC, з іншого шина I2C, датчик або друге радіо.
| Чип | Бік NFC | Інший бік | Пам’ять | Що варто знати |
|---|---|---|---|---|
| NTAG I2C plus (NT3H2111, NT3H2211) | Type 2, 888 або 1912 байтів, 32-бітний пароль, підпис | I2C до 400 кГц, 64-байтний буфер SRAM для наскрізної передачі, вивід детектора поля | від 200 до 500 тис. / 20 років | збирання енергії до 15 мВт; саме цей чип стоїть в імплантаті xSIID |
| ST25DV (див. вище) | Type 5 | I2C до 1 МГц, 256-байтна поштова скринька для потокової передачі | 1 млн / 40 років | збирання енергії на виводі V_EH, нерегульоване, «кілька мкВт» за даташитом |
| NTAG 5 link, boost, switch | Type 5, 2048 або 512 байтів, AES на 5332 | I2C, GPIO, виходи PWM | 1 млн / 40 років | збирання енергії до 30 мВт; варіанту switch мікроконтролер узагалі не потрібен |
| NHS3100 | Type 2, емулюється прошивкою | Cortex-M0+ з датчиком температури з точністю 0,3 °C | 32 кБ флешу, 4 кБ EEPROM | реєстратор холодового ланцюга на плівці, сертифікований NFC Forum |
| EM4423 «em echo» | Type 2, область NDEF на 240 байтів | UHF RAIN RFID, та сама пам’ять, той самий серійний номер | 100 тис. / 10 років | знятий з виробництва |
| EM4425 «em echo-V» | Type 5, до 256 спільних байтів | UHF RAIN RFID, AES-128, контакти захисту від розкриття, цифровий підпис | 100 тис. / 50 років | випускається; один кристал, який телефон читає з сантиметра, а UHF-зчитувач на воротах складу з кількох метрів |
Нічого з цими чипами я не будував, тож ця таблиця складена лише за даташитами. Для посібника вони важливі, бо в оголошеннях фігурують як «NFC-чип» і плутають людей: NTAG 5 не працює як NTAG213, а мітка em echo нічого особливого на телефоні не зробить.
Застарілі й нішеві
Topaz (Innovision, згодом Broadcom) належить до NFC Forum Type 1: блоки по 8 байтів, 96 або 512 байтів, одноразові блокування, 10 000 циклів запису. Обидві платформи досі читають NDEF з Topaz, але NFC Forum прибрав Type 1 зі свого набору специфікацій 2021 року, і в нові пристрої його більше ніхто не закладає. У перепродавців він ще лежить на складах.
FeliCa належить Sony і тримає на собі громадський транспорт Японії. FeliCa Lite-S (224 байти пам’яті користувача в блоках по 16 байтів, 8-байтний IDm, спрощений MAC на triple DES) призначена для міток і відповідає NFC Forum Type 3; FeliCa Standard зроблена як смарт-картка, тепер з AES і рейтингом Common Criteria EAL6+ на сучасному RC-SA01, і саме на ній працюють Suica, PASMO, Edy, WAON, nanaco і гонконзька Octopus. Модулі FeliCa Plug від Sony зняли з виробництва в березні 2026 року. NFC.cool на обох платформах називає транспортні й платіжні бренди за системним кодом, читає Lite-S і Standard, а на iPhone записує на них NDEF.
Kovio NFC Barcode робили з друкованого кремнію: мітка лише для читання на 16 байтів. В Android досі є для неї клас NfcBarcode. Активи Kovio у 2014 році перейшли до Thinfilm, а Thinfilm припинила виробництво NFC у 2019 році і перейменувалася у 2021-му. Клас лишився скам’янілістю.
Чипи пам’яті ISO 14443 тип B. SRI512, SRT512 і SRI4K від ST (512 або 4096 бітів у 32-бітних блоках, два лічильники зворотного відліку, 1 000 000 циклів, 40 років) живуть у французькому та бельгійському транспорті й у деяких лижних абонементах. Android відкриває їх через NfcB, а в iPhone взагалі немає об’єкта для сирої мітки типу B, тож якщо картка типу B не говорить ISO-DEP і не відповідає на SELECT, iPhone її не побачить. Calypso, паризька система Navigo, використовує смарт-картку типу B, яка якраз відповідає.
Клони і сумісні чипи
Цей розділ оголошення воліли б від тебе сховати.
Найпоширеніший «NTAG213», який насправді не NTAG213, називається Fudan FM11NT021. У нього ті самі 180 байтів у 45 сторінках, та сама 144-байтна область користувача, пароль, 24-бітний лічильник зчитувань і код виробника Fudan 1D в UID. GET_VERSION він не підтримує, а в його актуальному даташиті немає команди READ_SIG, тож зчитувач, який ставить будь-яке з цих питань, чує тишу і починає вгадувати за розміром пам’яті, через що спільнота Proxmark3 бачить його як NTAG203. Fudan робить і версії на 504 та 888 байтів (FM11NT041, FM11NT081). Для посилання на наліпці вони годяться. Для Amiibo ні, бо консоль першим ділом надсилає GET_VERSION.
Fudan FM11RF08 і FM11RF08S стоять у більшості дешевих карток «1K», сумісних з Classic. У 2020 році 08S отримав захист від відомих атак на Classic, а потім виявилося, що він має апаратний бекдор-ключ, спільний для всіх випущених карток. Quarkslab оприлюднила це у 2024 році разом з інструментами, які тепер входять до прошивки Proxmark3.
Магічні картки MIFARE Classic зроблено так, щоб UID і блок виробника можна було перезаписати, чого справжній Classic ніколи не дозволяє. Їхні покоління складають окреме хобі:
| Покоління | Як змінюється UID | Чи можна виявити | Примітки |
|---|---|---|---|
| Gen1a, Gen1b | бекдор-команда пробудження | так, будь-який зчитувач може перевірити наявність бекдору | оригінальна «китайська магічна картка»; системи доступу її відсіюють |
| Gen2, CUID | звичайний запис у блок 0 після автентифікації | бекдору для перевірки немає; зчитувачу доводиться спробувати запис | сумісна з телефонами, сьогодні найпоширеніша |
| FUID, UFUID | один раз або до запечатування | до запечатування | одноразові картки, щоб назавжди скопіювати пропуск |
| Gen3, APDU | спеціальні команди APDU | зчитувачем, який знає ці команди | |
| Gen4 GTU, GDM, «Ultimate» | конфігурація під паролем; також уміє емулювати Ultralight і NTAG | лише поки пароль стандартний | хамелеон у формі картки, із 7-байтним UID і будь-якою родиною |
Бувають і магічні картки NTAG21x, а ті, що емулюють повністю, приймуть навіть скопійований підпис оригінальності, і саме про це говорить NXP, коли пише про статичні підписи.
«Сумісні з NTAG215» для Amiibo. Усередині Amiibo стоїть звичайна NTAG215, чиї 540 байтів несуть дані, зашифровані й підписані ключами, похідними від UID самої мітки. Скопіюй байти на іншу мітку, і підписи вже не збігаються, тому резервну копію треба переробити під ключі цільової мітки, похідні від її UID, і саме це робить резервне копіювання і відновлення Amiibo в NFC.cool. Консоль зчитує мітку так: спершу GET_VERSION, потім автентифікація паролем, похідним від UID, потім читання всіх 135 сторінок разом з конфігураційними. Чип без GET_VERSION або з 45 сторінками замість 135 відпадає вже на першому кроці. Документація TagMo вкладає це в один рядок: розпізнається лише NTAG215.
Як клон виглядає в застосунку. NFC.cool насамперед розпізнає чип за GET_VERSION. Чип, який на неї не відповідає або повідомляє розмір пам’яті, що не збігається із заявленим, отримує назву за тим, чим він є насправді, а не за оголошенням. На NTAG 424 DNA застосунок іде на крок далі і перевіряє підпис оригінальності ECDSA за відкритим ключем NXP. Лише тут напис «Genuine NXP» у застосунку має криптографічне підґрунтя. Для NTAG21x застосунок підпис не читає, почасти тому, що ключ перевірки NXP закритий NDA, а почасти тому, що скопійований статичний підпис усе одно пройде перевірку. Чесний ланцюжок доказів для мітки Type 2 такий: код виробника, GET_VERSION, розмір пам’яті і наявність функцій, які чип собі приписує.
Форм-фактори і дальність зчитування
Що вміє мітка, вирішує чип; чи дотягнеться до неї телефон, вирішує форм-фактор.
| Форм-фактор | Що це | Типова антена | Дальність з телефоном | Характеристики і примітки |
|---|---|---|---|---|
| Мокрий інлей | витравлена антена і чип на PET-плівці з клеєм і захисною підкладкою | від 22 до 38 мм | від 2 до 4 см | найдешевший спосіб купити чип; клеїться один раз |
| Сухий інлей | те саме без клею | як вище | як вище | для ламінування всередину чогось іншого |
| Паперова чи PET-наліпка | інлей з поверхнею для друку | від 22 до 38 мм | від 2 до 4 см | на папері можна друкувати, а PET переживе воду |
| PVC-картка | ISO 7810 ID-1, 85,60 x 53,98 мм, товщина 0,76 мм | уся картка | від 3 до 5 см | найбільша антена, яку ти триматимеш у руках; саме на неї розраховують зчитувачі |
| Монетка, епоксидний жетон | інлей під твердим куполом зі смоли, часто з отвором | від 20 до 30 мм | від 2 до 3 см | водонепроникна; саме такий форм-фактор в Amiibo |
| Брелок | інлей у корпусі з ABS | від 20 до 30 мм | від 2 до 3 см | брелок GoToTags має клас IP67 і розрахований на температуру від -25 до +75 °C |
| Браслет | силікон з інлеєм | від 20 до 25 мм | від 1 до 3 см | фестивалі, басейни; браслет гнеться, а інлей не повинен |
| Для металу | інлей з феритовим листом між антеною і металом | від 22 до 34 мм | від 2 до 3 см на металі | Seritag для тієї самої 22-мм мітки вимірює від 21 до 25 мм на металі проти від 26 до 30 мм без нього; промислова версія на 34 мм читається з відстані від 31 до 40 мм, має клас IP68 і витримує від -25 до +85 °C |
| Пральна мітка | чип у ґудзику з PPS | 16 мм | від 1 до 2 см | Smartrac розраховує свою HF-мітку для прання на 200 циклів, від -30 до +200 °C і 60 бар; більшість пральних міток працюють на ISO 15693 і несуть лише UID |
| Імплантат | чип у скляній капсулі 2 x 12 мм або в гнучкому полімері | кілька міліметрів | потрібна саме найчутливіша точка телефона | xNT побудований на NTAG216, NExT додає T5577 на 125 кГц, xSIID поєднує NTAG I2C plus зі світлодіодом, xDF побудований на DESFire; гнучкі версії читаються значно краще за скляні |
Більшість скарг «не читається» пояснюють два фізичні правила. Розмір антени задає дальність, приблизно так: картка читається здалеку краще, ніж монетка, монетка краще, ніж 10-мм інлей, а імплантату потрібен майже контакт. Метал розлаштовує антену: котушка на металевій поверхні наводить у металі вихрові струми, її індуктивність падає, а резонанс відпливає від 13,56 МГц, тож звичайна мітка на сталевій шафі мертва. Феритовий лист між котушкою і металом перенаправляє поле і повертає мітку до життя ціною меншої дальності і вищої ціни, тому мітки для металу коштують утричі дорожче.
Де тримати телефон, важить не менше, ніж сама мітка. В iPhone антена стоїть біля верхнього краю, і Apple сама радить «піднести верхню частину iPhone» до мітки. На Android усе залежить від моделі: зазвичай антена в центрі задньої панелі або біля камери. Покроково все описано в посібнику для початківців.
Хто що зчитує
Матриця телефонів і зчитувачів. Стовпці для телефонів узято з документації Apple і Google та з мого власного застосунку; стовпці для настільних і аматорських пристроїв узято зі специфікацій виробників і документації самих проєктів, і ці пристрої я сам не тестував, крім зчитувачів, названих у стовпці про iPad і Mac.
| Родина чипів | iPhone у фоні | iPhone у застосунку | Android | iPad і Mac з USB-зчитувачем | Web NFC (Chrome на Android) | ACR122U | ACR1552U, OMNIKEY 5022 | Плата PN532 | Proxmark3 | Flipper Zero |
|---|---|---|---|---|---|---|---|---|---|---|
| NTAG21x, Ultralight EV1, інші Type 2 | лише записи URL | NDEF, пароль, лічильник, дзеркало, дамп | те саме | те саме, через NFC.cool | лише NDEF | так | так | так | так, плюс емуляція | так, плюс емуляція |
| NTAG 22x DNA | записи URL | NDEF, сирі команди | те саме | як Type 2 | NDEF | так | так | так | так | читає як NTAG |
| NTAG 424 DNA, ST25TA, DESFire як Type 4 | записи URL | NDEF, APDU | NDEF, APDU | NDEF, повне налаштування 424 | NDEF | так | так | так | так | читає NDEF; без операцій з ключами |
| Ultralight C | NDEF, якщо відформатовано | NDEF, власні команди чипа | те саме | NDEF | NDEF | так | так | так | так | так |
| Ultralight AES | NDEF, якщо відформатовано | NDEF, власні команди чипа | те саме | NDEF | NDEF | так | так | так | так | читає як Ultralight |
| MIFARE Classic | ні | лише UID і родина | повне читання і запис на телефонах, контролер яких має CRYPTO1 | лише читання NDEF, загальновідомі ключі | ні | так, з ключами | так, з ключами | так, з ключами | так, плюс відновлення ключів та емуляція | так, плюс відновлення ключів та емуляція |
| MIFARE Plus | ні | UID на SL1; ISO-DEP на SL3 | як Classic на SL1; IsoDep на SL3 | UID | ні | так | так | так | так | не задокументовано |
| DESFire, нативний режим | ні | родина і версія, APDU | IsoDep | версія | ні | так | так | так | так | лише читання і збереження |
| ISO 15693: ICODE, ST25TV, ST25DV, TI, EM | записи URL | повний набір команд ISO 15693 з iOS 13 | NfcV | не перевірено | NDEF | ні | так | ні | так, плюс емуляція | так, плюс емуляція |
| FeliCa Lite-S і Standard | записи URL | читання і запис із заявленим системним кодом | NfcF | читання; запис на FeliCa через NFC.cool | NDEF | так | лише UID на OMNIKEY | так | так | читання й емуляція Lite-S |
| Topaz (Type 1) | NDEF | NDEF | NDEF | не перевірено | NDEF | так | не задокументовано | так | так | не задокументовано |
| Пам’ять ISO 14443 тип B (SRI512) | ні | ні | NfcB | не перевірено | ні | так | так | лише як зчитувач | так | лише UID |
| Пропуски на 125 кГц, чипи тварин, UHF-етикетки | ні | ні | ні | ні | ні | ні | ні | ні | 125 кГц так | 125 кГц так |
Кілька рядків варті окремого речення.
Фонове зчитування на iPhone спрацьовує лише для запису URL у NDEF, лише коли телефон розблоковано і ним користуються, і не працює, поки активні камера, Wallet, сеанс зчитування або режим польоту. Сирий чип воно не читає ніколи. Потрібен iPhone XS або новіший.
Які iPhone взагалі читають мітки: iPhone 7 і новіші в застосунку, за сесією Apple на WWDC 2019. Запис і сирі команди з’явилися в iOS 13.
Клас
MifareClassicв Android необов’язковий. Слова самої Google: «якщо його не реалізовано, MifareClassic ніколи не буде перелічено». Вирішує контролер, а не версія Android.Web NFC працює лише з NDEF, у Chrome 89 і новіших, лише на Android, а Apple ставиться до нього негативно, тож версії для Safari не буде. Тому NFC-зчитувач онлайн на цьому сайті працює на Android, а власникам iPhone радить скористатися застосунком.
В iPad і Mac немає NFC-радіо. Починаючи з NFC.cool 6.15.0 застосунок натомість спілкується з USB-зчитувачем CCID через стек смарт-карток Apple. Я тестував HID OMNIKEY 5022 CL, користувачі повідомили, що працюють ACS ACR1552U-M1 і ACR1255U-J1, а окремий допис перелічує обмеження. Встановити пароль NTAG через зчитувач можна, але щоб зняти його, потрібна команда, яку OMNIKEY відхиляє, тож знімати пароль доведеться телефоном.
ACS ACR122U не підтримує ISO 15693, як і ACR1252U та ACR1255U-J1. У лінійці ACS з ним працює лише ACR1552U. OMNIKEY 5022 уміє і те, і те. Варто знати, перш ніж купувати зчитувач для бібліотечних міток.
Proxmark3 і Flipper Zero уміють відновлювати ключі MIFARE Classic і емулювати картки. Для цього їх і створено, а згадую я їх тому, що без них відповідь на питання «що це зчитує» була б нечесною.
| Зчитувач | Інтерфейс | Тип A | Тип B | FeliCa | ISO 15693 | 125 кГц | Classic із ключами | Відновлення ключів Classic | Емуляція | Ціна у вересні 2026 року |
|---|---|---|---|---|---|---|---|---|---|---|
| ACS ACR122U | USB, PC/SC | так | так | так | ні | ні | так | ні | ні | від 40 до 50 USD; ACS зняла його з виробництва, підробки трапляються часто |
| ACS ACR1252U | USB, PC/SC | так | так | так | ні | ні | так | ні | режим емуляції картки | 97,50 USD |
| ACS ACR1552U | USB, PC/SC | так | так | так | так | ні | так | ні | режим емуляції картки | 44,81 USD |
| ACS ACR1255U-J1 | Bluetooth і USB | так | так | так | ні | ні | так | ні | ні | 64,81 USD |
| HID OMNIKEY 5022 CL | USB, PC/SC | так | так | лише UID | так | ні | так | ні | ні | 69,99 EUR |
| Плата PN532 | SPI, I2C, UART | так | лише як зчитувач | так | ні | ні | так | інструменти на комп’ютері | Classic 1K/4K і FeliCa | від 24 до 40 USD |
| Proxmark3 RDV4 | USB, опційно BLE | так | так | так | так | так | так | так | так | від 329 до 529 EUR |
| Proxmark3 Easy | USB | так | так | так | так | так | так | частково | так | 78 EUR; клони приблизно від 28 GBP |
| Flipper Zero | автономний, USB-C, BLE | так | обмежено | Lite-S | так | так | так | так | так | 169 USD |
| Chameleon Ultra | USB-C, BLE | читання й емуляція | ні | ні | ні | емуляція і читання | так | так | так | 129 EUR |
Що NFC.cool Tools робить з кожним чипом
На цьому місці в дописі зазвичай з’являється те, що я зробив сам, і тут воно доречне, бо кожен рядок вище закінчується питанням «а що з цим робить застосунок». Рекламою таблицю нижче не назвеш: я витягнув її з вихідного коду застосунку, поки писав цей посібник, і вона виправила дві речі, які я інакше стверджував би.
| Родина чипів | iPhone | Android | iPad і Mac зі зчитувачем |
|---|---|---|---|
| Розпізнавання продукту | близько 60 назв: від NTAG203 до 216, NTAG I2C, Ultralight і C, Ultralight EV1 за розміром, Ultralight AES, Classic Mini, 1K і 4K, Plus 2K і 4K за рівнем безпеки, DESFire EV1, EV2 і EV3 за розміром, NTAG 424 DNA і його варіант TagTamper, ICODE SLI, SLI-S, SLI-L, SLIX, SLIX-S, SLIX-L і SLIX2, TI Tag-it Standard, Pro і Plus, ST25TV, ST25DV і M24LR, Infineon my-d, Fujitsu MB89R118, EM4233 і EM4423, FeliCa Lite і Standard плюс Suica, PASMO, ICOCA, Edy, WAON і nanaco; картки EMV і PIV розпізнаються саме як такі | близько 20 назв: NTAG203, 213, 215 і 216, NTAG 424 DNA, DESFire, Classic Mini, 1K і 4K, Plus 2K і 4K, JCOP і SmartMX, бренди FeliCa, зокрема Octopus; чипи ISO 15693 показуються за розміром, а не за продуктом | тип картки з ATR, тобто відповіді на скидання, яку повертає зчитувач |
| Читання NDEF | кожна родина | кожна родина | Type 2, Type 4, FeliCa; Classic з відкритими ключами |
| Запис NDEF, очищення мітки | Type 2, Type 4, Type 5, FeliCa Lite-S і Standard | Type 2, Type 5, MIFARE Classic з каталогом NDEF, усе, що Android може відформатувати | Type 2, Type 4, FeliCa |
| Обнулення всієї пам’яті | Type 5 | Type 2, Type 5, Classic | як на iPhone |
| Постійне блокування | байти блокування Type 2; NDEF лише для читання на Type 4, Type 5 і FeliCa; на NTAG 424 DNA навмисно заборонено | Type 2 | так |
| Пароль | NTAG213, 215, 216 і 203 | родина Type 2 | встановлення так; зняття залежить від зчитувача |
| Лічильник дотиків і дзеркало | NTAG213, 215, 216 | NTAG213, 215, 216 | так |
| Повний дамп пам’яті | Type 2, ISO 15693, перелік файлів DESFire, FeliCa, файли NTAG 424 DNA | Classic із заводським ключем, Ultralight, ISO 15693, FeliCa, будь-який тип A | Type 2, Type 4, FeliCa |
| Вміст MIFARE Classic | ні; у Core NFC немає CRYPTO1 | читання із заводським ключем, форматування і запис із загальновідомими ключами | лише читання NDEF |
| NTAG 424 DNA | ключі, SUN у відкритому і шифрованому режимах, права доступу до файлів, конфігурація чипа, файл-сховище, випадковий UID, LRP, стан захисту від розкриття, перевірка підпису оригінальності | те саме | те саме |
| Amiibo | резервне копіювання і відновлення NTAG215 з переробкою під ключі цільової мітки | те саме | так |
| Пароль, EAS, AFI для ISO 15693 | поки ні | поки ні | ні |
| Автентифікація і запис на DESFire | ні | ні | ні |
| Сирі команди | експертний режим APDU | каталог команд | так |
Обидва виправлення, для протоколу. Я написав би, що застосунок перевіряє підпис оригінальності на мітках NTAG21x, а він цього не робить: таку перевірку отримує лише 424. І я написав би, що команди пароля ISO 15693 уже є, а насправді вони лежать довідковою таблицею, яка чекає на інтерфейс. Обидва пункти стоять у списку справ.
Як купувати й не обпектися
Що має бути в оголошенні, перш ніж я в ньому щось куплю:
Точна назва чипа. «NTAG213», а не «NFC 213»; «ICODE SLIX2», а не «мітка ISO 15693»; «MIFARE Classic EV1 1K», а не «картка 1K». Якщо в оголошенні чип не названо, продавець або не знає, або не хоче, щоб знав ти.
Пам’ять користувача в байтах, і вона має відповідати чипу: 144 для NTAG213, 504 для 215, 888 для 216, 316 для SLIX2. «1K», за яким ховається MIFARE Classic, на iPhone працювати не буде.
Виробник, якщо оголошення обіцяє справжній NXP чи ST. Правду після покупки скаже код виробника в UID, а до покупки ціна. Справжні наліпки NTAG216 за третину ринкової ціни ніхто не продає.
Розмір антени і форм-фактор. 10-мм інлей читається з сантиметра, а 38-мм з чотирьох. Мітка для металу має так і називатися.
Чи відформатована мітка під NDEF. NTAG постачається відформатованою, а Ultralight EV1 і більшість чипів ISO 15693 ні. NFC.cool їх відформатує, але доведеться зробити ще один крок.
Тривожні сигнали: «сумісна з NTAG215» (отже, не NTAG215), «зашифровано» на будь-чому нижче четвертого щабля драбини, «працює з усіма телефонами» на MIFARE Classic і будь-яка назва чипа з літерою, якої виробник ніколи не використовував, як-от SLIX3.
Скільки коштують мітки. Ціни з оголошень, які я бачив 9 вересня 2026 року в Seritag, Shop NFC, GoToTags, NFCW Shop, NFC.CARDS, NFC-Tag-Shop.de, Tagstand і Digi-Key. Більшість магазинів продають мінімум десятками, тож стовпець «поштучно» показує найменшу партію, яку вони пропонують. Ціни змінюються, тому дивися на них як на співвідношення.
| Мітка | Поштучно або найменша партія | За 100 | За 1000 | Голий чип |
|---|---|---|---|---|
| Наліпка NTAG213 | від 0,32 до 0,65 EUR, від 0,33 до 0,58 USD | від 0,29 до 0,34 EUR | від 0,23 до 0,24 EUR, 0,50 USD | 0,14 USD при закупівлі пластинами |
| Наліпка або картка NTAG215 | від 0,48 до 0,54 USD, від 0,64 до 0,67 GBP | 0,35 USD | 0,33 USD | 0,21 USD |
| Наліпка NTAG216 | 0,97 EUR, 0,71 USD | 0,70 EUR, 0,61 USD | 0,56 EUR, 0,56 USD | 0,37 USD |
| Наліпка NTAG 424 DNA | 0,63 EUR, 0,90 USD | 0,62 EUR, 0,77 USD | 0,57 EUR, 0,68 USD | 0,79 USD поштучно, 0,51 за 1000 |
| Картка MIFARE Classic 1K | від 1,35 до 1,59 EUR десятками; 6,69 EUR за одну картку в роздрібному продажу | від 1,29 до 1,52 EUR, 1,98 USD | від 0,95 до 1,13 EUR, 0,86 USD | |
| Картка DESFire EV3 | від 1,85 до 2,79 EUR | від 1,85 до 2,45 EUR | від 1,35 до 2,29 EUR | 1,18 USD при партії 31 000 |
| Етикетка ICODE SLIX2 | 0,69 EUR | від 0,34 до 0,37 EUR | від 0,22 до 0,25 EUR | 0,35 USD поштучно, 0,22 за 1000 |
| Інлей ST25TV02KC | від 0,32 до 0,87 USD | від 0,30 до 0,79 USD | від 0,28 до 0,77 USD | 0,13 USD у котушці |
Закономірність саме така, як можна здогадатися: пам’ять майже нічого не коштує, криптографія приблизно подвоює ціну, а форм-фактор коштує більше за чип. Голий кристал NTAG213 коштує чотирнадцять центів, а більшу частину ціни становить наліпка навколо нього.
Де купувати: список міток і зчитувачів, якими я справді користуюся, я веду на сторінці з партнерськими посиланнями, а мітки 424, з яких почався весь набір функцій DNA, приїхали з AliExpress, тож казати, що маркетплейси під забороною, я не буду. Перш ніж щось записувати на мітку, перевір застосунком, що саме тобі приїхало.
Увесь каталог в одній таблиці
Один рядок на чип. Стовпець «Байтів для користувача» показує, скільки можна записати, а для DESFire наведено доступну цифру від NXP. Стовпці для телефонів показують, що вміє платформа, а не кожен застосунок; стовпець NFC.cool показує, що вміє мій. На телефоні гортай таблицю вбік, а перший стовпець лишиться на місці.
| Чип | Виробник | Тип Forum | Стандарт | Байтів для користувача | UID | Захист | Ресурс / збереження | iPhone | Android | NFC.cool | Найкраще для |
|---|---|---|---|---|---|---|---|---|---|---|---|
| NTAG 210µ | NXP | 2 | 14443-A | 48 | 7 | біти блокування | 100 тис. / 10 р. | NDEF, сирий доступ | NDEF, сирий доступ | читання, запис | крихітні одноразові мітки |
| NTAG210 | NXP | 2 | 14443-A | 48 | 7 | пароль | 100 тис. / 10 р. | NDEF, сирий доступ | NDEF, сирий доступ | читання, запис | малі антени |
| NTAG212 | NXP | 2 | 14443-A | 128 | 7 | пароль | 100 тис. / 10 р. | NDEF, сирий доступ | NDEF, сирий доступ | читання, запис | малі антени із запасом пам’яті |
| NTAG213 | NXP | 2 | 14443-A | 144 | 7 | пароль, лічильник, дзеркало | 100 тис. / 10 р. | NDEF, сирий доступ | NDEF, сирий доступ | усе | наліпка за замовчуванням |
| NTAG215 | NXP | 2 | 14443-A | 504 | 7 | пароль, лічильник, дзеркало | 100 тис. / 10 р. | NDEF, сирий доступ | NDEF, сирий доступ | усе, Amiibo | Amiibo, дані середнього розміру |
| NTAG216 | NXP | 2 | 14443-A | 888 | 7 | пароль, лічильник, дзеркало | 100 тис. / 10 р. | NDEF, сирий доступ | NDEF, сирий доступ | усе | контакти, безпрограшний вибір |
| NTAG213F, 216F | NXP | 2 | 14443-A | 144, 888 | 7 | пароль, вивід детектора поля | 100 тис. / 10 р. | як 213 | як 213 | як 213 | мітки, вбудовані в електроніку |
| NTAG 213 TT | NXP | 2 | 14443-A | 144 | 7 | пароль, провідник проти розкриття | 100 тис. / 10 р. | як 213 | як 213 | як 213 | пломби |
| NTAG203 | NXP | 2 | 14443-A | 144 | 7 | блокування, OTP | 10 тис. / 5 р. | NDEF | NDEF | читання, запис, пароль | старі складські запаси |
| NTAG I2C plus | NXP | 2 | 14443-A | 888, 1912 | 7 | пароль | від 200 до 500 тис. / 20 р. | NDEF, сирий доступ | NDEF, сирий доступ | розпізнавання, читання, запис | електроніка з мікроконтролером |
| NTAG 223, 224 DNA | NXP | 2 | 14443-A | 144, 208 | 7 | пароль або AES, SUN | 100 тис. / 10 р. | NDEF, сирий доступ | NDEF, сирий доступ | як Type 2 | дешеве підтвердження справжності |
| NTAG 22x DNA StatusDetect | NXP | 2 | 14443-A | 144, 208 | 7 | як вище, датчик | 100 тис. / 10 р. | NDEF, сирий доступ | NDEF, сирий доступ | як Type 2 | пломби й датчики |
| NTAG 413 DNA | NXP | 4 | 14443-4 | 160 | 7 | 3 ключі AES, SUN | 200 тис. / 50 р. | NDEF, APDU | NDEF, APDU | розпізнавання | знятий з виробництва |
| NTAG 424 DNA | NXP | 4 | 14443-4 | 416 | 7 | 5 ключів AES, SUN, LRP | 200 тис. / 50 р. | NDEF, APDU | NDEF, APDU | повне налаштування | підтвердження справжності |
| NTAG 424 DNA TT | NXP | 4 | 14443-4 | 416 | 7 | як вище, захист від розкриття | 200 тис. / 50 р. | NDEF, APDU | NDEF, APDU | повне налаштування | пломби з підтвердженням справжності |
| Ultralight | NXP | 2 | 14443-A | 48 | 7 | блокування, OTP | 10 тис. / 5 р. | NDEF | NDEF | читання, запис | знятий з виробництва |
| Ultralight C | NXP | 2 | 14443-A | 144 | 7 | 3DES | 100 тис. / 10 р. | NDEF, сирий доступ | NDEF, сирий доступ | читання, запис | старі квитки |
| Ultralight EV1 | NXP | 2 | 14443-A | 48, 128 | 7 | пароль, 3 лічильники | 100 тис. / 10 р. | NDEF, сирий доступ | NDEF, сирий доступ | читання, запис, пароль | квитки, одноразові мітки |
| Ultralight AES | NXP | 2 | 14443-A | 144 | 7 | AES-128 | 100 тис. / 10 р. | NDEF, сирий доступ | NDEF, сирий доступ | читання, запис | Type 2 з автентифікацією |
| Ultralight Nano | NXP | 2 | 14443-A | 40 | 7 | блокування, OTP | 100 тис. / 10 р. | NDEF | NDEF | читання, запис | разові квитки |
| Classic Mini | NXP | немає | 14443-A | 224 | 4 | CRYPTO1 | 100 тис. / 10 р. | UID | залежить від контролера | Android: читання, форматування | ні для чого |
| Classic 1K, EV1 | NXP | немає | 14443-A | 752 | 4 або 7 | CRYPTO1 | 100 тис. / 10 р. | UID | залежить від контролера | Android: читання, форматування | ні для чого |
| Classic 4K, EV1 | NXP | немає | 14443-A | 3440 | 4 або 7 | CRYPTO1 | 100 тис. / 10 р. | UID | залежить від контролера | Android: читання, форматування | ні для чого |
| Plus SE | NXP | немає | 14443-A | 752 | 4 або 7 | AES на SL3 | 100 тис. / 10 р. | UID | як Classic | розпізнавання | перехід з Classic |
| Plus EV2 | NXP | немає | 14443-4 на SL3 | 1520, 3440 | 4 або 7 | AES-128, EAL5+ | 200 тис. / 25 р. | ISO-DEP | IsoDep | розпізнавання | контроль доступу |
| DESFire EV1 | NXP | 4 | 14443-4 | від 2304 до 7936 | 7 | DES, 3DES, AES | 200 тис. / 10 р. | NDEF, APDU | NDEF, APDU | розпізнавання, перелік файлів | старі транспортні системи |
| DESFire EV2 | NXP | 4 | 14443-4 | від 2560 до 16384 | 7 | AES, EAL5+ | 200 тис. / 25 р. | NDEF, APDU | NDEF, APDU | розпізнавання, перелік файлів | контроль доступу |
| DESFire EV3 | NXP | 4 | 14443-4 | від 2560 до 16384 | 7 | AES, SUN, EAL5+ | мін. 200 тис., тип. 1 млн / 25 р. | NDEF, APDU | NDEF, APDU | розпізнавання, перелік файлів | контроль доступу, транспорт |
| DESFire Light | NXP | 4 | 14443-4 | 640 | 7 | AES, LRP, EAL4 | 200 тис. / 10 р. | NDEF, APDU | NDEF, APDU | розпізнавання | картки з одним застосунком |
| ICODE SLI | NXP | 5 | 15693 | 112 | 8 | блокування | 100 тис. / 10 р. | NDEF, сирий доступ | NfcV | читання, запис, форматування | кінець життєвого циклу |
| ICODE SLI-S, SLI-L | NXP | 5 | 15693 | 160, 32 | 8 | паролі | 100 тис. / 10 р. | NDEF, сирий доступ | NfcV | читання, запис, форматування | більше не випускаються |
| ICODE SLIX | NXP | 5 | 15693 | 112 | 8 | пароль EAS/AFI | 100 тис. / 50 р. | NDEF, сирий доступ | NfcV | читання, запис, форматування | бібліотечні й логістичні запаси |
| ICODE SLIX-S, SLIX-L | NXP | 5 | 15693 | 160, 32 | 8 | паролі, приватність | 100 тис. / 50 р. | NDEF, сирий доступ | NfcV | читання, запис, форматування | логістика |
| ICODE SLIX2 | NXP | 5 | 15693 | 316 | 8 | паролі, приватність, лічильник, підпис | 100 тис. / 50 р. | NDEF, сирий доступ | NfcV | читання, запис, форматування | інвентаризація, котушки OpenPrintTag |
| ICODE DNA | NXP | 5 | 15693 | 252 | 8 | AES-128 | 100 тис. / 50 р. | NDEF, сирий доступ | NfcV | читає як ISO 15693 | захист бренду на відстані |
| ICODE 3 | NXP | 5 | 15693 | 300 | 8 | паролі, лічильник дотиків, дзеркало, підпис | 100 тис. / 50 р. | NDEF, сирий доступ | NfcV | читає як ISO 15693 | актуальний чип для інвентаризації |
| NTAG 5 | NXP | 5 | 15693 | 512, 2048 | 8 | паролі, AES на 5332 | 1 млн / 40 р. | NDEF, сирий доступ | NfcV | читає як ISO 15693 | підключена електроніка |
| ST25TN512, 01K | ST | 2 | 14443-A | 64, 160 | 7 | kill, код дотику, TruST25 | 100 тис. / 40 р. | NDEF, сирий доступ | NDEF, сирий доступ | читає як Type 2 | альтернатива NTAG213 |
| ST25TV512C, 02KC | ST | 5 | 15693 | 64, 320 | 8 | паролі, kill, приватність, код дотику, TruST25 | 100 тис. / 60 р. | NDEF, сирий доступ | NfcV | розпізнавання ST25TV, читання, запис | етикетки зі свіжим URL при кожному дотику |
| ST25TV16K, 64K | ST | 5 | 15693 | 2048, 8192 | 8 | 64-бітні паролі, kill | 1 млн / 40 р. | NDEF, сирий доступ | NfcV | читання, запис | великий обсяг на Type 5 |
| ST25DV04K, 16K, 64K | ST | 5 | 15693 | від 512 до 8192 | 8 | 64-бітні паролі | 1 млн / 40 р. | NDEF, сирий доступ | NfcV | розпізнавання ST25DV, читання, запис | динамічні мітки з мікроконтролером |
| M24LR | ST | не заявлено | 15693 | від 512 до 8192 | 8 | 32-бітні паролі | 1 млн / 40 р. | NDEF, сирий доступ | NfcV | читає як ST25TV | старий подвійний інтерфейс |
| ST25TA02K, 02KB | ST | 4 | 14443-4 | 256 | 7 | 128-бітні паролі, лічильник, TruST25 на B | 1 млн / 200 р. | NDEF, APDU | NDEF, APDU | читання, запис | Type 4 без DESFire |
| ST25TA16K, 64K | ST | 4 | 14443-4 | 2048, 8192 | 7 | 128-бітні паролі | 1 млн / 200 р. | NDEF, APDU | NDEF, APDU | читання, запис | великий обсяг на Type 4 |
| TI Tag-it HF-I Standard, Pro, Plus | TI | не заявлено | 15693 | 32, 32, 256 | 8 | блокування; Pro додає запис під паролем і kill | 100 тис. / 10 р. | NDEF, сирий доступ | NfcV | розпізнавання, читання | старі бібліотеки |
| EM4233 | EM | не заявлено | 15693 | 208 | 8 | 96-бітний ключ, приватність, знищення | ? / 60 р. | NDEF, сирий доступ | NfcV | розпізнавання, читання | на замовлення |
| EM4425 em echo-V | EM | 5 | 15693 плюс UHF | до 256 | 8 | AES-128, паролі, захист від розкриття | 100 тис. / 50 р. | NDEF, сирий доступ | NfcV | читає як ISO 15693 | двочастотні мітки для роздрібу |
| Infineon my-d move | Infineon | 2 | 14443-A | 128 | 7 | пароль, лічильник значень | 100 тис. / 10 р. | NDEF, сирий доступ | NDEF, сирий доступ | розпізнавання, читання | квитки |
| Fudan FM11NT021 | Fudan | 2 | 14443-A | 144 | 7 | пароль, лічильник | 500 тис. заявлено / 10 р. | NDEF, сирий доступ | NDEF, сирий доступ | читає як звичайний Type 2 | дешеві наліпки з посиланням |
| Fudan FM11RF08, 08S | Fudan | немає | 14443-A | 752 | 4 | CRYPTO1, з бекдором | ? | UID | залежить від контролера | як Classic | ні для чого |
| Topaz 96, 512 | Innovision, Broadcom | 1 | 14443-A | 96, близько 480 | 7 | одноразові блокування | 10 тис. / 5 р. | NDEF | NDEF | NDEF | застарілі системи |
| FeliCa Lite-S | Sony | 3 | 18092, JIS X 6319-4 | 224 | 8 (IDm) | 3DES MAC | ? | NDEF, сирий доступ | NfcF | читання, запис | Японія |
| FeliCa Standard | Sony | 3 | 18092 | 4 кБ | 8 | AES, EAL6+ | ? | NDEF, сирий доступ | NfcF | читання, бренди | транспорт і електронні гроші |
| Kovio NFC Barcode | Kovio, Thinfilm | немає | пропрієтарний | 16, лише читання | немає | немає | н/д | ні | NfcBarcode | ні | більше не існує |
| ST SRI512, SRT512, SRI4K | ST | немає | 14443-B | 64, 512 | 8 | лічильники, блокування | 1 млн / 40 р. | ні | NfcB | ні | транспорт на типі B |
Порівняння, які шукають найчастіше
NTAG213 проти NTAG215 проти NTAG216. Один чип у трьох розмірах пам’яті: 144, 504 і 888 байтів, з тим самим паролем, лічильником, дзеркалом і підписом. Бери 213 для посилання, 215 для Amiibo, 216 для контактної картки або щоб узагалі не думати. Різниця в ціні становить близько тридцяти центів.
NTAG213 проти Ultralight EV1. Той самий радіоінтерфейс і ті самі команди; у NTAG є ASCII-дзеркало і заздалегідь записаний контейнер можливостей, а в EV1 три односторонні лічильники і варіанти на 48 або 128 байтів. Наліпкам потрібен NTAG, квиткам EV1.
NTAG213 проти ST25TN01K проти Fudan FM11NT021. Три чипи Type 2 на 144 чи 160 байтів. NTAG має пароль і лічильник зчитувань і відповідає на GET_VERSION; ST25TN має більше пам’яті, команду kill, код дотику і TruST25, але не має пароля; Fudan копіює функції NTAG, крім GET_VERSION і, за актуальним даташитом, підпису. Для простого посилання годиться будь-який, а для лічильника чи Amiibo потрібен NTAG.
MIFARE Classic проти DESFire. Тут нема про що сперечатися. Шифр Classic зламали у 2008 році, а в його найпоширенішому клоні у 2024-му знайшли бекдор; DESFire EV3 має AES, керування ключами, сертифікацію EAL5+ і SUN. Єдиний аргумент на користь Classic полягає в тому, що зчитувач на стіні встановили у 2009 році.
NTAG 424 DNA проти NTAG213. 424 підписує кожен дотик AES-128 і зберігає 416 байтів у трьох файлах з п’ятьма ключами; 213 зберігає 144 байти з 32-бітним паролем. Якщо питання звучить як «чи справжній цей товар», відповість лише 424. Якщо питання в тому, чи відкриє ця наліпка посилання, 213 упорається за третину ціни.
NTAG 424 DNA проти NTAG 223 DNA. Обидва вміють SUN. 424 належить до Type 4 і має п’ять ключів, LRP, опцію випадкового UID, файл-сховище і збереження на 50 років; 223 працює як наліпка Type 2 з одним ключем SUN, 32-бітним паролем і збереженням на 10 років. З 223 дешевше розмістити підписаний URL на етикетці, а для 424 вже сьогодні є застосунок, який уміє його налаштувати.
ICODE SLIX2 проти NTAG216 для інвентаризації. Якщо єдиним зчитувачем буде телефон, у NTAG216 більше пам’яті і є лічильник. Якщо в справі бере участь рамка чи ручний зчитувач, SLIX2 читається з метра, а NTAG з чотирьох сантиметрів, і питання закрито.
FeliCa проти NTAG в Японії. Японський транспортний турнікет говорить лише FeliCa, а японський телефон читає обидва. Для мітки на постері в Токіо NTAG цілком годиться. Для всього, що має прийняти зчитувач Suica, потрібна FeliCa, а такий чип телефонним застосунком не запрограмуєш.
Часті запитання
Купувати NTAG215 чи NTAG216?
Бери 216, якщо тільки не записуєш Amiibo. У ньому 888 байтів проти 504 у 215, той самий пароль, лічильник і дзеркало і така сама підтримка телефонами. 215 є в кожному магазині, бо на ньому зроблено фігурки Nintendo, і якщо твоя задача саме в цьому, іншого вибору немає.
Чи може iPhone прочитати мітки MIFARE Classic?
Він може побачити, що мітка поруч. Core NFC зчитує UID і SAK і на цьому зупиняється: в API від Apple немає родини Classic, а документація каже, що команда MIFARE «не підтримує протокол Crypto1». Жоден застосунок не прочитає сектор на iPhone. Телефони на Android з NFC-контролером NXP сектори читають, а телефони з деякими іншими контролерами ні, і клас MifareClassic на них просто не з’являється.
Скільки разів можна перезаписати NFC-мітку?
100 000 разів для будь-якого сучасного чипа NXP чи ST за кімнатної температури, і в даташитах ці цифри мінімальні. DESFire EV3 чи ST25DV розраховані на мільйон. Старий NTAG203, оригінальний Ultralight і Topaz розраховували на 10 000. Ніхто не перезаписує наліпку десять тисяч разів; ця цифра важлива для лічильників і для міток, які ведуть журнал.
З якої відстані працює NFC-мітка?
З телефоном до приблизно чотирьох сантиметрів для антени розміром з картку і близько двох для маленької наліпки, якщо піднести її до правильної точки телефона. Власне визначення NFC Forum каже «до 2 см». Мітка ISO 15693 на рамці-зчитувачі з великою антеною працює з метра, але телефон читає її з тих самих кількох сантиметрів, що й усе інше, хіба що вдвічі далі, ніж мітку Type 2.
Чи зношуються NFC-мітки з часом?
Дані на чипі розраховані на 10 років для більшості споживчих чипів, на 50 для NTAG 424 DNA і родини ICODE SLIX, на 60 для ST25TV і на 200 для ST25TA, усе за кімнатної температури. Спека цей строк скорочує. На практиці клей, паперова поверхня й антена здаються задовго до EEPROM.
Чи безпечно купувати дешеві NFC-мітки на маркетплейсах?
Купувати безпечно, а от відповідати опису вони будуть не завжди. Дешевий «NTAG213» часто виявляється Fudan FM11NT021, який годиться для посилання і підводить усюди, де питають GET_VERSION. Дешевий «NTAG215» часто ним не є, і Amiibo його не прийме. Перш ніж щось записувати, перевір у застосунку код виробника і назву чипа, і купуй у магазині, який називає чип.
Чи прочитає мій телефон банківську картку або паспорт через NFC-застосунок?
Паспорт прочитає: з машинозчитуваною зоною як ключем застосунок може прочитати групи даних чипа, і NFC.cool робить це на обох платформах. Банківська картка влаштована як смарт-картка EMV: застосунок може прочитати список її застосунків і деякі відкриті записи, але Apple блокує зчитування платіжних карток у Core NFC, коду безпеки картки на чипі немає, а кожну транзакцію підписує ключ, який ніколи не залишає картку, тож копіювати просто нічого.
Чому мій офісний пропуск або ключ від готелю не з’являється в застосунку?
Більшість офісних пропусків працюють як картки близькості на 125 кГц, яких котушка телефона на 13,56 МГц навіть не відчуває. Більшість ключів від готелів і старіших транспортних карток зроблено на MIFARE Classic, який iPhone може лише розпізнати, а телефон на Android прочитає лише з відповідним контролером і відповідними ключами. Жодне з цього застосунок не виправить, і я краще так і скажу, ніж продам тобі обхідний шлях.
Чи можна розблокувати NFC-мітку, яку зробили доступною лише для читання?
Ні. Біти блокування на мітці Type 2 чи Type 5 односторонні й живуть у самому чипі, і з прапорцем «лише для читання» в контейнері можливостей так само. Пароль можна зняти, якщо його знаєш, а блокування ні. Тому NFC.cool перепитує двічі, перш ніж щось заблокувати.
Чи справді пароль NTAG захищає?
Він зупиняє людину з безкоштовним застосунком, а таких більшість. Людину зі зчитувачем, який уміє підслуховувати, він не зупинить, бо 32-бітний пароль іде в ефір незашифрованим, а мітка відповідає 16-бітним підтвердженням. Для всього, що має витримати вмотивованого зловмисника, драбина починається з AES: Ultralight AES для наліпки Type 2, NTAG 424 DNA, якщо щось має доводити сам дотик.
Яка мітка потрібна для Amiibo?
NTAG215, і тільки NTAG215. Консоль надсилає GET_VERSION, автентифікується паролем, похідним від UID, і читає всі 135 сторінок. Чип без GET_VERSION або з іншою кількістю сторінок відпадає на першій же команді. Запис Amiibo на мітку незворотний, бо байти блокування і пароль входять до самого формату.
Яка NFC-мітка працює на металевій поверхні?
Будь-який чип у виконанні для металу, тобто з феритовим листом між антеною і металом. Звичайна мітка, наклеєна на сталь, не читається зовсім, а мітка для металу читається приблизно на чотирьох п’ятих своєї звичайної дальності. Якщо між звичайною міткою і металом можна покласти три міліметри будь-чого неметалевого, такий варіант теж спрацює.
Чи працює NFC.cool на iPad і Mac?
Так, починаючи з версії 6.15.0, через USB-зчитувач смарт-карток, бо власного NFC-радіо немає ні в того, ні в іншого. Я тестував HID OMNIKEY 5022 CL, а про ACS ACR1552U і ACR1255U-J1 користувачі повідомили, що вони працюють. Усе, що працює з Type 2, Type 4 і FeliCa через телефон, працює і через зчитувач, а MIFARE Classic доступний лише для читання.
Словник термінів
| Термін | Значення |
|---|---|
| AFI | Application Family Identifier, байт на мітках ISO 15693, завдяки якому зчитувач може інвентаризувати лише мітки одного виду |
| APDU | Application Protocol Data Unit, формат команд і відповідей ISO 7816-4, яким користується кожен чип ISO-DEP |
| ATQA | Answer To Request, перші два байти, які надсилає чип типу A; NXP радить не розпізнавати чипи за ним |
| AUTH0 | байт конфігурації NTAG, що вказує першу сторінку, для якої потрібен пароль |
| AUTHLIM | налаштування NTAG, яке блокує мітку після заданої кількості невдалих спроб ввести пароль |
| CC | Capability Container, контейнер можливостей: чотири байти (на Type 4 цілий файл), які повідомляють зчитувачу, що на мітці є NDEF і скільки під нього місця |
| CMAC | код автентифікації повідомлення, обчислений за допомогою AES; саме завдяки йому повідомлення SUN неможливо підробити |
| CRYPTO1 | пропрієтарний 48-бітний потоковий шифр NXP у MIFARE Classic, зламаний у 2008 році |
| DSFID | Data Storage Format Identifier, байт ISO 15693, який описує, як організовано пам’ять |
| EAS | Electronic Article Surveillance, біт на мітках ISO 15693, через який спрацьовує сигналізація на рамці в магазині |
| GET_VERSION | команда NXP, яка повертає вісім байтів з виробником, типом, поколінням і розміром чипа |
| ISO-DEP | транспортний протокол ISO/IEC 14443-4; чип, який ним говорить, відповідає SAK 20 і приймає APDU |
| Модуляція навантаження | спосіб, яким пасивна мітка передає дані: вона перемикає навантаження на своїй антені, а зчитувач відчуває це у власному полі |
| LRP | Leakage Resilient Primitive, режим AES на NTAG 424 DNA і DESFire Light, стійкий до атак через побічні канали |
| MAD | MIFARE Application Directory, сектор 0 картки Classic зі списком того, що зберігають інші сектори |
| Дзеркало | функція NTAG, яка при кожному зчитуванні вставляє UID і лічильник у повідомлення NDEF як ASCII-текст |
| NDEF | NFC Data Exchange Format, контейнер записів, який читає будь-який телефон |
| NUID | Non-Unique Identifier, так NXP називає 4-байтний UID |
| OTP | One Time Programmable, біти, які можна встановити один раз і ніколи не скинути |
| PACK | Password Acknowledge, два байти, які NTAG повертає після правильного пароля |
| PICC, PCD | назви картки і зчитувача у стандартах |
| Random ID | режим, у якому чип щоразу відповідає на антиколізію свіжим випадковим 4-байтним ID, щоб захистити приватність |
| READ_SIG | команда, яка повертає підпис оригінальності чипа |
| SAK | Select Acknowledge, байт, який чип типу A повертає після вибору; за його бітами чипи розкладають на родини |
| SDM | Secure Dynamic Messaging, механізм NTAG 424 DNA і DESFire EV3, на якому тримається SUN |
| SUN | Secure Unique NFC, URL, який при кожному дотику несе свіжий криптографічний доказ |
| T5T, T2T, T4T | скорочення NFC Forum для міток Type 5, Type 2 і Type 4 |
| TLV | Tag-Length-Value, обгортка навколо повідомлення NDEF на чипах Type 2 і Type 5 |
| TruST25 | підпис оригінальності ST над UID |
| UID | заводський ідентифікатор чипа завдовжки 4, 7 або 8 байтів |
Джерела і що почитати далі
Кожну таблицю в цьому посібнику перевірено за одним із цих джерел. Ціни взято 9 вересня 2026 року з магазинів, названих у розділі про покупки.
NXP NTAG
Даташити NTAG210/212, NTAG 210µ, NTAG213F/216F і NTAG 213 TT
Даташити NTAG 223 DNA і NTAG 224 DNA StatusDetect
Даташити NTAG 424 DNA і NTAG 424 DNA TagTamper, а також AN12196, примітка про функції 424 з порадами і відкритим ключем оригінальності
Даташити NTAG I2C plus і NTAG 5 boost
AN13089, функції NTAG 21x і поради, про те, чому статичний підпис оригінальності не гарантує захисту від клонування (копія на сторонньому сайті, бо версія на nxp.com непублічна)
NXP MIFARE
Даташити MIFARE Ultralight, Ultralight C, Ultralight EV1 і Ultralight AES
Даташити MIFARE Classic EV1 1K і Classic EV1 4K
Короткі даташити MIFARE Plus S, Plus SE і Plus EV2
Даташити DESFire EV1, DESFire EV2, DESFire EV3 і DESFire Light, а також AN12752 про доступну пам’ять DESFire
AN10833, ідентифікація типів MIFARE, AN10927, UID у MIFARE, AN1305, NDEF на MIFARE Classic, AN10787, MIFARE Application Directory, AN11004, DESFire як мітка Type 4
NXP ICODE
STMicroelectronics, TI, EM, Sony, Fudan
Даташити ST ST25TV02KC, ST25TN01K, ST25DV64KC, ST25TA02KB і M24LR64E-R, AN5658 про Augmented NDEF і TA0358 про TruST25
Дослідження безпеки і стандарти
Quarkslab, MIFARE Classic: exposing the static encrypted nonce variant and a few hardware backdoors (2024)
Nohl, Evans, Starbug і Plötz, Reverse-Engineering a Cryptographic RFID Tag (USENIX Security 2008)
Garcia та ін., Dismantling MIFARE Classic (ESORICS 2008)
ISO/IEC JTC1/SC17 Standing Document 5, реєстр виробників мікросхем
Нотатки Proxmark3 про магічні картки і 3dbrew про будову мітки Amiibo
NFC Forum про саму технологію і специфікацію міток Type 2
Телефони і зчитувачі
Apple: Core NFC, фонове зчитування міток, команда MIFARE, яка не підтримує CRYPTO1 і сесія 715 з WWDC 2019
Android: MifareClassic, розширений посібник з NFC і Web NFC у Chrome
Зчитувачі: ACS ACR122U, HID OMNIKEY 5022 CL, NXP PN532, Proxmark3, Flipper Zero і Chameleon Ultra
Антени і ферит: TI SLOA241 і Würth ANP022
Підсумок
Підбирай чип під задачу. NTAG213 для посилання, NTAG216, коли не впевнений, NTAG215 для Amiibo, NTAG 424 DNA, коли дотик має щось доводити, ICODE SLIX2 або ICODE 3, коли мітку має читати рамка, DESFire EV3, коли їй мають довіряти двері, і нічого з полиці MIFARE Classic. Усе інше в цьому посібнику пояснює, звідки взялося це речення, а таблиці тут для того, щоб тобі більше ніколи не доводилося вірити оголошенню на слово.
Якщо хочеш дізнатися, що за мітка перед тобою, ще до того, як щось на неї записати, саме це NFC.cool Tools робить при кожному дотику: на iPhone, на Android і на iPad чи Mac з підключеним зчитувачем. А якщо в тебе на столі лежить чип, який застосунок називає неправильно або не називає зовсім, напиши мені. Саме так більшість із тих шістдесяти туди й потрапила.