Googles Kamera verfälscht Links in QR-Codes
Seite 2: Fehler 2: Gelöschte Zeichen
Im Zuge der empirischen Untersuchung der zusätzlichen Punkte fand heise security eine zweite Fehlergruppe. Sie betrifft http(s)-Links mit bestimmten Top-Level-Domains, die länger als zwei Zeichen sind. Bei einer ganzen Reihe lässt die Künstliche Intelligenz der Camera-App eines oder mehrere Zeichen der Top-Level-Domain und gegebenenfalls auch des rechts davon stehenden Linktextes unter den Tisch fallen. So verweist ein Link auf die Webseite der katalanischen Unabhängigkeitsabstimmung https://referendum.cat
Google-User unerwartet auf die kanadische Adresse https://referendum.ca
.
Das widerfährt auch zahllosen anderen .cat-Domains. In ähnlicher Weise wird .int für internationale Organisationen zu .in (Indien), .pro zu .pr (Puerto Rico), oder .travel zur türkischen .tr-Zone verkürzt. Statt auf eine .apple-Domain zu verweisen, leitet die App lieber auf .app um, statt bei .amex kann man in Armenien (.am) landen, und wer .bet oder .beer sucht, muss eventuell mit Belgien (.be) vorliebnehmen.
Und so weiter. .ar und .au entpuppten sich in den heise-security-Versuchen als Fehlkürzungen für eine ganze Reihe junger TLD wie .army, .art, .arte und .arab respektive .audi, .audio, .auto und .autos. Im Unterschied zur ersten Fehlergruppe sind auch IDN-Domainnamen betroffen.
Kasuistische Ergebnisse
Nicht verstümmelt wurden bei unseren Versuchen zur Fehlergruppe 2 Hyperlinks, die rechts der TLD vier oder mehr weitere Zeichen (inklusive / ) aufweisen, etwa https://edu.audi/F103
. Manchmal reichten aber auch schon zwei Zeichen, etwa https://gas.audi/f
, um korrektes Auslesen zu erzwingen. In anderen Fällen löschte Googles Kamera-Algorithmus nicht nur die letzten Stellen der TLD, sondern auch kurzen Linktext rechts davon. https://hellonet.art/12
wurde so zu https://hellonet.ar
zerhackt. https://hellonet.arte/12
wurde korrekt übertragen, während https://hellonet.arte/1
zu https://hellonet.ar
schrumpfte.
Die Zeichen links der TLD beeinflussen Googles Künstliche Intelligenz ebenfalls. So lief bei https://www.audi
, und https://net.art/12
alles korrekt, während https://edu.audi
zu https://edu.au
, https://234.audi
zu https://234.au
und https://ipv4only.art/12
zu https://ipv4only.ar
verkamen. Manchmal hat die Camera-App Links mit "foo" korrekt ausgelesen; haben wir "foo" durch "ipv4only" ersetzt, löschte die App bisweilen wieder Zeichen an der TLD. Die Zeichenfolge ipv4only haben wir uns übrigens von der Zone ipv4only.arpa ausgeborgt.
Fehler 3: Verrückte Ziffern
Bei unserer Untersuchung wurde heise security von Adrian Dabrowski, einem Sicherheitsforscher der University of California Irvine, unterstützt. Er entdeckte nach unserem Hinweis ein weiteres verbundenes Problem: Die App stellt bei der Auflösung von http(s)-Links in QR Codes einen Punkt vor eine Ziffer, die nach der Zeichenfolge www steht. Beispiel: Die Royal Bank of Canada nutzt für einen Online-Banking-Dienst https://www6.rbc.com
– eine technisch einwandfreie Adresse. Aus einem QR-Code ausgelesen, verlinkt Googles Camera-App fälschlich auf https://www.6.rbc.com
, was zu einem 404-Fehler führt.
Das Schema scheint bei Kanadas Banken beliebt zu sein. Wir haben bei dortigen Finanzinstituten mehrere ähnliche Adressen gefunden, die wir per QR-Code und Google-Camera kaputt machen konnten. Selbstredend raten wir davon ab, Online-Banking über einen QR-Code aufzurufen, den man nicht selbst erstellt hat – unabhängig von den hier beschriebenen Fehlern einer bestimmten Applikation.
New York, New York
Als eher in öffentlich angebrachten QR-Codes anzutreffende URL sei https://www1.nyc.gov
erwähnt, die offizielle Webseite der Stadt New York. Die Adresse verkommt bei der Camera App zu https://www.1.nyc.gov
, was nicht auflöst. Diese Fälle von www+Ziffer sind relativ selten, und man ist versucht, kaum ein Sicherheitsproblem zu erkennen.
Allerdings lässt sich Fehler 3 mit Fehler 1 oder Fehler 2 koppeln. Aus https://www2co.at
wurde, erraten, https://www.2.co.at
– die App spendiert gleich zwei unwillkommene Trennpunkte, sodass aus einer Two-Level-Domain eine Four-Level-Domain wird. Da wird es schwer, den Durchblick zu bewahren. Kurze Linktexte rechts der TLD schützen ebenso wenig wie Unicode-Sonderzeichen im Domainnamen. Aus https://www2.arte/24
wird übrigens https://www.2.ar
. Alle Klarheiten beseitigt?