This service provides an API, which is consumed by the CovidCertificate-SDKs used by the COVID Certificate Apps of Switzerland. | Read-only mirror of https://github.com/admin-ch/CovidCertificate-App-Verifier-Service — Bundesamt für Informatik und Telekommunikation. Issues & pull requests at the source.
  • Java 98.7%
  • Shell 1%
  • Python 0.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2023-02-22 06:21:37 +01:00
.github/workflows Update workflows for Java 17 2022-11-29 12:33:15 +01:00
ch-covidcertificate-backend-verifier fix etag 2023-02-02 06:15:15 +01:00
docker-compose load test manufacturers from db (valuesets) 2022-02-04 12:38:18 +01:00
.gitignore update test script to run SDK tests 2021-12-15 14:10:56 +01:00
LICENSE Project setup 2021-05-21 13:25:04 +02:00
README.md Update README.md 2021-11-30 10:01:53 +01:00
renovate.json change renovate config to do monthly batches 2022-03-02 10:41:28 +01:00
update_resources.sh sqlite with index for android 2022-12-15 10:12:06 +00:00

CovidCertificate-App-Verifier-Service

License: MPL 2.0

This project is released by the the Federal Office of Information Technology, Systems and Telecommunication FOITT on behalf of the Federal Office of Public Health FOPH. The app design, UX and implementation was done by Ubique.

Services

This service provides an API, which is consumed by the CovidCertificate-SDKs used by the COVID Certificate Apps of Switzerland. It publishes all the necessary data that is needed to verify a Digital Covid Certificate (DCC) in the client apps (offline). It also regularly syncs the DSCs with the EU-Gateway (dgc-gateway). The service itself does neither receive nor verify a DCC.

Webservice

Serves various data used for verifying the validaty of Digital Covid Certificates. Currently this includes:

  • Public keys of Document Signer Certificates (DSCs)
  • List of revoked UVCIs of Digital Covid Certificate (DCCs)
  • National rules
  • Value sets with test and vaccine mappings

National Rules

The service serves a set of certificate validation rules for Switzerland. The validation logic is written in the human-readable AifC which is compiled to CertLogic.

DGC Sync

The ch-covidcertificate-backend-verifier-sync module implements DGCSync, which updates the local database to match the list provided by the DGC gateway.

Every 30 minutes, an mTLS connection is set up and a GET request is sent to the gateway's /trustList endpoint, which responds with a list of CSCA and DSC certificates. Next, the certificates are validated: Expired certificates and DSCs without matching CSCA certificates are filtered out. Finally, the database is updated to match the filtered list exactly.

Usage

It is recommended to use the SDK (for iOS or Android) to verify the validity of Digital Covid Certificates. The SDK then interacts with this service. This service expects a bearer token to be passed in as Authorization header.

Authorization: Bearer <app-token>

Contribution Guide

This project is truly open-source and we welcome any feedback on the code regarding both the implementation and security aspects.

Bugs or potential problems should be reported using Github issues. We welcome all pull requests that improve the quality of the source code. Please note that the app will be available with approved translations in English, German, French, Italian.

Repositories

License

This project is licensed under the terms of the MPL 2 license. See the LICENSE file for details.