Какая информация содержится в чипе банковской карты
На самом деле чип на карте — это полноценный микрокомпьютер, и порй весьма сложный.
Я как-то уже писал об этом кратенько, когда говорил, что на карте даже установлена своя собственная операционная система. А сегодня поговорим о том, какие устройства и возможности есть на чипе банковской (и не только) карты.
Ну, без центрального процессора никакой компьютер работать не сможет. Поэтому это устройство идет первым пунктом. Кстати, на всякий случай объясню, что эта многоножка делает вообще. Самое сердце микропроцессора — его Арифметико-Логическое Устройство (АЛУ). Точнее, не сердце, а его «думалка». Другой орган, может и поважнее сердца. Именно этим местом процессор выполняет конкретную операцию над числами (операндами). А какую именно операцию — определяется по текущей команде программы. Процессор этим своим АЛУ умеет выполнять строго ограниченный набор операций. «Строго ограниченный» — не значит «маленький», а значит «ничего другого сверх того, что есть в этом наборе». И именно этим разнообразием (в некоторых случаях весьма большим) команд и обеспечивается универсальность микропроцессорного устройства. До изобретения процессора устройства могли выполнять только строго заданную операцию (пусть даже и весьма сложную). А с появлением процессора возникла возможность на одном и том же устройстве выполнять разные операции, да еще и определяемые без изменения структуры устройства, одним написанием программы.
Так, прошу прощения за графоманские спазмы, дальше постараюсь их избегать.
Микрочип пластиковой карты содержит микропроцессор разрядностью 8, 16, или уже даже 32 разряда. Т.е., как мы видим, вполне серьезная такая штука. Обычно это RISC-процессоры, которые зарекомендовали себя как устройства с более прогнозируемым временем выполнения разных команд (тот самый «строго ограниченный набор операций»). Все потому, что каждая команда выполняется за один такт процессора. Противоположный подход, с большим набором команд, выполняющихся за разное количество тактов — в архитекутре CISC.
Частоты, на которых работают микропроцессоры карт, лежат в диапазоне 1-33 МГц, но у рекордсменов показатели достигают 66 МГц при разрядности в 32 бита. А может быть, сейчас уже и выше.
Кстати говоря, чиповые карты называются «микропроцессорными», хотя термин этот не совсем точен. Дело в том, что на самом деле чип карты представляет собой, скорее, микроконтроллер, или даже более того — SoC (System-On-Chip), целую систему. Тогда как микропроцессор — это просто главный узел микроконтроллера (или системы на чипе). Говорю это потому, что в чипе карты присутствует еще весьма большое количество других устройств. Переходим к ним.
На чипе карты размещена еще память, причем целых три вида. Это ROM (память только для чтения), RAM (оперативная память, на чтение и запись) и EEPROM (электрически перепрограммируемая память, энергнонезависимая; для простоты — что-то вроде флэшки, но не флэш, там немного другая технология).
Прежде, чем рассказать о емкости этой памяти, нужно небольшое отстутпление. Как вы знаете, все элементы микрочипа «наносятся» на поверхность кристалла кремния. При этом они занимают какую-то площадь на нем. Чем сложнее устройство, которое мы формируем на кристалле, тем больше необходимая площадь кристалла (при одной и той же технологии ненасения). Так вот, меньше всего места требует ROM. Связано это с его простым устройством. При записи («прошивании») ROM там фактически просто пережигаются «перемычки» с помощью повышенного тока. Назад уже никак, на то оно и read-only. Но и от питания или его отсутствия состояние перемычек уже никак не зависит.
Примерно в 4 раза больше места на чипе занимает 1 бит памяти EEPROM. Дополнительное место уходит на то, чтобы добавить структуры управления ячейкой памяти. Содержимое этой памяти не зависит от наличия питания.
И максимальное место, в 16 раз (!) больше, занимает RAM. Все потому, что реализуется ячейка такой памяти с помощью триггеров, а это такие устройства, для которых надо использовать несколько транзисторов (плюс пассивные элементы), что и требует соответствующего места.
Так вот, размер ROM обычно 16-196 Кб, хотя есть карты с размером ROM более 256 Кб. В эту память прошивается операционная система и системные приложения.
RAM вмещает обычно от 256 байтов до 4 Кб. Для Java-карт размер обычно лежит в пределах от 4 до 8 Кб, хотя на рынке есть предложения до 16Кб. Небольшая, правда? Здесь хранятся переменные программы, буферы и проч. С отключением питания эта память превращается в тыкву.
EEPROM обычно вмещает от 2 до 72 Кб, но известны карты с размером до 1 Мб. Прям почти целая флэшка в бумажнике. Чем хороша эта память — при отключении питания она все сохраняет. Здесь хранятся ключи, журналы, настройки, да и вообще любые файлы.
На чипе может быть криптосопроцессор. Это, с одной стороны, более «тупое» устройство, которое умеет намного меньше, чем центральный процессор. Но зато он умеет это делать намного лучше! Дело в том, что криптографические операции — весьма ресурсоемкая задача. Особенно, если речь идет об асимметричной криптографии. При той же криптостойкости вычисления для асимметричной криптографии занимают на два порядка (в 100 раз!) больше времени. А это уже весьма заметно. Например, шифрование открытым ключом на центральном 8-разрядном процессоре пластиковой карты может занять 10-20 секунд (!), в то время как нормальный криптосопроцессор выполняет эту операцию за пару десятков милисекунд. С учетом того, что полное время обработки транзакции не должно превышать 3 секунды, вариант с центральным процессором отпадает. Поэтому для карт без криптосопроцессора некоторые виды аутентификации просто недоступны. Как итог — транзакция проходит с гораздо меньшим уровнем безопасности (SDA-аутентификация). Вроде бы зачем тогда такие чипы? А дело в том, что криптосопроцессор заметно удорожает чип, а учитывая то, что карточный бизнес для банка в основном убыточен, криптосопроцессоры встречаются уже не в самых дешевых картах, все-таки не Visa Electron, а что-то посерьезнее.
Из более-менее экзотических устройств, пожалуй, упомним еще генератор случайных чисел. Дело в том, что в криптографических вычислениях широко применяются случайгые числа. От генерации ключей до добавления случайного числа в подписываемый запрос. Но тут есть нюанс. В обычных компьютерах специального устройства, которое было бы источником случайных чисел, нет. В них используется генератор псевдослучайных чисел. Для формирования числа используется разнообразная информация, преимущественно — текущие показания (в микро-тиках) часов реального времени. Но числа, которые генерирует этот генератор, не являются абсолютно случайными, и в таких чувствительных вещах, как криптографические вычисления, их использовать недопустимо. Кстати, вспомнил, что одна преступная группировка разработала способ обыгрывать игровые автоматы, потому что в них использовался генератор псевдослучайных чисел. Там какой-то непростой такой алгоритм был… Интересная схема, где игрок через телефон (специально разработанное приложение) фиксировал время реакции программы в какой-то момент времени, это значение сообщники использовали для расчетов ставки… Собственно, главное, что из этого следует — если есть «псевдо» в случайности, то безопасность резко снижается. Поэтому на карте может быть специальное устройство, которое генерирует по-настоящему случайное значение.
Для взаимодействия с внешним миром на чипе есть еще такая штука — UART, асинхронный приемо-передатчик. Именно его лапки выведены на контактные площадки карты. У карты ведь нет ни монитора, ни терминала, а взаимодейтсвовать с внешним миром ей как-то надо. Вот этим и занимается это устройство.
Кроме него на карте может быть еще…. Та-дам!… USB-интерфейс!
Если на карте не шесть площадок, а восемь, то с большой вероятностью нижние две, которые в стандарте обозначены как «зарезервированные для будущего применения», подразумевают подключение по USB v1.1 (до 12 МБит/с, на всякий случай).
Ну и чтобы все эти устройства на чипе могли между собой взаимодействовать, там есть еще всякие контроллеры типа контроллер доступа к памяти, контроллер магистральной шины, тактовый генератор (до какого-то момента, кстати, тактового генератора на картах не было, использовался сигнал тактирования, подаваемый терминалом) и много других служебных устройств.
Как видите, весьма непростой кусочек кремния лежит в вашем кошельке.
Подписывайтесь на канал «Технологии Денег» в Яндекс.Дзен и Телеграм! У меня много интересного материала!
Рассмотрим каждый элемент банковской карты и его предназначение
Фоновую картинку на стандартной карте выбирает банк. В некоторых банках за небольшую сумму вы можете выбрать дизайн карты, загрузив свою картинку или фото. Главное — не нарушать авторские права.
1. Номер карты
В номере карты может быть 13, 15, 16, 18 и даже 19 цифр. Самый распространенный вариант — 16 цифр.
Номер вашей карты и номер вашего счета — это не одно и то же. К одному счету можно выпустить несколько карт.
2. Логотип платежной системы
Кроме логотипа платежной системы, на карте могут быть указаны логотип эмитента и/или компании-партнера.
Карты бывают кобрендинговые (то есть совместные карты банка с одной или несколькими компаниями-партнерами) или кобейджинговые (совместные карты обычно двух платежных систем). На таких картах логотипов будет больше.
3. Наименование банка
На карте указывают наименование банка-эмитента, выпустившего карту. Платежная карта — собственность банка. Юридически клиенты банка — владельцы счета и держатели карты.
4. Срок действия карты
У карты есть срок годности — как правило, от года до пяти лет. Месяц и год окончания действия карты указаны на ее лицевой стороне в формате «месяц/год» (последние две цифры). Если на вашей карте указано 03/19, она будет действовать до 31 марта 2019 года включительно.
5. Имя держателя карты
Имя держателя карты указано (или эмбоссировано, то есть выдавлено) на карте латинскими буквами. Карты бывают как именными, так и неименными (в таком случае имя держателя на карте не указывается).
6. Чип
Встроенный микропроцессор, который содержит информацию о карте и ее держателе. Чип нужен для идентификации клиента, когда он пользуется платежной картой в банкомате или терминале.
7. Магнитная полоса
Магнитная полоса (как и чип) содержит информацию о карте и ее держателе. С ней нужно быть внимательнее — карта может размагнититься, если неправильно ее хранить. Карту нельзя нагревать или оставлять рядом с работающими электроприборами.
С 2015 года Банк России запретил банкам выпускать карты только с магнитной полосой — на всех картах для безопасности платежей должен быть чип. Пока еще можно встретить карты с магнитной полосой без чипа — это карты, которые были выпущены до начала 2015 года и все еще действуют.
8. Голограмма платежной системы
Один из способов защиты карты от подделки — голограмма. Голограмма может располагаться и на лицевой стороне карты.
9. Полоса для подписи
На оборотной стороне платежной карты расположена полоса для образца подписи ее держателя. Распишитесь на карте, когда получите ее, без подписи держателя карта недействительна. Некоторые карты выпускаются без полосы для подписи.
10. Код проверки подлинности
Его еще называют CVV (Card Verification Value) или CVC (Card Validation Code) — аббревиатура зависит от платежной системы, в рамках которой выпущена карта. Благодаря такому коду можно совершать покупки через интернет с большей безопасностью.
11. Данные банка
На карте указаны номер телефона банка, выдавшего карту, и его адрес. Выпишите эти данные и храните под рукой. По указанному на карте номеру телефона нужно обращаться в банк, если вы, к примеру, потеряете карту и ее придется срочно заблокировать.
Сегодня будет глубокий технический рассказ про то, как устроена сама пластиковая карта. Понятное дело, что карта — это кусок пластика, с магнитной полосой, впаянной фабричным способом. Речь пойдет о том, что за информация содержится на самой карте, а особенно на ее магнитной полосе. Надеюсь, это также прояснит, какие реквизиты карты нужно хранить втайне и почему.
Если говорить грубо, то магнитная полоса карты дублирует информацию, содержащуюся на поверхности карты и изначально предназначена для автоматизированной обработки карт в точках продаж, банкоматах и прочих электронных устройствах. Вообще, все что касается карт, зарегламентировано серией стандартов 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, нас интересуют только те, которые относятся к банковской сфере:
- Карты для путешествий и развлечений (American Express, Diner’s Club, JCB);
- Банковские карты (Visa);
- Банковский карты (Mastercard и Bankcard);
- Розничные карты (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-х цифр, определяющий возможности или дополнительные требования к карте.
- Первая цифра:
- Разрешены международные транзакции
- Разрешены международные транзакции с использованием чипа (если возможно)
- Разрешены только внутренние транзакции
- Разрешены только внутренние транзакции с использованием чипа (если возможно)
- Запрещены все транзакции кроме банков, с которыми есть 2-х сторонние соглашения
- Тестовая карта
- Вторая цифра:
- Обычная обработка транзакций
- Требуется on-line связь с банком-эмитентом
- Требуется on-line связь с банком-эмитентом кроме случаев 2-х сторонних соглашений
- Третья цифра:
- Без ограничений, для проведения транзакций требуется PIN
- Без ограничений
- Только покупка товаров и услуг, нет возможности получения наличных
- Использовать только в банкоматах, требуется ввод PIN
- Только для получения наличных
- Только покупка товаров и услуг (безнал), требуется PIN
- Без ограничений, требовать PIN при возможности
- Только покупка товаров и услуг (безнал), требовать 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 реальным возможностям карты.