Запись карты Mifare упирается в одну ключевую проверку: прежде чем записывать данные в сектор, нужно аутентифицироваться с правильным ключом доступа — иначе чип отклонит операцию, а при неправильной записи блока доступа сектор можно заблокировать навсегда. Именно ошибки с ключами и битами доступа чаще всего становятся причиной «убитых» карт, которые перестают читаться системами контроля доступа.
Карты стандарта Mifare (Classic, Ultralight, DESFire и другие семейства от NXP) используются повсеместно: пропуска СКУД, транспортные карты, брелоки домофонов, метки для учёта. Записать на них данные можно как специализированным программатором, так и обычным смартфоном с NFC-модулем — но подход и ограничения у каждого способа свои. В этом материале разберём структуру памяти карт, необходимое оборудование, пошаговый порядок записи и типичные ошибки.
Структура памяти карт Mifare: что нужно понимать перед записью
Наиболее распространённый тип — Mifare Classic 1K. Его память разделена на 16 секторов, каждый сектор содержит 4 блока по 16 байт. Три блока отведены под данные, а четвёртый — блок трейлера (sector trailer) — хранит два ключа доступа (Key A и Key B) и биты доступа, определяющие права на чтение и запись остальных блоков сектора.
Нулевой блок нулевого сектора — особый: там записан UID (уникальный идентификатор карты) и данные производителя. На обычных картах этот блок доступен только для чтения. Перезаписать его можно лишь на специальных картах с изменяемым UID, которые часто называют «китайскими» или magic-картами.
У Mifare Ultralight структура проще: память организована страницами по 4 байта, криптозащита отсутствует, поэтому запись выполняется проще, но и защищённость такой карты минимальна. Семейство DESFire использует файловую структуру с приложениями и требует совсем другого подхода — рассмотрение его специфики выходит за рамки базовой инструкции.
Главное правило записи Mifare Classic: сначала аутентификация ключом к сектору, затем запись. Блок трейлера перезаписывайте только при полном понимании формата битов доступа.
Оборудование и софт для записи
Для работы с картами Mifare подойдёт несколько классов устройств. Выбор зависит от задачи: разовое копирование пропуска, эмуляция, массовая персонализация карт для организации.
- 🔌 USB NFC-ридеры — например, устройства на базе чипа PN532 или ридеры ACR122U. Подключаются к компьютеру и работают с программами для чтения и записи дампов.
- 📱 Смартфон с NFC — удобен для полевых задач. На Android существуют приложения для работы с Mifare Classic, однако поддержка зависит от NFC-чипа конкретного телефона: не все контроллеры корректно работают с протоколом Classic.
- 🛠 Продвинутые инструменты — Proxmark 3 и аналоги. Позволяют подбирать ключи, сниффить обмен между карточкой и считывателем, работать с нестандартными картами.
- 💳 Заготовки карт — чистые карты Mifare Classic с заводскими ключами или magic-карты с перезаписываемым нулевым блоком для полного клонирования.
Обратите внимание: iPhone накладывает существенные ограничения на низкоуровневую работу с Mifare Classic через NFC. Для серьёзных задач записи лучше использовать Android-устройство или USB-ридер с ПК.
Подготовка: ключи доступа и чтение исходной карты
Перед записью необходимо прочитать исходную карту и получить её дамп — полный образ памяти. Для аутентификации в секторах используются ключи. Новые карты обычно имеют заводской ключ FFFFFFFFFFFF, но карты действующих систем (транспортные, пропуска) почти всегда защищены нестандартными ключами.
Если ключ неизвестен, существуют инструменты для его подбора: словарные атаки по спискам распространённых ключей или криптографические атаки на Mifare Classic (защита этого стандарта признана уязвимой). Proxmark 3 и ряд программ для ПК умеют выполнять такой подбор автоматически. Успех не гарантирован и зависит от конкретной карты — это стоит учитывать заранее.
⚠️ Внимание: запись и клонирование карт доступа допустимы только для карт, которыми вы владеете на законном основании, и в рамках правил организации, выдавшей пропуск. Несанкционированное копирование чужих пропусков и транспортных карт может повлечь юридическую ответственность.
Что такое вложенная аутентификация (nested attack)
Если хотя для одного сектора карты известен ключ, атака типа nested позволяет вычислить ключи остальных секторов, используя уязвимость протокола Crypto1 в Mifare Classic. Именно поэтому достаточно найти один сектор с заводским или словарным ключом — дальше восстановление остальных ключей обычно занимает заметно меньше времени.
Пошаговая запись карты Mifare Classic
Общий порядок действий одинаков для большинства программ и устройств, хотя названия кнопок и пунктов меню различаются. Сверяйтесь с документацией вашего конкретного софта.
☑️ Порядок записи карты Mifare Classic
Шаг 1. Считайте исходную карту и сохраните дамп в файл (обычно форматы .mfd или .bin). Это ваша страховка: при ошибке записи вы сможете восстановить данные.
Шаг 2. Поднесите чистую заготовку и убедитесь, что программа её определяет. Проверьте тип карты — запись дампа Classic 1K на карту другого типа или объёма приведёт к ошибке.
Шаг 3. Выполните запись блоков данных. Если вы клонируете карту полностью, включая UID, потребуется magic-карта с перезаписываемым нулевым блоком — обычная заготовка не позволит изменить идентификатор.
Шаг 4. После записи обязательно считайте заготовку заново и сравните дампы. Совпадение блоков данных — признак успешной записи. Затем проверьте карту на реальном считывателе системы.
Перед записью ценной карты потренируйтесь на отдельной дешёвой заготовке: ошибка в блоке трейлера необратимо блокирует сектор, и испортить одну тестовую карту заметно дешевле, чем рабочий пропуск.
Запись через смартфон с NFC
На Android-смартфонах существуют приложения, позволяющие читать и записывать Mifare Classic с помощью файлов ключей. Общий принцип: вы загружаете в приложение файл ключей (свой дамп ключей или словарь), прикладываете карту к NFC-антенне телефона, читаете дамп, редактируете нужные блоки и записываете на заготовку.
Важный нюанс — совместимость. Часть NFC-контроллеров в смартфонах не поддерживает полноценную работу с Mifare Classic, особенно это касается некоторых устройств с чипами, не произведёнными NXP. Если приложение не видит карту или сразу сообщает об ошибке, возможная причина — аппаратное ограничение телефона, а не неисправность карты. Проверить это можно, протестировав карту на другом устройстве или USB-ридере.
Держите карту неподвижно у NFC-антенны на протяжении всей операции записи. Разрыв связи в середине процесса может оставить сектор в частично записанном состоянии. Расположение антенны у разных моделей телефонов отличается — обычно это верхняя часть задней панели, но точное место стоит уточнить в документации к вашему смартфону.
Типичные ошибки и их последствия
| Ошибка | Причина | Последствие |
|---|---|---|
| Карта не аутентифицируется | Неверный или неизвестный ключ сектора | Чтение и запись блоков невозможны |
| Сектор перестал отвечать | Записан некорректный блок трейлера | Сектор необратимо заблокирован |
| Клон не работает в СКУД | UID не совпадает (обычная заготовка) | Система отклоняет карту |
| Ошибка записи на смартфоне | NFC-чип не поддерживает Classic | Нужен другой телефон или USB-ридер |
| Прерывание записи | Карта убрана от антенны в процессе | Частично записанные, повреждённые данные |
Наиболее критичная строка в этой таблице — вторая. Неправильно сформированные биты доступа в трейлере могут навсегда запретить любые операции с сектором, включая чтение. Восстановить такой сектор штатными средствами нельзя. Поэтому правило простое: если нет уверенности в формате трейлера — записывайте только блоки данных, а трейлеры оставляйте как есть.
⚠️ Внимание: при записи дампа с одной карты на другую помните, что вместе с данными копируются и ключи из трейлеров. Если целевая карта используется в другой системе, чужие ключи могут конфликтовать с её настройками. Записывайте только те сектора, которые действительно нужно перенести.
Отличия записи Mifare Ultralight и NTAG
Карты Mifare Ultralight и метки семейства NTAG записываются проще: криптографической аутентификации по ключам A/B там нет, данные пишутся постранично. С этими типами отлично работают практически все NFC-смартфоны, включая iPhone — через стандартные механизмы NDEF.
Зато у Ultralight есть своя ловушка — OTP-байты (one-time programmable) и lock-биты. Их можно перевести из состояния «0» в «1», но не обратно. Случайная установка lock-бита навсегда блокирует соответствующую область памяти от изменений. Перед записью в служебные страницы сверьтесь с даташитом конкретного чипа.
Если задача — записать на метку ссылку, текст или команду для смартфона, используйте NTAG-метки и формат NDEF: это самый совместимый вариант, который читается любым современным телефоном без дополнительных приложений.
Проверка результата и безопасность
После записи выполните три проверки. Первая — повторное чтение карты и побайтовое сравнение дампа с эталонным файлом. Вторая — тест на целевом считывателе: пропуск должен сработать в СКУД, транспортная карта — определиться валидатором. Третья — проверка стабильности: считайте карту несколько раз с небольшими интервалами, чтобы исключить сбойные блоки.
Храните дампы карт как конфиденциальные данные. Файл дампа содержит всю информацию для изготовления полной копии пропуска, включая ключи. Передача таких файлов третьим лицам фактически равнозначна передаче самого пропуска.
Успешная запись Mifare = правильные ключи + корректные трейлеры + проверка дампа после записи. Пропуск любого из трёх элементов — главная причина нерабочих и заблокированных карт.
Часто задаваемые вопросы
Можно ли записать карту Mifare обычным смартфоном?
Да, если смартфон на Android и его NFC-контроллер поддерживает работу с Mifare Classic. Для Mifare Ultralight и NTAG ограничений практически нет — их пишут и iPhone. Проверить совместимость проще всего экспериментально: установите приложение для работы с NFC и попробуйте считать карту.
Что делать, если ключи секторов неизвестны?
Используйте инструменты со словарным подбором ключей или атаками на протокол Crypto1 (например, на базе Proxmark 3). Если хотя бы один сектор имеет заводской ключ, остальные часто удаётся восстановить. Гарантии успеха нет — всё зависит от конкретной карты и настроек системы, которая её выдала.
Почему клонированная карта не работает в домофоне или СКУД?
Наиболее вероятная причина — система проверяет UID карты, а на обычной заготовке изменить его нельзя. Нужна magic-карта с перезаписываемым нулевым блоком. Другой вариант — система использует защищённые сектора, которые не были перенесены корректно.
Можно ли восстановить сектор после записи неправильного трейлера?
Штатными средствами — нет. Биты доступа могут полностью запретить операции с сектором, и эта блокировка необратима. Поэтому трейлеры записывают только при полной уверенности в корректности данных, а сами карты перед экспериментами дублируют на тестовых заготовках.
Чем отличается Mifare Classic от Mifare Ultralight при записи?
Classic требует аутентификации ключами перед доступом к каждому сектору и имеет риск необратимой блокировки через трейлер. Ultralight пишется постранично без ключей, но имеет необратимые lock-биты и OTP-области. Подход и инструменты для этих типов карт различаются.