-
Notifications
You must be signed in to change notification settings - Fork 14
Integrate CORSIGN QR Codes for positive tests #463
Comments
Hi @jona7o , Decodes to
(Edit: formatted by @heinezen for clarity) Binary:
Am I the only one who is seeing a problem here? |
Hi @vaubaehn, For example "darf ich rein" shows this screen if the code is valid or if the code is expired |
@jona7o |
@jona7o |
For the usage in corona warn app an encrypted version is no problem. I think for cwa only the |
Hi @jona7o , thanks for staying in discussion, I think it's important. To make my points understandble more easy, I'm emphasizing that I understood, either an app could be used to be used as an entry pass (showing a summary of the already extracted data from QR code), or the QR code itself on a paper copy for people without a mobile phone.
CWA is planning to provide rapid test data as an entry pass. For this, a testcenter-generated QR code will contain First Name, Last Name and Date of Birth as personal data base64 encoded, and some identifiers, that will enable CWA to fetch the test result from a secured server (to set the
True, but the personal data can be embedded into the QR code in an encrypted way, the app can decrypt it (there would be different options on how this could be possible to fetch an authorized decryption key from online db), and then persist it again encyrypted inside the app in line with standards of data security.
Thanks for your suggestion, it could be interesting, but I won't expose my private e-Mail here publicly :)
Now we're arriving at the most important points: Yes, absolutely true, the QR code would need to be treated as carefully as an official id card. But there are important differences between our Bundespersonalausweis and your QR code: Another problem is the 'time-limited value' of such a test certificate. After it expires, how many people will just leave the paper on an outside cafe's table? How many will throw it to a publicly accessible trash can without even thinking how many personal data they were just giving out of there hands? How many people would think about to blacken (or destory) the QR code before wasting it to the paper recycle can? There are two solutions: Or you encrypt the personal data, before embedding into QR code. The decryption key can be fetched from an online db from authorized apps/persons only. This will provide maximum security and won't burden testees with long explaing texts. If you're interested in details how this could be achieved, just leave a note here. You didn't answer my above two questions yet: Do you already have a warning text on your paper print outs? Could you provide an example here? (FYI: @rugk - is this discussion something, you or some of your fellows are interested in? Or can you calm me down ;)?) |
If the app can decrypt it, it somehow needs to get the key for that. This can't be static nor hardcoded into the app for obvious reasons (it's easily extractable). And:
No, I don't really consider this a solution and it is none, because the app also needs to get the key… And even if that worked, the "authorized personal" is just a smaller group of people and we just decreased the potential misuse potential. Another idea I'd had would be to turn the stuff around, encrypt and safe the sensitive data symmetrically and upload it to some server. The QR code then only contains the API details (some ID or so) and the encryption key. Then you can download and encrypt the data once you have the key. The advantage of that approach would mainly tackle this risk:
I do see this as a big risk, actually, as I think that problem is very realistic. So with the "encrypt data and send to server" you would have two advantages:
|
👍 Also, I still don't quite understand, why the name needs to be included in there anyway. Just to go one step back and consider whether we can just remove the data (data minimalisation ya' know). |
Hi, thanks for the feedback. I will answer tomorrow again. But for now this is the resulting PDF template. I am sure nobody will left this on a table or throws it away without "destroying" it. It contains quite the same values like most of the PCR lab resulting pdfs. The PDF is transmitted AES encrypted and the user needs a Passwort to get this PDF. Then the QR Code contains the data without encryption just signed with a PKI key, so that all the centralized tracing app are able to read the data and encrypt it their way. It is just the same if you tell the restaurant owner you are Person X, with Phone Y and so on and then showing a negative test result to prove that you are tested negative (just if you must bring a negative test in you area/city). He will write the data in his tracing app, that you have visited his restaurant. |
Hi @rugk , thanks a lot for contributing to this discussion!
and so I can easily bear it 😉 Yes, the texts are already quite long... But you also added some valuable points which are definetly worth to have a closer look,. I'm a bit short in time at the moment, but will try to comment in the evening. The reason why I'm putting so much effort in this issue, is, that I don't want to see CWA getting in trouble, and that CWA issue is very closely related to the one discussed here. Also, I'm very nervous that the planned implementation of the European Vaccination Pass will become a similar "data privacy El Dorado", and that these "entry passes" here is kind of a test run for that. Hi @jona7o ,
you added some more to the discussed points. |
So now i am back and in the meantime i have checked everything with our special attorney for computer science and privacy law. He told me that we could store all the data inside of the QR Code, but the tracing/corona related apps like CWA, Luca, "Darf ich rein" and others must treat this data as they have described the usage of data in their privacy policy. The only thing our attorney told me is that the QR Code should not contain more data than printed on the test result page. So if you just process the The test centers are also permitted to transmit the data, because in our use-case we don't save anything in a backend service and just transmit positive tests AES encrypted to the related health authority like "Rosenheim". Every Testcenter in the city or in the district of rosenheim is able to transmit their positive data. Right now we are talking with a lot of test center software developers and most of them are open to use this technology, because of the side-effect of transmitting their positive data encrypted. While doing my research on test certificates and transmitting test results, I came across a very frightening fact. It is common practice that the "schnelltest" centers transmit their data of positive persons as an unencrypted and unsigned email attachment every day. I'll hope our corsign service will fix this soon in a lot of smaller test centers, because they don't have access to RKI DEMIS. |
Feature description
We started a PKI system for official authorities. With this Tool they are able to give trust to testcenters in their region. With this trust the test centers are able to sign JWT Tokens inside a QR Code. The full JWT Modell and the signing process is explained open source at https://github.com/innFactory/corsign-core and next week we'll start to integrate this QR codes in a testcity (Rosenheim: https://www.ovb-online.de/rosenheim/rosenheim-stadt/corona-kontaktverfolgung-rosenheim-software-freiheit-90462363.html). So in the near future every testcenter in this region will create a CORSIGN QR Code with at least the following fields from the mentioned model:
Because of the JWT format there is also a JWK Remote Source (http://iss.corsign.de/.well-known/jwks.json) where all the public keys for sig check for tracing apps are / validation is stored. The CWA can check if the token is valid and then check if the isNegative field is false. All the other fields can be ignored. But this information could contain the needed information
The QR Code content looks like:
$issuer/v1/validate/$jwt (split before validate/ allows every camera app to scan the qr code and see the result)
for example with our implementation:
https://www.corsign.de/v1/validate/eyJraWQiOiI5ZjhmMzUxZi1kYWNmLTQyMmItOWUwMy05OWQ1YThhMTNmODYiLCJhbGciOiJSUzUxMiJ9.eyJzdWIiOiJjZDIxMGFjMS1hNTdkLTQ5ZTctOGJmMC1kZGVhMjRkMjNiYzYiLCJhdWQiOiJhcG8xLnJvc2VuaGVpbS5kZSIsIm5iZiI6MTYxODIyMzUyNSwiaXNzIjoiaHR0cHM6XC9cL2lzcy5jb3JzaWduLmRlIiwicGxkIjp7InBlcnNvbiI6eyJ6aXAiOiI4MTUwOCIsImNvdW50cnkiOiJHZXJtYW55IiwiZmlyc3RuYW1lIjoiVG9iaWFzIiwicGhvbmVOdW1iZXIiOiIwODE1IDAwIiwiY2l0eSI6InRlc3RjaXR5Iiwic2V4IjoiTSIsImlkQ2FyZE51bWJlciI6IiIsImVtYWlsIjoidGVzdEBpbm5mYWN0b3J5LmRlIiwibGFzdG5hbWUiOiJ0ZXN0In0sImluZm9ybWF0aW9uIjp7ImFwcERhdGExIjp7InRlc3QiOiJ0ZXN0MSJ9LCJpc05lZ2F0aXZlIjp0cnVlLCJhcHBEYXRhMiI6eyJ0ZXN0MiI6InRlc3QzIn0sInZhY2NpbmUiOiJibGEiLCJpc1ZhY2NpbmF0ZWQiOnRydWUsInRlc3RUeXBlIjoidGVzdCJ9fSwiZXhwIjoxNjE4Mzk2MzI1LCJpYXQiOjE2MTgyMjM1MjV9.CUgo2wGlKTb3Mcvh9H7NzxcnbKYwIfBWxBksa6VgPU6Yab26BmQiastf7sZyO1ZLb5Bo5zqODYkKLkZW4Nq0obHXIN5OOtZXXk6MhlPxDVs1p949g51z5blSYh-qNq_CdHq1nlZwIXAiUSzx4SZxBuVTBp_0xg8Eg0EUDdm9-7dO9a0Hp8Y8v9BXmlhIVTAAcd-iUo1jhYOlzoDesieB56EVsJ8-qmao1BTPeTl09ZbN4T6oaSHxx0-NLvqopf77PsKCAsFo5hror2tfzH7Wosx0XcafsDdCkjL2ic5-_dN0RjL1Piq0nS7ByK7lkEDuBT00R8pnbX2mC3e-dPGwpg
Because of the open format every personal information is just stored inside of the QR Codes. One of the Big Tracing Apps ("darf ich rein") has already implemented this qr code.
Problem and motivation
The problem is, that nearly every testcenter has it's own software system for their appoinments and tests. every software sends different qr codes for the result. with the corsign model we try to start an open source modell for this problem to connect the testcenter software with the tracing apps.
The text was updated successfully, but these errors were encountered: