Способы защиты и взлома Mifare

Взлом Mifare

Когда базовые идентификаторы для управления доступом больше не справляются, многие задумываются о переходе на более совершенное решение — Mifare. Но насколько безопасны эти устройства, как обещает изготовитель? Давайте попробуем разобраться!

Еще по теме: Лучшие устройства хакера

Что такое Mifare

Mifare — это технология бесконтактных смарт-карт, которая используется для различных приложений, таких как системы контроля доступа, общественный транспорт, идентификация и многое другое. Она была разработана компанией NXP Semiconductors и стала популярной благодаря своей надежности и удобству использования.

Смарт-карты Mifare обычно работают на частоте RFID (радиочастотной идентификации) и могут без контакта передавать данные между картой и считывателем. Они используются для хранения информации, такой как идентификационные данные, билеты на общественный транспорт, ключи для доступа в здания и многое другое. Множество систем в разных отраслях используют технологию Mifare для обеспечения безопасности и удобства пользователей.

Эти карты используют стандарт ISO 14443 Type A и работают на частоте 13.56 МГц. Стандарт ISO 14443 Type A также лежит в основе протокола банковских карт EMV. К счастью, взломать его значительно сложнее, чем Mifare.

Идентификаторы Mifare (электронные карты) наиболее часто можно встретить в системах контроля доступа, системах общественного транспорта. На данный момент к семей­ству Mifare отно­сят­ся эти иден­тифика­торы:

Взломать mifare

В СКУД как правило используется Mifare Classic 1K, поэто­му речь пойдет о нем.

СКУД — это система контроля и управления доступом. Она предназначена для ограничения доступа людей или транспортных средств к определенным объектам или территориям. СКУД использует различные технологии, такие как электронные карты, биометрия (например, отпечатки пальцев или распознавание лица) для идентификации и авторизации пользователей.

Струк­тура дан­ных в 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.

Взлом Mifare. Эмуляция и брутфорс UID

Брутфорс и стандартные ключи

Иден­тифика­торы, ког­да они толь­ко пос­тупа­ют к заказ­чику, обыч­но исполь­зуют стан­дар­тные клю­чи, что­бы их было лег­ко интегри­ровать в сис­тему. Иног­да по счас­тли­вой слу­чай­нос­ти или из‑за раз­гиль­дяйства нас­тра­ивав­шего сис­тему сот­рудни­ка они оста­ются неиз­менны­ми. Имен­но такие клю­чи сто­ит исполь­зовать в пер­вую оче­редь.

С этой целью при­меня­ется коман­да для Proxmark3: hf mf chk (счи­тает­ся Legacy) или hf mf fchk.

Взлом Mifare. Брутфорс и стандартные ключи

Ес­ли же клю­чи подоб­рать не получилось, мож­но исполь­зовать хорошо зна­комую ата­ку по кас­томно­му сло­варю (нап­ример, сло­варю дефол­тных клю­чей) с помощью коман­ды 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 при про­вер­ке тега.

Взлом Mifare. Nested

Ог­ромным плю­сом счи­тает­ся то, что эта ата­ка может про­водить­ся офлайн, то есть единс­твен­ное, что нуж­но для ее выпол­нения, — наличие валид­ного иден­тифика­тора. Единс­твен­ный минус: что­бы ее про­вер­нуть, нуж­но знать хотя бы один ключ.

Итак, а в чем же уяз­вимость? Если крат­ко, то генера­ция псев­дослу­чай­ных чисел осно­вана на регис­тре сдви­га с линей­ной обратной связью (РСЛОС, англ. LFSR), в котором, если известен один из клю­чей, мож­но най­ти количес­тво ите­раций для слу­чай­ного зна­чения.

За­пус­тить ата­ку мож­но с помощью следующей коман­ды:

Взлом Mifare. Nested

Атака Hardnested

Ес­ли же в поле «Prng detection» зна­чит­ся hard, то сто­ит при­менить ата­ку Hardnested.

Эта коман­да прак­тичес­ки ана­логич­на ата­ке Nested — она так­же тре­бует одно­го извес­тно­го клю­ча любого сек­тора и валид­ный иден­тифика­тор.

Под­робную информа­цию об этой ата­ке вы можете най­ти в от­чете Кар­ло Мей­ера.

Ко­ман­да для запус­ка:

Взлом Mifare. Hardnested

Та­ким обра­зом, блок за бло­ком, мож­но получить все дан­ные иден­тифика­тора. Единс­твен­ный минус — это будет доволь­но мед­ленно.

Кста­ти, у Proxmark3 сущес­тву­ет отличная фун­кция autopwn, которая будет выпол­нять за вас поч­ти все дей­ствия. Вы же в это вре­мя можете занять­ся другими важ­ными делами.

Атака Dark side

Но что делать, если извес­тных клю­чей нет, а ридер находит­ся под прис­таль­ным взгля­дом сот­рудни­ков ЧОП? Пра­виль­но, исполь­зовать dark side!

Эта ата­ка сно­ва экс­плу­ати­рует недос­татки PRNG, которые поз­воля­ют вос­ста­нав­ливать клю­чи из битов по сооб­щени­ям об ошиб­ках.

Край­не сущес­твен­ный минус это­го метода зак­люча­ется в том, что он тре­бует очень мно­го вре­мени, но исполь­зовать его для вос­ста­нов­ления все­го иден­тифика­тора и не нуж­но. Ведь пос­ле получе­ния одно­го клю­ча мож­но при­менить ата­ки Hardnested или Nested.

Ко­ман­да для запус­ка:

Получение ключей из ридера

Ес­ли ни один из перечис­ленных вари­антов не сра­ботал, оста­ется пос­ледний — получе­ние клю­чей непос­редс­твен­но из ридера.

Про­ще все­го сде­лать это с помощью Flipper Zero.

Взлом Mifare. Получение ключей из ридера

Мож­но извлечь клю­чи из получен­ных дан­ных с помощью mfkey32 или Flipper Lab (то же самое, но удоб­нее) и исполь­зовать их в опи­сан­ных ата­ках.

Взлом Mifare Flipper Zero

Защита от взлома Mifare

Итак, мы выяс­нили, что Crypto1 край­не небезо­пасен. Конеч­но, мож­но внед­рить про­вер­ку на «волшебные» кар­ты, которая отсе­чет часть попыток про­ник­новения, но единс­твен­ный надеж­ный метод на дан­ный момент — перей­ти на более совер­шенные иден­тифика­торы Mifare, к при­меру Mifare Plus или Mifare DESFire.

К сло­ву, Mifare DESFire EV1 уже под­вергал­ся ата­кам, так что при про­екти­рова­нии надеж­ной СКУД сле­дует отда­вать пред­почте­ние Mifare DESFire EV2, EV3 и им подоб­ным.

ПОЛЕЗНЫЕ ССЫЛКИ:

Дима (Kozhuh)

Эксперт в кибербезопасности. Работал в ведущих компаниях занимающихся защитой и аналитикой компьютерных угроз.

Добавить комментарий