LightcodeSysadmin Open Source

Chapitre 11 : La sécurisation du réseau

Protéger une communication

L’authentification

L’authentification permet de s’assurer que l’on communique bien avec le bon destinataire ou éviter qu’une machine se connecte alors qu’alors qu’elle n’est pas désirée.

L’authentification au réseau est utilisé lorsque le réseau est accessible publiquement. Ce dernier doit donc pouvoir contrôler les utilisateurs en les authentifiant. Nous en avons vu un exemple avec les réseaux Wi-Fi. Pour se connecter au réseau de son fournisseur d’accès à Internet (FAI) un identifiant est souvent utilisé au moyen de PPP, protocole de niveau 2.

Techniques d’authentifications

La technique la plus répandue aujourd’hui est le couple nom d’utilisateur et un mot de passe. Cette technique est la plus simple mais pas la plus efficace. En général, un mot de passe n’est pas trop long, par exemple huit caractères. Si on prend les minuscule (25), majuscule (25) et les chiffres (10) pour composer un mot de passe de huit caractères, on aurait (25+25+10)8 soit 167 x 1012 possibilités.

L’autre technique est le certificat, qui est un fichier de taille variable, mais sera généralement beaucoup plus fort qu’un mot de passe. Par exemple, pour un certificat de 128 bits, on aurait : 2128 = 3 x 1038 possibilités. Le certificat permettra une meilleure sécurité.

Serveur de connexion

À l’origine, RADIUS est un protocole utilisé par les FAI pour connecter les utilisateurs à leur réseau. Pour se connecter, un utilisateur devra utiliser un mot de passe. Le serveur RADIUS peut utiliser une base de données externe pour stocker les utilisateurs comme un annuaire LDAP.

L’authentification entre deux machines est pratiquée dans de nombreux protocoles de sécurité comme IPsec. Cette technique est utilisée pour authentifier un serveur lors d’une transaction sur Internet à l’aide du HTTPS.

Exemple du protocole CHAP

CHAP est un protocole d’authentification utilisé par PPP, qui fonctionne grâce à un défi. En fait, une machine A envoie un défi à une machine B. Un défi, sera une chaine de caractères à chiffrer. Pour chiffrer ces caractères, il doit utiliser une clé de chiffrement, qui sera secrète et connue par les deux machines. Cette clé servira alors de mot de passe. La machine B chiffre la chaine et concatène la chaine en clair et la chaine chiffrée et effectue un hash MD5.

Les hash est en fait algorithme, qui calcul l’emprunte d’une chaine. Cette emprunte sera toujours identique pour une même chaine, deux chaines différentes ne peuvent pas avoir le même hash. Enfin, il est impossible de faire l’opération inverse d’un hash, on ne peut pas trouver la chaine à partir d’un hash.

La machine A va aussi chiffrer la même chaine, avec la même clé, elle va aussi faire le hash. Ensuite, la machine B va envoyer à la machine A le résultat de l’opération, et la machine A va comparer les deux hash, s’ils sont identiques, la machine B s’est authentifié auprès de la machine A.

Le chiffrement

Le but du chiffrement est de transmettre des informations entre deux machines sans que celles-ci puissent être lues si elles sont interceptées par une personne tierce. Pour chiffrer des données, on utilisera une clé, qui sera générée aléatoirement. Ensuite, à l’aide d’un algorithme et de la clé, on pourra chiffrer les données.

Il y a deux possibilités pour déchiffrer, soit la clé pour chiffrer et identique à celle pour déchiffrer : c’est un algorithme de chiffrement symétrique.

Système de chiffrement symétrique

Il existe une autre technique plus évoluée est apparue afin d’améliorer la sécurité. Dans le cas d’un chiffrement asymétrique, l’émetteur utilisera une clé publique pour chiffrer les données. Le destinataire sera le seul à pouvoir déchiffrer grâce à une clé privée.

Système de chiffrement asymétrique

Il existe différents algorithmes de chiffrement :

  • DES : chiffrement à clés symétrique, une nouvelle version appelée 3DES applique trois fois l’algorithme DES à une chaine en clair ;
  • AES (Advanced Encryption Standard) : chiffrement à clés symétrique ;
  • RSA (Rivest, Shamir, Adleman) : chiffrement à clés asymétriques (RFC 2437).

Protocoles de sécurité dans l’IP

Ces protocoles sont utilisés pour sécuriser des échanges réalisés avec les protocoles TCP/IP.

IPsec

IPsec a été créé pour introduire différents mécanismes de sécurité dans le monde TCP/IP. IPsec a été conçu de façon à ce qu’il ne dépende pas de la couche de transport. IPsec peut se configurer directement dans le système d’exploitation et permet de chiffrer toutes les connexions vers une IP.

ESP est un protocole d’encapsulation utilisé dans l’IPsec, voici comment est construite la couche ESP :

IPsec peut fonctionner suivant deux modes : avec et sans tunnel. Nous verrons ce qu’est un tunnel dans le chapitre suivant. Sans tunnel, IPsec ajoute une couche après la première couche IP :

Les couches positionnées au-dessus de l’en-tête IPsec sont donc chiffrées. Le protocole Internet Key Exchange (IKE) permet d’échanger les clés de chiffrement. IPsec est donc un protocole sécurisé permettant l’authentification et la confidentialité.

TLS

TLS est le nouveau nom de SSL. Initialement utilisé pour sécuriser des échanges HTTP, le SSL s’est développé et d’autres protocoles applicatifs l’ont utilisé comme FTPS, IMAPS… TLS est une couche qui se situe au-dessus de TCP, les données contenues dans la couche TLS sont chiffrée, ce qui permet de garder la confidentialité du contenu. De plus, TLS possède un mécanisme permettant d’éviter le rejeu, c’est-à-dire qu’une personne malveillante, intercepte des paquets et les envoie de nouveau sur le réseau.

TLS fonctionne avec un tiers de confiance, c’est une entreprise qui va conserver les certificats ainsi que le ou les noms de domaine validés. Lorsque le client se connecte au serveur :

  1. Dans un premier temps, le client et le serveur s’envoie un message HELLO pour initialiser la connexion ;
  2. Le serveur envoie alors la clé publique ;
  3. Le client valide la clé auprès d’un tiers de confiance. Le tiers de confiance sera une entreprise chargée de délivrer les certificats ;
  4. La clé publique est reconnue comme valide, le serveur est authentifié.

Pare-feu

Un pare-feu permet de filtrant les connexions entrant et sortant d’un réseau ou d’une machine. Le dans une entreprise, le pare-feu se positionne entre le réseau Internet et le réseau local. Pour améliorer la sécurité, il est possible de mettre un pare-feu sur chaque ordinateur dans le réseau local, cela se présente sous la forme d’un logiciel souvent inclus dans le système d’exploitation.

Règles de blocage simples

Lors de la mise en place du pare-feu, on choisira soit de bloquer toutes les connexions, soit de tout autoriser. A partir de là, on établira soit une liste noire, soit une liste blanche pour autoriser ou non les connexions.

Actuellement, un pare-feu peut bloquer ou autoriser :

  • Un bloc d’IP ou une IP particulière ;
  • Un port TCP ou UDP, mais aussi bloquer totalement les requêtes ICMP ;

Toutefois, lors de la mise en place du pare-feu à l’aide d’une liste blanche, le pare-feu bloquera toutes les connexions entrantes. Il faudra donc autoriser les connexions déjà établies à entrer dans le réseau. Ainsi, lorsqu’un client du réseau protégé se connecte à un serveur d’Internet, le pare-feu détectera que le serveur répond à une requête du client, il laissera donc la connexion entrer.

SPI

Les pare-feu SPI (Service Packet Inspection) analysent les flux entrants dans le réseau et permettent de couper l’accès à certaines machines extérieures qui lancerai une attaque vers le réseau. Le SPI peut détecter plusieurs choses :

Les attaques DoS (et DDoS) : une attaque DoS utilise un principe simple, envoyer beaucoup de paquet en même temps pour qu’un serveur tombe en panne. Le terme de DDoS est utilisé pour désigner une attaque DoS mené par plusieurs machines en même temps. On peut différencier les attaques DoS suivant les paquets envoyés :

  • SYN Flood : des demandes de connexion TCP sont envoyées en très grand nombre ;
  • UDP : des messages UDP sont envoyés en très grand nombre ;
  • ICMP : des messages ICMP sont envoyés en très grand nombre.

Les scans : permettent aux hackers de connaître le réseau en le scannant. Les scans peuvent se faire au niveau d’un serveur, à ce moment-là, on regardera les ports ouvert sur le serveur pour éventuellement tenter de s’infiltrer par l’un de ceux-ci. Les scans peuvent aussi se faire sur un réseau, ici on scannera les plages d’IP du réseau dans le but de connaître les machines qui sont présentes afin de les attaquer.

Zone démilitarisée

La DeMilitarized Zone (DMZ) permet de créer deux réseaux locaux : les deux utilisent la NAT pour fonctionner. Mais, un des réseaux est conçu pour que des utilisateurs externes accèdent aux serveurs web ou mail par exemple, la NAT sera donc configuré avec des ports entrant vers les serveurs. Un second réseau n’aura pas de port entrant vers les machines.

Les données échangées entre les deux sous-réseaux peuvent aussi être filtrées. Cela permet d’éviter d’éventuels virus provenant des serveurs du réseau moins sécurisé.

Proxy

Un proxy est une machine qui va casser le principe “client-serveur”. Par exemple, pour un serveur web, plutôt que d’y accéder directement grâce à son IP, on passera d’abord par un proxy qui consultera à notre place le serveur web et va nous renvoyer le résultat. Cela permet de sécuriser le serveur web en filtrant les requêtes. Dans ce cas-là, le proxy est du côté du côté du serveur. Toutefois, il est possible qu’il soit du côté client, pour servir de cache.