Карта 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, однако конкретные значения по умолчанию зависят от поставщика и партии — сверяйтесь с документацией на вашу партию карт. Системы СКУД и транспортные операторы обычно заменяют заводские ключи на собственные, поэтому «свежая» карта из метро читается не так, как только что купленная заготовка.

💡

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