Add first part of IPSec course
This commit is contained in:
parent
d869be6e0b
commit
5d803fdcb9
3 changed files with 624 additions and 0 deletions
96
content/secu_reseaux/5_securite-echanges/index.md
Normal file
96
content/secu_reseaux/5_securite-echanges/index.md
Normal file
|
@ -0,0 +1,96 @@
|
|||
---
|
||||
title: "Sécurité des réseaux : sécurité des échanges"
|
||||
date: 2022-10-04
|
||||
tags: ["TLS", "IPSEC"]
|
||||
categories: ["Sécurité des réseaux", "Cours"]
|
||||
---
|
||||
|
||||
Dans cette partie nous aborderons *TLS* (*Transport Layer Security*), *IPSec*
|
||||
(*IP Security*) et les *PKI* (*Public Key Infrastructure*)
|
||||
|
||||
## Propriétéà assurer
|
||||
|
||||
Pour sécuriser un échange, il faut assurer 4 points:
|
||||
|
||||
1. la confidentialité: seul mon interlocuteur peut lire le message;
|
||||
2. l'authenticité: le message est authentique;
|
||||
3. l'intégrité: le message vient bien de mon interlocuteur, il n'a pas été
|
||||
modifié par un tiers;
|
||||
4. la non-répudiabilité: mon interlocuteur ne peut pas réfuter ses messages;
|
||||
|
||||
## IPSec
|
||||
|
||||
C'est un protocole ancien (~1994) créé pour répondre aux 4 propriétés vu
|
||||
précédemment. Il se positionne dans la couche IP, il est donc totalement
|
||||
transparent pour les couches supérieures.
|
||||
|
||||
IPSec est composé de plusieurs parties:
|
||||
|
||||
* **ESP (*Encapsulating Security Payload*)**: chiffrement;
|
||||
* **AH** (*Authentication Header*): authentification de l'origine des paquets,
|
||||
contrôle des accès, rejet des paquets rejoués;
|
||||
* **Négociation**: établissement des paramètres de la communication
|
||||
avec**IKE** (*Internet Key Exchange*).
|
||||
|
||||
### Les défi des attaques par rejeu
|
||||
|
||||
Ces types d'attaques permettent de mettre à mal des protocoles réputés fiables
|
||||
comme *WPA2*. Quelle solution est implémentée dans IPSec?
|
||||
|
||||
Au niveau du récepteur, un identifiant de paquet et une fenêtre de réception
|
||||
sont utilisés. Une **fenêtre** est une intervalle de temps bornée pendant
|
||||
laquelle les identifiants sont acceptés.
|
||||
|
||||
Le déroulé:
|
||||
|
||||
* Une fenêtre de taille `W` est créée sur le récepteur;
|
||||
* Le numéro d'ordre le plus élevé, noté `N`, est placé à l'extrémité droite de
|
||||
la fenêtre;
|
||||
* Pour tout paquet reçu avec un numéro d'ordre compris entre `N - W +1` et `N`,
|
||||
la position correspondante est marquée;
|
||||
* Lors de la réception d'un nouveau paquet;
|
||||
* Si la position et la *MAC* sont corrects, la position est marquée
|
||||
* Si la *MAC* est correct et que le numéro d'ordre est à droite de la
|
||||
fenêtre, alors cette dernière est avancée de sorte que `N` prenne la
|
||||
valeur du numéro d'ordre de ce paquet;
|
||||
* Si la *MAC* est invalide ou que le numéro d'ordre est à gauche de la
|
||||
fenêtre, **il est détruit**;
|
||||
|
||||
### Les modes d'utilisation
|
||||
|
||||
Il existe deux modes de fonctionnement : le mode tunnel et le mode transport.
|
||||
|
||||
#### Le mode tunnel
|
||||
|
||||
Deux réseaux se "parlent" via l'établissement d'un tunnel sécurisé.
|
||||
|
||||

|
||||
|
||||
Ce mode assure la protection du paquet IP dans sa totalité.
|
||||
|
||||
|
||||
En mode ESP, le message doit être **chiffré**.
|
||||
|
||||
#### Le mode transport
|
||||
|
||||
Deux hôtes se "parlent" via un tunnel sécurisé. Dans ce mode, le paquet
|
||||
d'origine est inclus dans un autre. Le paquet d'origine est alors chiffré et /
|
||||
ou authentifié.
|
||||
|
||||

|
||||
|
||||
Un champ AH est ajouté pour authentifier la trame. Cette authentification est
|
||||
assurée par une signature qui prend la forme:
|
||||
|
||||
```
|
||||
hash(K || hash(K || M))
|
||||
```
|
||||
|
||||
Ou `hash` est une foncion de hashage, `K` la clé.
|
||||
|
||||
En mode transport, **ESP** chiffre l'information utile du paquet, l'entête reste
|
||||
inchangée. **AH** authentifie l'information utile et certaines parties de
|
||||
l'entête IP.
|
||||
|
||||
Pour passer au travers d'un *NAT*, il est nécessaire d'encapsuler le tout dans
|
||||
une trame UDP.
|
Loading…
Add table
Add a link
Reference in a new issue