Как декодировать данные магнитной полосы

Carding 4 Carders

Professional
Messages
2,729
Reaction score
1,533
Points
113
До недавнего времени считывание данных кредитной карты было таким же простым, как считывание карты через считыватель (например, один из многих считывающих устройств, созданных ID TECH), и наличие приложения виртуального терминала (или других приложений), поглощающего данные трека по мере их поступления прямо из читателя. Данные, о которых идет речь, будут просто отображаться как нажатия клавиш на экране в незашифрованном виде.

То были времена!

Достаточно сказать, что все изменилось. Сегодня считыватели с магнитной полосой обычно выводят зашифрованные данные через USB (часто в режиме HID, а не в режиме клавиатуры), и большинство считывателей карт сегодня должны работать с чип-картами в дополнение к картам с магнитной полосой. Данные чип-карты имеют форму TLV (теги, длина, значения) и могут выглядеть несколько иначе, чем «обычные старые данные магнитной полосы» прошлых лет. Кроме того, он неизменно зашифрован.

Мы показали как расшифровать данные кредитной карты, используя стандартные алгоритмы расшифровки TDES и AES в сочетании со стандартными (ANSI X9.24) методами получения ключей DUKPT, но мы не говорили о том, как получить декодированную магнитную полосу. данные в первую очередь. Как теперь выглядят «данные магнитной полосы кредитной карты»? Как его получить и расшифровать? Как узнать, какие части зашифрованы?

Сегодня кард-ридеры обычно выводят зашифрованные данные через USB (часто в режиме HID, а не в режиме клавиатуры), и большинство современных карт-ридеров должны работать с чип-картами в дополнение к картам с магнитной полосой.

Ответ на первый вопрос (как выглядят данные магнитной полосы?) Сильно различается в зависимости не только от марки и модели используемого вами устройства для считывания карт, но и от того, была ли сделана транзакция, о которой идет речь, с помощью магнитного смахивания, провал (контактный EMV) или бесконтактное / NFC взаимодействие. В общем, вы делаете гораздо больше, чем просто читаете необработанные данные трека. Вы также получаете KSN (серийный номер ключа), который необходим для расшифровки и сбора различных видов метаданных, относящихся к транзакции. Это правда, вы можете быть заинтересованы только в получении (скажем) необработанных данных дорожки 2, но в процессе их получения вам также придется иметь дело с множеством других данных.

Давайте быстро рассмотрим реальный пример использования подарочной карты Starbucks, которую мне передал испытывающий чувство вины бариста в качестве подделки после того, как неожиданно закончился месопотамский кумкват-абсент латте. Если мы проведем карту Starbucks через устройство чтения карт ID TECH Augusta, работающее в режиме клавиатуры, с открытым окном Блокнота (и курсором в текстовом окне), мы получим следующие данные в Блокноте:

Code:
02ED01801F4C2800839B%*6010********8765^0254/SERVICERECOVERYUSD^*******************************?*;6010********8765=********************?*95025C86987E4F7DD07D58730EB79FDFB90AB7F23E6ECA6F4F04A67BF511EE13F950903BDE77624680C460E9C36C4F9136256BB93A38CB98F95626DCFAF9335CE0A213074CC1CD84CC911398E06756C464AB036B694228ADA7EC018F495A013AF8A04C976288FE2F80271E6E53D987DE19ACA2707BFF2C78000000000000000000000000000000000000000000000000000000000000000000000000000000003631335435333536313862994900750002A00308108E03

Это намного больше, чем «сырые данные трека». Вы можете распознать замаскированные данные трека (которые начинаются с B% и содержат много звездочек, наконец, заканчивая? *), Но это скрывает основной номер счета (PAN), который на самом деле зашифрован. Большая часть того, что вы здесь видите, - это шестнадцатеричное представление двоичных данных, исходящих от устройства чтения.

Разобрать этот большой блок информации легко, если вы знаете, как это сделать. Самый быстрый способ его декодирования - запустить данные с помощью бесплатного инструмента Parsomatic ID TECH, который представляет собой HTML-форму, которая может отображать все фрагменты данных в понятной форме.

Каждый картридер имеет собственный запатентованный способ представления данных карты. ID TECH представляет данные магнитной полосы в формате, известном как формат MSR с улучшенным шифрованием. Формат включает 26 полей данных; все 26 полей подробно описаны в документе P / N 80000502-001, ID TECH Encrypted Data Output.

Чтобы дать вам представление о том, что находится на карте, давайте рассмотрим первые 5 байтов данных (02 ED 01 80 1F). Согласно Parsomatic, эти 5 байтов содержат следующую информацию:

STX02
ДЛИНАED 01
Тип кодирования карты80
Статус трека (1F)0 ------- 0 Зарезервировано для использования в будущем
-0 ------ 1: существует необязательная длина поля 10 в байтах (0: нет поля 10)
--0 ----- 1: Данные выборки трека 3 существуют (0: данные выборки трека 3 не существуют)
--- 1 ---- 1: Данные выборки дорожки 2 существуют (0: данные выборки дорожки 2 не существуют)
---- 1 --- 1: Данные выборки дорожки 1 существуют (0: данные выборки дорожки 1 не существуют)
----- 1-- 1: Успешное декодирование дорожки 3 (0: сбой декодирования дорожки 3)
------ 1- 1: успешное декодирование дорожки 2 (0: сбой декодирования дорожки 2)
------- 1 1: успешное декодирование дорожки 1 (0: сбой декодирования дорожки 1)

Первый байт (02) - это просто STX, «начальный» байт. Следующие два байта (ED 01) представляют длину в шестнадцатеричном формате всей полезной нагрузки данных (с прямым порядком байтов: ED 01 фактически означает 0x01ED или 493 байта данных). Тип Card Encode - 0x80, что (на английском языке) означает, что наш читатель считает, что это финансовая карта. Состояние дорожки (значение: 0x1F) - это байт состояния, содержащий восьмибитные флаги, чтобы вы знали, какие дорожки присутствовали на магнитной полосе (их может быть до 3) и какие из них были успешно прочитаны. В этом случае все 3 физических трека были прочитаны успешно, но данные существуют только на треках 1 и 2.

Давайте быстро посмотрим на следующие 5 байтов. Согласно Parsomatic, эти байты и их значения следующие:

Длина дорожки 14C
Длина дорожки 228 год
Длина дорожки 300
Очистить / замаскировать состояние отправленных данных (83)1 ------- Бит 7: 1 серийный номер присутствует; 0 нет
-0 ------ Бит 6: 1 ключ шифрования PIN-кода; 0 ключ шифрования данных
--0 ----- Бит 5: 1 Чип присутствует на карте. (Первый байт служебного кода был «2» или «6».) Если возможно, используйте транзакцию EMV.
--- 0 ---- Бит 4: 0 TDES; 1 AES
---- 0 --- Бит 3: 1 для фиксированного ключа; 0 Управление ключами DUKPT
----- 0 - Бит 2: 1, если присутствуют данные очистки / маскирования Track3
------ 1- Бит 1: 1, если имеются данные очистки / маскирования дорожки 2
------- 1 Бит 0: 1, если присутствуют данные очистки / маскирования дорожки 1
Статус отправленных зашифрованных / хешированных данных (9B)1 ------- Бит 7: если 1, KSN присутствует
-0 ------ Бит 6: если 1, присутствует идентификатор сеанса
--0 ----- Бит 5: если 1, присутствуют хэш-данные трека 3 (дайджест SHA)
--- 1 ---- Бит 4: если 1, присутствуют хэш-данные дорожки 2 (дайджест SHA)
---- 1 --- Бит 3: если 1, присутствуют хэш-данные дорожки 1 (дайджест SHA)
----- 0 - Бит 2: если 1, присутствуют зашифрованные данные дорожки 3
------ 1- Бит 1: если 1, присутствуют зашифрованные данные дорожки 2
------- 1 Бит 0: если 1, присутствуют зашифрованные данные дорожки 1
На финансовой карте длина дорожки 1 может составлять до 79 байт; Дорожка 2 может иметь длину до 40 байт; Дорожка 3 может быть до 107 байт. В этом случае у нас есть 76 байтов (шестнадцатеричный 0x4C) данных для дорожки 1 и 40 байтов (0x28) данных для дорожки 2. (дорожка 3 имела нулевые байты). Эти длины важно знать не только для синтаксического анализа. из замаскированных данных дорожки, но для определения длин зашифрованных версий дорожек. Зашифрованная длина отличается от фактической длины собственной дорожки, потому что данные дорожки должны быть дополнены до конечной длины, кратной 8 для шифрования TDES или кратной 16 для AES.

Как узнать, зашифрованы ли данные TDES или AES? Эта информация находится в бите 4 байта состояния отправленных данных очистки / маскирования (как показано выше). Также имеется байт состояния отправленных зашифрованных / хешированных данных (показанный выше), чтобы вы знали, присутствуют ли зашифрованные данные трека (и хэши проверки) и существует ли KSN.

Теперь мы переходим к замаскированным данным Track 1 и Track 2, за которыми следуют их зашифрованные версии, за которыми следуют некоторые хеш-данные (в данном случае все нули) и некоторые другие данные (описанные ниже). Обратите внимание, что Parsomatic преобразовал данные дорожки ASCII в шестнадцатеричное представление ниже:

Данные Track125 2A 36 30 31 30 2A 2A 2A 2A 2A 2A 2A 2A 38 37 36 35 5E 30 32 35 34 2F 53 45 52 56 49 43 45 52 45 43 4F 56 45 52 59 55 53 44 5E 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 3F 2A
Данные Track23B 36 30 31 30 2A 2A 2A 2A 2A 2A 2A 2A 38 37 36 35 3D 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 2A 3F 2A
Зашифрованные данные Track195 02 5C 86 98 7E 4F 7D D0 7D 58 73 0E B7 9F DF B9 0A B7 F2 3E 6E CA 6F 4F 04 A6 7B F5 11 EE 13 F9 50 90 3B DE 77 62 46 80 C4 60 E9 C3 6C 4F 91 36 25 6B B9 3A 38 CB 98 F9 56 26 DC FA F9 33 5C E0 A2 13 07 4C C1 CD 84 CC 91 13 98 E0 67 56 C4 Расшифровать эти данные
Зашифрованные данные Track264 AB 03 6B 69 42 28 AD A7 EC 01 8F 49 5A 01 3A F8 A0 4C 97 62 88 FE 2F 80 27 1E 6E 53 D9 87 DE 19 AC A2 70 7B FF 2C 78 Расшифровать эти данные
Хеширование трека 100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Хеширование трека 200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
Серийный номер считывателя36 31 33 54 35 33 35 36 31 38
KSN62 99 49 00 75 00 02 A0 03 08
LRC10
Контрольная сумма8E
ETX03

Обратите внимание, что Parsomatic вставляет ссылку «Расшифровать эти данные» рядом с зашифрованными данными (см. выше). Если вы нажмете на ссылку, вы попадете в инструмент шифрования / дешифрования ID TECH , где данные, о которых идет речь, можно просмотреть в расшифрованном виде.

Последние поля данных включают серийный номер считывателя, серийный номер ключа (KSN), LRC, контрольную сумму и ETX (конец передачи). LRC - это просто байтовое значение, представляющее XOR (исключающее ИЛИ) всех байтов данных полезной нагрузки, в то время как контрольная сумма представляет собой однобайтовую арифметическую сумму (очевидно, без учета переполнения) всех байтов в полезной нагрузке. LRC и контрольная сумма могут использоваться для проверки целостности полезных данных. (Их несколько проще и быстрее вычислить, чем правильную CRC.)

Вывод
Как видите, данные магнитной полосы - это гораздо больше, чем просто «данные трека». Мы даже не коснулись значения некоторых полей данных (возможно, мы сможем вернуться к ним в будущем посте). Мы также ничего не сказали о данных EMV (которые определенно будут размещены в другом посте). Но это должно помочь вам начать работу, если вы пытаетесь расшифровать данные, поступающие из устройства чтения кредитных карт ID TECH.

Для получения дополнительной информации (как я уже говорил ранее) обязательно ознакомьтесь с нашей технической документацией по формату данных Enhanced Encrypted MSR: ID TECH Encrypted Data Output.

Подробнее https://idtechproducts.com/technical-post/how-to-decode-magstripe-data/
 
Top