Standards · EMVCo merchant payment QR

Безопасно ли платить по этому QR торговца?

QR на столе в ресторане, у парковочного счётчика или на рыночном прилавке почти всегда работает на основе TLV-формата EMVCo. В нём закодированы имя торговца, город, страна, валюта, опциональная сумма и контрольная сумма CRC-16, которая не совпадёт при изменении нагрузки. Атака с заменой наклейки — наклеить поддельный QR поверх настоящего QR торговца — является самым распространённым QR-мошенничеством в мире. Декодирование QR перед оплатой показывает, кому вы реально платите.

Сканировать QR торговца → Все стандарты →

Что это за формат

Стандарт — EMVCo QR Code Specification, опубликованный тем же консорциумом EMVCo, который определил карты с чипом и PIN-кодом. Два варианта разделяют большинство формата:

Почти каждая национальная схема мгновенных платежей построена на основе EMVCo MPM с несколькими специфичными для страны тегами:

Формат — тег-длина-значение в виде текста, без шифрования, декодируется любым QR-сканером. Идентификация торговца закодирована открытым текстом и именно её отображает ваше приложение-кошелёк.

Анатомия QR платёжного торговца

Каждая EMVCo-нагрузка начинается с 000201 (Payload Format Indicator). Далее следует последовательность TLV-записей: двухсимвольный тег, двузначная длина, значение указанной длины — и так далее.

Тег 01, Point of Initiation

11 = статический QR (многоразовый, сумму вводите сами).
12 = динамический QR (одноразовый, сумма предустановлена POS-терминалом торговца).

Теги 26–51, информация о платёжном счёте торговца

Идентификатор получателя, специфичный для страны. Ключ Pix (CPF / CNPJ / email / телефон / EVP UUID), виртуальный платёжный адрес UPI, номер телефона или национальный ID PromptPay и т.д.

Тег 52, код категории торговца (MCC)

4-значная категория ISO 18245. 5812 = ресторан, 5411 = продуктовый магазин, 7011 = гостиница, 5541 = АЗС и т.д.

Тег 53, валюта

Числовой код ISO 4217. 840 = USD, 978 = EUR, 826 = GBP, 986 = BRL (бразильский реал), 356 = INR (индийская рупия).

Тег 54, сумма

Необязательный. Присутствует в динамических QR (торговец предустановил), отсутствует в статических (вводите сами).

Теги 55–57, чаевые / дополнительная комиссия

Необязательный. 55 указывает, должна ли появиться подсказка о чаевых; 56 / 57 несут фиксированную сумму или процентное вознаграждение.

Тег 58, страна

Двухбуквенный код страны ISO 3166-1. Полезен, когда платёжные приложения поддерживают трансграничные переводы.

Тег 59, имя торговца

До 25 символов. Именно это поле ваш кошелёк показывает как «вы платите ___». Торговец полностью контролирует его содержимое. Злоумышленник при подмене наклейки пишет здесь любую строку.

Тег 60, город торговца

До 15 символов. Местонахождение торговца.

Тег 61, почтовый индекс

Необязательный, но полезен для обнаружения мошенничества: торговец из США, чей почтовый индекс не совпадает с городом, — это тревожный сигнал.

Тег 62, дополнительные данные

Вложенный TLV. Внутри: номер счёта, номер мобильного телефона, метка магазина, номер программы лояльности, метка референса, метка клиента, метка терминала, назначение транзакции.

Тег 63, контрольная сумма CRC

CRC-16/CCITT-FALSE по всему предшествующему содержимому (включая заголовок «6304» самого TLV с CRC). Если значение не совпадает, QR был изменён или повреждён.

Атака с заменой наклейки — QR-мошенничество №1 в мире

Техника до смешного проста:

  1. Злоумышленник печатает QR, ведущий на его собственный платёжный счёт.
  2. Печатает QR на наклейке (или распечатывает на самоклеющейся бумаге).
  3. Обходит рынок, ресторанный квартал или зону парковочных счётчиков и наклеивает поддельный QR поверх настоящего.
  4. Каждый сканирующий клиент платит злоумышленнику.

Торговец не замечает до конца дня, когда выручка оказывается меньше ожидаемой. Клиент не замечает, потому что его кошелёк пишет «вы заплатили», а злоумышленник может поставить реальное имя торговца в тег 59. Или близкое к нему («Пицца Джо4», «Пиццерия Джо 2») — небольшие отличия, которые занятой клиент не замечает.

Это мошенничество задокументировано во всех странах, где распространены мобильные платежи: Бразилия (подмена наклейки Pix у парковочных счётчиков), Индия (подмена UPI у заправочных станций), Китай (подмена WeChat Pay на витринах магазинов), Сингапур (PayNow у уличных торговцев), Великобритания (подмена QR ящиков для пожертвований), США (парковочные счётчики в Остине, Сан-Франциско, Лос-Анджелесе).

Как проверить QR перед оплатой

Что показывает наш сканер:

Физические признаки, которые стоит проверить перед сканированием:

Страновые схемы, которые мы идентифицируем

Наш анализатор распознаёт тег страны и указывает в вердикте название местной схемы, если она применима. Сейчас охвачено 54 страны, включая все крупные системы мгновенных платежей. Полный список с детализацией по схемам — на странице стандартов.

Связанные материалы

Проверьте QR перед оплатой

Загрузите QR в наш сканер. Вердикт покажет торговца, город, страну, сумму, валюту и корректность контрольной суммы CRC. Занимает несколько секунд. Может сэкономить стоимость ужина или весь бюджет на парковку за месяц.

Открыть сканер →