SDK Readers 1.0.1
SDK для связи со считывателями Iron logic
Mifare Classic 1K

Phillips разработал карты Mifare 1K для использования со считывателями стандарта ISO/IEC14443A. Радиоинтерфейс (MIFARE RF) соответствует частям 2 и 3 стандарта ISO/IEC14443A. Слой безопасности поддерживает доказанный для поля шифр потока CRYPTO1 для безопасного обмена данными mifare классического семейства.

Основные возможности

  • Радиочастотный интерфейс Mifare (ISO/IEC 14443A)
    • Бесконтактная передача данных и питание по радиоканалу (не требует батарей)
    • Рабочее расстояние до 100мм (зависит от геометрических параметров антенны)
    • Рабочая частота: 13,56МГц
    • Быстрая передача данных: 106Кбит/сек
    • Высокая надежность передачи (16-битовая CRC, проверка на четность...)
    • Настоящая антиколлизия (поддержка нескольких карт в поле одновременно)
    • Время типовой транзакции менее 100мс (в том числе резервное управление)
  • Память
    • Размер 1КБайт, организована в виде 16 секторов, каждый из которых разбит на 4 блока, по 16 байт каждый
    • Определяемые пользователем условия доступа для каждого блока памяти
    • Срок хранения данных - 10 лет
    • 100 000 циклов записи
  • Защита
    • Настоящая трехпроходная аутентификация (ISO/IEC DIS9798-2)
    • Шифрование данных в радиоканале с защитой от повтора нападения
    • Индивидуальная пара ключей для каждого сектора
    • Уникальный 4-байтовый серийный номер для каждой карты
    • Транспортный ключ защищает доступ к EEPROM при поставке чипа

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

Организация памяти

1024x8 бит перепрограммируемой памяти организовано в виде 16 секторов с 4 блоками в каждом по 16 байт в каждом блоке.

В стертом состоянии ячейки читаются, как логический ноль, в записанном - как 1.

Изображение структуры памяти

Блок производителя (Manufacturer Block)

Нулевой блок хранит данные производителя. Уникальный (гарантировано Philips) ID, или серийный номер карты - байт 0..3. Четвертый байт - контрольная сумма номера. Блок данных производителя доступен только для чтения.

Блоки данных (Data)

Сектора 0..15 содержат по 3 блока данных. Блоки данных могут быть сконфигурированы с помощью битов доступа (access bits) для чтения-записи или для хранения значения (value).

Блоки значения (value)

Блоки значения позволяют выполнять команды read (чтение), write(запись), increment (увеличение), decrement (уменьшение), restore (восстановление) и transfer (сохранение). Блок значения имеет фиксированный формат, позволяющий обнаружение и исправление ошибок. Блок значения может быть сгенерирован только командой записи.

Номер байта 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Описание значение (value) НЕ значение (not value) значение (value) Адр. НЕ адр. Адр. НЕ адр.

Значение (value) - 4 байтовое знаковое целое число. (not value) - 4 байтовое инверсное к value знаковое целое число. Адресс (адр) - 1-байтовый адрес, который может быть использован для реализации функции бэкапа. Изменяется только командой записи.

Прицеп сектора (Sector trailer)

Каждый сектор имеет "прицеп", расположенный в блоке №3 каждого сектора. Каждый прицеп хранит секретные ключи А и Б, условия доступа для всех блоков в секторе (байты 6..9).

Номер байта 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Описание Ключ А (key A) Биты доступа Ключ Б (key B)

Работа с памятью

Карта состоит из 16 независимых секторов. Каждый сектор состоит из 4 блоков (3 информационных и 1 для хранения ключей и условий доступа). Блок является самым малым компонентом, к которому адресуется пользователь, и состоит из 16 байт. Каждый сектор имеет свой набор ключей доступа, что позволяет разграничивать доступ к различным приложениям. Доступ к секторам памяти может настраиваться пользователем при различных его условиях.

Условия доступа

Условия доступа к областям данных и к прицепу задаются тремя битами, которые хранятся в прицепе. Биты доступа задают, какие ключи необходимы для операций над областью.

Изображение данных прицепа с битами доступа
№ области (=№ блока) Описание Биты доступа Допустимые команды
0 область данных C10 C20 C30 read, write, increment, decrement, transfer, restore
1 область данных C11 C21 C31 read, write, increment, decrement, transfer, restore
2 область данных C12 C22 C32 read, write, increment, decrement, transfer, restore
3 прицеп сектора C13 C23 C33 read, write

ВНИМАНИЕ: если биты доступа записаны неверно, то сектор становится недоступен - то есть необратимо блокируется и использовать его в дальнейшем НЕ сможет никто!!!

Условия доступа для прицепа

В зависимости от значения битов доступа, прицеп сектора может быть сконфигурирован для чтения/записи, как "никогда", "ключ А", "ключ Б" или "ключ А или Б". Для новых карт, ключ А задается производителем (для Филипса: FF FF FF FF FF FF).

ВНИМАНИЕ: так как биты доступа могут блокировать доступ к самим себе, следует быть внимательным при разметке новой карты!

Биты доступа Условия доступа для... Примечания
ключ А биты доступа ключ Б
C1 C2 C3 чтение запись чтение запись чтение запись
0 0 0 никогда ключ А ключ А никогда ключ А ключ А Ключ Б может быть прочитан
0 1 0 никогда никогда ключ А никогда ключ А никогда Ключ Б может быть прочитан
1 0 0 никогда ключ Б ключ А или Б никогда никогда ключ Б
1 1 0 никогда никогда ключ А или Б никогда никогда никогда
0 0 1 никогда ключ А ключ А ключ А ключ А ключ А Ключ Б может быть прочитан (новая карта)
0 1 1 никогда ключ Б ключ А или Б ключ Б никогда ключ Б
1 0 1 никогда никогда ключ А или Б ключ Б никогда никогда
1 1 1 никогда никогда ключ А или Б никогда никогда никогда

Условия доступа для областей данных

В зависимости от значений битов доступа, данные могут быть доступны для чтения/записи: "никогда", по ключу А, по ключу Б или по ключу А или Б. Установка битов доступа определяет допустимые команды и применение карты. блок чтения-записи: доступен и на чтение, и на запись блок значения (value): дополнительно позволяет операции increment, decrement, transfer и restore. В случае единицы (001) только чтение и декремент допустимы (для "не пополняемой" карты). В случае 110, "пополнение" возможно с помощью ключа Б. блок данных производителя всегда доступен на чтение, вне зависимости от битов доступа.

Биты доступа Условия доступа для... Применение
C1C2C3 чтениезапись инкремент декремнт, transfer, restore
0 0 0 ключ А или Б* ключ А или Б* ключ А или Б* ключ А или Б* новая карта*
0 1 0 ключ А или Б* никогда никогда никогда блок для чтения-записи*
1 0 0 ключ А или Б* ключ Б* никогда никогда блок для чтения-записи
1 1 0 ключ А или Б* ключ Б* ключ Б* ключ А или Б* блок значения
0 0 1 ключ А или Б* никогда никогда ключ А или Б* блок значения*
0 1 1 ключ Б* ключ Б* никогда никогда блок для чтения-записи
1 0 1 ключ Б* никогда никогда никогда блок для чтения-записи
1 1 1 никогда никогда никогда никогда блок для чтения-записи
  • если ключ Б может быть прочитан (из соответствующего прицепа), он не может служить для авторизации.

При попытке авторизоваться ключом Б, карта будет отвечать отказом в любом последующем доступе.