Académique Documents
Professionnel Documents
Culture Documents
Réseau de cybersanté
Spécifications techniques
des certificats verts numériques
Tome 3
Code 2D interopérable
Variante 1.3
2021-04-21
Machine Translated by Google
Réseau de cybersanté
Le réseau eHealth est un réseau volontaire, créé en vertu de l'article 14 de la directive 2011/24/UE.
Il fournit une plate-forme des autorités compétentes des États membres chargées de la santé en ligne.
2
Machine Translated by Google
Réseau de cybersanté
3
Machine Translated by Google
Réseau de cybersanté
4
Machine Translated by Google
Réseau de cybersanté
1. Introduction
1.1 Contexte
Ce document spécifie une structure de données générique et des mécanismes de codage pour les certificats de santé
électroniques. Elle spécifie également un mécanisme de codage de transport dans un format optique lisible par machine
(QR), qui peut être affiché sur l'écran d'un appareil mobile ou imprimé sur une feuille de papier. Ce document doit être lu
conjointement avec le réseau eHealth (eHN)
Directives sur les spécifications techniques pour les certificats verts numériques (DGC), Volume 1. En cas de divergences
entre ce document et les Directives de l'eHN sur les spécifications techniques pour les DGC, Volume 1, cette dernière prévaut.
5
Machine Translated by Google
Réseau de cybersanté
Pour optimiser l'empreinte du code 2D, les objets sont encodés en tant qu'objet CBOR1. Pour garantir l'intégrité des
données, la signature et le cryptage d'objet CBOR2 sont utilisés. Pour utiliser CBOR, il faut tenir compte des règles de
sérialisation recommandées3 .
Il est important de s'assurer lors de la conversion des conseils dans le CBOR RFC4 .
Il faut s'assurer que toutes les clés d'un objet JSON sont encodées en UTF-8.
Outre le(s) nom(s) et prénom(s) du titulaire encodés en UTF-8, le code-barres 2D doit inclure un deuxième ensemble de
champs du même nom encodés en ASCII conformément au document OACI 9303 partie 35 . Le nom personnel encodé en
ASCII doit correspondre au nom figurant sur le document de voyage délivré au titulaire.
Comme décrit dans la DSC-Spec, le format CWT est utilisé pour établir un format de conteneur standard pour les certificats
verts. Il faut s'assurer que ce type de revendications standard définies n'est pas rompu par des revendications personnalisées
ou retapé par différents types de données.
Pour compresser les objets de données COSE, l'algorithme de compression zlib est utilisé.
Dans les cas d'utilisation productifs, de nombreux codes 2D différents avec des hypothèses différentes peuvent être
scannés par le vérificateur. Pour s'assurer que le contexte du code scanné est toujours clair pour le traitement (par exemple,
schéma utilisé, ensembles de valeurs à ce moment, règles, etc.), un préfixe de contexte est établi pour représenter
différentes versions.
Chaque contexte correspond à un document de découverte, qui est fourni via la DGCG ou
back-ends. Le contexte peut être défini spécifiquement par chaque pays ou par le Réseau eSanté.
1
https://tools.ietf.org/html/rfc8949
2
https://tools.ietf.org/html/rfc8152
3 https://tools.ietf.org/html/rfc8949#section-4
4
https://tools.ietf.org/html/rfc8949#section-6
5 https://www.icao.int/publications/Documents/9303_p3_cons_en.pdf
6
Machine Translated by Google
Réseau de cybersanté
Pour fournir ce contexte aux lecteurs optiques, il est attaché au code-barres encodé avant le code QR
Génération:
Lors de l'analyse d'un objet CBOR par un scanner de code, l'algorithme de vérification doit correspondre efficacement au
matériel cryptographique utilisé. À cette fin et en vue des futurs scénarios décentralisés, la clé cryptographique utilisée doit
être identifiable de manière unique par un vérificateur. Ceci est réalisé en insérant le champ "kid" dans l'en-tête COSE.
L'identifiant de clé est défini comme les 8 premiers octets tronqués d'un hachage SHA256. L'allégation «ÿenfantÿ» peut
également être utilisée dans le concept JWK.
Pour économiser autant d'octets que possible dans le code 2D, chaque nom de champ doit être réduit à des acronymes.
Par exemple, sujet à "sous" ou émetteur à "iss".
Les noms de champs sélectionnés doivent être uniquement sur le contexte sélectionné, sinon les traductions
de noms de champs sont beaucoup plus difficiles à réaliser.
Une structure COSE contient un objet protégé, non protégé et charge utile dans un tableau CBOR défini dans la structure
de base de la RFC81527 .
La charge utile "nil" n'est pas autorisée pour ce code 2D et doit être rejetée. Le choix de placer l'enfant dans l'en-tête protégé
ou non protégé est laissé à l'émetteur, tous les vérificateurs doivent accepter les deux.
6 https://datatracker.ietf.org/doc/draft-faltstrom-base45/
7
https://tools.ietf.org/html/rfc8152#section-3.1
7
Machine Translated by Google
Réseau de cybersanté
Plus d'informations sur les en-têtes COSE et les valeurs des algorithmes peuvent être trouvées sur la page IANA8 .
La syntaxe est conforme à la CWT RFC83929 et au volume 1 des spécifications techniques du Digital
Green Certificate.
Le contenu des données suivant le règlement DGC et le schéma de la charge utile pour le code-barres 2D
sont définis dans les directives du réseau eHealth sur les ensembles de valeurs pour les certificats verts
numériques.
Le contenu facultatif des données nationales n'est pas autorisé. Le contenu des données est limité aux éléments de
données définis dans l'ensemble minimal de données spécifié dans le règlement.
8https://www.iana.org/assignments/cose/cose.xhtml
9https://tools.ietf.org/html/rfc8392
10https://ec.europa.eu/health/sites/health/files/ehealth/docs/vaccination-proof_interoperability
guidelines_en.pdf
11https://ec.europa.eu/health/sites/health/files/ehealth/docs/citizen_recovery-interoperable
certificates_en.pdf
8
Machine Translated by Google
Réseau de cybersanté
3 Sérialisation
Le processus doit toujours commencer par un fichier JSON, par exemple à partir d'un référentiel de données de santé (des
sources de données externes sont facultatives), qui correspond aux schémas DGC définis. Après ce contrôle, une
transformation de la lisibilité humaine peut être traitée avant le démarrage de la sérialisation vers CBOR. Au cours de ce
processus, il peut être décidé si une lisibilité humaine est utile ou non. Les acronymes des revendications doivent être
mappés dans tous les cas aux noms d'affichage avant la sérialisation et après la désérialisation.
Il ne doit pas être envisagé de remplacer le contenu du champ par des informations de métadonnées (par exemple
11 pour une valeur) en octets sécurisés lors de la compression. Il doit toujours y avoir des valeurs clairement
définies.
12
https://github.com/ehn-digital-green-development/hcert-spec
9
Machine Translated by Google
Réseau de cybersanté
dix