Как работают системы безопасности кредитных карт

Задумы­вал­ся ли ты, какие алго­рит­мы исполь­зуют­ся в этих кар­тах? Нас­коль­ко пла­тежи безопас­ны? Мы рас­пла­чива­емся кар­тами каж­дый день, но зна­ем о них край­не мало.

Как работают системы безопасности кредитных карт
11 мин
Автор PINTA IT

В тво­ем кошель­ке навер­няка есть нес­коль­ко карт меж­дународ­ных пла­теж­ных сис­тем, таких как Visa или MasterCard. Задумы­вал­ся ли ты, какие алго­рит­мы исполь­зуют­ся в этих кар­тах? Нас­коль­ко пла­тежи безопас­ны? Мы рас­пла­чива­емся кар­тами каж­дый день, но зна­ем о них край­не мало. Еще боль­ше мифов соп­ровож­дает кар­точные пла­тежи. Что­бы понять, какие есть спо­собы похитить день­ги с кар­ты, нуж­но сна­чала понять, как про­исхо­дит опла­та. Давай раз­бирать­ся вмес­те.


НОМЕР КАРТЫ
Оп­лата по номеру кар­ты исто­ричес­ки самая стар­шая. Рань­ше на кар­тах не было ничего, кро­ме это­го номера. Номер был «эмбосси­рован» выдав­лен на кар­те. При опла­те кар­та «про­каты­валась» на спе­циаль­ном устрой­стве, что поз­воляло про­дав­цу быс­тро внес­ти номер в древ­нюю замену базы дан­ных, то есть отпе­чатать на лис­те бумаги. В кон­це рабоче­го дня или недели эти дан­ные собира­лись и переда­вались в банк‑эквай­ер. Далее банк отправ­лял зап­росы на спи­сание этих денег у вла­дель­цев карт через бан­ки‑эми­тен­ты. Это было так дав­но, что нем­ного людей зна­ют, отку­да появил­ся трех­знач­ный код верифи­кации пла­тежей, записан­ный на обратной сто­роне кар­ты, так называ­емый CVV2/CVC2. До нас дош­ла информа­ция, что этот код исполь­зовал­ся ско­рее как кон­троль­ная сум­ма, нуж­ная, что­бы вла­делец кар­ты не ошиб­ся и кор­рек­тно ввел всю информа­цию при опла­те. Похоже на прав­ду, если учесть, нас­коль­ко корот­кий этот код. Сей­час физичес­кая кар­та может и вов­се не учас­тво­вать в опла­те. Это называ­ется card not present и чаще все­го исполь­зует­ся при опла­те в интерне­те. Если номер кар­ты вво­дит­ся при опла­те в пла­теж­ном тер­минале, а это харак­терно для оте­лей, биз­несов, ведущих дела по телефо­ну, а так­же для боль­шинс­тва тер­миналов в США, такой под­тип пла­тежей называ­ется PAN Key Entry. Мно­гие до сих пор счи­тают, что поле Cardholder name с лицевой сто­роны кар­ты нуж­но вво­дить кор­рек­тно и что оно про­веря­ется. Это не так  ни один банк не про­веря­ет это поле.


МАГНИТНАЯ ПОЛОСА
Опе­рации с маг­нитной полосой один из самых прос­тых методов. Он ассо­циируют­ся у людей с опре­делен­ными типами мошен­ничес­тва. Ским­минг в бан­коматах, двой­ные сня­тия в рес­торанах все это воз­можно бла­года­ря недос­таткам маг­нитной полосы. Маг­нитную полосу лег­ко ско­пиро­вать для это­го необ­ходим толь­ко спе­циаль­ный ридер/энко­дер маг­нитной полосы. Даль­ше кло­ниро­ван­ной маг­нитной полосы дос­таточ­но для того, что­бы рас­пла­чивать­ся в боль­шинс­тве супер­марке­тов мира. Для верифи­кации вла­дель­ца кар­ты пред­полага­лось исполь­зовать под­пись на чеке, которую кас­сир дол­жен све­рить с под­писью на обратной сто­роне кар­ты.
На кар­тинке выше ты видишь при­мер записан­ной на кар­ту информа­ции. Чер­ные полос­ки это еди­ницы, белые нули. Сущес­тву­ют open source решения для декоди­рова­ния этих дан­ных  к при­меру, magstripe. На самом деле по изоб­ражению вид­но, что на кар­те не одна, а целых две маг­нитные полосы раз­ной плот­ности (Track1 и Track2). Какие дан­ные содер­жатся на маг­нитной полосе? Но­мер кар­ты, дата окон­чания дей­ствия, имя вла­дель­ца кар­ты  все, что физичес­ки отпе­чата­но на лицевой сто­роне кар­ты.
Сер­висный код  три циф­ры, которые помога­ют вза­имо­дей­ству­юще­му с кар­той устрой­ству (тер­минал или бан­комат) понять, какие фун­кции есть у кар­ты, а каких нет. Мож­но ли исполь­зовать эту кар­ту в бан­комате, осна­щена ли кар­та чипом. Код верифи­кации (CVV, CVC, CID тер­миноло­гия зависит от пла­теж­ной сис­темы)  код, ана­логич­ный тому, что написан на обратной сто­роне кар­ты. Он рас­счи­тыва­ется по алго­рит­му крип­тогра­фичес­кой чек‑сум­мы (MDK MAC) с помощью 128-бит­ного клю­ча от информа­ции, записан­ной на маг­нитной полосе. Исполь­зование вычис­ляемо­го CVV вмес­то слу­чай­ного помога­ет от атак, ког­да, нап­ример, зло­умыш­ленник под­меня­ет сер­висный код и пыта­ется убе­дить пла­теж­ный тер­минал, что кар­та не осна­щена чипом. Банк‑эми­тент получит дан­ные маг­нитной полосы, све­рит их, и кон­троль­ная сум­ма не сой­дет­ся с передан­ным зна­чени­ем в поле CVV. Свер­ки про­ходят в защищен­ном хра­нили­ще клю­чей так называ­емом HSM (Hardware Secure Module).


ЧИП/EMV На сме­ну маг­нитной полосе в девянос­тых приш­ли смарт‑кар­ты, для популя­риза­ции которых соз­дали кон­сорци­ум EMV (Europay, MasterCard, Visa). Прод­вига­емая кон­сорци­умом идея была прос­та: исполь­зуя осо­бен­ности смарт‑карт, сим­метрич­ную крип­тогра­фию и крип­тогра­фию с откры­тым клю­чом, решить все проб­лемы, свя­зан­ные с маг­нитной полосой. Опе­рации со смарткар­той обес­печива­ют три сте­пени защиты:

Аутен­тифика­ция кар­ты. Про­вер­ка пла­теж­ным тер­миналом того, что кар­та под­линная и дей­стви­тель­но была выпуще­на бан­ком N, а не была соз­дана зло­умыш­ленни­ками в домаш­них усло­виях.

Ве­рифи­кация пла­тель­щика. Про­вер­ка того, что эта кар­та при­над­лежит покупа­телю, сто­яще­му перед пла­теж­ным тер­миналом.

Ав­ториза­ция тран­закции. От кар­ты до бан­ка‑эми­тен­та путь дол­гий. Банк дол­жен убе­дить­ся, что дан­ные опе­рации ниг­де не были иска­жены зло­умыш­ленни­ками. Что сум­ма оста­лась неиз­менной, что дата опе­рации кор­рек­тная, что эта опе­рация уни­каль­на, а не была уже про­веде­на в прош­лом месяце.
Да­вай прой­дем­ся по исполь­зуемым методам.

Аутентификация карты
Для аутен­тифика­ции кар­ты исполь­зует­ся крип­тогра­фия с откры­тым клю­чом по про­токо­лу RSA. Текущие минималь­ные тре­бова­ния по дли­не клю­ча 1024 бита. Огра­ничен­ное чис­ло цен­тров сер­тифика­ции выпус­кают клю­чи для бан­ков, а бан­ки их уже при­вязы­вают к самим кар­там. При­ват­ный ключ хра­нит­ся на самой смарт‑кар­те в области, недос­тупной для чте­ния. Кор­невые сер­тифика­ты уста­нав­лива­ются на тер­минал при его нас­трой­ке. Во вре­мя тран­закции кар­та пре­дос­тавля­ет пуб­личные клю­чи пла­теж­ному тер­миналу вмес­те с информа­цией, зашиф­рован­ной при­ват­ным клю­чом в режиме циф­ровой под­писи. Если пуб­личный ключ доверен­ный и информа­ция, передан­ная кар­той, успешно рас­шифро­выва­ется этим клю­чом, то тер­минал счи­тает кар­ту аутен­тичной, выпущен­ной имен­но тем бан­ком, который под­писал при­ват­ный ключ, выдан­ный цен­тром сер­тифика­ции.
Все­го сущес­тву­ет три режима аутен­тифика­ции кар­ты:
SDA static data authentication;
CDA combined dynamic data authentication. В пер­вом методе исполь­зовалось толь­ко одно ста­тичес­кое поле, хра­няще­еся на кар­те. Оно под­писыва­лось при­ват­ным клю­чом и про­веря­лось тер­миналом. Это было EMV-поле AIP (application interchange profile). Но кон­сорци­ум EMV быс­тро понял, что для популяр­ных в то вре­мя офлай­новых тер­миналов (они не выходи­ли в онлайн для свер­ки крип­тограм­мы) это­го было явно недос­таточ­но любой мог кло­ниро­вать пуб­личный ключ и под­писан­ную ста­тичес­кую стро­ку, что­бы соз­дать под­делку. Сле­дующий метод полагал­ся на динами­чес­кие дан­ные, при­ходя­щие от тер­минала. Тер­минал генери­рует поле UN Unique Number, которое под­писыва­ется при­ват­ным клю­чом кар­ты. Энтро­пия это­го поля 232, чего дос­таточ­но для защиты от пер­вой ата­ки. Од­нако в 2009 году иссле­дова­тели из Кем­бридж­ско­го уни­вер­ситета пред­ста­вили работу, опи­сыва­ющую так называ­емую ата­ку PIN OK (PDF). Спе­циаль­ное устрой­ство, рас­полага­ющееся меж­ду кар­той и тер­миналом, совер­шало ата­ку «человек посере­дине» и под­меняло одно из полей, которые отправ­ляла кар­та. Эту под­мену нель­зя было обна­ружить на тер­минале с помощью опи­сан­ных выше методов. Для защиты от таких атак кон­сорци­ум EMV еще до наход­ки иссле­дова­телей пре­дус­мотрел новый механизм защиты схе­му CDA. Во вре­мя нее тер­минал может про­верить целос­тность боль­шинс­тва полей, которые переда­ет кар­та и которые учас­тву­ют в фазе под наз­вани­ем «риск‑менед­жмент». Оф­лай­новая аутен­тифика­ция соз­давалась в пер­вую оче­редь для защиты офлай­новых пла­тежей, ког­да тер­минал не под­клю­чен к интерне­ту пос­тоян­но. Имен­но поэто­му, если резуль­тат работы режимов DDA или CDA не закан­чива­ется успе­хом, в сов­ремен­ных тер­миналах, под­клю­чен­ных к интерне­ту, это не при­ведет к отка­зу тран­закции в 99% слу­чаев, так как банк‑эми­тент авто­ризу­ет ее с помощью крип­тограм­мы, как опи­сано ниже. Одна­ко некото­рые пла­теж­ные сис­темы рекомен­дуют обра­щать вни­мание на пос­тоян­ные неус­пешные аутен­тифика­ции, осо­бен­но если они про­исхо­дят в раз­ных тер­миналах.

Верификация плательщика.
Есть два основных спо­соба верифи­кация пла­тель­щика: ПИН‑код и под­пись. На самом деле их нем­ного боль­ше  ПИН‑код может про­верять­ся в офлай­не (на самой кар­те) и онлайн. Он может быть зашиф­рован (с помощью сим­метрич­ного клю­ча 3DES) или переда­вать­ся в откры­том виде. Еще воз­можен спо­соб верифи­кации NoCVM то есть отсутс­твие верифи­кации. Хороший при­мер таких опе­раций  те, которые не пре­выша­ют лимиты 3000 руб­лей и не тре­буют вво­да ПИН‑кода. Их иног­да называ­ют Tap & Go. Дру­гой спо­соб, который в зависи­мос­ти от пла­теж­ной сис­темы называ­ется CDCVM или On-Device CVM, дела­ет воз­можной верифи­кацию на мобиль­ном телефо­не вла­дель­ца кар­ты. Как ты уже догадал­ся, он исполь­зует­ся в Google Pay и Apple Pay. Для авто­риза­ции тран­закции смарт‑кар­ты соз­дают пла­теж­ную крип­тограм­му. Кар­та отправ­ляет тер­миналу спи­сок полей их набор зависит от вер­сии крип­тограм­мы и нас­тро­ек кар­ты. Как пра­вило, это сум­ма опе­рации, валюта, дата и дру­гие важ­ные для эта­па риск‑менед­жмен­та нас­трой­ки тер­минала. Далее кар­та допол­няет эти поля сво­ими внут­ренни­ми полями: счет­чик опе­раций, вер­сия крип­тограм­мы.
По­лучен­ная стро­ка шиф­рует­ся с помощью записан­ного на кар­те сек­ретно­го клю­ча 3DES в режиме циф­ровой под­писи и переда­ется бан­ку вмес­те со всей под­писан­ной информа­цией. Банк‑эми­тент исполь­зует аппа­рат­ный модуль безопас­ности (hardware security module, HSM), на котором в защищен­ной от чте­ния области памяти содер­жится копия сим­метрич­ного клю­ча кар­ты.
HSM так­же соз­дает циф­ровую под­пись по дан­ным от пла­теж­ного тер­минала. Если он получит такую же крип­тограм­му, то тран­закция будет счи­тать­ся авто­ризо­ван­ной. Это зна­чит, что ник­то не под­менил дан­ные опе­рации во вре­мя их переда­чи от кар­ты до бан­ка эми­тен­та. На этом же эта­пе рас­шифро­выва­ется и све­ряет­ся ПИН‑код кар­ты, в слу­чае если исполь­зует­ся онлайн‑свер­ка ПИН. Об­рати вни­мание, что все эти три фун­кции работа­ют хорошо толь­ко вмес­те. Что­бы кор­рек­тно работа­ла верифи­кация, она дол­жна кон­тро­лиро­вать­ся с помощью аутен­тифика­ции. Если нет авто­риза­ции вся тран­закция ста­новит­ся высоко­рис­ковой, и так далее.

БЕСКОНТАКТНЫЕ ПЛАТЕЖИ
Бес­контак­тные пла­тежи ста­ли набирать популяр­ность с середи­ны 2010-х годов. Бан­ки и пла­теж­ные сис­темы прод­вига­ют их как быс­трый и удоб­ный спо­соб опла­ты. Оно и понят­но чем боль­ше народ пла­тит кар­тами, тем боль­ше мож­но зарабо­тать на комис­сиях! С раз­вити­ем тех­нологий нуж­но раз­вивать и безопас­ность, но это далеко не всег­да так. И бес­контак­тные пла­тежи как раз при­мер из неудач­ных. Ког­да соз­давались бес­контак­тные пла­тежи, кар­ты с чипом в США еще не были осо­бен­но рас­простра­нены, поэто­му Visa и MasterCard пре­дус­мотре­ли про­межу­точ­ный шаг, ког­да новыми бес­контак­тны­ми кар­тами мож­но пла­тить на ста­рых несов­ремен­ных пла­теж­ных тер­миналах, которые не под­держи­вают сов­ремен­ную крип­тогра­фию. Этот шаг называ­ется Legacy modes режимы, сте­пень безопас­ности которых зна­читель­но ниже, чем у пла­тежей EMV и сов­ремен­ных форм бес­контак­тных пла­тежей. Legacy modes по сте­пени защиты боль­ше напоми­нают опе­рации с маг­нитной полосой, толь­ко про­водят­ся через NFC. Нес­мотря на то что эти режимы пред­полага­лось исполь­зовать лишь в нес­коль­ких стра­нах, а через какое‑то вре­мя и вов­се отме­нить, мы в 2020 году встре­чаем их пов­семес­тно в том чис­ле в Рос­сии, где даже маг­нитная полоса зап­рещена.
От­дель­ная проб­лема это то, как пла­теж­ные сис­темы подош­ли к реали­зации бес­контак­тных пла­тежей. Вмес­то того что­бы при­думать что‑то новое, в ком­пани­ях Visa и MasterCard решили и здесь исполь­зовать EMV, но каж­дая сде­лала это по‑сво­ему, так что де‑юре они перес­тали быть частью стан­дарта EMV.

NFO Что из это­го сле­дует:
Во пер­вых, механиз­мы защиты и их проб­лемы, опи­сан­ные в начале 2000-х годов, сох­ранились. В боль­шинс­тве карт даже крип­тогра­фичес­кие клю­чи, исполь­зуемые для крип­тограмм EMV и NFC, одни и те же. Во вто­рых, ассо­циация EMV не мог­ла боль­ше вли­ять на то, как будет пос­тро­ен пла­теж­ный про­цесс. В ком­пании Visa были недоволь­ны слиш­ком дол­гим вре­менем про­веде­ния пла­тежа. Ког­да для это­го исполь­зовал­ся чип, проб­лем не было кар­та встав­лялась в тер­минал. Одна­ко в Visa пос­читали, что дер­жать кар­ту у тер­минала, ожи­дая, пока прой­дут все шаги EMV, это не очень‑то удоб­но. Этап, который вызывал основную задер­жку, это офлай­новая аутен­тифика­ция кар­ты. Од­новре­мен­но с этим в MasterCard при­няли диамет­раль­но про­тиво­полож­ное решение приз­нали, что офлай­новая аутен­тифика­ция важ­на и для тех карт, которые под­держи­вают наибо­лее безопас­ную схе­му аутен­тифика­ции CDA, и сде­лали ее обя­затель­ной. В спе­цифи­кации EMV, если вза­имо­дей­ствие по схе­ме CDA не закан­чива­ется успешно, тер­минал все еще может отпра­вить крип­тограм­му для онлай­новой авто­риза­ции. Тог­да как для бес­контак­тных пла­тежей MasterCard неудач­ная аутен­тифика­ция CDA всег­да ведет к отме­не пла­тежа. Раз­ница во вре­мени опе­раций нез­начитель­ная, одна­ко это оста­ется реша­ющим фак­тором для Visa.