Общая информация
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) обладают следующими характеристиками:
Подробности
Каждое устройство состоит из антенны и самого кристалла, который условно можно разделить на три большие части:
Блок-схема чипа Mifare Classic.
Память всех устройств Mifare Classic разделена на сектора, каждый из которых, в свою очередь, разделен на 4 блока по 16 байт. Блок - это минимальная единица адресации памяти. Нулевой блок нулевого сектора программируется на заводе и недоступен для перезаписи. Он называется блоком изготовителя (manufacturer block). Последний блок каждого сектора является хранилищем ключей A и B, а также условий доступа к сектору. Такие блоки называют трейлерами (trailer - прицеп). Оставшиеся блоки используются для хранения пользовательских данных. Нумерация секторов и блоков начинается с нуля: первый сектор памяти - sector 0, первый блок любого сектора - block 0.
Схема организации памяти чипа Mifare Classic 1K.
Любой блок (кроме блока изготовителя и трейлера) может хранить данные в двух видах:
В 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 продолжились. В итоге были найдены следующие слабые места:
По результатам исследований были созданы практические методы атаки, доказывающие концепцию:
В большинстве случаев, интерес представляют Dark Side Attack и Nested Attack, так как они могут быть реализованы в домашних условиях, в отличие от первого метода. Связка из утилит MFOC и MFCUK практически гарантированно находила все ключи от карты в короткий срок. "Практически" - потому что существует множество чипов, идентифицирующих себя как Mifare Classic, однако в нестандартных условиях они ведут себя совершенно по-разному. Тем не менее, утилиты все еще актуальны.
Бесконечный и бесплатный проездной.
Множество транспортных систем мира успешно обновили уязвимые карты "в поле" на более защищенные Mifare Plus, однако, в целях минимизации затрат на обновление систем целиком (новое ПО, новые считыватели и т.п.), практически все карты работают в режиме SL1. Это режим, при котором карта MIfare Plus ведет себя как устаревшая Mifare Classic - память и система команд организованы так же, но часть уязвимостей устранены. Возникает вопрос: Остаются-ли системы оплаты проезда уязвимыми? Ответом будет вот эта картинка: Почему? Давайте рассмотрим пример организации системы контроля оплаты проезда в вымышленном городе S. Город S - это средний город, он не отсталый в технологическом плане, в нем есть сложная система общественного транспорта и относительно недорогой интернет. В городе существует своя система, использовавшая карты Mifare Classic и успешно перешедшая на Mifare Plus. Данные хранятся в виде value-блоков в двух секторах карты, защищенных секретными ключами, а пустые сектора на картах открыты для чтения/записи. Предположим, злоумышленник получает ключи от секторов с данными, и может увеличить значение value-блока на любую сумму. Сможет-ли он использовать теоретически бесконечный ресурс? Нет, не сможет. На пути злоумышленника будут стоять следующие преграды:
Таким образом, злоумышленник сможет модифицировать карту, но не сможет создать "бесплатный и безлимитный" проездной документ. Вышеописанная система применима к картам Mifare Classic и Mifare Plus в режиме SL1. Она сложна, но эффективна, поэтому карты Classic все еще производятся и используются в локальных СКУД, программах лояльности ритейла и т.п., ведь в конечном счете безопасность системы ≠ безопасности карты.
| |
Просмотров: 2164 | | |
Всего комментариев: 0 | |