Пароль на NFC-метку: что защищает, а что клонируют

2026-09-23
Ты поставил пароль на метку, проверил — читается только с паролем, вроде всё закрыто. А через месяц кто-то открывает твоим «защищённым» пропуском дверь, потому что пароль на метке защищает совсем не то, что ты думал.
В NFC нет одной кнопки «защитить». Есть несколько независимых механизмов, и работают они на разных уровнях: пароль внутри чипа, необратимая блокировка памяти, ключи секторов, криптография чипа и, наконец, логика системы доступа на стороне контроллера. Пароль — лишь один из них, причём не самый сильный.
Разберём по-честному: как поставить пароль на NTAG 213/215/216, почему у MIFARE Ultralight пароля нет и почему его не поставить, как устроена защита MIFARE Classic, почему нулевой блок (тот самый UID) нельзя запереть, чем в 2026 году копируют пропуска и метки — и что действительно помогает.
Четыре замка и один уровень, которого нет
| Что защищаем | Чем закрывается | Насколько надёжно |
|---|---|---|
| Номер чипа (UID) | ничем: прошит на заводе, читается до любой аутентификации | 0 из 10 |
| Содержимое метки (NDEF) | пароль PWD: NTAG 21x, Ultralight EV1, Ultralight C | зависит от настроек |
| Запись в память | WRITE LOCK (необратимо) или пароль | 8 из 10 |
| Данные в секторах | ключи A и B, шифр Crypto-1 (MIFARE Classic) | 3 из 10 |
| Сам доступ (дверь, турникет) | криптография AES плюс решение контроллера | 9 из 10 |
Начнём с главного, что почти никто не осознаёт: пароль и UID — это два разных мира. UID передаётся считывателю в момент антиколлизии, когда метка только «поздоровалась» с ридером: никакой пароль, никакая криптография на этой стадии ещё не участвуют. Если дверь или турникет проверяют только UID — пароль на метке не значит ничего.
Второй момент: даже правильный пароль защищает только те страницы памяти, которые ты сам указал при настройке. По умолчанию чип с завода открыт: пароль в нём есть, а защита выключена. Как это выглядит на практике — ниже.
Пароль на NTAG 213/215/216: как он устроен
У NTAG 213, 215 и 216 (и у MIFARE Ultralight EV1) защита сделана просто и жёстко: 4-байтный пароль, который передаётся командой PWD_AUTH. Никаких сертификатов и обмена ключами — метка отдаёт защищённые страницы, если пароль угадан.
| Поле | Что это |
|---|---|
| PWD | сам пароль, 4 байта (8 hex-символов) |
| PACK | 2 байта, «ответ» метки: по нему ридер понимает, что пароль верный |
| AUTH0 | номер страницы, с которой начинается защита; значение FF — защита выключена |
| ACCESS | бит PROT: 0 — пароль нужен только для записи, 1 — и для чтения, и для записи |
| AUTHLIM | лимит неудачных попыток: после его превышения метка закрывается навсегда |
| CFGLCK | «пломба» на конфигурацию: пароль и настройки больше не изменить |
Заводские значения: PWD = `FF FF FF FF`, PACK = `0000`, AUTH0 = `FF`, ACCESS = `00`. То есть из коробки метка открыта и перезаписывается кем угодно.
Две неприятные особенности этой схемы:
- Забытый пароль не восстанавливается. Никакого «сброса» нет: подобрать 4 байта перебором через смартфон нереально, а если AUTHLIM задан, метка после нескольких неверных попыток уходит в глухую блокировку. Пароль на тестовых метках — правило, а не паранойя.
- Пароль ходит по воздуху. Считыватель отправляет 4 байта открытым текстом, и их можно перехватить. Flipper Zero, например, умеет эмулировать сохранённую метку, дождаться, пока ридер пришлёт пароль, перехватить его и уже потом прочитать закрытые страницы. Поэтому пароль — не «замок», а «шторка».
Как поставить пароль: четыре способа
- NFC Tools (Android) — раздел «Другое»: установка пароля на NTAG 213/215/216, там же снятие пароля (если помнишь текущий), блокировка метки и форматирование. Подробно — в разборе NFC Tools.
- NXP TagWriter — официальное приложение NXP: «Защита метки» ставит пароль на запись, отдельный режим переводит метку в read-only навсегда.
- Flipper Zero — обратная задача: ввод известного пароля, чтобы прочитать закрытые страницы, либо перехват пароля у считывателя и генерация пароля по UID для некоторых вендорских меток (игрушки, фильтры Xiaomi).
- MIFARE Classic Tool — паролей не ставит: у MIFARE Classic другая модель защиты, о ней ниже.
Практический порядок для тиража: настроить одну метку, записать в неё контент, проверить на Android и на iPhone, и только потом ставить пароль и, если нужно, WRITE LOCK. И сразу завести реестр: номер метки, страница соглашения, пароль, дата настройки.
Ловушки, из-за которых «пароль» не работает
- AUTH0 остался заводским. Пароль записан, PACK записан, а защита выключена: AUTH0 = FF означает «защищённых страниц нет». Более того, при таком значении сам пароль лежит в открытой памяти — можно прочитать дамп и просто узнать его. Проверяется во вкладке технической информации металки.
- Пароль из словаря. `12345678`, `00000000`, `FFFFFFFF`, `A0A1A2A3` — по этим значениям ходят готовые словари в приложениях для чтения меток и во встроенных базах Flipper Zero. Простой пароль эквивалентен его отсутствию.
- Пароль защищает не то, что нужно. Защита чтения на NTAG закрывает страницы NDEF, но не UID. Значит, клон пропуска всё равно делается: содержимое копируется обходным путём, а номер подделывается на magic-карте.
- iPhone не пройдёт парольную аутентификацию. Системный NFC на iOS не отправляет PWD_AUTH, а в iOS-версиях приложений функций пароля и блокировки почти нет. Метка с защитой чтения на iPhone выглядит пустой — это важно, если ей пользуются клиенты.
MIFARE Ultralight: пароля нет и не будет
Самый частый вопрос от заказчиков: «а на этих метках пароль поставить можно?». Если на упаковке написано просто Ultralight — нет, нельзя. Это чип MF0ICU1 первого поколения: 16 страниц по 4 байта, из них 48 байт пользовательской памяти, две страницы UID, OTP-страницы и lock-биты. Ни аутентификации, ни пароля, ни криптографии в нём нет вообще.
Единственный доступный «замок» — необратимый: OTP-страницы (один раз записал — дальше только добавить единичные биты) и lock-биты, которые закрывают запись навсегда. Дверь без замка, которую можно заварить.
| Чип | Память | Защита |
|---|---|---|
| MIFARE Ultralight | 48 байт | нет: только OTP и lock-биты |
| MIFARE Ultralight EV1 | 48–128 байт | 4-байтный пароль PWD/PACK, как у NTAG 21x |
| MIFARE Ultralight C | 144 байта | 3DES, 16-байтный ключ |
| MIFARE Ultralight AES | 144 байта | AES-128, взаимная аутентификация |
Из таблицы видно, где ловушка: пароль появляется только в EV1 и старше, а 3DES и AES — уже полноценная криптография, но у Ultralight C ключ часто оставлен заводским, и такие ключи собраны в словари (у Flipper Zero есть встроенный словарь для Ultralight C). Криптография спасает, только когда ключ уникален и не утёк.
Вывод простой: если нужен пароль на содержимое — бери NTAG 21x или Ultralight EV1. Если нужна защита от копирования — только линейка с AES (Ultralight AES, NTAG 424 DNA, DESFire). Что подходит под какую задачу — в разборе по выбору меток.
MIFARE Classic: ключи вместо пароля
Если метка определяется как MIFARE Classic — дело не в пароле. Здесь память поделена на секторы: в 1K это 16 секторов по 4 блока по 16 байт, в 4K — 40 секторов. Три блока сектора хранят данные, а последний, трейлер, устроен так:
| Часть трейлера | Размер | Назначение |
|---|---|---|
| Key A | 6 байт | ключ доступа «A» |
| Access-биты | 4 байта | права на чтение и запись для каждого блока |
| Key B | 6 байт | ключ доступа «B» |
Ключ длиной 48 бит — это и есть вся защита MIFARE Classic. Перед чтением или записью карта аутентифицируется шифром Crypto-1. Обычно права делают так, что по Key A можно читать, а по Key B — писать, но конкретика зависит от access-битов, и именно тут рождаются дыры:
- Ключ по умолчанию. `FF FF FF FF FF FF` или `A0 A1 A2 A3 A4 A5` — самые популярные значения в мире. Эти ключи лежат в словарях всех приложений и устройств для работы с Classic.
- Key B «на всякий случай» оставлен читаемым. Злоумышленник вычитывает Key B вместе с данными и получает полный доступ к сектору.
- Заводские access-биты (`FF 07 80 69`) означают, что Key A прочитать нельзя, но это не спасает: 48 бит перебираются, а соседние секторы часто открываются одним и тем же ключом.
Crypto-1 сломан, и это не новость
Хронология, которая объясняет, почему не бывает «сложной» MIFARE Classic:
- 2008 — публичная атака на шифр Crypto-1: разбор MIFARE Classic и Oyster-карт.
- 2009 — беспроводное «карманничество»: атаки darkside и nested позволяют восстановить ключи и сделать клон проездного или пропуска, не касаясь карты дольше пары секунд.
- 2015 — атака по шифротексту на «укреплённые» карты (метод, известный как hardnested). В том же году NXP официально признала слабость Crypto-1 и рекомендовала переход на решения с AES.
Вывод: MIFARE Classic — не защищённый носитель. Он отлично работает как дешёвая метка для меню, браслета, самоката, но как ключ от чего-то ценного он не годится, если только система доступа не использует дополнительную криптографию поверх (об этом ниже).
Нулевой блок: почему UID нельзя «запереть»
В MIFARE Classic нулевой блок — тот самый, который в дампах выглядит как строка с UID в начале, — это 16 байт: UID (4 байта, в семибайтных версиях — 7 байт), контрольный байт BCC, SAK, ATQA и 8 байт данных производителя.
Ключевое: на оригинальной карте нулевой блок прошит на заводе, и записать в него нельзя — ни ключом, ни чем угодно ещё. Он «не защищён паролем» не потому, что пароль плохой, а потому что это не область данных: это паспорт чипа, который отдаётся считывателю сразу, ещё до аутентификации.
А теперь про клоны. Существует класс карт, которые называют magic (UID-changeable), и они делятся на поколения:
| Поколение | Как переписать нулевой блок |
|---|---|
| Gen1A (он же UID) | служебная команда-бэкдор, обычной записью блок 0 не берётся |
| Gen2 (CUID) | нулевой блок пишется как обычный, с ключом сектора |
| Gen3 (APDU) | через APDU-команды |
| Gen4 (USCUID, FUID, UFUID) | гибкая перепрошивка: карта конфигурируется хоть под MIFARE Classic, хоть под NTAG 213/215/216 или Ultralight EV1/EV2 |
Magic-карта стоит от 50 до 150 рублей, и Flipper Zero умеет писать в Gen1, Gen2 и Gen4 данные и UID оригинала. Отсюда практический вывод: любое решение, которое опирается только на UID, ломается за минуты и копейки. Именно поэтому в нормальных чипах последних поколений (DESFire EV1 и новее) есть Random UID — номер меняется от сессии к сессии, и доверять ему бессмысленно: решение принимает криптография.
Дешёвые домофоны старой волны работают вообще на 125 кГц (EM-Marine, клоны на чипе T5577): там нет не то что пароля — там нет ни одной проверки подлинности, а дубликат ключа делается копеечным брелоком на любом рынке.
Чем копируют метки и пропуска в 2026 году
Арсенал давно не требует лаборатории: почти всё делается со смартфона, а «профессиональная» часть стоит как один поход в магазин.
| Инструмент | Что умеет и чего не может |
|---|---|
| NFC Tools (Android) | чтение, запись, копия метки, дамп памяти, пароль, блокировка. С Classic работает не на всех телефонах, на iPhone этих функций почти нет |
| MIFARE Classic Tool | подбор ключей, дамп 1K и 4K, запись дампа на magic-карту. Только MIFARE Classic |
| NFCGate | клонирование метки в файл и ретрансляция данных. Нужен второй смартфон и интернет |
| Flipper Zero | ключи из словаря, перехват данных у считывателя, атаки на карту, эмуляция. NTAG с паролем — только через словарь или перехват |
| Proxmark3 | всё то же, но серьёзнее: hardnested, работа с укреплёнными картами. Дороже и сложнее |
| ChameleonMini | эмуляция точного клона, включая UID. Дамп нужно снять заранее |
| Копир 125 кГц | дубликат старого ключа домофона на чипе T5577. Работает там, где криптографии нет вообще |
Как выглядит типовой сценарий клонирования пропуска:
- Считать карту: телефоном или Flipper — что удалось, сохраняется в дамп.
- Добрать ключи: словарь дефолтных, потом атака на конкретную карту. Интересная деталь: Flipper умеет собирать данные прямо со считывателя (атака mfkey32) — карта ему для этого не нужна, только доступ к двери, куда он приложится вместе с твоим пропуском в кармане.
- Записать дамп на magic-карту вместе с нулевым блоком — UID совпадёт с оригиналом.
- Эмулировать карту телефоном или Flipper: для двери это выглядит как твой пропуск.
Отдельная история — ретрансляция (relay), и она обходит даже криптографию. Смартфон злоумышленника у двери, второй смартфон рядом с тобой, связь между ними через интернет: ридер думает, что разговаривает с твоей картой, и получает правильные ответы, потому что на другом конце отвечает настоящий чип. Против этого работает только так называемая проверка близости (Proximity Check), которая есть в DESFire EV2 и новее, и физическая изоляция — например, карта в защищённом чехле, которая «не дотягивается» до ридера.
Как защищены нормальные пропуска
Разница между «карта для прохода» и «карта для красоты» — в криптографии и в том, кто принимает решение о допуске.
| Уровень | На чём построен |
|---|---|
| AES-128 и взаимная аутентификация | MIFARE DESFire EV2 и EV3, MIFARE Plus в режиме SL2 или SL3: ключ не уходит в эфир, данные шифруются и подписываются |
| Уникальный ключ на каждую карту | диверсификация ключей, случайный UID, транзакционный MAC: утечка одной карты не открывает остальные |
| Проверка на стороне системы | контроллер или сервер проверяет подпись, ведёт журнал, ставит лимиты и требует второй фактор |
Три практических наблюдения из этой таблицы:
- MIFARE Plus безопасен не всегда. В режиме SL1 он специально совместим с MIFARE Classic — и уязвим ровно так же, как Classic. Защита включается только в SL2 и SL3, где работает AES.
- Заводские ключи убивают любую криптографию. DESFire EV3 с ключом из документации и ключами по умолчанию ничуть не лучше Classic. Ключи должны быть уникальными для каждой карты и храниться в контроллере или SAM-модуле, а не в блокноте администратора.
- Система, которая смотрит только на UID, бесполезна с любым чипом. Даже если заказчик купил DESFire, а считыватель передаёт дальше только номер карты — вы получили дорогую метку с теми же свойствами, что и домофонный ключ за 50 рублей.
А если метка нужна не для доступа, а для контента, действует обратная логика: не переплачивай за крипточип, ставь пароль, блокируй запись и следи, чтобы метка не стала «кирпичом».
Чек-лист: как защитить свои метки
Короткие ответы на частые вопросы
Забыл пароль на NTAG — можно сбросить? Нет. Сброса не существует: если AUTHLIM задан, после нескольких неверных попыток метка закрывается навсегда, а если ещё и CFGLCK, то конфигурацию уже не изменить. Метка останется «кирпичом» или, в лучшем случае, читаемой, но не перезаписываемой.
Пароль защищает от копирования? Нет. Он защищает содержимое и запись, но не UID и не сам носитель. Копию делают с другого чипа.
А потом снять пароль получится? Да, если помнишь пароль и не включён CFGLCK: в приложениях это отдельная операция «снять пароль».
Метка «Ultralight» — на неё встанет пароль? На оригинальный Ultralight — нет, там пароля нет вообще. Нужен Ultralight EV1, NTAG 21x или чип с AES.
Купил партию меток — они уже защищены? Нет. Заводские настройки открыты: PWD `FF FF FF FF`, AUTH0 `FF`, запись разрешена. Всё, что нужно, настраивается перед выдачей.
У нас весь офис на MIFARE Classic — менять всё? Не обязательно одномоментно: сначала выведите на нормальные чипы внешний контур и зоны с ценностями, а Classic оставьте там, где важен только факт прохода. Но закладывайте замену в бюджет: Crypto-1 не станет надёжнее.
Итог
Пароль на NFC-метке — это полезный инструмент, но ровно с той областью действия, которую ему дали при настройке: он закрывает страницы памяти от чтения и запись от посторонних. Он не защищает номер чипа, не спасает от ретрансляции, не превращает MIFARE Classic в надёжный ключ и не работает там, где метку читает iPhone.
Реальная защита всегда собрана из уровней: правильный чип (AES вместо Crypto-1), уникальные ключи и пароли вместо заводских, необратимая блокировка для неизменяемого контента и решение о допуске на стороне системы, а не в считывателе. Всё остальное — вопрос удобства и бюджета.
Если нужно проверить свои метки на клонируемость и собрать защищённую схему под конкретную задачу — напиши нам на info@nfcrafter.ru. Разбор атак на клонирование меток и уровни защиты — в новости про NFCGate, выбор чипа под задачу — в гиде по меткам, настройка паролей и блокировок — в инструкциях по NFC Tools и NXP TagWriter, а системы доступа — в материале про NFC для умного доступа. Метки с готовой записью, защитой и паролем можно заказать в каталоге NFCrafter.