Брелок Mifare, который «не читается» домофоном после копирования, чаще всего оказывается заготовкой с неверно записанным нулевым сектором — именно там хранится уникальный идентификатор UID, по которому большинство контроллеров СКУД опознают ключ. Программирование брелков Mifare сводится к трём операциям: чтению данных с оригинала, переносу их на записываемую заготовку и проверке результата на считывателе. Но дьявол кроется в деталях: тип чипа, защита секторов ключами доступа и модель копировщика напрямую определяют, получится ли рабочий дубликат.
В этой статье разберём, как устроены идентификаторы стандарта Mifare, чем отличаются популярные типы чипов, какое оборудование нужно для записи и как безопасно выполнить копирование, не испортив заготовку. Материал носит технический характер и предназначен для легальных сценариев: дублирования собственного ключа, настройки систем доступа в своей организации, изучения технологии RFID.
Как устроен брелок Mifare и почему это важно для программирования
Идентификаторы семейства Mifare работают на частоте 13,56 МГц по стандарту ISO/IEC 14443A. Внутри корпуса брелка — чип с антенной, который получает питание от электромагнитного поля считывателя и передаёт данные. Собственной батарейки у такого ключа нет, поэтому срок службы ограничен в основном механической прочностью корпуса.
Самый распространённый тип — Mifare Classic 1K. Его память объёмом 1 Кбайт разделена на 16 секторов по 4 блока в каждом. Ключевые моменты структуры:
- 🔑 Нулевой блок нулевого сектора — содержит UID (уникальный серийный номер) и данные производителя; на обычных картах он защищён от записи.
- 🗂️ Сектора 1–15 — пользовательская область, куда СКУД может записывать дополнительные данные (баланс, коды доступа).
- 🔒 Трейлер сектора — последний блок каждого сектора с ключами доступа Key A и Key B и битами прав.
- 📡 UID — идентификатор длиной 4 или 7 байт, который большинство домофонов и простых контроллеров считают «ключом».
Понимание этой структуры объясняет главную проблему копирования: если система проверяет только UID, достаточно перенести нулевой блок. Если же контроллер читает данные из защищённых секторов, потребуется знать ключи доступа или переносить содержимое целиком.
💡Большинство домофонов и простых СКУД проверяют только UID из нулевого блока — поэтому для дубликата чаще всего достаточно заготовки с перезаписываемым нулевым сектором.