Емуляція банківської карти на телефоні



HCE (Host-based Card Emulation) — це технологія, яка дає можливість писати софт, який не вимагає для виконання виділеного криптопроцесора, щоб забезпечити сеанс зв'язку з платіжним терміналом. Додаток виконується на основному процесорі мобільного пристрою, в оточенні операційної системи телефону.

HCE для NFC має відкриту архітектуру, що дозволяє емулювати не тільки банківські карти, але і карти програм лояльності, транспортні карти, перепустки і так далі. Технологія дозволяє помітно прискорити процес впровадження платіжних NFC-сервісів, тому що не потрібно координувати і погоджувати дії з виробниками телефонів, крім того, вирішуються багато проблем сумісності.

Ми зробили такий HC-емулятор у своєму додатку. До появи технології HCE інформацію для здійснення NFC-транзакцій в мобільних пристроях можна було зберігати трьома способами: або на SIM-карті (принцип SIM centric NFC), або в спеціальному елементі на телефоні (Embeded Secure Elements, eSE), або на спеціальній MicroSD.

Як було раніше?

У класичних способів до HCE є істотні недоліки. При підході SIM centric потрібні спеціальні SIM-карти, які значно дорожче стандартних карт, обов'язкова процедура відвідування користувачем точки продажів для заміни SIM-карти і т. д.
При eSE-підході складнощів і обмежень ще більше — моделей телефонів, що мають спеціальний блок для зберігання інформації про карту, на ринку вкрай мало, вартість персоналізації елемента в телефоні дуже висока, з'являється залежність від виробника телефону провайдера послуг персоналізації «по повітрю» (Over-The-Air Service Provider). Ці обмеження, апаратні та організаційні бар'єри до останнього часу не давали можливості зробити сервіс безконтактних платежів за допомогою мобільних пристроїв масовим.
Раніше, щоб запустити сервіс NFC-платежів, його провайдеру потрібно було домовлятися з вендором про отримання ключів для запису на телефон платіжних даних. Деякі виробники телефонів надавали власний хмарний сервіс, з яким провайдера платіжного сервісу необхідно було інтегруватися, передавати йому платіжні дані для подальшої заливки цих даних в телефон. По шляху «закритою» технології зараз пішов і Apple — для роботи платіжного додатка використовується криптопроцессор, ключі є тільки у виробника апарату, і тільки він може завантажувати платіжні дані.

Для користувачів основною незручністю цих hard підходів є прив'язка системи безпеки до апаратним засобам а, отже, неминуча необхідність зміни SIM-карти або навіть телефону для підключення сервісу NFC-платежів.

Google: ми підемо іншим шляхом

Інший підхід обрали в Google, розсудивши, що залежність від вендорів (виробників телефонів і Secure Elements) радикально знижує адаптивність технології і перешкоджає масового тиражування платіжних сервісів. Розсудивши так, Google реалізувала підхід, при якому NFC-контролер безпосередньо пов'язаний з основним процесором, безпосередньо забезпечує роботу платіжного додатка, зберігання даних, підпис транзакцій і т. д. А інформаційна безпека забезпечується програмними засобами.

У грудні 2013 року Google випустила версію Android 4.4 KitKat, в якій була реалізована можливість взаємодії NFC-контролера не тільки з SE, але і з звичайним додатком в телефоні. Простіше кажучи, відпала необхідність промислової прогрузки інформації в спеціальні пристрої, стало досить просто встановити на смартфон платіжний додаток, що працює за технологією HCE.

Як це працює?

У нас є карта «Білайн» — звичайна debit MasterCard, яку можна отримати безкоштовно в будь-якому салоні «Білайну». Щорічна абонентська плата за обслуговування нашої карти не стягується. Карта працює як звичайний MC по всьому світу, тільки при здійсненні покупок повертається від 1,5% витраченої суми на рахунок у вигляді бонусів. Накопичені бонуси можуть бути використані при оплаті послуг мобільного зв'язку, проводового інтернету, різних товарів в наших партнерських магазинах.

Карта емулюється на телефоні.

По суті, технологія HCE дає можливість емулювати в телефоні безконтактні смарт-карти. У нашому випадку віртуальна карта є додатковою функцією фізичного носія — пластикової картки «Білайн». Власник такої картки, що є одночасно власником телефону на платформі Android KitKat, оснащеного NFC-модулем, встановлює на нього мобільний додаток карти «Білайн». При вході в мобільний додаток для активації функції безконтактних платежів досить ввести ЕАN карти і пароль. Додаток перевіряє наявність/доступність HCE на пристрої, і якщо все ок, користувачеві пропонується підключити функціонал.
Якщо користувач підтверджує свою згоду на підключення сервісу, відповівши на отриману sms введення одноразового паролю, то здійснюється емісія віртуальної карти — в мобільний додаток з процесингового центру завантажуються дані, необхідні для здійснення NFC-платежів. Власне, на цьому все — телефон став інструментом безконтактної оплати.





На телефоні HCE функціонує як фоновий сервіс, що дозволяє використовувати HCE, не запускаючи програму для цього взаємодії. При взаємодії з терміналом На необхідно вибрати програму, якому відправити дані для обробки. Такий вибір робиться на базі Application ID (AID), який містить до 16 байт інформації, і відомий для популярних платіжних систем, таких як Visa або MasterCard. Додаток може обробляти кілька різних AID, які об'єднуються в групу. Кожна група може бути пов'язана з певною категорією. Зараз визначено дві категорії: CATEGORY_PAYMENT (для додатків оплати) і CATEGORY_OTHER (для інших). У телефоні може бути встановлено кілька додатків для одного і того ж AID, для різних категорій може бути застосована різна політика вибору програми, для платіжних додатків визначається одне активне додаток за замовчуванням.

Для реалізації HCE нам було необхідно розширити сервіс HostApduService і реалізувати методи: processCommandApdu() — викликається, коли додаток взаємодіє з терміналом і onDeactivated() — якщо зв'язок з терміналом втрачена, або інший NFC-рідер намагається встановити з'єднання. Даний сервіс декларується в маніфесті програми і повинен містити intent-фільтр для SERVICE_INTERFACE, доступ android.permission.BIND_NFC_SERVICE і метадані, що визначають, які AID обробляють наш сервіс. Також тут ми можемо визначити, чи розблокування пристрою для здійснення оплати з його допомогою. Дозвіл BIND_NFC_SERVICE гарантує, що всі взаємодії з NFC-модулем будуть здійснюватися через операційну систему Android. А безпека збережених даних базується на стандартній системі «пісочниці» для програми.

Схема взаємодії елементів у процесі безконтактної оплати за технологією HCE

Елементами системи є:
NFC-контролер — передає команди від терміналу платіжним додатком.
Мобільна платформа — серверна частина мобільного банку, що включає функції управління платіжним додатком.
Хост емітента — процесинговий центр емітента, який для обслуговування мобільного додатка вміє взаємодіяти з мобільною платформою.
Хост еквайєра — процесинговий центр еквайєра.
При вчиненні безконтактної оплати термінал взаємодіє з NFC-контролером телефону по протоколу ISO 14443 (APDU T=CL).
NFC-контролер взаємодіє з Платіжним додатком по внутрішньому протоколом, специфікованому в Android 4.4 і вище.

Платіжний додаток отримує від терміналу ключові дані транзакції (сума, валюта, час операції, властивості терміналу тощо), проводить перевірку можливості здійснення операції і в разі успіху генерує унікальну криптограмму (ARQC) на унікальному секретному ключі Платіжного додатка. Дані, на основі яких розраховується криптограма, включають випадкове число.

В залежності від суми та властивостей терміналу у клієнта може бути запропоновано ввести пін-код, який вводиться клієнтом на терміналі (або пін-паді).

Термінал на хост еквайра формує авторизаційний запит, який включає ARQC і шифрований пін-код, якщо він був введений клієнтом.

Далі з хоста еквайєра авторизаційний запит через платіжну систему маршрутизируется на хост емітента, де приймається рішення про схвалення або відмову авторизації.

Перевірки на хості емітента включають:
1. Перевірку криптограми (ARQC).
2. Перевірку пін-коду (якщо він був введений клієнтом).
3. Перевірку правил обслуговування карти.
4. Перевірку лімітів картки і рахунку.
5. Перевірку анти-фродовых правил, включаючи специфічні правила для безконтактної оплати телефоном.

В результаті обробки авторизації на хості емітента формується відповідь, який по зворотній ланцюжку доставляється в термінал.

Що потрібно для використання сервісу в Росії

Для того щоб користуватися сервісом безконтактної оплати, необхідно в будь-якому офісі «Білайн» безкоштовно отримати передплачену картку «Білайн». Далі — скачати на Google Play мобільний додаток карти «Білайн» і активувати функцію безконтактної оплати. Апаратні та програмні обмеження: операційна система Android, версія не нижче 4.4, наявність в телефоні NFC-модуля.

Які ще є особливості?

Наприклад, якщо у користувача не один, а кілька телефонів на Android 4.4, то сервіс безконтактної оплати, прив'язаний до його основної карті, може бути встановлений на пристрої власника цієї картки. Це зручно, наприклад, для використання сервісу сім'єю. При цьому на одному телефоні може існувати тільки одна віртуальна картка.

При оплаті, коли телефон підноситься до терміналу, на екрані відображається сума покупки та інформація про успішність проведення платежу.
Оплата проводиться тільки при розблокованому екрані, тому важливо, щоб телефон був захищений паролем. При цьому сама програма може бути закритим. Видалення програми із телефону віртуальна карта блокується. При відновленні програми відбувається повторна емуляція карти, тому доведеться проходити процес налаштування безконтактної оплати з нуля. Повторна активація послуги потрібно також, якщо в додатку відключити сервіс безконтактної оплати. Однак видаляти додаток або відключати сервіс зовсім не обов'язково — для тимчасового блокування можна використовувати функцію «Призупинити безконтактну оплату».


Активність сервісу безконтактної оплати підтверджується помаранчевим кольором відповідної іконки

У чому профіт?

Отже, що нам дає сервіс безконтактної оплати за допомогою мобільного телефону? Можна забути вдома гаманець, залишити в квартирі паспорт або навіть водійське посвідчення, але майже з 100% вірогідністю стільниковий телефон буде при вас. А якщо на цьому телефоні інстальовано застосунок для безконтактної оплати, значить, ви завжди «при грошах».

Далі. NFC-транзакція — це миттєва оплата. Навіть для того, щоб розплатитися пластиковою карткою, її для початку потрібно витягти з гаманця, а перед цим — гаманець з кишені або сумки. При розрахунку готівкою додається момент перерахунку, передачі грошей, отримання і перевірки здачі і т. д. Транзакції до 1000 рублів, вчинені за допомогою NFC і HCE, навіть не вимагають введення ПІН-коду та розрахунок без всякого перебільшення відбувається в один момент і в один дотик.

Після здійснення транзакції на телефон приходить sms-повідомлення про операції та про залишок на рахунку, тобто ви завжди в курсі стану свого електронного гаманця.

До речі, цікава деталь — у додатку карти «Білайн» реалізована технологія єдиного Піна для декількох карт, в даному випадку — для основної картки «Білайн» і карти, эмулированной мобільним додатком. Тобто і при розрахунку за пластиковою карткою, і використовуючи сервіс безконтактних платежів, що ви вводите один і той же пароль.

Сервіс безкоштовний, жодних комісій за NFC-транзакції не стягуються.

Де можна платити?

Звичайно, розвиненість інфраструктури прийому безконтактних платежів залежить від конкретного регіону, однак сьогодні вже близько 5% платіжних терміналів вже оснащені функцією NFC. В масштабах всієї Росії це, за експертними оцінками, близько 30 тисяч пристроїв. Лідери ринку виробництва POS-терміналів — VenFone і Ingenico — вже не перший рік оснащують свої пристрої підтримкою NFC в якості базової стандартної функції.

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

Якщо говорити про конкретних точках, то це мережі, великі магазини, фаст-фуди, заправки. Mcdonald's, Starbucks, Subway, гіпермаркети «Ашан», О'КЕЙ, «Магніт», «Аероекспрес», великі мережі стільникового ритиейла, магазини глобальних виробників косметики та парфумерії, модні місця проведення дозвілля.

Безпека

Найбільш очевидне на сьогоднішній день тонке місце технології HCE — безпека. Дані, необхідні і достатні для здійснення NFC-платежів, зберігаються в пам'яті смартфона. Однак для мобільного додатка картки «Білайн» використовується комплекс заходів, які зводять до мінімуму ймовірність злому. Ми робили внутрішній конкурс на злам системи, з дуже хорошою винагородою, аналіз коду.

Розберемо деякі аспекти інформаційної безпеки технології HCE, реалізовані для мобільного додатка картки «Білайн».

Операції з заблокованого телефону неможливі. У цьому сенсі HCE-рішення захищене краще ніж звичайна пластикова картка з безконтактним інтерфейсом — щоб зробити платіжну операцію зловмисник повинен розблокувати телефон. У випадку звичайної карти — достатньо отримати саму карту. При використанні мобільного додатка картки «Білайн» неможливий, наприклад, сценарій, коли в метро в щільному потоці людей з віртуальної карти непомітно списують гроші, прикладаючи до кишені рідер.

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

Операції на суму понад 1000 рублів захищені онлайн пін-кодом, який вводиться в пинпад терміналу. Перехоплення пін-коду через злом програми неможливий — просто тому, що пін-код на телефоні ніколи не вводиться.

При втраті телефону порядок дій практично нічим не відрізняється від стандартних заходів, виконуваних при втраті звичайної банківської карти: дзвінок в контакт-центр, блокування карти «Білайн» за EAN, отримання в салоні зв'язку нової карти. На нову карту будуть перенесені всі залишки грошових коштів, бонуси і так далі. При цьому, природно, номер картки зміниться, а у зловмисника буде на руках телефон, в якому буде эмулирована стара карта, операції з якої зробити вже неможливо, оскільки вона заблокована.
До речі, слід звернути увагу ще на один нюанс, пов'язаний з безпекою технології NFC в цілому. Існує уявлення, що уразливим є сам сеанс передачі даних від смартфона до POS-термінала. Насправді кожна транзакція захищена унікальною криптограммой, без якої авторизація неможлива. З тих даних, які передаються по радіоканалу, практично неможливо отримати жодної інформації, яка допомогла б зловмисникам викрасти кошти з рахунку, підписавши інші транзакції.

Буде працювати цей сервіс на платформі iOS?

Apple пішли по шляху phone-based і використовують вбудований Secure Element, куди ніхто, крім Apple, карткові ключі завантажити не може. Тому єдиний реалістичний в даний час варіант — це інтеграція з новою технологією Visa Token Service (генерація тимчасових ключів для оплати), на основі якої Apple Pay, власне, і працює.

Прогнози

Можна прогнозувати, що ринок NFC-платежів в Росії переходить із стадії становлення в фазу активного росту. Зростає кількість телефонів, що підтримують технологію NFC, з'являються інтеграційні проекти, реалізовані спільно вендорами, платіжними системами і рітейлерами.

У I півріччі 2014 р. в Росії було реалізовано 1,2 млн. смартфонів, що підтримують технологію NFC. Це на 21% більше, ніж за аналогічний період минулого року. NFC-смартфони становили 14% від всіх продажів смартфонів в країні. Зрозуміло, що бурхливе зростання може бути обумовлений тільки зручністю застосування безконтактних технологій, а масовість сервісу може надати потужний драйвер. Такий, наприклад, як безконтактна оплата проїзду в громадському транспорті, насамперед у метрополітені.

Якщо ж говорити про ємності ринку NFC-платежів в Росії, то експерти називають цифру близько 15 млрд. рублів (оцінка агентства j'son & Partners).

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.