Privacy-Preserving Solution for European Union Digital Vaccine Certificates
Abstract
:1. Introduction
2. Related Work
3. Identified Security and Privacy Issues of EU Digital COVID-19 Certificates
- Ineffective certificate holder identification: The first issue of the EU DCC is the insufficient identification of the certificate holder. Although the certificate contains information about the holder such as name, date of birth, and nationality, it is not possible to verify and bind this information to the holder of the certificate without the presentation of additional identity documents, such as a national identity card, passport, or other similar documents according with the regulations of the respective state. These documents contain a photo of the holder, enabling their binding with the certificate holder. The problem arises when the verifying person lacks the authority to request these additional documents from the person being verified or this person refuses to provide such documents, is not capable of doing so, or does not possess them. Without this step, the binding of the presented certificate to the given person is not verified, and the meaning of the entire control process is not achieved. Consequently, nothing prevents multiple people from using a single certificate.Solution: Include a photo of the certificate holder in the digital vaccination certificate.
- High violation of user privacy: The second issue of the EU DCCs is the high violation of user privacy by revealing much personal information about the user. As part of the non-infectivity or completed vaccination verification phase, the user has to present a complete vaccination certificate in the form of a QR code to a verifier. Therefore, a large amount of sensitive information about the user is revealed to the verifier. The verifying person not only gets basic information about non-infectivity or completed vaccinations, but also lots of other sensitive information such as name, surname, date of birth, nationality, or applied vaccination type. Moreover, the verifier may even take pictures of the QR codes, which implies that they do not only verify the validity of the certificate but also handle and store the personal data of all entering persons. In several situations, it is not necessary to disclose all of this information. Leaving aside the matter of binding the certificate to a specific person, the only relevant information is whether the user has a valid certificate or not.Solution: Disclose only the necessary information from the certificate. Keep the rest of the information hidden from the verifier.
- Impersonation, alienation, or misuse of certificates: The third issue of the EU DCCs is that QR codes only include static data about the certificate holder and vaccination details. There is no interactive cryptographic protocol used in order to prevent replay attacks. Therefore, an eavesdropper or anyone with access to the QR code can easily load the certificate onto one’s own smartphone application, and the given certificate can be presented as their own. In fact, in some businesses, staff take pictures of the QR codes under the pretense that they will verify the QR code later or as evidence that they conducted the verification process.Solution: Implement an interactive cryptographic protocol (i.e., a challenge-response protocol) and integrate the user’s secret keys to the certificate verification phase.
- Missing revocation mechanisms: The fourth issue of the EU DCCs is the absence of a certificate revocation mechanism. No certificate revocation list is used in smartphone applications and throughout the EU DCC system. Therefore, there is no standardized procedure to revoke compromised, stolen or fake certificates, such as publicly available QR codes of certificates issued in the name of Adolf Hitler or Mickey Mouse. The same problem occurs with invalid certificates, e.g., due to illness of the certificate holder.Solution: Deploy online revocation databases which will include compromised, stolen, fake, and invalid certificates.
- Application hacking: The fifth issue of the EU DCC is the time parameter of the digital certificate and the graphical display of certificate validation in smartphone applications. The applications retrieve the time information from the digital certificate and compare it with the system time of the smartphone. If someone changes the system time, the application will display the desired information about the validity of the given certificate (i.e., valid or invalid). In case the QR code is not read by the verifying application and the verifying person is satisfied with the displayed information presented by the certificate holder’s smartphone application, changing the system time can be a serious problem. In fact, by adjusting the system time, the application will display the certificate as valid, even if the presented certificate has already expired.Solution: Use a verifying application to verify the validity of the digital vaccination certificates.
4. Cryptographic Preliminaries
4.1. Notation and the Security Assumptions
- Bilinearity: .
- Non-degeneracy: and
- Computability: There exists an efficient algorithm to compute .
4.2. Attribute-Based Credentials from wBB Signature
- SetupI: on the input of the security parameter , the protocol generates the public system parameters satisfying .
- CredKeygen: on the input of the public system parameters , protocol chooses for and outputs secret key and issuer parameters where .
- (Issue: on the input of the issuer’s private key and the user’s attributes , the protocol computes and auxiliary values for . The protocol outputs the credential .
- Show: on the input of the issuer parameters , the public system parameters , credential , user’s attributes , and an authentication challenge of the verifier, the protocol randomizes the credential by taking a random and computing , taking and computing:
- : on the input of the secret key , disclosed attributes , and user’s proof , the protocol computes:
4.3. Elliptic Curve Integrated Encryption Scheme (ECIES)
- KeyGen: on the input of the system parameters , the protocol randomly chooses the secret key and computes the public key .
- Enc: on the input of the public key and a message m, the protocol randomly chooses and computes and . Then, it computes the keys which are used for encrypting the message and for generating the message authentication code of ciphertext c. The algorithm outputs .
- Dec: on the input of the secret key and the ciphertext c, the protocol parses e as and computes and . If , then the algorithm returns ; otherwise it returns an invalid ⊥ result.
5. Privacy-Preserving Solution for EU Digital Vaccine Certificates
5.1. System Architecture
- Issuer/Revocation Authority (I/RA). This is the entity responsible for issuing individual attributes to the end-users. To do so, it runs the Issue protocol. The I/RA signs all issued attributes with its private key. We suppose that the I/RA is entrusted with the authority to process the users’ personal data.
- Verifier (VER). This is the entity responsible for verifying the ownership of required attributes by users who are interested in using the service. If revocation mechanisms are implemented in the system, the VER also verifies the revocation status of the presented certificates. Certificates are verified using the Verify protocol. In order to verify the attributes, the VER must possess the I/RA public key.
- User (USR). This is the entity that holds the attributes issued by the I/RA and anonymously provides proof of their ownership to the VER in whose services it is interested. For this purpose, the USR runs the Show protocol.
5.2. Cryptographic Core
- Setup: This algorithm works in two phases. At first, on the input of the security parameter , the I/RA generates and publishes the public parameters and generates the private/public key pair , where is published and is kept secret. Therefore, the I/RA works as follows:
- Choose a bilinear map , where , , and are groups of the same prime order q, is a generator of , and is a generator of .
- Define a secure hash function .
- Choose a symmetric encryption scheme .
- Choose as the issuer’s private key, and set as the issuer’s public key.
- Publish the public system parameters , , .
Second, on the input of the parameter , the VER performs the following steps:- Randomly choose a private key .
- Compute and publish its public key .
- Issue: On the input of the issuer’s private key and the user’s attributes , this protocol outputs the issuer’s signature of the user’s attributes . This algorithm is run as an interactive protocol between the I/RA and the USR as follows:
- The USR sends all its attributes to the I/RA.
- The I/RA computes the signatures of the USR’s attributes as where is its private key.
- The I/RA calculates the auxiliary values as , for .
- The I/RA sends and to the USR.
Issue protocol steps are sketched in Figure 4. - Show-Verify: This algorithm works in two phases. At first, on the input of the verifier’s public key , signatures , authentication challenge , and disclosed attributes (where D denotes the set of all revealed attributes), the USR outputs the encryption of the disclosed attributes , its cryptographic proof , and the randomized credential . This phase is defined as the Show algorithm. Secondly, on the input of the issuer’s public key , the encrypted attributes , the proof , and the randomized credential , the VER outputs 0/1, i.e., rejection or acceptance of the proof of knowledge of attributes. This phase is defined as the Verify algorithm. Therefore, the steps are as follows:
- The VER generates a random authentication challenge and sends it to the USR.
- The USR randomizes its digital credential and and constructs a proof of knowledge , including the VER’s authentication challenge .
- The USR generates a symmetric key and encrypts the attributes .
- The VER reconstructs the symmetric key , decrypts the attributes , and verifies the resulting proof by using its challenge and the issuer’s public key .
Figure 5 depicts the Show-Verify protocol in detail. The part of the protocol where the communication between the communicating parties is encrypted is marked in red.
6. Security Analysis
7. Implementation Details
7.1. Cryptographic Core
7.2. Data Structures
- Certificate: This is the most important data structure. It represents the user’s digital vaccine certificate. The structure itself contains the following values:
- –
- attributes: This is a value of type HashMap<Int, String> holding attributes in plain text form. Attributes are indexed based on their position (i.e., ), not their name.
- –
- attributesSigma: Similarly to the attributes, attributesSigma is also of type HashMap<Int, String>, where in this case, the values are the signatures of all issued attributes.
- –
- sigma: This value represents the main signature of .
- Pubkey: This structure represents the issuer’s public key. The class holds the value of HashMap<Int, String>, which is indexed in the same way as the attributes and attributesSigma structures.
- NonceRequest: This is the first data structure used within communication between the user’s application and the verifier terminal. Its purpose is to transmit the verifier’s challenge to the user.
- VerifierCert: This structure defines the digital certificate of the verifier issued by the I/RA. The verifier uses this certificate within the verification phase. In particular, the verifier decides which attributes the user should reveal during the verification phase. However, these attributes may vary based on the nature of the verifier. Therefore, the certificate is used to control whether a given verifier is entitled to see these required attributes or not. The data structure includes the following values:
- –
- issuer_name: The name of the I/RA. It is a variable of type String.
- –
- verifier_name: The name of the verifier. It is set when the certificate is issued. It is directly linked to the name of the entity that verifies digital certificates as part of the operation of services. attributes: A list of attributes that the verifier is entitled to query. This is a list of type List<String>.
- –
- signature: The digital signature of all values listed above.
- VerifyRequest: This data structure represents the user’s response to the previous verifier’s request NonceRequest and contains the following values: sigma_roof, disclosedValues, t_verify, sm, and sv. These values are used as cryptographic proof.
- JsonResponse: This data structure is used to process user digital vaccine certificates downloaded from the web server. The JSON containing this certificate has a slightly different form than the Certificate data structure, which is why this structure was created. A significant difference between the objects holding the certificates within the user application is the indexing method. Certificates downloaded from the web server are indexed by attribute name, while the application indexes the attributes using their position. The data structure contains the following information:
- –
- creation_time: Date of certificate issuance, data type String.
- –
- email: User email, data type String.
- –
- status: This information indicates whether the certificate is valid, data type Boolean.
- –
- certificate. Attributes of the digital vaccine certificate, data type Map.
- –
- sigma: Signatures of , data type Map.
- Device: The structure created to display selected information about discovered BLE devices and their subsequent display. This structure holds the following information:
- –
- name: Advertised device name of type String.
- –
- address: MAC address of the Bluetooth interface of the device type String. power: Signal power of the discovered device String.
7.3. Communication Protocol
7.4. Application Structure
- Models: Classes containing data structures that hold the data of different parts of the application.
- Views: Classes defining the graphical environment using the Jetpack Compose framework. These classes may include basic logic for controlling the rendering of individual elements.
- View Models: Classes containing models that affect the displayed values of the graphical interface of Android application activities.
7.5. Application Database
8. Experimental Results
8.1. Cryptographic Core Performance
8.2. Overall Performance Including BLE Communication Overhead
8.3. Performance on Smart Cards
9. Discussion
10. Conclusions
Author Contributions
Funding
Institutional Review Board Statement
Informed Consent Statement
Data Availability Statement
Conflicts of Interest
References
- Androulaki, E.; Circiumaru, I.; Vico, J.D.; Prada, M.; Sorniotti, A.; Stoecklin, M.; Vukolic, M.; Wallace, M. IBM Digital Health Pass Whitepaper: A Privacy-Respectful Platform for Proving Health Status. Cryptol. ePrint Arch. 2021, preprint. [Google Scholar]
- Karopoulos, G.; Hernandez-Ramos, J.L.; Kouliaridis, V.; Kambourakis, G. A survey on digital certificates approaches for the covid-19 pandemic. IEEE Access 2021, 9, 138003–138025. [Google Scholar] [CrossRef]
- Mbunge, E.; Fashoto, S.; Batani, J. COVID-19 Digital Vaccination Certificates and Digital Technologies: Lessons from Digital Contact Tracing Apps; Available at SSRN 3805803; SSRN: Rochester, NY, USA, 2021. [Google Scholar]
- Kissi, J.; Kusi Achampong, E.; Kumasenu Mensah, N.; Annobil, C.; Naa Lamptey, J. Moving towards Digitising COVID-19 Vaccination Certificate: A Systematic Review of Literature. Vaccines 2022, 10, 2040. [Google Scholar] [CrossRef] [PubMed]
- EU Digital COVID Certificate. Available online: https://commission.europa.eu/strategy-and-policy/coronavirus-response/safe-covid-19-vaccines-europeans/eu-digital-covid-certificate_en (accessed on 25 March 2023).
- Validation Applications čTečka and Tečka. Available online: https://covid.gov.cz/en/situations/vaccination/validation-applications-ctecka-and-tecka (accessed on 25 March 2023).
- EHealth Network. Available online: https://health.ec.europa.eu/system/files/2021-06/covid-certificate_json_specification_en_0.pdf (accessed on 25 March 2023).
- Halpin, H. A Critique of EU Digital COVID-19 Certificates: Do Vaccine Passports Endanger Privacy? In Proceedings of the 17th International Conference on Availability, Reliability and Security, Vienna, Austria, 23–26 August 2022; pp. 1–8. [Google Scholar]
- CoronaCheck App and Printed Corona Admission Ticket Privacy Statement. Available online: https://coronacheck.nl/en/privacy (accessed on 17 December 2021).
- COOV APP. Available online: https://ncv.kdca.go.kr/coov (accessed on 17 December 2021).
- Pols, F. Technologies for Transparency. Available online: https://infrablockchain.com/documents/InfraBlockchain_Technical_White_Paper_Version_2_4_ENG_202008.pdf (accessed on 17 December 2021).
- Digitální Certifikát EU COVID. 2021. Available online: https://ec.europa.eu/info/live-work-travel-eu/coronavirus-response/safe-covid-19-vaccines-europeans/eu-digital-covid-certificate_cs (accessed on 17 December 2021).
- Bichsel, P.; Binding, C.; Camenisch, J.; Groß, T.; Heydt-Benjamin, T.; Sommer, D.; Zaverucha, G. Specification of the Identity Mixer Cryptographic Library Version 2.3.0*; Technical Report; IBM: Armonk, NY, USA, 2010. [Google Scholar]
- COVID Credentials Initiative. Available online: https://www.covidcreds.org/ (accessed on 25 March 2023).
- Halpin, H. Vision: A critique of immunity passports and w3c decentralized identifiers. In Proceedings of the Security Standardisation Research: 6th International Conference, SSR 2020, London, UK, 30 November–1 December 2020; Proceedings 6. Springer: Berlin/Heidelberg, Germany, 2020; pp. 148–168. [Google Scholar]
- De Vasconcelos Barros, M.; Schardong, F.; Felipe Custódio, R. Leveraging self-sovereign identity, blockchain, and zero-knowledge proof to build a privacy-preserving vaccination pass. In Blockchain, and Zero-Knowledge Proof to Build a Privacy-Preserving Vaccination Pass; SSRN: Rochester, NY, USA, 2022. [Google Scholar]
- Eisenstadt, M.; Ramachandran, M.; Chowdhury, N.; Third, A.; Domingue, J. COVID-19 antibody test/vaccination certification: There’s an app for that. IEEE Open J. Eng. Med. Biol. 2020, 1, 148–155. [Google Scholar] [CrossRef] [PubMed]
- Barati, M.; Buchanan, W.J.; Lo, O.; Rana, O. A privacy-preserving distributed platform for COVID-19 vaccine passports. In Proceedings of the 14th IEEE/ACM International Conference on Utility and Cloud Computing Companion, Leicester, UK, 6–9 December 2021; pp. 1–6. [Google Scholar]
- Hasan, H.R.; Salah, K.; Jayaraman, R.; Arshad, J.; Yaqoob, I.; Omar, M.; Ellahham, S. Blockchain-based solution for COVID-19 digital medical passports and immunity certificates. IEEE Access 2020, 8, 222093–222108. [Google Scholar] [CrossRef] [PubMed]
- Kobbaey, T.; Bilquise, G.; Alqatawna, J.; Dashti, O. A Blockchain-based Vaccination Model for COVID-19 and Other Infectious Diseases. In Proceedings of the 2022 8th International Conference on Information Technology Trends (ITT), Dubai, United Arab Emirates, 25–26 May 2022; IEEE: Piscataway, NJ, USA, 2022; pp. 189–195. [Google Scholar]
- Camenisch, J.; Drijvers, M.; Dzurenda, P.; Hajny, J. Fast keyed-verification anonymous credentials on standard smart cards. In Proceedings of the IFIP International Conference on ICT Systems Security and Privacy Protection, Lisbon, Portugal, 25–27 June 2019; Springer: Berlin/Heidelberg, Germany, 2019; pp. 286–298. [Google Scholar]
- Gayoso Martínez, V.; Hernández Encinas, L.; Sánchez Ávila, C. A survey of the elliptic curve integrated encryption scheme. J. Comput. Sci. Eng. 2010, 2, 7–13. [Google Scholar]
- Boneh, D.; Boyen, X. Short signatures without random oracles and the SDH assumption in bilinear groups. J. Cryptol. 2008, 21, 149–177. [Google Scholar] [CrossRef]
- Smart, N.P. The exact security of ECIES in the generic group model. In Proceedings of the Cryptography and Coding: 8th IMA International Conference, Cirencester, UK, 17–19 December 2001; Proceedings 8. Springer: Berlin/Heidelberg, Germany, 2001; pp. 73–84. [Google Scholar]
- Shigeo, M. Mcl Library. Available online: https://github.com/herumi/mcl (accessed on 25 March 2023).
- Dzurenda, P. Cryptographic Protection of Digital Identity. Master’s Thesis, Brno University of Technology, Brno, Czech Republic, 2 September 2019. [Google Scholar]
- Casanova-Marqués, R.; Dzurenda, P.; Hajny, J. Implementation of Revocable Keyed-Verification Anonymous Credentials on Java Card. In Proceedings of the 17th International Conference on Availability, Reliability and Security, Vienna, Austria, 23–26 August 2022; pp. 1–8. [Google Scholar]
- Dzurenda, P.; Casanova-Marqués, R.; Malina, L.; Hajny, J. Real-world Deployment of Privacy-Enhancing Authentication System using Attribute-based Credentials. In Proceedings of the 17th International Conference on Availability, Reliability and Security, Vienna, Austria, 23–26 August 2022; pp. 1–9. [Google Scholar]
- Dodis, Y.; Ostrovsky, R.; Reyzin, L.; Smith, A. Fuzzy extractors: How to generate strong keys from biometrics and other noisy data. SIAM J. Comput. 2008, 38, 97–139. [Google Scholar] [CrossRef]
Device | Attributes | 2 | 10 | 20 | 30 | 40 | 60 | 80 | 100 | 200 | 500 |
---|---|---|---|---|---|---|---|---|---|---|---|
Google Pixel 4a | Setup [ms] | 1 | 4 | 7 | 10 | 12 | 18 | 25 | 31 | 68 | 162 |
Issue [ms] | 1 | 2 | 4 | 5 | 7 | 10 | 14 | 17 | 22 | 55 | |
Verify [ms] | 5 | 11 | 16 | 20 | 25 | 34 | 41 | 50 | 103 | 262 | |
Samsung S21 FE | Setup [ms] | 1 | 2 | 4 | 6 | 8 | 12 | 16 | 19 | 42 | 106 |
Issue [ms] | 1 | 2 | 3 | 5 | 6 | 9 | 11 | 14 | 32 | 82 | |
Verify [ms] | 3 | 7 | 10 | 13 | 16 | 22 | 26 | 32 | 65 | 163 | |
Honor 8X | Setup [ms] | 1 | 6 | 11 | 16 | 21 | 31 | 41 | 51 | 110 | 275 |
Issue [ms] | 1 | 3 | 6 | 9 | 12 | 17 | 24 | 28 | 58 | 150 | |
Verify [ms] | 8 | 19 | 27 | 34 | 42 | 57 | 69 | 84 | 165 | 410 | |
Average | Setup [ms] | 1.0 | 4.0 | 7.3 | 10.7 | 13.7 | 20.3 | 27.3 | 33.7 | 73.3 | 181.0 |
Issue [ms] | 1.0 | 2.3 | 4.3 | 6.3 | 8.3 | 12.0 | 16.3 | 19.7 | 37.3 | 95.7 | |
Verify [ms] | 5.3 | 12.3 | 17.7 | 22.3 | 27.7 | 37.7 | 45.3 | 55.3 | 110.0 | 278.3 |
Certificate Field | Field Key | Sample Value | Size [B] |
---|---|---|---|
First name | firstname | John | 17 |
Surname | surname | Doe | 14 |
Day of birth | brithdate_day | 25 | 19 |
Month of birth | brithdate_month | 8 | 20 |
Year of birth | birthdate_year | 1990 | 22 |
Photo | photo | (Base64 data) | 12, 600 |
Unique issuer ID | unique_id | 12345678 | 21 |
Vaccination day | vaccination_day | 10 | 21 |
Vaccination month | vaccination_month | 10 | 20 |
Vaccation year | vaccation_year | 2022 | 24 |
Order of dose | dose | 2 | 9 |
Total doses | total_dose | 2 | 15 |
Completed vaccination | completed_vaccination | True | 29 |
Vaccine | vaccine | SARS CoV-2 Sample Vaccine | 36 |
Product | product | Product A | 20 |
Manufacturer | manufacturer | Manufacturer A | 30 |
Issuer | issuer | BUT Brno, Czech Republic | 34 |
State of EU | state_eu | CZ | 14 |
Disclaimer/Publisher’s Note: The statements, opinions and data contained in all publications are solely those of the individual author(s) and contributor(s) and not of MDPI and/or the editor(s). MDPI and/or the editor(s) disclaim responsibility for any injury to people or property resulting from any ideas, methods, instructions or products referred to in the content. |
© 2023 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).
Share and Cite
Dzurenda, P.; Ricci, S.; Ilgner, P.; Malina, L.; Anglès-Tafalla, C. Privacy-Preserving Solution for European Union Digital Vaccine Certificates. Appl. Sci. 2023, 13, 10986. https://doi.org/10.3390/app131910986
Dzurenda P, Ricci S, Ilgner P, Malina L, Anglès-Tafalla C. Privacy-Preserving Solution for European Union Digital Vaccine Certificates. Applied Sciences. 2023; 13(19):10986. https://doi.org/10.3390/app131910986
Chicago/Turabian StyleDzurenda, Petr, Sara Ricci, Petr Ilgner, Lukas Malina, and Carles Anglès-Tafalla. 2023. "Privacy-Preserving Solution for European Union Digital Vaccine Certificates" Applied Sciences 13, no. 19: 10986. https://doi.org/10.3390/app131910986
APA StyleDzurenda, P., Ricci, S., Ilgner, P., Malina, L., & Anglès-Tafalla, C. (2023). Privacy-Preserving Solution for European Union Digital Vaccine Certificates. Applied Sciences, 13(19), 10986. https://doi.org/10.3390/app131910986