Карта MIFARE Classic перестала открывать домофон после копирования на «болванку» — типичный признак того, что система проверяет не только UID, но и защищённые сектора, а ключи доступа не совпали. Такие ситуации возникают постоянно при работе с картами стандарта NXP MIFARE Classic: без понимания структуры памяти и механизма аутентификации диагностика превращается в гадание. Эта статья разбирает устройство чипа, принципы чтения и записи, известные уязвимости и безопасные приёмы работы.

MIFARE Classic — семейство бесконтактных смарт-карт производства NXP Semiconductors, работающих на частоте 13,56 МГц по стандарту ISO/IEC 14443 Type A. Карты массово применяются в транспортных системах, СКУД, домофонах и системах лояльности. Несмотря на возраст технологии и известные проблемы с криптографией, парк таких карт остаётся огромным, поэтому навыки работы с ними востребованы у инженеров, интеграторов и энтузиастов DIY-электроники.

Структура памяти MIFARE Classic

Память карты организована в сектора, каждый из которых делится на блоки по 16 байт. В модификации MIFARE Classic 1K доступен 1 Кбайт памяти, разделённый на 16 секторов по 4 блока. Версия MIFARE Classic 4K содержит 4 Кбайт: первые 32 сектора имеют по 4 блока, остальные — по 16 блоков.

Последний блок каждого сектора называется трейлером сектора (sector trailer). В нём хранятся два ключа доступа — Key A и Key B — а также биты условий доступа, определяющие, какие операции разрешены с каждым блоком сектора. Нулевой блок нулевого сектора содержит UID карты и данные производителя — в оригинальных картах NXP он доступен только для чтения.

  • 🗂️ Блок данных — 16 байт пользовательской информации или значения-счётчика
  • 🔑 Трейлер сектора — ключи Key A / Key B и биты доступа
  • 🆔 Блок 0 — UID и данные изготовителя, защищён от записи
  • 📦 Сектор — минимальная единица с собственными ключами и правами

Механизм аутентификации и ключи

Доступ к каждому сектору защищён процедурой аутентификации: считыватель доказывает знание Key A или Key B, после чего открывается сеанс обмена данными. Шифрование канала и проверка ключей реализованы на проприетарном алгоритме CRYPTO1 с 48-битными ключами. Именно ограниченная длина ключа и особенности протокола стали причиной известных атак, опубликованных исследователями ещё в конце 2000-х годов.

На заводе карты поставляются со стандартными ключами. Часто встречается ключ FFFFFFFFFFFF, однако конкретные значения по умолчанию зависят от поставщика и партии — сверяйтесь с документацией на вашу партию карт. Системы СКУД и транспортные операторы обычно заменяют заводские ключи на собственные, поэтому «свежая» карта из метро читается не так, как только что купленная заготовка.

💡

Перед любыми экспериментами с записью снимите полный дамп карты, пока она в рабочем состоянии. Резервная копия позволит восстановить данные, если биты доступа будут настроены ошибочно.

Чем читать и записывать карты

Для работы с MIFARE Classic подойдёт несколько классов устройств. Наиболее доступный вариант — NFC-модуль PN532 или считыватель на базе RC522, подключаемый к Arduino, ESP32 или Raspberry Pi. Также используются USB-считыватели для ПК и смартфоны с NFC, хотя поддержка MIFARE Classic в телефонах зависит от конкретного NFC-чипа: не все контроллеры умеют работать с этим проприетарным протоколом.

Типовая последовательность чтения сектора выглядит так: сначала выполняется антиколлизионная процедура и выбор карты, затем аутентификация по известному ключу, после чего считываются блоки. В библиотеках для RC522 это соответствует вызовам вида PCD_Authenticate() и MIFARE_Read(), но точные имена функций зависят от используемой библиотеки.

☑️ Базовая проверка карты MIFARE Classic

Выполнено: 0 / 5
📊 Для какой задачи вы используете MIFARE Classic?
Домофон и СКУД
Учебные проекты на Arduino/ESP32
Транспортные и платёжные системы
Исследование безопасности RFID

Известные уязвимости и их последствия

Алгоритм CRYPTO1 был вскрыт исследовательским сообществом: опубликованы атаки, позволяющие восстановить ключи секторов за разумное время при наличии специального оборудования. Компания NXP официально не рекомендует использовать MIFARE Classic в новых системах, где требуется защита от клонирования, и предлагает переходить на MIFARE DESFire или MIFARE Plus с современной криптографией AES.

⚠️ Внимание: копирование чужих карт доступа, транспортных карт или карт оплаты без разрешения владельца системы может нарушать закон и договор с оператором. Используйте описанные методы только на собственных картах и в тестовых стендах.

Практический вывод для интеграторов: если система опирается только на UID или на данные MIFARE Classic, её нельзя считать защищённой от подделки. Для новых проектов корректнее выбирать карты с AES-аутентификацией, а существующие парки — по возможности мигрировать.

Запись данных и типовые ошибки

Запись в блок данных выполняется после успешной аутентификации сектора. Критический момент — работа с трейлером сектора: случайная запись некорректных битов доступа способна навсегда заблокировать сектор, сделав его недоступным ни для чтения, ни для записи. Такая ошибка необратима, восстановить сектор программными средствами не получится.

⚠️ Внимание: перед записью трейлера сектора вручную рассчитайте и перепроверьте биты доступа по официальному даташиту NXP на MIFARE Classic. Ошибка в этих битах — самая частая причина «убитых» карт у новичков.

Ещё одна типовая проблема — попытка записи в блок 0. На оригинальных картах NXP он защищён аппаратно, и команда записи просто не выполнится. Существуют китайские «магические» карты с перезаписываемым нулевым блоком, но это отдельный класс изделий, и работа с ними отличается от штатной.

  • 🧱 Запись в трейлер без расчёта битов доступа — риск блокировки сектора
  • 🚫 Попытка изменить UID на оригинальной карте — операция не поддерживается
  • 🔍 Чтение без аутентификации — считыватель вернёт ошибку доступа
  • 📱 Использование смартфона без поддержки MIFARE — карта не определится корректно

Сравнение модификаций семейства

Внутри семейства и в соседних линейках NXP есть несколько вариантов, которые часто путают. Таблица ниже помогает сориентироваться, но точные характеристики конкретной карты уточняйте в даташите производителя.

ПараметрMIFARE Classic 1KMIFARE Classic 4KMIFARE Ultralight
Объём памяти1 Кбайт4 Кбайтадесятки байт
Структура16 секторов × 4 блока32 сектора × 4 + 8 секторов × 16 блоковстраницы по 4 байта
КриптографияCRYPTO1CRYPTO1ограниченная / зависит от версии
Типовое применениеСКУД, домофонытранспорт, кампусные картыбилеты, метки
Стойкость к клонированиюнизкаянизкаянизкая
💡

MIFARE Classic удобна для обучения и интеграции в DIY-проекты, но не обеспечивает защиту от клонирования. Для систем, где важна безопасность, выбирайте MIFARE DESFire или Plus.

Диагностика: карта не читается

Когда считыватель не видит карту или не проходит аутентификация, действуйте по шагам. Сначала убедитесь, что карта вообще отвечает: антиколлизионная процедура должна вернуть UID. Если UID не читается, возможная причина — неисправная карта, слишком большое расстояние до антенны или несовместимый тип карты (например, 125 кГц вместо 13,56 МГц).

Если UID читается, но сектора недоступны, наиболее вероятная причина — неизвестные ключи. Система, выдавшая карту, заменила заводские ключи собственными. В этом случае легальный путь — запросить ключи или доступ у оператора системы. Проверьте также, поддерживает ли ваше оборудование именно MIFARE Classic: часть NFC-чипов в смартфонах работает только с тегами стандарта NDEF.

Почему смартфон видит карту, но не читает данные

Многие телефоны определяют MIFARE Classic как NFC-метку и показывают UID, но полноценная работа с секторами требует поддержки протокола на уровне NFC-контроллера. Если чип телефона её не имеет, приложения смогут показать только базовую информацию. Проверить возможности конкретной модели поможет её спецификация или тестовое NFC-приложение.

FAQ: частые вопросы о MIFARE Classic

Можно ли изменить UID карты MIFARE Classic?

На оригинальных картах NXP нулевой блок с UID защищён от записи аппаратно. Смена UID возможна только на специальных картах с перезаписываемым блоком 0, которые выпускают сторонние производители.

Чем MIFARE Classic отличается от MIFARE DESFire?

DESFire использует современную криптографию (включая AES), файловую структуру вместо секторов и считается безопасной платформой. Classic опирается на взломанный CRYPTO1 и не рекомендуется для новых защищённых систем.

Карта перестала отвечать после записи — это обратимо?

Если были испорчены биты доступа в трейлере сектора, сектор блокируется необратимо. Если пострадал только блок данных, сектор обычно можно перезаписать после аутентификации. Восстановление из дампа — самый надёжный способ отката.

Подойдёт ли модуль RC522 для работы с MIFARE Classic?

Да, RC522 — один из самых распространённых и недорогих модулей для чтения и записи MIFARE Classic в проектах на Arduino и ESP32. Для работы потребуется библиотека с поддержкой аутентификации MIFARE.

Безопасно ли использовать MIFARE Classic для домофона?

Технология подвержена клонированию, поэтому для объекта с повышенными требованиями к безопасности она не подходит. Для частного использования риск оценивайте самостоятельно и по возможности комбинируйте с другими мерами контроля доступа.