Використання картки «Трійка» як поліс ОМС

Коли дерева були трішки вищі, трава зеленіша, сонце яскравіше, а я навчався в інституті, у мене була соціальна карта студента. Вона мені подобалася своєю функціональністю і продуманістю, але, як і все хороше, термін її дії закінчився і довелося на невизначений час забути про це благо московської цивілізації. На зміну їй прийшла Трійка, яка частково змогла увібрати до себе плюси СКС, але далеко не всі…

Трійка + поліс ЗМС =? або як все починалося

Все почалося з того, що я захворів і виявив, що втратив картку ЗМС. Незважаючи на те, що номер я пам'ятав напам'ять, мені потрібно було щось, що можна докласти до зеленого інфомату в поліклініці, інакше записатися до лікаря і отримати законний лікарняний не вийде. Варіантів було багато: відновити поліс (щоб потім знайти старий при першому ж збиранні); згенерувати і роздрукувати штрих-код полісу (штрих-код на папірці — несолидно), або взяти із собою свою стару соціальну карту… Я зупинився на останньому варіанті. Якщо бути точнішим, то я вирішив на ньому не зупинятися, а записати на трійку свої поліс аналогічно тому, як він записаний на соціальній карті москвича.

Тюнінгуємо Трійку

Знаючи можливості Mifare Classic - сумісних карт, я вирішив об'єднати Трійку і стару студентську карту задля зручності та просто з інтересу до результату експерименту.
Як ми знаємо, карти Mifare Classic 1K та 4K вивели з обігу через вразливість на користь більш захищених, але сумісних Mifare Plus S, Plus X 2k або Plus EV1 2k. Але суть залишилася та сама: як соціальні, так і карти Трійка мають одну і ту ж начинку, з різницею лише в обсязі (кількості захищених секторів, що в нашому випадку абсолютно не відіграє значення).

Озброївшись статтями про дослідження безпеки Тройки та Android додатком «Mifare Classic Tool», я вирішив зазирнути спочатку всередину соціальної карти, щоб знайти місце, де записаний номер полісу ЗМС. Завдяки документу майже двадцятирічної давності я вже припускав, що він буде в 5-му секторі картки, зарезервованому як медичний додаток МГФОМС, що і підтвердилося на практиці.

Використання картки «Трійка» як поліс ОМС

Шуканий номер поліса опинився в 5-му секторі на другому рядку з 2-го по 9-й байт, тобто, в даному випадку «7700009016811218«. Добре, зачіпка (а, точніше, зачепище є)!

Що стосується карти Трійка, то там 5-й сектор забитий нулями, тобто поки не використовується. Ключі A і B відрізняються від тих, які на СКС, але це можна виправити, їх можна переписати такими ж, як і там.

Використання картки «Трійка» як поліс ОМС

експерименти

Крім бажаного номера полісу ЗМС, у секторі були й інші дані, призначення яких мені невідоме. Начитавшись статей про 8-й сектор (електронний гаманець) та його захищеність імітівставками, я припустив, що тут ці дані можуть відігравати таку ж роль імітівставки або контрольної суми для перевірки цілісності даних у секторі. Тому я вирішив перевірити це, переписавши на одну Трійку весь сектор точно як на СКС, а на другу — лише номер поліса. Сказано зроблено!

Зняв повний дамп із СКС і записав на першу Трійку весь 5-й сектор, а на другу — записав відредагований дамп 5-го сектору, де фігурує лише номер полісу.

Результати

Прогулявшись до поліклініки та перевіривши обидві карти, я зміг з обох увійти на інфомати та записатися до лікаря! Зрозуміло, як спосіб аутентифікації слід вибрати «Карта москвича» або «Соціальна карта москвича» (працюють обидва способи) і додати карту до зчитувача.

З цього випливає, що інфоматам достатньо лише номера поліса у відведеному для нього місці та знайомих їм ключів від п'ятого сектора.

Тепер можна чимало здивувати працівників поліклініки, продемонструвавши їм використання Трійки як поліс ОМС і проходити зручнішу і сучаснішу безконтактну автентифікацію, бо навіть сучасні поліси ОМС не підтримують безконтактний обмін інформацією — їх необхідно вставляти чіпом в інфомат. І «Трійка» воістину стає ключем до міста, зокрема до поліклінік.

Update 1: На прохання трудящих розповім «на пальцях», як це зробити. Як я вже писав вище, для цього відмінно підходить утиліта "Mifare Classic Tool" для Android.
Далі:
1. Тиснемо «Read tag»
2. Перевіряємо, щоб були обрані файли ключів std.keys та extended-std.keys
3. Притуляємо трійку до телефону і тиснемо Start mapping and read tag. Телефон на деякий час замислиться, доки підбиратиме ключі.
4. Після завершення відкриється дамп (карту можна прибрати від телефону під час редагування). У ньому нас цікавить сектор номер 5. Виглядає він таким чином:
00000000000000000000000000000000
00000000000000000000000000000000
00000000000000000000000000000000
FBC2793D540B7C378800D3A297DC2698
Внизу знаходяться ключі A та B
5. Наше завдання прямо там відредагувати цей сектор і привести його до такого вигляду:
00000000000000000000000000000000
00888888888888888800000000000000
00000000000000000000000000000000
186D8C4B93F908778F029F131D8C2057
Де 888 ... - Номер Вашого полісу ЗМС. Особливу увагу зверніть під час переписування ключів до секторів: якщо там буде друкарська помилка, то Ви ризикуєте втратити повністю або частково доступ до сектора.
6. Натискаємо на значок меню в правому верхньому кутку і тиснемо Write Dump -> WRITE DUMP, вибираємо тільки сектор 5 (інші галки знімаємо); прикладаємо картку до телефону -> дивимося, щоб стояли обидві галки поруч із ключовими файлами і тиснемо START MAPPING AND WRITE DUMP. Після чого на тлі дампа ми маємо побачити повідомлення «Data successfully written»
Карта готова до походу до поліклініки!

Джерело: habr.com

Додати коментар або відгук