Mifare Classic

Общая информация

 

Mifare Classic (ранее - Mifare Standard) - семейство чипов для бесконтактных смарт-карт, иначе называемых PICC (Proximity Integrated Circuit Card - карта со встроенной интегральной схемой, работающая на расстоянии). 

 

Технология разработана австрийской компанией Mikron (MIcron FARE-collection System - система взимания платы за проезд от Mikron), в настоящее время принадлежит NXP Semiconductors. В России эти карты стали популярным носителем для электронных проездных билетов.

 

Семейство состоит из чипов Mifare Classic 1K, Mifare Classic 4k, Mifare Classic Mini и Mifare Classic ID (отличаются только объемом памяти). Позже были выпущены более безопасные версии версии Mifare Classic EV1 1K и Mifare Classic EV1 4K (изменилась длинна UID, была исправлена аппаратная уязвимость).

Позиционировались производителем как недорогой и надежный носитель информации для систем общественного транспорта, управления доступом, идентификации и игр. В настоящее время считаются условно-небезопасными (при неправильной конфигурации) и рекомендованы к выводу из обращения самой компанией NXP.

 

Смарт карты этого семейства представляют собой бесконтактные карты памяти со встроенной логикой, совместимые с ISO/IEC 14443 Type A в частях 1-3. Используют проприетарные алгоритм шифрования (Crypto1) и  протокол аутентификации, поэтому полноценное взаимодействие с такими картами (включая чтение и запись в память) долгое время было возможно только через контроллеры от самой NXP Semiconductors.

 

 

Характеристики

 

 

 

Карты первого поколения (до EV1) обладают следующими характеристиками:

  • Рабочая частота: 13,56МГц. 
  • Максимальная скорость передачи данных: 106 кБод.
  • Максимальная дальность связи: до 10 см. (в зависимости от геометрии антенн).
  • Объем памяти (пользовательская + служебная):
    • 320 байт (Mini)
    • 1024 байта (1K)
    • 4096 байт (4K)
  • Безопасность: Механизм антиколлизии; проприетарный алгоритм шифрования Crypto1; отдельные ключи для каждого сектора; гибкий набор условий доступа; уникальный, неизменяемый  номер UID для каждой карты.

 

 

 

Подробности

 

 

Каждое устройство состоит из антенны и самого кристалла, который условно можно разделить на три большие части:

  • Аналоговый RF-интерфейс - обеспечивает радиосвязь и питание микросхемы
  • Цифровой блок управления (Digital Control Unit - DCU) - осуществляет аутентификацию и шифрование, обеспечивает доступ к памяти и механизм антиколлизии.
  • EEPROM-память - используется для хранения идентификатора устройства (UID), ключей шифрования, настроек доступа и пользовательских данных. 

 

Блок-схема чипа Mifare Classic.

 

Память всех устройств Mifare Classic разделена на сектора, каждый из которых, в свою очередь, разделен на 4 блока по 16 байт. Блок - это минимальная единица адресации памяти. Нулевой блок нулевого сектора программируется на заводе и недоступен для перезаписи. Он называется блоком изготовителя (manufacturer block). Последний блок каждого сектора является хранилищем ключей A и B, а также условий доступа к сектору.  Такие блоки называют трейлерами (trailer - прицеп). Оставшиеся блоки используются для хранения пользовательских данных. Нумерация секторов и блоков начинается с нуля: первый сектор памяти - sector 0, первый блок любого сектора - block 0. 

 

 

Схема организации памяти чипа Mifare Classic 1K.

 

 

Любой блок  (кроме блока изготовителя и трейлера) может хранить данные в двух видах:

  • DATA - любые данные в HEX-формате.  Для таких данных возможны операции чтения (Read) и записи (Write).
  • VALUE - блок со значением в особом формате. Для таких блоков возможны операции чтения (Read), записи (Write), увеличения значения (Increment), уменьшения значения (Decrement), перенос содержимого внутреннего регистра данных в блок (Transfer) и перенос содержимого блока во внутренний регистр данных (Restore). 

 

В 6-9 байтах каждого трейлера хранятся условия доступа. Эти условия определяют, какие операции можно производить над блоками сектора и над самим трейлером: что  можно прочесть, что можно записать, какой ключ при этом использовать и т.п. Внутренняя логика DCU всегда требует предварительной авторизации в секторе, прежде чем приступить к выполнению команд, а также проверяет соответствие условий доступа принятому формату. Предупреждение: Если условия доступа к сектору записаны в недопустимом формате, DCU необратимо блокирует такой сектор! Данные в заблокированном секторе  будет невозможно прочесть или записать. Также можно навсегда заблокировать чтение/запись/смену ключей вручную, установив соответствующие условия доступа.

 

Карты Mifare Classic Mini и Mifare Classic ID в плане организации памяти отличаются от Mifare Classic 1К только количеством секторов (в Mini - 5 сектров, в ID - 1 сектор). В картах Mifare Classic 4K, однако, есть более серьезное отличие: сектора с 0 по 31 (первые 32 сектора) карты так же как и у остальных представителей семейства содержат по 4 блока каждый (блоки 0...3). Последние же 8 секторов содержат по 16 блоков. "Большие" сектора также присутствуют в картах семейства Mifare Plus с объемом памяти 4096 байт.

 

 

Сектор 31 (нормального размера) и сектор 32 на карте Mifare Classic 4K.

 

 

 

 

Безопасность

 

 

Безопасность микросхем MIfare Classic основывалась на спорном принципе, который называется "Безопасность через неясность": разработчик скрыл от широкой общественности детали устройства и механизмов работы чипов, надеясь, что неизвестность и юридическое преследование исследователей предотвратит "взлом". Как  показало время - разработчик ошибался.

В 2007 году на конференции Chaos Communication Congress исследователи  Karsten Nohl (США), Sean O’Neil (Франция) продемонстрировали результаты частичной обратной разработки алгоритма шифрования Crypto-1. В анонсе их исследования, проводимого совместно с Nicolas T. Courtois (Великобритания) сказано, что взлом Crypto-1 с помощью алгебраической атаки занимает 200 секунд на обычном ПК (имея всего один вектор инициализации). 

В следующем году, группа голландских исследователей опубликовали три статьи, доказывающие, что безопасность всех чипов семейства Classic примерно равна нулю. Из материалов становится ясно, что не только основной алгоритм шифрования (Crypto-1) является смехотворным, но и сама структура чипа имеет серьезные бреши в безопасности. Зная, что на тот момент в мире было продано около 1 млрд чипов Classic и что многие из них использовались в т.ч. и в государственных учреждениях, исследователи были попросту шокированы.

 

Компанию NXP Semiconductors уведомили о результатах исследования и предложили обсудить порядок публикации результатов (чтобы не навредить интересам самой компании и ее клиентов), однако, та проигнорировала предложение. Вместо этого, компания подала в суд на исследователей, с требованием прекратить распространение результатов исследований и изъять уже опубликованное. В качестве аргумента компания настаивала на социальной значимости их продукта, а также на недопустимость разглашения деталей проприетарной (фирменной) технологии. Судья, тем не менее, не счел требования обоснованными и отметил, что свобода слова (в частности - публикация научных исследований) превалирует над коммерческими интересами компании, позволяя избежать риска от использования ущербного продукта. Таким образом, иск был отклонен, а исследования Mifare Classic продолжились.

В итоге были найдены следующие слабые места:

  • Длинна ключа всего 48 бит - возможен подбор ключа простым перебором (bruteforce атака)
  • Случайное число из встроенного генератора случайных чисел - предсказуемо. 
  • Алгоритм шифрования CRYPTO1 является легко взламываемым (были опубликованы результаты полной обратной разработки).

 

По результатам исследований были созданы практические методы атаки, доказывающие концепцию:

  • Атака повторного воспроизведения: При наличии устройства Proxmark3 (или другого сниффера), атакующий может "подслушать" нормальный обмен данными между авторизованной картой Classic и авторизованным считывателем, а затем - воспроизвести его. Также, атакующему становятся доступны ключи от всех секторов, учавствовавших в обмене данными.
  • Nested Attack: При наличии у атакуещего хотя бы одного валидного ключа (стандартный ключ или полученный другим способом), он может получить все ключи от всех секторов карты. Данная атака использует аппаратную уязвимость генератора случайных чисел карты и для нее не нужно подслушивать обмен данными с авторизованным считывателем (card-only атака). В 2009 году компания Nethemba опубликовала утилиту, способную реализовать эту атаку MFOC (MiFare Offline Cracker).
  • Dark Side Attack: Во время авторизации, когда считыватель отправляет карте свои данные + биты четности, карта в первую очередь проверяет правильность битов четности, а не сами данные. Если один из восьми битов неправильный - карта не отвечает считывателю (что совсем не плохо, с точки зрения безопасности). Однако, если биты четности установлены верно, но сами данные содержат ошибку - карта сообщит считывателю об ошибке, передав 4 бита кода ошибки. Проведя некоторые манипуляции с этими четырьмя битами, атакующий сможет восстановить 4 бита ключевого потока. В 2009 году Nicolas Courtois представил эту card-only атаку, а Андрей Костин реализовал ее в виде утилиты MFCUK (MiFare Classic Universal toolKit).

В большинстве случаев, интерес представляют Dark Side Attack  и Nested Attack, так как они могут быть реализованы в домашних условиях, в отличие от первого метода. Связка из утилит MFOC и MFCUK практически гарантированно находила все ключи от карты в короткий срок. "Практически" - потому что существует множество чипов, идентифицирующих себя как Mifare Classic, однако в нестандартных условиях они ведут себя совершенно по-разному. Тем не менее, утилиты все еще актуальны.


 Еще одна проблема безопасности возникла на закате популярности технологии и не была связана с ущербным дизайном. Этой проблемой стали китайские Magic Cards (UID-changeable cards). Под этим названием на китайских онлайн площадках появились карты, позволяющие изменять содержимое нулевого блока нулевого сектора, т.е. UID (идентификатор чипа). Приобретя такую карту, любой желающий мог сделать сколько угодно копий легитимной карты. 
Информации о Magic Card немного, известно лишь, что большинство из них могут хранить только 4-х байтовый UID. Также некоторые из них требуют специальную команду для перевода в режим изменения UID ("special" cards), тогда как другие изменяют UID в обычном режиме ("normal" cards). Такие карты часто были произведены кустарным способом, поэтому они не отличались надежностью и не могли похвастаться устойчивостью связи. Кроме того, в 2010 году NXP предупредила своих клиентов о выводе из обращния четырехбайтовых UID, а компании, обслуживающие оборудование (системы контроля), со временем научились определять и блокировать magic cards  по  "особенностям" чипа. 

 

Бесконечный и бесплатный проездной.

 

Множество транспортных систем мира успешно обновили уязвимые карты "в поле" на более защищенные Mifare Plus, однако, в целях минимизации затрат на обновление систем целиком (новое ПО, новые считыватели и т.п.), практически все карты работают в режиме SL1. Это режим, при котором карта MIfare Plus ведет себя как устаревшая Mifare Classic - память и система команд организованы так же, но часть уязвимостей устранены. Возникает вопрос: Остаются-ли системы оплаты проезда уязвимыми? Ответом будет вот эта картинка:

Почему? Давайте рассмотрим пример организации системы контроля оплаты проезда в вымышленном городе S.

Город S - это средний город, он не отсталый в технологическом плане, в нем есть сложная система общественного транспорта и относительно недорогой интернет. В городе существует своя система, использовавшая  карты Mifare Classic и успешно перешедшая на Mifare Plus.  Данные хранятся в виде value-блоков в двух секторах карты,  защищенных секретными ключами, а пустые сектора на картах открыты для чтения/записи. 

Предположим, злоумышленник получает ключи от секторов с данными, и может увеличить значение value-блока на любую сумму. Сможет-ли он использовать теоретически бесконечный ресурс? Нет, не сможет.

На пути злоумышленника будут стоять следующие преграды:

  1. Автоматическая система управления АСКОП - это система, отслеживающая состояние всех выпущенных карт. Она способна распознавать выпущенные карты, отслеживать все транзакции по ним и обнаруживать подозрительное поведение в режиме он-лайн (например, транзакции в разных точках города по одной карте, близко по времени; увеличение баланса на карте, без соответствующей записи в центральной БД), выдавать цифровые подписи. В городе S эта система в режиме он-лайн работает в метро, моментально блокирует модифицированные карты (как она их определяет - далее) и сообщает в центр управления номер карты, время и турникет на котором была произведена попытка оплаты. Этой информации достаточно, чтобы опознать злоумышленника на видеозаписи с камер наблюдения. Наземный транспорт в этом плане немного отстает (временно, не весь парк автобусов/трамваев/троллейбусов подключен к системе в режиме он-лайн), но данные также выгружаются в систему в конце каждого маршрута, с помощью wi-fi. 
  2. Персонал - сотрудники, обслуживающие АСКОП. При наличии подозрительных транзакций, контроллер АСКОП может проверить карту злоумышленника, а при наличии серии таких транзакций в течении некоторого времени - заранее ожидать нарушителя с нарядом полиции.
  3. Сама карта - элемент системы с самым низким уровнем доверия. Помимо стоимости самой карты (болванку можно приобрести по цене приблизительно равной стоимости проезда), помешает также то, что данные защищены не только алгоритмом Crypto1: каждый value-блок в системе подписывается цифровой подписью, а его копия хранится в центральной БД. Цифровая подпись формируется по алгоритму из данных карты (например, UID+что-то еще), значения value-блока и "секрета". Для каждой карты при каждой транзакции подпись уникальна (так система и определяет немодифицированные карты). "Секрет" - это криптографический ключ. Он хранится внутри системы и не может быть извлечен. Злоумышленник, увеличив значение value-блока не зная "секрета" и полного алгоритма, не сможет сформировать корректную подпись. Такая карта сразу будет опознана системой как поддельная и заблокирована. 

Таким образом, злоумышленник сможет модифицировать карту, но не сможет создать "бесплатный и безлимитный" проездной документ.

Вышеописанная система применима к картам Mifare Classic и Mifare Plus в режиме SL1. Она сложна, но эффективна, поэтому карты Classic все еще производятся и используются в локальных СКУД, программах лояльности ритейла и т.п., ведь в конечном счете безопасность системы ≠ безопасности карты.

 

Категория: HF RFID (13,56Mhz) | Добавил: pcscd (15.05.2018)
Просмотров: 2164 | Теги: mifare, безлимитный проездной, RFID, Метро, смарт-карта, NXP, MIFARE Classic | Рейтинг: 5.0/1
Всего комментариев: 0
Имя *:
Email *:
Код *:
close