Незвичайний аналіз карт Mifare
Відомо, що картки Mifare випускають різні виробники. І начебто ці карти працюють однаково, незважаючи на те, що різні виробники по-різному йшли до своєї мети. Невже карти не мають жодних відмінностей?

Для початку було взято найпоширеніший клас картMifare Classic. Пара карт була подарована на семінарі NXP, частина карт була потрапила через ebay з Китаю, частина наскреблася просто так, але про все по-порядку.


Аналогічно поводиться карта MF1S70: типовий Classic з максимально можливим обсягом CL4K (Classic 4Kb). Все те ж саме, що і в CL1K, тільки ATQA і SAK відрізняються. Ну, що ж, видно, що NXP добре попрацював над картами Mifare Classic, і "несподіванок" чекати не доводиться: свого часу громадськість непогано потріпала нерви гіганту напівпровідникової індустрії, коли знайшли вразливості в картах Mifare, і NXP врахував помилки минулих років.
Далі перевіряємо китайські карти CL1K: Fudan, FangTong та ін безіменних виробників - їх сотні. Виробники заявляють, що продають карти MF1S50, але після аналізу видно, що це зовсім так. Щоб не захаращувати текст однаковими скріншотами, наведу приклад лише одного з них: скріншоти китайських карт — близнюки, які відрізняються лише UID-ами.


Однак і це ще не все. Свого часу ф.Infineon випускала за ліцензією NXP карти Mifare Classic: у них SAK = 0x88, що було відмінністю цих карт.

Чіпи для карт Infineon випускалися за шаблоном NXP, Infineon не треба було винаходити велосипед для того, щоб робити свої вироби. Однак, карта Infineon веде себе так само, як стара соціалка на NXP, і також, як сучасні китайські Mifare Classic. Думка про продаж шаблону друзям-китайцям післяскандалів з уразливістю напрошується сама собою: головне ні копієчки не втратити 🙂
Аналіз карт московського метроMifare Ultralight не виявив нічого цікавого: "відгукнулася" тільки команда PICC_READ16 = 0x30.

Причому однаково поводилися як нові карти, в яких на просвіт видно напис «Micron», так і випущені років п'ять тому карти, в яких на просвіт видно напис «Sitronics». Аналіз китайської карти Ultralight виявив її суттєву відмінність від ультралайту московського метро.


Знайти "зайву" стартову команду, властиву RW-карті, можна за допомогою scprobe, набравши в командному рядкуscprobe -WUPA. Пошук дасть три команди: PICC_REQIDL = 0x26, PICC_REQRW = 0x40, PICC_REQALL = 0x52. Команди PICC_REQIDL і PICC_REQALL - стандартні, а ось команда PICC_REQRW є тільки у карток, що перезаписуються, які ще називаютьMifare Zero. Однак, наводить на роздуми не зайва команда старту, а подібність команд рівня SL0: команди китайського нормального ультралайту, що перезаписується, в точності збігаються. Чи не пов'язаний цей факт з виробничими особливостями, коли всі китайські ультралайти народжуються такими, що перезаписуються, а потім на заводі перезаписуваність якось прибирають?
Нещодавно з'явилися карти «Трійка», це універсальні транспортні карти, якими можна користуватися як у метро, так і в наземному транспорті. Як виявилось, вони бувають двох видів.

Ось перший варіант "трійки". Це типовийMifare Plus S, PL2S1 (Mifare Plus, 2Kb, Security Level 1), має семизначний UID і доступний рівень шифрування не вище SL1, тобто. це сучасний замінник карт Mifare Classic 1K - MF1SPLUS60.

А ось другий варіант трійки цікавий тим, щовін «прикидається» картою CL4K (Mifare Classic, 4Kb): UID довжиною 4 байти, ATQA і SAK, як і карти CL4K. Але це насправді PL4S1 (Mifare Plus, 4Kb, Security Level 1). Карту "видає" поле ATS, яке вказує, що насправді тип картки MF1SPLUS80 - це сучасний замінник карток Mifare Classic 4K.

Реальна карта PL2S3 (Mifare Plus, 2Kb, Security Level 3) «відмовляється» відповідати на прості команди: видно, що карта PL2S3 відповідає тільки на команду PICC_RATS = 0xE0.
Карта 'Стрілка' - це не карта в прямому розумінні. Це сертифікований криптографічний модуль з великими можливостями на базі мікроконтролера, що підключається за інтерфейсом ISO-7816, правильна назва SAM AV2 . Однак, якщо треба, то модуль може бути і безконтактною картою: SAM AV2 чудово емулює PL2S1 🙂
