9. Security Considerations (Considérations de sécurité)
Le protocole L2TP lui-même ne fournit pas de services de chiffrement ou d'authentification forte. Ce chapitre traite des considérations de sécurité dans les déploiements L2TP et des mécanismes de sécurité disponibles.
9.1 Tunnel Endpoint Security (Sécurité des points d'extrémité du tunnel)
La relation de confiance entre les points d'extrémité du tunnel est fondamentale pour la sécurité L2TP.
Authentification des points d'extrémité:
Le LAC et le LNS doivent être capables de vérifier l'identité de l'autre. L2TP fournit un mécanisme d'authentification de tunnel optionnel:
- Challenge AVP: L'initiateur envoie une valeur de défi aléatoire dans le SCCRQ (Start-Control-Connection-Request).
- Challenge Response AVP: Le répondeur calcule une réponse basée sur un secret partagé et la renvoie dans le SCCRP (Start-Control-Connection-Reply).
- Calcul de la réponse: Utilise la fonction de hachage MD5:
MD5(Type de message + secret_partagé + Défi + ID_Session)
Gestion des secrets partagés:
- Les secrets partagés doivent avoir une entropie suffisante (au moins 128 bits recommandés).
- Les secrets partagés doivent être stockés en toute sécurité (stockage chiffré).
- Les secrets partagés doivent être renouvelés périodiquement.
- Différentes paires de tunnels doivent utiliser différents secrets partagés.
Autorisation de tunnel:
En plus de l'authentification, des mécanismes d'autorisation doivent être mis en œuvre:
- Vérifier que le pair est autorisé à établir un tunnel.
- Vérifier si le pair a la permission d'accéder à des ressources ou services spécifiques.
- Utiliser des listes de contrôle d'accès (ACL) pour restreindre quels pairs peuvent établir des tunnels.
Vulnérabilités et atténuations:
-
Attaque de l'homme du milieu:
- Risque: L'authentification de tunnel L2TP basée sur des secrets partagés est vulnérable aux attaques MITM.
- Atténuation: Utiliser IPsec pour fournir un chiffrement et une authentification de bout en bout.
-
Attaque par rejeu:
- Risque: Les attaquants peuvent rejouer des messages de contrôle capturés.
- Atténuation: Utiliser des numéros de séquence et des mécanismes ZLB ACK pour détecter et prévenir les attaques par rejeu.
-
Attaque par déni de service:
- Risque: Les attaquants peuvent envoyer un grand nombre de demandes d'établissement de tunnel.
- Atténuation:
- Limiter le nombre de tunnels simultanés par adresse source.
- Mettre en œuvre une limitation de débit.
- Utiliser des mécanismes de Cookie (similaires aux cookies TCP SYN).
9.2 Packet Level Security (Sécurité au niveau des paquets)
L2TP lui-même ne fournit pas de chiffrement de paquets ou de protection d'intégrité.
Risques de la transmission en clair:
- Écoute clandestine: Les attaquants peuvent intercepter et lire le contenu des paquets PPP, y compris les informations d'identification des utilisateurs et les données d'application.
- Falsification: Les attaquants peuvent modifier les paquets en transit.
- Injection: Les attaquants peuvent injecter des paquets malveillants dans le tunnel.
Mécanisme de masquage AVP:
L2TP fournit un mécanisme de masquage AVP pour protéger les informations de contrôle sensibles:
-
Processus de masquage:
- Générer un hachage MD5 en utilisant le secret partagé et le vecteur aléatoire.
- Effectuer un XOR de la valeur de hachage avec la valeur AVP.
- Répéter le processus si la valeur AVP dépasse 16 octets.
-
Limitations:
- Le masquage AVP est une obfuscation, pas un véritable chiffrement.
- Ne protège pas le canal de données, seulement des AVP spécifiques dans le canal de contrôle.
- Vulnérable aux attaques par dictionnaire (si le secret partagé est faible).
Recommandations:
- Ne pas compter uniquement sur le masquage AVP comme seul mécanisme de sécurité.
- Utiliser IPsec ou d'autres technologies de chiffrement au niveau du tunnel.
9.3 End to End Security (Sécurité de bout en bout)
Même lorsque le tunnel L2TP lui-même est protégé, la sécurité de bout en bout reste importante.
Authentification au niveau PPP:
Une authentification indépendante doit avoir lieu entre le système distant et le LNS:
-
PAP (Password Authentication Protocol):
- Authentification par mot de passe en clair simple.
- Non recommandé, car les mots de passe sont transmis en clair (doit être évité même dans les tunnels L2TP chiffrés).
-
CHAP (Challenge Handshake Authentication Protocol):
- Mécanisme d'authentification défi-réponse.
- Les mots de passe ne sont pas transmis en clair.
- Ré-authentification périodique pour prévenir les attaques par rejeu.
-
EAP (Extensible Authentication Protocol):
- Prend en charge diverses méthodes d'authentification (EAP-TLS, EAP-TTLS, PEAP, etc.).
- Peut fournir une authentification mutuelle et une négociation de clés.
- EAP-TLS est recommandé pour la sécurité la plus forte.
Chiffrement de bout en bout:
Le chiffrement de la couche application fournit une couche de sécurité supplémentaire:
- TLS/SSL: Utilisé pour protéger les données d'application (par exemple, HTTPS).
- Logiciel client VPN: Fournit une couche de chiffrement supplémentaire au-dessus de PPP.
Stratégie de défense en profondeur:
Système distant <--Auth/Chiffr PPP--> LNS
| |
+--<Tunnel L2TP>--LAC--------------+
|
<Protection IPsec>
- Couche 1: Authentification au niveau PPP (CHAP/EAP)
- Couche 2: Authentification de tunnel L2TP
- Couche 3: Chiffrement et authentification IPsec
- Couche 4: Chiffrement de la couche application (TLS/SSL)
9.4 L2TP and IPsec (L2TP et IPsec)
Il est fortement recommandé d'utiliser L2TP en combinaison avec IPsec, communément appelé L2TP/IPsec.
Services de sécurité fournis par IPsec:
-
Confidentialité:
- Fournie par le chiffrement ESP (Encapsulating Security Payload).
- Prend en charge plusieurs algorithmes de chiffrement: AES, 3DES, ChaCha20, etc.
-
Intégrité:
- Fournie par AH (Authentication Header) ou l'authentification ESP.
- Utilise HMAC (par exemple, HMAC-SHA256) pour vérifier l'intégrité des données.
-
Authentification de la source:
- Vérifie l'authenticité des sources de paquets.
- Empêche les attaques d'usurpation d'IP.
-
Anti-rejeu:
- Utilise des numéros de séquence pour prévenir les attaques par rejeu.
Architecture L2TP/IPsec:
+-------------------+
| Charge utile PPP|
+-------------------+
| En-tête L2TP |
+-------------------+
| En-tête UDP |
+-------------------+
| En-tête ESP | <-- Chiffrement et authentification IPsec
+-------------------+
| En-tête IP |
+-------------------+
Options de configuration IPsec:
-
Mode transport:
- Chiffre et authentifie uniquement la charge utile IP.
- Adapté à la communication de bout en bout.
- Recommandé pour L2TP/IPsec.
-
Mode tunnel:
- Chiffre et authentifie l'intégralité du paquet IP.
- Ajoute un nouvel en-tête IP externe.
- Adapté à la communication de passerelle à passerelle.
Gestion des clés:
-
IKE (Internet Key Exchange):
- IKEv1: Version originale, négociation en deux phases.
- IKEv2: Version améliorée, plus rationalisée et efficace.
- IKEv2 est recommandé pour la négociation de clés.
-
Clé pré-partagée vs Certificats:
- Clé pré-partagée (PSK): Simple à configurer, mais difficile de distribuer les clés.
- Certificats: Plus sûrs, prennent en charge les déploiements à grande échelle, fortement recommandés.
Traversée NAT (NAT-T):
Lorsque L2TP/IPsec doit traverser des périphériques NAT:
- Utiliser l'encapsulation UDP d'ESP (port UDP 4500).
- Envoyer périodiquement des paquets de maintien en vie NAT.
- IKEv2 a un support NAT-T intégré.
Considérations de performance:
- Le chiffrement IPsec ajoute une surcharge CPU.
- Envisager d'utiliser l'accélération matérielle (AES-NI, etc.).
- La réduction MTU doit être prise en compte (en-tête ESP + trailer ESP + données d'authentification).
9.5 Proxy PPP Authentication (Authentification PPP par proxy)
L2TP permet au LAC d'effectuer l'authentification PPP initiale au nom du LNS.
Mécanisme d'authentification par proxy:
Le LAC peut négocier LCP et effectuer l'authentification avec le système distant avant de transférer l'appel au LNS:
-
Le LAC effectue l'authentification PPP:
- Le LAC négocie LCP avec le système distant.
- Le LAC effectue l'authentification PAP ou CHAP.
- Le LAC collecte les informations d'authentification (nom d'utilisateur, hachage de mot de passe, etc.).
-
Le LAC transfère les informations d'authentification au LNS:
- Utilise des AVP proxy pour transmettre les informations d'authentification:
- Proxy Authen Type AVP (29): Type d'authentification (PAP, CHAP, etc.)
- Proxy Authen Name AVP (30): Nom d'utilisateur
- Proxy Authen Challenge AVP (31): Valeur de défi CHAP
- Proxy Authen Response AVP (33): Réponse d'authentification
- Utilise des AVP proxy pour transmettre les informations d'authentification:
-
Le LNS vérifie les informations d'authentification:
- Le LNS vérifie l'utilisateur en fonction des informations fournies par le LAC.
- Le LNS peut accepter ou rejeter la session.
Risques de sécurité:
-
Compromission du LAC:
- Si le LAC est compromis, les attaquants peuvent obtenir les informations d'identification des utilisateurs.
- Atténuation: Utiliser IPsec pour protéger la communication entre le LAC et le LNS.
-
Transmission de mot de passe en clair:
- Les mots de passe PAP sont transmis en clair du LAC au LNS (dans les AVP).
- Atténuation: Utiliser le mécanisme de masquage AVP ou le chiffrement IPsec.
-
Limite de confiance:
- Le LNS doit faire entièrement confiance aux informations d'authentification fournies par le LAC.
- Un LAC malveillant peut falsifier les informations d'authentification.
- Atténuation:
- N'utiliser l'authentification par proxy qu'entre des domaines de gestion de confiance.
- Envisager d'exiger une ré-authentification de bout en bout.
Meilleures pratiques:
-
Éviter l'authentification PAP par proxy:
- Les mots de passe PAP sont vulnérables aux attaques même lorsqu'ils sont masqués.
- S'il doit être utilisé, s'assurer de la protection IPsec.
-
Privilégier l'authentification de bout en bout:
- Permettre au système distant de s'authentifier directement avec le LNS (sans proxy).
- Utiliser des méthodes EAP pour une sécurité plus forte.
-
Limiter les cas d'utilisation de l'authentification par proxy:
- N'utiliser que lorsque nécessaire (par exemple, établissement d'appel rapide).
- Utiliser dans des environnements réseau de confiance.
-
Combiner plusieurs méthodes d'authentification:
- Le LAC effectue l'authentification préliminaire (pour un filtrage rapide).
- Le LNS effectue l'authentification secondaire (vérification de bout en bout).
Intégration de l'authentification par proxy avec RADIUS:
Système distant <--PAP/CHAP--> LAC <--RADIUS--> Serveur RADIUS
|
|
v
(Transfert info auth)
|
v
LNS <--RADIUS--> Serveur RADIUS
- Le LAC peut utiliser RADIUS pour vérifier les informations d'identification des utilisateurs.
- Le LNS peut également vérifier indépendamment en utilisant RADIUS.
- La double vérification fournit une couche de sécurité supplémentaire.
Liste de contrôle de configuration de sécurité:
- Utiliser IPsec entre le LAC et le LNS
- Utiliser des secrets partagés forts ou des certificats pour l'authentification de tunnel
- Utiliser des secrets partagés uniques pour chaque paire de tunnels
- Activer l'authentification au niveau PPP (CHAP ou EAP)
- Éviter d'utiliser l'authentification PAP
- Faire pivoter périodiquement les secrets partagés
- Mettre en œuvre des listes de contrôle d'accès pour restreindre l'établissement de tunnels
- Activer la journalisation et la surveillance
- Déployer des systèmes de détection d'intrusion (IDS)
- Effectuer des audits de sécurité réguliers et des tests de pénétration