Пользователь
0,0
рейтинг
10 июля 2014 в 15:18

Разработка → Путешествия банковской транзакции из песочницы

image

Некоторое время назад на Хабре уже мелькали посты о работе банкоматов: один и два, но оба они описывали принципы работы банкоматов и вообще карточного процессинга весьма поверхностно.
Для интересующихся под катом много подробностей работы карточного процессинга банка (много букв).

Как выглядит упрощённая схема работы работы процессингового центра банка:

image

Процессинг

FrontEnd — отвечает за online сообщения: общение с банкоматами и POS-терминалами, передача авторизаций карт в VISA.
BackEnd — отвечает за offline: закрытие операционного дня, обмен финсообщениями с VISA.
HSM (Hardware Security Module) — модуль работы с ключами безопасности (подробнее описано ниже).

Все шифрование производится с помощью алгоритма 3DES.

Подключение к VISA

Банк имеет два типа подключения к VISA:
  • online
  • offline


Online-подключение

Транспортный уровень
Подключение к VISA осуществляется через вполне конкретного провайдера, в 2006 году это был Equant и его партнёр в России — Golden Telecom, как обстоят дела сейчас — я не в курсе.

Получается, что VISA доступна в локальной сети одного провайдера. Это обязательное требование VISA. Для подключения провайдер прокладывает в банк собственный оптоволоконный кабель для основного канала связи и для резервного. Устанавливает конечные маршрутизаторы и выделяет по одному порту на каждом (основной и резервный). Управление маршрутизаторами осуществляется только провайдером.

Итак, связь транспортного уровня с VISA установлена, далее прикладной уровень.

Прикладной уровень
Связь прикладного уровня осуществляется по специальному протоколу, разработанному в VISA в незапамятные времена.

Кроме всего этого все сообщения должны передаваться зашифрованными. Для этого специальные люди — офицеры безопасности — генерируют ключевые последовательности заданной длины на HSM и результаты отправляются в VISA.

Оффлайн-подключение

Оффлайн-подключение — это не что иное, как обмен файлами с информацией обо всех транзакциях, совершённых за операционный день. То есть, если в банкоматах банка «А» были обслужены карты не банка «А». Подробнее об этом чуть ниже в сценарии «Чужой клиент в нашем АТМ».

Стоит немного рассказать про HSM.

HSM

HSM — это классический чёрный ящик. При инициализации он генерирует закрытую и открытую компоненту мастер-ключа банка. Закрытую компоненту никто никогда не видит, она всегда остаётся в памяти HSM.

Сам модуль имеет многочисленные уровни защиты от взломов: программного и физического. При малейшем намёке на компрометацию ключа память модуля самоуничтожается без возможности восстановления.

Три части открытой компоненты мастер-ключа записываются на 3 магнитные карты и выдаются офицерам безопасности банка.

Итак, связь с VISA установлена, и всё работает. Теперь нам надо выпускать карты.
При вступлении в VISA банку выдаются так называемые БИНы (Bank Identification Number): то есть подмножества номеров карт доступных для выпуска. Для VISA они всегда начинаются на 4.

БИНы распределены по карточным продуктам, например:

  • VISA Classic: 400001
  • VISA Gold: 400002
  • VISA instant issue: 400003
  • и так далее


Формат номера выглядит так: допустим, у нас есть карта с номером: 4408 0412 3456 7890

Номер карты состоит из:

  • 4ХХХХХ — код VISA
  • 4408(04) — код банка (код карточного продукта)
  • 12 3456 7890 — номер лимита авторизации. Подробнее о лимите авторизации ниже.


Для интересующихся вот здесь описано, как происходит валидация номера карты.

Для каждого БИНа генерируется пара ключей: IWK (issuer working key) и AWK (acquirer working key). Процедура генерации и передачи результата в VISA аналогична описанной выше.

После этого всё это добро прописывается в FrontEnd и BackEnd процессинга. В BackEnd для выпуска карт и их эмбоссирования, вo FrontEnd для обслуживания авторизаций.

Теперь у нас есть связь с VISA и есть выпущенные карты; другими словами, мы осуществили эмиссию карт. Нам осталось сделать эквайеринг.

Банкоматы

Не буду повторяться и описывать, что находится внутри банкомата, это уже описали здесь. Скажу только, что протокол NDC+ (NCR Direct Connect) разработан чёрт знает сколько лет назад корпорацией NCR — одним из ведущих производителей банкоматов на сегодняшний день.

Широко известны три производителя:

  • NCR
  • Wincor Nixdorf GmBH (бывший Siemens Nixdorf)
  • Diebold (бывший IBM)


Да, и Siemens и IBM когда-то давно производили банкоматы, но впоследствии продали этот бизнес Wincor Nixdorf и Diebold соответственно.
Ваш покорный слуга является сертифицированным инженером как раз таки Wincor Nixdorf. Однако, у нас был один стародавний IBM, который был выпущен ещё до продажи бизнеса и который работал.
Не скажу, что работал он как часы, ибо его всё время приходилось подкручивать и подлаживать, чтобы он хоть как-то дышал, но для него можно было купить запчасти. Правда, стоили они в три раза дороже чем аналогичные для Wincor Nixdorf.
Итак, мы выяснили что есть два протокола по которому работают банкоматы. Мне довелось работать лишь с NDC+, про DDC я только слышал, но никогда не видел.
Поскольку я близко знаком только с Wincor Nixdorf, предположим, что наш банк купил именно их.

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

Готовим банкомат

Обучение

Банкомат надо обучить выдавать купюры. Для этого есть специальная процедура: банкомат отсчитывает по 10 листов из каждой кассеты и предлагает оператору ввести реальное количество отсчитанных листов. Если реальное количество отличается — банкомат откорректирует оптопары в тракте выдачи и предложит повторить процедуру.

Из опыта у меня всего пару раз банкомат ошибался, то есть, как правило, они с завода уже неплохо откалиброваны.

Ключи шифрования

В банкомат загружают 2 ключа шифрования:
мастер-ключ (MASTER KEY) — используется для шифрования ПИН-блока введённого клиентом.
коммуникационный ключ (COMM KEY) — для шифрования пакета к FrontEnd процессинга.

На HSM генерируются открытая и закрытая компонента каждого ключа, после чего открытая компонента прописывается во FrontEnd, а закрытая загружается в банкомат.
Оба ключа загружаются в ПИН-клавиатуру (EPP Encrypted Pin Pad) и хранятся только там. По сути EPP — это такой маленький HSM, который не умеет генерировать ключи, но умеет очень хорошо их хранить. Когда я плотно работал с банкоматами — EPP имели 7 ступеней защиты от физического проникновения.

После этого прописываем адрес процессинга, настраиваем VPN или что там придумают бойцы телекоммуникаций, и можно загружать сценарий работы банкомата.

Сценарий

Про сценарий уже было сказано в статье, на которую я ссылался, хочу лишь немного добавить.
Весь сценарий банкомата основан на так называемых ФИТах (Financial Institution Table).
FIT — не что иное, как БИН банка выданный VISA.
Например: для нашего родного банка мы позволим делать переводы с карты на карту, возможность просмотреть детали по вкладу и внести наличные на карточный счёт в дополнение к обычным возможностям (баланс, выдача наличных), а для всех остальных только баланс и выдача.

Таким образом, мы должны загрузить неколько ФИТов в банкомат:

  • 400001, 400002, 400003 — позволим всё и вся
  • 999999 — только выдача и баланс


Сценарий проверяет номер карты клиента и работает по первому совпадению в ФИТ-таблице.

Итак, мы полностью подготовили весь комплекс к работе, осталось самое главное: совершить транзакцию.

Транзакция

Самый простой сценарий: наш клиент в нашем АТМ:

  1. Клиент вставляет карту в АТМ;
  2. АТМ видит что клиент наш и выдаёт ему опции;
  3. Клиент выбирает: выдача, 100 рублей
  4. Банкомат шифрует ПИН-блок мастер-ключом;
  5. Шифрует всё сообщение коммуникационным ключом и отправляет в FrontEnd;
  6. FrontEnd получает сообщение;
  7. по ID определяет банкомат (каждый банкомат подключается на свой собственный порт, так что ID получить проблем никаких);
  8. Расшифровывает сообщение открытой компонентой коммуникационого ключа;
  9. по БИН понимает, что карта наша;
  10. Расшифровывает ПИН-блок открытой компонентой мастер-ключа;
  11. Обрабатывает запрос на списание (есть ли деньги, не исчерпаны ли лимиты и всё такое прочее);
  12. Зашифровывает сообщение открытой компонентой коммуникационого ключа;
  13. Отправляет банкомату;
  14. Банкомат расшифровывает сообщение;
  15. Сообщает результат клиенту;
  16. Уведомляет хост, что деньги выданы (так же с шифрованием и всем прочим).


Стоит отметить, что всё шифрование на стороне хоста осуществляется при помощи HSM.
То есть шаги 8 и 9 в деталях выглядят так:

  1. Хост отправляет зашифрованный ПИН-блок, мастер-ключ и контрольную сумму на HSM;
  2. HSM расшифровывает ПИН-блок;
  3. Сверяет контрольную сумму после расшифровки с присланной;
  4. Зашифровывает открытый ПИН-блок при помощи IWK и считает контрольную сумму;
  5. Если контрольные суммы открытого ПИН-блока и зашифрованного IWK равны — ПИН введён верно.


Клиент получает свои 100 рублей и уходит довольный, однако это только половина дела.

В этот момент FrontEnd установил клиенту hold — заморозил на его лимите авторизации (доступная к снятию сумма) 100 рублей, но его текущий счёт никак не изменился.

Здесь стоит немного пояснить: в процессинге нет счетов клиентов — движение денег происходит по так называемым «лимитам авторизации». Фактически, лимит авторизации — не что иное, как карточный счёт клиента, но он никак не фигурирует в плане счетов и бухгалтерском балансе.

Другими словами, лимит авторизации есть техническая сущность, которая отражает состояние реального текущего счёта клиента в процессинге. Отличие лимита авторизации в том, что:

  1. на лимит авторизации действуют лимиты процессинга: лимит на единоразовую выдачу, лимит на ежедневную выдачу и так далее;
  2. лимит авторизации может изменяться в течение операционного дня, текущий счёт только в момент закрытия операционного дня.


Вечером текущего дня или утром следующего дня (но, как правило, это делается ночью) закрывается операционный день. Все авторизации карт и суммы холдов выгружаются из FrontEnd и загружаются в BackEnd, где и происходит движение денег по текущим счетам клиентов. После этого финальные отчёты выгружаются в Автоматизированную Банковскую Систему, где хранятся текущие счета клиентов. На основании этих отчётов происходит реальное движение денег, а также во FrontEnd — новые лимиты авторизации (наш клиент из примера выше получает новый лимит авторизации, который меньше на 100 рублей).

Теперь сложнее: Чужой клиент в нашем АТМ:

  1. Клиент вставляет карту в АТМ;
  2. АТМ понимает что клиент чужой, показывает ему только баланс и выдачу;
  3. Клиент выбирает: выдача, 200 рублей
  4. АТМ шифрует ПИН-блок мастер-ключом;
  5. Шифрует сообщение коммуникационным ключом;
  6. Отправляет сообщение на FrontEnd;
  7. FrontEnd расшифровывает сообщение открытой компонентой коммуникационого ключа;
  8. Определяет что БИН не наш и надо его отправить в VISA;
  9. FrontEnd зашифровывает сообщение компонентой AWK (так как мы в данном случае эквайер) и отправляет в VISA;
  10. VISA получает от нас сообщение, расшифровывает его второй компонентой нашего AWK и по БИНу определяет какого банка это карта;
  11. Зашифровывает сообщение компонентой IWK (так как обращается к эмитенту) того банка, который выпустил эту карту и отправляет сообщение;
  12. Банк-эмитент получает сообщение:
  13. Расшифровывает сообщение при помощи закрытой компоненты IWK (тут сразу понятно что карта наша, БИН смотреть нет смысла);
  14. Расшифровывает ПИН-блок;
  15. Авторизует карту (даёт добро на выдачу 200 рублей);
  16. Зашифровывает сообщение закрытой компонентой IWK и отправляет в VISA;
  17. VISA расшифровывает открытой компонентой IWK банка-эмитента, зашифровывает открытой компонентой AWK нашего банка и отправляет нам;
  18. Мы расшифровываем сообщение закрытой компонентой AWK;
  19. Записываем результат транзакции;
  20. Зашифровываем открытой компонентой коммуникационого ключа нужного банкомата и отправляем ему сообщение;
  21. Банкомат получает сообщение, расшифровывает его и выдаёт клиенту деньги;
  22. Уведомляет хост, что деньги выданы (опять же, шифрую все сообщения);
  23. Мы уведомляем банк-эмитент, что деньги успешно выданы;


Это была только авторизация, то есть реальных денег никто никому не перечислил. Теперь нам надо получить финсообщение об этой транзакции и получить возмещение от другого банка: 200 рублей наших денег, которые мы выдали его клиенту.

  1. Мы отправляем в VISA отчёт (оффлайном, медленно и печально) о том, что не наш клиент с номером карты таким-то получил 200 рублей в нашем банкомате;
  2. VISA отправляет требование банку-эмитенту перечислить нам 200 рублей и ещё 0,5% от суммы транзакции, но не менее $3 самой VISA за то, что она провела транзакцию через себя. Это есть так называемый interchange fee;
  3. Банк-эмитент получает файлы от VISA, закрывает свой операционный день в процессинге, потом закрывает день в Автоматизированной Банковской Системе и переводит через корр. банк VISA на наш счёт наших 200 рублей;
  4. Рассчитывается с VISA (покрывает interchange fee)


Само собой, все такие расчёты осуществляются в долларах, и тут играет роль курсовая разница, но это уже совсем другая история…

UPD: В комментариях, товарищ Spewow привёл ссылку на статью о HSM и криптографии

UPD2:И мною была обнаружена статья, где более подробно описана архитектура ПО для банкоматов (XFS): habrahabr.ru/post/93507
Roman Sotnikov @retgoat
карма
20,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Спецпроект

Самое читаемое Разработка

Комментарии (104)

  • +5
    Спасибо, интересно.
    То есть, если карта и АТМ принадлежат одному банку, то карточная система Виза и Мастеркард вообще не нужны?
    И еще интересно, как обстоят дела с банками и их дочками( например русский и украинский Альфа-Банк). Как правило, они подключаются напрямую, или через карточную систему?
    • +6
      Да. Более того, несколько банков тоже могут договориться и проводить операции между собой без участия Visa/Mastercard. Глобальный пример — ors.ru/, так же есть куча локальных: карты Райффайзена взаимно без комиссии принимаются у Росбанка и еще каких-то, что-то вроде того есть еще у Мастербанка и Альфабанка.
      • +10
        Про мастер-банк вы хорошо пошутили.
        • +1
          Вообще там должен был быть «Банк Москвы» (он с ВТБ24 и еще кем-то), но я, видимо, на что-то отвлекся. Хотя Мастербанк в свое время действительно «дружил» с Альфой.
          • 0
            Альфа теперь дружит с Росбанком, ПСБ, МКБ и какими-то ещё. А некоторые бывшие банкоматы Мастер-Банка после продолжительного простоя, как я заметил, теперь имеют наклейки Альфы.
            • 0
              Ещё Альфа дружит с МДМ-Банк и УБРР
  • 0
    Хорошая статья. retgoat, я правильно понял, что HSM нужен только для генерации ключа? Если нет, то не совсем понятно, каковы его функции и что он из себя представляет на физическом и программном уровнях?
    • 0
      Для генерации многих ключей :) Также HSM задействуется для проверки пин-кода. Физически это рэковая железка, с которой по сети общается банковская система.
      • +7
        с которой по сети общается банковская система

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

        З.Ы. Вообще HSM — это самая важная железка в Процессинге, т.к. ее потеря автоматически превращает всю сеть банкоматов банка и все выпущенные банком карточки в тыкву.
        • 0
          Ну, карточки, положим, могут и работать в каких-то пределах, если банк договорился с платежной системой о проверке пин-кодов ей :)
          • 0
            У процессинговых служб есть база пинов (cvv?)?
            • 0
              Если честно, предыдущий оратор прав, — есть магия которая позволяет проверять ПИН-код платёжной системой. Но как это работает я так и не уразумел.
            • +1
              Обычно нет) Но есть способ проверки пинов платежной системой (у визы это называется STIP — Stand-In Processing, о других не в курсе), когда банк предоставляет платежной системе свои ключи и необходимые для проверки данные. Разумеется, банку это стоит денег. Обычно STIP используется для относительно небольших (потому как платежная система не в курсе, сколько на счету денег, и держатель карты может уйти в минус) транзакций, когда эмитент по техническим причинам недоступен; также я краем уха слышал историю о маленьком банке, который не мог себе позволить HSM и договорился с визой о верификации всех операций (как они выпускали карты — без понятия).
              • 0
                Точно, STIP! Спасибо!
          • 0
            Без HSM банк не сможет расшифровать трафик от банкоматов. Соответственно, пока не поменяют в банкоматах ключи, «кина не будет». Не уверен, что везде так, но обычно pin-коды (и cvv) никуда не уходят и нигде не светятся в открытом виде — их сразу после ввода в систему шифруют, и только HSM может расшифровать, сравнить и сказать свое «одобрям-с».

            З.Ы. Единственное место где можно увидеть пин-код — это при генерации новых карточек, когда сгенерированный пин-код печатается. Он печатается внутри изначально заклееного конверта обычным матричником без ленты (внутри конверта находится специальная бумага, на которой проявляется след от иголок принтера). Снаружи на конверт наклеен второй лист, через который собсно принтер и бьет по конверту. Так вот, на этом листе и видны следы ударов иголок в виде пин-кода, но эти листы сразу же после печати отрываются от конвертов и уничтожаются специально обученным шредером:)
            • 0
              Соответственно, пока не поменяют в банкоматах ключи, «кина не будет».
              Вообще технический вариант есть. Процессинговые системы в банках могут отключать проверку пинов и принимать карты лишь по оставшейся персональной инфе.
              Но трудно представить, чтобы до такого дошло руководство организации.
            • 0
              Без HSM банк не сможет расшифровать трафик от банкоматов. Соответственно, пока не поменяют в банкоматах ключи, «кина не будет». Не уверен, что везде так, но обычно pin-коды (и cvv) никуда не уходят и нигде не светятся в открытом виде — их сразу после ввода в систему шифруют, и только HSM может расшифровать, сравнить и сказать свое «одобрям-с».

              На самом деле, шифрование трафика, в общем случае, никак с HSM не связано. В общем случае, здесь, обозначает, что сам протокол банкомата никакого шифрования трафика не предполагает. Обычно, для этого используются какие-либо аппаратные сетевые железки, например, какая-нибудь Cisco.
              С помощью HSM шифруется только сам PIN блок.
              Значение CVV передается в рамках данных трека (образа магнитной полосы) в открытом виде как от банкомата, так и далее по всем системам. Другое дело, что этот трек (и все другие данные) не передаются по открытой сети (интернет), что призвано минимизировать утечку этих данных.
        • 0
          обычно их не меньше 2-х, с целью резервирования

          Так если ключ генерируется на одной HSM, его нельзя вытащить и при попытке его узнать он самоуничтожается, то как тогда он дублируется-то? И ведь наверняка же должны быть дублеры в разных ДЦ у крупных банков? Всегда интересовал момент резервирования HSM, т.к. по сути-то получается что ключ все же как-то передается на дублера.
          Или же при генерации ключей все HSM соединены и генерируют вместе? Но тогда как же замена вышедшего из строя?
          Кроме того, скажем банк установил HSM и сгенерировал ключи предположим десять лет назад. Сейчас эти HSM возможно не могут справляться с текущим объемом данных — тогда получается генерируются новые ключи, и у платежных систем идут по несколько ключей одного банка (поддерживая старые пока не закончится срок действия всех карт этого банка, выданных со старого HSM)? Или как?
          • +1
            При инициализации некоторых видов HSM в нех может быть зарегистрирован «Красный» ключ (токен) — ключ домена. С помощью ключа домена можно зашифровать ключи, сгенерированные внутри HSM, для последующего переноса в другой HSM, инициализированный тем же ключем домена. Пример: cloudhsm-safenet-docs.s3.amazonaws.com/007-011136-002_lunasa_5-1_webhelp_rev-a/Content/concepts/what_is_a_domain_ped_key.htm

            A domain PED Key (the red one) carries the key-cloning vector (the domain identifier) that allows cloning to take place among HSMs and tokens. Cloning is a secure method of copying HSM (or Partition) or token objects, such that they can be replicated between HSMs and tokens, but:

            * strongly encrypted (never in the clear), and
            * only between HSMs and tokens that share a cloning domain.

            … An HSM or token can be a member of only one domain....
            • +1
              Ой и не упоминайте :) Мы меняли HSM — много наших полегло.
              Как-то раз случилось страшное, и один из наших Eracom Protect Storage White сгорел от слова «Совсем». Мы тогда использовали 2 HSM, а не 4, как стоило бы.
              В итоге каким-то чудом нам удалось поднять всё на одном HSM на вермя пока мы не купим новые.
              Но купить Eracom не получилось и в итоге мы купили Thales racal 9000.
              Когда приехали новые «ракалы» мы ощутили всю прелесть переноса ключей в полный рост :)
        • 0
          Совершенно верно. Но HSM далеко не один на весь процессинг. Как правило используют 4 HSM: один для FrontEnd, один для BackEnd и ещё два резервных. Во всяком случае мы делали именно так.
          Разные HSM для фронта и бэка обусловлены тем, что они работают в разных режимах: один в онлайне расшифровывает поток данных, другой генерирует ключи для выпуска и обслуживания карт.
  • 0
    Картинка не оч понятная. Процессинговая система банка отдельно от банка изображена.
    • +1
      Я изобразил Банк «Б» упрощённо, дабы там тоже не рисовать разве чистые фронт, бэк и HSM.
    • 0
      Прошу прощения «развые чистые» стоит читать как «развесистые». Автокоррекция она такая автокоррекция :)
  • 0
    Получается, что при снятии денег в чужом банкомате, пока оффлайновое сообщение не дойдет до банка-эмитента, счет клиента не уменьшится?
    Сколько времени может идти это офлайновое сообщение?
    И что это вообще за сообщение, неуж-то письмо DHL-ом? :)
    • 0
      Клиринговая выгрузка из визы и мастера (скоупом выгружаются проводки) в систему банка. Фактический баланс меняется только по этим документом, но это не значит что можно пользоваться потраченными деньгами в магазине. Сумма блокируются до момента подтверждения или отторжения операции. По разным типам платежей разные лимиты на время обработки.
      • +1
        <ШуткаModeOn>
        Снимаем деньги и тут же взрываем банкомат.
        <ШуткаModeOff>
        • 0
          Не сработает: информация о транзакции сохранилась не в банкомате, а в процессинге банка. Снятие наличных всегда проходит с онлайн-авторизацией.
          • +1
            Снятие наличных всегда проходит с онлайн-авторизацией.
            Не факт, не факт. Вот здесь мы писали habrahabr.ru/post/216637/#comment_7424939 — почитайте начавшееся от поста обсуждение,
            • 0
              Факт, ибо требования к процессингу. Изврат со стороны банка возможен, но это уже риски безопасности, которые он на себя сам берет. Этот случай не является нормальной практикой.
              • +1
                И всё-таки не факт. Оффлайн транзакция допустима для чиповой карты. В стандарте EMV для чиповых карт есть упоминание о том, что карта может не требовать обязательную онлайн авторизацию если соблюдён ряд условий.
                Например, тре предыдущих транзакции были успешны, производились они в одной стране, транзакции были одного типа (покупка в продуктовом магазине), суммы транзакций не сравнимы.
                В этом случае допускается оффлайн авторизация.
                Как авторизовать карту выбирает приложение на чипе карты и процессинг тут не при чём.
      • +2
        «скопом» — это вполне нормальное русское слово :)
        • 0
          Согласен. К сожалению окружение сказывается на словарном запасе.
  • 0
    А еще интересно как происходит списание с рублёвой карты, если я например снимаю доллары в штатах с нее.
    • 0
      Автоконвертация по курсу вашего банка. Естественно, не оч выгодный курс.
      • 0
        Тоесть мой банк конвертирует в доллары, и всё?
        Это если со штатами.
        А если например У меня рубли, а снимаю Йены в японии, тогда как?
        Виза же только $$$ обрабатывает
        • 0
          Рубли — Доллары — Йены.
        • 0
          Смотря что считать работает только с $. Валюты в сообщениях процессинга вполне себе указываются любые. Более того, там даже на американский доллар, например, несколько кодов есть. Для пользователя прозрачно все.
          По личному опыту, меня в Европе спрашивали даже в чем я хочу расплатиться, доллар или евро.

          Расчеты собственные между банком и визой могут идти в долларах, но эту часть я не знаю.
          • 0
            Когда вас спрашивают, в чем вы хотите расплатиться — это так называемая динамическая конвертация валют. Обычно она выполняется по весьма невыгодному курсу, плюс конвертация там может произойти несколько раз, так что насчет нее довольно много негатива высказывается на профильных форумах.
            Вообще тема конвертации валют при операциях через платежную систему весьма запутанная, конвертация происходит много раз и зависит не только от валюты вашего счета, но и от счетов и настроек банка. Другое дело, когда вы снимаете доллары с рублевой карты своего банка в своем банкомате — там да, просто конвертация по курсу банка.
        • 0
          Зависит от вашего банка.

          Например если у вас карточка банка Авангард, то VISA сконвертирует йены сразу в рубли по своему курсу и выставит уже в рублях Авангарду, который спишет с вас эту сумму в рублях, ну и еще добавит 0.75% комиссии за трансграничную операцию.
    • +2
      Ваш банк берёт свой текущий курс доллара, переводит сумму снятия в рубли, добавляет комиссии и ещё несколько процентов запаса и эту сумму авторизует на вашей карте. Через несколько дней, после клиринга, когда ваш банк отправит американцам доллары, от снимет холд и спишет с вашего счёта сумму в долларах по курсу на день клиринга. Обычно курс за это время не успевает уехать сильно, поэтому в выписке вы увидите меньшую сумму, чем была изначально авторизована.
      • 0
        Ваш банк берёт свой текущий курс доллара, переводит сумму снятия в рубли, добавляет комиссии и ещё несколько процентов запаса и эту сумму авторизует на вашей карте

        Кто как. Авангард или ТКС, сейчас не вспомню который, авторизации делает по курсу ЦБ, а списывает уже по внутреннему.
  • +1
    Интересно, по всей европе стоят банкоматы Евронета, в которых обслуживание украиской карточки выходило дешевле, чем в банкоматах, которые были указаны на сайте банка. Это ошибка банка, или фича такая?
    И еще, у меня в нескольких польских банках (где открыты счета) снятие денег в банкоматах по всему миру абсолютно бесплатно. Кто в таком случае платит за мои снятия? Я, конечно понимаю, что в конечном итоге за все всегда плачу я, но в данном случае это мой банк оплачивает, или как это организовано?
    • +1
      За любую операцию через платежную систему банк платит ей комиссию. Как правило, ее (плюс какой-нибудь свой процент) он потом взимает с клиента (держателя карты, продавца-пользователя терминала). Однако в вашем случае, видимо, банк решил не брать с вас комиссию за каждое снятие (включив, наверняка, взамен какую-нибудь среднюю годовую комиссию среднего клиента в стоимость годового обслуживания), но при этом он все равно платит за ваши операции платежной системе как обычно.
  • +1
    Как всё запущено :-)
    А вот Биткоин…
  • +1
    15. Сообщает результат клиенту;
    16. Уведомляет хост, что деньги выданы (так же с шифрованием и всем прочим).

    Интересно, что будет если между 15 и 16 пунктами банкомат потеряет связь? Банкомат сообщает о том, что деньги выданы после фактической выдачи денег или чуть раньше? Т.е. насколько реальная ситуация, что банк получил сообщение о том, что деньги выданы, а клиент их не получили и наоборот.
    • 0
      И что произойдет, если другой человек с клоном карты подойдет к соседнему банкомату с аналогичной операцией по снятию?
    • +6
      У меня была такая ситуация — деньги списались (пришло SMS-оповещение), но их не выдали. В интернет-банке тоже было видно списание. Сразу позвонил в банк, меня там заверили, что все в порядке, и во время инкассации это заметят, потому что не сойдутся остатки. Предложили подождать неделю. Через пять дней деньги вернулись.
    • 0
      Если банкомат не получает уведомления об успешности транзакции, он отправляет reject автоматически. При этом считается что reject дошёл всегда.
      Если же и reject не долетел до процессинга — разбор полётов по журнальной ленте банкомата.
    • +1
      Кроме того, в каждой транзакции NDC/DDC банкомат посылает информацию о предыдущей транзакции (в частности, там информация, сколько купюр было выдано из каждой кассеты). Так что если сообщение не дошло сразу, то дойдет потом и что-то можно будет предпринять.
  • +1
    А насколько реальна ситуация, что АТМ или фронтенд отклоняет карту потому что она принадлежит определенному банку? Или любому банку из определенной страны?
    • 0
      Очень реальна. Поскольку банки борются с мошенничеством, а некоторые страны автоматически попадают в группу риска.
      То есть если вдруг карта нашего банка обслуживается в этой рисковой стране, или происходят подозрительные операции: снятие крупных сумм денег в небольшие интервали времени в другой стране.

      Такие вещи отслеживаются системой Fraud Monitoring. В её основе правила описывающие нормальное поведение клиента и его карты, если поведение отклонилось от «нормального» — банк отклоняет транзакцию.

      • 0
        Тут обратная ситуация. Ваш банк отклоняет карту иностранного банка, даже не обратившись к Визе или этому банку.
        • +1
          В принципе, реальна. Хотя, в теории, это и запрещено платежными сетями.
        • +1
          Было у меня такое пару раз — все банкоматы определенного банка вдруг стали отказывать в выдаче долларов, хотя при мне следующий клиент нормально их получал. Но местную валюту выдавали. Можно жаловаться в местное отделение VISA?
  • +2
    Мне не нравится это место
    Расшифровывает сообщение открытой компонентой коммуникационого ключа;
    по БИН понимает, что карта наша;
    Расшифровывает ПИН-блок открытой компонентой мастер-ключа;


    Если вы тут имели в виду асимметричную криптографию, то как-то странно. Если компонента открытая, то подразумевается что она не держится в секрете, и расшифровывать ей смысла нет, разве что подпись проверять.
    • +2
      Стандарт ISO 9564 на работу с PIN кодами во второй своей части «Part 2: Approved algorithms for PIN encipherment» предусматривает онлайн работу только по симметричному алгоритму TDEA (3DES). Wikipedia сообщает: "ISO 9564-2[3] specifies which encryption algorithms may be used for encrypting PINs.… As of September 2010 the only allowable algorithms are TDEA and RSA. Encryption with RSA is approved for use with ISO 9564-3 (offline PIN handling) only." (TDEA внедрялся с 2003 года, до него использовался однократный 56-битный DES.)

      В комментариях к посту blog.cryptographyengineering.com/2013/12/can-hackers-decrypt-targets-pin-data.html анонимно предположили, что асимметричная криптография с достаточными размерами ключей слишком тяжела для существующих масштабов: "Asymmetric encryption at scale needed for PIN processing is subject to man in the middle and is computationally expensive. Not a good option. Symmetric key encryption in the US for PIN is done right and doesn't offer offline attack vectors for anyone who holds the encrypted PIN block"

      Payment Card Industry PIN Security Requirements явно упоминает асимметричную криптографию только для изначального распределения ключей, например: "The initial terminal master key (TMK) must be loaded to the device using either asymmetric key-loading techinques or manual techniques — e.g. the device keypad, IC cards, key-loading device, etc."
    • 0
      Она и не держится в секрете — она лежит себе в базе данных в виде строки.
      Здесь я бы хотел немного пояснить: секретный ключ, с точки зрения банка, это такой ключ который никто никогда не может увидеть. В нашем случае открытая компонента записана в виде строки в базе данных процессинга, соответственно её может увидеть любой человек имеющий доступ в этой базе данных, а таких в банке пруд пруди :)

      По регламенту, при загрузке ключей в банкомат, секретные компоненты мастер и коммуникационного ключей должны уничтожаться после введение в EPP.

      Секретные ключи генерируются в ПИН-конвертах, в точно таких же в которых вы получаете ПИН-код от своей карты.
      После введения конверты должны быть уничтожены.
    • +1
      Кстати, по ключам. Так как 3DES — симметричный алгоритм, то ключи из HSM никуда не выходят. Когда ключ генерируется в HSM, наружу отдается идентификатор ключа, который уже сохраняется в базе. И везде, где ссылаются на симметричный ключ, используют этот идентификатор.
      • Надо расшифровать сообщение — на вход HSM подается сообщение и идентификатор ключа, которым оно должно быть зашифровано.
      • Надо перешифровать — на всход сообщение, и два идентификатора ключей — HSM расшифровывает сообщение первым, зашифровывает вторым и отдает результат.
      • Надо зашифровать — на вход исходное сообщение и идентификатор — на выходе — шифровка.

      Это в дополнение к возврату криптограмм ключей — как сказано в habrahabr.ru/post/166181/
      • +1
        Не совсем так.
        Из HSM никуда не выходит открытое значение ключа (хотя это тоже не совсем корректное утверждение, но будем его придерживаться). Как я указал в habrahabr.ru/post/229527/, HSM отдает наружу либо ключ, зашифрованный под Мастер ключом, либо идентификатор ключа во внутреннем хранилище. Какой именно из этих методов будет применен, зависит от нескольких факторов, в т.ч. типа HSM, типа ключа, запрошенной команды на генерацию ключа.
        Соответственно, в HSM в командах на выполнение операции, передается либо идентификатор ключа, либо его зашифрованное значение.
  • +3
    А что значит «расшифровывает открытым ключем» и «зашифровывает закрытым»? Возможно, имелось в виду «проверяет цифровую подпись» и «подписывает сообщение»?
    • +3
      Признаться честно — я не чуствую в себе уверенности вступая в диспут на предмет криптографии. Это не самая моя сильная сторона.
      Вот здесь habrahabr.ru/post/229393/#comment_7767367 человек всё весьма подробно объясняет.
      Вы уж простите.
    • +2
      На хабре были хорошие статьи по этой кухне
      habrahabr.ru/post/166181/
      • 0
        Самое оно, как раз то, о чём я рассказать не могу. Спасибо!
    • 0
      Или вот коммент и статья, то-же по теме.
      habrahabr.ru/post/93507/#comment_2841634
  • 0
    " 4488(04) — код банка (код карточного продукта)" — учитывая, что первая цифра — это код Visa, получается, что к Visa могут подключиться только 1000 банков?
    • +1
      В настоящее время вместо BIN+код продукта используется IIN, длиной 6 цифр:
      en.wikipedia.org/wiki/Bank_card_number -> "ISO/IEC 7812 card number… six-digit Issuer Identification Number (IIN) (previously called the «Bank Identification Number» (BIN)) the first digit of which is the Major Industry Identifier (MII)… The IIN database and membership is currently managed by the American National Standards Institute (ANSI)[3]"

      ANSI пишет, что для одного банка дает не более одного IIN для каждой из платежных систем, а выделение дополнительных IIN для идентификации продуктов не производится: "All IINs assigned are six digit numbers and each card issuer is entitled to one IIN (outside of its membership of any card schemes, for example an IIN assigned from Visa). Therefore only one IIN will be assigned to each card issuer. Additional IINs will not be issued to identify products, services or geographical location.". Для идентификации продукта предлагают использовать цифры из Customer Account Number "The first 6 digits cannot be used for any identification other than to identify the issuer to whom the IIN is registered. However, any of the next 9 to 12 digits can be used to identify products, services, geographic locations and technologies."
      • 0
        При этом эти IIN всё-таки присваивает ABA. По крайней мере именно через неё получили IIN для одного из карточного продукта лояльности.
      • 0
        Не соглашусь с утверждением про один IIN на один банк в платежной сети. Как минимум, в случае MasterCard м.б. 2 IIN — один с 5xxxxx для MasterCard и один с 6xxxxx для Maestro (сеть в обоих случаях — MasterCard).
        Лет 6 назад точно была ситуация, когда банку выдавали новый IIN под новый карточный продукт (Visa или MasterCard, уже не помню).
        Относительно разделения по коду Visa/MasterCard на основании первой цифры. На самом деле, первая цифра не всегда однозначно определяет то, кому принадлежит карта. Где-то 5 лет назад натолкнулись на диапазон, выделенный для карт Visa в 5xxxxx диапазоне.

        Теперь относительно карточных продуктов. Тут, насколько я знаю, следует разделять карточные продукты с т.з. банка и сточки зрения платежной сети. По Visa, таких продуктов, принципиально, 2 — Visa и Visa Electron, по MasterCard — 3: Debit MasterCard, Credit MasterCard, Maestro.
        При этом, если в случае с Visa и Debit MasterCard/Credit MasterCard я не могу сказать, обязательно ли различаются IIN для разных продуктов, то для Maestro, в т.ч. может выделяться другой IIN, хотя может и не выделяться (в случае, когда идет кобрендинговая карта Maestro + Debit MasterCard).

        P.S. Сейчас посмотрел свои карты Visa одного банка, у них IIN в 6 цифре различается на 1. Одна карта с кредитным лимтом, другая — без. Для карт MasterCard того же банка в аналогичной ситуации IIN совпадает.
        • 0
          Замечание "Therefore only one IIN will be assigned to each card issuer." ( по ссылке — "Applications for a second IIN are automatically rejected by the Sponsoring Authority… Registration Authority, Diane Poole at dpoole@aba.com.") висит на этой странице уже почти десять лет: web.archive.org/web/20040811055222/http://www.ansi.org/other_services/registration_programs/iin_registration.aspx Возможно, что раньше банкам могли выдать несколько IIN (либо, на тот момент еще BIN) для идентификации продуктов, и после введения этого правила старые IIN не отзывались. В википедии одно время пытались собрать список IIN: www.stevemorse.org/ssn/List_of_Bank_Identification_Numbers.html — в нем встречается несколько IIN на банк или BIN ("**" вместо двух последних цифр)
    • 0
      Не совсем, код карточного продукта тоже часть БИНа банка. Просто все считают что последние две цифры БИНа — это код продукта. Таким образом у банка просто много БИНов, которые могут совпадать по первым четырём цифрам.
  • 0
    А вот не совсем понятно как проходит валидация PIN. Пин хранится в банке в чистом виде или зашифрованном?
    • 0
      ПИН в банке вообще никак не хранится — это строжайше запрещено. Если не дай бог всплывёт и платёжная система узнает что банк хранит ПИН — выкатит колоссальный штраф (хотя, других штрафов там нет).
      Более того, сейчас по правилам PCI DSS даже полный номер карты хранить запрещено, даже зашифрованный. Используют маску: 412345******1234.

      На счёт ПИНа я не могу развёрнуто ответить на этот вопрос, поскольку я не криптограф. Могу только в общих чертах на пальцах рассказать.

      Валидируется не ПИН сам по себе, а ПИН-блок.

      Насколько я в курсе хранится некая контрольная сумма некоей строки, в которую обязательно входит номер карты.
      К нам прилетает ПИН-блок — зашифрованная строка. Мы расшифровываем её и получаем контрольную сумму. Если сумма полученная и сумма хранящаяся у нас сходятся — ПИН введён верно.

      З.Ы. Ногами не бейте, я уже говорил что криптография не самая моя сильная сторона.
      • +1
        Под пинблоком обычно понимают пин зашифрованный транспортным ключем. Есть разные форматы пинблоков, некоторые привязаны к номеру карты.

        Затем, когда это прилетает на хост, хост перекладывает это (с помощью hsm) на свой ключ и заново расчитывает PVV и сверяет его с тем, что у него есть.
        Если сходится, значит пин верный

        • 0
          Спасибо!
          Проверка ПИНа вообще не моя сильная сторона, да и было это давненько уже. Семь лет прошло как я занимался процессингами — многое забылось.
        • +1
          Не совсем так. PIN блок — это PIN, специальным образом упакованный в блок из 8 байт. Он бывает как зашифрованный, так открытый.

          PVV, обычно, заново не рассчитывается, а просто отдается HSM для проверки, а он уже сам проверяет.
    • 0
      Пин в чистом виде существует только во время печати конверта.
      В банке хранится только проверочное значение PVV — pin verification value
      • +2
        А когда высылают пин по смс?
  • +1
    Все шифрование производится с помощью алгоритма 3DES.

    поправьте, пожалуйста, ссылку на 3DES в статье — сейчас правильная ru.wikipedia.org/wiki/3DES вместо ru.wikipedia.org/wiki/Triple_des
    • 0
      Исправил, спасибо!
  • 0
    Само собой, все такие расчёты осуществляются в долларах

    VISA уже давным давно замечательно проводит расчеты с банками и в долларах и в евро и даже в рублях.
    • 0
      Эвона чего-о-о-о. В моё время такого не было :) Хорошо что так, курсовые разницы весьма и весьма раздражали.
      • 0
        Вы эту фишку не захотите: www.banki.ru/wikibank/momentalnaya_konversiya_valyutyi/

        Если с российской карты за границей предлагают списать деньги в рублях, надо всегда отказываться.
        • 0
          Спасибо за матчасть. Я, собственно, и не рвался :) Но в порядке общего развития стоит знать тонкости.
        • +1
          Я имел ввиду как раз НЕ DCC.
          Тот же, например, Аванград с VISA уже достаточно давно перешел на следующую схему расчетов:
          Покупка в долларах — клиринг в долларах, покупка в евро — клиринг в евро, покупка в другой валюте — клиринг в рублях по курсу МПС.
          Получается чуть-чуть выгоднее за счет отсутствия цепочки конвертации, например йены в доллары (в МПС), а потом долларов в рубли (в банке, если карта рублевая).
  • +1
    Поправьте, пожалуйста ссылку на статью по HSM и криптографии.
    Правильная ссылка — habrahabr.ru/post/166181/.
    • 0
      Исправил, спасибо.
  • 0
    А вот успокойте или разожгите мою паранойю.

    Допустим, я снимаю деньги с одной карты в разных банкоматах в разных местах. Логи как-то хранятся в системе? Т.е. может ли КГБ/ЦРУ/СБУ всякое сделать запрос банку/банкам и узнать, где я был и сколько снимал денег? Или эта информация конфиденциальна и хранится только в VISA?
    • +2
      Может.
      Относительно хранения самих логов — это вопрос к банку, а хранение истории операций, обычно, регулируется местным законодательством. По длительности этого периода для России (могу сказать, что для Италии этот срок составляет 2 года) лучше проконсультироваться с сотрудниками банков, но, в любом случае могу сказать, что информация о том, сколько и где снималось/покупалось храниться определенное время.
      • 0
        Ясно. Спасибо. Это плохо. Т.е. если человек пользуется платежной системой, человека могут легко контролировать. Печально.
        • +1
          Добавлю еще:
          — В соответствии с PCI-DSS 3.0 (пункт 10.7) необходимо хранить логи минимум 1 год.
          — В соответствии с местным законодательством, где максимум может достигать 3-5-7-10 лет.
  • +1
    Отличная статья, спасибо! Как-то так получается, что подробности работы платежных систем особо не попадают в широкое обсуждение, и вот такая обзорно-вводная статья пришлась очень кстати.

    Можно подробнее рассказать, какие конкретно данные остаются после оплаты картой у участников процесса? Например, остаётся ли у магазина, где провели оплату картой, номер карты (хотя бы и в замаскированном виде)? Приходит ли в банк подробная информация о географическом местонахождении точки продажи, о характере платежа (за что были заплачены деньги), другие данные? Какие данные остаются у платёжной системы?
    • +5
      Разделю ответ на 3 части:

      1. Что остается у магазина.
      Тут стоит принципиально выделить 2 типа магазинов: физические, т.е. магазины, где присутствуют физические терминалы (говоря именно о терминалах, а не о картах, я подразумеваю, что возможна ситуация, при которой на физическом терминале будет проведена операция без физического чтения данных карты с магнитной полосы или чипа карты, независимо от того, присутствует сама карта или нет).
      В этом случае у магазина, как правило, остается только чек, на котором остается (из интересующих нас данных) номер карты в формате 6x4 (6 первых и 4 последних цифры) или x4, дополнительно там может присутствовать имя владельца карты (если оно присутствует в данных чипа или магнитной полосы и его печать на чеке заложена в ПО терминала). Исключение — когда терминал интегрирована с каким-либо кассовым оборудованием магазина, в этом случае у магазина, теоретически, могут остаться любые данные, которые он смог прочитать с карты.
      Второй тип магазина — интернет магазины. Здесь ничего, однозначно, сказать нельзя, т.к. все зависит от способа работы этого магазина. В минимальном варианте у магазина не остается вообще ничего, в предельном — номер карты, срок ее действия, код CVV2/CVC2 (хотя это и запрещено), фамилия имя владельца, как их ввел покупатель при оплате.

      2. Что приходит в банк.
      — Страна, где зарегистрирован магазин.
      — Адрес (для банкомата) или наименование (для магазина). В наименование магазина, иногда, включается часть адреса.
      — Идентификатор банка/участника платежной системы, который обслуживает терминал, где была проведена операция. Т.н. эквайерский БИН.
      — Категория торговой организации (далее мерчанта), в англоязычных текстах этот термин обозначается как merchant category code (он же MCC, введен в стандарте ISO 8583 версии 87 года) или card acceptor business code (заменил термин MCC в ISO 8583 версии 93 года). По нему можно, косвенно, определить, что это был за магазин. Например, магазин электроники, оплата телекоммуникационных услуг, отеля, ресторана и пр. Некоторые отели и авиакомпании имеют свои собственные уникальные идентификаторы категорий, которые позволяют не просто сказать, что это была оплата в авиакомпании, а указать конкретную авиакомпанию.
      — Идентификатор терминала и/или мерчанта.
      — Информация о том, был ли PIN, каким образом была прочитана карта (магнитная полоса, чип, бесконтактный ввод, ручной ввод и пр.)
      Из основных — это все.
      При этом, у платежной сети — все то же, что пришло эмитенту.
  • 0
    Просьба, если у кого-то есть права, удалить данное сообщение.
  • 0
    В конце было немного информации про комиссию участников процесса. Всегда было интересно как эти трое делят доходы?
    Про 0.5% и $3 не совсем правда, ибо я в своей выписке вижу что у меня фиксированная комиссия за транзакцию — $2. Хотя подозреваю что именно с этим банком не все чисто и другие банки его не любят, уже знаю два банка которые отказывают в обслуживании моей карты.
    • +1
      С комиссиями вопрос очень не простой. Я говорил про interchange fee который всегда берёт VISA. Более того, 0,5 % $3 это минимум, да ещё и давний.
      Комиссию с вас всегда удерживает банк-эмитент. По правилам платёжной системы, банк-эквайер не имеет права взимать комиссию.
      Отсюда следует что размер комиссии за выдачу наличных в другом банке (зависит то того, в каком именно) плод трудов вашего родного банка, а так же его затрат на эту транзакцию и в конечном счёте жадности :)
      • 0
        А что и сколько достается банку-эквайеру?

        Кстати запрет системы бьется местными законами. Например, в Таиланде абсолютно все банкоматы берут ~$5 при транзакции с не тайской карты. Фаранги они богатые — по местным обычаям их не грех немного пощипать.
        Не знаю про закон, но в Камбоджи тоже все банки кто на что горазд — все берут комиссию. Но это кстати гораздо удобнее — снять за один раз $3000 и заплатить комиссию ~1%, чем делать тоже самое в РФ, где это типа запрещено, поэтому все зарабатывают фиксированную сумму на транзакции и уменьшают саму транзакцию и чтобы снять те же три тысячи надо 10 раз вставить карту, ввести пин-код и пробежаться по меню за $300. А в Белоруссии и вовсе $200 лимит на транзакцию. Короче цирк. При моей комиссии в $2 за транзакцию получается тот же 1% и я с грустью вспоминаю дикую Камбоджу…
        • +1
          По-моему, вы путаете обналичку в АТМ и эквайринг.
          Комиссия за получение налички в банкомате Визой не регулируется, и банк может ставить любой процент за эту услугу. А вот в случае эквайринга (т.е. оплаты товаров и услуг карточкой) комиссия, по правилам Визы, с клиента не берется (т.е. вы платите ровно столько, сколько заявлено в ценнике). В случае выявления нарушения, банк за такие фокусы получит «по самое не балуйся», и вряд ли ему помогут внутренние законы (разве что там будет прямо написано — «с клиента нужно стричь купоны!»).
          • 0
            Именно так. Я специално не изучал, но мне кажется что даже если будет написано что нужно стричь, то «по самое не балуйся» банк всё одно получит. VISA в этом отношении весьма прямолинейна.
      • 0
        Как интересно… Я в Штатах снимал деньги в одном банкомате. Меня банкомат честно предупредил, что будет комиссия добавлена. Я согласился. Снял N долларов, в банк-эмитент пришёл запрос на списание M=N+комиссия.
        • +1
          Как было написано выше, требование отсутствия комиссий касается только торговых операций и не касается выдачи наличных.
          Тут уже и Visa и MasterCard абсолютно спокойно относятся к комиссиям со стороны банка эквайера и тут все уже зависит от жадности конкретного эквайера: от отсутствия какой либо дополнительной (которая добавляется к сумме авторизации в суммее запроса на списания), до вполне ощутимых сумм. Раньше (лет 6 назад) это, действительно было запрещено, но потом такие комиссии разрешили сначала Visa, а, через полгода, и MasterCard. Более того, были специальные доработки для их протоколов, чтобы позволить эмитенту выделять непосредственно сумму запроса клиента и сумму комиссии, которую накручивает банк эквайер.
          • 0
            Раньше (лет 6 назад) это, действительно было запрещено

            вот я примерно про это время и рассказывал, ибо как раз тогда я плотно занимался процессингом. Как много оказывается изменилось… Спасибо за науку :)
  • 0
    Наконец, нашел время прочитать статью ;).

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

      Да, именно так. Точнее, по собственному опыту в нескольких банках в которых я работал, и с которыми очень тесно сотрудничали эти самые банки.

      Безусловно, обработка своих транзакций (на процессинговом слэнге они именуются «us-on-us») только онлайн возможна, и вы правы что некоторые так и поступают. Однако это требует повышеных требований к отказоустойчивости и надёжности.

      Помнится была у нас история.

      Мы внедрили мгновенное пополнение лимита авторизации карты напрямую из АБС, а не передавая кучу файликов из АБС в бэкофис, а потом во фронтенд. Работало быстро и не могли нарадоваться. Но тут-то и подкрался пушной зверёк: АБС не умела посылать reversal на неуспешные пополнения.

      То есть выглядело так:
      • АБС посылает команду (сразу на фронт) на пополнение карты в процессинге;
      • операция не обрабатывается о чём фронт добросовестно сообщает АБС;
      • поскольку АБС не умеет посылать откат, она никак не реагирует на сообщение о том, что транзакция неуспешна и дублирует пополнение файликом через бэк;
      • спустя 40 минут (примерное время обработки и обмена файлами) мы получаем двойной лимит авторизации на карте


      Итого, пока поняли что к чему, за день мы продублировали пополнений на 13 миллионов рублей которых реально не было у клиентов на счетах.
      Сказать мы там все в одночасье поседели — не сказать ничего.

      Например, один клиент получил на карту около миллиона рублей находясь за рубежом. После приездав Россию он пришёл в банк и торжественно вернул ошибочно зачисленную сумму.

      Но бывали о наоборот: человек получил на 800 тысяч рублей больше и благополучно их потратил. Хорошо что вопрос решили и он сам и возместил разницу.

      В общем, при онлайне риск подобных моментов увеличивается многократно, наверное именно поэтому банки и не торопятся переходить полностью на онлайн в основной своей массе.

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