Платіжні картки міцно увійшли в наше життя. Ще зовсім недавно повсюдно використовувалися тільки карти з магнітною смугою. Сьогодні ж нікого не здивуєш картою з чіпом. Всім відомо, що чіпова, мікропроцесорна або, співзвучніша, платіжна EMV-картка - сучасний і надійний спосіб доступу до розрахункового рахунку. Вона безпечніша за карти з магнітною смугою і її практично неможливо підробити. Однак деталі реалізації «нутрощів» EMV-карти мало відомі. Всім кому цікаво як працює EMV-карта, чому технологія EMV забезпечує безпеку платежів і наскільки варто всьому цьому довіряти - ласкаво просимо під кат.
- 1. Введення
- 2. Автентифікація магнітної та EMV-карти
- 2.1 Автентифікація магнітної карти на основі статичних даних
- 2.2 Автентифікація EMV-карти на основі динамічних даних
- 3. Внутрішня структура і безпека EMV-карти
- 4. Дані EMV-програми
- 5. Безпека EMV-транзакції
- 5.1 Онлайн EMV-транзакція
- 5.2 Офлайн EMV-транзакція
- Діаграми SDA, DDA і CDA, EMV Book 2
- Ув'язнення
1. Введення
Про які картки піде мова?
Сьогодні міжнародні платіжні системи (МПС) використовують стандарт EMV для проведення операцій за банківськими картками. Одними з найбільш відомих МПС, що стоять біля витоків розробки цієї технології, є компанії «VISA Inc» і «MasterCard Worldwide». Оскільки в основі мікропроцесорних карт цих компаній лежить загальна технологія EMV, ми будемо розглядати узагальнену EMV-карту, не вдаючись в деталі реалізації тієї чи іншої компанії.
Варто відразу зазначити, що специфікація EMV досить велика, тому стаття не претендує на повний опис стандарту. Багато речей будуть представлені у спрощеній формі без використання специфічної термінології. Оскільки стандарт є відкритим, при бажанні завжди можна ознайомитися і розібратися в деталях на сайті EMVCo.
Описуючи платіжні транзакції та функціональність EMV-картки, ми будемо посилатися на інших учасників системи. Крім самої платіжної системи в процесі проведення транзакції беруть участь:
- банк-емітент - банк, який випустив платіжну картку, і рахунок якої знаходиться в цьому банку
- банк-еквайер - банк, який обслуговує термінал платіжної точки
- платіжний термінал - пристрій, який забезпечує роботу з платіжною карткою
Розглядаючи докладніше платіжну EMV-картку, ми будемо концентрувати увагу не тільки на можливостях мікропроцесора. Технологія EMV піддала змінам як самі карти, так і повідомлення, якими обмінюються учасники системи; розширила функціональність додатків для терміналів, банків-еквайрів та емітентів.
2. Автентифікація магнітної та EMV-карти
Одне з основних завдань банку, який випустив картку - це автентифікація картки під час її використання. У даному випадку під автентифікацією розуміється процес доказу того, що дана картка (або додаток на картці) випущена банком, авторизованим на це відповідною платіжною системою.
Як відбувається процес автентифікації карти?
У загальному випадку, прочитавши дані картки, термінал відправляє їх через банк-еквайер і платіжну систему банку-емітенту. Емітент на підставі даних карти визначає її справжність.
У цьому процесі полягає одна з основних проблем безпеки платежів за магнітними картками. З одного боку, цілісність даних магнітної карти надійно захищена кодом CVV/CVC (CVC - Card Verification Code, CVV - Card Verification Value) і модифікувати їх марно. З іншого боку, досить просто скопіювати всю карту цілком.
2.1 Автентифікація магнітної карти на основі статичних даних
Для автентифікації в транзакціях по магнітній карті використовуються статичні дані карти. Ці дані картки щоразу передаються в банк-емітент і не змінюються протягом усього терміну дії картки. На додачу, платіжний термінал практично не оцінює ризики транзакцій за картками з магнітною смугою. У підсумку - у разі повного копіювання картки - банк-емітент не зможе достовірно визначити справжність такої картки. Відповідно, ймовірність проведення шахрайської операції досить висока.
2.2 Автентифікація EMV-карти на основі динамічних даних
Як це питання вирішують EMV-карти?
Вирішенням вищеописаної проблеми є цифровий підпис статичних даних карти і даних транзакції, які відправляються емітенту. Оскільки цифровий підпис є унікальним для кожної транзакції, підробка або копіювання EMV-карти є нетривіальним завданням.
Розглянемо докладніше, як відбувається динамічна аутентифікація карти в ході EMV-транзакції. Процес транзакції починається в момент встановлення карти в термінал. Термінал передає карті дані транзакції (сума, валюта, країна тощо). Потім карта і термінал проводять взаємну перевірку ризиків транзакції. Якщо обидва пристрої все «влаштовує» то карта підписує дані транзакції, а термінал заповнює отриманими даними поле (таг або тег) «DE 55» і відправляє його в банк-еквайер. Той, у свою чергу, відправляє повідомлення банку-емітенту.
Емітент, отримавши поле «DE 55», перевіряє справжність підпису (далі криптограми) картки, яка розрахована на підставі динамічних даних поточної транзакції, тим самим перевіряючи справжність самої карти.
Описаний вище процес є сильно спрощеною моделлю EVM-транзакції. Однак він розкриває головний аспект безпеки EVM-платежів - використання для аутентифікації картки динамічних даних замість статичних.
Варто зазначити, що у емітента з'являються нові можливості:
- перевірка динамічної криптограми карти
- взаємна автентифікація: емітент може вислати свою криптограму карті
- можливість оновити дані карти після автентифікації (наприклад, заблокувати карту або змінити ліміт).
Також в EMV-транзакціях істотна роль відведена терміналу і його системі оцінки ризиків, згідно з якою і термінал, і карта можуть приймати рішення про можливість проведення транзакції.
3. Внутрішня структура і безпека EMV-карти
За великим рахунком, мікропроцесорна карта стандарту EMV є звичайною смарт-картою (почитати раз, два, три), в основі якої лежать стандарти ISO/IEC 7816 або ISO/IEC 14443 (для безконтактної).
Реалізація EMV-карти може бути виконана як на базі JavaCard і GlobalPlatform, так і за допомогою нативних методів смарт-карти. Подібно звичайними операційними системами (ОС), карткові ОС також мають файлову структуру і програми. У контексті цієї статті, найбільш цікаві саме платіжні програми EMV-картки. Тому будемо розглядати саме їх.
Що означає платіжна програма EMV?
З точки зору користувача (терміналу або банкомату), платіжний EMV-додаток - це програмний продукт з інтерфейсом, детально описаним у стандарті EMV.
Інтерфейс є серією команд для проведення транзакцій і управління EMV-додатками. Детальну інформацію можна знайти в «EMV Book 3 Application Specification». Незважаючи на існування стандарту, платіжні додатки компаній Visa і MasterCard мають відмінності в реалізації. Також можуть відрізнятися і різні додатки однієї компанії. Наприклад, «M/Chip 4» і «M/Chip Advance» компанії MasterCard.
Незалежно від реалізації, кожна програма має власний ідентифікатор, так званий AID (Application Identifier). Він вказує до якого типу платіжної системи відноситься додаток. За ідентифікатором програми AID термінал визначає можливість проведення транзакції або, в разі декількох додатків будує список підтримуваних додатків і пропонує вибрати один з них.
Якщо на карті реалізована файлова структура і управління додатками, які ж механізми забезпечують безпеку даних від доступу ззовні?
Тут варто розділити час життя картки до моменту випуску банком, і після.
Первинний доступ до чистої карти зазвичай регламентується виробником чіпів. Найчастіше кожна партія карт має свій ключ карти, за допомогою якого необхідно автентифікуватися з картою в ході її прошивки.
На наступному етапі доступ до файлової системи та програм зазвичай регулюється операційною системою. Вона також має свій власний ключ, і, відповідно, для доступу потрібна автентифікація.
Далі встановлений додаток проходить процес персоналізації карти. Персоналізація - це завантаження параметрів і ключів програми, які визначають безпеку EMV-транзакцій. Для доступу до цього процесу також потрібна автентифікація за допомогою ключа програми.
Після встановлення програми та її персоналізації перераховані вище доступи зазвичай закриваються назавжди. Що виключає можливість проникнення «всередину» після випуску карти.
Разом: ключ карти, ключ ОС і ключ програми захищають карту від стороннього втручання на різних стадіях її виробництва. У разі якщо в ході виготовлення частина карт буде дискредитована (наприклад, вкрадена), ці ключі захистять карти від втручання ззовні. А без знання ключів карти стає практично повністю марними.
Деякі дані програми можуть бути модифіковані і після випуску карти. Зміни можуть бути виконані так званими скриптовими командами. Виключні права на впровадження змін належать емітенту. Така можливість передбачена, щоб у будь-який момент часу емітент міг заблокувати або розблокувати карту, оновити ліміти або налаштування карти. Оновлення даних проводиться терміналом або банкоматом тільки після успішної онлайн транзакції (автентифікації з банком). Дані приходять на карту від емітента в чистому вигляді, проте мають в собі аналог цифрового підпису - MAC, який гарантує цілісність даних. Для розрахунку MAC використовується відповідний ключ програми (один з трьох DES ключів, що завантажуються в програму).
Окремими пунктами є модифікація офлайн пін-коду (offline PIN) і лічильника ліміту невдалих вводів пін-коду (PinTryLimit). Ці зміни також виконуються скриптовою командою з MAC-підписом. Однак, при зміні пін-коду ці команди додатково шифруються за допомогою спеціального ключа, призначеного виключно для виконання описаного процесу.
4. Дані EMV-програми
Аналогічно картам з магнітною смугою, EMV-програми також мають відкриті дані доступні для читання. І хоча сам додаток прочитати неможливо, як неможливо дістатися і до ключів і пін-коду - доступ до відкритих даних програми завжди відкритий.
Дані EMV програми
Про які дані йдеться?
На картинці вище наведено орієнтовний список даних, що зберігаються всередині EMV-програми. Звичайно, для кожного конкретного додатку він може дещо відрізнятися. На даному етапі важливо зазначити, що персональна інформація клієнта не зберігається в EMV-додатку. Дійсно, більший обсяг пам'яті чіпа дозволяє платіжним системам і банкам зберігати на карті більше інформації - проте персональної інформації клієнта там немає.
Попередня картинка наочно ілюструє факт того, що на карті зберігається безліч технічних даних, необхідних для ефективного проведення операцій і доступу до рахунку. Дані EMV-програми розміщуються в записах (рекордах або треках). Їх список можна отримати у відповідь на команду «Get Processing Options». Конкретний запис можна прочитати за допомогою команди «Read Record». Всередині можуть перебувати: сертифікати ключів, номер карти (PAN - Primary Account Number), списки методів перевірки карти (CVM list- Card Verification Methods list) і безліч іншої інформації. Читання цих записів дуже схоже на читання треків з магнітної смуги. Дані технічних налаштувань карти, лічильники та ліміти можна отримати командою «Get Data», вказавши необхідний тип.
Цікаво, що практично всі дані про рахунок власника карти і налаштування програми можна віднімати з карти без будь-яких труднощів. Єдине до чого не дістатися - це ключі програми і значення пін-коду.
Чи можна скопіювати дані на з однієї чіпової карти на іншу?
Якщо у вас є карта з «чистим» (не персоналізованим) додатком, то технічно це реалізовано. Однак за рахунок відсутності можливості зробити копію ключів карти - додаток буде генерувати неправильні підписи транзакції. В результаті - емітент буде відхиляти будь-які онлайн-операції. Також відсутність ключів не дозволить провести CDA/DDA автентифікацію. Єдина пролом - це SDA офлайн. Однак на даний момент цей метод у вигляді єдиного методу автентифікації вважається застарілим. Далі буде детально розглянуто, як захищена EMV-транзакція.
Чи можна скопіювати дані EMV-програми на магнітну смугу?
З даних EMV-програми можна скласти треки для карти з магнітною смугою, за винятком одного невеликого параметра - коду обслуговування (Service Code). Як дані для EMV-додатку, код обслуговування вказує терміналу, що транзакція повинна бути проведена з використанням додатка картки. Якщо взяти цей код «як є» і скопіювати на магнітну доріжку - термінал буде намагатися виконати транзакцію за допомогою програми. Здавалося б, можна відредагувати код обслуговування, але цілісність даних захищена кодом CVV/CVC кодом. Він є найближчим аналогом цифрового підпису.
Створюється відчуття, що EMV-карта захищена від копіювання з усіх боків. Хоча все-таки відома одна тривіальна можливість. Для режиму сумісності виробники випускають EMV-карти комбінованого типу - тобто з мікропроцесором і магнітною смугою. Існує можливість скопіювати дані магнітної смуги на іншу комбіновану карту з неробочим чіпом (чистим або спаленим) і спробувати провести так званий fallback (при неможливості вважати чіп, термінал проводить операцію по магнітній смузі). В даний момент такі операції не вітається платіжними системами, а ризик за цими операціями лягає на еквайра або емітента.
5. Безпека EMV-транзакції
Існує два різних (хоча і виконують одну і ту ж функцію) варіанти проведення платіжної транзакції - онлайн і офлайн. Вище ми в загальних рисах розглядали онлайн-транзакцію, яку емітент підтверджує в режимі реального часу. Офлайн-транзакція проводиться терміналом без моментального підтвердження банком. Такі транзакції використовуються для операцій з низьким рівнем ризику або у разі, наприклад, відсутності зв'язку з банком-емітентом.
Для цих двох видів транзакцій існує відповідно два види автентифікацій - онлайн і офлайн. У разі виконання онлайн-аутентифікації, операція проводиться за участю емітента, а офлайн-аутентифікація підтверджується платіжним терміналом. Варто уточнити, що під час проведення онлайн- транзакції може виконуватися як онлайн-, так і офлайн-аутентифікація одночасно (якщо і карта, і термінал це підтримують). Незважаючи на надмірність схеми, на етапі автентифікації не завжди зрозуміло в якому режимі буде проходити транзакція.
Порядок виконання транзакції карта - термінал
Функції безпеки, розглянуті нижче, є тільки частиною EMV-транзакції. Крім автентифікації, до функцій безпеки можна віднести: оцінку ризиків проведення транзакції та верифікацію власника картки (онлайн і офлайн-пін, розмір суми транзакції, країна, валюта, інше).
5.1 Онлайн EMV-транзакція
Основним методом підтвердження справжності картки в онлайн-транзакціях є автентифікація картки онлайн. В основі даного методу лежить генерація карткою криптограми ARQC (Authorisation Request Cryptogram) для кожної платіжної операції. Розгляньмо цей процес докладніше.
Онлайн EMV-транзакція
В основі генерацій і перевірок криптограм лежить алгоритм 3DES. Емітент і карта володіють загальним секретним ключем MKac (Application Cryptogram Master Key). На початку транзакції карта генерує на основі MKac сесійний ключ SKac (Application Cryptogram Session Key). Криптограма ARQC довгою 8 байт генерується картою за допомогою алгоритму MAC, на сесійному ключі SKac з використанням даних транзакції.
У процесі транзакції, згенерована картою криптограма ARQC, відправляється в банк-емітент, Банк звірять ARQC з криптограмою яку, розрахував самостійно. Для цієї операції банком генерується сесійний ключ, потім на підставі прийшли даних транзакції, розраховується власний ARQC. Якщо власний (згенерований емітентом) ARQC і ARQC карти сходяться - карта справжня.
Далі емітент за схожим алгоритмом на основі динамічних даних транзакції і даних відповіді генерує ARPC (Authorisation Response Cryptogram) і відсилає цю криптограму назад карті. У той момент, коли карта підтвердить ARPC, взаємна аутентифікація карти і емітента - виконана.
Вище описаний основний механізм автентифікації картки, який використовується для онлайн-транзакцій. Як вже було сказано, в онлайн-транзакції може бути присутня офлайн-аутентифікація. Однак, щоб не ускладнювати, розглянемо детальний опис офлайн-аутентифікації в контексті офлайн-транзакції.
Наступним методом безпеки є розширені дані в Field/DE 55 які передаються в банк-емітент. Field/DE 55 містить результати роботи картки і терміналу, оцінки ризиків та аналізу транзакції.
Як показано на зображенні вище, у Field/DE 55 міститься важлива інформація. Наприклад, Terminal Verification Result, Card Verification Result, які в сумі з іншими даними допомагають зрозуміти емітенту і платіжній системі як відбувається транзакція і надають безліч додаткових деталей для оцінки ризиків транзакції.
5.2 Офлайн EMV-транзакція
Особливість офлайн-транзакції полягає в тому, що транзакція проводиться карткою і терміналом без звернення до банку і платіжної системи. У процесі такої транзакції картка може схвалити транзакцію в межах встановленого ліміту, а термінал, у свою чергу, відправляє інформацію в банк пізніше за розкладом, або коли з'явиться зв'язок з банком. Такі офлайн-транзакції надають додаткові переваги як банку-емітенту, так і власнику картки. Наприклад, власник може розплатитися навіть, якщо зв'язку з банком немає. Або ж, якщо сума невелика - операція пройде набагато швидше.
Як відбувається автентифікація картки при офлайн-транзакції?
Раніше згадувалося, що онлайн- і офлайн-аутентифікації використовують різні технології. Якщо онлайн використовує криптографічний алгоритм 3DES, то у випадку з офлайн використовується RSA c асиметричними ключами. Навіщо ж використовувати такі різні технології? Вся справа в тому, що при онлайн-аутентифікації, ключі зберігають тільки карта і банк. У разі ж офлайну - ключ потрібно довірити терміналу. Враховуючи наявність великої кількості терміналів, існує ймовірність, що секретний ключ довірений терміналам недовго залишиться секретним.
Оскільки детальний опис офлайн-автентифікації карти досить великий, розглянемо спрощену модель.
Static Data Authentication
На чолі всього стоїть платіжна система (точніше центр сертифікації), яка випускає пару ключів: приватний ключ (червоний) і публічний ключ (синій). Банк-емітент також має свою пару ключів. Для своїх ключів емітент спеціальним чином генерує сертифікат (Issuer Public Key Certificate), який містить в собі публічний ключ емітента. Цей сертифікат підписано (зашифровано) приватним ключем платіжної системи. У процесі персоналізації цей сертифікат завантажується на карту.
Коли платіжний термінал встановлюють у торгову точку і підключають до системи, публічний ключ платіжної системи через банк-еквайєр завантажується в термінал.
У процесі офлайн-транзакції термінал проводить офлайн-аутентифікацію картки. Спочатку термінал вираховує з картки Issuer Public Key Certificate, і за допомогою публічного ключа платіжної системи перевіряє правильність підпису сертифіката (тобто розшифровує). Якщо підпис правильний - витягується публічний ключ емітента. Далі, за допомогою публічного ключа емітента, перевіряється підпис критичних даних карти, чим і підтверджується її справжність.
Описаний вище метод відноситься до статичної автентифікації SDA (Static Data Authentication). В даний час частіше використовуються динамічні автентифікації: DDA (Dynamic Data Authentication) і CDA (Combined Data Authentication), які включають в себе SDA і додатково, за аналогією з онлайн, підписують дані, які курсують між терміналом і картою. Дані підписуються приватним ключем карти, який завантажується на карту в процесі персоналізації. Підпис перевіряється терміналом за допомогою публічного ключа, відновленого з відповідного сертифіката.
Технологія SDA дозволяє терміналу перевірити, що дані на карті не модифіковані. Однак, вона не дозволяє повністю ідентифікувати справжність карти (існує можливість скопіювати SDA-дані). У свою чергу, технології DDA і CDA дозволяють підтвердити справжність картки, тому що карта є носієм унікального приватного ключа, чий сертифікат (публічний ключ) підписаний приватним ключем емітента (сертифікат емітента (його публічний ключ) підписаний приватним ключем платіжної системи).
Діаграми SDA, DDA і CDA, EMV Book 2
Діаграма SDA
Діаграма DDA/CDA
Технології DDA і CDA вже містять в собі SDA і в цілому схожі. Обидва алгоритми використовують унікальний ключ карти і динамічні дані. DDA-автентифікація є окремою операцією і виконується до основного циклу процесу транзакції. CDA виконується в основному циклі транзакції, а як підписувані дані додатково використовується криптограма карти. В цілому, сьогодні, технологія DDA більш поширена, хоча CDA є більш кращою у використанні.
Крім цифрового підпису, термінал і карта вміють оцінювати ризики транзакції. Для офлайн-транзакції карта може оперувати кількома видами лічильників транзакцій і акумуляторів офлайн-сум, валютами і країнами, офлайн-піном і його лімітами, а також додатковими правилами. У процесі персоналізації картки емітент має можливість обмежити максимальну кількість послідовних офлайн-транзакцій та/або максимальну суму транзакції (нижніми та верхніми лімітами), таким чином визначаючи рівень ризику.
Для кожної з реалізацій додатку конкретної платіжної системи існує свій набір правил, на підставі яких картка може приймати рішення проводити офлайн, онлайн або відхиляти транзакцію. Список цих правил досить гнучкий і може по-різному налаштовуватися емітентом для кожного карткового продукту. У процесі рішення можуть брати участь результати попередніх транзакцій, офлайн-лічильники, результати перевірки піну тощо.
6. Перевірка власника карти CVM (Cardholder verification method)
Практично вся стаття була присвячена транзакціям і процесу автентифікації картки, а користувачеві картки приділялося мало уваги. З появою технології EMV перевірка власника карти не надто видозмінилися. В даний момент найбільш популярними методами перевірки є: перевірка пін-коду (онлайнового та/або офлайнового) і підпис власника карти. Так склалося, що з приходом EMV не всі платіжні термінали володіють однаковими можливостями перевірки власника картки (наприклад, через вік обладнання). У свою чергу, різні EMV програми також можуть бути обмежені в можливостях. Тому терміналу і карті доводиться вибирати відповідний метод перевірки власника картки. Для цього використовуються так звані CVM-списки. У CVM-списку визначені методи перевірки власника карти та їх пріоритети. І платіжний додаток, і термінал мають свої власні списки. Підсумковий список визначається шляхом об'єднання списків терміналу і програми. З отриманого підсумкового списку термінал вибирає загальний CVM метод з найбільшим пріоритетом і здійснює перевірку власника картки.
Приклад такого списку представлений на картинці вище. Наприклад, якщо карта вставлена в банкомат - буде запитаний онлайн-пін, якщо в термінал - офлайн-пін. У разі, якщо пристрій не має пін-паду - буде запитана перевірка підпису. У всіх інших випадках перевірка власника карти проводитися не буде.
Ув'язнення
У цій статті були поверхово розглянуті платіжний EMV-додаток і збережені в ньому дані, описані основні відмінності в процесах проведення транзакцій по магнітних і EMV-картках. Також були розглянуті процедури проведення онлайн і офлайн-транзакцій і механізми забезпечення їх безпеки. Звичайно ж, кожен аспект технології EMV, має набагато більшу глибину і ступінь складності. Однак, сподіваюся, що стаття дала загальне розуміння принципу роботи платіжних EMV-карток і проведення платежів з їх допомогою.
У висновку можна сказати, що платіжна EMV-картка складний і високотехнологічний продукт, що надійно захищає доступ до вашого рахунку в банку. Мікропроцесорну EMV-карту практично неможливо скопіювати, а кожна транзакція захищена унікальним цифровим підписом. Будь-які дії, що відбуваються всередині карти, регламентуються суворим набором правил із вказівками як чинити в кожному конкретному випадку. У процесі створення платіжні EMV-додатки проходять обов'язкову багаторівневу сертифікацію і отримують дозвіл від платіжної системи на їх використання. Програмувати такі карти складно і цікаво. Втім, опис цього процесу може розтягнутися ще не на одну статтю.
Дякую за увагу!
P.S. Буду радий відповісти на ваші запитання в коментарях
