Как устроен банкомат: что происходит с деньгами и данными внутри аппарата
Как с пользой потратить время в очереди к банкомату? Предлагаем такое упражнение: представьте, что у вас рентгеновское зрение, и попробуйте проследить весь путь, который проходят купюры внутри устройства.
Чтобы вам было легче ориентироваться, вот пост про богатый внутренний мир банкомата. Рассказываем и про механическую часть, и немного про связь с банковским информационным контуром. Всех любопытных приглашаем под кат.
Из кошелька в банкомат
Модели банкоматов от разных производителей могут отличаться в деталях, но концептуально все они состоят из одинаковых ключевых узлов. Первым с деньгами встречается приёмник — тот самый отсек для купюр с защитной шторкой-шаттером.
Олдфаги наверняка помнят банкоматы, принимающие деньги по одной купюре. Теперь это раритет — в Газпромбанке ни одного такого нет.
Из отсека для внесения наличные попадают в транспортный механизм приёмника. Конкретная реализация транспорта зависит от производителя. Как правило, это система из движущихся ремней, подающих и направляющих валов.
По одной купюры попадают в валидатор. Его задача — проверить номинал, валюту и подлинность. Для этого в валидаторе есть двухсторонний сканер, набор датчиков и электронные шаблоны всех купюр, находящихся в обращении.
Как устроен процесс валидации:
- Сначала валидатор определяет габариты банкноты и сканирует её в разных спектрах: видимом, магнитном, ИК, УФ. Всё это — чтобы проверить характерные признаки подлинности. Их у современных купюр много: водяные знаки, скрытые надписи, муаровые полосы, специальная цветопеременная краска, микроперфорация, рельеф. На Хабре уже есть хорошая статья по теме.
- С помощью магнитных датчиков валидатор проверяет наличие и корректность расположения меток. Например, некоторые элементы банкнот рисуются красками с ферромагнитными добавками. Также магнитными свойствами могут обладать защитные нити.
- Полученный «портрет» купюры сравнивается с электронным шаблоном той же валюты и номинала: по размеру, яркости, контрастности, гистограмме изображения, а также по всем признакам, перечисленным выше. Точное содержимое шаблона и методика сравнения у каждого производителя банкоматов своя и держится в секрете.
Вместе приёмник, транспорт и валидатор напоминают банковскую счётную машинку с функцией пономинального подсчёта и проверкой банкнот. Это сложное устройство с большим количеством датчиков и движущихся деталей. Неудивительно, что попадание посторонних предметов в приёмник смертельно опасно для банкомата.
Повезёт, если условная скрепка держится на деньгах непрочно. Тогда она под действием силы тяжести провалится в отсек для посторонних предметов, который находится прямо под приёмником. Но в большинстве случаев посторонний предмет либо спровоцирует сбой, либо выведет банкомат из строя. Так что всегда проверяйте, не затесалась ли между купюр скрепка или монетка.
Купюры проходят через валидатор, а дальше два варианта: банкомат принимает их для дальнейшего оборота или отбраковывает.
Поддельные деньги валидатор легко отсеивает, выявив несоответствие хотя бы одному из признаков подлинной банкноты. Мятые и рваные купюры тоже не пройдут проверку: складки и разрывы мешают оценить все признаки. Наконец, потрёпанную наличку валидатор тоже вернёт — её выдаст толщина бумаги и опять же плохая читаемость признаков.
Банкомат различает поддельные и испорченные деньги, но поступает с ними одинаково — возвращает их пользователю. Специальной кассеты для подделок в наших банкоматах нет.
Кстати, время на раздумья ограничено во всех банкоматах, таково требование международных платёжных систем. Тайм-аут на каждое взаимодействие выставляется при настройке ПО банкомата. Нажатие на кнопку или экран сбрасывает счётчик.
Если валидатор забраковал часть купюр, а вы не успели забрать их, то по истеченнии тайм-аута банкомат захватывает деньги обратно и помещает в отдельную кассету.
Если все признаки сходятся с электронным шаблоном — значит, банкнота подлинная. В этом случае валидатор передаёт её следующему узлу — эскроу. Это модуль для временного хранения наличности, в нём деньги задерживаются, пока вы стоите у банкомата и проверяете сумму внесённых средств на экране. До этого момента включительно купюры ещё принадлежат вам.
Как только вы подтвердите зачисление средств на счёт, ваши деньги превратятся в данные внутри банковского контура. Банкноты внутри аппарата вам больше не принадлежат — они начинают жить своей жизнью. Дальше у них два пути: инкассация и ресайклинг.
Из эскроу деньги по умолчанию переходят в депозит-кассету — в ней хранятся все купюры, которые валидатор признал пригодными к возвращению в оборот. Сортировки здесь нет: в каком порядке банкноты пришли, в таком и размещаются в кассете. В банкомате может быть одна или несколько депозит-кассет.
В депозит-кассетах деньги остаются до ближайшей инкассации. После неё специалисты в банковском кассовом узле пересчитывают наличность и сверяют эти данные со списком проведённых операций. Опустошенные депозит-кассеты ждут очередной инкассации, чтобы снова вернуться в банкомат.
В некоторых банкоматах есть функция ресайклинга — выдачи внесённых клиентами купюр другим клиентам. Главный критерий для ресайклинга: по своему состоянию купюры должны быть пригодны для возврата в оборот.
В таких устройствах деньги из эскроу отправляют не в депозит-кассету, а в кассеты рециркуляции денежных средств — по одной ресайклинг-кассете на каждый номинал. Банкомат изначально знает номиналы всех кассет рециркуляции, поэтому после валидации направляет каждую купюру в соответствующую кассету.
В банкоматах-ресайклерах ограниченное количество кассет рециркуляции, только для самых ходовых номиналов. Если купюра не подходит по номиналу ни одной ресайклинг-кассете, она отправляется в депозит-кассету.
Польза банкоматов с рециркуляцией очевидна: их нужно реже инкассировать, эту функцию частично берут на себя клиенты.
На этом оставим бумажные купюры. Ваши деньги превратились в данные о транзакции, поговорим подробнее об этих данных.
Из банкомата в банковский контур
Если отбросить всю периферию, которая взаимодействует с деньгами, картами и пользователем, от банкомата останется обычный компьютер. У более-менее современных моделей на борту от 4 ГБ оперативной памяти и двух- или четырёхъядерный процессор архитектуры x86 или x86-64.
Когда вы подтвердили зачисление средств на свой счёт, банкомат отправляет в процессинговый центр банка запрос: «Зачислить сумму XXX на карту с номером NNNN NNNN NNNN NNNN».
Протокол, по которому банкомат общается с процессинговым центром, зависит от ПО, под которым работает устройство. Чаще всего в роли протокола прикладного уровня выступают узкоспециализированные управляющие протоколы с функцией передачи финансовых сообщений (NDC или DDC). Могут использоваться и более известные протоколы — например, HTTPS.
В любом случае банкомат строит защищённое соединение с центром. В Газпромбанке мы используем IPSec-VPN-туннель, который туннелирует и шифрует трафик по алгоритму ГОСТ. Внутри туннеля данные также шифруются при помощи TLS и 3DES.
ПЦ проверяет PIN-код, номер и срок карты, имя владельца, счетчик операций на чипе, наличие ограничений по карте, сформированную чипом карты криптограмму и много чего еще. Если всё в порядке, центр даёт добро на проведение операции. После её завершения вы получите пуш-уведомление или СМС об успешном пополнении карты.
Допустим, вы пополнили карту с нулевым балансом и тут же совершили покупку на ту же сумму. Чьими деньгами вы расплатились? Если банкомат и карта принадлежат одному банку, то будьте уверены: на вашей карте лежат именно ваши деньги, только в оцифрованном виде. И уже через секунду после уведомления вы тратите в магазине свои деньги, а не деньги банка. Конечно, здесь есть тонкости, зависящие от инфраструктуры конкретного банка, но вдаваться в них сейчас нет особого смысла.
А вот если банкомат принадлежит другому банку, то картина принципиально другая. В этом случае банк-эквайер (владелец банкомата) через платёжную систему передаёт информацию о зачислении банку-эмитенту (вашему банку). Уведомление о пополнении баланса вы увидите сразу после одобрения операции, как если бы пополняли карту в банкомате своего банка. Но по факту ваши деньги дойдут до банка в течение трёх банковских дней.
Выходит, что сразу после внесения наличных на карту вы будете расплачиваться не своими деньгами, а деньгами своего банка. Сам банк спокойно идёт на это, потому что платёжная система гарантирует, что в конечном итоге он получит ваши деньги от банка-эквайера.
Из банковского контура в банкомат
Превращение цифровых денег в наличку проходит по той же схеме, только в обратном направлении.
В банкоматах есть два основных способа выдачи купюр:
- «Равномерная выдача» — сумма выдаётся так, чтобы количество купюр в кассетах разного номинала уменьшалось равномерно;
- «Тонкая пачка» — сумма выдаётся минимальным количеством купюр.
В банкоматах Газпромбанка существует третья опция:
- «Покупюрная выдача» — когда клиент может сам выбрать, какими именно купюрами он хочет получить сумму.
В зависимости от выбранного способа выдачи сервер отправляет банкомату соответствующую команду: сколько выдать купюр из кассет соответствующего номинала. К выдаче допускаются все купюры, загруженные в кассеты выдачи и кассеты рециркуляции, если банкомат поддерживает ресайклинг.
За состоянием кассет в режиме реального времени следят счётчики, показатели которых видно в онлайне. Данные со счётчиков загружаются в систему, которая прогнозирует опустошение кассет и рекомендует оптимальные даты инкассаций.
Если наличность в банкомате закончилась внезапно, будет проведена внеплановая инкассация. Но это случается редко, чаще всего инкассация производится заблаговременно.
Из банкомата в кошелёк
Тут совсем просто: по команде от сервера включается диспенсер. Этот модуль набирает по одной необходимое количество купюр из кассет и далее с помощью транспорта отправляет их одну за другой в презентер.
Когда в презентере набирается вся пачка, открывается шторка — можно забирать наличку.
Если вы забираете наличные из того же отсека, куда и клали, значит, перед вами ресайклинговый банкомат. В нем модуль приёма и выдачи совмещены в одном устройстве, соответственно, презентер и приёмник — это одно устройство.
У остальных банкоматов модули приёма и выдачи разделены: кладешь наличные в отдельный приёмник, а забираешь из отдельного презентера.
Безопасность
В соответствии со стандартами безопасности PCI DSS на накопителе банкомата хранится информация только о факте совершения операции. Чтобы накопитель не забился под завязку, раз в день банкомат архивирует и удаляет старые логи.
Полный журнал операций хранится на внутреннем защищённом сервере банка. Журнал помнит всё:
- номинал и валюту каждой купюры в пачке, а иногда ещё и серийный номер банкноты, если модель банкомата умеет распознавать и регистрировать серийные номера;
- номер кассеты банкомата, с которой связана транзакция;
- ну и, естественно, номер карты, на которую внесены или с которой сняты денежные средства.
Если переживаете за судьбу своих денег, сохраняйте чек об операции — это гарантия, что в случае проблем с транзакцией вы сможете получить из электронного журнала именно ту запись, которая вам нужна.
Любую операцию из журнала можно соотнести по времени с видеозаписью. На всех банкоматах установлены камеры, которые фиксируют все обращения и помечают на видео основные этапы операции. Разрешение камеры зависит от модели банкомата, но для опознания злоумышленника качества видео достаточно в любом случае. Архив видеозаписей хранится на внутреннем защищённом сервере банка и доступен по запросу.
Естественно, в банкоматах предусмотрена защита от мошенников. Например, у любой карты с чипом есть уникальные данные — криптограмма. Когда банкомат связывается с центром для проведения транзакции, необходимо, чтобы каждое такое обращение содержало криптограмму.
Передать её можно, только приложив карту к считывателю. Поэтому при бесконтактном обслуживании банкомат требует прикладывать карту или телефон на каждом этапе. Когда карта вставлена в слот, криптограмма тоже постоянно считывается, просто это происходит незаметно для клиента.
Форс-мажоры
На случай отключения электричества большинство банкоматов оснащены ИБП. Если свет вырубят, а вы не успели подтвердить зачисление/снятие денег на счёт, устройство почти наверняка штатно завершит операцию или вернёт деньги вам в кошелёк или на счёт. Затем банкомат перестанет обслуживать клиентов и будет ждать, пока не появится основное питание.
Допустим, вам не повезло: банкомат съел деньги и отключился или деньги ушли с карты, но банкомат их не выдал. В этом случае лучше сразу оформить претензию. Но происходят такие сбои крайне редко — слишком много звёзд должно сойтись. Как правило, отключение электричества не приносит клиенту никаких проблем.
Ещё один маловероятный сюрприз — интернет отрубился, когда банкомат отправлял данные в процессинговый центр. Маловероятный, потому что ПО регулярно проверяет соединение с сервером и, если оно пропадает, банкомат выходит из режима обслуживания.
Если такая ситуация произошла, на всякий случай проверьте банковское приложение — может, транзакция всё же завершилась. Если нет ни пуш-уведомления, ни СМС, оставайтесь на месте. Банкомат будет отправлять проблемную операцию до победного, но если связь с центром так и не восстановится, АТМ вернёт вам карту и средства. Будет обидно, если в этот момент вас уже не окажется рядом с банкоматом.
В некоторых случаях при потере связи с сервером банкомат захватывает карту и наличные и оставляет их себе на хранение в отдельной кассете. Вернуть их можно, сообщив о проблеме банку.
Производители учитывают потребности банков и клиентов, используют новые технологии — в итоге банкоматы стали бесконтактными, быстрыми, удобными и безопасными. Посмотрим, какими они станут ещё через десять лет.
Под капотом ПО банкомата
Достаточного много читал на ГТ и Хабре статей про банковские карты, банкоматы, и вот решил внести свой вклад. Ниже я попробую рассказать о том, как устроен банкомат с точки зрения программного обеспечения.
Что такое банкомат?
Любой банкомат по сути представляет собой компьютер с подключенной периферией, менеджером оборудования и собственно банковским приложением, управляющим всем этим хозяйством. Все решения по выдаче денег принимает сервер. Банкомат лишь собирает информацию от клиента и передаёт её на сервер.
Железо банкомата
- картридер, для чтения карты клиента
- пин-пад, для ввода пин-кода и прочей информации как, например, суммы платежа/снятия
- функциональные клавиши по бокам (4+4) являются дополнением подключаемым к пин-паду. В некоторых современных банкоматах их заменили на тач-скрин.
- диспенсер для выдачи денег
- различные датчики, подсветка
Кто же управляет всем этим зоопарком
Для того чтобы производители не мучились с написанием драйверов, которые потом никому не нужны, а разработчики софта не страдали от разнообразия решений по управлению той или иной железкой, было решено всё это дело унифицировать.
Так появился стандарт CEN/XFS либо просто XFS, что расшифровывается как eXtension For Financial Services.
Стандарт описывает клиент-серверную архитектуру состоящую из менеджера оборудования и сервисных провайдеров (читай драйвера устройств), которыми он управляет. В терминологии стандарта «сервисный провайдер» — это библиотека, предоставляющая определенный набор функций для получения информации об устройстве и управления им. Обычно это динамическая библиотека, содержащая определенный набор стандартных функций(Open, Close, GetInfo, Execute ) каждая из которых имеет ряд специфических для конкретного устройства аргументов.
Все взаимодействие с оборудованием происходит через API XFS менеджера. К примеру, параметр Command функции Execute может иметь значение для диспенсера купюр:
WFS_CMD_CDM_DISPENSE (набор денег из кассет)
WFS_CMD_CDM_PRESENT (выдачи пачки клиенту)
Для картридера:
WFS_CMD_IDC_RETAIN_CARD (захват карты),
WFS_CMD_IDC_READ_TRACK (чтение дорожек)
Существует несколько реализаций XFS-менеджеров (в том числе с открытым исходным кодом), написанных на c++ и теоретически библиотеки сервисных провайдеров, написанные под один менеджер, так же должны подходить ко всем остальным, но по факту иногда библиотека, написанная конкретным вендором под конкретный XFS менеджер, работает только с этим менеджером.
Также существует Java XFS со своими библиотеками, не совместимыми с классическими менеджерами.
Банковское приложение
Банковское приложение — это то, что вы видите на экране, когда подходите к устройству. Оно предназначено для сбора данных от пользователя, отправки этих данных на хост (сервер) и выполнения ответа от хоста. Как и в случае с железом (XFS) есть отраслевые протоколы (NDC/DDC), по которым приложение общается с хостом, загружает конфигурацию и интерпретируют её.
Любой крупный производитель банкоматов (Wincor, NCR, Diebold) имеет свою реализацию как XFS, так и банковского приложения.
Однако на рынке есть альтернативный софт, соответствующий всем стандартам и не привязанный к конкретному вендору.
Я буду описывать банкомат на примере NDC как наиболее распространенного в России протокола, но чуть менее популярный DDC имеет схожий принцип работы.
Как же оно работает
- Power Up — Загрузка
- Offline — Нет связи с сервером, коннектимся
- Supervisor — работает инкассатор или сервис-инженер
- Out of service — банкомат не работает, потому что неисправен, кончились деньги, или просто кто-то в банке перевел его в этот режим.
- In service — основной режим работы, знакомый всем тем, у кого есть банковские карты.
Первый символ этой строки — тип стейта (обозначаются буквами A..Z а так же a..z и некоторыми символами (,’.?)), он определяет совокупность. Остальные 24 символа — это 8 десятичных 3-значных чисел, каждое из которых является определенной настройкой стейта (номер экрана для показа, условия перехода на стейт, список действий). Стейтов одного типа может быть любое количество.
Режим In service
При старте режима обслуживания банкомат автоматически начинает выполнять стейт 000. Обычно это стейт A (Card read state). В этом стейте банкомат отображает экран с приглашением вставить карту и переводит картридер в режим приёма. Также стейт отвечает за чтение карты и ветвление в зависимости от результатов этой операции.
Ниже пример конфигурации типичного стейта A:
000 A001001011008004002001104
000 — номер стейта
A — тип стейта (Card read state)
001 — номер экрана (Screen number)
001 — номер стейта, на который переходить в случае успешного чтения карты
011 — номер стейта, на который переходить в случае ошибок чтения карты
008 — условие чтения 1
004 — условие чтения 2
002 — условие чтения 3
001 — условие возврата карты (сразу после чтения или по завершение операции)
104 — стейт перехода, если если карта неизвестна банку
Пройдемся по параметрам более подробно:
Тип стейта — тут всё понятно: определив тип стейта, приложение знает как интерпретировать дальнешие параметры.
Номер экрана — представляет собой ссылку на строку с текстовым описанием экрана, отображающимся во время работы данного стейта.
Не каждый стейт имеет экран.
Экран может иметь номер от 000 до 999. Экраны, отличающиеся на 100, обычно резервируют под разные языки. Таким образом экран 010 и экран 210 это скорее всего разноязычные версии одного экрана. Об экранах я расскажу чуть позже.
Номер стейта перехода в случае успешного чтения карты — то, какой стейт приложение начнет выполнять в случае, если карта распознана и данные прочитаны успешно.
Помимо стейтов и экранов в банкомате есть ещё один важный конфигурационный параметр — financial institution table. Таблица финансовых институтов содержит данные о том, какие карты принадлежат какому банку, как правильно парсить данные прочитанные с дорожек карты, и что делать в зависимости от этих данных дальше. Например если карта локальная то можно выполнить один сценарий, если карта стороннего банка то нужно запретить ветку сценария с мобильными платежами и проверкой баланса.
Номер стейта перехода в случае проблем с чтением карты — если карту не получилось прочесть ни по одному из предложенных условий — переходим на стейт, указанный в этом параметре. Как правило, это стейт J (Close state) на котором мы отдаём карту, показываем экран с предложением забрать её и активируем таймер по истечению срока которого будет запущен механизм удержания карты. Стейт J также является последним стейтом в случае успешной транзакции.
Условия чтения карты (3 параметра подряд) — это битовые маски, обозначающие номера треков, которые нужно прочесть, и взаимодействие с чипом в случае его наличия.
Например, Read Chip, Read Track 2 and Track 1, Read Track 1. Если хоть одно из условий срабатывает, то остальные условия не выполняются и карта считается прочитанной. Если ни одно из условий не выполняется, карта считается непрочитанной.
Условие возврата карты — банкомат может вернуть карты сразу после прочтения, а может сделать это в конце после завершения всех операций.
Остальные стейты устроены схожим образом:
- Есть стейты для чтения суммы с клавиатуры и помещения в специальный внутренний буфер;
- Есть стейты для чтения пин-кода пин-падом и получение затем пин-блока в специальный буфер;
- Есть стейты для проверки введенных данных (например, если введенная сумма меньше минимальной суммы, то идет перенаправление на стейт с сообщением об ошибке);
- Есть стейты для выбора с помощью боковых клавиш (так называемых FDK) и помещения символов этих клавиш (ABCD FGHI) в специальный 8-байтный буфур;
- Есть стейты для обнуления и предустановки буферов.
- идентификатор действия которое нужно совершить;
- номер экрана который нужно при этом действии показывать;
- содержимое чека, если чек нужно напечатать;
- стейт на который нужно перейти по завершению действия.
По завершению требуемых действий приложение шлёт подтверждение на хост и переходит на указанный стейт. Как правило это уже известный нам стейт J. В случае какого-либо сбоя приложение шлёт сообщение о сбое на хост и ждёт нового Transaction Reply с переходом на новый стейт.
Теперь об экранах
Экран банкомата представляет собой поле 32х16 клеток. Экран может содержать как графическую информацию, так и текстовую, которая позиционируется относительно клеток. Шрифты могут быть двойной высоты.
Описание экрана представляет собой строку с текстом, перемежающуюся управляющимися символами, такими как очистка экрана, позиционирование курсора, размер шрифта. В большинстве современных банков сегодня текст используется только при вводе сумм, а в остальных случаях экран — это просто цельная картинка. Однако встречаются и полностью текстовые экраны.
Пример экрана, отображающего картинку из таблицы картинок (\0c\1bP2018\1b\5c)
Именно на такие экраны ссылаются параметры стейта.
Совокупность стейтов, экранов, FIT, таймеров называется сценарием банкомата. Каждый сценарий имеет свой номер. После загрузки банкомата и подключением его к сети, он шлет на хост сообщение в котором сообщает свой ID и номер конфигурации. Если конфигурацию следует обновить — хост переводит банкомат в режим «Out Of Service» и начинает грузить необходимые параметры новой конфигурации. Последним параметром идёт номер конфигурации. Схожим образом происходит загрузка ключей для шифрования пин-блока, для макирования, и мастер-ключей.
Вот, если вкратце, так устроен банкомат. Надеюсь кому-нибудь эта информация пригодится.
Банкомат. По ту сторону провода
В связи с затронутой недавно темой устройства банкоматов, желании хабра узнать о них побольше, а также просто зашкаливающему количеству домыслов от такой, казалось бы, технически подкованной аудитории, я решил написать этот пост. В отличии от UserSide, который в основном занимался физическим обслуживанием банкоматов, и как мне кажется, весьма далек от тех, кто собственно пишет софт для его управления хостом, я расскажу о «той стороне». Естественно, в меру своих познаний, пока еще слишком скромных.
Так как это моя первая статья на хабре, прошу прощения за, возможно, излишнюю сумбурность.
Первое что хочу отметить — все, сказанное в статье и практически все в комментариях — правда, но правда однобокая — она описывает частные случаи. И хотя это частные случаи, в той манере, как подана информация, у неподготовленного читателя может возникнуть впечатление, что бывает только так, как было рассказано. И хотя в комментариях успело появиться несколько противоположных описаний ситуаций, никто так и не озвучил главного — все это частные случаи.
1. Карты и счета
Один из форумчан, ссылаясь на свой опыт, настаивал, что к карте можно привязать любой счет (причем в любой валюте) за 5 минут, кто-то другой сомневался. Это действительно так. Возможность этой процедуры определяется только возможностями программного обеспечения самой процессинговой системы, поддержкой ее со стороны интернет/мобильного банка, желанием банка предоставлять населению такие услуги и его желанием заплатить за это дополнительную денежку разработчику системы. В системе, к разработке которой я имею отношение, карта и счет — это две разные сущности.
Карта в нашей терминологии является токеном — точно также, как токеном является, например, пароль, сертификат, документ, удостоверяющий личность и некоторые другие, сходу не вспомню. Токен служит лишь для доступа к счету. Причем, как к счету можно получить доступ через несколько токенов, так и токен может обслуживать несколько счетов. Например, в одном банке, где работает наша система, во время карточной операции вас могут попросить указать конкретный счет — если к карте их привязано несколько.
2. ПИН наоборот для мошенников
Эта фича называется «Ложный ПИН» (iPIN). То, что какой-то банк предлагает по умолчанию делать его, как основной ПИН, записанный наоборот, служит только цели более легкого его запоминания. Судя по комментариям, у меня сложилось впечатление, что не все это понимают.
Насколько я слышал от коллег, эта фича не очень востребована, т.к. имеет свои негативные стороны (не знаю, какие). Факт в том, что используется она крайне редко.
3. Карточки инкассаторов/супервизоров
Опять же, это не непреложное правило, это сделано просто для удобства обслуживания. В нашей системе оно сделано таким образом, подозреваю, что во всех остальных так же:
При вставке такой карточки хост, вместо выполнения транзакции, запрашивает у банкомата текущие счетчики (либо приложение банкомата само может определить такую карту и самостоятельно сразу послать счетчики — о приложениях дальше). Далее происходит физическая инкассация терминала с занесением в него новых счетчиков (это делается вручную, но я краем уха слышал, что возможно и автоматическое занесение по опросу кассет… но мне кажется, сейчас это редко где есть). После закрытия банкомата дверца придавливает специальную кнопку, называемой кнопкой супервизора, и банкомат рапортует в сеть как минимум, что изменилось состояние сенсора «режим супервизора», как максимум — свое полное состояние, в том числе и новые счетчики (а может еще и старые — см. в главе про приложения). Если рапорт содержит информацию только о сенсоре, то хост самостоятельно запрашивает счетчики. В этот момент хост может сравнить новые счетчики со старыми и создать транзакцию инкассации. Опять же, повторюсь, так это работает у нас, но это не значит, что так работает везде. Но так как схема очень гибкая и автономная, то используется наверняка почти в любом программном продукте такого рода.
Вместо карточки команду на начальный опрос счетчиков (перед переводом банкомата в режим супервизора для инкассации) могут дать и из хоста. Инкассация в таком случае может выглядеть так: инкассаторы прибывают на место, звонят в процессинговый центр, оператор выполняет команду через систему, далее все как в первом сценарии.
4. Приложение на банкомате
- протокол обмена жестко определен, на стороне банкомата выполняется программа, работающая по этому протоколу и расширить ее никак нельзя. Это, например, NDC, DDC и Triton.
- протокол обмена не только жестко не закреплен, но наоборот, приложение на банкомате является расширяемым плагином для поддержки общения с конкретным хостом. Так устроены банкоматы Kalignite — кстати, наиболее гибкие из тех, с которыми мне довелось работать. Приложение Kalignite — это обычное .Net приложение, показываемые на экране банкомата экраны — обычные HTML-странички, отображаемые через стандартный .Net компонент браузера (который, в свою очередь, основан на ядре IE, т.е. имеет все его уязвимости. Однако сам компонент сильно урезан). Благодаря этому разработкой визуальной части сценария могут заниматься веб-дизайнеры и пользоваться всеми благами — например, jQuery, виртуальной клавиатурой и всем, чего душа пожелает.
Так как на банкомате работает код, который пишется самим разработчиком системы, то выполнение всяких сервисных функций может заметно упроститься — например, транзакцию инкассации можно сформировать на самом банкомате, и переслать ее на хост, как обычный запрос транзакции (только это будет административная транзакция).
- терминал присылает только уточненные параметры — в таком случае, хост должен где-то хранить информацию, которую банкомат прислал в предыдущем запросе — банкомат stateless, хост statefull — так ведут себя все банкоматные программы с жестко закрепленным протоколом (NDC/DDC, Triton и другие), т.к. протокол не предусматривает места для хранения этих данных;
- терминал присылает все прошлые данные плюс уточненные параметры — банкомат statefull, хост stateless. Так лучше делать при работе с Kalignite, т.к. все равно нужно (желательно) написать свое расширение для взаимодействия по удобному хосту протоколу.
5. Изъятие карт и неверные ПИНы
Поведение при обнаружении не забранной карты полностью настраивается — банкомат может как захватить ее, так и оставить в тракте. Тоже самое относится к выдаче карты до/после денег, в начале/конце работы, при отключении электричества (если банк не совсем бедный, в банкомате должен быть ИБП). Что делать, если введен неверный ПИН-код, введен ложный ПИН (если есть), когда обнуляется счетчик неверных ПИН, нужен ли захват карты — все решает хост. Если хост не проинструктирует банкомат захватить карту, он ее не захватит, будь она хоть десять раз фальшивая, украденная и потерянная.
6. Чиповые карты
Что делать с чиповыми картами, если не удалось прочитать чип — зависит от настроек сценария. Может предлагаться более узкий круг услуг, а может просто отказать обслуживать. Тоже самое касается карт других банков.
7. Максимум в 40 купюр для выдачи и алгоритм выдачи
Какой алгоритм выдачи использовать и откуда банкомат его узнает — опять же, полностью зависит от настройки. Конечно, сейчас, в эпоху повального интернета, хосту выгоднее самому выполнять все расчеты, а банкомату только выдавать команды. Однако, например, Kaliginte-объект для управления CashDispenser-ом (устройством выдачи наличных) также умеет рассчитывать покупюрную сумму выдачи по разным алгоритмам. В нашей системе мы не используем эту возможность. Опять же, позволять пользователю выбрать алгоритм выдачи, или, как кто-то говорил в комментариях, даже конкретные номиналы купюр — целиком и полностью зависит от желания банка создать такой сценарий (ну и от возможностей ПО, конечно же).
Ограничение в 40 купюр действительно идет от физических ограничений — пачка из 40 банкнот почти в сантиметр толщиной. Про то, что банкомат просто откажет выдавать сумму, которая не сможет быть физически выдана за раз, с невразумительной ошибкой — вина разработчика сценария — что не предусмотрел внятного сообщения о причине. С Kalignite-ом все вообще просто, это обычный HTML, как я уже выше говорил, фактически локальный сайт, а для NDC/DDC банкоматов ответ хоста может содержать обновленные экраны, текст на которых, опять же, определяет хост… Протокол Triton-а победнее, да и кодов ошибок у него мало, но Triton-ы в России, кажется, не очень распространены.
8. Операционная система
На тех, на которых мне доводилось тестироваться, стоит Windows XP. А тестировался я с Kalignite-овским сценарием, с NDC и DDC банкоматами.
Ну вот. Надеюсь, было интересно и хаоса в головах поубавилось. Основная мысль, которую я хотел донести — настраивается абсолютно ВСЕ. Естественно, где-то меньше, где-то больше, но это больше касается уже более глубоких нюансов, чем те, что видны с первого взгляда.
Как работает банкомат: факты, которых вы не знали
Советы и секреты
Автор ПапаБанкир.ру На чтение 10 мин. Опубликовано 5 сентября, 2021
Банковские карты прочно вошли в нашу жизнь. А если есть карты, значит, приходится сталкиваться с банкоматом. Сейчас банкомат – это аппарат, который работает со всем функционалом карты. Однако раньше все было по-другому. Изначально банкомат, или АТМ (Automated Teller Machine), работал только с выдачей наличных. Итак, мы расскажем, как работает банкомат.
Датой появления первых банкоматов считают 1967 г. Изначально клиенты получали деньги не по картам, а по чекам, которые им выдавали банки. Позже, в 1972 г., появились пластиковые карты и банкоматы, которые с ними работали. Технологии со временем развивались, программное и аппаратное обеспечение достигло такого уровня, что современные банкоматы способны заменить целое отделение банка с сотрудником. Так банкомат превратился из простого автомата для выдачи денег в компактный, но мощный комплекс по обслуживанию клиентов.
Несколько крупных компаний производит современные аппараты АТМ-NCR, Diebold, WinCor, Nautilus… У каждой из них свой подход к функционалу банкомата. Но все же условно все машины можно разделить на три вида:
- Классические устройства, которые работают только на выдачу наличных.
- Cash-in-устройства – банкоматы, которые работают и на прием, и на выдачу денег.
- Recycle ATM – самый современный вид банкоматов. Это модернизированные cash-in устройства, которые имеют свои особенности. Как же работает такой банкомат?
Следует отличать платежные терминалы от банкоматов. Терминал самообслуживания может только принимать наличные, устройство его упрощено. И хотя принцип работы похож на устройство cash-in и старшего поколения АТМ, платежные терминалы не принято относить к банкоматам.
Внутреннее устройство банкомата
В банкомате любой категории можно условно выделить две части: наружная верхняя (техническая) и сейф.
Технический модуль обязательно включает в себя:
- экран;
- принтер печати чеков;
- pin-pad (клавиатура);
- карт-ридер.
Также в устройстве технического блока могут быть такие компоненты:
- Журнальный принтер (уже несвойственно современным аппаратам, раньше этот принтер печатал логи работы банкомата для каждой совершенной операции, сейчас эта информация представляется в электронном виде).
- Системный блок (есть в каждом автомате, но все чаще размещается в сейфовом блоке).
- Клавиатура на экране (уходит в прошлое с развитием сенсорных технологий).
- Камеры видеонаблюдения (более оправданно использование внешних камер, при порче банкомата злоумышленниками камеры не пострадают).
Самая главная часть банкомата находится внутри, в сейфе. Это диспенсер. Без него не работает ни один банкомат. Главное предназначение диспенсера – подготовка денег для выдачи. Наличные хранятся в специально предназначенных кассетах по определенному номиналу, по запросу диспенсер набирает и выдает нужную сумму.
Операции, которые выполняет банкомат
Кассеты, в которых хранятся бумажные деньги, вмещают, как правило, до 2500 банкнот. Внутри банкомата обычно 4-6 таких кассет.
Банк гарантирует подлинность денег в банкомате. Перед тем как зарядить кассеты, все банкноты несколько раз проходят проверку разными сотрудниками. Потом кассеты с деньгами опечатывают.
В каждой кассете находятся деньги только определенного номинала. Если кассета предусмотрена для купюр 50 руб., то зарядить ее купюрами в 500 руб. не получится. Как будет работать банкомат, если перепутать деньги по номиналу? Аппарат просто не станет выдавать деньги. Поэтому историям об ошибках банкоматов и путанице с купюрами не стоит верить.
Есть банкоматы, которые работают на прием денег. Например, при пополнении карт. Для принятых купюр есть отдельная кассета. Все деньги, попадающие туда, обязательно проверяют в банке. Ситуация, когда принятые купюры тут же выдаются клиентам, – исключена. Прежде чем попасть в оборот, все банкноты проходят тщательную проверку.
Банкомат – умное устройство. Все данные принятых купюр, данные каждой карты и проведенных операций сохраняются. Вся эта информация отправляется в банк и анализируется. Также банкомат посредством встроенной камеры записывает каждого клиента. Эти записи тоже остаются в базе данных. Таким образом, банк контролирует все операции с картами и предотвращает мошеннические действия.
Зачислить на счет поддельные деньги практически нереально, но если такое произошло, то банк об этом сразу узнает. Благодаря базе данных будет известен номер паспорта владельца счета и запись с камеры банкомата. При обращении в полицию вычислить злоумышленника окажется просто.
Банкомат автоматически считает остаток купюр в кассетах. При запросе суммы, превышающей наличие банкнот в сейфе, аппарат просто откажет в проведении операции. При выдаче наличных устройство обязательно все купюры пересчитывает.
С какими суммами работает банкомат? Обычно в кассеты заряжают больше миллиона рублей, бывает, что сразу 2-3 миллиона. Больше денег оказывается внутри автомата в дни авансов и зарплаты населения. Поэтому целесообразно подгадывать снятие крупных сумм именно в эти даты – 5 и 25 числа каждого месяца. Стоит учесть, что чем более людное месторасположение банкомата, тем быстрее закончатся деньги внутри него.
Интересное видео, показывающее, как работает банкомат внутри:
Что еще интересно о работе банкомата
Как происходит набор суммы для клиента внутри банкомата? Извлечь банкноты из кассет устройство может двумя способами. При механическом (Winkor, Diebold) способе резиновые колесики слистывают крайнюю купюру в общей пачке. Дальше эта купюра из тракта попадает в специальный отсек с помощью ремней. Там скапливаются купюры различного номинала из разных кассет и формируется сумма для выдачи клиенту.
При открытии шаттера (заглушка, которая защищает систему выдачи денег от внешних воздействий) деньги при помощи ремней выходят из сейфа. Забрать банкноты нужно за 30 секунд, иначе банкомат утягивает их внутрь и помещает в реджект-кассету.
При вакуумном способе извлечение купюр из кассет используются присоски, а не резиновые колесики, слистывающие купюру. Далее весь механизм перемещения банкнот в накопительный отсек одинаков.
Бывают и погрешности в работе аппаратов. Купюры могут застрять на ремнях, замяться, порваться. В этом случае диспенсер выдает ошибку, и банкомат останавливает работу. Иногда случается, что в сейф банкомата пробираются грызуны, и при движении ремней они, к сожалению, гибнут.
В сейфе находится еще одна важная деталь – плата спецэлектроники. Она связывает работу диспенсера и системного блока. Плата общается со всем оборудованием: клавиатурой, принтерами, диспенсером. А системный блок напрямую связан только с сетевой картой, что позволяет передавать данные с банкомата в процессинговый центр.
Как работают сash-in-банкоматы на прием денег? Кроме диспенсера в их устройстве есть модуль, который забирает банкноты. Внутри всего две кассеты: для приема наличных и диверт-кассета. Причем может быть даже два типа последней, или одна кассета может иметь два отделения (одно – реджект – для испорченных, слипшихся купюр; второе – ретракт – для не забранных клиентом). Это необходимо для разделения бракованных (мятых, рваных, грязных) и фальшивых купюр от нормальных, но забытых в диспенсере клиентом.
Кроме того, все банкноты проверяются на подлинность специальным модулем. Это устройство представляет собой узкий ход высотой в одну купюру. Расположенные внутри датчики настроены на разные критерии определения подлинности. Поэтому провести в банкомат фальшивую купюру очень непросто.
Несколько интересных фактов о том, как работает банкомат
Работа банкомата скрыта от наших глаз, и тем интереснее факты о нем:
- Банкомат может выдать за одну операцию до 40 купюр.
- У клиента есть 30 секунд, чтобы забрать свои деньги, иначе банкомат их затянет внутрь и поместит в диверт-кассету.
- Банкоматы «боятся» холода. При низких температурах ниже минус 10-15 градусов устройства нередко выдают ошибки и зависают, выполнение операции может затянуться или внезапно прерваться. Чтобы гарантированно получить свои деньги, зимой лучше пользоваться банкоматами, которые стоят внутри теплых помещений.
- Банкоматы удароустойчивы. За счет большого количества стали (больше 100 кг на один аппарат) выдерживают даже 22-тонный удар.
- Грабители практически никогда не взламывают банкоматы. Антивандальная система устроена таким образом, что при взломе все купюры повреждаются специальной краской. Мошенники обычно устанавливают считыватели, липкие ленты на внешнюю сторону банкоматов.
- Что будет, если набрать ПИН-код в обратном порядке при ограблении рядом с банкоматом? Многие верят, что придет помощь. Это всего лишь миф. Несмотря на то что идею запатентовали, ни один банк с 1998 г. так ею и не воспользовался.
Как работает банкомат с банком и без электричества
Банкоматы и банки тесно связаны. Все данные операций поступают в банк посредством шифрованного канала. Для получения денег нужно, чтобы банк одобрил это снятие.
Однако бывают ситуации, когда банк одобряет снятие наличных, но банкомат деньги не выдает. В этом случае нужно позвонить по телефону горячей линии и описать ситуацию. Обычно в банке уже знают о такой проблеме и вернут деньги без промедлений. Либо нужно будет написать заявление на возврат, и всю сумму вернут в течение недели после инкассации и пересчета банкнот внутри аппарата.
Работает ли банкомат без электричества? Нет, без электричества банкомат отключится.
В аппаратах старого образца после отключения питания карта остается внутри, при появлении электричества карта выходит на несколько секунд, если ее не забрали, то банкомат снова ее прячет. Достать такую карту сможет только инкассатор. Современные банкоматы способны выдавать карту даже без подключения к электросети.
Но операции по выдаче денег отменятся, если не будет электричества. И не важно, старый банкомат перед вами или новый.
Хорошо, что антивандальная система работает, даже если нет света.
На любое незаконное действие по отношению к банкомату (наклон, сдвиг или удар по корпусу), а также при повышении температуры (на случай пожара) сработают датчики, расположенные внутри сейфа и компьютерного отделения. На сигналы датчиков оперативно реагируют службы спецподразделений.
На всякий случай предусмотрены и активные системы защиты. Просто вскрыть аппарат и забрать деньги не получится. Неожиданностью для грабителей может стать громкая сирена или едкий дым. Если злоумышленники решат взорвать банкомат и закачают внутрь взрывоопасное вещество, сработает система, и взрыв будет предотвращен с помощью газа-нейтрализатора. Мало того, банкомат в случае взлома все купюры пометит несмываемой краской.
Как защитить себя от банкоматов, которые «работают» на мошенников
Мошенники прекрасно знают, как работают банкоматы в случае взлома. Поэтому пытаются украсть деньги не из сейфа, а с карт клиентов. Для этого выдумывают способы кражи личных данных: номеров карт, ПИН-кодов. Например, злоумышленниками широко используются накладки и скиммеры.
Технологии позволяют мошенникам модернизировать скиммеры, распознать их все труднее и труднее. Чтобы обезопасить себя, деньги лучше снимать в аппаратах, установленных в банках. Камеры там направлены непосредственно на банкомат, и это некоторая гарантия того, что никаких незаконных устройств на банкомате нет.
Под прицел грабителей попадают банкоматы на улицах, в небольших магазинах, на рынках. Оценивайте место и надежность самого аппарата, будьте внимательны и бдительны.
Кроме кражи средств с вашей карты, мошенники могут украсть деньги у вас уже после получения их из банкомата.
Большинство банкоматов оборудовано выпуклым зеркалом, в которое видно, что происходит сзади вас. Так вы будете готовы, если вдруг кто-то будет подходить со спины или поджидать вас.
Будьте осторожны при вводе ПИН-кода. Даже если никто не смотрит на ваши действия, камера злоумышленников может быть направлена на цифровую панель для считывания ПИН-кода.
На панели банкомата есть кнопка «Отмена». Воспользуйтесь ею и отмените операцию, если вдруг почувствовали опасность или заподозрили неладное. Просто заберите карту и уйдите.
Если банкомат работает некорректно, вызывает подозрение, по номеру горячей линии позвоните в банк. Специалист банка даст рекомендации, как поступить в этой ситуации.
Планируйте крупные покупки заранее, узнавайте у продавца условия расчета. Возможно, оплатить картой будет проще и безопаснее, чем рисковать и снимать крупную сумму в банкомате.