From e9e1ed1c9d5579393459d03846cf78aa00c249ff Mon Sep 17 00:00:00 2001 From: Maximilian Lenkeit Date: Mon, 15 Mar 2021 12:20:34 +0100 Subject: [PATCH 01/10] feat(evreg): describe summary --- docs/spec/event-registration-summary.md | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 docs/spec/event-registration-summary.md diff --git a/docs/spec/event-registration-summary.md b/docs/spec/event-registration-summary.md new file mode 100644 index 0000000..80e41e8 --- /dev/null +++ b/docs/spec/event-registration-summary.md @@ -0,0 +1,11 @@ +# Event Registration - Summary + +**NB: Draft, supposed to be released on GitHub for an open discussion.** + +Presence Tracing - in CWA also referred to as _Event Registration_ - aims at notifying people of a potential COVID-19 infection if they have been to the same venue at a similar time than a positively tested individual. It addresses the potential of airborne transmission in spaces with poor ventilation despite maintaining physical distance. As such, it complements BLE-based proximity tracing with the Exposure Notification Framework. + +CWA proposes a fully-automated decentral solution for Presence Tracing which works independent of local health authorities. It integrates into the existing verification processes of CWA to issue warnings. The solution prioritizes the speed of issuing warnings over their accuracy. A higher degree of accuracy would require manual assessment by local health authorities and the respective resources to do so and is currently not on scope. + +In summary, the proposed solution allows a _host_ to create a venue through CWA. All necessary data about the venue is encoded in a QR code which can be presented on a mobile device or printed out, for example to be posted at the entrance of the venue. An _attendee_ can check in to the venue by scanning the QR code. Check-ins are stored locally on the mobile device and deleted automatically after two weeks. + +When an attendee tests positive for COVID-19, they can upload their check-ins along with their Diagnosis Keys to the CWA Server. The CWA Server publishes the relevant check-ins on CDN as _warnings_. Clients regularly download these warnings and match them against the local check-ins on the mobile device. If there is a match and the time an attendee spent at a venue overlaps with a warning for a sufficiently long time, the attendee receives a warning in CWA similar to how warnings are issued for BLE-based exposures. \ No newline at end of file From f72246d8308a9c3e23b6c5c841a5f6c92d4db3af Mon Sep 17 00:00:00 2001 From: Maximilian Lenkeit Date: Mon, 15 Mar 2021 12:46:24 +0100 Subject: [PATCH 02/10] docs(evreg): use sarscov2 over covid19 --- docs/spec/event-registration-summary.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/spec/event-registration-summary.md b/docs/spec/event-registration-summary.md index 80e41e8..baf2361 100644 --- a/docs/spec/event-registration-summary.md +++ b/docs/spec/event-registration-summary.md @@ -2,10 +2,10 @@ **NB: Draft, supposed to be released on GitHub for an open discussion.** -Presence Tracing - in CWA also referred to as _Event Registration_ - aims at notifying people of a potential COVID-19 infection if they have been to the same venue at a similar time than a positively tested individual. It addresses the potential of airborne transmission in spaces with poor ventilation despite maintaining physical distance. As such, it complements BLE-based proximity tracing with the Exposure Notification Framework. +Presence Tracing - in CWA also referred to as _Event Registration_ - aims at notifying people of a potential SARS-CoV-2 infection if they have been to the same venue at a similar time than a positively tested individual. It addresses the potential of airborne transmission in spaces with poor ventilation despite maintaining physical distance. As such, it complements BLE-based proximity tracing with the Exposure Notification Framework. CWA proposes a fully-automated decentral solution for Presence Tracing which works independent of local health authorities. It integrates into the existing verification processes of CWA to issue warnings. The solution prioritizes the speed of issuing warnings over their accuracy. A higher degree of accuracy would require manual assessment by local health authorities and the respective resources to do so and is currently not on scope. In summary, the proposed solution allows a _host_ to create a venue through CWA. All necessary data about the venue is encoded in a QR code which can be presented on a mobile device or printed out, for example to be posted at the entrance of the venue. An _attendee_ can check in to the venue by scanning the QR code. Check-ins are stored locally on the mobile device and deleted automatically after two weeks. -When an attendee tests positive for COVID-19, they can upload their check-ins along with their Diagnosis Keys to the CWA Server. The CWA Server publishes the relevant check-ins on CDN as _warnings_. Clients regularly download these warnings and match them against the local check-ins on the mobile device. If there is a match and the time an attendee spent at a venue overlaps with a warning for a sufficiently long time, the attendee receives a warning in CWA similar to how warnings are issued for BLE-based exposures. \ No newline at end of file +When an attendee tests positive for SARS-CoV-2, they can upload their check-ins along with their Diagnosis Keys to the CWA Server. The CWA Server publishes the relevant check-ins on CDN as _warnings_. Clients regularly download these warnings and match them against the local check-ins on the mobile device. If there is a match and the time an attendee spent at a venue overlaps with a warning for a sufficiently long time, the attendee receives a warning in CWA similar to how warnings are issued for BLE-based exposures. \ No newline at end of file From 2520f8eb74f17ecb0862ec67db6ad325486d1635 Mon Sep 17 00:00:00 2001 From: Maximilian Lenkeit Date: Mon, 15 Mar 2021 16:52:13 +0100 Subject: [PATCH 03/10] docs(evreg): describr QR code structure --- diagrams/drawio/evreg-tam-block.drawio | 241 ++++++++++++++++++++++++ diagrams/png/evreg-tam-block.png | Bin 0 -> 157400 bytes docs/spec/event-registration-summary.md | 89 ++++++++- 3 files changed, 325 insertions(+), 5 deletions(-) create mode 100644 diagrams/drawio/evreg-tam-block.drawio create mode 100644 diagrams/png/evreg-tam-block.png diff --git a/diagrams/drawio/evreg-tam-block.drawio b/diagrams/drawio/evreg-tam-block.drawio new file mode 100644 index 0000000..7fd5fd1 --- /dev/null +++ b/diagrams/drawio/evreg-tam-block.drawio @@ -0,0 +1,241 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/diagrams/png/evreg-tam-block.png b/diagrams/png/evreg-tam-block.png new file mode 100644 index 0000000000000000000000000000000000000000..6e8c3b35782b0e246fd1228e9439c54ac2fa8146 GIT binary patch literal 157400 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
MloE=v%Q}< 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 a=(O7Maz!)z!s!#>qouB=R;pqZ{J#MGZlJmV literal 0 HcmV?d00001 diff --git a/docs/spec/event-registration-summary.md b/docs/spec/event-registration-summary.md index baf2361..1ad5198 100644 --- a/docs/spec/event-registration-summary.md +++ b/docs/spec/event-registration-summary.md @@ -1,11 +1,90 @@ # Event Registration - Summary -**NB: Draft, supposed to be released on GitHub for an open discussion.** - Presence Tracing - in CWA also referred to as _Event Registration_ - aims at notifying people of a potential SARS-CoV-2 infection if they have been to the same venue at a similar time than a positively tested individual. It addresses the potential of airborne transmission in spaces with poor ventilation despite maintaining physical distance. As such, it complements BLE-based proximity tracing with the Exposure Notification Framework. -CWA proposes a fully-automated decentral solution for Presence Tracing which works independent of local health authorities. It integrates into the existing verification processes of CWA to issue warnings. The solution prioritizes the speed of issuing warnings over their accuracy. A higher degree of accuracy would require manual assessment by local health authorities and the respective resources to do so and is currently not on scope. +CWA proposes a fully-automated decentral solution for Presence Tracing which works independent of local health authorities. It integrates into the existing verification processes of CWA in order to issue warnings. The solution prioritizes the speed of issuing warnings over their accuracy. A higher degree of accuracy would require manual assessment of each warning by local health authorities and the respective resources to do so and is currently not on scope. -In summary, the proposed solution allows a _host_ to create a venue through CWA. All necessary data about the venue is encoded in a QR code which can be presented on a mobile device or printed out, for example to be posted at the entrance of the venue. An _attendee_ can check in to the venue by scanning the QR code. Check-ins are stored locally on the mobile device and deleted automatically after two weeks. +In summary, the proposed solution allows a _host_ to create a venue through CWA. All required attributes about the venue are encoded in a QR code which can be presented on a mobile device or printed out, for example to be posted at the entrance of the venue. An _attendee_ can check in to the venue by scanning the QR code. Check-ins are stored locally on the mobile device and deleted automatically after two weeks. -When an attendee tests positive for SARS-CoV-2, they can upload their check-ins along with their Diagnosis Keys to the CWA Server. The CWA Server publishes the relevant check-ins on CDN as _warnings_. Clients regularly download these warnings and match them against the local check-ins on the mobile device. If there is a match and the time an attendee spent at a venue overlaps with a warning for a sufficiently long time, the attendee receives a warning in CWA similar to how warnings are issued for BLE-based exposures. \ No newline at end of file +When an attendee tests positive for SARS-CoV-2, they can upload their check-ins along with their Diagnosis Keys to the CWA Server. The CWA Server publishes the relevant check-ins on CDN as _warnings_. Clients regularly download these warnings and match them against the local check-ins on the mobile device. If there is a match and the time an attendee spent at a venue overlaps with a warning for a sufficiently long time, the attendee receives a warning in CWA similar to how warnings are issued for BLE-based exposures. + +![TAM Diagram for Event Registration](./../../diagrams/png/evreg-tam-block.png) + +## QR Code Structure + +The QR code of a venue contains all required attributes for Presence Tracing, so that no server communication is necessary when an attendee checks in to a venue + +The data structure is described by the following Protocol Buffer message `TraceLocation`: + +```protobuf +message TraceLocation { + // uuid + string guid = 1; + uint32 version = 2; + TraceLocationType type = 3; + // max. 150 characters + string description = 4; + // max. 150 characters + string address = 5; + // UNIX timestamp (in seconds) + uint64 startTimestamp = 6; + // UNIX timestamp (in seconds) + uint64 endTimestamp = 7; + uint32 defaultCheckInLengthInMinutes = 8; +} + +enum TraceLocationType { + LOCATION_TYPE_UNSPECIFIED = 0; + LOCATION_TYPE_PERMANENT_OTHER = 1; + LOCATION_TYPE_TEMPORARY_OTHER = 2; + + LOCATION_TYPE_PERMANENT_RETAIL = 3; + LOCATION_TYPE_PERMANENT_FOOD_SERVICE = 4; + LOCATION_TYPE_PERMANENT_CRAFT = 5; + LOCATION_TYPE_PERMANENT_WORKPLACE = 6; + LOCATION_TYPE_PERMANENT_EDUCATIONAL_INSTITUTION = 7; + LOCATION_TYPE_PERMANENT_PUBLIC_BUILDING = 8; + + LOCATION_TYPE_TEMPORARY_CULTURAL_EVENT = 9; + LOCATION_TYPE_TEMPORARY_CLUB_ACTIVITY = 10; + LOCATION_TYPE_TEMPORARY_PRIVATE_EVENT = 11; + LOCATION_TYPE_TEMPORARY_WORSHIP_SERVICE = 12; +} +``` + +The `guid` attribute is generated by the CWA Server to ensure uniqueness across all CWA QR codes. The data structure is signed by the CWA Server with its private key to prevent tampering of the QR code or identity theft of the GUID of a venue. + +The combination of signature and TraceLocation is represented in the following Protocol Buffer message `SignedTraceLocation`: + +```protobuf +message SignedTraceLocation { + // byte representation of a TraceLocation + bytes location = 1; + // byte representation of the signature of the TraceLocation + bytes signature = 2; +} +``` + +A SignedTraceLocation is base32-encoded and included in a URL. The URL is the content of the QR code and structures as follows: + +```shell +HTTPS://E.CORONAWARN.APP/C1/ + +# example: +HTTPS://E.CORONAWARN.APP/C1/BIPEY33... +``` + +The base32 encoding allows to leverage the input mode _alphanumeric_ when generating the QR code and produces a QR code with a lower density compared to base64 encoding. + + +### Interoperability with Other Contact Tracing Apps + +Other contact tracing apps that leverage QR code for Presence Tracing can integrate with CWA by including the necessary attributes in their QR code. + +These attributes are: +- SignedTraceLocation - a byte representation of the Protocol Buffer message `SignedTraceLocation`. Note that the data must still be signed by the CWA server. This information may be encoded as `base32` (recommended) or `base64`. +- Version - an integer to allow versioning + +A regular expression must be provided to allow matching and validating supported QR codes and extracting the necessary attributes. + +Any contact tracing apps that integrate with CWA must ensure that they do not process any information from the CWA part of the QR code. \ No newline at end of file From 008cb372ec53baa50271a009335f9243c61c85dd Mon Sep 17 00:00:00 2001 From: Thomas Augsten Date: Mon, 15 Mar 2021 15:58:05 +0100 Subject: [PATCH 04/10] Update event-registration-summary.md --- docs/spec/event-registration-summary.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/spec/event-registration-summary.md b/docs/spec/event-registration-summary.md index 1ad5198..61ef909 100644 --- a/docs/spec/event-registration-summary.md +++ b/docs/spec/event-registration-summary.md @@ -2,9 +2,9 @@ Presence Tracing - in CWA also referred to as _Event Registration_ - aims at notifying people of a potential SARS-CoV-2 infection if they have been to the same venue at a similar time than a positively tested individual. It addresses the potential of airborne transmission in spaces with poor ventilation despite maintaining physical distance. As such, it complements BLE-based proximity tracing with the Exposure Notification Framework. -CWA proposes a fully-automated decentral solution for Presence Tracing which works independent of local health authorities. It integrates into the existing verification processes of CWA in order to issue warnings. The solution prioritizes the speed of issuing warnings over their accuracy. A higher degree of accuracy would require manual assessment of each warning by local health authorities and the respective resources to do so and is currently not on scope. +CWA proposes a fully-automated decentral solution for Presence Tracing which works independent of local health authorities and host of the event. It integrates into the existing verification processes of CWA to issue warnings. The solution prioritizes the speed of issuing warnings over their accuracy. A higher degree of accuracy would require manual assessment by local health authorities and the respective resources to do so and is currently not on scope. -In summary, the proposed solution allows a _host_ to create a venue through CWA. All required attributes about the venue are encoded in a QR code which can be presented on a mobile device or printed out, for example to be posted at the entrance of the venue. An _attendee_ can check in to the venue by scanning the QR code. Check-ins are stored locally on the mobile device and deleted automatically after two weeks. +In summary, the proposed solution allows a _host_ to create a venue through CWA. All necessary signed data about the venue is encoded in a QR code which can be presented on a mobile device or printed out, for example to be posted at the entrance of the venue. An _attendee_ can check in to the venue by scanning the QR code. Check-ins are stored locally on the mobile device and deleted automatically after two weeks. When an attendee tests positive for SARS-CoV-2, they can upload their check-ins along with their Diagnosis Keys to the CWA Server. The CWA Server publishes the relevant check-ins on CDN as _warnings_. Clients regularly download these warnings and match them against the local check-ins on the mobile device. If there is a match and the time an attendee spent at a venue overlaps with a warning for a sufficiently long time, the attendee receives a warning in CWA similar to how warnings are issued for BLE-based exposures. From d989d3746f33270e8faa8eb85a345a48b8dc2862 Mon Sep 17 00:00:00 2001 From: Maximilian Lenkeit Date: Tue, 16 Mar 2021 07:05:51 +0100 Subject: [PATCH 05/10] feat(evreg): define QR code standard for interop --- docs/spec/event-registration-summary.md | 28 +++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/docs/spec/event-registration-summary.md b/docs/spec/event-registration-summary.md index 61ef909..d4ecd47 100644 --- a/docs/spec/event-registration-summary.md +++ b/docs/spec/event-registration-summary.md @@ -79,12 +79,28 @@ The base32 encoding allows to leverage the input mode _alphanumeric_ when genera ### Interoperability with Other Contact Tracing Apps -Other contact tracing apps that leverage QR code for Presence Tracing can integrate with CWA by including the necessary attributes in their QR code. +Other contact tracing apps that leverage QR code for Presence Tracing can integrate with CWA by creating QR codes according to the followig pattern: -These attributes are: -- SignedTraceLocation - a byte representation of the Protocol Buffer message `SignedTraceLocation`. Note that the data must still be signed by the CWA server. This information may be encoded as `base32` (recommended) or `base64`. -- Version - an integer to allow versioning +``` +//CWA1/ +``` -A regular expression must be provided to allow matching and validating supported QR codes and extracting the necessary attributes. +| Parameter | Description | +|---|---| +| `` | The URL associated with the respective contact tracing apps, with or without a partial path. | +| `` | Any vendor-specific data such as venue ids. This data may be passed to the vendor-specific app upon interaction by the user if a deeper integratio is required. | +| `` | A representation of the Protocol Buffer message SignedTraceLocation encoded in either base32 or base64 (see recommendations below). | -Any contact tracing apps that integrate with CWA must ensure that they do not process any information from the CWA part of the QR code. \ No newline at end of file +To optimize the readability and reduce density of the QR code, CWA recomends to generate QR codes with input mode [_alphanumeric_](https://en.wikipedia.org/wiki/QR_code#Storage) and to encode byte sequences (such as Protocol Buffer messages) with base32. + +**Note:** Any contact tracing apps that integrate with CWA must ensure that they do not process any information from the CWA part of the QR code. + +Examples: + +```shell +# upper-case for alphanumeric input mode + base32 encoding +HTTPS://PRESENCE-TRACING.APP/386D0384-8AAA-41B6-93C2-D3399894D0EE/CWA1/BIPEY33... + +# base64 encoding +https://check-in.pt.app/386d0384-8aaa-41b6-93c2-d3399894d0ee/CWA1/CiRmY2E... +``` \ No newline at end of file From 9dfb846af36fc29d6a35afd8fc937f699825f7ce Mon Sep 17 00:00:00 2001 From: Maximilian Lenkeit Date: Tue, 16 Mar 2021 07:45:21 +0100 Subject: [PATCH 06/10] feat(evreg): annotate example --- docs/spec/event-registration-summary.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/spec/event-registration-summary.md b/docs/spec/event-registration-summary.md index d4ecd47..a720bc5 100644 --- a/docs/spec/event-registration-summary.md +++ b/docs/spec/event-registration-summary.md @@ -97,10 +97,12 @@ To optimize the readability and reduce density of the QR code, CWA recomends to Examples: -```shell +``` # upper-case for alphanumeric input mode + base32 encoding HTTPS://PRESENCE-TRACING.APP/386D0384-8AAA-41B6-93C2-D3399894D0EE/CWA1/BIPEY33... +|----------------------|-----------------------| |--...| # base64 encoding https://check-in.pt.app/386d0384-8aaa-41b6-93c2-d3399894d0ee/CWA1/CiRmY2E... +|-----------------|-----------------------| |--...| ``` \ No newline at end of file From b5bc8e61f0fe4966aec0f5332a3d16572eceb434 Mon Sep 17 00:00:00 2001 From: Maximilian Lenkeit Date: Tue, 16 Mar 2021 11:12:20 +0100 Subject: [PATCH 07/10] feat(evreg): describe majors security threats --- docs/spec/event-registration-summary.md | 50 +++++++++++++++++++++++-- 1 file changed, 46 insertions(+), 4 deletions(-) diff --git a/docs/spec/event-registration-summary.md b/docs/spec/event-registration-summary.md index a720bc5..d84d7b7 100644 --- a/docs/spec/event-registration-summary.md +++ b/docs/spec/event-registration-summary.md @@ -10,6 +10,48 @@ When an attendee tests positive for SARS-CoV-2, they can upload their check-ins ![TAM Diagram for Event Registration](./../../diagrams/png/evreg-tam-block.png) +## Threats + +Several security and privacy threats have been identified for the proposed solution. This includes common security threats such as distributed denial of service attacks or code injection, which also exist for other CWA components and are mitigated accordingly. It also includes threats specific to Presence Tracing, such as profiling venues and users or issuing false warnings for specific venues. These threats are described below along with the corresponding mitigation. + +### Profiling of Venues + +The proposed solution publishes warnings on CDN. A warning consists of the GUID of a venue and a time interval. An adversary can collect these warnings and aggregate them to compile a list of venues with the most warnings (colloquially referred to as _most infectious venues_) or list of venues with their most recent warning. + +This information is easy to collect, as warnings are publicly accessible and do not even required to make modifications to the CWA client. + +The value of this information increases significantly once an adversary can link the GUID of a venue with the data included in the QR code such as the name or the address of the venue, or with metadata from other services, such as coordinates of the venue. + +An adversary can collect this information for a single venue by scanning the QR code and extracting and storing the data outside of CWA. Collecting this information at scale requires coordinated effort by many individuals. + +Note that CWA itself does not store this data on the server or anywhere else and cannot do profiling of venues. + +To mitigate the risk, CWA encourages owners to regularly generate new QR codes for their venues. The more frequent QR codes are updated, the more difficult it is to keep a central database with venue data up-to-date. + +However, we acknowledge that the proposed solution does not prevent this attack with technical means. + +### Profiling of Users + +The proposed solution publishes warnings on CDN in packages on an hourly basis. A package includes multiple warnings. A warning consists of the GUID of a venue and a time interval. All the warnings that were created from the check-ins of a single user are included in one package. A package can include warnings of multiple users. + +An adversary can analyze the check-ins of a single package and try to build a profile of the users whose check-ins are included. This reveals limited information if the GUIDs of the venues cannot be linked to an actual venue (cf. [Profiling of Venues]), but can reveal significant information about the user the more GUIDs of venues can be identified. + +To mitigate the risk, CWA generates fake check-ins for each submission. These fake check-ins are generated upon submission of genuine check-ins so that even CWA cannot distinguish them. + +However, we acknowledge that this does not prevent the attack if there is a central database of all venue GUIDs and venue metadata. + +### Targeting Specific Venues + +The proposed solution turns check-ins of the user into warnings and cannot verify if the user has actually visited the respective venue of a check-in. + +An adversary can target specific venues by obtaining the respective QR code and pretending a check-in. If the adversary also obtains the authorization to submit the check-ins to the CWA Server, false warnings would be issued for these venues. + +The difficulty of this attack is dominated by the difficulty of obtaining authorization to submit check-ins. This is currently only possible with a confirmed positive test for SARS-CoV-2 or by obtaining a Tele TAN from the hotline. While a confirmed positive test is difficult obtain without putting oneself at risk, a valid Tele TAN can be obtained for example by Social Engineering. + +To mitigate the risk, CWA only allows a certain number of check-ins per day. This prevents to scale such an attack by a single adversary across a multitude of venues. + +However, we acknowledge that this does not prevent to execute this attack for a small number of venues. + ## QR Code Structure The QR code of a venue contains all required attributes for Presence Tracing, so that no server communication is necessary when an attendee checks in to a venue @@ -79,7 +121,7 @@ The base32 encoding allows to leverage the input mode _alphanumeric_ when genera ### Interoperability with Other Contact Tracing Apps -Other contact tracing apps that leverage QR code for Presence Tracing can integrate with CWA by creating QR codes according to the followig pattern: +Other contact tracing apps that leverage QR code for Presence Tracing can integrate with CWA by creating QR codes according to the following pattern: ``` //CWA1/ @@ -88,10 +130,10 @@ Other contact tracing apps that leverage QR code for Presence Tracing can integr | Parameter | Description | |---|---| | `` | The URL associated with the respective contact tracing apps, with or without a partial path. | -| `` | Any vendor-specific data such as venue ids. This data may be passed to the vendor-specific app upon interaction by the user if a deeper integratio is required. | -| `` | A representation of the Protocol Buffer message SignedTraceLocation encoded in either base32 or base64 (see recommendations below). | +| `` | Any vendor-specific data such as venue ids. This data may be passed to the vendor-specific app upon interaction by the user if a deeper integration is required. | +| `` | A representation of the Protocol Buffer message SignedTraceLocation encoded in either base32 or base64 (see recommendations below). Note that the signature must have been created by the CWA Server. | -To optimize the readability and reduce density of the QR code, CWA recomends to generate QR codes with input mode [_alphanumeric_](https://en.wikipedia.org/wiki/QR_code#Storage) and to encode byte sequences (such as Protocol Buffer messages) with base32. +To optimize the readability and reduce density of the QR code, CWA recommends to generate QR codes with input mode [_alphanumeric_](https://en.wikipedia.org/wiki/QR_code#Storage) and to encode byte sequences (such as Protocol Buffer messages) with base32. **Note:** Any contact tracing apps that integrate with CWA must ensure that they do not process any information from the CWA part of the QR code. From e8e74dd130467b6e3b98ebdf5b8555237b8aed23 Mon Sep 17 00:00:00 2001 From: Maximilian Lenkeit Date: Tue, 16 Mar 2021 12:46:36 +0100 Subject: [PATCH 08/10] chore: fix paths --- diagrams/drawio/evreg-tam-block.drawio | 241 ------------------ ...ration-summary.md => event_registration.md | 2 +- {diagrams/png => images}/evreg-tam-block.png | Bin 3 files changed, 1 insertion(+), 242 deletions(-) delete mode 100644 diagrams/drawio/evreg-tam-block.drawio rename docs/spec/event-registration-summary.md => event_registration.md (99%) rename {diagrams/png => images}/evreg-tam-block.png (100%) diff --git a/diagrams/drawio/evreg-tam-block.drawio b/diagrams/drawio/evreg-tam-block.drawio deleted file mode 100644 index 7fd5fd1..0000000 --- a/diagrams/drawio/evreg-tam-block.drawio +++ /dev/null @@ -1,241 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/spec/event-registration-summary.md b/event_registration.md similarity index 99% rename from docs/spec/event-registration-summary.md rename to event_registration.md index d84d7b7..83d1fc5 100644 --- a/docs/spec/event-registration-summary.md +++ b/event_registration.md @@ -8,7 +8,7 @@ In summary, the proposed solution allows a _host_ to create a venue through CWA. When an attendee tests positive for SARS-CoV-2, they can upload their check-ins along with their Diagnosis Keys to the CWA Server. The CWA Server publishes the relevant check-ins on CDN as _warnings_. Clients regularly download these warnings and match them against the local check-ins on the mobile device. If there is a match and the time an attendee spent at a venue overlaps with a warning for a sufficiently long time, the attendee receives a warning in CWA similar to how warnings are issued for BLE-based exposures. -![TAM Diagram for Event Registration](./../../diagrams/png/evreg-tam-block.png) +![TAM Diagram for Event Registration](./images/evreg-tam-block.png) ## Threats diff --git a/diagrams/png/evreg-tam-block.png b/images/evreg-tam-block.png similarity index 100% rename from diagrams/png/evreg-tam-block.png rename to images/evreg-tam-block.png From ca772c14715f3d5f9ea7aa518cb83d762421ba6e Mon Sep 17 00:00:00 2001 From: Maximilian Lenkeit Date: Wed, 17 Mar 2021 09:08:52 +0100 Subject: [PATCH 09/10] docs(evreg): fix typos --- event_registration.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/event_registration.md b/event_registration.md index 83d1fc5..212d479 100644 --- a/event_registration.md +++ b/event_registration.md @@ -1,6 +1,6 @@ # Event Registration - Summary -Presence Tracing - in CWA also referred to as _Event Registration_ - aims at notifying people of a potential SARS-CoV-2 infection if they have been to the same venue at a similar time than a positively tested individual. It addresses the potential of airborne transmission in spaces with poor ventilation despite maintaining physical distance. As such, it complements BLE-based proximity tracing with the Exposure Notification Framework. +Presence Tracing - in CWA also referred to as _Event Registration_ - aims at notifying people of a potential SARS-CoV-2 exposure if they have been to the same venue at a similar time as a positively tested individual. It addresses the potential of airborne transmission in spaces with poor ventilation despite maintaining physical distance. As such, it complements BLE-based proximity tracing with the Exposure Notification Framework. CWA proposes a fully-automated decentral solution for Presence Tracing which works independent of local health authorities and host of the event. It integrates into the existing verification processes of CWA to issue warnings. The solution prioritizes the speed of issuing warnings over their accuracy. A higher degree of accuracy would require manual assessment by local health authorities and the respective resources to do so and is currently not on scope. @@ -16,7 +16,7 @@ Several security and privacy threats have been identified for the proposed solut ### Profiling of Venues -The proposed solution publishes warnings on CDN. A warning consists of the GUID of a venue and a time interval. An adversary can collect these warnings and aggregate them to compile a list of venues with the most warnings (colloquially referred to as _most infectious venues_) or list of venues with their most recent warning. +The proposed solution publishes warnings on CDN. A warning consists of the GUID of a venue and a time interval. An adversary can collect these warnings and aggregate them to compile a list of venues with the most warnings (colloquially referred to as _most infectious venues_) or a list of venues with their most recent warning. This information is easy to collect, as warnings are publicly accessible and do not even required to make modifications to the CWA client. From e009acda6c9f94d3816a34f45aa92b608e2e95c5 Mon Sep 17 00:00:00 2001 From: Thomas Augsten Date: Tue, 16 Mar 2021 11:16:37 +0100 Subject: [PATCH 10/10] Update event-registration-summary.md --- event_registration.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/event_registration.md b/event_registration.md index 212d479..92a1393 100644 --- a/event_registration.md +++ b/event_registration.md @@ -1,4 +1,4 @@ -# Event Registration - Summary +# Event Registration DRAFT - Summary Presence Tracing - in CWA also referred to as _Event Registration_ - aims at notifying people of a potential SARS-CoV-2 exposure if they have been to the same venue at a similar time as a positively tested individual. It addresses the potential of airborne transmission in spaces with poor ventilation despite maintaining physical distance. As such, it complements BLE-based proximity tracing with the Exposure Notification Framework. @@ -10,7 +10,7 @@ When an attendee tests positive for SARS-CoV-2, they can upload their check-ins ![TAM Diagram for Event Registration](./images/evreg-tam-block.png) -## Threats +## Threats WiP Several security and privacy threats have been identified for the proposed solution. This includes common security threats such as distributed denial of service attacks or code injection, which also exist for other CWA components and are mitigated accordingly. It also includes threats specific to Presence Tracing, such as profiling venues and users or issuing false warnings for specific venues. These threats are described below along with the corresponding mitigation. @@ -52,7 +52,7 @@ To mitigate the risk, CWA only allows a certain number of check-ins per day. Thi However, we acknowledge that this does not prevent to execute this attack for a small number of venues. -## QR Code Structure +## QR Code Structure DRAFT The QR code of a venue contains all required attributes for Presence Tracing, so that no server communication is necessary when an attendee checks in to a venue @@ -119,7 +119,7 @@ HTTPS://E.CORONAWARN.APP/C1/BIPEY33... The base32 encoding allows to leverage the input mode _alphanumeric_ when generating the QR code and produces a QR code with a lower density compared to base64 encoding. -### Interoperability with Other Contact Tracing Apps +### Interoperability with Other Contact Tracing Apps DRAFT Other contact tracing apps that leverage QR code for Presence Tracing can integrate with CWA by creating QR codes according to the following pattern: @@ -147,4 +147,4 @@ HTTPS://PRESENCE-TRACING.APP/386D0384-8AAA-41B6-93C2-D3399894D0EE/CWA1/BIPEY33.. # base64 encoding https://check-in.pt.app/386d0384-8aaa-41b6-93c2-d3399894d0ee/CWA1/CiRmY2E... |-----------------|-----------------------| |--...| -``` \ No newline at end of file +```