Sida 1 av 1

[SL] Bussarnas kortläsare hanterar inte kollisioner

Postat: måndag 30 oktober 2023 8:17
av Odd
Nu blir det tekniskt.

De kortläsare som sitter i SL-bussarnas utrustning för att läsa av NFC-taggar klarar inte av att hantera konkurrerande avläsningar, s k kollisioner. Det märker man när mobiltelefonens Aztec-kod skall läsas och det kommer kort inom räckhåll. Jag förvarar några kort, dock ej betalkort, i mobiltelefons fodral och det skulle vara en olägenhet, och en risk, att behöva ta ur dom varje gång biljetten skall viseras.

Ett problem är att när både kort och Aztec-kod läses in samtidigt så visas både rött och grönt inom väldigt kort tidsutrymme som endast väldigt skärpta bussförare identifierar.

Tunnelbanans spärrar hanterar detta fullt korrekt då de dels verkar skicka halt-kommandon till icke-betalkort och ignorerar visning av resultatet, vilket gör att när korrekt Aztec-kod presenteras så släpper spärren igenom.

Läsarna på bussarna i Göteborg verkar hantera det korrekt, inte ett enda fel hittills under de få gånger jag åkt på VTs app.

Re: [SL] Bussarnas kortläsare hanterar inte kollisioner

Postat: måndag 30 oktober 2023 11:57
av 4330
Inte ens i låg hastighet? :wink:

Re: [SL] Bussarnas kortläsare hanterar inte kollisioner

Postat: måndag 30 oktober 2023 12:16
av tuc
Mitt problem är snarare åt andra hållet, jag har en Samsung S21 med ett Tech21 EVO fodral.

I fodralet finns en kortficka där jag har mitt gröna SL kort, tyvärr är det helt omöjligt att läsa kortet såvida jag inte öppnar upp
fodralets lucka lite grann, vet ej om det fodralet som skärmar eller om telefonen påverkar läsarna.

Har inte NFC på i telefonen, får prova att stänga av telefonen helt någon gång, eller kanske tejpa fast kortet på utsidan av fodralet...

Re: [SL] Bussarnas kortläsare hanterar inte kollisioner

Postat: fredag 17 november 2023 22:58
av Magnus Ahltorp
Odd skrev: måndag 30 oktober 2023 8:17 De kortläsare som sitter i SL-bussarnas utrustning för att läsa av NFC-taggar klarar inte av att hantera konkurrerande avläsningar, s k kollisioner. Det märker man när mobiltelefonens Aztec-kod skall läsas och det kommer kort inom räckhåll.
Hur hanteras det här i t.ex. Skånetrafiken, som på vissa ställen tillåter mobiltelefoners NFC-betalkort med förenklad verifiering? Har de Aztec-kodläsare på samma ställe?

Re: [SL] Bussarnas kortläsare hanterar inte kollisioner

Postat: lördag 18 november 2023 11:08
av Odd
Bifogar skillnaden mellan QR och Aztec.
aztec-qr.png
aztec-qr.png (45.98 KiB) Visad 712 gånger
QR (Quick Response) är feltolerant upp till 30%, dvs det räcker med att 70% av koden är synlig för att den skall fungera med högsta feltoleransen.
Aztec-koden är feltolerant upp till 23%, dvs 77% av koden måste synas med högsta feltolerans.
Båda koderna tillhör kategorin 2D barcode, som i sig kan delas upp i stackade 1D streckkoder (streckkoder staplade på varandra) och i grid-baserade streckkoder. Att 2D-koderna kallas för "streckkoder" trots att de inte längre består av streck, är bara en artefakt av utvecklingen.

En anledning till att reseindustrin använder Aztec i stället för QR, trots att den senare är mer robust, beror på att IATA en gång i tiden valde den som standard, sen har övriga transportslag följt med.

Aztec-koden är patenterad men licensieras med Public Domain-licens, vilket gör att alla som vill kan implementera den.
QR-koden är patenterad men upphovsmannen har valt att inte utöva sin patenträtt och dessutom har patenten gått ut på de flesta ställen.

Att spärrar, bussar som är offline och handhållna läsare kan validera riktigheten i en resestreckkod beror på att man använder PKI. Koden är signerad med en privat nyckel och valideras med en publik nyckel. Därför kan en sådan validering ske omedelbart, till skillnad från när man använder ett token-baserad system, som det nya "gröna kortet" på SL och när man använder ett konto/kreditkort. Dessa kort bär bara en identitetsinformation, en token, som har ett unikt id-nummer, ungefär som passerbrickor. SL (och många andra) använder sig av samma format som de flesta konto-och kreditkort använder sig av, där man har ett nummer som är mellan 8 och 19 siffror. Den första siffran talar om vilket "nätverk" det är:
* 3 American Express
* 4 VISA
* 2 och 5 Mastercard
* 6 Discover

Kolla på ditt konto/kreditkort så ser du vilken siffra den börjar med och att det överensstämmer med dessa.

Förutom konto och kreditkort används följande siffror:
* 1-2 Flygindustrin och finans
* 7 Bränsleindustrin (om du har ett rent tankkkort så börjar den på 7)
* 8 Hälso- och sjukvård samt telekom
* 9 Övrigt.

Övriga siffror bestäms av vad som är överenskommet inom respektive kategori. De följande 6-8 siffrorna talar om vem som är utfärdare eller "ägare" och resten av siffrorna är kontonummer (motsvarande) till sista siffran som är en modus 10-checksumma.

Så, när du nu skall resa med ditt konto/kreditkort så accepterar biljettsystemet troligen endast nummer som börjar på 2, 4 och 5, och förmodligen även ytterligare filtrering av kommande nummer där kända osäkra serier blockeras. Checksumman kontrolleras och att det är giltigt. Jag är rätt säker på att det numera finns ytterligare information som används för att kunna göra en offline-förverifiering i den information som skickas från kortet.

Men biljettsystemet kan inte veta om det är giltigt, så när det har släppt igenom dig så görs en kontroll genom att systemet försöker att reservera en liten summa, typ 1 kr, då det är så man verifierar att ett kort är giltigt. Detta kan ta en stund, några millisekunder till flera sekunder, längre om det är via mobildata, och om man skulle tvinga alla att vänta på att denna verifiering så skulle det bli rubriker i media. Därför gör man avvägningen att det sannolikt är okej och att man i stället lägger aktuellt kort på en svartlista om valideringen inte fungerar. Det är detta som gör att du kan få grönt i spärren men sedan fastna i kontrollen för att du inte har en giltig biljett.

Oj, nu blev det långt... :-D