Тег 01, Point of Initiation
11 = статический QR (многоразовый, сумму вводите сами).12 = динамический QR (одноразовый, сумма предустановлена POS-терминалом торговца).
Standards · EMVCo merchant payment QR
QR на столе в ресторане, у парковочного счётчика или на рыночном прилавке почти всегда работает на основе TLV-формата EMVCo. В нём закодированы имя торговца, город, страна, валюта, опциональная сумма и контрольная сумма CRC-16, которая не совпадёт при изменении нагрузки. Атака с заменой наклейки — наклеить поддельный QR поверх настоящего QR торговца — является самым распространённым QR-мошенничеством в мире. Декодирование QR перед оплатой показывает, кому вы реально платите.
Стандарт — EMVCo QR Code Specification, опубликованный тем же консорциумом EMVCo, который определил карты с чипом и PIN-кодом. Два варианта разделяют большинство формата:
Почти каждая национальная схема мгновенных платежей построена на основе EMVCo MPM с несколькими специфичными для страны тегами:
Формат — тег-длина-значение в виде текста, без шифрования, декодируется любым QR-сканером. Идентификация торговца закодирована открытым текстом и именно её отображает ваше приложение-кошелёк.
Каждая EMVCo-нагрузка начинается с 000201 (Payload Format Indicator). Далее следует последовательность TLV-записей: двухсимвольный тег, двузначная длина, значение указанной длины — и так далее.
11 = статический QR (многоразовый, сумму вводите сами).12 = динамический QR (одноразовый, сумма предустановлена POS-терминалом торговца).
Идентификатор получателя, специфичный для страны. Ключ Pix (CPF / CNPJ / email / телефон / EVP UUID), виртуальный платёжный адрес UPI, номер телефона или национальный ID PromptPay и т.д.
4-значная категория ISO 18245. 5812 = ресторан, 5411 = продуктовый магазин, 7011 = гостиница, 5541 = АЗС и т.д.
Числовой код ISO 4217. 840 = USD, 978 = EUR, 826 = GBP, 986 = BRL (бразильский реал), 356 = INR (индийская рупия).
Необязательный. Присутствует в динамических QR (торговец предустановил), отсутствует в статических (вводите сами).
Необязательный. 55 указывает, должна ли появиться подсказка о чаевых; 56 / 57 несут фиксированную сумму или процентное вознаграждение.
Двухбуквенный код страны ISO 3166-1. Полезен, когда платёжные приложения поддерживают трансграничные переводы.
До 25 символов. Именно это поле ваш кошелёк показывает как «вы платите ___». Торговец полностью контролирует его содержимое. Злоумышленник при подмене наклейки пишет здесь любую строку.
До 15 символов. Местонахождение торговца.
Необязательный, но полезен для обнаружения мошенничества: торговец из США, чей почтовый индекс не совпадает с городом, — это тревожный сигнал.
Вложенный TLV. Внутри: номер счёта, номер мобильного телефона, метка магазина, номер программы лояльности, метка референса, метка клиента, метка терминала, назначение транзакции.
CRC-16/CCITT-FALSE по всему предшествующему содержимому (включая заголовок «6304» самого TLV с CRC). Если значение не совпадает, QR был изменён или повреждён.
Техника до смешного проста:
Торговец не замечает до конца дня, когда выручка оказывается меньше ожидаемой. Клиент не замечает, потому что его кошелёк пишет «вы заплатили», а злоумышленник может поставить реальное имя торговца в тег 59. Или близкое к нему («Пицца Джо4», «Пиццерия Джо 2») — небольшие отличия, которые занятой клиент не замечает.
Это мошенничество задокументировано во всех странах, где распространены мобильные платежи: Бразилия (подмена наклейки Pix у парковочных счётчиков), Индия (подмена UPI у заправочных станций), Китай (подмена WeChat Pay на витринах магазинов), Сингапур (PayNow у уличных торговцев), Великобритания (подмена QR ящиков для пожертвований), США (парковочные счётчики в Остине, Сан-Франциско, Лос-Анджелесе).
Что показывает наш сканер:
Физические признаки, которые стоит проверить перед сканированием:
Наш анализатор распознаёт тег страны и указывает в вердикте название местной схемы, если она применима. Сейчас охвачено 54 страны, включая все крупные системы мгновенных платежей. Полный список с детализацией по схемам — на странице стандартов.
Загрузите QR в наш сканер. Вердикт покажет торговца, город, страну, сумму, валюту и корректность контрольной суммы CRC. Занимает несколько секунд. Может сэкономить стоимость ужина или весь бюджет на парковку за месяц.