Tag 01, Initiationspunkt
11 = statisk QR (genanvendelig, du indtaster beløbet selv).12 = dynamisk QR (engangsbrug, beløbet er preudfyldt af handlerens kassesystem).
Standards · EMVCo merchant payment QR
QR-koden på et restaurantbord, parkometer eller markedsstand kører næsten altid på EMVCo's TLV-format. Den indeholder handelsnavn, by, land, valuta, valgfrit beløb og en CRC-16-kontrolsum, der fejler, hvis payloaden er ændret. Klistermærkebytte-angrebet – at dække en rigtig handlers QR med angriberens QR – er verdens mest udbredte QR-svindel. At afkode QR-koden inden du betaler, viser dig, hvem du rent faktisk betaler.
Standarden er EMVCo QR Code Specification, udgivet af det samme EMVCo-konsortium, der definerede chip-og-pinkode-kort. To varianter deler det meste af formatet:
Næsten hvert lands øjeblikkelige betalingsskema er bygget oven på EMVCo MPM med et par landespecifikke tags lagt ovenpå:
Formatet er Tag-Length-Value-tekst, ingen kryptering, afkodbar af enhver QR-scanner. Handleridentiteten er kodet i klartekst og er det, din pung-app viser.
Alle EMVCo-payloads starter med 000201 (Payload Format Indicator). Det følgende er en sekvens af TLV-poster: to-tegns tag, to-cifret længde, værdi af den pågældende længde, gentaget.
11 = statisk QR (genanvendelig, du indtaster beløbet selv).12 = dynamisk QR (engangsbrug, beløbet er preudfyldt af handlerens kassesystem).
Landespecifik modtageridentifikator. Pix-nøgle (CPF / CNPJ / e-mail / telefon / EVP UUID), UPI Virtual Payment Address, PromptPay-telefon eller nationalt ID osv.
ISO 18245 4-cifret kategori. 5812 = restaurant, 5411 = dagligvare, 7011 = logi, 5541 = benzinstation osv.
ISO 4217 numerisk kode. 840 = USD, 978 = EUR, 826 = GBP, 986 = BRL (brasiliansk real), 356 = INR (indisk rupee).
Valgfri. Til stede i dynamiske QR-koder (handleren har preudfyldt den), fraværende i statiske QR-koder (du indtaster den selv).
Valgfri. 55 angiver, om en drikkepenge-prompt skal vises; 56 / 57 bærer et fast beløb eller procentbaseret bekvemmelighedsgebyr.
ISO 3166-1 alpha-2 landekode. Nyttig når betalingsapps understøtter grænseoverskridende overførsel.
Op til 25 tegn. Dette er det felt, din pung-app viser som "du betaler ___". Handleren kontrollerer fuldt ud, hvad der er her. En angriber, der opretter et klistermærkebytte, sætter den streng, de ønsker, her.
Op til 15 tegn. Hvor handleren er placeret.
Valgfri, men nyttig til svindeldetektering: en amerikansk handler, hvis postnummer ikke stemmer overens med byen, er et rødt flag.
Sub-TLV. Indeni: fakturanummer, mobilnummer, butiksetiket, loyalitetsnummer, referenceetiket, kundeetiket, terminaletiket, transaktionsformål.
CRC-16/CCITT-FALSE over alt forudgående (inklusive "6304"-headeren for CRC-TLV'en selv). Hvis dette ikke stemmer, er QR-koden ændret eller beskadiget.
Teknikken er nedslående enkel:
Handleren opdager det ikke, før dagens afstemning viser, at indtægterne er lave. Kunden opdager det ikke, fordi deres pung siger "du betalte", og angriberen kan sætte handlerens rigtige navn i tag 59. Eller tæt på ("Joe's Pizz4", "Joe's Pizzeria 2") – små variationer, som en travl kunde ikke bemærker.
Svindelen er dokumenteret i hvert land, hvor mobilbetalinger er udbredt: Brasilien (Pix klistermærkebytte ved parkometre), Indien (UPI klistermærkebytte ved benzinstationer), Kina (WeChat Pay klistermærkebytte på butiksruder), Singapore (PayNow ved hawkercentre), UK (donationsboks-QR-bytte), USA (parkometre i Austin, San Francisco, LA).
Hvad vores scanner viser dig:
Fysiske tegn at inspicere inden scanning:
Vores analysator genkender landestaget og mærker resultatet med det lokale skemanavn, når et er relevant. Dækker i øjeblikket 54 lande, herunder alle de store øjeblikkelige betalingssystemer. Se standardshubben for den fulde liste med detaljer pr. skema.
Slip QR-koden i vores scanner. Resultatet viser handler, by, land, beløb, valuta og om CRC-kontrolsummen er gyldig. Det tager et par sekunder. Det kan spare dig for prisen på en middag eller et helt måneds parkeringsbudget.