SĂ©curisation des communications
DĂ©couverteâïž
Lors de l'envoi d'un paquet, via le protocole HTTP, les routeurs successifs peuvent aisément accéder aux contenus envoyés. DÚs lors il peuvent les lire, voire les modifier.
L'envoi d'informations sensibles, et le respect de la vie privée, ne sont donc pas compatibles avec ce protocole. La solution est de chiffrer les données, mais il n'est pas facile de le faire en respectant deux conditions :
Mon info
- Le chiffrement doit ĂȘtre fiable, un tiers ne dois pas pouvoir dĂ©coder l'information.
- le chiffrement doit ĂȘtre suffisamment rapide pour ne pas ralentir les flux de donnĂ©es.
Le chiffrement
Nous allons Ă©tudier les principes du
- chiffrement symétrique
- chiffrement asymétrique
Vocabulaire déchiffrer ? décrypter ?
- Chiffrer : il sâagit de rendre un document illisible avec une clef de chiffrement
- DĂ©chiffrer : il sâagit de rendre lisible un document chiffrĂ©, en ayant connaissance de la clef de chiffrement
- Crypter : cela nâexiste pas
- DĂ©crypter : il sâagit de rendre lisible un document chiffrĂ©, sans avoir connaissance de la clef de chiffrement
- Cryptologie : il sâagit de la science du secret
I. Exemples de chiffrements symĂ©triquesâïž
1. Le chiffrement de CĂ©sarâïž
Nous pouvons appeler "clé" le décalage decalage
de cet exercice.
Question
La connaissance de cette clé permet-elle de déchiffrer un message chiffré ?
Solution
Pour dĂ©chiffrer, il suffit d'utiliser le mĂȘme procĂ©dĂ© avec la clĂ© opposĂ©e, par exemple -4 si on a chiffrĂ© avec 4.
2. Le chiffrement avec xorâïž
xor
Une méthode, qui est encore utilisée de nos jours dans des algorithmes plus complexes, est d'utiliser une propriété de xor (ou exclusif).
a xor b est vrai Ă©quivaut Ă seulement a est vrai ou seulement b est vrai, mais pas les deux (c'est pour cela que cela s'appelle le ou exclusif), et se note xor.
Voici la table de vérité de xor :
a | b | a xor b |
---|---|---|
T | T | F |
T | F | T |
F | T | T |
F | F | F |
retrouver a si on connait b et a xor b
Si on connait b et a xor b on peut retrouver a.
En effet, regardons les 3 derniĂšres colonnes du tableau ci-dessous.
La premiĂšre et la derniĂšre colonne du tableau sont identiques donc b xor (a xor b) est Ă©quivalent Ă a .
Si on connait b et a xor b, nous pouvons donc trouver a en faisant b xor (a xor b).
a | b | a xor b | b xor (a xor b) |
---|---|---|---|
T | T | F | T |
T | F | T | T |
F | T | T | F |
F | F | F | F |
Exemple
Nous allons chiffrer "a" : (code 97) par xor avec la clé "n" (code 110)
En binaire sur 8 bits : \(97_{10} = (01100001)_2\) et \(110_{10} = (01101110)_2\)
Effectuons \(97_{10}\) xor \(110_{10}\) bit Ă bit avec les encodages binaires sur 8 bits.
\(97_{10}\) | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | |
XOR | \(110_{10}\) | 0 | 1 | 1 | 0 | 1 | 1 | 1 | 0 |
\(97_{10}\) xor \(110_{10}\) | = | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 |
Remarquons que \(1111_2=15_{10}\)
Pour la transformation inverse :
\(97_{10}\) xor \(110_{10}\) | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | |
XOR | \(110_{10}\) | 0 | 1 | 1 | 0 | 1 | 1 | 1 | 0 |
\((97_{10}\) xor \(110_{10})\) xor \(110_{10}\) | = | 0 | 1 | 1 | 0 | 0 | 0 | 0 | 1 |
La derniĂšre ligne du deuxiĂšme tableau nous redonne bien l'encodage binaire de \(97_{10}\).
Nous allons donc utiliser ces propriétés pour réaliser des chiffrements et déchiffrements.
xor bit Ă bit en Python
xor est effectué par ^
en Python.
â ïž il faut Ă©crire les nombres en dĂ©cimal ! (ce qui nous arrangera pour le chiffrement par xor**)
Tester
3. Une fonction de chiffrement avec xorâïž
Activité de masque jetable
On considĂšre la variable suivante : masque = "CETTEPHRASEESTVRAIMENTTRESTRESLONGUEMAISCESTFAITEXPRES"
- Créer une fonction
chiffre(message, masque)
qui chiffremessage
de type str en faisant un xor avecmasque
Ă©galement de type str. On garantit que la longueur demessage
est inférieure ou égale à celle demasque
(54) - Cette fonction doit pouvoir aussi servir à déchiffrer le message chiffré.
# Tests
(insensible Ă la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)
II. Le chiffrement symĂ©triqueâïž
La mĂȘme clĂ©
Dans un chiffrement symĂ©trique, c'est la mĂȘme clĂ© qui va servir au chiffrement et au dĂ©chiffrement.
1. Qu'appelle-t-on une clĂ© ?âïž
Qu'est-ce qu'une clé ?
La clĂ© est un renseignement permettant de chiffrer ou dĂ©chiffrer un message. Cela peut ĂȘtre :
- un nombre (dans un simple décalage des lettres de l'alphabet, comme le chiffre de César)
- une phrase (dans la méthode du masque jetable)
- une image (imaginez un chiffrement oĂč on effectue un XOR par les pixels d'une image)
Chiffrement symétrique
Un chiffrement est dit symétrique lorsque la connaissance de la clé ayant servi au chiffrement permet de déchiffrer le message. Par exemple, Alice chiffre son message en décalant les lettres de 3 rangs vers la droite dans l'alphabet, Bob saura qu'il doit les décaler de 3 rangs vers la gauche pour retrouver le message initial.
2. Quel est l'avantage d'un chiffrement symĂ©trique ?âïž
Avantages
Les chiffrements symétriques sont souvent rapides, consommant peu de ressources et donc adaptés au chiffrement de flux important d'informations.
Comme nous le verrons, la sécurisation des données transitant par le protocole https
est basée sur un chiffrement symétrique.
3. Quel est l'inconvĂ©nient d'un chiffrement symĂ©trique ?âïž
Inconvénients
La clé ! Si Alice et Bob ont besoin d'utiliser un chiffrement pour se parler, comment peuvent-ils échanger leurs clés puisque leur canal de transmission n'est pas sûr ?
Le chiffrement symétrique impose qu'Alice et Bob aient pu se rencontrer physiquement au préalable pour convenir d'une clé secrÚte, ou bien qu'ils aient réussi à établir une connexion sécurisée pour s'échanger cette clé.
4. Un chiffrement symĂ©trique est-il un chiffrement de mauvaise qualitĂ© ?âïž
Pas du tout ! S'il est associĂ© naturellement Ă des chiffrements simples et faibles (comme le dĂ©calage de CĂ©sar), un chiffrement symĂ©trique peut ĂȘtre trĂšs robuste... voire inviolable.
C'est le cas du masque jetable. Si le masque avec lequel on effectue le XOR sur le message est aussi long que le message, alors il est impossible de retrouver le message initial. Pourquoi ?
Imaginons qu'Alice veuille transmettre le message clair "LUNDI". Elle le chiffre avec un masque jetable (que connait aussi Bob), et Bob reçoit donc "KHZOK". Si Marc a interceptĂ© le message "KHZOK", mĂȘme s'il sait que la mĂ©thode de chiffrement utilisĂ©e est celle du masque jetable (principe de Kerckhoffs), il n'a pas d'autre choix que de tester tous les masques de 5 lettres possibles. Ce qui lui donne \(26^5\) possibilitĂ©s (plus de 11 millions) pour le masque, et par consĂ©quent (propriĂ©tĂ© de bijectivitĂ© du XOR) \(26^5\) possibilitĂ©s pour le message «dĂ©chiffré»...
Cela signifie que Marc verra apparaĂźtre, dans sa tentative de dĂ©chiffrage, les mots "MARDI", "JEUDI", "JOUDI", "STYLO", "FSDJK", "LUNDI, "LUNDA"... Il n'a aucune possibilitĂ© de savoir oĂč est le bon message original parmi toutes les propositions (on parle de sĂ©curitĂ© sĂ©mantique).
Principe de Kerckhoffs
la sĂ©curitĂ© d'un systĂšme de chiffrement ne doit reposer que sur la sĂ©curitĂ© de la clĂ©, et non pas sur la connaissance de l'algorithme de chiffrement. Cet algorithme peut mĂȘme ĂȘtre public (ce qui est pratiquement toujours le cas).
5. Quels sont les chiffrements symĂ©triques modernes ?âïž
L'algorithme de chiffrement symétrique le plus utilisé actuellement est le chiffrement AES, pour Advanced Encryption Standard.
- chiffrement par bloc de 128 bits, répartis dans une matrice de 16 octets (matrice carrée de taille 4).
- ces 128 bits sont transformés par des rotations, multiplications, transpositions, [...] de la matrice initiale, en faisant intervenir dans ces transformations une clé de 128, 192 ou 256 bits.
- pour l'AES-256 (avec une clé de 256 bits), l'attaque par force brute nécessiterait \(2^{256}\) opérations, soit un nombre à 78 chiffres...
- il n'existe pas d'attaque connue efficace à ce jour. Les seules attaques sont des attaques sur des faiblesses d'implémentation, ou par canal auxiliaire.
III. Chiffrement asymĂ©triqueâïž
Présentation
Inventé par Whitfield Diffie et Martin Hellman en 1976, le chiffrement asymétrique vient résoudre l'inconvénient essentiel du chiffrement symétrique : le nécessaire partage d'un secret (la clé) avant l'établissement de la communication sécurisée.
supposons qu'Alice envoie un message crypté à Bob. Sans la clef, Bob ne peut le lire. Et si on lui envoie la clef, un tiers malveillant risque de l'intercepter, rendant nos efforts de cryptage inefficaces !
1. Principe du chiffrement asymĂ©triqueâïž
Alice veut envoyer un message chiffrĂ© Ă Bob. Bob crĂ©e deux clĂ©s, une clĂ© de chiffrement quâil rend publique et une clĂ© de dĂ©chiffrement qui reste privĂ©e (uniquement en possession de Bob). Alice rĂ©cupĂšre la clĂ© publique de Bob et peut chiffrer ses messages pour Bob. Seul Bob, qui possĂšde la clĂ© privĂ©e, peut les dĂ©chiffrer.
đ© âĄđ§ Donc si Alice veut envoyer un message Ă Bob, elle chiffre son message avec la clĂ© publique de Bob.
đ©âđ§ Si les Ă©changes se font dans les deux sens par chiffrement asymĂ©trique, Alice crĂ©e elle aussi deux clĂ©s, une clĂ© de chiffrement publique, que Bob utilise pour chiffrer les messages et une clĂ© de dĂ©chiffrement privĂ©e qui reste en sa possession.
Dans le schéma suivant réalisé par Gilles LASSUS, Bob veut envoyer un message à Alice
2. PrĂ©requis d'arithmĂ©tique modulaireâïž
a. Les congruencesâïž
Exemple
Il est 22h, quelle heure sera-t-il 8h plus tard ?
Si vous avez répondu 6h (et pas 30h à la question précédente), vous venez de faire de l'arithmétique modulaire, en effet vous n'avez conservé que le reste dans la division euclidienne par 24:
\(30 = 1 \times 24 + 6\) on Ă©crira que \(30 \equiv 6 [24]\) et on lira \(30\) est Ă©gal Ă \(6\) modulo \(24\) ou \(30\) est congru Ă \(6\) modulo \(24\)
VĂ©rifions que \(53 \equiv 5 [24]\). En effet \(53 = 2 \times 24 + 5\)
Question
a. Compléter \(103 \equiv \dots [24]\)
b. Compléter : \(13 \equiv \dots [5]\)
c. Compléter : \(42 \equiv \dots [7]\)
Solution
a. \(103 \equiv 7 [24]\) car \(103 = 4 \times 24 + 7\)
b. \(13 \equiv 3 [5]\) car \(13 = 2 \times 5 + 3\)
c. \(42 \equiv 0 [7]\) car \(42 = 6 \times 7 + 0\)
b. Nombres premiers et nombres premiers entre eux.âïž
Nombres premiers
Rappeler la définition d'un nombre premier. Les nombres suivants sont-ils premiers (justifier) : 12, 21, 29, 1 ?
Solution
Un nombre premier est un nombre qui a exactement deux diviseurs : 1 et lui mĂȘme
- 12 n'est pas premier car en plus de 1 et 12, il a aussi comme diviseur par exemple 2
- 21 n'est pas premier car en plus de 1 et 21, il a aussi comme diviseur par exemple 3
- 29 est premier, il n'a que 1 et 29 comme diviseurs
- 1 n'est pas premier : il n'a qu'un seul diviseur : 1
Nombres premiers entre eux
On dit que deux nombres sont premiers entre eux lorsque leur PGCD vaut 1.
Exemple
- Par exemple 12 et 5 sont premiers entre eux
- \(33\) et \(27\) ne sont pas premiers entre eux : \(33=3 \times 11\) et \(27=3 ^3\). Leur PGCD est Ă©gal Ă 3.
Nombres premiers
Donner la liste des nombres premiers avec 12 qui sont inférieurs à 12.
Solution
5, 7 et 11
3. Le chiffrement RSAâïž
Histoire
Lorsqu'en 1976 Diffie et Hellman (chercheurs à Stanford) présentent le concept de chiffrement asymétrique (souvent appelé cryptographie à clés publiques), ils en proposent uniquement un modÚle théorique, n'ayant pas trouvé une réelle implémentation de leur protocole.
Trois chercheurs du MIT (Boston), Ron Rivest, Adi Shamir et Len Adleman se penchent alors sur ce protocole, convaincus qu'il est en effet impossible d'en trouver une implémentation pratique. En 1977, au cours de leurs recherches, ils démontrent en fait l'inverse de ce qu'ils cherchaient : ils créent le premier protocole concret de chiffrement asymétrique : le chiffrement RSA.
Au mĂȘme moment Ă Londres, Clifford Cocks, (chercheur au trĂšs secret GCHQ) apprend que Rivest Shamir et Adleman viennent de dĂ©couvrir ce que lui-mĂȘme a dĂ©couvert 3 ans auparavant mais qui est restĂ© classĂ© Secret DĂ©fense.
Il est le véritable inventeur du RSA... mais le reste du monde ne l'apprendra qu'en 1997 au moment de la déclassification de cette information.
2.3.1 Descriptionâïž
Prérequis pour le RSA
Le chiffrement RSA est basé sur l'arithmétique modulaire. Faire des calculs modulo un entier \(n\), c'est ne garder que le reste de la division euclidienne par \(n\).
Le fait que 15 soit Ă©gal Ă 1 modulo 7 (car \(15=2 \times 7+1\)) s'Ă©crira \(15 \equiv 1 [7]\).
De mĂȘme, \(10 \equiv 3 [7]\), \(25 \equiv 4 [7]\), \(32 \equiv 2 [10]\), etc.
Ătape 1âïž
Alice choisit 2 grands nombres premiers \(p\) et \(q\). Dans la réalité ces nombres seront vraiment trÚs grands (plus de 100 chiffres).
Dans notre exemple, nous prendrons \(p = 3\) et \(q = 11\).
Ătape 2âïž
Alice multiplie ces deux nombres \(p\) et \(q\) et obtient ainsi un nombre \(n\) appelé module de déchiffrement..
- đ Il est trĂšs facile pour Alice de calculer \(n\) en connaissant \(p\) et \(q\).
- đą Il est extrĂȘmement difficile pour Marc de faire le travail inverse : trouver \(p\) et \(q\) en connaissant \(n\) prend un temps exponentiel avec la taille de \(n\).
C'est sur cette difficulté (appelée difficulté de factorisation) que repose la robustesse du systÚme RSA.
Ătape 3 : Alice crĂ©e sa clĂ© publiqueâïž
On note \(\phi(n)\) le nombre \((p-1)(q-1)\). C'est l'indicatrice d'Euler.
Alice choisit un nombre \(e\) appelĂ© exposant de chiffrement, qui doit ĂȘtre premier avec \((p-1)(q-1)\).
Dans notre exemple, \((p-1)(q-1) = 20\), Alice choisit donc \(e = 3\). (mais elle aurait pu aussi choisir 7, 9, 13...).
Le couple \((e, n)\) sera la clé publique d'Alice. Elle la diffuse à qui veut lui écrire.
Dans notre exemple, la clé publique d'Alice est \((3, 33)\).
Ătape 4 : Alice calcule sa clĂ© privĂ©eâïž
Alice calcule maintenant sa clé privée : elle doit trouver un nombre \(d\) qui vérifie l'égalité \(e \times d \equiv 1 [\phi(n)]\).
Dans notre exemple, comme \(7 \times 3 \equiv 1 [20]\), ce nombre \(d\) est Ă©gal Ă 7.
En pratique, il existe un algorithme simple (algorithme d'Euclide étendu) pour trouver cette valeur \(d\), appelée inverse de e.
Le couple \((d, n)\) sera la clé privée d'Alice. Elle ne la diffuse à personne.
Dans notre exemple, la clé privée d'Alice est \((7, 33)\).
Ătape 5 : Bob envoie un message chiffrĂ© Ă Alice avec la clĂ© publique d'Aliceâïž
Supposons que Bob veuille écrire à Alice pour lui envoyer le nombre 4. Il possÚde la clé publique d'Alice, qui est \((3, 33)\).
Il calcule donc \(4^3\) modulo 33, qui vaut 31. C'est cette valeur 31 qu'il transmet Ă Alice.
\(4^3 \equiv 31 [33]\)
Si Marc intercepte cette valeur 31, mĂȘme en connaissant la clĂ© publique d'Alice (3,33), il ne peut pas rĂ©soudre l'Ă©quation \(x^3 \equiv 31 [33]\) de maniĂšre efficace.
Ătape 6âïž
Alice reçoit la valeur 31.
Il lui suffit alors d'élever 31 à la puissance 7 (sa clé privée), et de calculer le reste modulo 33 :
\(31^7 = 27512614111\)
\(27512614111 \equiv 4 [33]\)
Elle récupÚre la valeur 4, qui est bien le message original de Bob.
Comment ça marche ? Grùce au Petit ThéorÚme de Fermat, on démontre (voir ici) assez facilement que \(M^{ed} \equiv M [n]\). Il faut remarquer que \(M^{ed} = M^{de}\). On voit que les rÎles de la clé publique et de la clé privée sont symétriques : un message chiffré avec la clé publique se déchiffrera en le chiffrant avec la clé privée, tout comme un message chiffré avec la clé privée se déchiffrera en le chiffrant avec la clé publique.
Animation interactive voir https://animations.interstices.info/interstices-rsa/rsa.html
4. Exercice : chiffrement RSAâïž
Exercice 1
Alice veut Ă©crire Ă Bob.
Soit le couple de nombre premiers \((p, q)\) avec \(p=5\) et \(q=13\).
a. Calculer \(n\) et \(\phi(n)\).
Solution
- \(n=5 \times 13 = 65\)
- \(\phi(n)= 4 \times 12 = 48\)
b. Justifier que \((9, 65)\) ne peut pas ĂȘtre une clĂ© publique.
Solution
Pour que \((e, n)\) soit une clé publique, il faut que \(e\) et \(\phi(n)\) soient premiers entre eux. Or le PGCD de 9 et 48 est 3.
9 et 48 ne sont donc pas premiers entre eux.
c. Vérifier que \((11, 65)\) est une clé publique. C'est la clé publique de Bob.
Solution
Pour que \((e, n)\) soit une clé publique, il faut que \(e\) et \(\phi(n)\) soient premiers entre eux. Or le PGCD de 11 et 48 est 1.
11 et 48 sont donc premiers entre eux. On peut donc choisir \((11, 65)\) comme clé publique.
d. VĂ©rifier que 35 est un inverse de 11 modulo 48.
Solution
\(35 \times 11 =385\). Or \(385=8 \times 48 + 1\)
Donc \(35 \times 11 = 1[48]\)
On dit que 35 est un inverse de 11 modulo 48
Remarque :
e. En déduire la clé privée de Bob.
Solution
La clé privée de Bob est donc \((35, 65)\)
f. Chiffrer le nombre secret d'Alice 17 avec la clé publique de Bob. C'est ce nombre qu'Alice envoie à Bob.
Solution
17 sera chiffré par 23.Alice envoie donc 23 à Bob.
g. Déchiffrer le nombre reçu par Bob
RSA, un systĂšme inviolable ?
Le chiffrement RSA a des défauts (notamment une grande consommation des ressources, due à la manipulation de trÚs grands nombres). Mais le choix d'une clé publique de grande taille (actuellement 1024 ou 2048 bits) le rend pour l'instant inviolable.
Actuellement, il n'existe pas d'algorithme efficace pour factoriser un nombre ayant plusieurs centaines de chiffres.
Deux évÚnements pourraient faire s'écrouler la sécurité du RSA :
- la découverte d'un algorithme efficace de factorisation, capable de tourner sur les ordinateurs actuels. Cette annonce est réguliÚrement faite, et tout aussi réguliÚrement contredite par la communauté scientifique. (voir, le 05/03/2021, https://www.schneier.com/blog/archives/2021/03/no-rsa-is-not-broken.html)
- l'avÚnement d'ordinateurs quantiques, dont la vitesse d'exécution permettrait une factorisation rapide. Il est à noter que l'algorithme de factorisation destiné à tourner sur un ordinateur quantique existe déjà : l'algorithme de Schor.
IV. Attaque par l'homme du milieuâïž
1. Exemple de scĂ©nario d'attaque par l'homme du milieuâïž
Question
Ecrire la fonction RSA
qui prend en paramÚtre une clé cle
, et un entier nbre
. Cette fonction renvoie le nombre chiffré ou déchiffré par RSA de nbre
avec la clé cle
.
Vous pourrez vérifier toutes les valeurs indiquées dans le scénario ci-dessus.
# Tests
(insensible Ă la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)
Résumé
Alice et Bob sont chacun persuadés d'utiliser la clé de l'autre, alors qu'ils utilisent en réalité tous les deux la clé de Jimmy.
Man in the middle
Ce type d'attaque est appelĂ© "Man in the middle". Elle peut ĂȘtre tentĂ©e contre RSA.
2. Certificationâïž
Pour se prĂ©munir de ces attaques, une autoritĂ© de certification assure de l'identitĂ© d'un site afin d'Ă©viter des attaques du type homme du milieu, sans laquelle on pourrait se connecter Ă un site tiers en pensant qu'il s'agit par exemple de sa banque en ligne. Les requĂȘtes https
peuvent ĂȘtre observĂ©es Ă partir de la console de firefox. Pour cela :
Exemple
Ecrire l'adresse : https://www.elysee.fr/ dans votre barre de navigation. Cliquer sur le cadenas, puis chercher le certificat.
V. Le protocole HTTPSâïž
HTTPS
HTTPS : exemple d'utilisation conjointe d'un chiffrement asymétrique et d'un chiffrement symétrique.
3.1 Principe gĂ©nĂ©ralâïž
Aujourd'hui, plus de 90 % du trafic sur internet est chiffré : les données ne transitent plus en clair (protocole http
) mais de maniÚre chiffrée (protocole https
), ce qui empĂȘche la lecture de paquets Ă©ventuellements interceptĂ©s.
HTTPS
Le protocole https
est la réunion de deux protocoles :
- le protocole
TLS
(Transport Layer Security, qui a succédé au SSL) : ce protocole, basé sur du chiffrement asymétrique, va conduire à la génération d'une clé identique chez le client et chez le serveur. - le (bon vieux) protocole
http
, mais qui convoiera maintenant des donnĂ©es chiffrĂ©es avec la clĂ© gĂ©nĂ©rĂ©e Ă l'Ă©tape prĂ©cĂ©dente. Les donnĂ©es peuvent toujours ĂȘtre interceptĂ©es, mais sont illisibles. Le chiffrement symĂ©trique utilisĂ© est actuellement le chiffrement AES.
Pourquoi ne pas utiliser que le chiffrement asymétrique, RSA par exemple ?
Le chiffrement RSA est trĂšs gourmand en ressources ! Le chiffrement/dĂ©chiffrement doit ĂȘtre rapide pour ne pas ralentir les communications ou l'exploitation des donnĂ©es.
- Le chiffrement asymétrique est donc réservé à l'échange de clés (au début de la communication).
- Le chiffrement symétrique, bien plus rapide, prend ensuite le relais pour l'ensemble de la communication.
3.2 (HP) Fonctionnement du TLS : explication du handshakeâïž
Observons en détail le fonctionnement du protocole TLS
, dont le rÎle est de générer de maniÚre sécurisée une clé dont disposeront à la fois le client et le serveur, leur permettant ainsi d'appliquer un chiffrement symétrique à leurs échanges.
-
étape 1 : le «client Hello». Le client envoie sa version de TLS utilisée.
-
étape 2 : le «server Hello». Le serveur répond en renvoyant son certificat prouvant son identité, ainsi que sa clé publique.
-
Ă©tape 3 : le client interroge l'autoritĂ© de certification pour valider le fait que le certificat est bien valide et que le serveur est bien celui qu'il prĂ©tend ĂȘtre. Cette vĂ©rification est faite grĂące Ă un mĂ©canisme de chiffrement asymĂ©trique.
La prĂ©sentation du certificat Ă l'autoritĂ© de certification peut se reprĂ©senter comme le scan d'une piĂšce d'identitĂ© dans un aĂ©roport. L'autoritĂ© de certification est alors l'Ătat (dont la base de donnĂ©es est interrogĂ©e par un logiciel) qui valide que la piĂšce d'identitĂ© est bien un document officiel.
- étape 4 : une fois vérifiée l'authenticité du serveur et que son certificat est valide, le client calcule ce qui sera la future clé de chiffrement symétrique (appelée «clé AES» dans l'infographie). Cette clé est chiffrée avec la clé publique du server (transmise à l'étape 1), ce qui assure la sécurité de son transfert. Le serveur déchiffre cette clé grùce à sa clé privée, et dispose ainsi lui aussi de la clé.
Le transmission par protocole http
de données chiffrées au préalable avec la clé AES peut commencer.
Remarque : en réalité, ce n'est pas la clé AES qui est transmise à l'étape 4, mais un nombre choisi par le client, qui permettra, avec deux autres nombres choisis par le client (étape 1) et le serveur (étape 2) de reconstituer la clé AES, qui sera donc identique cÎté client et cÎté serveur.
VI. QCMâïž
Question 1
- Dans un chiffrement symétrique, une seule clé est partagée
- Dans un chiffrement asymétrique, deux clés sont partagées
- Une clé de chiffrement doit toujours rester secrÚte
- Le chiffrement RSA est symétrique
- Dans un chiffrement symétrique, une seule clé est partagée
- Seule la clé publique est partagée
- Dans un chiffrement asymétrique, la clé de chiffrement est publique
-
Le chiffrement RSA est symétrique
Question 2
Bob veut envoyer un message chiffré à Alice
- Alice a besoin de la clé privée de Bob
- Alice a besoin de la clé publique de Bob
- Bob a besoin de la clé privée d'Alice
- Bob a besoin de la clé publique d'Alice
-
Alice a besoin de la clé privée de Bob -
Alice a besoin de la clé publique de Bob -
Bob a besoin de la clé privée d'Alice - Bob a besoin de la clé publique d'Alice
Question 3
La protocole HTTPS
- permet au client d'authentifier l'identité d'un site web auquel il souhaite accéder
- garantit la confidentialité des données
- garantit l'intégrité des données
- utilise un chiffrement asymétrique pour la communication.
- Il fournit un certificat d'authentification
- garantit la confidentialité des données
- Les donnĂ©es ne peuvent pas ĂȘtre modifiĂ©es entre le client et le serveur
- Le chiffrement asymétrique n'est utilisé que pour échanger une clé privée, qui sera ensuite utilisée pour chiffrer le message par chiffrement symétrique, bien plus rapide.
Pour approfondir :âïž
CrĂ©ditsâïž
Sources : Gilles LASSUS et Fabrice NATIVEL.
# Tests
(insensible Ă la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)