Download - LA PROTECTION DES ECHANGES D'INFORMATION
Yonel GRUSSON 1
LA PROTECTION DES ECHANGES D'INFORMATION
Yonel GRUSSON 2
Le traitement de l'information par une machine passe par de nombreuses et successives transmissions :
Mémoire Centrale Unité Centrale (Bus)
Périphérique M.C et/ou U.C (Parallèle)
Périphérique M.C et/ou U.C (Série)
Ordinateur Ordinateur (Transmission)
Toute les transmissions sous-entendent une possibilité d'erreur.
INTRODUCTION
Yonel GRUSSON 3
Le problème de la détection voire de la correction des erreurs de transmission se double du problème de la protection (confidentialité) des données transmises -cryptage-.
Attention : Les deux problèmes ne se situent pas au même niveau. La détection des erreurs de transmission se situe dans les couches basses alors que le cryptage se situe au niveau de la couche 6.
INTRODUCTION
Yonel GRUSSON 4
PLAN 1ère Partie
Détection et correction des erreurs de transmission.
2ème PartieProtection des données (confidentialité).
3ème PartieLe protocole SSH.Le protocole SSL.
INTRODUCTION
Yonel GRUSSON 5
1ère Partie : DETECTION ET CORRECTION DES ERREURS DE TRANSMISSION.
• Principe général
• Le contrôle par checksum
• Le contrôle par parité simple
• Le contrôle par parité croisée
• Le contrôle polynomial
Yonel GRUSSON 6
Principe Général
Attention : L'erreur peut-être dans I comme dans C
A l'émission
Information à transmettre (I) Clé 1 (C1)Algorithme (A)
Transmission de : I C1 A la réception
Réception de : I C1
Information reçue (I) Clé 2 (C2)Algorithme (A)
C1 = ? = C2Non : Erreur de transmission
Oui : Présomption d'absence d'erreur
Yonel GRUSSON 7
• Méthode ancienne utilisée :
– Entre UC et Périphériques,
– Dans les trames de certains protocoles.
• Méthode assez simple qui consiste à faire une somme binaire d'un ensemble d'octets.
• Exemple de la méthode du checksum dans une trame IP :
……
Contrôle par checksum
Yonel GRUSSON 8
• A la transmission de A7 30 et C5A7 1010011130 00110000C5 11000101Somme 1 10011100 Repli de la retenue 10011100 1Total 10011101Complément à 1 01100010 = le CheckSum
• Transmission de :10100111 00110000 11000101 01100010
Contrôle par checksum
Yonel GRUSSON 9
• A la réception :Checksum reçu 01100010
OUChecksum recalculé(avant complément à 1) 10011101
Vérification 11111111
(Avec l'opérateur ET le résultat serait 00000000)
Contrôle par checksum
Yonel GRUSSON 10
Contrôle de parité (ou d'imparité)Il s'agit du contrôle le plus ancien et le plus
simple.
Il consiste à ajouter à la fin de chaque bloc de (n-1) bits un bit supplémentaire de telle sorte que le nombre total de bits égaux à 1 dans le bloc de n bits soit pair (ou impair).
Souvent n = 8 (octet).
Exemples : 01010110 10110001
Yonel GRUSSON 11
Avantages : Simplicité ; Peut se faire électroniquement (cf. UART).
Inconvénients : Perte d'un bit de donnée ; Deux erreurs peuvent s'annuler ; Cette méthode ne permet pas de corriger
automatiquement l'erreur (retransmission).
Contrôle de parité (ou d'imparité)
Yonel GRUSSON 12
Le contrôle par parité croisée
L'abandon de la transmission en mode caractère au profit de la notion de "bloc de bits" (cf. La liaison de données) a amené de nouvelles méthodes.
Le contrôle par parité croisée est une amélioration du contrôle de parité simple.
Yonel GRUSSON 13
Exemple :
Soit transmettre le bloc de bits suivants : 0110111001011101101110011100111001111100101010010
Ce bloc est découpé de façon à faire apparaître une parité horizontale, verticale et un bit de parité croisée.
Le contrôle par parité croisée
Yonel GRUSSON 14
0 1 1 0 1 1 1 10 0 1 0 1 1 1 00 1 1 0 1 1 1 10 0 1 1 1 0 0 11 1 1 0 0 1 1 11 1 1 0 0 1 0 01 0 1 0 0 1 0 11 0 1 1 0 0 0 1
Parité Horizontale(LRC : Longitudinal Redundancy
Checkink)
Parité croisée
Parité Verticale(VRC : Vertical RedundancyCheckink)
0 1 1 0 1 1 1 10 0 1 0 1 1 1 00 1 1 0 1 1 1 10 0 1 1 1 0 0 11 1 1 0 0 1 1 11 1 1 0 0 1 0 01 0 1 0 0 1 0 11 0 1 1 0 0 0 1
Le contrôle par parité croisée
Yonel GRUSSON 15
Transmission de :0110111100101110011011110011100111100111
111001001010010110110001
Supposons une erreur lors de la transmission :
0110111100101110011001110011100111100111111001001010010110110001
Le contrôle par parité croisée
Yonel GRUSSON 16
0 1 1 0 1 1 1 10 0 1 0 1 1 1 00 1 1 0 0 1 1 10 0 1 1 1 0 0 11 1 1 0 0 1 1 11 1 1 0 0 1 0 01 0 1 0 0 1 0 11 0 1 1 0 0 0 1
LRC recalculé
VRC recalculé
Parité croisée recalculée
1001101
1 0 1 1 1 0 0 0
Le contrôle par parité croisée
Yonel GRUSSON 17
Le contrôle par parité croisée
0 1 1 0 1 1 1 10 0 1 0 1 1 1 00 1 1 0 0 1 1 10 0 1 1 1 0 0 11 1 1 0 0 1 1 11 1 1 0 0 1 0 01 0 1 0 0 1 0 11 0 1 1 0 0 0 1
1001101
1 0 1 1 1 0 0 0
1 - Détection de l'erreuravec la différence sur les parités croisées.
2 - Après vérification l'erreur ne provient pas de la transmission des LRC et VRC
3 - Après comparaison des LRC et VRC calculées et reçues, recherche, détection et correction de l'erreur
Yonel GRUSSON 18
L'évolution des transmissions et la recherche d'une sécurité accrue ont amenées le contrôle polynomial.
Principe :
Bloc d'informations de n bits Contrôle (k bits)
Les k bits sont générés à partir des n bits d'information à partir d'un polynôme connu de l'émetteur et du récepteur.
Le contrôle polynomial
Yonel GRUSSON 19
Les données
• Toute suite binaire de n bits peut être associée à un polynôme de degré (n-1) :
A(x)=b xn-1 + b xn-2 + … + b x0 avec b dans {0,1}
• D'autre part on utilise un polynôme générateur G(x) de degré k
G(x)=b xk + b xk-1 + … + b x0
Polynôme connu par l'émetteur et le récepteur.
Exemple
Le contrôle polynomial
Yonel GRUSSON 20
A l'émission• A(x) est multiplié par xk
Cette opération consiste à ajouter k zéros derrière A(x)
• Le résultat est divisé par G(x)A(x) . xk / G(x)
A(x) . xk = Q(x) . G(x) + R(x)avec Q(x) le quotient et R(x) le reste de la division
• Le polynôme de contrôle sera R(x) et le message envoyé M(x) = A(x) . xk + R(x)
Exemple
Exemple
Exemple
Le contrôle polynomial
Yonel GRUSSON 21
A la réception
M(x) est divisé par G(x) ; le reste est nul si la transmission est sans erreur
__________
Les polynômes générateurs les plus utilisés sont
x7 + x3 + 1
x12 + x11 + x3 + x2 + x + 1
x16 + x12 + x5 + 1 (Polynôme normalisé)
Le contrôle polynomial
Exemple
Yonel GRUSSON 22
2ème Partie : PROTECTION DES DONNEES
• La CONFIDENTIALITE des données dans les transmissions mais également sur un support comme le disque pour protéger des données, est obtenue avec des techniques CRYPTOGRAPHIQUES.
Yonel GRUSSON 23
• Chiffrement par substitutionAncienne technique de chiffrement (Jules César)
qui regroupe de nombreux algorithmes dont le plus simple est le code «AvautK», «BvautL», etc. Message facile à décrypter en utilisant la fréquence de répétition des lettres.
La substitution polyalphabétique utilise plusieurs alphabets : le 'C' en cinquième position utilisera l'alphabet n°5 qui remplace le 'C' par 'F' par exemple.
Différentes méthodes de chiffrement
Yonel GRUSSON 24
La cryptographie moderne repose sur la notion de CLE qui regroupe :
• Chiffrement symétrique (ou cryptage symétrique)
Méthode à clé unique
• Chiffrement asymétrique (ou cryptage asymétrique)
Méthode à deux clés
Différentes méthodes de chiffrement
Yonel GRUSSON 25
• Soit coder le message «LA TAXE»,
• Avec la CLE «BTS»
• et avec les correspondances suivantes :
Espace = 0 ; A = 1 ; B = 2 ; … ; E = 5 ; … ;L = 12 ; … ; S = 19 ; T = 20 ; … ; X = 24 ;Z = 26
Cryptographie à clé unique
Yonel GRUSSON 26
• Phase de CryptageB T S B T S BL A T A X E
• Soit en équivalent numérique 2 20 19 2 20 19 2+ 12 1 0 20 1 24 5 14 21 19 22 21 43 7 - 26 1 7
Cryptographie à clé unique
Yonel GRUSSON 27
• Le message codé sera :N U S V U Q G
Phase de décodage : 14 21 19 22 21 17 7 - 2 20 19 2 20 19 2 12 1 0 20 1 -2 5
+26 24
Cryptographie à clé unique
Yonel GRUSSON 28
• Dans la pratique informatique les équivalents numériques sont les codes des caractères (ASCII par exemple).
• Faiblesses du système :
– Facilement "crakable". En particulier par la répétition statistique des lettres qui est propre à une langue.
– Il faut transmettre la clé en clair
Cryptographie à clé unique
Yonel GRUSSON 29
Le futur destinataire génère une clé.
Cette clé est dite privée car elle est conservée par le destinataire pour décrypter les futurs messages qu'il va recevoir.
Le futur destinataire génère également à l'aide d'un algorithme et à partir de sa clé privée une seconde clé dite publique qui sera diffusée auprès des futurs émetteurs.
Cryptographie à deux clés
Yonel GRUSSON 30
• Diffusion des clés publiques :
– soit directement du créateur aux utilisateurs.
– soit à l'aide de serveur de clés sur Internet.
• Exemple de clé publique trouvée sur le net...
Cryptographie à deux clés
Yonel GRUSSON 31
Pasty's Clé publique pour PGP Type Bits/KeyID Date User ID
pub 512/D8ED58B5 1996/04/14 Patrick Asty -----BEGIN PGP PUBLIC KEY BLOCK-----
Version: 2.6.3i
mQBNAzFw+hkAAAECANecrbGGPTZmqU+q+7t8E/6btByZbQHPQ9qlKo6HDT6zImDJ
VSwe0/oaft3lwNSUPT+Ab7hC9QJdZkjamtjtWLUABRG0IFBhdHJpY2sgQXN0eSA8
cGFzdHlAbWljcm9uZXQuZnI+iQCVAgUQMXHzUYFdzKExeYBpAQEGRQP+Osjdo33s
cGRp08ESxJIpZsKRMr7J0Gy3riE93zvN6PjYXbY0IqCljhtSxCxcR7oaBbnpAL3m
/xmp3DXiwK6878wphWgk8OmPJ5fbW7ZUo4PaNDr3G3rbfTq8h4ripJ/eC5AdCO3J
5GsE7uh/32UIhgt5xooL+E21rhf/UW3kmZyJAFUDBRAxcPoZZkjamtjtWLUBASpl
AgCMynq/IwfChy2UN5b8hWx7AKX34eJtOBXo8yANNtNWO4H0YP6t7777l4kvpArb
CfgydCL1Vj3JVMMZ19YWK4Hn
=7RVR
-----END PGP PUBLIC KEY BLOCK-----
Cryptographie à deux clés
Yonel GRUSSON 32
• Les émetteurs cryptent leurs messages avec la clé publique du destinataire (c'est la seule qu'il connaisse). Le destinataire décrypte le message avec sa clé privée.
• De même, ce qui est crypté avec la clé privée est décrypté par la clé publique. Ceci est à la base de la signature électronique qui permet d'authentifier l'origine d'un message.
• Évidemment les deux partenaires utilisent le même logiciel de cryptage (Pretty Good Privacy -PGP- par exemple).
Cryptographie à deux clés
Yonel GRUSSON 33
Résumé pour le cryptage d'un message• La personne A génère :
– Sa Clépriva
– Sa CléPub = g(Clépriva)• La personne B crypte
– MessCrypté = f(MessClair, Clépuba)• La personne A décrypte :
– MessClair = f(MessCrypté, Clépriva)f représente l'algorithme de cryptage.
Cryptographie à deux clés
Yonel GRUSSON 34
Résumé pour la signature électronique• La personne A
– A veut authentifier son message. Il crypte une partie du message (ou la totalité) avec sa clé privée (CléPriva)
– SignatElecCryptée = f(SignatClair, CléPriva)• La personne B
– B décrypte à l'aide de (CléPuba)– SignatClair = f(SignatElecCryptée, CléPuba)
Cryptographie à deux clés
Yonel GRUSSON 35
3ème PartieLes protocoles utilisant le cryptage
Voici deux protocoles mettant en œuvre le cryptage :1. Secure SHell (SSH)
2. Secure Socket Layer (SSL)
Yonel GRUSSON 36
Le protocole Secure SHell (SSH)A l'origine le protocole SSH était un protocole
permettant à un client d'ouvrir une session interactive (comme avec telnet par exemple) sur une machine distante. La sécurité est assurée car :Le client et le serveur s'authentifie
mutuellement.Les données circulent chiffrées.
La version 1 de SSH date 1995, une faille de sécurité amène la version 2 en 1997. SSH1 et SSH2 sont incompatibles.
Yonel GRUSSON 37
Le protocole Secure SHell (SSH)
SSH2 définit 3 couches faisant l'objet d'une normalisation à l'IETF :
SSH transport layer Protocol qui prend en charge le chiffrement, la compression et l'authentification des machines
SSH Authentification Protocol qui prend en charge l'authentification de l'utilisateur
SSH Connection protocol qui gère la session avec la gestion d'un tunnel
Yonel GRUSSON 38
Le protocole Secure SHell (SSH)
Connexion (exemple Linux) :
$ ssh login@serveur_ssh
Avec
login le nom de l'utilisateur
serveur_ssh le nom de la machine distante (ou adresse IP)
Selon la configuration de ssh (fichier /etc/ssh/ssh_config), l'authentification peut se faire soit par mot de passe soit par clé publique/privée
Yonel GRUSSON 39
Le protocole Secure SHell (SSH)Par mot de passe
$ ssh login@serv_ssh
The authenticity of host 'serv_ssh (200.100.30.10)' can't be established.RSA key fingerprint is a9:bb:55:35:86:4d:ca:81:7f:9e:2b:2c:79:10:96:3c.Are you sure you want to continue connecting (yes/no)? yesWarning: Permanently added 'serv_ssh (200.100.30.10)' (RSA) to the list of known hosts.Password:***********
L'empreinte (key fingerprint) envoyée par le serveur permet au client d'authentifier ce dernier.
Yonel GRUSSON 40
Le protocole Secure SHell (SSH)
Par clé publique/privée
Il s'agit de l'authentification principale de SSH2.
Le client et le serveur génèrent (ssh–keygen) un couple de clés privée/publique ; puis s'échangent leur clé publique (par FTP ou mail ou commande scp avec SSL).
La clé privée est consolidée par une phrase clé (passphrase) qui sera fourni à chaque connexion (sauf avec l'utilisation de ssh-agent).
Yonel GRUSSON 41
Le protocole Secure SHell (SSH)Par clé publique/privée (authentification simple)
$ ssh login@serv_ssh
1. Si le client ssh ne possède pas la clé publique de serv_ssh, une première connexion permet à ce dernier de lui envoyer cette clé.
2. Le client génère une clé secrète aléatoire et l'envoie à serv_ssh, en cryptant l'échange avec la clé publique du serveur. Serv_ssh décrypte la clé secrète en utilisant sa clé privée. Seul le serveur peut effectuer ce décryptage.
Yonel GRUSSON 42
Le protocole Secure SHell (SSH)
3. Pour s'authentifier auprès du client, le serveur lui crypte un message standard avec sa clé secrète. Si le client retrouve le message standard en utilisant la clé publique, il a la preuve que le serveur est bien le vrai serveur.
4. Une fois la clé secrète échangée, le client et le serveur peuvent alors établir un canal sécurisé grâce à la clé secrète commune appelée clé de session (cryptographie symétrique).
Yonel GRUSSON 43
Le protocole Secure SHell (SSH)
5. Une fois que le canal sécurisé est en place, le client va pouvoir envoyer au serveur le login et le mot de passe de l'utilisateur pour vérification. La canal sécurisé reste en place jusqu'à ce que l'utilisateur se déconnecte.
Par clé publique/privée (double authentification)
Dans le cas ou le client possède également une clé publique/privée, il peut également s'authentifier selon la même procédure auprès du serveur.
Yonel GRUSSON 44
Le protocole Secure SHell (SSH)
Grâce une configuration identique sur le client et le serveur, une fois la connexion SSH établie il est possible de rediriger certaine application (certains ports) comme telnet ou ftp vers le tunnel SSH.
Yonel GRUSSON 45
SSL (Sécure Socket Layer)
Voir cours : Mise en œuvre d'un serveur SSL
Yonel GRUSSON 46
SSH - SSLSSH et SSL paraissent très proches (OpenSSH
s'appuie d'ailleurs sur les bibliothèques d'OpenSSL).
SSH provient surtout du monde Unix où il permet de sécuriser les sessions interactives entre des équipements "partenaires". Il existe des implantations pour Windows.
SSL utilise la notion de certificat et met en relation des équipements "indépendants" (Internaute et serveur commercial).
Yonel GRUSSON 47
Les RESEAUX
Yonel GRUSSON 48
Exemple
La suite binaire suivante 100101 peut être
associée au polynôme suivant :
A(x)=1 x5 + 0 x4 + 0 x3 + 1 x2 + 0 x1 + 1 x0
Exercices :
Donner le polynôme de : 1011001110
Donner la suite binaire correspondant à :
B(x)=1 x9 + 0 x7 + 0 x6 + 0 x4 + 0 x3 + 1 x0
Yonel GRUSSON 49
Exemple• Soit :
• A(x)=1 x5 + 0 x4 + 0 x3 + 1 x2 + 0 x1 + 1 x0 ou la suite binaire : 100101
• G(x) = x3 + x + 1 ou la suite binaire 1011
• A(x) * x3 soit 100101 * 1000 = 100101000
Yonel GRUSSON 50
Exemple
• A(x) * x3 / G(x)1 0 0 1 0 1 0 0 0 1 0 1 11 0 1 1 1 0 1 0 1 0 0 0 1 0 0 1 1 0 1 1 0 0 1 0 0 0 1 0 1 1 0 0 1 1 0
XOR
Yonel GRUSSON 51
Exemple
Message transmis
M(x) = A(x) * x3 + R(x) soit :
Message = 100101110
Exercice :
Transmettre le message 1110100 avec un contrôle utilisant G(x)=x3 + 1
Yonel GRUSSON 52
Exemple
• A la réception :
1 0 0 1 0 1 1 1 0 1 0 1 1
1 0 1 1 1 0 1 0 1 0
0 0 1 0 0 1
1 0 1 1
0 0 1 0 1 1
1 0 1 1
0 0 0 0 0
XOR
Yonel GRUSSON 53
Exemple
Exercice :
La réception de :
1 1 1 0 1 1 0 0 1 1
est-elle correcte ?
Le polynôme générateur étant G(x) = x3 + 1