Открываешь объявление о пачке NFC-меток. Там написано «NFC 213», или «совместимо с NTAG215», или просто «NFC-карта 1K, работает со всеми телефонами». Тебе нужно знать одно: справится ли это с моей задачей? А объявление ответить не может, потому что тот, кто его писал, тоже не знает.
Я много лет делаю NFC.cool Tools, приложение, которое при каждом касании первым делом отвечает именно на этот вопрос: что это за чип и что он умеет? Один только код распознавания знает около шестидесяти продуктов от семи производителей, и каждый попал в этот список потому, что кто-то поднёс его к телефону, а он повёл себя не так, как обещало объявление. Это руководство я сам хотел бы иметь под рукой, пока писал тот код. Оно длинное намеренно. Если нужна короткая версия, начни с руководства по NFC-меткам для начинающих, а за подробностями оно отправит сюда.
Главная мысль в одной фразе, чтобы она была у тебя до таблиц: лучшей NFC-метки не бывает, бывает подходящий для задачи чип, а задачу определяют три вещи: сколько нужно хранить, от кого нужно защититься и что должно уметь её читать.
Как пользоваться этим руководством
Каждая цифра здесь взята из технического описания производителя, из документации Apple или Google либо из кода моего собственного приложения, а источники перечислены в конце. Если чип лежал у меня на столе, я пишу об этом в заметке из практики. Если не лежал, говорю и это: экзотика взята из технических описаний, а техническое описание обещает, но ничего не измеряет.
Двух вещей здесь не будет: пошаговой инструкции по записи первой метки (для этого есть руководство по записи) и полной истории про NTAG 424 DNA, которой посвящён отдельный текст.
Из чего физически состоит NFC-метка
В NFC-метке склеены три вещи: чип размером с песчинку, антенна из нескольких витков вытравленного алюминия или меди и подложка, которая их держит: бумажная наклейка, инлей из ПЭТ, карта из ПВХ или стеклянная капсула. Батарейки у чипа нет. Питает его телефон.
Работает это за счёт индуктивной связи. Антенна телефона представляет собой катушку, которая создаёт магнитное поле, меняющее направление 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 (формат контейнера, который понимает любой телефон) на уже существовавших чипах. Вот что значит «метка типа 2»: не чип, а раскладка.
| Тип Forum | Радио | Модель памяти | Типичные чипы | Поддержка телефонами |
|---|---|---|---|---|
| Тип 1 | NFC-A | блоки по 8 байт, однократная блокировка | Topaz от Innovision/Broadcom | читается на обеих платформах; NFC Forum убрал тип 1 из выпуска спецификаций 2021 года |
| Тип 2 | NFC-A | страницы по 4 байта, контейнер возможностей на странице 3, блоки TLV | NTAG21x, MIFARE Ultralight, ST25TN, Fudan FM11NT0x1, Infineon my-d move | iPhone и Android, включая фоновое чтение на iPhone |
| Тип 3 | NFC-F | блоки по 16 байт, коды сервисов | FeliCa Lite-S, FeliCa Standard | iPhone и Android (поддержка NFC-F на Android обязательна) |
| Тип 4 | ISO-DEP поверх NFC-A или NFC-B | файлы, выбираемые командой APDU: файл CC и файл NDEF | NTAG 424 DNA, DESFire, ST25TA | iPhone и Android |
| Тип 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 не говорят ничего. Меткой типа 2 может оказаться простой NTAG213 или NTAG 224 DNA с аутентификацией AES-128; меткой типа 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, потому что его биты говорят, понимает ли чип 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 лет, на 50 лет NXP рассчитывает NTAG 424 DNA и семейство ICODE SLIX, а ST обещает чипам ST25TA типа 4 целых 200 лет. Срок указан для комнатной температуры; жара его сокращает.
Рабочая температура у большинства потребительских чипов NXP лежит в пределах от -25 до +70 °C, у чипов ST и EM от -40 до +85 °C, а у ICODE 3 доходит до 105 °C. Обычно ограничивает не чип, а клей и подложка.
Лестница защиты
В этой части объявления врут больше всего. «Зашифровано», «защищено», «защита от клонирования» печатают на метках, вся защита которых сводится к 32-битному паролю, передаваемому открытым текстом. Вот лестница, снизу вверх, и каждый чип из этого руководства стоит на одной из её ступеней.
| Ступень | Что это | Чипы | От чего защищает |
|---|---|---|---|
| 0. Ничего | читать и писать может кто угодно | оригинальный Ultralight, NTAG203, TI Tag-it Standard, Topaz | ни от чего |
| 1. Биты блокировки | необратимые биты, которые навсегда делают страницы доступными только для чтения | все чипы типа 2 и типа 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 | каждое касание выдаёт свежее криптографическое доказательство прямо в ссылке | 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) служит конвертом. Телефон не считывает с метки «ссылку»: он считывает сообщение NDEF, в котором лежит запись URI, а у конверта есть вес. Зная этот вес, ты и ответишь на вопрос «влезет ли моя ссылка на NTAG213».
Запись
Каждая запись начинается с байта флагов (начало сообщения, конец сообщения, короткая запись и трёхбитный формат имени типа), затем идут длина типа, длина полезной нагрузки (один байт, если нагрузка меньше 256 байт, иначе четыре), сам тип и нагрузка. Поэтому короткая запись с ссылкой отнимает 4 байта заголовка ещё до первого байта твоей ссылки.
| Запись | Тип | Полезная нагрузка |
|---|---|---|
| Ссылка | общеизвестный тип U | один байт префикса и остаток ссылки в UTF-8 |
| Текст | общеизвестный тип T | байт состояния, код языка (en), затем текст |
| Smart Poster | общеизвестный тип Sp | целое сообщение NDEF внутри: ссылка и, по желанию, заголовки и действие |
| Контакт | 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/: девять байт нагрузки на ссылку из семнадцати символов. В техническом описании NTAG 5 сама NXP приводит пример D1 01 0C 55 01, за которым идёт nxp.com/nfc, и это расшифровывается в http://www.nxp.com/nfc.
Конверт вокруг записи
На метке типа 2 или типа 5 сообщение лежит внутри TLV: один байт со значением «сообщение NDEF» (03), один байт длины (три байта, если сообщение длиной 255 байт или больше), само сообщение и завершающий байт (FE). На метке типа 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 | Символов ссылки после https:// | Минимальная vCard (132 Б: имя, телефон, почта, ссылка) | Обычная 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 с именем, телефоном, почтой и ссылкой занимает 132 байта без конверта и 148 с ним, поэтому на NTAG213 она чуть-чуть не влезает, и поэтому продавцы визиток по умолчанию берут NTAG215 или NTAG216. Округлённые цифры из руководства для начинающих (около 130, 480 и 850 символов) взяты отсюда, просто со срезанными краями.
Устройство памяти: что где лежит на чипе
Если ты когда-нибудь делал дамп метки в NFC.cool и разглядывал шестнадцатеричные байты, вот ключ к ним.
Тип 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 или бит блокировки выставлен, снять его уже нельзя, и именно это записывает в приложении «постоянная блокировка». «Форматирование» на типе 2 записывает на страницу 4 пустой NDEF TLV (03 00 FE); память оно не обнуляет, так что старые данные можно выгрузить дампом, пока их не перезапишут.
Тип 4: файловая система NTAG 424 DNA
Страниц здесь нет. Приложение ISO 7816 с именем D2760000850101 содержит три файла: 32-байтный контейнер возможностей (E103), 256-байтный файл NDEF (E104) и 128-байтный проприетарный файл (E105). У каждого файла свои права на чтение, запись и изменение доступа, и каждое право привязано к одному из пяти ключей AES. DESFire устроен так же, но позволяет создавать собственные приложения и файлы; у NTAG 424 DNA три файла фиксированы, поэтому я и описал его как маленький запертый сейф с тремя ящиками.
Тип 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 (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 символ ссылки, пароль, счётчик, восемь центов | полная на 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; копия так не умеет | полная настройка, включая проверку подписи |
| то же, но в виде дешёвой наклейки типа 2 | NTAG 223 DNA | SUN на чипе типа 2, 144 байта | отображается как метка типа 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-наклейке, монете и карте для обычных покупателей, и в 2026 году NXP по-прежнему числит их все активными, хотя техническое описание не менялось с 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 |
Все они относятся к типу 2 NFC Forum, работают по 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, так что обычная ссылка при каждом касании превращается в https://example.com/?u=04A1...&c=000123. В насадках для щёток Philips Sonicare, о которых я писал, стоит NTAG213 с AUTHLIM, равным трём, и так насадка блокирует сама себя, если не угадать пароль.
Из практики: на этих чипах я тестирую каждый выпуск, и NTAG216 я советую, когда человек хочет купить одну пачку и больше об этом не думать. На всё, что остаётся в публичном месте, пароль поставить стоит: он останавливает человека с бесплатным приложением, а таких большинство. Человека со снифером он не остановит, потому что сам пароль летит по воздуху незашифрованным, и в приложении я пишу об этом прямо.
Что с ними делают телефоны: чтение и запись NDEF везде, фоновое чтение записей со ссылками на iPhone и прямой доступ к паролю, счётчику и зеркалу на обеих платформах. NFC.cool умеет всё это на iPhone, на Android и через USB-считыватель на iPad и Mac.
NTAG DNA: метки, которые подписывают каждое касание
Три поколения, два из них ещё выпускаются.
| Чип | Тип Forum | Пользовательских байт | Ключи | SUN | Подпись | Ресурс / хранение | Статус |
|---|---|---|---|---|---|---|---|
| NTAG 413 DNA | Тип 4 | 160 (32 CC + 128 NDEF) | 3 AES-128 | да, 24-битный счётчик | ECC | 200 тыс. / 50 лет | больше не выпускается |
| NTAG 424 DNA | Тип 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 | Тип 4 | 416 | 5 AES-128 | да, плюс состояние контура вскрытия в сообщении | та же | 200 тыс. / 50 лет | выпускается |
| NTAG 223 DNA | Тип 2 | 144 / 240 | один 16-байтный ключ SUN и 32-битный пароль | да, 24-битный счётчик | ECDSA secp192r1, 48 байт | 100 тыс. / 10 лет | выпускается с февраля 2022 года |
| NTAG 224 DNA | Тип 2 | 208 / 304 | взаимная аутентификация AES-128 вместо пароля | да | та же | 100 тыс. / 10 лет | выпускается |
| NTAG 223 и 224 DNA StatusDetect | Тип 2 | как выше | как выше | да, с состоянием датчика в сообщении | та же | 100 тыс. / 10 лет | выпускается |
SUN, Secure Unique NFC, и оправдывает цену этих меток, втрое выше, чем у NTAG213: метка зеркалит свой UID и счётчик чтений в ссылку и добавляет поверх них AES-128 CMAC, заново вычисленный при каждом касании. Сервер проверяет MAC; у клонированной метки ключа нет, и проверку она не проходит. Всё это, включая режим LRP и пять ключей, я разобрал в тексте про NTAG 424 DNA, так что здесь только то, что изменилось с тех пор: теперь NXP продаёт ещё NTAG 426Q DNA и NTAG X DNA, подключаемый чип типа 4 на 16 КБ с сертификацией EAL6+, так что 424 больше не самый новый чип DNA, а просто тот, который реально купить в виде наклейки.
Самым интересным новичком выглядит семейство 22x DNA: SUN на чипе типа 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 для наклеек со ссылкой, поэтому 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 вместо пароля, на метке типа 2, которую читает любой телефон.
Что с ними делают телефоны: всё здесь читается как метка типа 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, и никакое приложение этого не изменит. В API Core NFC от Apple нет семейства Classic, а в документации к его команде 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 | совместим с типом 4 NFC Forum, случайный 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 и таймер транзакций; сертификат типа 4 NFC Forum 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 с подписью ссылки, а EV2 нет.
Что с ними делают телефоны: iOS отдаёт DESFire как метку MIFARE .desfire или как метку ISO 7816, если приложение запрашивает приложение NDEF; Android использует IsoDep. NFC.cool определяет поколение и объём по GetVersion и перечисляет приложения и файлы, которые ему разрешено видеть без ключей. Аутентифицироваться на DESFire или записывать на него приложение не умеет; это работа для собственных инструментов оператора, и я лучше скажу об этом прямо, чем буду делать вид.
ISO 15693: семейство дальнего действия
Эти чипы задумывали для метра, а не для сантиметра. Телефон их по-прежнему читает (Apple начиная с iOS 13, Android через NfcV), и GoToTags намерила, что на iPhone метки типа 5 читаются примерно вдвое дальше меток типа 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. Линейка ST для типа 5, и у неё лучшие цифры в технических описаниях во всём руководстве.
| Чип | Пользовательских байт | Защита | Счётчик | Подпись | Ресурс / хранение | Статус |
|---|---|---|---|---|---|---|
| ST25TV512, ST25TV02K | 64 или 256 | пароли на 32 или 64 бита, команда kill, режим неотслеживаемости, контур вскрытия у варианта -AD | 16-битный счётчик событий записи | TruST25 | 100 тыс. / 60 лет | не рекомендуется для новых разработок |
| ST25TV512C, ST25TV02KC | 64 или 320 | пароли, kill, тихий и скрытный режимы, контур вскрытия у варианта -T | нет; вместо него трёхсимвольный уникальный код касания | 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-битных пароля для радиоканала и пароль для I2C | нет | нет | 1 млн / 40 лет | модели K не рекомендуются, модели KC выпускаются |
| M24LR04E, 16E, 64E | 512, 2048 или 8192 | 32-битные пароли | нет | нет | 1 млн / 40 лет | не рекомендуется для новых разработок |
Augmented NDEF у ST25TV02KC заслуживает отдельного абзаца, потому что его продают как защиту. Чип при каждом чтении вставляет в ссылку свой UID, произвольное поле и трёхсимвольный уникальный код касания, не трогая EEPROM. Код касания меняется с каждым касанием, и в техническом описании ST прямым текстом сказано, что он «предсказуемый». Это отметка свежести, по которой сервер понимает, что касание новое, а вовсе не доказательство подлинности метки. За подлинность отвечает TruST25, подпись оригинальности ST поверх UID, и, как и у NXP, подпись статичная, так что клон может её скопировать.
Остальной мир типа 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. Байты команд лежат в коде справочной таблицей, а кнопок для них пока нет.
Тип 4 за пределами MIFARE: ST25TA
Семейство ST25TA от ST состоит из меток типа 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 есть выход общего назначения, который переключается, когда метку читают, и так можно заставить лампу реагировать на телефон. На обоих телефонах они читаются как метки типа 4; NFC.cool читает и записывает на них NDEF и показывает подробности ISO-DEP.
Чипы с датчиками и двумя интерфейсами
У этих чипов два лица: с одной стороны NFC-антенна, с другой шина I2C, датчик или второе радио.
| Чип | Сторона NFC | Другая сторона | Память | Чем примечателен |
|---|---|---|---|---|
| NTAG I2C plus (NT3H2111, NT3H2211) | тип 2, 888 или 1912 байт, 32-битный пароль, подпись | I2C до 400 кГц, 64-байтный буфер SRAM для сквозной передачи, вывод обнаружения поля | от 200 до 500 тыс. / 20 лет | сбор энергии до 15 мВт; этот чип стоит в импланте xSIID |
| ST25DV (см. выше) | тип 5 | I2C до 1 МГц, 256-байтный почтовый ящик для потоковой передачи | 1 млн / 40 лет | сбор энергии на выводе V_EH, без стабилизации, по техническому описанию «несколько мкВт» |
| NTAG 5 link, boost, switch | тип 5, 2048 или 512 байт, AES у 5332 | I2C, GPIO, выходы ШИМ | 1 млн / 40 лет | сбор энергии до 30 мВт; варианту switch микроконтроллер вообще не нужен |
| NHS3100 | тип 2, эмулируется прошивкой | Cortex-M0+ с датчиком температуры точностью 0,3 °C | 32 КБ флеш-памяти, 4 КБ EEPROM | регистратор холодовой цепи на плёнке, сертифицирован NFC Forum |
| EM4423 «em echo» | тип 2, область NDEF на 240 байт | UHF RAIN RFID, та же память, тот же серийный номер | 100 тыс. / 10 лет | снят с производства |
| EM4425 «em echo-V» | тип 5, до 256 байт общей памяти | UHF RAIN RFID, AES-128, контакты контроля вскрытия, цифровая подпись | 100 тыс. / 50 лет | выпускается; один кристалл, который телефон читает с сантиметра, а UHF-считыватель у ворот склада с нескольких метров |
С этими чипами я ничего не строил, так что таблица составлена только по техническим описаниям. В руководстве они нужны потому, что в объявлениях их называют «NFC-чипом» и людей это путает: NTAG 5 и NTAG213 совсем разные чипы, а метка em echo ничего особенного на телефоне делать не будет.
Наследие и ниши
Topaz (Innovision, позже Broadcom) относится к типу 1 NFC Forum: блоки по 8 байт, 96 или 512 байт, однократная блокировка, 10 000 циклов записи. Оба телефона по-прежнему читают NDEF с Topaz, но NFC Forum убрал тип 1 из набора спецификаций 2021 года, и в новые разработки его больше никто не закладывает. У перепродавцов он ещё лежит на складах.
FeliCa принадлежит Sony и держит на себе общественный транспорт Японии. FeliCa Lite-S (224 байта пользовательской памяти в 16-байтных блоках, 8-байтный IDm, упрощённый MAC на Triple DES) представляет собой версию в виде метки и относится к типу 3 NFC Forum; FeliCa Standard служит версией смарт-карты, теперь с AES и рейтингом Common Criteria EAL6+ у актуального RC-SA01, и на ней работают Suica, PASMO, Edy, WAON, nanaco и гонконгская Octopus. Модули FeliCa Plug от Sony сняли с производства в марте 2026 года. NFC.cool на обеих платформах называет транспортные бренды и бренды электронных денег по системному коду, читает Lite-S и Standard и записывает на них NDEF на iPhone.
Kovio NFC Barcode представлял собой метку из печатного кремния только для чтения на 16 байт. В Android для неё до сих пор есть класс NfcBarcode. Активы Kovio в 2014 году перешли к Thinfilm, в 2019 году Thinfilm прекратила производство NFC, а в 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, которая отвечает.
Клоны и совместимые чипы
Этот раздел продавцы предпочли бы от тебя скрыть.
Fudan FM11NT021 чаще всех выдаёт себя за NTAG213, не будучи им. У него те же 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 закрыт соглашением о неразглашении, а отчасти потому, что скопированная статичная подпись всё равно пройдёт проверку. Честная цепочка доказательств для метки типа 2 выглядит так: код производителя, GET_VERSION, объём памяти и наличие функций, которые чип заявляет.
Форм-факторы и дальность считывания
Что метка умеет, решает чип; дотянется ли до неё телефон, решает форм-фактор.
| Форм-фактор | Что это | Типичная антенна | Дальность с телефоном | Характеристики и примечания |
|---|---|---|---|---|
| Влажный инлей | вытравленная антенна и чип на ПЭТ-плёнке с клеем и защитной подложкой | от 22 до 38 мм | от 2 до 4 см | самый дешёвый способ купить чип; клеится один раз |
| Сухой инлей | то же без клея | как выше | как выше | для ламинирования внутрь чего-то другого |
| Бумажная или ПЭТ-наклейка | инлей с лицевой стороной под печать | от 22 до 38 мм | от 2 до 4 см | на бумаге можно печатать, ПЭТ переживёт воду |
| Карта из ПВХ | 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 бар; большинство прачечных меток отдают только UID по ISO 15693 |
| Имплант | чип в стеклянной капсуле 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, прочий тип 2 | только записи со ссылками | NDEF, пароль, счётчик, зеркало, дамп | то же | то же, через NFC.cool | только NDEF | да | да | да | да, плюс эмуляция | да, плюс эмуляция |
| NTAG 22x DNA | записи со ссылками | NDEF, прямые команды | то же | как тип 2 | NDEF | да | да | да | да | читается как NTAG |
| NTAG 424 DNA, ST25TA, DESFire как тип 4 | записи со ссылками | 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 | записи со ссылками | полный набор команд ISO 15693 начиная с iOS 13 | NfcV | не проверялось | NDEF | нет | да | нет | да, плюс эмуляция | да, плюс эмуляция |
| FeliCa Lite-S и Standard | записи со ссылками | чтение и запись с объявленным системным кодом | NfcF | чтение; запись на FeliCa через NFC.cool | NDEF | да | у OMNIKEY только UID | да | да | Lite-S: чтение и эмуляция |
| Topaz (тип 1) | NDEF | NDEF | NDEF | не проверялось | NDEF | да | не описано | да | да | не описано |
| Память ISO 14443 тип B (SRI512) | нет | нет | NfcB | не проверялось | нет | да | да | только как считыватель | да | только UID |
| Пропуска на 125 кГц, чипы животных, UHF-этикетки | нет | нет | нет | нет | нет | нет | нет | нет | 125 кГц да | 125 кГц да |
Несколько строк заслуживают пояснения.
Фоновое чтение на iPhone срабатывает только на запись 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 | все семейства | все семейства | тип 2, тип 4, FeliCa; Classic с открытыми ключами |
| Запись NDEF, очистка метки | тип 2, тип 4, тип 5, FeliCa Lite-S и Standard | тип 2, тип 5, MIFARE Classic с каталогом NDEF, всё, что умеет форматировать Android | тип 2, тип 4, FeliCa |
| Обнуление всей памяти | тип 5 | тип 2, тип 5, Classic | как на iPhone |
| Постоянная блокировка | байты блокировки типа 2; NDEF только для чтения на типе 4, типе 5 и FeliCa; на NTAG 424 DNA намеренно отключена | тип 2 | да |
| Пароль | NTAG213, 215, 216 и 203 | семейство типа 2 | установить можно; снять зависит от считывателя |
| Счётчик касаний и зеркало | NTAG213, 215, 216 | NTAG213, 215, 216 | да |
| Полный дамп памяти | тип 2, ISO 15693, список файлов DESFire, FeliCa, файлы NTAG 424 DNA | Classic с заводским ключом, Ultralight, ISO 15693, FeliCa, любой тип A | тип 2, тип 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, прямой доступ | как тип 2 | недорогая проверка подлинности |
| NTAG 22x DNA StatusDetect | NXP | 2 | 14443-A | 144, 208 | 7 | как выше, датчик | 100 тыс. / 10 лет | NDEF, прямой доступ | NDEF, прямой доступ | как тип 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, прямой доступ | чтение, запись | тип 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, прямой доступ | читается как тип 2 | альтернатива NTAG213 |
| ST25TV512C, 02KC | ST | 5 | 15693 | 64, 320 | 8 | пароли, kill, приватность, код касания, TruST25 | 100 тыс. / 60 лет | NDEF, прямой доступ | NfcV | распознаёт ST25TV, читает, пишет | этикетки со свежей ссылкой на каждое касание |
| ST25TV16K, 64K | ST | 5 | 15693 | 2048, 8192 | 8 | 64-битные пароли, kill | 1 млн / 40 лет | NDEF, прямой доступ | NfcV | чтение, запись | большой объём на типе 5 |
| ST25DV от 04K до 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 | чтение, запись | тип 4 без DESFire |
| ST25TA16K, 64K | ST | 4 | 14443-4 | 2048, 8192 | 7 | 128-битные пароли | 1 млн / 200 лет | NDEF, APDU | NDEF, APDU | чтение, запись | большой объём на типе 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, прямой доступ | читается как обычный тип 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) | MAC на 3DES | ? | 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. Три чипа типа 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 относится к типу 4 и даёт пять ключей, LRP, опцию случайного UID, файл-хранилище и 50 лет хранения; 223 представляет собой наклейку типа 2 с одним ключом SUN, 32-битным паролем и 10 годами. С 223 дешевле положить подписанную ссылку на этикетку; для 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 работает с метра, если её читают ворота с большой антенной, но телефон читает её с тех же нескольких сантиметров, что и всё остальное, разве что раза в два дальше, чем метку типа 2.
Портятся ли NFC-метки со временем?
Данные чипа рассчитаны на хранение 10 лет у большинства потребительских чипов, 50 у NTAG 424 DNA и семейства ICODE SLIX, 60 у ST25TV и 200 у ST25TA, всё при комнатной температуре. Жара этот срок сокращает. На практике клей, бумажная лицевая сторона и антенна сдаются задолго до EEPROM.
Безопасно ли покупать дешёвые NFC-метки на маркетплейсах?
Безопасно, да; а вот соответствуют ли они заявленному, не всегда. Дешёвый «NTAG213» часто оказывается Fudan FM11NT021, который годится для ссылки и сдаётся на всём, что спрашивает GET_VERSION. Дешёвый «NTAG215» часто вовсе не NTAG215, и Amiibo его не примет. Прежде чем что-то записывать, проверь в приложении код производителя и название чипа, а покупай в магазине, который называет чип.
Прочитает ли телефон банковскую карту или паспорт через NFC-приложение?
Паспорт да: если ключом служит машиносчитываемая зона, приложение может прочитать группы данных чипа, и NFC.cool делает это на обеих платформах. Банковская карта устроена как смарт-карта EMV; приложение может прочитать список её приложений и некоторые открытые записи, но Apple блокирует чтение платёжных карт в Core NFC, кода безопасности карты на чипе нет, а каждую транзакцию подписывает ключ, который никогда не покидает карту, так что копировать нечего.
Почему офисный пропуск или ключ от гостиницы не видно в приложении?
Большинство офисных пропусков работают как бесконтактные карты на 125 кГц, а катушка телефона на 13,56 МГц их даже не чувствует. Большинство гостиничных ключей и старых транспортных карт сделаны на MIFARE Classic, который iPhone может только опознать, а телефон на Android может прочитать только с подходящим контроллером и подходящими ключами. Ни то, ни другое приложением не исправить, и я лучше скажу об этом, чем продам тебе обходной путь.
Можно ли разблокировать NFC-метку, которую сделали доступной только для чтения?
Нет. Биты блокировки на метке типа 2 или типа 5 устроены как необратимые биты в чипе; с флагом «только для чтения» в контейнере возможностей то же самое. Пароль можно снять, если ты его знаешь; блокировку нельзя. Поэтому NFC.cool дважды переспрашивает, прежде чем что-то заблокировать.
Защищает ли пароль NTAG по-настоящему?
Он останавливает человека с бесплатным приложением, а таких большинство. Он не остановит того, у кого есть считыватель, способный подслушивать, потому что 32-битный пароль летит по воздуху незашифрованным, а метка отвечает 16-битным подтверждением. Для всего, что должно устоять перед мотивированным злоумышленником, лестница начинается с AES: Ultralight AES для наклейки типа 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. Всё, что работает с типом 2, типом 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, контейнер возможностей: четыре байта (или файл, на типе 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, каталог приложений MIFARE: сектор 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, ссылка, которая при каждом касании несёт свежее криптографическое доказательство |
| T5T, T2T, T4T | сокращения NFC Forum для меток типа 5, типа 2 и типа 4 |
| TLV | Tag-Length-Value, обрамление вокруг сообщения NDEF на чипах типа 2 и типа 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, AN11004, DESFire как метка типа 4
NXP ICODE
STMicroelectronics, TI, EM, Sony, Fudan
Технические описания ST ST25TV02KC, ST25TN01K, ST25DV64KC, ST25TA02KB и M24LR64E-R, AN5658 об Augmented NDEF и TA0358 о TruST25
Sony: техническое описание FeliCa Lite-S и FeliCa Standard RC-SA01
Исследования безопасности и стандарты
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 о технологии и о спецификации меток типа 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 с подключённым считывателем. А если у тебя на столе лежит чип, который приложение называет неправильно или не называет вовсе, напиши мне. Именно так в списке и оказалось большинство из тех шестидесяти.