Sikkerhed + ægthed

Sådan kan du stole på McGesund-QR-koder

På en McGesund-QR-kode står vigtige oplysninger: hvilket firma den promoverer, om det er en anmeldelses-kode, en produkt-kode eller en signal-kode, og hvor længe den er gyldig. For at ingen kan efterligne, ombytte eller forfalske en QR-kode, er hver kode kryptografisk underskrevet — som et segl, som enhver smartphone kan kontrollere. Højere niveauer supplerer seglet med en anden, kvanteresistent underskrift — valgfrit endda med to uafhængige metoder parallelt.

Denne side forklarer, hvordan det fungerer — trin for trin, uden fagsprog.

Badges forklaret

Hver anmeldelse på McGesund kan bære et eller flere badges. De viser med det samme, hvordan anmeldelsen er kommet i stand, og hvad dens troværdighed bygger på.

  • Geo-verificeret

    Anmeldelsen blev afgivet direkte på stedet via QR-kode — smartphonens GPS lå inden for firmaets stedradius.

  • På stedet: Sundhedsmesse Hannover

    Ved et arrangement nævner badget anledningen. Kontrollen skete da mod arrangementsstedet, som virksomheden havde angivet på forhånd — ikke mod firmaadressen. Sådan kan man se, at anmeldelsen er afgivet på en messe eller en kampagnedag og ikke i forretningen.

  • Display-verificeret

    Anmeldelsen kom ind via modtagelsesdisplayet — roterende engangs-QR-kode med sekunders TTL, kan ikke fotograferes, kan ikke indløses på afstand. Masseindsamlinger er teknisk begrænset. Mere om displayet →

  • Kvantesigneret

    Ud over den klassiske signatur er denne anmeldelse signeret med en kvanteresistent algoritme (Falcon eller ML-DSA). Den kan derfor stadig verificeres, når klassiske algoritmer bliver sårbare over for kvantecomputere.

  • Blockchain-forankret

    Signaturnøglen til denne anmeldelse er forankret i Bitcoin-blockchainen via OpenTimestamps. Derved kan det uafhængigt af McGesund dokumenteres, at nøglen allerede fandtes på forankringstidspunktet.

  • Nøgle forankret i blockchainen

    Her er kun signaturnøglen indført i logbogen, ikke selve anmeldelsen. Det viser, at nøglen allerede fandtes på det nævnte tidspunkt — en senere indsat forfalskning ville springe i øjnene. Anmeldelser fra før omlægningen bærer dette badge.

  • Forankring i gang

    Tidsstemplet er undervejs: Det ligger hos de offentlige tidsstemplingstjenester og venter på at blive optaget i en Bitcoin-blok. Det tager normalt en til to timer. Derefter skifter badget til gult og nævner bloknummeret.

  • McGesund-verificeret

    Anmeldelsen blev manuelt kontrolleret og frigivet af McGesund-teamet — f.eks. efter afklaring af et identitetsbevis via en supportsag.

  • Under kontrol

    Anmeldelsen ligger til kontrol hos McGesund-teamet — f.eks. fordi geo-kontrollen var uden for radius, eller profilen endnu ikke har en verificeret indehaver. Indholdet forbliver skjult, indtil det frigives.

  • Uden krypto-signatur

    Anmeldelsen stammer fra tiden før vores Envelope-system (importeret ældre bestand). Dens ægthed kan teknisk ikke kontrolleres efterfølgende, og den tæller derfor ikke med i det samlede gennemsnit.

  • Signaturkontrol mislykkedes

    Den kryptografiske kontrol af anmeldelsen mislykkedes — f.eks. på grund af manipulerede byte, en tilbagekaldt nøgle eller en brudt Envelope. Anmeldelsen tæller ikke med i det samlede gennemsnit.

Flere badges kan kombineres — f.eks. „Geo-verificeret“ + „Display-verificeret“ på samme anmeldelse. Filtrene i kataloget og på firmaprofiler bruger de samme begreber.

Hvad ligger der i QR-koden

Inde i QR-koden ligger en lille, signeret datapakke. Den indeholder:

  • hvilket firma koden er til,
  • om det er en profil-kode, en produkt-kode eller en signal-kode,
  • hvornår den blev udstedt, og hvornår den udløber,
  • en underskrift, som enhver smartphone kan bruge til at kontrollere, at dataene kommer uændret fra McGesund.

QR-koden er dermed godt nok læsbar — men enhver ændring af indholdet ville ødelægge underskriften og blive afsløret ved første scanning.

Sådan kontrolleres en anmeldelse i browseren

På hver anmeldelse i en firmaprofil er der en knap „Kontrollér ægthed“. Den, der klikker på den, ser trin for trin fire grønne flueben:

  1. Underskrift gyldig. Anmeldelsen blev underskrevet med en hemmelig nøgle, der tilhører McGesund — underskriften passer til den offentlige modpart.
  2. Indhold uændret siden anmeldelsen blev afgivet. Den oprindelige tekst blev ikke ændret i hemmelighed efter afsendelsen.
  3. Post-kvante-underskrift gyldig. Ved højere sikkerhedsniveauer kontrolleres desuden en eller to kvantecomputer-resistente metoder (Falcon og/eller ML-DSA-87). På dobbelt-PQ-niveauet skal hver af de to underskrifter være gyldig for sig.
  4. Forankret i Bitcoin-blockchainen. Nøglen, der blev brugt til signaturen, blev beviseligt registreret før en bestemt dato — og anmeldelsen selv bærer sit eget tidsstempel, så snart det er bekræftet. Se næste afsnit.

Vigtigt: Kontrollen kører fuldstændigt i den besøgendes browser, ikke på McGesund-servere. Heller ikke vi kan påvirke resultatet.

Klassisk og kvanteresistent — kombineret

Hver QR-kode bærer en klassisk Ed25519-underskrift — hurtig, kompakt, etableret verden over. Den er indlejret i selve QR-koden og kan kontrolleres af enhver enhed direkte efter scanningen, også uden internet.

Højere niveauer supplerer denne underskrift med en eller to yderligere post-kvante-underskrifter — metoder, der også er sikre mod fremtidige kvantecomputere. Vi tilbyder to matematisk uafhængige metoder: Falcon (FN-DSA, i to størrelser, 512 og 1024) og ML-DSA-87 (NIST-primæranbefaling fra FIPS 204). For at QR-koden fortsat kan scannes skarpt, ligger disse underskrifter ikke i selve QR-koden, men krypteret i McGesund-backenden. Når du klikker på „Kontrollér ægthed“, indlæser din browser dem og verificerer dem lokalt.

På det højeste niveau („dobbelt-PQ“) bruges begge metoder parallelt. Dermed er anmeldelsen fortsat kvanteresistent, selv hvis en af de to metoder på et tidspunkt skulle blive brudt — ingen enkelt-algoritme-risiko.

Praktisk fordel: Du er allerede i dag rustet til i overmorgen — og QR-koden forbliver overalt lige så lille og lige så nem at scanne.

NiveauDet, der kontrolleres
Standard
Ed25519
Klassisk underskrift
Post-kvante (Falcon-512)
Ed25519 + Falcon-512
Klassisk + kvanteresistent (NIST Level 1)
Post-kvante Max (Falcon-1024)
Ed25519 + Falcon-1024
Klassisk + kvante-maksimalniveau (NIST Level 5)
Post-kvante (ML-DSA-87)
Ed25519 + ML-DSA-87
Klassisk + NIST-primæranbefaling (Level 5)
Dobbelt-PQ
Ed25519 + Falcon-1024 + ML-DSA-87
Klassisk + begge kvante-metoder parallelt

QR-koden forbliver på alle niveauer lige så stor og lige så nem at scanne — den ekstra sikkerhed kommer til fra McGesund-backenden, ikke fra selve QR-koden. Hvilke niveauer der er tilknyttet din plan, kan du se i QR-fanerne i din profil.

Hvorfor vi satser på Falcon

Falcon (FN-DSA) er ved siden af ML-DSA-87 den anden post-kvante-signaturmetode udvalgt af NIST og er i den afsluttende FIPS-206-standardisering. Vi tilbyder den alligevel allerede i dag — af tre grunde:

  1. Algoritme-diversitet — Falcon bygger på NTRU-gitre, ML-DSA-87 på Module-LWE. Begge metoder er matematisk uafhængigt konstrueret. Et angreb, der bryder den ene metode, bryder ikke automatisk den anden. På dobbelt-PQ-niveauet bruger vi begge parallelt — selv et fuldstændigt Falcon-brud ville lade anmeldelsen forblive gyldig via ML-DSA-87.
  2. Dataminimering — En Falcon-signatur er med ~666 hhv. 1280 byte betydeligt mere kompakt end en ML-DSA-87-signatur (4627 byte), ved et sammenligneligt sikkerhedsniveau. Pr. QR-kode gemmer vi dermed mindre krypto-materiale på vores servere. Det passer til vores princip om kun at indsamle og opbevare så mange data, som virkelig er nødvendige for ægthedskontrollen.
  3. Hurtigere browser-verifikation — Falcon-signaturer verificeres betydeligt hurtigere i slutkundens browser end ML-DSA-87. Den, der med ét klik kontrollerer en anmeldelses ægthed, ser resultatet mærkbart tidligere.

Hvis Falcon alligevel ikke bliver endelig: Eksisterende QR-koder, der er signeret med Falcon, forbliver funktionelle — de bærer jo desuden den klassiske Ed25519-underskrift i selve QR-koden, som kan verificeres offline og uafhængigt af Falcon. For det kvanteresistente lag ville vi omstille de berørte QR-koder til ML-DSA-87 på serversiden; den trykte QR-kode behøver ikke at blive udskiftet. Ed25519, Bitcoin-forankringen og anmeldelsens identitet forbliver uberørt i ethvert scenarie.

Bemærkning om Falcon-varianten: Den underliggende NIST-standard FN-DSA (FIPS 206) er i den afsluttende afstemning. Skulle FN-DSA ikke blive endeligt standardiseret, omstiller vi de berørte QR-koder til ML-DSA-87. Ed25519-signaturen og Bitcoin-forankringen af hver anmeldelse forbliver uberørt heraf — ægtheden af eksisterende anmeldelser går ikke tabt i noget scenarie.

Matematikken bag

For alle, der hellere regner efter end tror på det: Disse fordybelser forklarer trin for trin, hvad der matematisk sker, når en anmeldelse signeres.

Overblik over alle signaturmetoder

Bitcoin-blockchainen som tillidsanker

Hvem kontrollerer, at McGesund ikke i hemmelighed udskifter en nøgle for at få en forfalsket anmeldelse til at se „ægte“ ud?

Svar: Ingen behøver at stole på os. Hver nøgle, som vi underskriver anmeldelser med, melder vi til en offentlig digital logbog, som ingen kan ændre — Bitcoin-blockchainen. Så snart en nøgle er registreret dér (det tager 1–2 timer), står det for altid fast, fra hvornår den fandtes. Efterfølgende udskiftning er ikke mulig — det ville bryde den globale Bitcoin-konsensus.

Hvad du får ud af det:

  • Hver enkelt anmeldelse gemmer den blockchain-bloknummer, som underskriftsnøglen blev forankret i.
  • En senere indsat forfalskning ville være matematisk påviselig — nøglen ville endnu ikke have eksisteret på registreringstidspunktet.
  • Eksterne kontrollanter kan uafhængigt efterprøve forankringen med standardværktøjer, uden at skulle stole på os.

For nylig er vi gået et skridt videre: ikke kun nøglen, men hver anmeldelse i sig selv får sin egen post i denne logbog. Dermed står det ikke kun fast, hvornår nøglen fandtes, men hvornår netop denne anmeldelse fandtes i præcis denne ordlyd. At opfinde en anmeldelse bagefter og give den en ældre dato er dermed udelukket — ingen tekst skrevet i dag kommer ind i en Bitcoin-blok fra i går.

I kontroldialogen viser en enkelt række ankringens tilstand, og farven siger, hvor langt den er. Grøn: begge dele er på plads — nøgle og anmeldelse, hver med bloknummer. Gul: nøglen er forankret, anmeldelsens eget tidsstempel er stadig undervejs. Det tager en til to timer og er ikke en mangel, blot den tid en Bitcoin-blok kræver. Rød: endnu ingen bekræftet forankring.

Bruger det energi? Nej, ingen ekstra. McGesund driver ikke mining og udløser ingen egen transaktion. OpenTimestamps samler alle tidsstempler i et tidsvindue verden over til ét enkelt fingeraftryk; kun det havner i en transaktion, som calendar-serverne alligevel sender — om der er ti eller ti millioner poster i den, ændrer intet. Og Bitcoin-blokke opstår hvert tiende minut, uanset om vi skriver noget ind. Et tidsstempel skaber altså hverken en ekstra blok eller ekstra beregning.

Hvad der havner i blockchainenMcGesund-backendNøgle + beskrivelseén gang pr. nøgleanmeldelse + signaturved hver anmeldelseFingeraftryk (32 byte)kort, entydigt talsamlet til én rodLogbog 1Logbog 2Logbog 3BitcoinBlok~1–2 tBloknr. gemmes i nøgleregistretBitcoin-blokhøjdebevis + bloknr. ved anmeldelseneget tidsstempel pr. anmeldelse

Sådan ser kontrollen ud i profilen (eksempel: dobbelt-PQ-niveau)

Denne anmeldelses ægthed

Klassisk signatur (Ed25519)

Matematisk bekræftet af din browser

Post-kvante-signatur (Falcon-1024)

Matematisk bekræftet af din browser

Post-kvante-signatur (ML-DSA-87)

NIST-primæranbefaling — desuden bekræftet i browseren

Forankret i Bitcoin-blockchainen

Anmeldelse siden blok #826.114, nøgle siden blok #825.900 — begge verificerbare uafhængigt af McGesund.

Indhold uændret siden anmeldelsen blev afgivet

Tekst, hjerter og sted stemmer overens med den signerede datapost

Afgivet på stedet (geo-verificeret)

Afgivet på firmaets adresse

Hvad betyder det? Din browser har genberegnet de kryptografiske signaturer lokalt — uden at skulle stole på McGesund. Når alle flueben er grønne, er denne anmeldelse beviseligt ægte og uændret.

Forhåndsvisning — når du klikker på „Kontrollér ægthed“ i en rigtig profil, beregnes præcis denne kontrol i din browser.

Så længe anmeldelsens tidsstempel stadig afventer

Forankret i Bitcoin-blockchainen

Nøgle siden blok #825.900 · anmeldelse følger (~1–2 t)

Gult flueben i stedet for grønt: nøglen er allerede forankret, anmeldelsens eget tidsstempel følger om en til to timer. Når det er bekræftet, bliver rækken grøn og nævner begge blokke.

Nøgler med livscyklus

Hver signaturnøgle har en start- og en slutdato. Vi roterer nøglerne rutinemæssigt — nyudstedte QR-koder underskrives med den nye nøgle, ældre QR-koder bevarer deres gyldighed, fordi den oprindelige nøgle fortsat er tilgængelig til verifikation.

Til nødstilfælde holder vi yderligere reservenøgler klar, som allerede er forankret i Bitcoin-blockchainen. Dermed kan vi ved behov skifte med det samme, uden at der opstår et tillidshul.

Skulle en nøgle blive kompromitteret, tilbagekalder vi den — alle QR-koder fra denne nøgleperiode mister straks deres gyldighed. I så fald informerer vi dig og stiller nye QR-koder til rådighed.

Hvad signaturen ikke kan

En underskrift beskytter mod forfalskning, ikke mod kopiering — en fotograferet QR-kode kan stadig scannes. Derfor arbejder vi med yderligere lag:

  • Geo-verifikation ved anmeldelser: indsendelser uden for den tilladte omkreds omkring din adresse afvises på serversiden.
  • Engangs-brug ved produkt-QR-koder: efter den første anmeldelse er koden opbrugt.
  • Tilbagekaldsfunktion direkte i dashboardet: du kan når som helst deaktivere enhver QR-kode.

Modtagelsesdisplay (Classic+)

Fra tariffen Classic+ kan du desuden opstille en modtagelses-tablet, der viser roterende QR-koder. Hver kode er kun gyldig i kort tid og kan kun indløses én gang. Dermed opstår et yderligere, stedbundet ægthedsspor, som et klassisk trykt QR-opslag ikke kan levere.

  • Koden skifter automatisk med korte mellemrum. Den, der fotograferer en kode og vil scanne den senere, ender ved en udløbet kode.
  • Scan én gang, anmeld én gang: en vellykket kode spærres med det samme — genbrug er udelukket.
  • Stedpligt ved afsendelse: anmeldelser uden for den tilladte omkreds vises ikke automatisk, men havner i frigivelsen kun efter manuel kontrol og strenge kriterier.
  • Tablet-tilkobling kan når som helst tilbagekaldes: en mistet eller udrangeret tablet spærrer du med ét klik i dashboardet.

Anmeldelser, der kommer ind på denne måde, bærer det violette badge „Display-verificeret“ — synligt på din profil og i anmeldelsesoversigten.

Selve anmeldelsen signeres desuden kryptografisk ved lagringen — uanset om den er kommet ind via et display eller en klassisk QR-kode. Dermed hænger hver enkelt anmeldelse ved den samme beviskæde, som forklares i afsnittet Bitcoin-forankring.

Udløb og fornyelse

Hver QR-kode har sin egen udløbsdato (standard: to år fra udstedelsen). 60 dage før udløb får du en e-mail-påmindelse. Derefter kan du i dashboardet med ét klik oprette og udskrive en ny QR-kode — den gamle mister automatisk sin gyldighed med sin udløbsdato.

Ved mistanke om misbrug

Hvis du har mistanke om, at en QR-kode misbruges (for eksempel et opslag et sted, hvor det ikke hører hjemme), tilbagekalder du det blot i dashboardet via papirkurv-ikonet — eksisterende opslag fungerer derefter ikke længere. Ved større hændelser bedes du henvende dig via supportområdet.

Kort sagt: Den, der scanner en McGesund-QR-kode, kan stole på, at dataene bag den ikke er forfalskede og ikke i hemmelighed ændrede — kontrollerbart i din egen browser, uden at skulle stole på os, med et anker i verdens største offentlige blockchain.

Kontakt →