Rotwein, 0,75 l
Abgabe erst ab 18 Jahren.
age_over_18
Wegwerf-Showcase (dev) · Test-Ausweise, keine echten Daten · Widerruf wird hier nicht live geprüft · Prüfung mit QR-Code läuft über einen Tunnel des Browser-Herstellers (bei Chrome: Google)
Erste Tür · der Alterscheck
Zwei dieser Artikel fragen dasselbe eine Bit ab. Der dritte fragt zweimal — und bekommt zwei Antworten, die verschiedener nicht sein könnten.
Abgabe erst ab 18 Jahren.
age_over_18
Kein Alkohol, dieselbe Schranke. Altersgrenzen sind eine Kategorie-Frage, keine Getränkefrage.
age_over_18
Hier hört die angenehme Hälfte auf. Zwei Fragen an denselben Ausweis, in derselben Minute — und sie bekommen nicht etwa unterschiedliche Antworten, sondern Antworten von unterschiedlicher Art.
Diese Schwelle trägt der Ausweis. Die Brieftasche antwortet — und die Antwort ist nein. Ein beantwortetes Nein, kein Fehler.
Diese Schwelle trägt er nicht. Die Brieftasche sagt das selbst, auf dem Telefon, und zwar mit ihren eigenen Worten: es sind keine Informationen verfügbar, die geteilt werden können.
Der Unterschied ist der Inhalt dieser Kachel. Die Abfragesprache darf jede Schwelle erfragen; ins Credential legt sie niemand nachträglich hinein. Abgedeckt ist, was der Aussteller vorhergesehen hat — beim Alter ist der Händler nicht der Souverän, sondern Bittsteller beim Aussteller. Das ist hier nicht behauptet, sondern beobachtet: zwei Ausweise derselben App, Wochen auseinander ausgestellt, trugen unterschiedliche Schwellenmengen.
Dann fragen wir nicht nach einer Schwelle, sondern nach dem Geburtsdatum und rechnen selbst. Das funktioniert für jede Grenze, sofort — und es ist keine sparsame Abfrage mehr: aus einem Geburtsdatum folgt jede Altersgrenze und alles andere, was aus einem Geburtsdatum folgt.
Merken Sie den Unterschied: Bei „über 18“ konnten wir
Ihr Alter nicht erfahren. Hier entscheiden wir uns,
es nicht zu behalten. Das eine ist Architektur, das andere eine Zusage.
Gespeichert wird auch hier nur pass oder fail
— das Datum durchläuft den Dienst und wird nirgends abgelegt, auf
keiner Ebene.
Und genau das ist die Stelle, an der die Kontrolle sichtbar wechselt: Was preisgegeben wird, entscheidet nicht die Brieftasche, sondern der Fragende. Wer diesen Schritt gehen will, kann ihn gehen; die Wallet hält ihn nicht auf, sie zeigt ihn nur an. Ein Verfahren, das Alter beweist, ohne das Datum herzugeben, müsste genau diesen Ausweg verstellen — deshalb ist er hier ausgestellt und nicht weggelassen.
Dieselbe Prüfsequenz wie eben, bis auf den letzten Schritt: statt ein Bit zu lesen, das der Aussteller vorgesehen hat, lesen wir das Datum und rechnen die Schwelle age_over_53 selbst aus — dieselbe, an der die Brieftasche gerade noch passen musste. Achten Sie auf den Zustimmungs-Dialog: dort steht jetzt Geburtsdatum, nicht mehr „älter als …“.
Dieser Weg kann über einen Dritten führen. Den QR-Code zeigt nicht dieser Dienst, sondern Ihr Browser — und wenn er die Verbindung zu einem zweiten Gerät aufbaut, läuft sie über einen eigenen Tunnel-Server, bei Chrome also über Google. Ob das geschieht, entscheidet Ihr Browser, nicht diese Seite; abschalten oder beobachten lässt es sich hier nicht, deshalb wird es genannt statt verschwiegen.
Was dabei nicht passiert: Ausweisdaten sieht dort niemand. Die Antwort Ihrer Brieftasche ist für den Schlüssel dieses Dienstes verschlüsselt; durch den Tunnel läuft nur der Geheimtext. Was ein Tunnel-Betreiber sieht, sind Metadaten — dass zu diesem Zeitpunkt zwischen diesen beiden Endpunkten eine Präsentation stattfand. Wer denselben Ablauf ohne diesen Dritten will, öffnet die Prüfung auf dem Telefon selbst: dann steht die Brieftasche auf demselben Gerät und es gibt keinen Tunnel.
Verbleibende Gültigkeit: —. Danach ist die Transaktion endgültig abgelaufen und wird nicht wiederbelebt — eine kurze Lebensdauer ist das Einzige, was ein weitergereichter QR-Code hier kostet (INV-9).
Die Antwort Ihrer Brieftasche liegt noch im Speicher dieser Seite — nur dort, nur bis Sie sie verlassen. Genau darauf setzt ein Angreifer an. Beide Knöpfe schicken sie erneut an dieselbe Prüf-API, durch dieselbe Prüfsequenz wie eben. Es gibt keinen Demo-Modus, der hier abkürzt.
Eine fremde Adresse vortäuschen lässt sich hier nicht anklicken, und das ist keine Lücke, sondern eine Folge der Bauweise. Die Adresse dieses Dienstes wird nicht verglichen, sondern von der Brieftasche mitsigniert — es gibt kein Feld, das ein Knopf verstellen könnte. Ein Pfad, auf dem der Server für einen Moment eine andere Adresse erwartet, wäre genau der Sonderpfad, den die zwei Knöpfe oben vermeiden.
Vorgeführt wird er deshalb echt. Dieser Dienst erwartet genau eine Adresse:
https://age-check.dev.sit.svc.odj.cloud
Wer dieselbe Station über eine andere Adresse öffnet — etwa direkt über den Rechner statt über den Tunnel —, bekommt vom Browser eine Präsentation, die an jene andere Adresse gebunden ist. Sie scheitert dann an der Signaturprüfung des Inhabers, Schritt c, und zwar ohne dass irgendwo ein Adressfeld verglichen worden wäre. Genau das ist die stärkere Aussage: die Adresse steckt in der Unterschrift, nicht daneben.