Bilder in QR Codes

Ich glaube über euren Vorschlag Bilddaten in den QR-Code mit einzubauen, habt ihr wohl nicht besonders gründlich nachgedacht:

Kleine Demo: Das Profilbild von Ulf hier im Forum „7_2.jpeg“ hat eine Auflösung von 120x120. Man erkennt gerade noch so, dass es Ulf ist. Das JPEG is 8,4 kB groß. In einem „normalen“ QR Code, den jede handelsübliche App noch scannen kann, passen maximal 7,000 8-bit Werte. Und da fehlen dann immer noch die Metadaten und vor allem die Signatur. Selbst mit iQR oder anderen neuartigeren Grafik-Codes stößt man da sehr schnell an die Grenzen. Schließlich muss der Code auf praktisch jedem billigen Mobiltelefondisplay anzeigbar sein, initial von einer vom Impfzentrum/Apotheke ausgedruckten Bescheinigung scanbar sein und genügend Reserven für die Fehlerkorrektur bereitstellen.

Stattdessen einen Link zu einem Bild einzubauen und den dann zu signieren geht auch nicht. Damit baust du wieder eine zentrale Bilddatenbank auf und zwingst die Scanner-App dazu ständig online zu sein.

Die Verknüpfung Zertifikat+Ausweis passt schon so. Man muss die Locations halt dazu zwingen auch den Ausweis zu kontrollieren. Aber leider wird hierzulande ja nicht einmal offensichtlichste Steuerhinterziehung ausreichend geahndet. Wisst ihr noch, als kurz vor Corona die Kassenbonpflicht unser größter Konfliktherd in der deutschen Gesellschaft war?

Natürlich haben wir darüber nachgedacht. Man kann durchaus Bilddateien noch deutlich kleiner bekommen als mein Bildchen hier im Forum, beispielsweise indem man auf schwarz-weiße Bilder setzt. Es reicht ja schon ein grober Abgleich des Aussehens, um Mogeleien jedenfalls deutlich zu erschweren.

Ich bin tendenziell auch eher der Meinung dass das technisch schwierig ist und nicht viel bringt.

Je kleiner man das Bild von der Auflösung her macht umso gleicher sehen sich Personen. Mit einer stärkeren Kompression gehen noch mehr Informationen verloren.

Da man das Bild nicht unter standardisierten Bedingungen aufnehmen wird (Lichtverhältnisse, Hintergrund, Schattenfall) wird als überprüfbare Information nicht viel mehr als Männlich oder Weiblich übrig bleiben.

Wenn man beim Beispiel von deinem Profilbild mit 120x120px (mehr wird es wohl technisch wirklich nicht werden) hier bleibt und annimmt, man bekommt es technisch in einen QR-Code, könnte das genauso gut ich mit einer anderen Brille sein - den Bart den ich derzeit trage hatte ich dann halt damals nicht.

Ich glaube da habt Ihr euch vergalopiert. Version 40 hat eine Kapazität von höchstens 2953 bytes. Dann ist der QR code aber auch schon unpraktikabel groß (siehe hier). Selbst wenn wir einen riesen QR code nehmen und alle 2953 bytes nehmen können, wird es schwierig ein solch kleines Bild zu erzeugen. Versuchsweise habe ich ein 2kb GIF von Lincoln erstellt. Das war noch halbwegs erkennbar aber hätte auch ein anderer Mann mit Bart sein können.

Aber wie gesagt, der QR Code auf dem Ausweis wird eine deutlich niedrigere Kapazität haben (eher wenige 100 bytes). Da ist ein Bild nicht machbar. Ein großer QR Code auf dem Ausweis wäre unpraktikabel weil zu Fehleranfällig und physikalisch zu groß.

1 „Gefällt mir“

Ein QR-Code ist ein zweidimensionales Array aus 1-Bit-Werten. Ein Schwarzweißbild (256 Graustufen) ist ein zweidimensionales Array aus 8-Bit-Werten. Man kann die Datenmenge pro Pixel zwar weiter reduzieren, z.B. nur 16 Graustufen unterscheiden, das bringt aber nichts mehr, weil man die zweidimensionale Ausdehnung des Bildes dadurch nicht reduziert. Letztlich bliebe nur noch das „Dithering“ (kennt das noch jemand). Das Bild ist dann quasi gerastert mit reinen schwarzweiß (1 Bit) Pixeln. Die „Pixeldichte“ ist dann in hellen Bereichen gering in dunklen größer. Aber das ist alles Murks.
Einfacher wäre es den QR-Code mit dem Impfzertifikat in das Portraitbild des Geimpften zu kopieren, also „QR-Code im Bild“ statt umgekehrt.

Die Überlegungen zu Pixelgröße und Graustufen ignorieren den genutzten Kompressionsalgorithmus.

„QR-Code im Bild“ vergisst dass dann das Bild gar nicht signiert ist. Dann kannst du jedes beliebige Zertifikat in jedes Bild kopieren.

Ich schließe mich den Skeptikern hier an. Zufällig weiß ich, dass die Verantwortlichen für den Impfzertifikat-QR-Code ohnehin schon Probleme hatten, die nötigen Informationen im QR-Code unterbringen, zu erkennen auch daran, dass der QR-Code bereits sehr groß gewählt wurde.

Ich würde sogar soweit gehen, dass die Aussage, man könnte sinnvoll ein Foto in QR-Codes hinterlegen eindeutig so abwegig ist, dass eine nachträgliche Klarstellung wünschenswert gewesen wäre. Kann man kleinlich finden, aber ich fand’s schon ärgerlich, dass technisch wenig bewanderte Hörer des Podcast so fehlinformiert werden.

1 „Gefällt mir“

Scusi, der QR-Code selbst ist auch nicht zertifiziert, sondern nur sein Inhalt. Und das ändert sich nicht, wenn man den QR-Code in Bild kopiert.

Ja eben, du kannst also jeden beliebigen gültigen Code von jemandem anderen in dein eigenes Bild kopieren.

Die Thematik hat sich zum Glück seither etwas weiterentwickelt. Inzwischen wird meiner Erfahrung nach häufiger gescannt.

Du hast mich leider nicht verstanden. Wie man zuverlässig ein Portrait des Geimpften mit seinem Impfzertifikat zusammenbringt, beantworte ich nicht. Mir geht es hier nur technisch darum, dass man nicht das Bild im QR-Code speichert, sondern umgekehrt den QR-Code ins Portrait einbringt. Ein Bild in brauchbarer Auflösung in einem QR-Code zu speichern ist nicht sinnvoll. Die Speicherkapazität eines QR-Codes üblicher Größe ist einfach zu gering.

Ja doch, darum geht’s doch die ganze Zeit. Du solltest verstehen, dass ein QR Code im Bild keinen Mehrwert bietet. Im Gegenteil. Das führt dazu, dass all diejenigen, die eben nicht die Grundsätze der Kryptographie durchdrungen haben, aber für die Überprüfung des Impfnachweises zuständig sind, einen falschen Rückschluss ziehen. Der Gedanke, dass QR-Code und Bild zusammengehören, obwohl das nicht stimmt, ist gefährlich.