vagababov/exposure-notifications-verification-server
Verification component for COVID-19 Exposure Notifications.
Exposure Notifications Verification Server
This is a reference implementation for an Exposure Notifications verification server, part of the broader Google Exposure Notifications system.
About the Server
This server follows the high level flow
for a verification system:
-
Authenticates and authorizes humans using Identity
Platform. -
Provides a web interface for epidemiologists (epi) to enter test parameters
(e.g. status + test date) to issue a verification code.-
Short verification codes are typically 6-10 numeric digits and can be
read over the phone to a patient. They expire quickly, usually in less
than one hour. -
Longer verification codes can be sent directly to the patient via SMS.
These codes generally last longer, like 24 hours.
-
-
Provides a JSON-over-HTTP API for exchanging the verification code for a
verification token. This API is called by the patient's device.- Verification tokens are signed JWTs with a configurable
validity period.
- Verification tokens are signed JWTs with a configurable
-
Provides a JSON-over-HTTP API for exchanging the verification token for a
verification certificate. This API call also requires an
HMAC of the Temporary Exposure Key
(TEK) data+metatata. This HMAC value is signed by the verification server to
be later accepted by an exposure notifications server. This same TEK data
used to generate the HMAC here, must be passed to the exposure notifications
server, otherwise the request will be rejected.-
Please see the documentation for the HMAC
Calculation -
The Verification Certificate is also a JWT
-