Когда базовые идентификаторы для управления доступом больше не справляются, многие задумываются о переходе на более совершенное решение — Mifare. Но насколько безопасны эти устройства, как обещает изготовитель? Давайте попробуем разобраться!
Еще по теме: Лучшие устройства хакера
Что такое Mifare
Mifare — это технология бесконтактных смарт-карт, которая используется для различных приложений, таких как системы контроля доступа, общественный транспорт, идентификация и многое другое. Она была разработана компанией NXP Semiconductors и стала популярной благодаря своей надежности и удобству использования.
Смарт-карты Mifare обычно работают на частоте RFID (радиочастотной идентификации) и могут без контакта передавать данные между картой и считывателем. Они используются для хранения информации, такой как идентификационные данные, билеты на общественный транспорт, ключи для доступа в здания и многое другое. Множество систем в разных отраслях используют технологию Mifare для обеспечения безопасности и удобства пользователей.
Эти карты используют стандарт ISO 14443 Type A и работают на частоте 13.56 МГц. Стандарт ISO 14443 Type A также лежит в основе протокола банковских карт EMV. К счастью, взломать его значительно сложнее, чем Mifare.
Идентификаторы Mifare (электронные карты) наиболее часто можно встретить в системах контроля доступа, системах общественного транспорта. На данный момент к семейству Mifare относятся эти идентификаторы:
В СКУД как правило используется Mifare Classic 1K, поэтому речь пойдет о нем.
СКУД — это система контроля и управления доступом. Она предназначена для ограничения доступа людей или транспортных средств к определенным объектам или территориям. СКУД использует различные технологии, такие как электронные карты, биометрия (например, отпечатки пальцев или распознавание лица) для идентификации и авторизации пользователей.
Структура данных в Mifare Classic 1K выглядит так:
Самый важный сектор — нулевой, так как в нулевом секторе, в самом первом блоке (в секторе и в целом в идентификаторе), зашита данных об UID и разработчике.
Вторая важная вещь — биты доступа (4 байта), биты определяют действия, которые можно совершить используя ключи A и B (каждый ключ по 6 байт):
- запись в блок;
- чтение блока;
- увеличение или уменьшение значения блока.
Mifare и Magic card (Chinese backdoor)
Атакуя RFID, ходить с ноутбуком и Proxmark3 на плече во время проникновения на объект — далеко не самый удобный вариант.
Для взлома Mifare нужно решение, которое было бы мобильным, но при этом не лишалось бы функциональности.
Вся информация, методы и инструменты, описанные в данной статье, предназначены для образовательных целей. Использование представленной в статье информации для атак без предварительного согласия является незаконным. Ни редакция spy-soft.net, ни автор не несут ответственности за ваши незаконные действия.
Вместо того чтобы использовать Proxmark3 для клонирования карт, мы можем использовать Magic card (волшебные карты), которые позволяют менять UID вручную. Они основаны на чипе FM08, в котором устранены ограничения на запись UID.
Эти карты отлично подходят для атак на системы контроля доступа, основанные на Mifare Classic.
Взлом Mifare
У меня для вас две новости:
- Плохая новость: некоторые виды идентификаторов Mifare практически невозможно взломать.
- Хорошая новость: взломать Mifare все‑таки можно и некоторые атаки все еще доступны!
Эмуляция и брутфорс UID
Смешно, но иногда СКУД бывает настроена так, что для идентификации используется лишь 7-байтный UID, общий для всех основанных на стандарте ISO 14443 Type A. В таком случае система функционирует почти так же, как и с EM410X, а следовательно, может сработать перебор идентификаторов, сгенерированных на основе валидного.
Достать UID довольно легко — он всегда доступен для чтения, и его легко можно вытащить, к примеру с помощью Proxmark3 командой hf search.
Брутфорс и стандартные ключи
Идентификаторы, когда они только поступают к заказчику, обычно используют стандартные ключи, чтобы их было легко интегрировать в систему. Иногда по счастливой случайности или из‑за разгильдяйства настраивавшего систему сотрудника они остаются неизменными. Именно такие ключи стоит использовать в первую очередь.
С этой целью применяется команда для Proxmark3: hf mf chk (считается Legacy) или hf mf fchk.
Если же ключи подобрать не получилось, можно использовать хорошо знакомую атаку по кастомному словарю (например, словарю дефолтных ключей) с помощью команды hf mf chk -f .
Кстати, брутфорс ключей — единственная атака, официально поддерживаемая на данный момент Flipper Zero. Именно поэтому получение полного дампа идентификатора длится так долго и не всегда оканчивается успехом.
Но что делать, если идентификация не ограничивается проверкой UID? Правильно: не стоит отчаиваться! Полное копирование Mifare 1K вполне возможно, так как шифр Crypto1 (на котором, собственно, и построена защита этого типа идентификаторов) поддается взлому.
Атака Crypto1
Если вы ничего не слышали о Crypto1, это неудивительно. Данный шифр был разработан NXP Semiconductors специально для Mifare и использовался с самого начала производства идентификаторов. Реализуется этот алгоритм аппаратно и зашит внутри каждого использующего его тега.
Crypto1 предоставляет достаточный уровень защиты, поскольку работает по принципу «security through obscurity» (безопасность через неясность). Но в 2008–2009 годах он был изучен независимыми исследователями, которые назвали его безопасность, мягко говоря, «околонулевой». Их исследования позволили разработать несколько эффективных атак, о которых я расскажу далее.
Атака Nested
Эта атака использует одну из уязвимостей PRNG (Pseudo Random Number Generator) алгоритма Crypto1.
Понять, что идентификатор уязвим к этой атаке, можно по значению поля «Prng detection» weak при проверке тега.
Огромным плюсом считается то, что эта атака может проводиться офлайн, то есть единственное, что нужно для ее выполнения, — наличие валидного идентификатора. Единственный минус: чтобы ее провернуть, нужно знать хотя бы один ключ.
Итак, а в чем же уязвимость? Если кратко, то генерация псевдослучайных чисел основана на регистре сдвига с линейной обратной связью (РСЛОС, англ. LFSR), в котором, если известен один из ключей, можно найти количество итераций для случайного значения.
Запустить атаку можно с помощью следующей команды:
1 |
hf mf nested --1k -blk <номер блока> <-a / -b> -k <ключ> |
Атака Hardnested
Если же в поле «Prng detection» значится hard, то стоит применить атаку Hardnested.
Эта команда практически аналогична атаке Nested — она также требует одного известного ключа любого сектора и валидный идентификатор.
Подробную информацию об этой атаке вы можете найти в отчете Карло Мейера.
Команда для запуска:
1 |
hf mf hardnested --blk <номер блока> <-a / -b> -k <ключ> -- <атакуемый блок> <--ta / --tb> |
Таким образом, блок за блоком, можно получить все данные идентификатора. Единственный минус — это будет довольно медленно.
Кстати, у Proxmark3 существует отличная функция autopwn, которая будет выполнять за вас почти все действия. Вы же в это время можете заняться другими важными делами.
Атака Dark side
Но что делать, если известных ключей нет, а ридер находится под пристальным взглядом сотрудников ЧОП? Правильно, использовать dark side!
Эта атака снова эксплуатирует недостатки PRNG, которые позволяют восстанавливать ключи из битов по сообщениям об ошибках.
Крайне существенный минус этого метода заключается в том, что он требует очень много времени, но использовать его для восстановления всего идентификатора и не нужно. Ведь после получения одного ключа можно применить атаки Hardnested или Nested.
Команда для запуска:
1 |
hf mf darkside |
Получение ключей из ридера
Если ни один из перечисленных вариантов не сработал, остается последний — получение ключей непосредственно из ридера.
Проще всего сделать это с помощью Flipper Zero.
Можно извлечь ключи из полученных данных с помощью mfkey32 или Flipper Lab (то же самое, но удобнее) и использовать их в описанных атаках.
Защита от взлома Mifare
Итак, мы выяснили, что Crypto1 крайне небезопасен. Конечно, можно внедрить проверку на «волшебные» карты, которая отсечет часть попыток проникновения, но единственный надежный метод на данный момент — перейти на более совершенные идентификаторы Mifare, к примеру Mifare Plus или Mifare DESFire.
К слову, Mifare DESFire EV1 уже подвергался атакам, так что при проектировании надежной СКУД следует отдавать предпочтение Mifare DESFire EV2, EV3 и им подобным.
ПОЛЕЗНЫЕ ССЫЛКИ:
- Как взломали Сбербанк
- Как защититься от банковских троянов
- Безопасность Apple Pay, Google Pay и Samsung Pay
- Как взламывают и похищают деньги с банковских карт