• Aucun résultat trouvé

Signature numérique d'un document basée sur FIDO2

N/A
N/A
Protected

Academic year: 2021

Partager "Signature numérique d'un document basée sur FIDO2"

Copied!
84
0
0

Texte intégral

(1)

Signature numérique d'un document basée sur FIDO2

Mémoire

Jérôme Randimbiarison

Maîtrise en informatique - avec mémoire

Maître ès sciences (M. Sc.)

(2)

Signature numérique d’un document basée sur

FIDO2

Mémoire

Jérôme Randimbiarison

Sous la direction de: Mohamed Mejri

(3)

Résumé

En cette ère numérique, l’utilisation des documents papier s’avère peu pratique et in-efficace, ce qui motive les sociétés à évoluer vers l’utilisation des documents électro-niques (ou e-docs). Ce désir d’innover vers une opération sans papier peut améliorer l’efficacité et la qualité des services d’administrations publiques ou privées de manière à accélérer leurs activités et en même temps mieux satisfaire les besoins des clients. Ce-pendant, cette pratique a créé des nouveaux besoins, tels que la signature numérique réelle de documents.

Dans ce mémoire, nous avons proposé un nouveau schéma de signature numérique utilisant FIDO2, qui se trouve être une nouvelle norme d’authentification sécurisée en ligne basée sur la signature numérique. Le fait que FIDO2 soit un standard libre per-met aux développeurs de logiciel et de matériel d’implémenter plus facilement leurs propres produits. Cela nous a inspiré à l’utiliser pour une fin de signature numérique, l’idée étant de remplacer le défi envoyé par le serveur avec le hash de e-docs et de l’en-voyer à l’appareil du signataire afin que ce dernier signe avec sa clé privée. Comme dans le cas de l’infrastructure à clé publique, chaque utilisateur possédait une paire de clés, c’est-à-dire une clé privée et une clé publique. Un signataire doit confirmer son identification biométrique (empreinte digitale, reconnaissance faciale, voix, etc.) ou son code PIN pour accéder à la clé privée stockée localement sur son appareil et signer un document.

Au cours de notre recherche, nous avons effectué plusieurs tests avec différents équipe-ments (PC, USB FIDO, Smartphone) ainsi que différentes OS (Android, iOS, Windows). Les résultats de nos tests nous montrent que nous pouvons utiliser FIDO2 pour signer un document électronique. Cette nouvelle approche proposée peut être utilisée pour une signature face à face (en locale) ou à distance (en ligne). Le prototype développé pour la mise en œuvre de notre approche a été validé auprès d’usagers types (membres-clients et conseillers) dans une entreprise.

(4)

Abstract

In this digital era, the use of paper documents is impractical and inefficient, which mo-tivates companies to move towards the use of electronic documents (or e-docs). This desire to innovate towards a paperless operation can improve the efficiency and quality of public or private administration services so as to speed up their activities and at the same time better meet customer needs. However, this practice has created new needs, such as the actual digital signature of documents.

In this thesis, we have proposed a new digital signature scheme using FIDO2, which happens to be a new standard for secure online authentication based on digital signa-tures. The fact that FIDO2 is a free standard makes it easier for software and hardware developers to implement their own products. This inspired us to use it a digital signa-ture purpose, the idea being, to replace the challenge sent by the server with the hash of e-docs and send it to the signer’s device so that the latter signs with his private key. As with public key infrastructure, each user had a key pair, that is, a private key and a public key. A signatory must confirm their biometric identification (fingerprint, facial recognition, voice, etc.) or PIN code to access the private key stored locally on their device and sign a document.

During our research, we carried out several tests with different equipment (PC, USB FIDO, Smartphone) as well as different OS (Android, iOS, Windows). The results of our tests show us that we can use FIDO2 to sign an electronic document. This pro-posed new approach can be used for a face-to-face (local) or remote (online) signature. The prototype developed for the implementation of our approach has been validated with typical users (member-clients and advisers) in a company.

(5)

Table des matières

Résumé iii

Abstract iv

Table des matières v

Liste des tableaux vii

Liste des figures viii

Remerciements xi Introduction 1 1 Cryptographie 5 1.1 Systèmes de chiffrement . . . 5 1.1.1 Chiffrement symétrique . . . 6 1.1.2 Chiffrement asymétrique . . . 7

1.2 Les fonctions cryptographiques de hachage . . . 12

1.2.1 Les propriétés exigées . . . 12

1.2.2 Utilisation des fonctions cryptographiques de hachage . . . . 12

1.2.3 Étude comparative des fonctions de hachage usuelles . . . 13

1.3 Signature numérique . . . 14

1.3.1 L’idée . . . 14

1.3.2 Signature RSA. . . 15

1.3.3 Signature El Gamal . . . 16

1.4 Conclusion . . . 17

2 Fast IDentity Online (FIDO) 2.0 18 2.1 L’idée . . . 18

2.2 Les spécifications de FIDO 2 . . . 19

2.2.1 WebAuthn . . . 20

2.2.2 CTAP . . . 20

2.3 Flux d’enregistrement d’un utilisateur avec FIDO2 . . . 21

(6)

2.5 Signature avec FIDO2. . . 25

2.6 Conclusion . . . 26

3 Revue de littérature 27 3.1 Spécification de signature d’un document électronique . . . 27

3.1.1 Le processus de signature . . . 27

3.1.2 Les différents types de signature . . . 28

3.1.3 Outils et logiciel de signature numérique d’un document . . . 29

3.2 Travaux connexes . . . 30

3.3 Utilisation de la biométrie dans la signature numérique . . . 40

3.3.1 Modalités biométriques . . . 40

3.3.2 Générer une clé cryptographique avec la biométrie . . . 43

3.4 Conclusion . . . 46

4 Contribution, mise en œuvre et résultats 48 4.1 Contribution . . . 48

4.1.1 Approche proposée. . . 48

4.1.2 Analyse des processus de signature d’un document sur FIDO2 50 4.2 Mise en œuvre et résultat . . . 55

4.2.1 Implémentation de l’enregistrement du signataire et création des clés . . . 55

4.2.2 Implémentation de la signature d’un document sur FIDO2 . . 58

4.3 Discussion . . . 61

4.4 Conclusion . . . 63

Conclusion générale 65

(7)

Liste des tableaux

1.1 Comparaison des algorithmes les plus utilisés en chiffrement symétrique 7 1.2 Comparaison des cryptosystèmes asymétriques (ECC, El Gamal, RSA) . 11 1.3 Comparaison des fonctions standards de Hachage . . . 14 3.1 Logiciels de signatures numériques. . . 30 3.2 Analyse des travaux antérieurs qui sont connexes à notre recherche . . . 40 3.3 Comparaison des modèles biométriques . . . 43 3.4 FAR et FRR des modèles biométriques . . . 43 3.5 Comparaison des systèmes crypto-biométriques . . . 46 4.1 Définition des paramètres de la requête authenticatorGetAssertion . . . 53 4.2 Définition des paramètres du message réponse authenticatorGetAssertion 54 4.3 Environnements de développement . . . 55 4.4 Évaluation de notre approche . . . 62

(8)

Liste des figures

1.1 Chiffrement symétrique . . . 6

1.2 Chiffrement asymétrique. . . 7

1.3 Signature numérique . . . 15

2.1 Évolution de l’authentification FIDO2 . . . 19

2.2 Flux d’enregistrement avec FIDO2 . . . 22

2.3 Flux de connexion avec FIDO2 . . . 24

2.4 Générer une signature avec FIDO2 . . . 25

3.1 Ligne de vie d’une signature d’un document électronique. . . 28

3.2 Signature d’un document avec authentification à deux facteurs [1]. . . . 31

3.3 Signature d’un document numérique avec DSign [2] . . . 32

3.4 Signature numérique d’un document à l’aide d’empreintes digitales bio-métriques avec capteur d’empreintes digitales sur smartphone [3] . . . . 33

3.5 Méthode de signature de contrat dans les services de commerce [4] . . . 35

3.6 Solution de signature numérique pour les systèmes de gestion des docu-ments [5] . . . 37

3.7 Incorporation de la signature dans un document PDF [6] . . . 38

3.8 Modalités biométriques . . . 41

3.9 Libération de clé cryptographique avec la biométrie . . . 44

3.10 Génération de clés cryptographiques à partir de la biométrie . . . 45

3.11 Régénération de clés cryptographiques à partir de la biométrie . . . 45

4.1 Schéma de signature proposée basé sur FIDO2 . . . 49

4.2 Processus de la signature du document avec FIDO2 . . . 50

4.3 Gestion des clés cryptographiques avec FIDO2 . . . 51

4.4 Message de la requête authenticatorGetAssertion . . . 52

4.5 Message de la réponse authenticatorGetAssertion . . . 54

4.6 Enregistrement d’un signataire avec FIDO2 . . . 56

4.7 Étape d’enregistrement du signataire sur FIDO2 . . . 57

4.8 Signataire enregistré au niveau du serveur FIDO . . . 58

4.9 Préparer la signature d’un document avec FIDO2 . . . 58

4.10 Document PDF à signer . . . 59

4.11 Demande de consentement du signataire avant la signature . . . 60

(9)
(10)

“Tsy misy mafy tsy ho laitry ny zoto » C’est un proverbe Malagasy qui signifie que « A cœur vaillant, rien d’impossible »

Je dédie ce travail à ma famille biologique que j’ai quittée il y a presque 21 ans pour mes études.

(11)

Remerciements

Mes sentiments de gratitude s’adressent d’abord à Dieu tout puissant qui a toujours su me guider et m’éclairer depuis que je suis arrivé sur cette terre, mais qui m’a aussi donné le courage, la force et la patience d’achever ce travail.

Mes sincères et chaleureux remerciements vont également à mon directeur de recherche, Pr Mohamed Mejri. Dans mon cas, mon directeur a été d’un soutien et d’une attention exceptionnels. La confiance qu’il m’a accordée pour la réalisation des projets ainsi que le soutien financier qu’il m’a apporté m’ont permis d’accumuler des expériences pro-fessionnelles et pédagogiques.

Je dédie un merci particulier à Honoré Hounwanou pour m’avoir aidé à effectuer la mise en œuvre du prototype.

Je ne peux passer outre ma reconnaissance envers ma conjointe, mes parents, mes sœurs et mes frères. Leurs présences, leurs écoutes, leurs confiances en moi et leur soutien constant m’assurent des bases solides me permettant de persévérer et de me surpasser.

Afin de n’oublier personne, mes vifs remerciements s’adressent à tous ceux qui m’ont aidé dans la réalisation de ce mémoire.

(12)

Introduction

Motivation

Le contexte de signature prend place dans de nombreuses entreprises d’aujourd’hui : le conseiller rencontre son membre-client et cette rencontre aboutit à une cérémonie de signatures sur un ou plusieurs documents. Pour donner un exemple de la situation actuelle, le conseiller fait la saisie des données exigées par le processus d’affaires et génère la documentation nécessaire à la cérémonie de signatures. Ladite documenta-tion est alors imprimée sur papier et sera conservée par la suite dans une voûte phy-sique destinée à entreposer ce type d’actif. Différents secteurs d’affaires se sont préva-lus de solutions de signature numérique au cours des dernières années pour soutenir leurs opérations et simplifier la vente en ligne, entre autres. Cependant, étant donné le rythme effréné auquel l’implantation de ces technologies s’est faite durant ces an-nées, beaucoup d’entreprises se retrouvent aujourd’hui avec des technologies quasi-désuètes, lourdes de maintenance et discutables quant à leurs capacités à répondre aux caractéristiques fondamentales d’une signature légale. En effet, les solutions existantes en termes de signature numérique tirent rarement profit des technologies émergentes des dix dernières années telles que la téléphonie mobile, l’intelligence artificielle, la blockchain et la biométrie, etc. L’implantation de ces solutions de signature numérique poursuit d’ailleurs son cours aujourd’hui un peu partout dans les entreprises et il ne semble pas y avoir consensus sur la meilleure mouture à utiliser.

La biométrie est largement utilisée pour l’authentification et le contrôle d’accès. Par exemple, les téléphones mobiles comme Apple et Samsung s’en servent de plus en plus comme moyen de déverrouillage pratique et sécuritaire, une fonctionnalité largement appréciée par les consommateurs. Elle est aussi utilisée pour protéger l’accès à une clé secrète sauvegardée dans un dispositif externe comme le préconise FIDO (Fast Identity Online). Son utilisation pour la signature numérique comporte plusieurs avantages.

(13)

Elle permet entre autres de simplifier la vie de l’utilisateur pour la sécurisation de la clé privée et la signature du document avec un simple geste. Cependant, dépourvue d’une haute précision, l’utilisation de la biométrie pour la signature numérique s’avère plus compliquée.

Cette difficulté a été néanmoins surmontée par plusieurs approches présentées dans [7,8, 9,10,11]. Le plus souvent, l’idée consiste à générer une clé privée stable à par-tir des données biométriques (forme du visage, empreintes digitales, iris, voix, etc.) qui sera utilisée avec des algorithmes de signatures largement acceptés juridiquement comme RSA [12] ou ElGamal [13]. Pour assurer une meilleure protection contre l’usur-pation d’identité et pour permettre à l’utilisateur de disposer d’une multitude de clés, les données biométriques sont souvent combinées avec un code secret pour construire un germe à partir duquel la clé privée sera générée.

Problématique

Les signatures se sont révélées un outil pratique pour la vérification de l’identité de documents et d’autres instruments papier ; cependant, plusieurs entreprises souffrent présentement en raison de la gestion des signatures manuscrites qui les empêchent d’être totalement sans papier. Certaines entreprises veulent profiter de la technologie émergente pour passer en mode sans-papiers "paperless" , en adoptant la signature nu-mérique.

La majorité des solutions de signature utilisées en entreprise aujourd’hui sont basées sur des technologies datant de plusieurs années qui ne tirent pas profit des avancées technologiques. Leur implantation est lourde, elles s’avèrent parfois difficiles à com-prendre, elles souffrent à l’occasion d’instabilité et manquent souvent à leurs promesses d’un monde sans papier. Il est également complexe de prouver l’intégrité et la non-répudiation des documents signés avec ces mêmes technologies en cas de litige.

Dans cette optique, il est envisagé d’étudier les technologies biométriques pour assurer principalement l’authentification de la signature électronique et garantir les contraintes d’intégrité et de non-répudiation. Les travaux réalisés dans cette recherche permettront aux entreprises d’adapter leurs processus d’affaires et leurs offres technologique vis-à-vis la signature numérique du document afin de mieux répondre aux besoins de la clientèle d’aujourd’hui.

(14)

Objectif

Dans un monde utilisant traditionnellement le papier, la cérémonie de signature dé-bute normalement par l’authentification des parties prenantes du document à signer. Les signataires sont à ce moment appelées à reproduire leurs signatures manuscrites sur le document papier. Par ce geste, il est normalement possible d’identifier et de dis-tinguer les signataires. Dans le contexte de signature numérique présentement déployé dans la plupart des entreprises, le geste de signature manuscrite est soit reproduit à l’aide d’une tablette numérique et d’un crayon adapté ou tout simplement remplacé par un mécanisme de clickwrap, selon le niveau d’importance du document à signer. Bien qu’elles soient légalement reconnues, ces méthodes offrent un niveau d’authenti-fication faible et contestable.

Nous estimons que les technologies biométriques d’aujourd’hui sont suffisamment avan-cées pour rehausser le niveau de fiabilité en ce qui a trait à la contrainte d’authentifi-cation d’une signature numérique et c’est ce que nous voulons explorer. L’objectif de cette recherche est donc de prototyper une solution qui permettrait d’utiliser les techno-logies biométriques existantes pour authentifier les signataires dans le contexte « sans papier » (paperless) défini dans la section précédente. Nous devons tenir compte des attentes suivantes :

— La solution sera suffisamment prototypée pour être validée auprès d’usagers types issus pour la plupart d’entreprises (ex : membres clients, conseillers . . . ). Après la validation, la solution sera élaborée davantage durant le reste de la recherche. — La solution ne doit pas paraître plus compliquée qu’une signature traditionnelle

aux yeux des signataires, le conseiller et le membre-client.

— L’outil de mesure biométrique nécessaire à la solution doit être proposé en fonc-tion de modèle biométrique utilisé. Il pourrait être également pertinent de consi-dérer d’utiliser le téléphone mobile du conseiller et/ou du membre-client afin d’exploiter les outils biométriques qui y sont présents.

Méthodologie

La première étape pour notre travail est de commencer par étudier les techniques mo-dernes liées à l’authentification d’une signature numérique d’un document et faire res-sortir leurs avantages et leurs limitations. Une attention particulière devrait être accor-dée à l’authentification par biométrie. L’authentification biométrique s’appuie sur des attributs biologiques qui caractérisent d’une manière unique un individu comme l’em-preinte digitale, la face, la voix, la morphologie de la main ou des veines de la pomme

(15)

de la main, la physionomie de la rétine ou de l’iris. Ces techniques gagnent en popula-rité et elles sont de plus en plus utilisées pour le commerce électronique (via des proto-coles comme FIDO) ou pour se connecter à un ordinateur ou un téléphone intelligent. Il s’agit de comparer les éléments biométriques fournis par un lecteur aux échantillons sauvegardés dans une base de données. Ce processus peut faire partie d’une authenti-fication multi facteurs plus sécuritaire. Dans le cas des protocoles AUF et A2F de FIDO, par exemple, le client s’authentifie via des clés privées/clé publique. Or, il n’a pas à se souvenir de ces longues clés choisies aléatoirement. Il peut juste les enregistrer dans une trousse de clés qui les protège par une biométrie ou bien par un pin.

À la suite de l’étude précédente, la deuxième étape consiste à sélectionner les tech-niques d’authentification les plus prometteuses permettant de répondre aux besoins des entreprises, et ce, tout en justifiant les choix.

La troisième étape vise à adapter les techniques sélectionnées pour qu’elles répondent convenablement au contexte des entreprises actuelles.

La quatrième étape a pour but de développer un prototype permettant de tester les techniques proposées.

La cinquième et dernière étape est la validation et le réajustement des techniques pro-posées via des cas d’utilisation réaliste du prototype.

(16)

Chapitre 1

Cryptographie

La cryptographie constitue une pièce maîtresse de notre travail : il s’agit d’une tech-nologie essentielle pour la sécurité des systèmes informatiques.« La cryptologie (du grec kryptos, caché, et logos, science) signifie littéralement la science du secret et a ainsi pour essence l’art de cacher une information au sein d’un message chiffré » selon Pointcheval dans [14] Plusieurs fonctionnalités sont offertes par la cryptographie moderne comme : la signa-ture des documents électroniques, le contrôle d’accès, l’organisation de la monnaie élec-tronique, la protection du copyright, etc.

Dans ce chapitre, nous présentons les systèmes de chiffrements (symétrique et asymé-trique), la fonction cryptographique de hachage, la signature numérique et l’authenti-fication de la signature numérique.

1.1

Systèmes de chiffrement

Le chiffrement est la base de la cryptographie : il consiste à mettre en secret les messages ou les données stockées.

Par définition, un système de chiffrement est un 5-uple (M, C, K, E, D), sachant que :

— M est le message clair, — C est un message chiffré, — K est la clé de chiffrement,

— E sont des fonctions de chiffrement Ek= M −→ C

(17)

Notre recherche se base sur le chiffrement asymétrique, ce qui ne nous empêchera tou-tefois pas de voir aussi le chiffrement symétrique.

1.1.1 Chiffrement symétrique

On dit qu’un système de chiffrement est symétrique (à clé secrète) si la clé de chif-frement e est égale à la clé de déchifchif-frement d, ou bien quand d est peut-être facile-ment calculée à partir de e. Avec ce système de chiffrefacile-ment, l’émetteur et le destinataire du message partagent la même clé.Comme le montre la Figure 1.1, la clé k permet à la fois de chiffrer et de déchiffrer et elle est partagée entre deux personnes (ou plus) pour pouvoir communiquer de manière plus ou moins sécurisée suivant la solidité du schéma utilisé. Le principal inconvénient de chiffrement est le stockage et partage des clés de manière fiable. Il existe plusieurs types d’algorithmes de chiffrement

symé-FIGURE1.1 – Chiffrement symétrique

trique, mais nous pouvons les classer en deux catégories : l’algorithme de chiffrement à flot (exemples : Rivest Cipher 4 et Rivest Cipher 5) et l’algorithme de chiffrement par blocs (exemples : DES, 3DES, IDEA, AES). Le tableau suivant est tiré des résultats de recherche de Kiramat dans [15] pour la comparaison des algorithmes les plus utilisés en chiffrement symétrique.

(18)

DES 3DES AES

Créé par IBM en 1975 IBM en 1978 Vincent

Rijmen, Joan Daemen en 2001 Longueur de clé 56 bits 168 bits (k1, k2 and k3)

112 bits (k1 and k2) 128,192 or 256 bits

Taille de bloc 64 bits 64 bits 128 bits

Vitesse Lente Lente Rapide

Sécurité Pas assez sécurisé Adéquate Excellent

TABLE1.1 – Comparaison des algorithmes les plus utilisés en chiffrement symétrique

1.1.2 Chiffrement asymétrique

Le chiffrement asymétrique (ou chiffrement à clés publiques) consiste à utiliser une clé publique pour le chiffrement et une clé privée pour le déchiffrement du message. Cela implique que les clés d et e soient différents. Par ailleurs, trouver d à partir de e est vrai-ment infaisable. Dans un tel système, la clé de chiffrevrai-ment peut être rendue publique. Dans le scénario de la Figure1.2, si Obélix veut recevoir le message chiffré venant d’As-térix, il envoie sa clé publique à Astérix préalablement pour chiffrer son message et il garde la clé privée correspondante. N’importe qui peut utiliser la clé publique pour chiffrer un message destiné à Obélix, ce dernier étant la seule personne capable de dé-chiffrer le message grâce à sa clé privée.

(19)

Un cryptosystème asymétrique est caractérisé par trois algorithmes :

— Un algorithme de génération de clé Kg = (pk, sk) à partir du paramètre de sécu-rité, il produit une paire de clés : clé privée et clé publique.

— Un algorithme de chiffrement E(pk, m) = c, Étant donné qu’un message m chiffré avec la clé publique pk produit un chiffré c.

— Un algorithme de déchiffrement D(sk, c) = m, Étant donné qu’un message chiffré cavec la clé privée correspondante produit le message claire m.

Nous allons maintenant voir ci-dessous comment les cryptosystèmes asymétrique uti-lisent ces trois caractéristiques d’algorithmes.

1.1.2.1 L’idée

Un des problèmes liés à la cryptographie symétrique et qui perturbe encore jusqu’ici est le partage et la gestion de la clé. Si Obélix et Astérix utilisent la cryptographie symé-trique comme dans le cas présenté dans le scénario de la Figure1.1, ils doivent échan-ger une clé secrète avant de pouvoir communiquer l’un avec l’autre. Ceci est peut-être acceptable dans un milieu restreint ou très organisé, mais certainement pas dans un réseau mondial ou internet.

Une technique d’échange de clés est présentée par Johannes Buchmann dans [16]. Il pro-pose d’utiliser une centrale de clés, chaque participant échangeant une clé secrète avec cette centrale. Quand Obélix veut envoyer un message à Astérix, il chiffre le message en utilisant sa clé secrète et envoie le message chiffré à la centrale de clés. La centrale, qui connaît toutes les clés secrètes, déchiffre le message en utilisant la clé d’Obélix, puis le chiffre à nouveau mais cette fois avec la clé secrète d’Astérix, et le nouveau message chiffré est envoyé à Astérix qui le déchiffre.

Grâce à cette technique, son étude montre que le nombre de clés à échanger pour n utilisateurs passe de n(n − 1)/2 à n. Or, pour que ce système de partage de clé soit fiable, il faut que la centrale tienne compte des messages secrets et elle doit stocker d’une manière sûre les n clés. Toutefois, la fiabilité d’échange de clés avec la cryptogra-phie symétrique demeure toujours un problème majeur.

Avec les cryptosystèmes asymétriques ou à clé publique, la distribution et la gestion de clés sont devenues plus simples. Beaucoup de chercheurs ont travaillé sur ce projet depuis des années. Comme David Pointcheval l’affirme dans [14], « pour un schéma de chiffrement, la seule propriété nécessaire pour garantir la confidentialité est la difficulté du décryptement », d’où la naissance de deux clés avec des facultés dissymétriques,

(20)

c’est-à-dire une clé de chiffrement qui peut être trouvée sur toute personne souhaitant chiffrer un message et une clé de déchiffrement qui doit quant à elle rester secrète. Comme nous l’avons mentionné plus haut, ces deux clés sont fortement liées, ce qui signifie que tout message chiffré avec la clé de chiffrement (clé publique) peut être dé-chiffré avec la clé de déchiffrement (clé privée).

Le schéma de gestion de clé de ce système fonctionne de la manière suivante : chaque participant est enregistré avec sa clé publique dans un annuaire public. Pour envoyer un message à Obélix, Astérix récupère la clé publique d’Obélix dans l’annuaire public, puis il chiffre le message avec cette clé. Par la suite, il envoie le message chiffré à Obélix et ce dernier va déchiffrer le message avec sa clé privée.

Ce concept de cryptographie symétrique est ingénieux, car il est parfaitement adapté à un grand réseau tel qu’internet.

1.1.2.2 Rivest–Shamir–Adleman (RSA)

RSA a été créé par Ron Rivest, Adi Shamir et Len Adleman, c’est le premier algorithme à clés publiques connu et il reste le plus utilisé. Sa sécurité est assurée par la complexité de factoriser deux grands nombres premiers. Nous allons voir maintenant comment le cryptosystème RSA génère les clés, chiffre et déchiffre un message.

Génération de clé : voici comment Obélix génère ses paires de clés (clé publique et clé privée) avec RSA.

— Il choisit deux grands nombres premiers (p et q) — Il calcule leurs produits n = p ∗ q

— Il calcule φ(n) = (p − 1) ∗ (q − 1)

— Il choisit e tel que : pgcd(e, φ(n)) = 1 et e < φ(n) — Il calcule d tel que : e ∗ d ≡ 1 mod φ(n)

La clé publique d’Obélix est le couple (n, e). Sa clé privée est le couple (n, d). Ici, le n s’appelle le module, e est l’exposant de chiffrement et d est l’exposant de déchiffrement. Dans cette formule, il faut noter qu’on peut trouver d à partir de l’exposant e si p et q sont connus.

Chiffrement : nous allons montrer comment chiffrer un message avec le cryptosys-tème RSA. Pour envoyer un message à Obélix, Astérix a besoin de message clair m et

(21)

de la clé publique (n, e) d’Obélix.

Dans la première variante, l’espace des messages en clair est constitué de tous les en-tiers m avec 0 ≤ m < n.

Le message chiffré est c = memod n.

Nous pouvons souligner que RSA possède la caractéristique requise pour le cryptosys-tème asymétrique puisqu’il dispose d’une fonction à sens unique avec trappe, ce qui veut dire que le calcul e − imes est infaisable à moins de connaître la factorisation du module n.

Déchiffrement : une fois que Obélix reçoit le message chiffré c venant d’Astérix, avec sa clé privée (n, d) il applique une fonction de déchiffrement définie comme suit. D’abord 0 ≤ c < n, message chiffré.

Le message clair est m = cdmodn

Avec RSA pour chaque fonction de chiffrement, il existe toujours une fonction de dé-chiffrement correspondant.

1.1.2.3 El Gamal

Le cryptosystème El Gamal a été créé en 1985, il est basé sur le problème d’échange de clés de Diffie Hellman. Sa sécurité repose sur le problème de logarithme discret. Nous allons maintenant exposer comment le cryptosystème El Gamal génère les clés, puis chiffre et déchiffre un message.

Génération de clés : voici comment Obélix génère sa paire de clés (clé publique et clé privée) avec El Gamal.

— Il choisit un nombre premier p — Il choisit un générateur g dans Z ∗ p

— Il choisit un exposant au hasard a ∈ {0, . . . , p − 2} — Il calcule Y = gamod n

La clé publique d’Obélix est (p, g, y) et sa clé privée est l’exposant a. Ici, nous avons le p, get y calculé a est infaisable.

Chiffrement : pour chiffrer un message clair m, Astérix doit avoir la clé publique authentique (p, g, Y ) d’Obélix. Il choisit un entier au hasard b ∈ {0, . . . , p−2} et calcule :

— D = gbmod p — C = Ybm mod p

(22)

Le cryptogramme El Gamal complet qu’Astérix doit envoyer à Obélix est le couple (D, C). Nous voyons très bien que le chiffrement El Gamal demande deux exponentia-tions modulaires, tandis que le chiffrement RSA, que nous avons vu précédemment, ne demande qu’une seule exponentiation.

Déchiffrement : Obélix reçoit le message chiffré (D, C) venant d’Astérix. Pour retrou-ver le message clair m, Obélix applique une fonction de déchiffrement comme suit.

— Avec sa clé secrète a, il calcule d’abord x = p − 1 − a — Il calcule le message clair m = DxC mod p

Dans le déchiffrement, El Gamal et RSA sont identiques, ce qui nécessite une exponen-tiation modulaire.

1.1.2.4 Comparaison des cryptosystèmes asymétriques

Nous venant de voir l’algorithme de génération de clé de chiffrement et de déchif-frement de RSA et El Gamal. Toutefois, il existe encore d’autres cryptosystèmes asy-métriques que nous n’avons pas mentionnés dans ce rapport comme le Elliptic-curve cryptography (ECC). ECC est la méthode de chiffrement la plus récente, qui se base sur l’utilisation d’une ou plusieurs propriétés des courbes elliptiques. L’étude réalisée par Valentim et son équipe dans [17] sur l’étude comparative des cryptosystèmes asymé-triques nous a permis d’avoir le tableau suivant.

Taille

données Algorithme Taille clé

Temps de génération de clés Temps de chiffrement Temps de déchiffrement

100 bytes ECC 521 bits 1779.0 ms 390.0 ms 358.0 ms 100 bytes El Gamal 521 bits 1107.0 ms 297.0 ms 218.0 ms 100 bytes RSA 3072 bits 56799.0 ms 531.0 ms 655.0 ms

TABLE1.2 – Comparaison des cryptosystèmes asymétriques (ECC, El Gamal, RSA)

Nous pouvons observer qu’Elgamal est plus rapide en termes de génération de clés, de chiffrement et de déchiffrement. ECC exécute plus rapidement la génération de clés, le temps de cryptage, le temps de décryptage par rapport à RSA. L’algorithme RSA, pour sa part, a pris le plus de temps pour la génération de clés, le chiffrement et le déchiffrement.

(23)

1.2

Les fonctions cryptographiques de hachage

Nous allons nous pencher sur la fonction de hachage, étant donné que celle-ci fait par-tie des ingrédients de notre travail. Par définition, une fonction de hachage est une fonction ayant en entrée une chaîne de bits de taille arbitraire (infini) et fournit en sor-tie une chaîne de bits de taille fixée et réduite (finit) que nous appelons aussi empreinte.

L’expression mathématique est donc H : {0, 1}∗ −→ {0, 1}n

m −→ H(m)L’empreinte d’une donnée, ou bien son image par la fonction de hachage, représente et permet son identification.

1.2.1 Les propriétés exigées

Pour avoir une bonne fonction de hachage, plusieurs propriétés ont adopté. Les pro-priétés dépendent aussi du cas de l’utilisation, mais ces quatre propro-priétés sont idéales pour tous cas d’utilisation.

Une fonction de hachage est fiable et sécuritaire si elle satisfaisait ces quatre propriétés.

— Rapidité : la valeur de hachage d’un message se calcule très rapidement.

— Irréversible : impossible,pour une valeur de hachage donnée,de construire un message ayant cette valeur de hachage (fonction à sens unique).

— Infalsifiable : impossible de modifier un message sans changer sa valeur de ha-chage.

— Sans collisions : impossible de trouver deux messages différents ayant la même valeur de hachage.

1.2.2 Utilisation des fonctions cryptographiques de hachage

Les fonctions cryptographiques de hachage sont utilisées dans plusieurs contextes, tels que la construction de dictionnaires. Toutefois, ce que nous allons voir ici, c’est son rôle important dans le domaine de la cryptographie.

Chiffrer une clé secrète à partir du mot de passe : souvent, le mot de passe est uti-lisé pour chiffrer les données sensibles avec un mécanisme de chiffrement symétrique. Ce système rencontre souvent des problèmes, car ces mécanismes de chiffrement fonc-tionnent avec une clé de taille fixe (ex 128 bits). Une meilleure solution pour résoudre ce problème est de hacher le mot de passe pour obtenir une taille fixe, puis l’utiliser pour le chiffrement.

(24)

Protection de mot de passe : dans de nombreuses plateformes qui utilisent le mot de passe comme système d’authentification, le stockage de mot de passe n’est plus en clair. Dès l’inscription de l’utilisateur, les plateformes utilisent des fonctions de hachage pour calculer l’empreinte du mot de passe et la stocker à sa place. Le système peut toujours tester si un mot de passe donné x convient en calculant H(x) et en comparant le résultat avec la valeur stockée. Cette technique apporte un indice de sécurité pour la plateforme, puisque nous voyons apparaître une première propriété de la fonction de hachage que nous venons de citer ci-dessus : il faut que le H soit à « Irréversible », c’est-à-dire à partir du hach de mot de passe stocké, il ne faut que nous arrivions à déterminer le mot de passe en clair.

Signatures numériques : c’est dans le contexte de la signature numérique que nous utiliserons la fonction de hachage dans ce travail. Nous allons voir dans la section précèdent la signature numérique, mais ici nous expliquons seulement l’utilisation de la fonction de hachage dans ce contexte. D’abord, tous les algorithmes asymétriques peuvent l’utiliser non seulement pour le chiffrement, mais aussi pour signer un mes-sage. Les algorithmes de signature ne peuvent pas signer que des messages de taille fixe qui soient inférieurs à la taille de clé. À titre d’exemple, nous pouvons penser au cas de RSA dont la taille de clé est de de 2048 bits, ce qui fait en sorte qu’il ne peut pas signer des messages au-dessus de 2048 bits. Dans ce cas, comment procède-t-on alors pour signer un fichier de Giga-octets ?

La solution est de calculer l’empreinte du message, c’est-à-dire signer H(M ) à la place de M . Pour garantir la non-répudiation, il faut donc que la fonction de hachage soit calculatoirement impossible de produire des collisions.

Intégrité de message : une utilisation importante de la fonction de hachage est de garantir l’intégrité des fichiers ou du message envoyé durant une transmission, car la modification d’un fichier ou du message lors d’une transmission peut être prou-vée en comparant la valeur de hachage avant et après la transmission. Il existe bien sûr de nombreuses autres applications pour les fonctions de hachage cryptographique, comme les MACs (message authentication code), certificats, mise en gage, Blockchain, horodatage, etc.

1.2.3 Étude comparative des fonctions de hachage usuelles

Après avoir cité quelques utilisations des fonctions de hachage, comparons maintenant une liste des algorithmes de hachage usuels. Les données de comparaison sur le tableau

(25)

ci-dessous sont tirées des résultats de la recherche d’Ali Maetouq dans [18].

Algorithmes

Propriétés MD5 RIPEMD-160 SHA-1 SHA-2 256/512

SHA-3 256/512 Taille de block RIPEMD-160 512 bits 512 bits 512/1024 bits 1088/576

bits Taille de mot SHA-1 32 bits 32 bits 32/64 bits 320/320

bits Taille de sortie SHA-2 160 bits 160 bits 256/512 bits 1600/1600

bits Rounds 256/512 80 80 64/80 24/24 Opérations SHA-3 ADD,XOR, ROTATE, AND, OR, NOT ADD, XOR, AND, OR, NOT, ROTATE ADD, XOR, OR, AND SHIFRT, ROTATE

Construction 256/512 Merkle-Damgard Merkle-Damgard Merkle-Damgard Sponge TABLE1.3 – Comparaison des fonctions standards de Hachage

1.3

Signature numérique

1.3.1 L’idée

La signature numérique est une primitive cryptographique qui a été appliquée à de nombreux cas où l’intégrité et la non-répudiation s’avéraient essentielles. Elle permet de signer les documents, par exemple un contrat électronique, les transactions ban-caires, les mails, certificat, etc. La signature numérique fonctionne de la même manière que la signature manuscrite. Quand Obélix signe un document avec sa signature ma-nuscrite, toute personne qui voit le document et connaît la signature d’Obélix sait qu’il est le signataire du document. Lors de la répudiation ou contestation, la signature est la seule preuve qu’Obélix a eu connaissance du document et en a accordé le contenu.

Le principe de la signature numérique est le suivant. Supposons qu’Obélix veut signer un document m. Il utilise sa clé privée pour créer la signature S, mais comme indiqué dans la section de hachage, il ne signe pas directement le document mais plutôt son em-preinte, c’est-à-dire l’hach du document. En utilisant la clé publique correspondante, Astérix peut vérifier l’authentification de la signature. Ceci est illustré par la figure sui-vante. Comme pour le chiffrement, un schéma de signature numérique comprend trois algorithmes dont :

— Un algorithme de génération de clé Kg = (pk, sk) à partir du paramètre de sécu-rité, il produit une paire de clés : clé privée et clé publique.

(26)

FIGURE1.3 – Signature numérique

— Un algorithme de création de signature S(sk, m) = σ — Un algorithme de vérification de signature V (pk, σ) = m.

Dans le cadre de notre recherche consacrée à la signature numérique d’un document, nous verrons dans le chapitre 5 la méthode que nous avons adoptée. Toutefois, nous allons voir ici deux schémas de signature RSA et El Gamal, puis comparer quelques algorithmes de signatures usuelles.

1.3.2 Signature RSA

Dans la section précédente, nous avons vu comment chiffrer avec RSA, mais ce sys-tème cryptographique est aussi utilisé pour générer des signatures numériques. Nous allons expliciter maintenant comment RSA fonctionne dans un contexte de signature numérique.

Génération des clés : la génération des clés pour la signature RSA est similaire au chiffrement RSA que nous avons vu précédemment. Pour générer ses clés, Obélix doit :

— Choisir deux grands nombres premiers (p, q) — Calculer leur produit n = p ∗ q

(27)

— Calculer Φ(n) = (p − 1) ∗ (q − 1)

— Choisir e tel que : pgcd (e, Φ(n)) = 1 et e < Φ(n) — Calculer d tel que : e ∗ d ≡ 1 mod Φ(n)

Sa clé publique est (e, n) et sa clé privée est (d, n).

Création de la signature : nous allons observer comment Obélix signe un message m, 0 ≤ m ≤ n − 1, dont m peut être un court document, valeur hachée. Pour signer m, Obélix utilise sa clé privée (d, n) et calcule σ = mdmod n.

Ici, σ est la signature du document m.

Vérification de la signature : Astérix peut vérifier l’authenticité de la signature avec la clé publique d’Obélix (e, n) en calculant m = σe mod n. De plus, puisqu’Astérix a

calculé m à partir de σ , il sait que σ est la signature de m. Pour que RSA fonctionne, il suffit que medmod n = m mod n.

1.3.3 Signature El Gamal

La signature El Gamal fonctionne de la même manière que le chiffrement El Gamal, puisque sa sécurité est basée sur la difficulté à calculer le logarithme discret.

Génération de clés : les clés de signature sont générées de même façon que le chiffre-ment avec El Gamal. Pour générer sa paire de clés, Obélix doit :

— Choisir un nombre premier p. — Choisir un générateur g dans Z ∗ p

— Choisir un exposant au hasard a ∈ {0, . . . , p − 2} — Calculer Y = gamod n

La clé publique d’Obélix est (p, g, y) ; et sa clé privée est l’exposant a. Ici, en ayant le p, g et y calculé a est infaisable.

Génération de signature : supposons que Obélix veut signer un message m. Pour ce faire, il calcule d’abord un nombre aléatoire k tel que k < p et pgcd(k, p − 1) = 1. Après, il calcule :

— r = gkmod p,

(28)

La signature de m est le couple (r, s), k−1 est l’inverse de k modulo p − 1 et h(m) est une fonction de hachage qui calcule le hach de m.

Vérification de signature : pour vérifier la signature, Astérix utilise la clé publique de Obélix (p, g, y) et calcule :Yr× rs ≡ gH(m) mod p si la congruence est satisfaite, alors la

signature est authentique, sinon il rejette.

1.4

Conclusion

Ce chapitre est consacré à la cryptographie qui est l’élément de base de ce mémoire. La première partie a abordé les systèmes de chiffrements, à savoir la symétrique et l’asymétrique. Nous avons constaté que les problèmes liés à la cryptographie symé-trique et qui perturbent encore jusqu’ici sont le partage et la gestion de la clé, mais ces problèmes sont réglés par la cryptographie asymétrique grâce aux notions des clés pu-blique et privé. Selon la comparaison des algorithmes asymétrique pour le chiffrement, nous pouvons affirmer que c’est El Gamal est le plus rapide en termes de chiffrement et déchiffrement par rapport aux RSA et ECC. Dans la deuxième partie de ce chapitre, nous avons présenté la fonction cryptographique de hachage, qui s’avère être une fonc-tion particulière à sens unique qui calcule l’empreinte des données. Une foncfonc-tion de hachage est bonne si elle respecte les quatre propriétés telles que : rapide, irréversible, infalsifiable, sans collisions. Dans la dernière partie nous nous sommes intéressés à la signature numérique, qui constitue l’objet de notre travail de recherche, bien qu’elle ait été aussi appliquée à de nombreux cas où l’intégrité et la non-répudiation s’avéraient essentielles. Nous pouvons dire que la signature numérique fonctionne de la même ma-nière que la signature manuscrite, les étapes de la signature numérique étant présentées à travers deux algorithmes que nous avons choisis : RSA et El Gamal. Nous constatons qu’avec la signature RSA il suffit de faire une exponentiation de petits exposants pour vérifier une signature, alors que pour les signatures El Gamal simples, il faut faire trois exponentiations de taille réelle pour vérifier une seule signature.

(29)

Chapitre 2

Fast IDentity Online (FIDO) 2.0

Dans ce chapitre, nous allons présenter une nouvelle norme d’authentification « FIDO 2.0 » basée sur la signature numérique qui est utilisée dans les services Web et des applications natives. Nous débuterons par une introduction, puis nous présenterons les autres modules qui combinent FIDO2, à savoir le CTAP (Client to Authenticator Protocols) et l’API Webauthn. Enfin, nous nous intéresserons à la signature numérique du FIDO2 sur laquelle se base notre solution de signature d’un document.

2.1

L’idée

Actuellement, les technologies d’authentification rencontrent un certain nombre d’in-convénients, surtout en ce qui concerne les services sur internet. Les utilisateurs doivent s’authentifier plusieurs fois auprès de chaque entité de service telle que les services bancaires, les services de messagerie électronique, les réseaux sociaux, etc. Chaque en-tité possède ses modes d’authentification avec différents modes de défaillance. Le mo-dèle le plus connu est l’authentification avec les mots de passe, qui présente un certain nombre de problèmes liés à la force, à la gestion et au compromis, ce qui signifie qu’une vaste liste de mots de passe ou hash de mots de passe est exposée.

Pour pallier ce problème, les grandes entreprises des services en ligne ont trouvé un consensus sur un nouveau modèle d’authentification. Le projet s’appelle « Fast IDen-tity Online » lancé par FIDO alliance en 2013.

FIDO dispose de deux grandes versions : en effet, la version FIDO 1.0 sortie en dé-cembre 2014 est marquée par deux grands protocoles qui sont Universal Authentication

(30)

Framework (UAF) et Universal 2nd Factor (U2F). Néanmoins, ce que nous allons voir en détail dans ce rapport est la version FIDO 2.0 , qui est devenue une version standard pour le web depuis mars 2019 [19].

2.2

Les spécifications de FIDO 2

FIDO2 est la dernière génération du protocole U2F qui ne dispose pas de mot de passe. Alors que U2F est créé pour servir de second facteur du modèle de connexion exis-tante basé sur le nom d’utilisateur et le mot de passe, FIDO2 a pour but de permettre à l’authentification de ne plus nécessiter de mot de passe. Il offre plusieurs choix d’au-thentification : aud’au-thentification à facteur unique (sans mot de passe ou Passwordless), authentification à deux facteurs (qui combine le mot de passe avec l’authentificateur) et l’authentification à facteurs multiples (Passwordless + PIN + Biométrie).

Il y a deux cas d’utilisation avec FIDO2. Le premier cas d’utilisation est celui où un utilisateur effectuera un simple geste avec un appareil mobile (authentificateur) pour se connecter à un appareil de la plateforme (PC, tablette, etc.). Le deuxième cas d’uti-lisation est celui où l’utilisateur souhaite utiliser un authentificateur intégré pour se connecter au même périphérique, c’est-à-dire que le dispositif d’authentification et le périphérique hôte sont les mêmes. Pour assurer la fonctionnalité de ces deux cas d’uti-lisation, FIDO 2 a besoin de Webauthn, qui est un API Web pour une authentifica-tion forte, et d’un protocole CTAP qui est un protocole d’authentificaauthentifica-tion forte inter-périphérique entre l’hôte et l’authentificateur. L’image suivante est basée sur l’évolu-tion de l’authentifical’évolu-tion FIDO2 dans [20].

(31)

2.2.1 WebAuthn

WebAuthn est une API JS. Cette API permet aux applications Web d’utiliser directe-ment le cryptage à clé publique et les authentificateurs FIDO. Ainsi, là où FIDO1.0 exigeait toujours des logins et des mots de passe, FIDO2 a mis en place l’architec-ture nécessaire pour supprimer les informations d’identification traditionnelles. We-bauthn étend les méthodes JavaScript existantes : navigator.credentials.create() et tor.credentials.get() pour accepter les paramètres à clés publiques. La méthode naviga-tor.credentials.create() génère une paire de clés publique et privée et les lie au compte d’utilisateur, au périphérique de l’utilisateur (Authentificateur) et au serveur (Relying Party). Durant l’authentification, la méthode navigator.credentials.get() est utilisée pour obtenir la réponse.

2.2.2 CTAP

CTAP est l’acronyme de « Client to Authenticator Protocols », qui constitue un proto-cole de bas niveau permettant de communiquer avec les authentificateurs à partir du Bluetooth, NFC et USB. Il existe deux versions de CTAP : le CTAP1 qui est le nom officiel du protocole U2F et le CTAP2 qui a été créé pour permettre aux authentifica-teurs externes comme les jetons, téléphones, cartes à puce, etc., d’interagir avec FIDO2 comme le montre la Figure2.1.

Pour fournir l’expérience de connexion sans mot de passe FIDO2, nous aurons besoin du WebAuthn et CTAP2, mais WebAuthn prend toujours en charge les authentifica-teurs FIDO U2F, puisque CTAP1 fait également partie de la spécification WebAuthn.

(32)

2.3

Flux d’enregistrement d’un utilisateur avec FIDO2

Si Obélix veut s’enregistrer auprès d’un service qui fonctionne avec FIDO2 comme système d’authentification, il doit avoir un authentificateur comme : PC, tablette, té-léphone ou clé de sécurité FIDO pour stocker les informations liées à son compte telles que la clé privée, ID, etc. Par la suite, il se peut qu’il doive remplir un formulaire d’ins-cription selon la gestion d’authentification du service.

Le flux d’enregistrement est relaté de manière détaillée dans la figure2.2. En résumé : — L’API Webauthn envoie une requête d’enregistrement qui contient les

informa-tions d’Obélix au serveur FIDO2 (Relying Party).

— Le serveur génère une structure de données appelée « CredentialCreateOptions » qui contient : le défi (challenge en anglais), l’information du serveur, l’information d’Obélix et autres données nécessaires par le protocole.

— L’API Webauthn valide l’origine pour prévenir le « phishing ».

— L’authentificateur vérifie l’utilisateur et demande le consentement d’Obélix avec des données biométriques (empreinte digitale, reconnaissance faciale, etc.). — L’authentificateur crée la paire de clés, dont la clé privée qui sera conservée

sécu-ritairement dans l’authentificateur d’Obélix et la clé publique qui sera envoyée au serveur FIDO2.

— Le serveur FIDO2 vérifie l’attestation (si la clé privée est authentique ou pas). Ici, le Webauthn utilise la méthode : navigator.credentials.create() qui va prendre en para-mètre le « CredentialCreateOptions » pour générer la paire de clés d’Obélix.

(33)
(34)

2.4

Flux d’authentification d’un utilisateur avec FIDO2

Maintenant qu’Obélix possède son compte auprès du service, il peut se connecter en toute sécurité. Au lieu d’être effectuée directement sur le service, l’authentification sera faite localement avec son authentificateur. Le flux de connexion est relaté dans la figure 2.3que nous pouvons résumer comme suit :

— L’API Webauthn envoie une requête de connexion qui contient le login d’Obélix au serveur FIDO2 (Relying Party).

— Le serveur FIDO2 génère une structure de données appelée « credentialReques-tOptions » et qui contient le défi, la CREDID (l’identifiant de la clé privée corres-pond au service dans l’authentificateur d’Obélix) et autres données nécessaires par le protocole.

— L’API Webauthn valide l’origine pour prévenir le « phishing ».

— L’authentificateur vérifie si le CREDID existe et demande le consentement d’Obé-lix avec des données biométriques (empreinte digitale, reconnaissance faciale, etc.).

— L’authentificateur signe les données générées par le serveur FIDO2 (Relying Party). — Le serveur FIDO2 vérifie la signature et il donne accès si la signature est valide,

sinon il rejette.

Ici, l’API Webauthn utilise la méthode navigator.credentials.get() qui prend en para-mètre le « credentialRequestOptions » et s’attend à obtenir une réponse venant de l’au-thentificateur d’Obélix.

(35)
(36)

2.5

Signature avec FIDO2

Le composant d’un système qui implémente FIDO2 se subdivise en trois grandes par-ties telles que montrées par la Figure2.2et la Figure2.3:

— La partie serveur ou la partie confiance : par exemple, une application web ou une application native qui s’exécutent directement sur la plateforme du système d’exploitation.

— La plateforme client : qui comprend le système d’exploitation de l’utilisateur et le périphérique utilisé pour héberger l’application côté client de la partie confiance. Pour les applications Web, le navigateur appartient également à cette couche. — L’authentificateur : qui fournit la gestion des clés et les signatures

cryptogra-phiques.

La signature est créée dans l’authentificateur de l’utilisateur. Les données traitées par l’authentificateur doivent être de petite taille et faciles à interpréter dans un code de bas niveau, car il n’interprète pas les données de haut niveau.

Une signature numérique avec FIDO2 consiste en une concaténation de deux grandes données : celle qui fournit par le serveur appelé « clientData » c’est le Data2 dans la Figure2.2 et Figure2.3et ceux qui fournit par l’authentificateur appelé « authoticator-Data ». Le contenu du « clientauthoticator-Data » doivent être haché car l’authentificateur ne s’inté-resse pas à son contenu, alors elle devient « clientDataHash ». L’ « authoticatorData » est un tableau de 5 octets qui contient le : flags, conteur et l’extension [21]. La Figure 2.4 montre comment l’authentificateur génère une signature.

(37)

2.6

Conclusion

Ce chapitre présente une nouvelle norme d’authentification FIDO2 basée sur la signa-ture numérique. Nous avons vu que FIDO2 propose plusieurs choix d’authentification : l’authentification à facteur unique, l’authentification à deux facteurs et l’authentifica-tion à facteurs multiples. Avec ces choix d’authentifical’authentifica-tion, les utilisateurs peuvent uti-liser des identifications biométriques (empreinte digitale, reconnaissance faciale, voix, etc.) ou un code PIN. Nous avons analysé les flux d’enregistrements et d’authentifica-tion des utilisateurs avec FIDO2 ainsi que les données échangées durant les étapes. Hor-mis l’utilisation de https entre le client et le serveur, c’est grâce à Webauthn, qui est un API Web pour une authentification forte, ainsi qu’au protocole CTAP, qui est un proto-cole d’authentification forte inter-périphérique, que FIDO2 assure l’authentification des utilisateurs. Nous avons également exposé dans ce chapitre le mode de signature qu’il utilise et sur lequel se base notre approche. La signature concerne l’authentificateur des utilisateurs, la signature générée étant une signature brute qui est le chiffrement avec la clé privée de la concaténation de clientDataHash et authoticatorData. Toutefois, le serveur FIDO parvient à vérifier cette signature et authentifier l’utilisateur avec la clé publique qui est déjà enregistrée dans le serveur durant l’enregistrement.

(38)

Chapitre 3

Revue de littérature

Dans ce chapitre, nous allons examiner la revue de littérature sur l’état de l’art. Nous allons d’abord présenter la spécification de signature d’un document électronique, les travaux connexes, quelques outils logiciels de signature de documents les plus utilisés de nos jours et enfin, nous discuterons de l’utilisation de la biométrie dans la signature numérique.

3.1

Spécification de signature d’un document électronique

3.1.1 Le processus de signature

La signature d’un document électronique est caractérisée par sa ligne de vie. Selon [22], celle-ci se subdivise en quatre grandes parties comme le montre la Figure3.1.

— Création : Ici, la signature est créée par le signataire.

— Vérification initiale : La signature passe une vérification avec un programme in-formatique dont le but est de s’assurer de la validité de la signature.

— Archivage : Si la signature est authentique, le document est archivé avec la signa-ture.

— Vérification devant un juge : Dans le cas d’une contestation du signataire, on a besoin de la vérification devant un juge. C’est un cas qui ne présente pas souvent, mais l’objectif de l’archivage est d’assurer correctement cette opération.

(39)

FIGURE3.1 – Ligne de vie d’une signature d’un document électronique

3.1.2 Les différents types de signature

Plusieurs variétés de signatures s’offrent à nous pour signer un document électronique. Le document de COGITIS préparé par Richard en 2018 [23] concernant l’administra-tion numérique explique de manière détaillée ces différents types de signature. Nous pouvons les classifier en deux grands types : signature électronique et signature numé-rique.

3.1.2.1 Signature électronique

La signature électronique est une signature portée par un support électronique.

Signature scannée : Il s’agit d’une image de la signature manuscrite prise par photo ou scannée par une imprimante. Ce type de signature peut être officiel, mais n’offre pas une sécurité contre la fraude, car l’image de la signature peut être copiée et collée sur un autre document. C’est pour cette raison que ce genre de signature ne comporte aucune valeur juridique [23]. Cependant, celle-ci est encore très utilisée dans les processus ad-ministratifs de nos jours ; d’ailleurs, des sociétés et outils sont actuellement en service pour traiter cette signature pour qu’elle puisse imprimer à n’importe quelle taille tout en conservant les superbes lignes vectorielles.

Signature manuscrite sur tablette : Ce type de signature est souvent utilisé dans la vente pour signer les documents des clients. Un livre blanc de cryptolog international [24] a notamment souligné que « la tablette se révèle être un formidable outil d’aide à la vente. » En effet, la tablette est dotée d’un programme capable de capter la signature ainsi que ses caractéristiques comme le temps d’exécution, la pression et la direction qui vont servir comme informations d’audits. Cette signature est reconnue juridiquement, mais plusieurs conditions doivent être respectées telles que : la fiabilité des informa-tions d’audit et la sécurisation durant le transfert et l’enregistrement de la signature avec les informations d’audits.

(40)

Signature à la volée : La signature à la volée permet de valider un document sans certificat d’identité numérique. Le support le plus connu pour effectuer une signature à la volée est le SMS dont la structure de la signature est explicitée dans [23]. Pour signer un document, cela nécessite d’établir et de stocker la demande d’adhésion. La vérification de la signature repose sur la conservation des éléments de transaction pour savoir qui a signé quoi et quand. La signature à la volée possède une valeur juridique, mais selon certaines conditions : il faut que les informations d’audit ou de vérification de signature soient fiables (bien conserver les traces de l’opérateur véhiculant le SMS) et la communication entre les deux entités doit être sécurisée durant la signature.

3.1.2.2 La signature numérique

La signature numérique constitue une variété de la signature électronique, mais la liai-son entre le signataire et l’information à signer est assurée grâce à la cryptographie. Ce type de signature est basé sur la cryptographie asymétrique comme nous l’avons vu dans le chapitre 1. Actuellement, plusieurs plateformes intègrent cet algorithme pour créer une signature à l’aide de certificats numérique. Adobe PDF et Microsoft Word sont des exemples de plateformes de traitement de document qui proposent la signa-ture numérique.

Juridiquement, ce type de signature est fortement approuvé, car on peut vérifier la si-gnature en fonction des algorithmes (voir chapitre1) utilisés si elle est authentique ou pas.

3.1.3 Outils et logiciel de signature numérique d’un document

Plusieurs outils et logiciels de signature numérique de document sont actuellement disponibles sur le marché. Il y a ceux qui sont intégrés déjà dans des éditeurs de texte comme : l’outil de signature Microsoft office[25], Adobe Sign pour Adobe Acrobat, etc.

Dans l’environnement commercial actuel, les signatures numériques sont principale-ment utilisées dans les dépôts de docuprincipale-ments régleprincipale-mentaires et le commerce électro-nique, car elles sont considérées comme hautement sécurisées. Plusieurs pays attri-buent aux signatures électroniques la même importance juridique que les méthodes traditionnelles d’exécution des documents. Dans le tableau ci-dessous, nous pouvons voir d’autres logiciels de signature numérique pour les documents qui sont souvent utilisés par des entreprises qui sont relatées dans [26].

(41)

Logiciel Idéal pour

HelloSign Signatures rapides et simples

CudaSign Documents partageables

Adobe Document Cloud eSign services Intégration Adobe

Preview Avec le OS Mac

Adobe Acrobat Document Cloud Compatibilité des formulaires Adobe

DocuSign Signature de document mobile

RightSignature Paiements par carte de crédit

SigningHub Signatures numériques sécurisées

SignEasy Accès hors ligne

SIGNiX Signatures numériques prêtes à l’emploi

Inkdit Signatures de demandes groupées

Agreen’Sign Signatures sur votre site web

TABLE3.1 – Logiciels de signatures numériques

3.2

Travaux connexes

Après avoir vu la spécificité de la signature d’un document électronique, intéressons-nous maintenant à la signature numérique qui est le type de signature de document que nous proposons dans ce travail. Des recherches sont menées par rapport à cette optique et nous allons les examiner dans cette partie.

Souvent, les documents stockent des informations importantes dans une organisation. Selon la littérature [27], le document contient 80 % à 90 % de leurs informations. En effet, le volume de documents numériques a considérablement augmenté ces dernières années étant donné que certaines organisations adoptent le concept de « paperless of-fice »[28] pour bien gérer leur travail. Cependant, cette pratique a créé des nouveaux besoins, tels que la signature numérique réelle de documents. La gestion des docu-ments numérique du concept « paperless office » peut progressivement remplacer la gestion de documents traditionnelle. De la même façon que les documents tradition-nels peuvent être facilement authentifiés avec une signature sur papier, bénéficiant ainsi d’une validité juridique, il est essentiel d’arriver au même résultat sur des documents numériques selon [5].

Une méthode de signature de document et de processus de vérification à travers une plateforme cloud a été proposé par Narayan, Muhammad, Ekhlasur et Mohammad dans [1]. Le signataire doit faire face à une authentification à deux facteurs en utilisant la biométrie (motifs des veines de doigt) et une clé aléatoire OTK avant de signer un document avec sa clé privée. Ainsi, le système offre une interaction confidentielle entre le signataire et le destinataire du document. Leur approche est illustrée à la Figure3.2:

(42)

1. Le signataire envoie ses données de veine de doigt à l’aide d’un lecteur de veine pour faire une demande d’authentification au serveur ;

2. Le serveur gère les certificats de l’utilisateur et les valide avec l’aide de l’autorité de certification ;

3. Le serveur génère une clé unique OTK (One-Time Key), puis l’envoyer au mobile du signataire ;

4. Le signataire renvoie la clé OTK avec le document à signer au serveur pour ter-miner l’opération de signature ;

5. Le serveur renvoie le document signé à l’utilisateur lorsque le processus de signa-ture est terminé.

FIGURE3.2 – Signature d’un document avec authentification à deux facteurs [1]

Étant donné que la plateforme de signature est en ligne, une connexion internet est re-quise. Pour le prélèvement des données biométrique, un matériel tel qu’un lecteur de veine est aussi recommandé même si cela peut coûter un peu cher. Toutefois, on peut toujours utiliser des smartphones dotés d’un lecteur de veine pour faciliter la tâche.

Dans [2] Gourab Saha parle de « Dsign », un outil de signature utilisé dans un environ-nement sans papier. La clé de signature est une clé de hachage sha-1 générée à partir

(43)

du contenu du document. C’est cette clé qui va se transformer en Qr-Code et un code-barres qui seront enregistrés en image et collés sur le document comme une signature. La Figure3.3illustre leur approche :

1. L’utilisateur entre le contenu requis sur le document ;

2. Une copie de chacun de ces contenus fournis est transmise à une fonction de concaténation et de hachage SHA-1 où le total des contenus fournis est concaténé en une seule chaîne de texte, puis converti en une clé de hachage SHA-1 ;

3. La clé générée ainsi que le contenu des données d’origine sont ensuite transmises au contrôleur DSign ;

4. Le contrôleur DSign vérifie tout enregistrement en double dans la base de don-nées et signale une erreur si un enregistrement en double est trouvé. Une fois la vérification du contrôleur d’enregistrement réussie, la clé de hachage générée à l’étape 2 est envoyée à la fonction de générateur d’image de code ;

5. Le générateur d’images de code intègre l’URL Web de l’enregistrement de signa-ture dans la base de données DSign sur un Qr-Code et un code-barres, puis créer les images de code générées ;

6. N’importe laquelle (ou les deux) de l’image de code peut être collée dans le do-cument électronique pour représenter sa signature numérique.

À part les fonctions de base d’un système de signature (création de signature « et véri-fication), il permet également le suivi de l’état du document et permet au propriétaire de le conserver. Leur technique relie chaque signataire et destinataire dans un même réseau pour assurer une communication sécurisée.

(44)

Nous constatons que la méthode utilisée garantit seulement l’intégrité de document. Aucun lien n’est établi entre le signataire et le document à signer, donc on ne peut pas authentifier le signataire de document. Dans ce système, il est très facile de générer la clé de signature seulement à partir d’une fonction de concaténation et hachage(sha-1), ce qui rend le système vulnérable.

Une méthode de signature numérique à l’aide d’empreintes digitales est proposée par Rahmawati, Listyasari, Shidqul Aziz et leurs équipes dans [3]. Ils ont profité du sys-tème de technologie biométrique d’empreintes digitales qui était disponible dans cer-tains produits pour smartphones d’aujourd’hui pour mettre en œuvre leur contribu-tion. Leur idée est de mettre en place un schéma de signature numérique de document en utilisant la biométrie et la cryptographie asymétrique RSA. Pour signer un docu-ment, le signataire procède comme illustré à la Figure3.4:

1. Il numérise son empreinte digitale dans le capteur d’empreinte digitale du smart-phone, et lorsque le smartphone effectue l’authentification, le système se connecte au serveur ;

2. Le serveur générera une paire de clés à l’aide de l’algorithme RSA, puis le serveur enverra la clé privée et la clé publique à la base de données ;

3. Le serveur signe alors le document à l’aide d’une clé privée.

Une fois que le document est signé, le signataire transmet le document au vérificateur avec la clé publique. Le vérificateur reçoit le document signé et la clé publique peut vérifier le propriétaire de la signature.

FIGURE3.4 – Signature numérique d’un document à l’aide d’empreintes digitales bio-métriques avec capteur d’empreintes digitales sur smartphone [3]

(45)

Dans cette approche, l’identifiant du signataire qui est l’empreinte digitale ne peut pas être atteint, car il est stocké sur un système sécurisé de smartphone. En revanche, la sécurité de la clé privée n’est pas assurée dans leur méthode, car ils stockent la clé privée dans la base de données, ce qui signifie que si une personne malveillante accède à la clé privée, elle peut signer à la place du signataire sans avoir passé par l’authentification biométrique.

Une autre méthode de signature de contrat pour les services commerciaux en utilisant la carte d’identité a été proposé par Emir ,Bramanto et Muhammad dans [4]. Ces tech-niques comportent certains avantages. La création, le stockage et l’accès à la clé privée sont gérés par une interface qui a recours à une authentification à deux facteurs en utilisant Google Cloud Messaging. L’identité du signataire lors de l’utilisation de cette application peut être prouvée par sa carte d’identité nationale. Dans cette méthode, trois grandes entités interagissent pour le service de signature. La première entité est l’autorité de certification (CA) qui fournit des informations sur l’identité de l’utilisateur et la clé publique en cas de besoin. La deuxième entité est l’interface de signature (SI) qui permet la création, le stockage et l’accès sécurisés de la clé privée de l’utilisateur. SI interagit avec la machine utilisateur à l’aide de Google Cloud Messaging (GCM) pour effectuer une authentification à 2 facteurs. La troisième entité est le service Web qui fournit à l’utilisateur une interface Web pour accéder aux fonctions liées à la signature. La Figure3.5montre le fonctionnement de leur outil de signature expliqué comme suit : 1. Le propriétaire du document télécharge le document et définit le signataire sur le

Web

2. Le signataire reçoit une notification sur son appareil

3. Le signataire peut télécharger et consulter le contenu sur le Web

4. Le signataire initie la signature du document en appuyant sur le bouton signer dans la page du document

5. Le signataire confirme la demande de signature dans son appareil 6. Si la signature réussit, SI envoie le document signé au Web

Références

Documents relatifs

Nous pro- posons une approche basée sur l’intégration de la segmen- tation sémantique globale ou partielle du corps humain dans le processus de classification.. Le modèle destiné à

Dans ce travail, on propose une approche numérique basée sur les méthodes dites de composition de champ de vitesse pour l’étude de la propagation de la houle en présence

Devenir la boîte à outils numériques des petites PME au Québec et les accompagner dans leur virage vers le numérique... Susciter l’intérêt pour le numérique et démontrer son

Dans ce travail, une approche basée sur les algorithmes génétiques (AGs) est utilisée pour extraire les paramètres électriques pour différents modules

Dans ce chapitre on a vu trois implémentations du tatouage numérique et leur fonctionnement par la conversion ainsi que l'application de l'algorithme de tatouage ,au début on a

Il est aujourd’hui encore temps pour réagir et dynamiser les citoyens, l’Etat, les entreprises et les investisseurs dans leurs approches du numérique et faire revenir la France

Les deux approches évoquées pour la simulation numérique (canal seul ou canal avec environ- nement) sont considérées. La démarche proposée dans ce travail consiste à étudier dans

Les deux approches évoquées pour la simulation numérique (canal seul ou canal avec environnement) sont considérés. La démarche proposée dans ce travail consiste à étudier dans