Мне представилась возможность, а мой опыт подсказывает, что если есть возможность, лучше ею воспользоваться, раз уж она есть.
Lock, Stock and Two Smoking Barrels
О том, как мы создавали сеть платежных терминалов, Хабр уже знает — мы писали об этом летом прошлого года. Сегодня мы решили рассказать, что же внутри терминалов, рядом с терминалами и вокруг них. А интриги, что находится внутри, никакой нет — внутри каждого платежного терминала «МегаФона» находится компьютер и периферия. Но когда в одной точке сходятся достаточно много факторов, которые необходимо увязать в работоспособную систему, то случаются мудреные экшены, достойные внимания Гая Ричи.
Про характеристики встроенного компьютера терминала также уже писалось. Напомним, что это довольно производительная система, работающая под управлением Windows Embedded Standard 7
• Процессор: Intel Original LGA-1155 Pentium G2130 (3 Ггц)
• Материнская плата: Asus P8B75-M Soc-1155 iB75 DDR3 mATX AC`97 8ch GbLAN SATA3 VGA+DVI+HDMI
• ОЗУ: DDR3 2048Mb 1333MHz Crucial (ST25664BA1339)
• Видеокарта: Palit PCI-E NV GF210 512Mb 32bit (TC) DDR3 625/589
В прошлом топике читатели предлагали сделать на них ферму по майнингу биткоинов, но мы не стали пробовать.
Компьютер упакован в специально разработанный корпус напольного исполнения с двумя мониторами:
Корпус крепкий, вандалоустойчивый, но не предназначен для использования на улице. Ко всем испытаниям улицы он не предназначался и работает только внутри помещений. Два монитора нужны исключительно в маркетинговых целях: во-первых, для отличия от других терминалов, а во-вторых, на дополнительном большом экране проигрывается реклама, которая, опять же привлекает внимание, и, конечно же, приносит доход от прокручиваемых роликов.
При проектировании программно-аппаратного комплекса терминалов мы заложили, что обновляться они будут «on-the-air» — на лету, без выезда специалистов на место, из «центра». Причем, теперь обновляется не только собственно операционная система, но и firmware устройств комплекса — купюроприемников, например. Ввод новой функции, система мониторинга, финансовая отчетность — любые изменения делаются одновременно на всю сеть. И защищенность от мошеннических действий тоже увеличивается.
Сцена: «Вестибюль»
Театр начинается с вешалки, кино с крика «Мотор!», а платежные терминалы начинаются с купюроприемника.
Наша система оборудована валидатором CashCode (точную модель называть не станем) довольно известной на рынке канадской компании Crane Payment Innovation (CPI). Утверждается, что CPI на российском рынке занимает ведущее место и всего продано уже более 200 тысяч устройств.
Правильное распознание купюр это очень важная, можно сказать, ключевая функция платежного терминала. Не смотря на то, что все большую распространенность получают банковские карты, но россияне все еще предпочитают использовать наличные. Центробанк РФ регулярно публикует статистику оборачиваемости наличных денег, и, как видно из графика, — количество денег, по меньшей мере, не убывает:
Некоторых может заинтересовать принцип работы купюроприемника — как автомат отличает настоящие деньги от бумаги? Отвечаем: довольно просто — датчиками. Но, разумеется, аппаратура не занимается распознаванием образов, чтобы прочитать номинал каждой отдельной купюры — все намного проще. Купюры разного достоинства отличаются, во-первых, размерами и весом, во-вторых, специальными метками, видимыми в инфракрасном или ультрафиолетовом свете, и, в-третьих, на купюрах есть магнитные метки. Процесс и алгоритмы отбраковки купюр довольно интересны (например, о машиночитаемых признаках различных купюр можно прочитать на сайте Центрального Банка РФ) или даже посмотреть, но это не цель нашего рассказа — мы можем лишь сказать, что используемые в наших терминалах валидаторы распознают практически все фальшивые купюры. Но между мошенниками и «монетными домами» идет давняя, никогда не прекращающаяся война, как «щит и меч» и с переменным успехом. Мы не отстаем от новинок, и наши устройства оперативно получают новые данные для их распознавания, хотя мошенники используют довольно изощренные методы подделки. К примеру, некоторое время был такой способ превратить одну пятитысячную купюру в две:
Мы считаем, что надежность купюроприемников, используемых в терминалах, достаточна для промышленной эксплуатации.
Вот так выглядит схема валидатора купюр, взятая с сайта поставщика устройств:
В комплекс «прием наличных», надо отметить, входит не только валидатор купюр, а еще и очень нужные и полезные устройства, прилагаемые к нему, — стеккер (сортировщик и укладчик купюр) и, разумеется, специальный сейф, где хранятся накопленные деньги.
Но было бы наивным считать, что злодеи ограничится только фальшивыми купюрами — имеется еще множество способов обмануть автоматические приемники денег, о которых не принято распространяться в СМИ. К примеру, так называемая «рыбалка» (за рубежом это тоже называется fishing) — мошеннический способ обмануть автоматику приемника наличных денег, суть которого заключается в вытягивании считанной купюры назад за заранее приделанную леску-поводок. Процесс мошенничества очень похож на рыбалку. Вот так выглядит купюра, подготовленная к «рыбалке» и не прошедшая эту операцию:
И борются с ним аналогично — подсечкой. Причем, существует несколько вариантов борьбы – грубый «железный», когда на пути протяжки купюры встраиваются специальные гребенки с острыми краями, которые механически режут несанкционированные модификации казначейских билетов. Производитель не предоставляет подобные доработки.
Другой способ более цивилизованный: попытка вытянуть купюру после ее считывания фиксируется специальным датчиком, и автоматика подает усиленный импульс на двигатель валиков — всевозможные «поводки» просто обрывает, при этом купюра не учитывается в сумме зачисленных денежных средств. Кроме того, собственно купюра еще и укладывается в считыватель особым образом, исключающим ее изъятие — обратите внимание, что валидатор вытянут вниз. Купюра сначала протягивается вперед, а потом под острым углом — вниз. Вытянуть обратно ее будет затруднительно.
Сцена «Бар»
Герои Гая Ричи не только крадут (не самым результативным способом, на самом деле), но еще и мошенничают с налогами. Терминалы «МегаФона» в этом отношении весьма законопослушные — по каждой операции пользователю выдается фискальный чек. Чеки печатаются на специальном термопринтере, а все операции записываются на фискальный регистратор. Марка принтера: VKP-80II, а фискального регистратора — PayVKP-80K.
На самом деле, это довольно простое устройство, рассказывать о котором, впрочем, можно довольно долго:
Но устройство довольно известное и распространенное. Интереснее правила работы с фискальными чеками, принятыми в нашей компании. «МегаФон» отчитывается по каждой транзакции, каждому платежу, и все операции записываются в ЭКЛЗ (расшифровывается как Электронная Контрольная Лента Защищенная) — специальный зарегистрированный в ФНС «черный ящик», который устанавливается в каждый терминал и регистрирует все операции без возможности их изменения, что обеспечивает надежный механизм для отчетности.
Во-первых, чек является официальным документом, с помощью которого вы сможете отчитаться, например, в бухгалтерии. Поэтому, в случае, если в конкретном терминале закончилась лента — он перестает принимать платежи.
Во-вторых, в случае сбоя или ошибки (вы никогда не ошибались при вводе телефонного номера?), чек служит документом, по которому будет проведена сверка и разрешены все проблемы — чек является первичным документом. Поэтому каждый чек содержит уникальный номер каждой транзакции, по которой можно будет разрешить недоразумения, которые могут случиться.
В-третьих, на чеке имеются контактные телефоны службы технической поддержки, где пользователю помогут с разрешением проблем с платежом.
И, в-четвертых, мы обеспечиваем исполнение всех законов Российской Федерации, связанных с приемом наличных денег. Сегодня еще встречаются платежные терминалы, которые не предоставляют фискальных чеков, что является нарушением федерального закона от 22 мая 2003 г. N 54-ФЗ «О применении контрольно-кассовой техники при осуществлении наличных денежных расчетов и (или) расчетов с использованием платежных карт». Мы чтим законы и исполняем все их требования.
Разумеется, устройство терминала не ограничивается принтером и купюроприемником. Терминал еще содержит автономный источник питания, который, по нормативам, поддерживает работу устройства в течение не менее четырех часов. Имеется модуль связи в дополнение к штатному Ethernet — GSM/GPRS-модем, имеется небольшая клавиатура для ввода цифровых данных (пин-пад).
Но мы подходим к развязке.
Сцена: «Стрельба»
Эдд играет в карты с тех пор, как смог поднять колоду. Вскоре он обнаружил, что имеет огромное преимущество. Дело не в том, что он хороший игрок и не в том, что он хорошо считает при игре, дело в том, что он прекрасно отслеживает реакции людей, как бы они их не скрывали, а реакции есть у всех, особенно когда дело касается денег.
Lock, Stock and Two Smoking Barrels
Терминалов платежных систем много. Они разные и от разных операторов. Отличие сети терминалов «МегаФона» в том, что помимо простых платежей с помощью наличных в пользу оператора связи (кстати, мы принимаем платежи и для других операторов и без комиссии), или оплаты других услуг, наши терминалы умеют работать с картами оплаты проезда в общественном транспорте. Вы можете пополнить баланс транспортной карты «Тройка» для проезда в общественном транспорте Москвы и Московской области.
Для пополнения карты «Тройка» есть два варианта, которые условно можно назвать «прямое» и «удаленное» пополнение. Оба варианта доступны на терминалах «МегаФона».
Прямое пополнение
Пополнить «прямо» «Тройку» очень просто: 1. или введимномер карты в терминале, 2. или подносим карту к считывателю терминала, вносим денежные средства и, вуаля! — можно ехать по своим делам.
Просто на словах, но сложно внутри: для взаимодействия с транспортными картами используется технология NFC (Near field communication).
Принцип действия бесконтактных RFID-карт, которыми и являются карты «Тройка» следующий:
«Считыватель» создает переменное магнитное поле заданной частоты. Контур карты, поднесенной к считывателю, настроенный в резонанс, создает ЭДС и в цепи появляется ток. Этот ток выпрямляется диодом и накапливается конденсатором С2. Накопленная на конденсаторе С2 энергия используется для питания чипа, который содержит микропроцессор и память.
Энергии, надо сказать, вполне достаточно, чтобы засветился простой светодиод:
Колебательный контур, состоящий из емкости конденсатора C1 и индуктивности антенны, управляется полевым транзистором, на затвор которого чип передает управляющие импульсы. Но в отличие от считывателя, у карты не хватает мощности для создания ответной электродвижущей силы, которую смог бы уловить считыватель. Поэтому полевой транзистор просто «тормозит» колебательный контур, а информацию считыватель получает в результате увеличения потерь в собственном активном колебательном контуре.
Тонкость работы с такими картами, заключается в том, что память чипа карты очень ограничена — используемые карты Mifare Classic (или Mifare Plus) имеют всего 7 байт для неизменяемого уникального кода карты и еще 1 или 4 КБ (в зависимости от типа карты) пользовательских и конфигурационных данных карты. Для защиты используется проприетарный алгоритм шифрования Crypto-1, который оказался слишком простым и слабо защищенным от подделки. Эксперименты над защищенностью карт «Тройка» уже описаны Хабражителями.
Защита всей системы в итоге выполнена в нескольких уровнях, и прежде всего, в организационных мероприятиях и с помощью перманентного мониторинга использования карт.
По этому пополнение «Тройки» через платежный терминал «МегаФона» происходит по специальному алгоритму, учитывающему требования безопасности.
Итак, карта содержит уникальный криптоидентификатор и банк памяти, который может содержать количество проездных билетов и/или денежную сумму. На карте хранятся только численные показатели, а собственно информация содержится на серверах транспортной системы. Поэтому пополнение карты происходит только онлайн, причем, пока с терминала можно пополнять только баланс. За билетами придется все же обращаться в кассы Московского Метрополитена. Но мы совместно с Метрополитеном работаем над расширением возможностей сервиса.
Для пополнения баланса «Тройки», пользователь прикладывает карту к считывателю NFC и терминал получает показатели карты.
Далее происходит авторизация собственно терминала на сервере транспортной системы, и аутентификация конкретной карты. В ответе приходит следующая информация:
Сумма денежных средств на карте
Количество поездок
Разрешение на запись конкретной карты
Максимальная сумма для записи.
Первые два пункта понятны и просты, а вот третий и четвертый необходимо пояснить. «Разрешение на запись» связано с борьбой со фродом. Если конкретная карта просто заподозрится в мошенничестве, она тут же блокируется. Теперь записать какую-либо информацию на нее невозможно — система блокирует. Пользователю распечатывается специальный чек (помните про принтер?), с которым необходимо обратиться в кассы Метрополитена по соответствующим реквизитам. Причин для блокировки довольно много, например, клонирование, которое вычисляется попыткой вторично воспользоваться картой быстрее, чем установлено системой, или если пользователь слишком быстро, по мнению системы, перемещается по городу, часть из них обсуждалось в статье, которую мы приводили ранее. Достаточно «необычного поведения» и система может поместить вашу карту в «черный список».
Максимальная сумма записи — это лимит на пополнение карты. В настоящее время он установлен в размере 3000 рублей для всех карт — большую сумму система записать не даст.
После того, как вся информация о конкретной карте была получена терминалом, происходит следующее:
В интерфейсе показывается сумма, которую можно принять на карту (не превышающую лимит).
Пользователь вводит сумму пополнения.
Сумма для зачисления, плюс, согласованная сумма уже имеющаяся на карте отправляется на сервера Метро.
Система «Тройки» отвечает терминалу одобрением транзакции и высылает битмап, который необходимо записать в память карты.
В случае возникновения ошибки (например, карту убрали до того, как закончится процесс записи битмапа) — терминал выводит чек ошибки. К сожалению, исправить ошибку можно только в пассажирском агентстве.
Удаленное пополнение
Карту “Тройка” можно пополнять и удаленно. Нет, это не значит, что вам совсем не нужно будет обращаться к терминалу — для возможности работать оффлайн при рассчетах в общественном транспорте, где нет постоянной связи с транспортной системой Метрополитена, необходимо записать битмап “электронного билета” в память карты. А это можно сделать только физически поднеся карту к считывателю. Но деньги на счет карты можно перечислить с помощью современных телекоммуникационных средств — с помощью SMS или с использованием популярных платежных систем.
Принцип “удаленного пополнения” следующий: переводим деньги на виртуальный счет “Тройки” в системе Метрополитена, а записать пополнение на карту уже потом, при посещении Метрополитена или в салоне МегаФон по пути на остановку автобуса.
Пополнить карту через веб-интерфейс можно на сайте «Тройки».
А для того, чтобы пополнить “Тройку” с лицевого счета абонента сотовой связи нужно отправить SMS по номеру 3116 с текстом:
troika <номер карты> <сумма пополнения>
Так выгляжит этот процесс на вашем телефоне:
1. Отправляем номер карты и суммы «troika…»
2. В ответ приходит СМС с переменным кодом, который необходимо подтвердить в ответном сообщении. Это сделано с целью защитить ваши деньги от случайного списания:
3. Через непродолжительное время приходит СМС с сообщением, что платеж сформирован:
Деньги спишутся с с лицевого счета абонента МегаФон и будут зачислены в систему «Тройки» без комиссии.
4. Завершающий этап — подходим к терминалу “МегаФон” либо к информационному терминалу Метрополитена, и записываем сформированный битмап на карту. Никакого ввода дополнительной информации не требуется — система уже знает уникальный номер карты и сумму к зачислению.
Наш терминал:
Московского Метрополитена:
Пока терминал остается наиболее привычным способом пополнения, которым можно воспользоваться не спускаясь в метро, например по пути к остановке автобуса или трамвая, что делает использование «Тройки» значительно доступнее.
Кстати наши терминалы установлены практически в каждом салоне МегаФон. Найти ближайший салон можно на карте или запросив список с помощью USSD-команды *123#
Финальная сцена «Квартира после разборки»
Перечислены не все периферийные устройства, которые имеются внутри платежного терминала «МегаФон». Пока мы не рассказывали вам о том, как планируем использовать NFC для связи с мобильными телефонами и можно применять сканер штрих-кода.
О них мы расскажем чуть позднее в нашем хабраблоге.
Автор: MegaFon