SECU : VPN

Sécurité : Virtual Private Network

VPN

Il existe deux types de VPN. Le VPN Client à Site (un client accède à l'entreprise depuis l'extérieur (ce n'est donc pas très sûr)) ainsi que le VPN Site à Site (un intranet relie plusieurs intranets entre eux). Les points les plus importants de ce genre de connexions sont :

  • L'authentification des protagonistes
  • La sécurité
  • L'intégrité des données

Réseau privé != Données privées

Réseau privé

Les réseaux privés cohéxistent avec quelques barrières :

  • Les réseaux privés possèdent des adresses privées non-routables
  • Les fonctions NAT assurent l'isolation du réseau interne
  • Des équipements de sécurité sont conçus pour protéger le réseau privé de l'extérieur
Comment faire coexister les adressages publics et privés ?

La solution est simple, il suffit d'encapsuler les messages privés dans des messages publics.

Le rôle de cette fonction est de se substituer à l'emetteur réel. Ce qui est très problématique puisque les protocoles de la suite VPN sont justement là pour s'assurer de l'identité des participants.

Ainsi, une ré-encapsulation dans un paquet UDP sur le port 500 est effectuée.

Les systèmes de sécurité sont là pour bloquer et filtrer les intrusions. Il faut donc éviter de les contourner. Cela en fait donc des éléments privilégiés pour les utiliser en tant que passerelle VPN. Vu que cet élément crypte et décrypte, il peut naturellement analyser les paquets.

Données privées

Pas essentielles pour le fonctionnement du VPN ! Mais c'est évidemment incontournable. Il existe trois fonctions qu'un système se doit d'intégrer pour que les données circulent sans danger :

  • La fonction d'Authentification : signatures numériques ; certificats
  • La fonction d'Intégrité : algorithmes de hachage
  • La fonction de confidentialité : algorithmes de cryptographie : cryptage symétrique (clef commune) ; cryptage asymétrique (clefs privée et publique)...

Justement... les cryptages !

Chiffrement Symétrique

Il existe des chiffrements symétriques ! "Symétriques" puisqu'ils nécessitent le partage d'une clef afin de chiffrer et déchiffrer les données. C'est rapide mais il faut transferer la clef pour que ça fonctionne ! Attention à ne pas partager la clef avec n'importe qui ;) Voici quelques exemples d'algorithmes symétriques :

  • AES
  • IDEA
  • DES
  • 3DES
  • Blowfish
  • Twofish
  • CAST
  • Etc...

Le chiffrement symétrique garde quand même cette grande faiblesse : l'échange de clef. Si la clef est interceptée, le chiffrement est inutile...


Chiffrement Asymétrique

Ce chiffrement ne fonctionne pas avec une clef mais... avec deux clefs ! Une clef publique ainsi qu'une clef privée. Un message chiffré avec une clé publique n'est lisible que par le propriétaire de la clé privée correspondante. Voici quelques exemples d'algorithmes asymétriques :

  • RSA (factorisation de nombres premiers)
  • El Gamal
  • Etc...

L'avantage du chiffrement asymétrique est de pouvoir communiquer sur des réseaux non sécurisés. Par contre, la complexité de mise en oeuvre est plus élevée, ce chiffrement consomme d'avantage de ressources et est moins robuste.


Chiffrement Hybride

Alors... là c'est le pire ! On va chiffrer un message par chiffrement symétrique avec une clef de session aléatoire et on chiffre la clef de session par chiffrement asymétrique avec la clef publique du destinataire ! Pfiou... Quelques exemples :

  • PGP
  • TLS
  • Etc...

Les avantages de ce cocktail sécuritaire est la possibilité de communiquer sur un réseau non sécurisé, d'avoir une consommation de ressources acceptable et un chiffrement très robuste. Mais la complexité est encore plus grande...


Intégrité

Le hachage nous permet de vérifier l'intégrité des données transférées. Plusieurs algorithmes existent :

  • MD5
  • SHA
  • SHA-1
  • SHA-2
  • Etc...

Le hachage ne sert pas à transférer des données. C'est une fonction irréversible à cause de la suppression de certaines infos du message. On supprime, on mélange, on crypte et cette recette nous donne le "condensat".


Authentification

Il existe deux types d'authentification : Hachage d'une signature ou de données en incluant un secret partagé (HMAC(SHA) ; HMAC(MD5)) ainsi que le Certificat X509 (Autorité d'enregistrement AE ; Autorité de certification AC et Base de certificat)


Transfert sécurisé des clefs

Diffie-Hellman

Cet algorithme permet de déterminer un secret commun sans que les clefs privées ne soient jamais transmises afin d'initier un cryptage.


IPSec

L'IPSec est un combo de tout ce qu'on vient de voir ! Fabrique ton IPSec Framework !

- - - IPSec Framework Choices
IPSec Protocol Choix AH ESP ou ESP+AH
Confidentiality Choix - - - DES ou 3DES ou AES
Integrity Choix MD5 ou SHA
Authentification Choix PSK ou RSA
Diffie-Hellman Choix DH1 ou DH2 ou DH5 ou DH7

Les deux phases d'IPSec

La phase 1 se nomme IKE. Elle contient le meilleur de ISAKMP / Oakley et SKEME ! C'est la phase qui sert à authentifier les interlocuteurs et qui initie l'échange de clef(s) (au minimum une) qui servira(ont) à protéger les futurs transactions et échange les protocoles de sécurité et les paramètres nécessaires à leur fonctionnement. Chaque partie crée des Associations de Sécurité (SA) ISAKMP afin de se mettre d'accord sur les méthodes d'authentification, les algorithmes de cryptage ainsi que sur les échanges de clefs (grâce à Diffie-Hellman) ou des certificats pour préparer la phase 2. Les SA peuvent être nombreux, une SAD (D = Database) est donc créée afin de pouvoir y faire appel rapidement.

Phase 2 : Maintenant qu'on est authentifié, on applique cela ainsi que le chiffrement négocié (à la phase 1) aux protocoles AH et / ou ESP. SA IPSec : création des SA pour AH et / ou ESP. Chaque échange sont sécurisés par les clefs échangées durant la phase 1. 1 SA par protocole AH et / ou ESP ainsi que 1 par sens. (Il y a donc au minimum 2 SA) Client à passerelle (mode transport) ou que passerelle à passerelle (mode tunnel).

Protocole AH (Authentification Header) => protocole ESP (Encapsuling Security Playload) pour l'authentification et le cryptage.

Une politique de sécurité SPD (Security Policy Database) définit les flux traités par IPSec : généralement une ACL. Terminons sur deux petites remarques :

ISAKMP de la phase 1 à quelques protocoles rivaux : XAUTH, qui utilise CHAP, OTP, SKEY ou EAP utilisé à l'origine sur des liens PPP ou MD5-Challenge.
NAT pose un petit souci. L'authentification inclue l'adresse IP et même le port source... si on change ces valeurs, ça échoue ! Si la PAT, par exemple, modifie le port source à cause d'une session active qui l'utilise déjà... c'est mort ! On peut contourner le problème en encapsulant dans UDP port 500 ou en choisissant l'emplacement de la passerelle VPN ou encore avec un nouveau protocole IKEv2.