640 likes | 771 Views
LA PROTECTION DES ECHANGES D'INFORMATION. INTRODUCTION. 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 )
E N D
LA PROTECTION DES ECHANGES D'INFORMATION Yonel GRUSSON
INTRODUCTION 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. Yonel GRUSSON
INTRODUCTION 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. Yonel GRUSSON
INTRODUCTION PLAN 1ère Partie Détection et correction des erreurs de transmission. 2ème Partie Protection des données (confidentialité). 3ème Partie Le protocole SSH.Le protocole SSL. Yonel GRUSSON
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
I C1 I C1 Principe Général A l'émission Algorithme (A) Information à transmettre (I) Clé 1 (C1) Attention : L'erreur peut-être dans I comme dans C Transmission de : A la réception Réception de : Algorithme (A) Information reçue (I) Clé 2 (C2) Non : Erreur de transmission C1 = ? = C2 Oui : Présomption d'absence d'erreur Yonel GRUSSON
Contrôle par checksum • 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 : …… Yonel GRUSSON
Contrôle par checksum • A la transmission de A7 30 et C5 A7 10100111 30 00110000 C5 11000101 Somme 1 10011100 Repli de la retenue 10011100 1 Total 10011101 Complément à 1 01100010 = le CheckSum • Transmission de : 10100111 00110000 11000101 01100010 Yonel GRUSSON
Contrôle par checksum • A la réception : Checksum reçu 01100010 OU Checksum recalculé (avant complément à 1) 10011101 Vérification 11111111 (Avec l'opérateur ET le résultat serait 00000000) Yonel GRUSSON
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
Contrôle de parité (ou d'imparité) 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). Yonel GRUSSON
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
Le contrôle par parité croisée 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. Yonel GRUSSON
Le contrôle par parité croisée 0 1 1 0 1 1 1 1 0 0 1 0 1 1 1 0 0 1 1 0 1 1 1 1 0 0 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 1 1 0 0 1 0 0 1 0 1 0 0 1 0 1 1 0 1 1 0 0 01 Parité Horizontale (LRC : Longitudinal Redundancy Checkink) 0 1 1 0 1 1 1 1 0 0 1 0 1 1 1 0 0 1 1 0 1 1 1 1 0 0 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 1 1 0 0 1 0 0 1 0 1 0 0 1 0 1 1 0 1 1 0 0 01 Parité croisée Parité Verticale (VRC : Vertical RedundancyCheckink) Yonel GRUSSON
Le contrôle par parité croisée Transmission de : 0110111100101110011011110011100111100111111001001010010110110001 Supposons une erreur lors de la transmission : 0110111100101110011001110011100111100111111001001010010110110001 Yonel GRUSSON
Le contrôle par parité croisée 1001101 LRC recalculé 0 1 1 0 1 1 1 1 0 0 1 0 1 1 1 0 0 1 1 0 0 1 1 1 0 0 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 1 1 0 0 1 0 0 1 0 1 0 0 1 0 1 1 0 1 1 0 0 01 Parité croisée recalculée 1 0 1 1 1 0 0 0 VRC recalculé Yonel GRUSSON
1001101 0 1 1 0 1 1 1 1 0 0 1 0 1 1 1 0 0 1 1 0 0 1 1 1 0 0 1 1 1 0 0 1 1 1 1 0 0 1 1 1 1 1 1 0 0 1 0 0 1 0 1 0 0 1 0 1 1 0 1 1 0 0 01 1 0 1 1 1 0 0 0 Le contrôle par parité croisée 1 - Détection de l'erreur avec 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
Le contrôle polynomial 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. Yonel GRUSSON
Le contrôle polynomial Exemple 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. Yonel GRUSSON
Le contrôle polynomial Exemple 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 Yonel GRUSSON
Le contrôle polynomial Exemple A la réception M(x) est divisé par G(x) et 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é) Yonel GRUSSON
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
Différentes méthodes de chiffrement • Chiffrement par substitution Ancienne 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. Yonel GRUSSON
Différentes méthodes de chiffrement 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 Yonel GRUSSON
Cryptographie à clé unique • 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 Yonel GRUSSON
Cryptographie à clé unique • Phase de Cryptage B T S B T S B L 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 Yonel GRUSSON
Cryptographie à clé unique • 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 Yonel GRUSSON
Cryptographie à clé unique • 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 Yonel GRUSSON
Cryptographie à deux clés 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. Yonel GRUSSON
Cryptographie à deux clés • 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... Yonel GRUSSON
Cryptographie à deux clés 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----- Yonel GRUSSON
Cryptographie à deux clés • 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). Yonel GRUSSON
Cryptographie à deux clés Résumé pour le cryptage d'un message • La personne A génère : • Sa Clépriva • Sa CléPub = f(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. Yonel GRUSSON
Cryptographie à deux clés 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) • SignatCrypté = f(SignatClair, CléPriva) • La personne B • B décrypte à l'aide de (CléPuba) • SignatClair = f(SignatCrypté, CléPuba) Yonel GRUSSON
Le protocole Secure SHell (SSH) A l'origine le protocole SSH était un protocole permettant à un client d'ouvrir une session interactive (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
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
Le protocole Secure SHell (SSH) L'authentification principale de SSH2 repose en particulier sur l'utilisation de clés publiques/clés privées. Le client et le serveur génèrent (commande > ssh –keygen) un couple de clés privée/publique ; puis s'échangent leur clé publique (par FTP ou mail ou commande scp). La clé privée peut être consolidée par une phrase clé (passphrase) qui serafourni à chaque connexion (sauf avec l'utilisation de ssh-agent). Yonel GRUSSON
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, l'authentification peut se faire soit par mot de passe soit par clé publique/privée Yonel GRUSSON
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 (demande faite à la première connexion). Yonel GRUSSON
Le protocole Secure SHell (SSH) Par clé publique/privée (authentification simple) $ ssh login@serv_ssh • 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é. • 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
Le protocole Secure SHell (SSH) • 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é secrète, il a la preuve que le serveur est bien le vrai serveur. • 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
Le protocole Secure SHell (SSH) • 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
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
3ème Partie - SSL (Sécure Socket Layer) SSL est un protocole, conçu par Netscape pour assurer la sécurité des échanges sur Internet en particulier pour les échanges commerciaux (paiement, connexion bancaire, etc..) La version 2.0 fut développée par Netscape ; La version 3.0 est actuellement la plus répandue ; La version 3.1 baptisée TLS (transport Layer Security, RFC 2246) est standardisée par l'IETF (Internet Engineering Task Force). Yonel GRUSSON
SSL – Sécure Socket Layer SSL est un protocole indépendant du protocole de l'application. Il peut s'utiliser avec HTTP, FTP, POP, etc. SSL se situe entre les couches application et transport (TCP le plus généralement). On le considère comme un protocole de session. Les ports utilisés sont : Yonel GRUSSON
SSL – Sécure Socket Layer Aujourd'hui, les navigateurs supportent tous ce protocole. Son utilisation est repérable • Par le début de l'URL : https://… où le "s" signifie "sécurité" • Par l'icône : Yonel GRUSSON
SSL – Sécure Socket Layer SSL comprend essentiellement 2 protocoles : • SSL Handshake protocol qui est la phase de négociation entre le client et le serveur. • SSL Record protocol qui chiffre les informations échangés et effectue divers contôles. Donc 2 phases : • La négociation • La communication Yonel GRUSSON
SSL – Sécure Socket Layer Phase 1 : La négociation • Le client se connecte au serveur sécurisé par SSL et demande au serveur de s'authentifier.Cette demande est accompagnée de la liste des systèmes de cryptage (longueur des clés) que le client supporte. • Le serveur répond au client en lui envoyant un certificat contenant sa clé publique. Ce certificat est signé électroniquement par une autorité de certification (tiers de confiance). Yonel GRUSSON
SSL – Sécure Socket Layer Phase 1 : La négociation • En d'autre terme le certificat reçu est crypté à l'aide de la clé privée du tiers de confiance. • A réception, le client doit donc s'assurer de l'identité du serveur. Est-il bien celui qu'il prétend être ?Les navigateurs possèdent un certains nombre de PKI (Public Key Infrastructure) contenant la clé public du tiers de confiance. Celle-ci permet de vérifier la signature. Yonel GRUSSON