Tag 01, punkt inicjalizacji
11 = statyczny QR (wielokrotnego użytku, kwotę wpisujesz sam).12 = dynamiczny QR (jednorazowy, kwota z góry wpisana przez kasę sprzedawcy).
Standards · EMVCo merchant payment QR
QR na stoliku w restauracji, parkomacie czy straganie prawie zawsze działa na formacie TLV EMVCo. Zawiera nazwę sprzedawcy, miasto, kraj, walutę, opcjonalną kwotę i sumę kontrolną CRC-16, która nie zgadza się, jeśli ładunek został zmieniony. Atak zamiany naklejki — przyklejenie QR atakującego nad prawdziwym QR sprzedawcy — to najczęstsze oszustwo QR na świecie. Zdekodowanie QR przed płatnością pokazuje, komu naprawdę płacisz.
Standardem jest EMVCo QR Code Specification, opublikowana przez to samo konsorcjum EMVCo, które zdefiniowało karty chip-and-pin. Dwa warianty mają większość formatu wspólną:
Niemal każdy krajowy schemat płatności natychmiastowych jest zbudowany na bazie EMVCo MPM z kilkoma nakładanymi tagami specyficznymi dla danego kraju:
Format to tekst Tag-Length-Value, bez szyfrowania, dekodowalny przez dowolny skaner QR. Tożsamość sprzedawcy jest zakodowana w postaci zwykłego tekstu i to ją wyświetla Twoja aplikacja portfela.
Każdy ładunek EMVCo zaczyna się od 000201 (wskaźnik formatu ładunku). Następuje po nim sekwencja rekordów TLV: dwuznakowy tag, dwucyfrowa długość, wartość o tej długości — powtarzane.
11 = statyczny QR (wielokrotnego użytku, kwotę wpisujesz sam).12 = dynamiczny QR (jednorazowy, kwota z góry wpisana przez kasę sprzedawcy).
Identyfikator odbiorcy specyficzny dla danego kraju. Klucz Pix (CPF / CNPJ / e-mail / telefon / UUID EVP), wirtualny adres płatności UPI, telefon lub numer krajowy PromptPay itp.
4-cyfrowa kategoria ISO 18245. 5812 = restauracja, 5411 = sklep spożywczy, 7011 = zakwaterowanie, 5541 = stacja benzynowa itp.
Kod numeryczny ISO 4217. 840 = USD, 978 = EUR, 826 = GBP, 986 = BRL (real brazylijski), 356 = INR (rupia indyjska).
Opcjonalny. Obecny w dynamicznych QR (sprzedawca go z góry wpisał), nieobecny w statycznych QR (wpisujesz go sam).
Opcjonalny. 55 wskazuje, czy powinna pojawić się prośba o napiwek; 56 / 57 przenoszą stałą kwotę lub procentową opłatę dodatkową.
Dwuliterowy kod kraju ISO 3166-1. Przydatny, gdy aplikacje płatnicze obsługują przelewy transgraniczne.
Maks. 25 znaków. To pole, które Twoja aplikacja portfela wyświetla jako 'płacisz dla ___'. Sprzedawca w pełni kontroluje, co tu jest. Atakujący tworzący zamianę-QR może tu wpisać dowolny ciąg.
Maks. 15 znaków. Lokalizacja sprzedawcy.
Opcjonalny, ale przydatny do wykrywania oszustw: sprzedawca z USA, którego kod pocztowy nie pasuje do miasta, to sygnał ostrzegawczy.
Sub-TLV. W środku: numer rachunku, numer telefonu, etykieta sklepu, numer lojalnościowy, etykieta referencyjna, etykieta klienta, etykieta terminala, cel transakcji.
CRC-16/CCITT-FALSE nad wszystkim poprzedzającym (włącznie z nagłówkiem '6304' samego TLV CRC). Jeśli to nie pasuje, QR został zmieniony lub uszkodzony.
Technika jest przygnębiająco prosta:
Sprzedawca nie zauważa tego, dopóki codzienna reconciliacja nie wykaże niedoborów. Klient nie zauważa, bo jego portfel mówi 'zapłacono', a atakujący może umieścić prawdziwe imię sprzedawcy w tagu 59 — albo coś bliskiego ('Pizzeria Jasia 2', 'Piekarnia Konia'), ledwo zauważalne różnice, których zajęty klient nie wychwyci.
Oszustwo zostało udokumentowane w każdym kraju, w którym powszechne są płatności mobilne: Brazylia (zamiana naklejek Pix przy parkomatach), Indie (zamiana naklejek UPI przy stacjach benzynowych), Chiny (zamiana naklejek WeChat Pay na wystawach sklepowych), Singapur (PayNow przy straganach), Wielka Brytania (zamiana QR w skrzynkach na datki), USA (parkometry w Austin, San Francisco, LA).
Co nasz skaner Ci pokazuje:
Fizyczne wskazówki do sprawdzenia przed skanowaniem:
Nasz analizator rozpoznaje tag kraju i oznacza werdykt lokalną nazwą schematu, gdy ma to zastosowanie. Aktualnie obejmuje 54 kraje, w tym wszystkie główne systemy płatności natychmiastowych. Sprawdź centrum standardów, by zobaczyć pełną listę ze szczegółami dla każdego schematu.
Wrzuć QR do naszego skanera. Werdykt pokazuje sprzedawcę, miasto, kraj, kwotę, walutę i czy suma kontrolna CRC jest prawidłowa. Zajmuje kilka sekund. Może zaoszczędzić Ci koszt kolacji albo całomiesięcznego budżetu na parking.