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:
- Underskrift gyldig. Anmeldelsen blev underskrevet med en hemmelig nøgle, der tilhører McGesund — underskriften passer til den offentlige modpart.
- Indhold uændret siden anmeldelsen blev afgivet. Den oprindelige tekst blev ikke ændret i hemmelighed efter afsendelsen.
- 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.
- 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.
| Niveau | Det, 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:
- 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.
- 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.
- 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.
Officielle standarder til efterlæsning
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.
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.
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.