Le cryptage symétrique et asymétrique - le certificat & la signature éléctronique - Exercices corrigés

Le cryptage symétrique et asymétrique

Symétrique

Avec cette méthode, la clé de chiffrement est la même que la clé de déchiffrement.
De ce fait, pour que le texte chiffré ne soit lisible que par le destinataire, la valeur de cette clé (unique) doit être un secret partagé uniquement entre l’émetteur et le destinataire. Ceci explique le qualificatif de « clé secrète ».
Il existe plusieurs algorithmes qui fonctionnent sur ce principe :

DES - 3DES : clés de 56 bits   et blocs de 64 bits
IDEA: 128 bits (blocs)

AES: 128, 192, 256 bits




Les algorithmes utilisent des fonctions mathématiques « simples ». L’avantage est que Les opérations de chiffrement et de déchiffrement sont rapides à exécuter sur des ordinateurs classiques.

Les algorithmes symétriques ne permettent pas de résoudre deux types de problèmes :

1. Par quel canal faire s’échanger les clés symétriques ? Ce point est critique pour des applications de l’Internet.

2. Explosion du nombre de clés à gérer avec le nombre de correspondants.
Ce dernier point est mis en évidence en calculant le nombre de clés secrètes pour qu’au sein d’un groupe de n personnes toutes les communications chiffrées soient possibles.

Ce petit calcul montre qu’il faut disposer de n(n-1) / 2 clés ! A l’échelle de l’internet, ce problème n’a pas de solution.

Quelques infos !

Le chiffrement de césar

Décalage des lettres dans l’alphabet (d-3)

A > D, B > E, C > F

Problèmes : Confusion faible - Pas de diffusion
Seulement 26  clés possibles
Cassage de l'algorithme : Tester toutes les clés ! (Attaque exhaustive)

La substitution monoalphabétique

Remplacer chaque lettre de l'alphabet par une autre

Alphabet clair : abcdefghijklmnopqrstuvwxyz
Alphabet chiffré : MOTSECRUVWXYZABDFGHIJKLNPQ     

Le chiffrement de Vernam

La clé de chiffrement est une suite de nombres aléatoires et indépendants, compris entre 0 et 25. Le message chiffré est obtenu en décalant chaque lettre du message clair dans l'alphabet. Le nombre de positions par lequel chaque lettre est décalée est donné par la clé. La méthode de déchiffrement consiste alors à réappliquer les décalages donnés par la clé, mais dans l'autre sens. Cet exemple est illustré par la figure suivante :








Malgré son attrait théorique, le chiffrement de Vernam souffre de deux inconvénients majeurs :
·         Pour qu'un message puisse être transmis, il est nécessaire que son émetteur et son destinataire disposent d'une clé de même longueur que le message.
·         Les clés utilisées pour le chiffrement Vernam ne peuvent être utilisées qu'une seule fois.
Dans le cas contraire, un attaquant qui aurait accès à deux messages chiffrés avec la même clé serait en mesure d'en dériver des informations sur les messages clairs correspondants : pour chaque lettre du message, l'écart dans l'alphabet entre les lettres du clair et les lettres du chiffré est le même. A partir de cette information, un attaquant pourrait retrouver tout ou partie des deux messages clairs. Cette attaque a été mise en oeuvre par les services secrets américains et britanniques, qui sont ainsi parvenus à déchiffrer des messages soviétiques, lors de la guerre froide.
Chiffrement de vigenère
Table de Vigenère.

Lettre en clair

A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z

C
l
é

U
t
i
l
i
s
é
e
A
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
L
e
t
t
r
e

c
h
i
f
f
r
é
e
B
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
C
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
D
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
E
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
F
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
G
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
H
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
I
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
J
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
K
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
L
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
M
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
N
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
O
O
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
P
P
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
Q
Q
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
R
R
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
S
S
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
T
T
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
U
U
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
V
V
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
W
W
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
X
X
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
Y
Y
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Z
Z
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Pour chaque lettre en clair, on sélectionne la colonne correspondante et pour une lettre de la clé on sélectionne la ligne adéquate, puis au croisement de la ligne et de la colonne on trouve la lettre chiffrée. La lettre de la clé est à prendre dans l'ordre dans laquelle elle se présente et on répète la clé en boucle autant que nécessaire.
clé : MUSIQUE
texte : j'adore ecouter la radio toute la journee
Texte en clair :   j'adore ecouter la radio toute la journee
Clé répétée    :   M USIQU EMUSIQU EM USIQU EMUSI QU EMUSIQU
                   ^ ^^^
                   | ||Colonne O, ligne I : on obtient la lettre W.
                   | |Colonne D, ligne S : on obtient la lettre V.
                   | Colonne A, ligne U : on obtient la lettre U.
                   Colonne J, ligne M : on obtient la lettre V.
 
Le texte chiffré est alors :
V'UVWHY IOIMBUL PM LSLYI XAOLM BU NAOJVUY.
Si on veut déchiffrer ce texte, on regarde pour chaque lettre de la clé répétée la ligne correspondante et on y cherche la lettre chiffrée. La première lettre de la colonne que l'on trouve ainsi est la lettre déchiffrée.
Texte chiffré  :   V'UVWHY IOIMBUL PM LSLYI XAOLM BU NAOJVUY
Clé répétée    :   M USIQU EMUSIQU EM USIQU EMUSI QU EMUSIQU
                   ^ ^^^
                   | ||Ligne I, on cherche W: on trouve la colonne O.
                   | |Ligne S, on cherche V: on trouve la colonne D.
                   | Ligne U, on cherche U: on trouve la colonne A.
                   Ligne M, on cherche V: on trouve la colonne J.
 

I-Le Chiffrement Symétrique :
Il existe deux types de chiffrement symétrique :

Par flot (RC4)
Les algorithmes de chiffrement par flot ont été conçus précisément pour remédier aux inconvénients du chiffrement de Vernam, grâce à l'emploi de clés courtes et réutilisables. Le principe de fonctionnement du chiffrement par flot est le suivant :
·         L'émetteur et le récepteur du message partagent la connaissance d'une clé secrète K;
·         L'émetteur choisit une valeur aléatoire IV, et utilise un algorithme public (appelé générateur de pseudo-aléa cryptographique) lui permettant de dériver une suite S de nombres arbitrairement longue à partir de K et IV. Cette suite ressemble à une suite aléatoire. En particulier, sans la connaissance de la clé, on ne doit pas pouvoir retrouver cette suite, même en en connaissant une partie;
·         L'émetteur utilise cette suite de nombres comme clé de chiffrement, et applique un chiffrement de Vernam sur son message clair;
·         Il envoie IV et le message chiffré;
·         Le récepteur connaît K et a reçu IV, il peut donc en déduire S;
·         Connaissant S, il peut effectuer l'opération correspondant au déchiffrement de Vernam pour retrouver le message clair.
Il existe de technique de le faire :

One Time Password (OTP)

Généré une suite aléatoire (S) a partir de la clé (K) et (IV) et qui as la même longueur que le msg à chiffré

Les mots de passe à usage unique (one time Password ou OTP en anglais) sont un système d'authentification forte basés sur le principe de challenge/réponse. Le concept est simple : Utiliser un mot de passe pour une et une seule session. De plus, le mot de passe n'est plus choisi par l'utilisateur mais généré automatiquement par une méthode de pré calculé (c'est à dire que l'on pré calcule un certain nombre de mot de passe qui seront utilisés ultérieurement). Cela supprime les contraintes de :

    Longévité du mot de passe. Le mot de passe est utilisé une seule fois
    Simplicité du mot de passe. Le mot de passe est calculé par l'ordinateur et non pas choisi par un utilisateur

    Attaque par dictionnaire ou par force brute : Pourquoi essayer de cracker un mot de passe obsolète ?
    Sniffer et chiffrement du mot de passe : Le mot de passe à usage unique peut être envoyé en clair sur le réseau : Lorsqu'un sniffer en détecte un, il est déjà trop tard, car il est utilisé, et non réexpoitable.

Utilisé par le  KGB

Le fonctionnement


Le serveur va recevoir la connexion et qui va déclencher le processus d'authentification, doit utiliser un outil qui va permettre de générer un certain nombre de mot de passe à usage unique.
Par exemple il remplacera les programmes login ou su sous Unix, ftp, etc...

Ces OTP générés sont calculés à partir de trois données :

Une donnée publique (mot ou phrase courte par exemple), choisie par l'administrateur. On appelle cela aussi la semence, ou seed en anglais.

Un numéro de séquence : C'est un nombre relatif au numéro de connexion. C'est un compteur, tout simplement. C'est ce paramètre qui rend le mot de passe unique : L'OTP de la connexion n°587 n'est pas le même que la connexion n°586 ou 588.

Un mot de passe utilisateur, connu de lui seul, qui servira à l'authentifier.

Voici comment cela se passe :

L'utilisateur exécute  par exemple le programme opiepasswd.Le serveur  lui demande son mot de passe, et ensuite il lui demande de calculer le premier challenge.







  • otp-md5 : indique que c'est un OTP calculé en MD5.
  • 498 : c'est le numéro de séquence actuelle.
  • ge8086 : c'est la semence.

L'utilisateur va alors calculer le challenge avec un logiciel :





L'utilisateur fait ensuite un copier/coller, et les OTP sont générés. Le système est opérationnel.






Le challenge/ Réponse Une méthode d'authentification utilisée pour prouver l'identité d'un utilisateur se connectant au réseau. Quand un utilisateur se connecte, le serveur crée un «défi», qui est généralement un nombre aléatoire envoyé à la machine cliente. Le logiciel client utilise son mot de passe ou une clé secrète pour chiffrer le défi via un algorithme de chiffrement ou d'une fonction de hachage à sens unique et renvoie le résultat au réseau (la «réponse»). Le système d'authentification effectue également le même procédé cryptographique sur le défi et compare le résultat de la réponse à partir du client. Si elles correspondent, le système d'authentification a vérifié que l'utilisateur a le mot de passe correct.

Le hachage c'est générer  une empreinte digitale à un document pour assurer son intégrité, plus c'est une fonction à sens unique (impossible de retrouver le message original à partir du condensé)
Pour garantir l'authentification en signe le msg haché (Sceau)

Algorithme qui calcule une valeur de taille fixe appelé empreinte ou haché a partir d’un msg quelconque.

Les failles (mot de passé de client) : sniffing – spoofing – brute force – Troy horse – keylogger  >> répondre au challenge

Le fichier skeykeys (coté serveur)

XOR
Le cryptage XOR (appelé aussi OU eXclusif) est un crypto système à clé privée. Il ne nécessite donc qu'une seule clé qui sert à la fois pour crypter et décrypter le message. D'une manière générale au plus la taille de la clé est longue au plus votre cryptage sera sûr, même si le cryptage XOR est le plus basique de tous les systèmes de cryptage. L'ensemble des crypto systèmes à clé privée dit de haut niveau (DES, RC4…) utilise le XOR.

 Voici sa table de vérité :







Ce système de chiffrement a été utilisé par les espions soviétiques et pour le téléphone rouge

"xorer", c'est-à-dire à appliquer un OU exclusif (XOR) au message avec un autre message prédéfini. Bien entendu, cela nécessite que le destinataire (la personne qui déchiffre) connaisse le message prédéfini et donc cela rajoute de la complexité au schéma général.

Par Bloc
                                                                     
Quatre modes de chiffrement par bloc sont utilisés : Electronic CodeBook (ECB), Cipher Block Chaining (CBC), Cipher FeedBack (CFB) ou Output FeedBack (OFB). Est au contraire beaucoup plus utilisé et permet une meilleure sécurité.

Leur nom leur vient du fait qu'ils s'appliquent à des blocs de données et non à des flux de bits
Ces blocs sont habituellement de 64 bits mais cela dépend entièrement de l'algorithme utilisé et de son implémentation. De même, la taille de la clé varie suivant l'algorithme et suivant le  niveau de sécurité requis.

Il faut savoir que le cassage de cryptés nécessite essentiellement des ressources processeur, RAM et éventuellement ROM ou disque dur si le cassage se fait par pré calcul


K désigne la clé utilisée par l'algorithme, E désigne le chiffrement en lui-même, M désigne le message en clair (c'est-à-dire un bloc) et C le chiffré résultant.
II-Le Chiffrement Asymétrique :
L’idée de Diffie et Hellman : la clé de chiffrement pourrait être rendue publique. En effet, le chiffrement d'un message devrait pouvoir être effectué par tous, en revanche, le déchiffrement ne devrait être possible que pour le destinataire du message, à l'aide de sa clé dite privée.
La cryptographie asymétrique désigne un ensemble de mécanismes reposant sur des fonctions mathématiques asymétriques, qui sont faciles à calculer mais dont l'inverse est difficile à calculer pour quiconque sauf celui qui connaît la clé privée.




Par exemple : Quand Alice envoie un message chiffré avec un algorithme asymétrique à Bob, son outil chiffre le texte du message avec la clé publique de Bob (l’accès à celle-ci se fait soit par un cache local des clés publiques des correspondants d’Alice, soit par un accès à un annuaire). Ce texte ne peut alors être déchiffré qu’avec la clé privée de Bob. Ainsi le message peut transiter via un réseau réputé non sûr sans risque d’être déchiffré par un tiers. A la réception par Bob, le texte est déchiffré avec la clé privée  de celui-ci.





Les algorithmes : RSA – DSA
Avec les algorithmes asymétriques, le temps pour les opérations de chiffrement et de déchiffrement est long. Ainsi sur un ordinateur courant, RSA (algorithme asymétrique) est de 100 à 1000 fois plus lent que le Triple DES (algorithme symétrique).
II-Le Chiffrement Hybride :
Pour contourner les mauvaises performances des traitements des algorithmes à clés asymétriques, une solution consiste à utiliser les deux types de chiffrement (à clés symétriques et à clés asymétriques) pour effectuer la transmission d’un document chiffré.
Un des interlocuteurs (Alice) tire aléatoirement une clé à usage unique. Cette clé sera utilisée pour chiffrer le document avec un algorithme à symétrique. Cette clé est elle même chiffrée avec un algorithme asymétrique en utilisant la clé publique du destinataire : Bob.



Ainsi le nombre de bits chiffrés avec un algorithme asymétrique (la longueur de la clé symétrique) est très petit par rapport à la longueur du message à chiffrer, le facteur de coût de l’algorithme asymétrique est contrôlé. En limitant l’usage du chiffrement asymétrique à l’échange de clés à usage unique, on résout les deux difficultés majeures des algorithmes de chiffrement symétrique : l’absence d’un canal sûr pour l’échange des clés secrètes et la complexité en n2 du nombre des clés.

La Signature électronique

Le chiffrement permet de rendre les services de confidentialité. La signature
électronique va permettre de garantir l’authentification de l’origine d’un document ou d’un message électronique et son intégrité.
Ceci implique un certain nombre de propriétés :
· une signature ne peut être falsifiée,
· une signature donnée n’est pas réutilisable par un autre document
· la modification d’un document signé altère la signature de ce document
· une signature ne peut être reniée
Pour générer une signature électronique il faut dans un premier temps utiliser une fonction de hachage. C’est une fonction mathématique qui, à partir d’un texte, génère un nombre caractéristique de ce texte. Ce nombre est appelé empreinte (fingerprint) parce que toute modification du texte entraîne la modification de son empreinte.
L’empreinte n’est pas une compression puisqu’on en peut retrouver le fichier
d’origine à partir de son empreinte beaucoup plus petite. S’il existe des « faux positif », c’est à dire des fichiers différents ayant la même empreinte, il n’existe pas de méthode pour fabriquer un fichier ayant la même empreinte qu’un autre fichier.

MD5 : fonction de hachage (128 bits)
SHA : 160 bits

Le principe utilisé pour la signature d’un document est de chiffrer une empreinte de celui-ci avec la clé privée de son auteur. Tout un chacun peut déchiffrer cette
l’empreinte avec la clef publique de l’auteur et recalculer l’empreinte sur le document lui même. La bonne correspondance entre ces deux empreintes constitue la preuve que :

1. le document n’a pas été modifié (puisque l’empreinte d’origine est conforme à l’empreinte du document reçu.

2. l’empreinte d’origine a bien été apposée par le titulaire de la clef privée associée à la clef publique utilisée pour vérifier la signature.









Comparaison de fichier haché (décryptage de signé) avec (le fichier décrypter qu’on va haché) puis comparer les deux hachés

L’utilisation d’un couple de clés entraîne la nécessité de publication, en toute confiance, de la clé publique. Cette publication doit offrir l’assurance que :
· La clé est bien celle appartenant à la personne avec qui les échanges sont envisagés ;
· Le possesseur de cette clé est « digne de confiance » ;
· La clé est toujours valide.
Cette notion de confiance est résolue avec les certificats et les autorités de
Certification.

Certificats et Autorité de Certification

Un certificat électronique (aussi appelé certificat numérique ou certificat de clé publique) peut-être vu comme une carte d'identité numérique. Il est utilisé principalement pour identifier une entité physique ou morale, mais aussi pour chiffrer des échanges.

Le certificat est signé (au sens signature électronique) : on effectue une empreinte (ou un condensé) du certificat à l’aide d’algorithme (MD5 par exemple), et on chiffre l’empreinte obtenue.
Le chiffrement s’effectue avec la clé privée de l’autorité de certification qui possède elle même son propre certificat.

Le certificat contient un certain nombre de champs obligatoires et des extensions dont certaines sont facultatives :













Exemple de certificat 




Vérification d’un certificat

La vérification s’effectue avec la clé publique de l’autorité de certification. Toute personne voulant vérifier un certificat délivré par une autorité de certification doit connaître la clé publique de cette autorité de certification.
Sur la figure ci-dessous, on teste la validité du certificat d'Alice délivré par l'Autorité de certification.





Une Autorité de Certification est une organisation qui délivre des certificats
électroniques à une population.
Une AC possède elle-même un certificat (auto-signé ou délivré par une autre AC) et utilise sa clé privée pour créer les certificats qu'elle délivre.
N'importe qui peut se déclarer Autorité de Certification. Une AC peut être
organisationnelle (exemple : ENST), spécifique à un corps de métiers (exemple :
notaires) ou encore institutionnelle.
Selon le crédit accordé à l'AC, les certificats délivrés auront un champ d'applications plus ou moins importants :
· limité à l'intérieur d'un organisme
· échanges inter-organismes

En délivrant un certificat, l'AC se porte garant de l'identité de l'entité qui se présentera avec ce certificat. Par rapport aux entités (personnes ou applications) qui utilisent ses certificats, une AC joue le rôle de tiers de confiance.
Le niveau de garantie offert par une AC dépendra du mécanisme de signature :
moyens mis en oeuvre pour s'assurer de l'identité des demandeurs, sécurité mis en oeuvre pour la protection de la clé privée de l'AC, etc.





Autorité d’Enregistrement – AE: recevoir et  traite les demandes de création, de renouvellement et de révocation de certificats
           
Opérateur de certification : On lui envoie toutes les opérations nécessitant la clé privée de l’AC : création et distribution sécurisée des certificats, révocation, production de cartes à puces…

Annuaire de publication : Les certificats émis par une IGC doivent être rendus publiques dans un annuaire d’accès libre afin que les différents partenaires puissent s’échanger leur clé publique.

Service de Séquestre : a pour fonction principale d'archiver les couples de clés privées/publiques  associés aux certificats délivrées par l'IGC. Dans le cas de la perte d'une clé privée.

Service de validation : Un certificat émis par IGC peut devenir invalide pour différentes raisons : perte ou vol de la clé privée, date de péremption  …

[Type de certificats : X509 – PGP]


Une donnée : la représentation d'une information sous une forme qui facilite son traitement, elle peut etre porteuse de plusieurs  informations.

La sécurité : la confidentialité (chiffrement) - l'intégrité (hachage)- la disponibilité (ssh, tls, gpg..) -authenticité (droits d'auteur)

La cryptographie : conception des algorithmes cryptographiques

La cryptanalyse  : évaluation de la sécurité des algorithmes cryptographique

Les menaces :(attaque passive (espionnage) ou active (sniffing, spoofing, modification etc...)


Cryptologie sans clé : le hachage - générateur d'aléa

public (Internet + le message chiffré) - authentifié (réseau téléphonique)  - confidentiel (réseau postale) [téléphone rouge + le key : authentifie & confidentiel]


Les attaques : retrouver K, retrouver M sans K, distinguer l'algorithme


Symétrique : nombre de clé 0(n²) les deux clés sot secrète  - pas de formelle de sécurité - très rapide (100 mo/s)

Asymétrique : nombre de clé n² (seule la clé privée est secrète) - sécurité - très lents (100 ko/s)

Hybride = contre les attaques passives

Création de canal authentifié : transmettre les clés secrètes

Canal pub : transmettre les msg et leur signature

Un code d'authentification de message (MAC) est un algorithme qui calcule une valeur de taille fixe à partir de msg quelconque et une clé secrète
partagée entre émetteur et récepteur

MAC : (possesseur de la clé secrète = 1 seul personne) , deux personnes peuvent calculer l'authentifiant (répudiation possible)


signature : clè pub (tout le monde), une seul personne peut calculer l'authentifiant (pas de répudiation)

Les attaques contre le chiffrement : attaque à chiffré seul (COA)
                                     attaque a clair connu (KPA)
                                     attaque a clair choisi (CPA-2 / CPA)
                                     attaque à chiffre choisi (CCA-2 - CCA)
                                     attaque à clés liées (RKA)

Les attaques  d'authentification : attaque par imitation  - par substitution - forgie (existentielle - sélective - universelle) - captanalyse complète

Contexte d'attaques

Spécification disponible : cryptanalyse en boite noire - structurelle 
Chiffrant disponible     : cryptanalyse  par canaux secondaire - injection de fautes

Un système sur : confidentialité parfaite contre les attaques à chiffré seul, la seul attaque est la recherche exhaustive, il faut que la clé soit aléatoire et  aussi longue que le msg clair et a usage unique.

Authentification parfaite contre les attaques par substitution.

La sécurité calculatoire : la connaissance de msg chiffré ne permet pas de retrouver ni la clé, ni le msg claire

La sécurité inconditionnelle : cryptographie a clè secrète
La cryptologie à clé pub : fonction a sens unique + fonction a sens unique avec trappe

Recherche exhaustive :

Clé secrète de n bits : 2^n clés possibles
Retrouver la clé : 2^n – 1 essaie en moyenne

DES : 56 bits = 2^55 possibilités

Sécurité : utilisation des clés de grande taille, AES (128 bits – symétrique)
RSA (2048 bits –asymétrique)

Résistance aux attaques structurelles – canaux secondaires – mise en œuvre des logiciels – intégration avec le système




Symétrique : la meme clé (DES (64bits) - 3DES (2*56bits) - IDEA(128bits))
Asymétrique : (chiffrer avec la clé pub de B et déchiffrer avec clé privée de B - RSA (512 -1024bits -DH)

Le hachage c'est générer  une empreinte digitale a un document pour assurer son intégrité
plus c'est une fonction à sens unique (impossible de retrouver le message original à partir du condensé)
pour garantir l'authentification en signe le msg haché (Sceau)

Comparaisaon de fichier haché (décryptage de signé) avec (le fichier décrypter qu’on va haché) puis comparer les deux hachés

$1$ : MD5

hachage : MD5 (128bits) et SHA (SHA1/SHA2 - 160 - 512bits) - CRC -MD2 -4 -7

OPENSSL :une bibliothéque open source utilise pour la cryptologie

****Base64 ( 26 Maj - 26 Min - 10 caractéres sp)

openssl enc -base64 -in fichier (coder)
openssl enc -base64 -d -in fichier  (decoder)

****Symétrique

Openssl enc -des –in fic1 –out fic2.enc (chiffrer)
Openssl enc -d –des –in fic2.enc –out fic1 dechiffrer)

****Asymetrique

générer la clé privée  : openssl genrsa -out cle-pr taille

ne pas visualiser le contenu de la privée : openssl genrsa -des3 -out cle-pr taille 

générer la clé pub apartire de la clé privée : openssl rsa -in cle-pr -pubout -out cle-pub 

afficher les infos : noout

cryptage : openssl rsautl -encrypt -in f1  -inkey cle-pub -pubin -out f1.enc

Décryptage :  openssl rsautl -decrypt -in f1.enc -inkey cle-pr -out f1

hacher un fichier : openssl dgst -md5 -out  f1-haché  f1

signé un fichié hahée : openssl rsautl -sign -in f1-haché -inkey clef-privée -out signature

Vérification de signature : openssl rsautl -verify -in signature -pubin -inkey clef-publique -out haché2



EXERCICE :

(entre 2 machines)

Exercice  (RSA /DES3)


1-      créer un fichier f1
2-      créer la clé privée DES3 (pour ne pas visualiser le contenu)
3-      générer la clé publique
4-      chiffrer le f1 avec la clé publique de votre correspond
5-      échanger le f1 à travers ftp
6-      décrypter le f1 reçus avec la clé privée 

Correction  

Pc A

1-      date > f1 (ou touch ou vi ….)
2-      openssl genrsa –des3 –out cle-privee 1024
3-      openssl rsa –in cle privee –pubout –out cle-pub
4-      avant le chiffrement du f1 (l’échange des clés publiques a travers ftp)

ftp 192.168.2.10 (le B)
put cle-pub

Maintenant en chiffre le f1 avec la clé public de B

openssl rsault –encrypt –in f1 –inkey clef-public –pubin –out f2

5-ftp 192.168.2.10
Put f2

6-décryptage avec ma clé privée :

Openssl rsault –decrypt –in  –f2.enc –inkey cle-privee –out f3

f2.enc : fichier de B


Remarque:

RSA : génération de la  clé
DES : le chiffrement de la clé

Pour la clé : cryptage asymétrique et pour le msg c’est symétrique


Exercice 2

1-msg M1

2-chiffrer le M1 en symétrique avec la clé secrète
3-echo motdepasse < openssl  (RSA)

Crypter le mot de passe avec la clé public de B

4-envoyer le M et le mot de passe

5-déchiffrer le mot de passe pour déchiffrer le M1 (après réception)

    Correction

1-      echo bonjour > M1
2-      openssl enc –des –in M1 –out M1.enc
3-      echo ioriyagami > PW

 on va crypter le mot de passe ca veut dire le fichier PW

openssl rsault  –encrypt –in PW  -inkey  clef-public –pubin –out PW.enc

4-ftp 192.168.2.10
Put M1.enc
Put PW.enc

5-les autres (le B) :
Ls –l PW.enc pour visualiser …….

Puis le décrypter avec leur clé privée

Openssl rsault –decrypt –in  –PW.enc –inkey cle-privee –out PW

Puis en décrypte le M :  

Openssl enc -d –des –in M1.enc –out M1


SCRIPTS !!! AES

Chiffrement de $1

#!  /bin/bash
openssl enc -a -aes-256-cbc -in $1 -out $1.aes
ln -s chiffre.bash /usr/local/bin/chiffre

Déchiffrement de $2

#!/bin/bash
openssl enc -d -a -aes-256-cbc -in $1.aes -out $1
ln -s dechiffre.bash /usr/local/bin/dechiffre

Supprimer la pass phrase d’une clef privée :

 /usr/local/openssl  rsa  -in key11.pem  -out key1.pem

Protéger une clef avec une pass phrase  via  3DES  :

 /usr/local/openssl  rsa  -in key1.pem  -des3  -out  key11.pem


Le HACHAGE



Exercice simple  (Hachage + signature)

1-créer f 1

Openssl dgst –md5 –out f1-haché f1 (hachage)
Openssl rsault –sign –in  f1-haché –inkey cle-privee –out  signature (la signature)
openssl rsautl -verify -in signature -pubin -inkey clef-public -out haché2 (vérification de la signature)

Le haché on le signe avec ma clé privée
On déchiffre le fichier signé « dé-signé »  avec la clé public de B

Pour la clé  on le chiffre avec clé public de B et on la déchiffre avec notre clé privee A

Exemple globale

·        Générer une clé privée : 

Openssl genrsa –des3 –out cle-privee 1024


·        Générer une clé publique à partir de clé privée   :

Openssl rsa –in cle-privee –pubout –out cle-pub

·        Creation d’un fichier   : date > f1

·        Appliqué le MD5 (le Hachage) :

Openssl dgst –md5 –out f1-haché f1

·        Appliqué la signature  (la signature) :

Openssl rsaut –sign –in f1-haché –inkey cle-privee –out signature

Puis

·        Chiffré   f1 avec la clé publique de B  

Openssl rsault –encrypt –in f1 –inkey cle-publique –pubin –out f1.enc

·        Déchiffrer le fichier crypté de B avec notre clé privée   

Openssl rsault –decrypt –in f1.enc –inkey cle-privee  -out f1.decrypt

·        Déchiffrer le fichier signé de B avec la clé publique de B

Openssl rsault –verify –in sign1 –pubin –inkey cle-publique –out  hachéf1


Maintenant on va hacher le fichier qu’on a décrypté (pour comparer les deux hachées) :


Openssl dgst –md5 –out haché2f1 f1.decrypt

Comparaison:

Cat hachéf1
Cat haché2f1

Ou bien la commande diff –n ou –q  hachéf1  haché2f1



Bonne Chance

mohameddouhaji7@gmail.com