Элек­трон­ные кошель­ки Google Pay, Samsung Pay и Apple Pay счи­тают­ся наибо­лее сов­ремен­ными пла­теж­ными инс­тру­мен­тами. Одна­ко они тоже под­верже­ны уяз­вимос­тям, пос­коль­ку все еще зависят от тех­нологий, соз­данных трид­цать лет назад. В сегод­няшней статье я рас­ска­жу о методах взло­ма популяр­ных элек­трон­ных кошель­ков, а так­же рас­крою детали новой ата­ки на кошель­ки и кар­ты EMV/NFC — Cryptogram Confusion.
 

Предыстория

Ес­ли прос­ледить эво­люцию стан­дарта EMV, то вна­чале были чиповые смарт‑кар­ты. Затем эти кар­ты оснасти­ли антенной и прев­ратили в бес­контак­тные кар­ты, унас­ледовав­шие поч­ти все фун­кции от EMV. Но кар­точным брен­дам это­го было мало, и в 2011 году уже сущес­тво­вав­ший тог­да Google Wallet оснасти­ли фун­кци­ей бес­контак­тной опла­ты с помощью NFC.

Google исполь­зовала под­ход Host-Card Emulator (HCE), ког­да конеч­ное устрой­ство не содер­жит в себе все при­ват­ные и сим­метрич­ные клю­чи шиф­рования по ана­логии со смарт‑кар­той, а вре­мя от вре­мени заг­ружа­ет одно­разо­вые клю­чи (Single-Use Key, SUK) для каж­дой сле­дующей опе­рации. При­дер­жива­ясь это­го под­хода до сих пор, телефо­ны с Google Pay не поз­воля­ют совер­шать боль­ше двад­цати опе­раций без под­клю­чения к интерне­ту. В 2012 году Samsung и Apple пред­ста­вили свои кошель­ки с исполь­зовани­ем тех­нологии Secure Element. Работа­ют они по ана­логии со смарт‑кар­тами, где физичес­ки и логичес­ки защищен­ный чип гаран­тиру­ет защиту от перех­вата, чте­ния, переза­писи сек­ретных клю­чей, на осно­ве которых соз­дают­ся 3DES-крип­тограм­мы EMV и под­писыва­ются дан­ные с помощью асим­метрич­ного RSA.

В прош­лом Сла­вомир Ясек по­казы­вал при­мер успешно­го перено­са Google Pay с одно­го устрой­ства на дру­гое. При этом сох­ранялась воз­можность получать клю­чи SUK с сер­веров Google не на ори­гиналь­ное устрой­ство. Питер Фил­лмор (Peter Fillmor) так­же деталь­но рас­смат­ривал устрой­ство Apple Pay. Я в 2017 году демонс­три­ровал на кон­ферен­ции Black Hat USA реп­лей ата­ки на онлайн‑крип­тограм­мы Apple Pay.

Два года назад я начал иссле­довать безопас­ность мобиль­ных кошель­ков при опла­те с помощью NFC. На тот момент Google Pay был единс­твен­ным кошель­ком, поз­воля­ющим пла­тить устрой­ством с заб­локиро­ван­ным экра­ном. Я очень быс­тро смог при­менить ата­ку, которую исполь­зовал для бес­контак­тных карт Visa, что­бы обой­ти лимиты NoCVM или Tap & Go (в Рос­сии они сос­тавля­ют 3000 руб­лей). Для это­го было необ­ходимо лишь акти­виро­вать экран на заб­локиро­ван­ном телефо­не. Если телефон все еще у вла­дель­ца в кар­мане, это мож­но сде­лать, отпра­вив коман­ду по Bluetooth или Android Beam. Нес­мотря на заяв­ления экспер­тов, что «фор­маты и про­токо­лы работы бес­контак­тных карт раз­ных меж­дународ­ных сис­тем прин­ципи­аль­но не раз­лича­ются», я катего­ричес­ки с этим не сог­ласен, ведь при­менить такую же ата­ку про­тив MasterCard мне не уда­лось.

В кон­це 2019 года Samsung и Apple пред­ста­вили под­дер­жку «тран­спортных схем» в круп­ных мегапо­лисах: Нью‑Йор­ке, Токио, Лон­доне. Во мно­гих тран­спортных сис­темах опла­та зависит от даль­нос­ти поез­дки, при этом финаль­ная сум­ма пла­тежа выс­читыва­ется исхо­дя из точ­ки вхо­да в мет­ро и точ­ки выхода. Поэто­му сни­мать стан­дар­тную сум­му при пер­вом «тапе» кар­ты или кошель­ка некор­рек­тно. Далее, нес­мотря на ста­биль­ное под­клю­чение тур­никетов к интерне­ту, они не зап­рашива­ют авто­риза­цию тран­закций онлайн, потому что соеди­нение занима­ет дол­гое вре­мя. Вмес­то это­го исполь­зует­ся асин­хрон­ная авто­риза­ция. А что­бы про­тиво­дей­ство­вать мошен­ничес­тву, при­меня­ется офлайн‑аутен­тифика­ция по сов­ремен­ному стан­дарту CDA, опи­сан­ному еще в спе­цифи­каци­ях EMV. Я уже рас­ска­зывал о прин­ципе работы CDA в статье «Близ­кие кон­такты. Раз­бира­емся, как работа­ют сис­темы безопас­ности кре­дит­ных карт».

На­конец, пос­ледняя проб­лема элек­трон­ных кошель­ков — это необ­ходимость раз­бло­киро­вать телефон Apple или Samsung каж­дый раз, ког­да ты под­ходишь к тур­никету мет­ро. Край­не неудоб­но, не прав­да ли? Имен­но поэто­му и Samsung, и Apple сде­лали воз­можность пла­тить на тран­спор­те без раз­бло­киров­ки телефо­на.

 

Токенизация

Мо­биль­ные кошель­ки сущес­тву­ют бла­года­ря тех­нологии токени­зации: кар­та добав­ляет­ся в мобиль­ный кошелек, дан­ные отсы­лают­ся меж­дународ­ной пла­теж­ной сис­теме, которая пос­ле под­твержде­ния всех рек­визитов соз­дает «вир­туаль­ную кар­ту». Она может работать толь­ко по NFC, при­чем толь­ко на том устрой­стве, на котором кар­та была добав­лена. Но это в теории.

Технология токенизации
Тех­нология токени­зации

Пре­иму­щес­тво мобиль­ного кошель­ка сос­тоит в том, что исполь­зование токенов огра­ниче­но. В слу­чае ком­про­мета­ции токена зло­умыш­ленни­ки не могут исполь­зовать укра­ден­ные дан­ные вир­туаль­ной кар­ты, что­бы соз­дать клон маг­нитной полосы или пла­тить такой кар­той в интерне­те. Имен­но поэто­му бан­ки, кар­точные брен­ды и круп­ные про­изво­дите­ли мобиль­ных кошель­ков (Apple, Google, Samsung, Huawei и про­чие) в один голос утвер­жда­ют, что безопас­ность мобиль­ных кошель­ков находит­ся на высоте.

На­чиная с момен­та замеще­ния кар­ты токеном бан­ки‑эми­тен­ты перес­тают играть сущес­твен­ную роль в авто­риза­ции тран­закций и риск‑менед­жмен­те. Да, они получа­ют информа­цию о мес­тополо­жении и типе мер­чанта, сум­ме, дате тран­закции. Одна­ко все крип­тогра­фичес­кие фун­кции и ана­лиз полей EMV перено­сят­ся на токени­затор (Visa VTS или MasterCard MDES). Код, который исполня­ется в мобиль­ном кошель­ке, так­же написан, ауди­рован и сер­тифици­рован одной из МПС. Apple или Samsung вро­де и ни при чем — они выс­тупа­ют фасадом, но всю работу за них дела­ют МПС. А бан­ку‑эми­тен­ту ста­новит­ся труд­нее судить о мошен­ничес­ких опе­раци­ях из‑за недос­татка дан­ных.

По­это­му опе­рации с исполь­зовани­ем мобиль­ных кошель­ков, в отли­чие от бан­ков­ских карт, поч­ти никог­да слу­чай­но не бло­киру­ются сис­темами антифро­да. Имен­но в этом и кро­ется одна из основных проб­лем: ответс­твен­ные за про­цесс пла­тежа скры­ты внут­ри самого это­го про­цес­са, а сущ­ности сна­ружи (банк‑эми­тент, мер­чант, мобиль­ный кошелек) име­ют огра­ничен­ные воз­можнос­ти для при­нятия решений.

Схема платежа при помощи электронного кошелька
Схе­ма пла­тежа при помощи элек­трон­ного кошель­ка
 

Атакуем Samsung Pay

Samsung пошел по прос­тому пути: при акти­вации тран­спортной кар­ты NFC всег­да работа­ет на телефо­не, и все про­вер­ки, пред­назна­чен­ные для того, что­бы отли­чить пла­теж­ный тер­минал в супер­марке­те от тер­минала в мет­ро, совер­шают­ся на эта­пе фазы пла­тежей EMV/NFC.

Быс­тро добавив кар­ту Visa и уста­новив ее как тран­спортную в телефо­не, я воору­жил­ся Proxmark3 и отпра­вил­ся в мет­ро, что­бы записать дан­ные о тран­закции и срав­нить зап­росы от тер­минала в мет­рополи­тене с зап­росами от обыч­ного пла­теж­ного тер­минала.

Глав­ная коман­да в дан­ном слу­чае — зап­рос тер­минала на генера­цию крип­тограм­мы (Generate AC) и ответ кошель­ка:

->
80a80000438341 заголовок Generate AC
23004000 поле Terminal Transaction Qualifier (обязательна офлайн-аутентификация CDA)
54664c20426f6e6420537472656574 (TfL Bond Street) Merchant Name and Location
9f4bxxxxxxx — данные для офлайн-аутентификации
000000000000000000000000 0826 0000000000 0826 200331 00 4bee1439000 сумма 0.00, валюта, дата транзакции и другие поля
<-
9f2701 80 тип криптограммы (онлайн-криптограмма, ARQC)
9f3602 000e счетчик операций, ATC
9f1020 1f4363 00200000000000000000002172000 поле CVR Card Verification Results (среди прочего указывает совершенный способ верификации, тип представленной криптограммы, ARQC)
9f2608 a83f66d03cc20d45 — онлайн-криптограмма

Для пла­теж­ных тер­миналов, авто­ризу­ющих пла­тежи онлайн, бес­контак­тные кар­ты Visa не тре­буют офлайн‑аутен­тифика­ции. Но в дан­ном слу­чае она обя­затель­на. Так­же телефон про­веря­ет сум­му: если она не рав­на 0.00, то тран­закция не прой­дет. Но телефон не смот­рит на имя мер­чанта или катего­рию про­дав­ца (MCC — Merchant Category Code).

Ес­ли пла­теж про­исхо­дит в обыч­ном тер­минале, офлайн‑аутен­тифика­ция не будет зат­ребова­на и сум­ма будет отличной от 0.00. В этом слу­чае телефон вер­нет сле­дующий ответ:

<- 6985 (Conditions of use not satisfied)

Я решил не отча­ивать­ся и добавил кар­ту MasterCard, сно­ва вер­нулся в мет­ро и про­вел те же опе­рации:

->
80ae900041 заголовок Generate AC (обязательна офлайн-аутентификация CDA)
000000000000000000000000 сумма равна 0.00
4111 код MCC из категории «Транспорт»
082600200000000826210307006359313725000000000000000000003f0002 — остальные поля
<-
9f2701 80 тип криптограммы (онлайн-криптограмма, ARQC)
9f3602 000f счетчик операций, ATC
9f4bxxxxxxx — данные для офлайн-аутентификации, содержащие
9f101a 02158000002200000000000000000000000A поле CVR (тип криптограммы ARQC)
9f2608 02d8b8f76b5c29fc — онлайн-криптограмма

Для карт MasterCard офлайн‑аутен­тифика­ция по бес­контак­тным кар­там обя­затель­на прак­тичес­ки в каж­дой стра­не и под­держи­вает­ся каж­дой бес­контак­тной кар­той. Если она не будет успешна, тер­минал обя­зан прер­вать такую тран­закцию. Поэто­му телефон про­веря­ет два поля: сум­му и код MCC.

Продолжение доступно только участникам

Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».

Присоединяйся к сообществу «Xakep.ru»!

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее

Подписаться
Уведомить о
1 Комментарий
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии