Handy-App für den “Grünen Pass”

Grazie Franz,
interessante come nei commenti dell’HTML si trovano ulteriori dettagli:

<!-- (esito=NEG strDataEsame=2021-04-23 strDataOk=2021-04-22) -->

Ja wirklich interessant!

Damit ihr helfen könnt einige Rätsel zu lösen (was bedeutet genau
strDataEsame und strDataOk, wie ändern sich die Aussagen?), breite ich
meine Testergebnisse aus. Es können sich ja andere auch outen:

test n am 19.04.21 negativ, mit folgender url im qr:
https://cov.sabes.it/utils/qr/194AB917FEC944CFBAFC17869CB40CFE1618822630166BB794331E8BA4DDB8F66FB1517FBD826
Damals hatte ich die url nicht aufgerufen. jetzt nach dem Verfall der
Testaussage steht (ohne Namen ohne grünen Haken, mit "no data"):> <!--
(esito=NEG strDataEsame=2021-04-19 strDataOk=2021-04-22) -->
da gilt: strDataEsame=Datum des Tests
strDataOk=Test ist gültig bis (Testtag +72h)

test n+1 am 23.04.21 negativ, mit folgender url im qr:
https://cov.sabes.it/utils/qr/C0449D4119EA480BACD27CADCCD4302116191697552129DF9B5D9BE5049688D5E31CAE13BD774
Im Zeitraum der Gültigkeit des Tests. Es kommt der grüne Haken und mein
Namen im Ergebnis. Der Kommentar:

<!-- (esito=NEG strDataEsame=2021-04-23 strDataOk=2021-04-22) -->

da gilt: strDataEsame=Datum des Tests
strDataOk=eigentlich müsste jetzt hier 2021-04-26 stehenaber auch
2021-04-22 hat eine Bedeutung, nämlich die letzte Gültigkeit, die ohne
Unterbrechung ist.

Bin gespannt, was mein Test am Montag bringt und was die url von test
n+1 nach Verfall anzeigt.

Übrigens, wer eine falsche url angibt, bekommt eben falls die Anzeige
"no data", aber im Kommentar steht:> <!-- (esame non trovato) -->

Ein paar Anmerkungen zu Datenschutz und Fälschungssicherheit:

Den Datenschutz sehe ich nicht verletzt, es liegt an mir, wie ich damit
umgehe. Wenn jemand das Ergebnis in den sozialen Medien postet, ist er
wohl selbst schuld. Mehr als das Ergebnis und das Testdatum wird nicht
bekannt. Wenn die programmierer nicht katastrophale Fehler einegabut
haben, kann man eben nicht die Ergebnisse anderer Personen erfahren.

Wenn die Fälschungssicherheit nur an einem qr-decoder mit Anzeige der
darin enthaltenen html-Seite hängt, wäre das System tatsächlich leicht
zu manipulieren. Aber es wird sicher eine App geben, die
Azienda Sanitaria Bolzano/Bozen - Check Esame überprüfen kann und vielleicht auch noch
Zusatz-Infos anzeigt.

Gruß aus Brixen
Franz

Ciao Franz, ciao lista;

credo che il leak principale (e unico) di dati sensibili sia che questo
sistema permette di distinguere chi è vaccinato/guarito (scadenza del QR
code lunga) da chi ha semplicemente fatto il test (scadenza del QR corta).

Temo che su questo punto sia in provincia sia a livelli più alti stanno
procedendo in modo poco accorto: lo stesso problema lo avrà anche il
"green pass" europeo. L'unica soluzione che mi viene in mente e che
permetta allo stesso tempo di avere anche certificati cartacei è di
generare anche per i vaccinati o guariti certificati da 48-72 ore (un
po' scomodo...)

Dal punto di vista tecnologico, comunque, si poteva osare un po' di più:
con un'app e uno schema di firma digitale il sito della SABES sarebbe
stato inutile, i certificati potevano essere verificati offline, si
riduce la superficie di attacco (niente webapp potenzialmente
attaccabile con accesso a tutto il database dei certificati) e si
evitano problemi di capacità sui server di informatica alto adige.

Giacomo

Einige Leute auf Twitter haben im Lauf der letzten Woche einige Codes zusammengetragen und analysiert.

Die Ergebnisse sind wie folgt:
- Der Webserver cov.sabes.it hat Livezugriff auf die medizinische Datenbank (vermutlich über eine interne Schnittstelle und nicht direkt). Darauf deutet u.a. die Meldung "esame non trovato" im HTML-Source hin, wenn mit einem ungültigen Identifier zugegriffen wird.
- Der Identifier in der URL enthält zwei zufällige UUIDs (Version 4) sowie Testdatum und -zeit als UNIX-Timestamp.
- Format des Identifiers: <UUID><Timestamp><UUID>
- Alle drei Werte werden für den Datenbank-SELECT verwendet; ändert man auch nur einen der drei Werte, gibt die Abfrage "no status" zurück.

Aufbau des Identifiers am Beispiel von Franz Linter:

URL: https://cov.sabes.it/utils/qr/C0449D4119EA480BACD27CADCCD4302116191697552129DF9B5D9BE5049688D5E31CAE13BD774
Identifier: C0449D4119EA480BACD27CADCCD4302116191697552129DF9B5D9BE5049688D5E31CAE13BD774

UUID Timestamp UUID
C0449D4119EA480BACD27CADCCD43021 1619169755212 9DF9B5D9BE5049688D5E31CAE13BD774

Formatiert:
- UUID 1: C0449D41-19EA-480B-ACD2-7CADCCD43021
- Timestamp: 2021-04-23 09:22:35.212 (UTC)
- UUID 2: 9DF9B5D9-BE50-4968-8D5E-31CAE13BD774

Dies kann hoffentlich zur Klärung beitragen.

Schöne Grüße,
Andreas Baumgartner