Сегодня будет глубокий технический рассказ про то, как устроена сама пластиковая карта. Понятное дело, что карта — это кусок пластика, с магнитной полосой, впаянной фабричным способом. Речь пойдет о том, что за информация содержится на самой карте, а особенно на ее магнитной полосе. Надеюсь, это также прояснит, какие реквизиты карты нужно хранить втайне и почему.

Если говорить грубо, то магнитная полоса карты дублирует информацию, содержащуюся на поверхности карты и изначально предназначена для автоматизированной обработки карт в точках продаж, банкоматах и прочих электронных устройствах. Вообще, все что касается карт, зарегламентировано серией стандартов ISO 7810, 7811, 7812, 7813, 8583. Со временем стандарты развивались в ответ на все новые и новые способы мошенничества с использованием карт. Как я уже писал, сейчас возможности карт только с магнитной полосой считаются исчерпанными, все ставки в карточной индустрии делаются на EMV-карты, т.е. карты с чипом.

Итак, на лицевой стороне карты имеются: логотип платежной системы, логотип банка-эмитента, номер карты (полный или урезанный), фамилия и имя владельца и срок действия в формате MM/YY. На оборотной стороне карты живут: магнитная полоса, белая полоса с подписью, полным или частичным номером карты и кодом CVC2, а также всякая разная информация от банка-эмитента. Думаю, что с визуальной идентификацией всех этих элементов ни у кого проблем не возникнет.

Теперь про магнитную полосу. На ней содержится от 1 до 3 дорожек (те, кто застал такие вещи как кассеты и магнитные ленты, поймут о чем идет речь). Исторически дорожка №1 была предназначена как раз для банковских карт и до конца прошлого века большинство карт имело только одну эту дорожку. Дорожка №2 задействована для хранения исключительно цифровых данных, за счет чего она имеет меньшую длину и меньше шансов повреждения данных. Дорожка №3 в банковской сфере не используется и предназначения всяких дисконтных карт и прочих систем. На банковских картах может встречаться в случае ко-брендинга, например Visa Aeroflot.

Рассмотрим содержимое дорожек карты на реальном примере (номер карты и прочие данные, конечно же, не настоящие).

Символы, используемые в качестве разделителей, индикаторов начала и окончания последовательности приведены в соответствии со стандартом ISO 7813. Лично я встречал случаи, когда у отдельно взятых банков использовались нестандартные служебные символы.

Итак, из примера выше прекрасно видно, что обе дорожки содержат номер карты и срок ее действия, а первая дорожка еще и имя владельца. Здесь все очевидно, а вот дальше начинается темный лес, точнее данные, которые нельзя увидеть невооруженным глазом. Разберем все эти группы цифр по порядку.

Публичные данные

Сначала поговорим про те цифры, которые видны простому пользователю карты.

Primary Account Number (PAN)

PAN, он же номер карты, представляет собой последовательность из 12-19 символов (мы как-то привыкли к 16 символам), в которых спрятаны платежная система, банк-эмитент и контрольная цифра.

Major Industry Indentifier (MII)

Цифра MII определяет область использования пластиковой карты. Все они описаны в ISO 7812, нас интересуют только те, которые относятся к банковской сфере:

  1. Карты для путешествий и развлечений (American Express, Diner’s Club, JCB);
  2. Банковские карты (Visa);
  3. Банковский карты (Mastercard и Bankcard);
  4. Розничные карты (Discover Card и UnionPay).

Раньше по первой цифре можно было определить тип карты. Теперь, когда карты выпущены миллиарды, а количество их разновидностей явно не закодировать одной цифрой, достоверно определить тип карты можно только по BINу (ну и на 4 по-прежнему начинаются только карты Visa).

Bank Identification Number (BIN)

Эти 6 цифр (включая MII), определяют партию карт, выпускаемую одним банком-эмитентом. По идее, банку выделяется отдельный BIN под каждую категорию выпускаемых карт (а то и не один). Например, BINы под Visa Classic и Visa Gold одного и того же банка будут различаться. База BINов обновляется ежедневно и не доступна для скачивания простыми гражданами, однако есть интересный сервис, который позволяет пробить BIN и получить информацию по конкретной карте.

Вот какую информацию можно получить по карте Василия Пупкина, использованной в нашем примере:

Bin:                448343 
Card Brand:         VISA 
Issuing Bank:       BANK VTB24 (CJSC) 
Card Type:          DEBIT 
Card Level:         CLASSIC 
Iso Country Name:   RUSSIAN FEDERATION 
Iso Country A2:     RU 
Iso Country A3:     RUS 
Iso Country Number: 643 
Bank's website:     www.vtb24.ru 
Customer Care Line: 7 (495) 739-77-99 or 8 (800) 100

Таким образом, мы знаем, что карта Василия выпущена банком ВТБ-24 и это дебетовая Visa Classic. Кстати, обладатели «кредитных» карт могут провести эксперимент и пробить BIN по базе. Что они там занятного увидят? То, что у них дебетовая карта ;) Это как раз доказательство того, что не делают у нас кредитных карт, делают только обычные дебетовые с разрешенным овердрафтом.

Check digit

Алгоритм вычисления контрольной цифры переписывать не буду — он достаточно подробно расписан в Педивикии.

Expiration date

Со сроком действия карты все просто. Он всегда имеет формат MM/YY (независимо от страны-эмитента). На всякий случай напоминаю, что карта действует до 23:59 последнего дня указанного месяца.

Скрытые данные

Теперь поговорим про те данные, которые не видны невооруженным глазом, но могут быть прочитаны с магнитной полосы (как правило, они представлены как на первой, так и на второй дорожке).

Service code

Код из 3-х цифр, определяющий возможности или дополнительные требования к карте.

  • Первая цифра:
    1. Разрешены международные транзакции
    2. Разрешены международные транзакции с использованием чипа (если возможно)
    3. Разрешены только внутренние транзакции
    4. Разрешены только внутренние транзакции с использованием чипа (если возможно)
    5. Запрещены все транзакции кроме банков, с которыми есть 2-х сторонние соглашения
    6. Тестовая карта
  • Вторая цифра:
    1. Обычная обработка транзакций
    2. Требуется on-line связь с банком-эмитентом
    3. Требуется on-line связь с банком-эмитентом кроме случаев 2-х сторонних соглашений
  • Третья цифра:
    1. Без ограничений, для проведения транзакций требуется PIN
    2. Без ограничений
    3. Только покупка товаров и услуг, нет возможности получения наличных
    4. Использовать только в банкоматах, требуется ввод PIN
    5. Только для получения наличных
    6. Только покупка товаров и услуг (безнал), требуется PIN
    7. Без ограничений, требовать PIN при возможности
    8. Только покупка товаров и услуг (безнал), требовать PIN при возможности

Первая цифра Service code очень важна, т.к. она определяет 2 вещи: сможете ли вы использовать карту за пределами нашей Родины и поддерживает ли карта EMV, т.е. имеет ли она чип. Во втором случае POS-терминалы как раз и выдают кассиру указание вставить карту чипом. Что касается ограничений по зоне использования, я таких карт не встречал, хотя по идее, 19-ти значные Маэстро от Сбербанка как раз должны быть ограничены в плане международных транзакций. Вторая цифра отвечает за 3D-Secure. Если она не равна 0, то при проведении обезличенных транзакций (через Интернет, например) потребуется дополнительная on-line верификация, зависящая от реализации 3D-Secure банком-эмитентом. Третья цифра определяет необходимость подтверждения всех транзакций PIN-ом (даже если карта не имеет чипа), а также ограничения в плане получения наличных с карты. Например, на virtual-картах 3-я цифра обычно равна 2.

В нашем примере видно, что Василий обладает картой с чипом, которая не имеет ограничений по использованию (типичный вариант для Classic и более крутых карт).

PIN Verification Value (PVV)

PVV используется при любых PIN-овых транзакциях следующим образом: банкомат или POS-терминал шифрует введенный PIN и вместе с прочими данными карты (в том числе и PVV) отправляет его в банк, который вычисляет PVV и сравнивает его с переданным. Таким образом гарантируется корректность считывания данных с магнитной полосы, а также обеспечивается некая защита от сгенерированных карт. Понятное дело, что от клонированных карт PVV не защищает, т.к. полностью копируется с карты-оригинала. Если PIN вводится по запросу чипа карты, то PVV в транзакции не участвует, т.к. EMV-карты могут иметь чипы с плавающими (одноразовыми) PIN-кодами.

PVV вычисляется на основе 64-битной строки (16 шестнадцатеричных символов), которая называется Transformed Security Parameter (TSP). Она состоит из 11 последних цифр PAN (не считая контрольной цифры), цифры от 1 до 6, хранящаяся в поле PVKI (индикатор наличия PVV на схеме выше, если в этом поле стоит цифра 0, значит на дорожке нет PVV или PVV равен 0), и 4-х цифр PIN-а. Полученное значение TSP шифруется по алгоритму 3DES ключом в 128 бит. После шифрования мы получаем строку из 16 шестнадцатеричных символов, из которых формируется 4 цифры PVV. Сначала из полученных символов выбираются все цифры, если цифр не хватило, то берутся символы A-F, которые также превращаются в цифры по принципу A=0, B=1,…,F=5.

Хотя алгоритм кажется достаточно простым, взломать его методом reverse engineering невозможно, а подбор PIN-а перебором дает слишком много ложных PVV.

Для нашего примера с картой Василия TSP будет 4301234567819090 (я предположил, что PIN карты 9090). Ключ шифрования, понятное дело, хранится в банке в надежном месте.

Card Verification Value/Code (CVV/CVC)

Первоначально код CVV/CVC хранился исключительно на магнитной полосе и служил для выявления ситуаций повреждения магнитной полосы или грубой подделки карты. Использовался код, понятное дело, при проведении транзакций с предъявлением карты (in person по терминологии платежных систем) и по аналогии с PVV позволял банку подтвердить подлинность карты. Как и PVV, этот код генерируется банком при выпуске карты. В процессе участвуют PAN (9 символов), срок действия карты (в формате MMYY) и 3-х символьный Service code. Шифрование традиционно осуществляется 3DES, в целом алгоритм аналогичен PVV. Если PVV задействуется при проведении транзакций на основе PIN-а, то CVV/CVC используется при безпиновых транзакциях, например, в POS-терминалах.

Из-за того, что CVV/CVC слабо защищен от клонирования, в настоящее время он практически не используется. Например, на карте Василия соответствующее поле равно 0, что как раз и говорит о том, что кода нет.

CVV2/CVC2

В отличие от CVV/CVC, код CVV2/CVC2 используется при дистанционных транзакциях (card not present по терминологии платежных систем), например через Интернет. Именно этот код нанесен на белой полосе на обратной стороне карты. Также в отличие от CVV/CVC, этот код не хранится на магнитной полосе карты, а значит его нельзя скопировать (по крайней мере при помощи скиммера). Код CVV2/CVC2 передается on-line вместе с другими реквизитами пластиковой карты в процессинговый центр, который уже передает его в банк-эмитент для проверки. Проверка осуществляется также, как и для PVV и CVV — банк заново вычисляет значение CVV2 и сравнивает его с полученным.

Генерация кода CVV2/CVC2 осуществляется по тому же алгоритму и с использованием тех же ключей, что и обычного CVV/CVC. При этом есть следующие особенности: срок действия карты берется в формате YYMM, а вместо Service code указываются нули.

Discretionary data

Вообще, все символы, начиная с PVKI, считаются полем Discretionary data, формат которого определяется банком, выпустившим карту. Тем не менее, первые 8 символов этого поля стандартизованы, а остальные могут быть добавлены банком по своему усмотрению и могут содержать ту информацию, которая нужна банку. По всем стандартам безопасности, в частности PCI DSS, любому устройству или информационной системе запрещено хранить где бы то ни было данные поля Discretionary data, т.к. компрометация этих данных черевата большими проблемами для владельца карточки.

 

Приведенная выше информация в целом является общедоступной, при желании в Интернете можно нарыть необходимые технические подробности и даже описания методики подбора PINа на основе PVV. Я собрал все эти данные в кучу в первую очередь для того, чтобы было понятнее, почему что-то происходит так, как происходит, а не иначе. Буду признателен, если вы поделитесь своими изысканиями на тему содержимого дорожек карты, в частности соответствия цифр Security code реальным возможностям карты.

One Response to “Как устроена пластиковая карта”

Вставить свои пять копеек

Чтобы оставить комментарий, Вам нужно идентифицировать себя.