«Просроченные карты»: как продлить срок действия банковских карт и возможно ли сделать их бессрочными?

Привет, Хабр!

Меня зовут Александр, в Мир Plat.Form я занимаюсь карточными платежными приложениями и терминальными технологиями, а сегодня хотел бы рассказать о продлении срока действия банковских карт.

Многие из нас пользуются несколькими чиповыми пластиковыми картами, которые в среднем имеют срок действия 3–5 лет. Такое ограничение устанавливает банк-эмитент, и оно обусловлено сроком годности чипа, соображениями безопасности и физическим износом самой карты. Помимо всего прочего, даты перевыпуска могут быть рассчитаны с учетом предстоящих маркетинговых/дизайнерских изменений в названии банка-эмитента, а также рекламных акций и обновления платежных технологий.

a42d8e3664ae8d58853c33810a9e91ec.jpg

Как продлить срок действия карты или сделать ее бессрочной?

Ни для кого не секрет, что международные платежные системы прекратили обслуживать карты российских банков. В ответ на это банки либо продлили срок действия уже выпущенных карт, либо вовсе объявили их бессрочными. Теперь карточками можно пользоваться хоть до физического износа пластика. Давайте разберемся, как это было сделано, и как совершать покупки по картам с истекшим сроком действия.

Дисклеймер

Продлить срок действия карты реально, а можно даже создать условно бессрочную виртуальную карту. Дело за малым — реализовать это вместе с нашими коллегами из банков. Итак, начнем!

Какие факторы влияют на срок действия карты

  • Срок годности чипа —  сам чип имеет свой срок службы, после которого производитель чипа не несет ответственности за его работу;

  • Физический износ самой карты — пользователь карты постоянно её достает из кошелька, вставляет в терминалы, изнашивается как сам пластик, так и контактирующие площадки, а также встроенная антенна для бесконтактных платежей при изгибе карты;

  • Контроль за эмиссией — эмитент может контролировать эмиссию карт, например, при запланированном ребрендинге, или не перевыпускать карты, по которым долгое время не производилось операций.

Где находится срок действия карты

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

Эмбоссированная картаЭмбоссированная карта

Помимо этого, срок действия карты фиксируется в платежном приложении в специальный объект данных Application Expiration Date (5F24), представленный в виде TLV-структуры:

Tag

5F24

Длина

3

Формат

n 6 (YYMMDD)

Дата, с которой можно использовать приложение, записывается в объект данных Application Effective Date (5F25):

Tag

5F25

Длина

3

Формат

n 6 (YYMMDD)

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

При оплате банковской картой по классическому сценарию данные по операции поступают от карты к терминалу, далее на хост банка-эквайрера (т.е. обслуживающего торговую точку), затем к платежной системе и на самом последнем этапе к банку-эмитенту (т.е. выдавшему карту) для авторизации.

Чтобы провести online-транзакцию, банк-эмитент может игнорировать проверку Application Expiration Date (5F24) и Application Effective Date (5F25) и, несмотря на просроченный срок действия карты, одобрить оплату. Но для транспортных проектов и покупок в offline-режиме обязательно проводится процедура Offline Data Authentication (ODA) — проверка карты с использованием ассиметричной криптографии (RSA).

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

Данные Application Expiration Date (5F24) иApplication Effective Date (5F25) участвуют во входных данных хэш-функции, которые подписываются эмитентом при формировании сертификата карты. Они зашифровываются на закрытом ключе эмитента. При проверке подлинности карты терминал расшифровывает данные, затем на основе считанной информации сам вычисляет хэш-функцию и сверяет её со значением, полученным из сертификата.

Данные открытого ключа карты для подписи эмитентом, участвующие в хэш-функции:

Имя поля

Длина, байт

Описание

Формат

Certificate Format

1

04«h

b

PAN

10

Номер карты PAN, дополненный справа символами «F«h

cn 20

Static Data to be Authenticated

Переменная

Критичные данные, целостность которых гарантируется. Объект состоит из 2-х блоков данных в строго определенном порядке:

1.      Внутренние объекты элемента «Signed Application Tags» («BF61») если «Signed Application Tags» присутствует в приложении.

2.      Записи, на которые ссылаются 4-е байты AFL (смотри EMV Book 3 v4.3, section 10.2).

b

На карте всегда находится сертификат эмитента и сертификат карты. С online-транзакциями мы разобрались: просроченной картой такие операции выполнять можно.  Но с транспортными проектами и покупками в offline-режиме так не получится. Для таких операций должны быть выполнены следующие условия:

  • Срок действия приложения должен быть таким же, как и срок действия сертификата карты;

  • Срок действия карты не должен превышать срока действия сертификата эмитента;

  • Срок действия сертификата эмитента не должен превышать срока действия ключа платежной системы.

CAExpDate > ISSExpDate > ICCExpDate = CARDExpDate

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

На первый взгляд, эту задачу можно решить, если обновить Application Expiration Date (5F24) и Application Effective Date (5F25) в записях карты. Но все не так просто, потому что срок действия карты присутствует еще и в элементе Track 2 Equivalent Data (57) в формате YYMM.

Более того, Application Expiration Date (5F24) участвует в данных открытого ключа карты для подписи эмитентом (входные данные хэш-функции) при формировании сертификата.

Если рассматривать обновление срока действия карты в упрощенном виде, то для обновления информации потребуется сначала считать все данные, подготовить новые значения и в контексте процедуры скрипт-процессинга обновить их.

Для обновления срока действия карты необходимо провести следующие шаги:

1.     Прочитать все записи карты, в которых хранятся необходимые для обработки транзакций данные, с помощью команды READ RECORD;

2.     Из записей собрать все элементы данных, в которых прямо или косвенно присутствует срок действия, а именно:

  • Application Expiration Date (5F24) — Дата истечения срока действия приложения;

  • Application Effective Date (5F25) — Дата, с которой можно использовать приложение;

  • Track 2 Equivalent Data (57) — Данные магнитной полосы;

  • Issuer Public Key Certificate (90) — Сертификат открытого ключа Эмитента;

  • Issuer Public Key Remainder (92) — Младшие байты модуля публичного ключа Эмитента, которые не уместились в сертификате;

  • Issuer Public Key Exponent (9F32) — Экспонента открытого ключа Эмитента;

  • ICC Public Key Certificate (9F46) — Сертификат открытого ключа карты;

  • ICC Public Key Remainder (9F48) — Младшие байты модуля публичного ключа карты, которые не уместились в сертификате;

  • Certification Authority Public Key Index (8F) — индекс ключа Центра сертификации платежной системы;

  • ICC PIN Encipherment Public Key Certificate (9F2D) — Сертификат открытого ключа карты для шифрования PIN;

  • ICC PIN Encipherment Public Key Remainder (9F2F) — Младшие байты модуля публичного ключа карты для шифрования PIN, которые не уместились в сертификате;

3. Подготовить для дальнейшего обновления содержимое элементов данных Application Expiration Date (5F24), Application Effective Date (5F25) и Track 2 Equivalent Data (57);

4. Использовать запрошенный у платежной системы сертификат эмитента (90 и 92) и пересобрать сертификат карты (9F46 и 9F48) с новым сроком действия, учитывая условие:

 CAExpDate > ISSExpDate > ICCExpDate = CARDExpDat

5. Учесть, что обновленная информация может участвовать в данных открытого ключа карты для подписи эмитентом (входных данные хэш-функции);

Важно!

Данные для сертификата должны быть зашифрованы на закрытом ключе эмитента. Этот ключ может быть тем же, что использовался при персонализации карты, так и быть новым. Но храниться он может только у эмитента, и не может быть переданным третьей стороне.

6. Сформировать новые данные для записей;

7. Для обновления данных необходимо провести транзакцию, включающую в себя процедуру скрипт-процессинга. UPDATE RECORD — обновление требуемых записей;

Важно!

Чтобы данные записи корректно поместились в команду, должны быть правильно подобраны размеры ключей. В зависимости от их размера могут появиться или исчезнуть новые элементы — Tag 92, Tag 9F48, Tag 9F2F.

8. Для снижения рисков выполняется проверка корректности проведения ODA (DDA, CDA) и Enciphered PIN терминалом.

Возможно ли сделать банковскую карту бессрочной

К сожалению, на физическом носителе сделать карту бессрочной не предоставляется возможным из-за ряда причин:

  • Срок действия карты указывается 3-мя байтами в формате YYMMDD, где первый байт устанавливает год, по истечении которого карта будет просроченной. Диапазон лет от 00–49 интерпретируется как 2000–2049, 50–99 как 1950–1999. Т.е. карта не может иметь срок действия более 2049 года;

  • Аналогичная ситуация и с сертификатами, только формат даты представлен в виде YYMM;

  • Срок жизни также определяет счетчик транзакций ATC, состоящий из 2 байт. При достижении максимального значения, а именно 65535, карта блокируется и не проводит транзакции;

  • Не забываем учитывать физический износ материала карты и срок жизни встроенного в карту чипа.

Сейчас набирают обороты механизмы виртуализации и токенизации карт, при которых изменять срок действия можно просто перевыпустив виртуальную карту/токен. Таким образом, виртуальную карту можно условно сделать бессрочной, если автоматически ее перевыпускать при истечении срока её действия.

© Habrahabr.ru