1 Communications numériques avec VPN Réseau

Transcription

1 Communications numériques avec VPN Réseau
Communications numériques avec VPN
Réseau Privé Virtuel
I) Intérêt du VPN
Réseau école
Mon réseau
LAN
Réseau Internet
Réseau Internet
Opérateur Orange Opérateur Renater
Client @IP Privée
192.168.1.x
Box en routeur
1 @IP
publique
Routeur
tête
de réseau
Serveur @IP Privée
172.20.160.x
Imprimantes
@IP privées
Si je veux dialoguer avec un serveur de l'entreprise qui a une adresse publique
- les DNS indiquent l'@IP à joindre
- les routeurs des différents réseaux acheminent les paquets
- la NAT fait que je passe d'une @IP privée de mon LAN à mon @IP publique reconnue sur Internet
Si je veux dialoguer avec un serveur qui n'a pas d'@IP publique = Intranet
- j'utilise une machine du réseau de l'entreprise s'il n'y a pas de redirection de port.
Exemple: le serveur avec la base de données des notes de l'école
=> Si un prof veut entrer des notes, il doit utiliser une machine du réseau fixe de l'école ( pas externe, ni en wifi )
Remarque: On vient de parler du passage d'un réseau à un autre avec un réseau destinataire privé, mais on retrouve cette
discrimination mais entre adresses publique/publique de 2 pays différents.
( Blocages pour regarder les retransmissions sportives ou premières diffusions de série TV sur des chaînes gratuites étrangères
Exemple: La télévision suisse paie des droits de retransmission d'une compétition, seules les @IP suisses accèdent au flux )
Cette limitation d'accès impose à certaines @IP que l'on soit géographiquement dans une zone ( à l'école pour les notes, en suisse pour le
)
second exemple
1ère solution: Si on ne veut accéder qu'à une application: Renvoi de port sur le routeur d'accès
( 1 port par protocole, certaines applications utilisant plusieurs protocoles )
2ème solution: Établir un tunnel = VPN ( si le réseau de l'entreprise a un serveur VPN et un compte a été créé )
Dans notre problématique d'accès distant où au lieu de transmettre directement entre 2 machines d'un même réseau, on passe via
au moins un autre réseau, la solution du VPN est plus intéressante car
La machine distante est vue comme une machine du LAN avec tous les droits ( donc accès aux imprimantes ).
La sécurité peut être choisie ( données sensibles = sécurité renforcée ).
On chiffre nos données, donc même sur les réseaux publics où elles transitent, on ne peut les intercepter ( Hadopi )
J. Millet
1
II) Notions de Cybersécurité
Types de menaces
L'entreprise utilise un SI ( Système d'information ) = Ensemble d'éléments pour collecter, trier, partager et communiquer les infos.
D'un site géographique avec des bâtiments
De personnels qui y travaillent
( permanents, sous traitants, stagiaires,… )
De matériels
Le SI est fait
De logiciels faisant fonctionner les matériels et traitant les infos
D'un réseau qui relie les matériels
D'une organisation ( découpage en services, droits d'accès,… )
Les pirates mal intentionnés ( hacker black hat ) veulent profiter de ces données en s'introduisant illégalement dans le SI.
S'ils sont identifiés, ils sont poursuivis et sanctionnés par l'article 323-1 du code pénal ( voir http://www.legifrance.gouv.fr ) ou le
règlement intérieur de lycée, IUT, Université,…
Menace de bloquage = Atteinte à la disponibilité = Malveillance, Chantage, perte de compétitivité et clients
Bloquer le travail en interdisant l'accès aux infos.
Technique:
Déni de service DDOS ( Distributed Denial Of Service ): PC zombies infectés = Botnet réseau de robots
Intrusion puis chiffrement des données: Ransomware ou Rançongiciel
( chiffre les fichiers et demande une rançon pour donner le code pour déchiffrer )
Menace de vol d'infos = Espionnage, divulgation de secret
Technique: Casser un chiffrement trop faible ( wep sur wifi )
Intrusion par usurpation
Vol de mots de passe, de code -> par intrusion ( Dictionnaire: Essai du contenu d'un fichier
Hybride: Dictionnaire en ajoutant des combinaisons ex: Password01
Force brute: Toutes combinaisons ASCII possibles => très long ).
-> par hameçonnage ( phishing ).
-> Caméra au dessus du clavier de distributeur de billets.
Interception pour écoute ( sniffing, man in the middle )
Récupérer des données effacées ( effacer un fichier ou formatage rapide = détruire l'index des fichiers,
pas les données de fichiers )
Copie discrète de clé USB ou vers clé USB
Enregistreur de frappe ( keylogger ) Logiciel ou matériel
J. Millet
2
Menace de manipulation d'infos ( Défiguration ) = Malveillance, atteinte à la réputation, discrédit
Technique:
Interception pour modification = man in the middle
Intrusion et modification page web
Phases successives d'une intrusion
La technique d'attaque va profiter d'une vulnérabilité du SI. Les phases d'une intrusion sont: ( on les retrouve dans les menus de Kaliv2 ).
1) Phase de reconnaissance
( compréhension de la cible )
- Recherche dans des bases de données publiques ( ripe.net, whois, … )
- Recherche sur les réseaux sociaux
- Recherche google
2) Phase de Scan
- icmp scan = ping sweep , port scan = trouver les ip actives = niv 3 osi
- Port scan = nmap = niv 4 osi
- Snmp dans le réseau = supervision ( info de gestion ) simple network management
protocol = en v1 pas de sécurité ( donner un nom de communauté échangé en clair )
- bannière d'accueil ( connexion à un site web, le site donne des infos pour bien dialoguer avec lui )
- recueil d'infos sur le système d'exploitation ( différence d'implémentation des RFC )
Cette phase permet à l'attaquant de déterminer les composants du SI ( phase initiale de reconnaissance ) puis d'utiliser les
vulnérabilités recensées identifiées avec leurs références CVE.
Elles sont classées par importance de risque = CVSS ( Common Vulnerability Scoring System = https://nvd.nist.gov/cvss.cfm )
CVE ( Common Vulnerabilities and Exposures ): Référence d’une vulnérabilité
( site recensant les vulnérabilités connues par fabricant: http://www.cvedetails.com/top-50-vendor-cvssscore-distribution.php )
CWE ( Common Weakness Enumeration ): Type de vulnérabilité
( site présentant les principaux types: http://www.cvedetails.com/cwe-definitions.php )
3) Phase d'exploitation de vulnérabilité = obtention de l'accès ( Gaining Access ) et prise de contrôle d'une partie de la cible.
Utiliser les vulnérabilités pour s'introduire dans le SI
4) Phase de maintien de accès ( Maintaining Access )
Installation d'outils qui permettront de garder l'accès même si la cible est modifiée ( rootkit )
5) Phase de Post-exploitation ( Covering Tracks )
Cacher son accès et ses modifications au SI pour ne pas être pris.
Dans le cas le plus simple, il n'y a que la phase de reconnaissance pour obtenir une adresse d'accès externe ( site web, courriel,.. ).
Pour s'introduire dans le SI à distance, l'attaquant peut utiliser
Fichier joint de courriel et être humain qui l'ouvre.
Fausse mise à jour de java ou flash player
Vidéos ( Adobe flash Exploit )
Hameçonnage
Logiciels réseaux vulnérables en écoute ( ports ouverts )
Ce type d'intrusion sans accès permet d'introduire des malwares ( Malicious Softwares ) de type
- Virus= s'introduit, agit et se reproduit pour se répandre dans le réseau
Il est polymorphe s'il prend plusieurs "formes" pour changer sa signature et échapper aux antivirus.
- Vers ( worm )
- Cheval de troie ( trojan )
- Back door
- Logiciels espions ( spyware, keylogger, adware )
J. Millet
3
Les solutions
Pour les bâtiments, on mettra en place des alarmes anti-incendie, anti-intrusion. Pour les personnels, on peut mettre en place des
habilitations. Sur le plan technique ( matériels, logiciels, réseau ):
Faire les mises à jour des logiciels.
Interdire l'installation de logiciels à un utilisateur non habilité
Observer les fichiers de log, superviser les échanges
( log d'échecs de connexion, d'utilisation compte root, … )
Suivre les annonces de nouvelles vulnérabilités
et regarder si elles concernent nos logiciels
Aspect technique
Déployer des outils de protection: PareFeu ( Firewall ), Antivirus, IDS (détection
d'intrusion réseau, de DDOS), Sauvegardes régulières, Onduleur , Pot de miel (HoneyPot),
Vidéosurveillance, Authentification des accès, pas d'exécution auto. des périph. externes
Minimiser la surface d'attaque = désactiver les logiciels superflus
( en particulier les services réseaux en écoute inutiles )
Compartimenter ( DMZ, Séparer machines avec accès direct à Internet
et non => Sécurités différentes )
Faire un audit de sécurité par Pentesting, bug bounty
( challenge de sécurité https://bountyfactory.io/fr/bug-bounty-factory.html
https://yeswehack.com/fr/index.html )
Remarques: Vulnérabilités 0day: Pour ces failles 0day qui viennent d'être trouvées, on n'a ni les mises à jour, ni l'information
connue sauf sur sites spécialisés.
Une sécurité performante passe par le fait que l'utilisateur humain doit appliquer les procédures.
Or sécuriser signifie compliquer l'usage en ajoutant des procédures donc faire des efforts…
Travail supplémentaire qui fait que par facilité, certains non conscients des risques essaient de s'en affranchir.
On dit parfois que la sécurité c'est 20% de technique, 80% d'humain.
- Étudiants partant en pause sans verrouiller sa session sur son ordinateur,
- Ne pas mettre de mot de passe robuste car long et difficile à retenir,
- Députés français qui préfèrent leur téléphone américain non sécurisé à un téléphone Thomson sécurisé,
- Opérateur de robots chez Peugeot qui court-circuitent les sécurités pour enlever une étape d'accès
à une zone et aller plus vite,
- Porte blindée des centraux téléphoniques ouvertes pour que les fumeurs sortent et rentrent facilement )
Définir des procédures d'utilisation des matériels
et du réseau à respecter ( ex: Installation de logiciels chez Orange
faite à distance après demande au CRI )
Aspect humain
Responsabiliser: Formation pour informer sur les risques,
Concertation pour définir les procédures,
Sensibilisation des utilisateurs
Sanctionner: Implication des acteurs via charte info
avec sanction si non respect.
J. Millet
4
Pour gérer la sécurité d'un SI, le responsable définit un SMSI ( Système de Management de la Sécurité de l'Information ). Pour
cela il utilise des procédures définies par des normes. Les plus connues sont ISO27001 et ISO27005. Il existe différentes
méthodes pour mettre en oeuvre ces normes. EBIOS définie par l'ANSSI ( Agence Nationnale de Sécurité des SI ) a une place
importante en France.
EBIOS est composée de 5 étapes ( modules ):
- Étude de contexte: Description du SI, des enjeux et contraintes.
- Expression des besoins: Pour chaque élément, définir le niveau de
sécurité à atteindre par critères DICP ( D Disponibilité, I Intégrité
C Confidentialité P preuve = Tracabilité )
On indique si le niveau est Très fort/Fort/Moyen/Faible.
- Étude des menaces: Recencement des scénarios portant atteinte au SI.
- Identification des objectifs de sécurité: MIse en évidence des risques
réels et volonté de les traiter.
- Détermination des exigences de sécurité: Mesures concrètes à mettre
en oeuvre pour traiter les risques.
EBIOS met en place une organisation de la sécurité.
Elle doit s'adapter en permanence à des nouvelles menaces.
Donc elle utilise le cycle PDCA ( roue de Deming )
=> Course permanente.
P: Planifier ( Plan )
D: Déployer ( Do )
C: Contrôler ( Check ) = Vérification des résultats
A: Agir ou Ajuster ou Adapter ou Améliorer ( Act, Adjust )
Exemple: Offre d'emploi
Vous êtes passionné(e) par la Cybersécurité et souhaitez conduire des chantiers en tant que pionnier(ère).
Vous avez des compétences en :
- systèmes, réseau, développement
- chiffrement, hardening, architecture sécurisée, penetration testing, SOC
- ISO27001/5, EBIOS, COBIT, CISSP, CISM, audit, risque, critères communs
- ITIL, CMMI, SCRUM, PRINCE2
III) Notions liées à la configuration de VPN
Sur l'aspect technique, la sécurité repose principalement sur 4 notions:
Contrôle d’accès = Authentification ( pas d'usurpation d'identité = spoofing )
L'authentification pour accéder à un réseau repose sur 3 principes ( que l'on peut combiner ):
- ce que je sais ou sais faire = Identifiant et mot de passe, signature, code d'accès.
- ce que je possède: Clés, Certificats, carte SIM, badge, ticket péage autoroute...
- ce que je suis: Pour un humain: Biométrie ( empreintes digitales, iris de l'oeil, reconnaissance faciale ou vocale )
Pour une machine: adresse MAC de PC,...
L'authentification peut être multifacteurs ( ex: Wifi avec SSID, filtrage @MAC, mot de passe ).
Elle est souvent la 1ère phase d'une procédure de contrôle d'accès avec historique d'utilisation ( log ) = AAA
( Authentication -> Authorization -> Accounting )
Accès au service ( Pas de déni de service qui sature les capacités de traitement du système et le rend indisponible )
Intégrité des informations ( Pas de modification par erreur ou manipulation )
Confidentialité des échanges ( Pas d'écoute possible )
- Soit on cache le document dans un autre = Stéganographie
- Soit on modifie le message pour le rendre incompréhensible sauf destinataire = Chiffrement ( cryptage )
En pratique on va choisir lors de la configuration du VPN les protocoles pour implémenter ces différentes fonctions:
Intégrité: Hachage: MD5, SHA
Confidentialité: Chiffrement symétrique ( DES, 3DES, AES, … ), asymétrique ( RSA,… ), hybride ( PGP, TLS ,… )
Authentification: PSK ( Pre-Shared Key ), certificat.
J. Millet
5
Intégrité des données
Fonction de hachage ( Fonction de condensation ): MD5, SHA -> vérifier la validité et l'intégrité d'un fichier
-> Signature ou empreinte électronique
-> Stockage de l'image de mot de passe
La fonction de hachage( ou fonction de condensation ) crée un nombre qui dépend d'un fichier, une sorte de résumé.
Empreinte , Condensat ou Digest en anglais = Résultat du hachage.
La source peut être de taille variable, le résultat
du hash a une taille fixe.
Une petite modification de la source crée un gros
changement du nombre créé = Il est sensible
à la source.
Exemple avec win32diskimager
Exemple: Téléchargement d'une image ISO
Le hachage peut être utilisé pour cacher des mots de passe qui sont dans un fichier de configuration: Si la fonction n'est
pas réversible, seul le bon mot de passe créera la bonne valeur => On stocke la signature et on doit taper la source qui va
créer cette signature
Collision: Une collision signifie que 2 sources différentes créent le même résultat de hachage.
MD5 qui servait de signature électronique et pour masquer des mots de passe ne devrait plus utilisé.
( nombreux sites sur le web pour décrypter un hash MD5 )
Il sert encore pour vérifier la validité et l'intégrité d'un gros fichier téléchargé.
Salage d'une fonction de hachage ( Salting ):
Au lieu de faire le hachage d'un mot de passe qui est crackable avec des tables de hachage, on fait le hachage
d'une chaine pseudo-aléatoire concaténée avec le mot de passe.
Exemple: La chaine pseudoaléatoire de salage est le résultat du hachage du login avec une autre fonction de hachage
MD5 donne une empreinte de 128 bits = 32 codes hexa
SHA-1
160 bits = 40 codes hexa ( RFC3174 incluant l'implémentation en C )
SHA2
256 bits pour SHA-256 = 64 codes hexa, 224 bits pour SHA-224, 512 bits pour SHA-512
Exemple: Commande linux md5sum fichier
J. Millet
ou md5sum <<< "chaine caractères"
6
Chiffrement ( cryptage )
I) Principe
On modifie les données avec un algorithme et une clé
Données en clair
Algorithme
Données chiffrées
Clé de chiffrement
La clé de chiffrement est un nombre binaire dont la longueur change selon l'algorithme. Dans les techniques modernes, elle est
obtenue à partir de nombres premiers de grande taille ( nb divisible seulement par 1 et lui-même ). Voir en annexe la présentation de RSA.
Exercice: ( Une table ascii est placée en fin de document )
Data en clair = "salut!" Algorithme = OU exclusif
Clé de chiffrement = "OK"
Q1) Indiquer en hexa puis binaire les 16 bits de la clé: ___________ = __________________________________
Q2) Indiquer les codes hexa du message puis sur la ligne du dessous les valeurs binaires
s
a
l
u
t
!
Q3) Recopier la clé de cryptage dans la ligne en dessous, en déduire le message après XOR en binaire puis en hexa
Q4) En déduire le message chiffré en ASCII
Remarque: Si on avait des algorithmes aussi simples, avec un message texte dans un langue, pour trouver la clé on ferait des
statistiques ( en français 14,715% de e, 7,948 % de s, 7,636 % de a, … )
II) Chiffrement symétrique: clé secrète = clé partagée ( secret key encryption )
Clé de chiffrement et déchiffrement sont les mêmes.
Elle doit rester secrète, si elle est interceptée on peut déchiffrer les échanges
Message chiffré Bob -> Alice
( 1 seul sens de communication sur ce schéma )
ALICE
BOB
Alice possède la même clé
secrète Kpartagée que Bob
Alice reçoit le message de Bob
chiffré avec leur clé partagée.
Elle le déchiffre avec cette clé
partagée.
Bob possède la même clé
secrète Kpartagée qu'Alice
Pour envoyer un message chiffré à Alice,
Bob chiffre son message avec la clé
secrète qu'ils partagent.
Message de Bob
pour Alice chiffré
grâce à clé secrète partagée des 2
Or il faut la même clé des 2 côtés, donc
Soit on garde la même mais plus il y a d'informations, plus on a des éléments pour décrypter.
Soit on la change pour chaque communication mais il faut alors l'échanger sans être intercepté.
J. Millet
7
En pratique, on utilise le chiffrement symétrique car il consomme moins de ressources. Mais l'échange de clé se fera après un
chiffrement asymétrique que l'on va voir ensuite: On échange la clé du chiffrement symétrique en la chiffrant à l'émission par une
méthode asymétrique.
Exemple:
A3 ou A5 en GSM ( clé dans carte SIM côté abonné et HLR/MME côté réseau ) ( chiffrement par flot )
DES ou 3DES ( chiffrement par bloc )
AES ( chiffrement par bloc )
RC4/RC5 ( chiffrement par flot )
Voir https://en.wikipedia.org/wiki/Symmetric-key_algorithm
Remarque: WIFI
Dans les Access Point wifi pour configurer la sécurité, on parle de
- WEP basé sur RC4 avec un vecteur d'initialisation que l'on peut trouver.
- TKIP ( Temporal Key Integrity Protocol = WPA = WEP2 ) est encore basé sur RC4
( mais comme son nom l'indique le vecteur est temporaire, changé à chaque paquet )
- WPA2 utilise CCMP ( Counter-Mode/CBC-Mac Protocol ) qui est basé sur AES
Ex: Avec "TKIP+AES" comme sécurité de wifi, cela signifie que la Box essaie AES ( WPA2 ) et que si le
périphérique ne sait pas faire, elle se replie sur TKIP ( WPA ).
III) Chiffrement asymétrique ou à clé publique ( public key encryption )
Clé privée pour déchiffrement fait par nous ( la clé publique ne peut pas déchiffrer le chiffrement qu'elle a fait => interception inutile )
Clé publique pour chiffrement fait par l'autre = publique, créé avec la clé privée, envoyée en ligne à l'émetteur.
Message chiffré Bob -> Alice
( 1 seul sens de communication sur ce schéma )
ALICE
BOB
Alice crée une clé privée Kpriv_A
Alice en déduit ensuite par
calcul une clé publique Kpub_A
Alice garde sa clé privée
Alice envoie sa clé publique
à Bob pour qu'il chiffre avec la
clé publique Kpub_A d'Alice
les messages vers Alice
Clé publique d'Alice
Kpub_A
Alice reçoit le message de Bob
chiffré avec la clé publique d'Alice.
Elle le déchiffre avec sa clé privée.
J. Millet
Bob reçoit la clé publique d'Alice
Pour envoyer un message chiffré à Alice,
Bob chiffre son message avec la clé
publique d'Alice
Message de Bob
pour Alice chiffré
grâce à clé publique d'Alice
8
La confidentialité est obtenue car pour les algorithmes de chiffrement utilisés:
- Seule la clé privée qui a généré la clé publique peut déchiffrer le message chiffré avec la clé publique.
- La clé privée a permis de construire la clé publique,
en revanche à partir de la clé publique il est impossible de trouver la clé privée qui l'a engendrée ( logarithme discret ).
On parle d'OWF = One Way Function ( fonction qui associe facilement entrée x -> sortie y, mais pour laquelle il est dur de trouver x à partir de y )
Exemple:
RSA ( Rivest Shamir Adleman )
DSA
Voir - en annexe une illustration de RSA
- https://en.wikipedia.org/wiki/Public-key_cryptography
Le chiffrement asymétrique peut être comparé à l'utilisation d'un cadenas: Je veux envoyer un message chiffré à Alice.
Alice m'envoie sa clé publique = Elle distribue son cadenas ouvert qui est lié à sa clé privée qu'elle garde.
Je chiffre MON message avec SA clé publique = Fermer une boite contenant MON message avec SON cadenas.
Alice déchiffre avec sa clé privée = Elle ouvre son cadenas avec sa clé.
En résumé: Étape de chiffrement/déchiffrement asymétrique = clé publique du destinataire en émission,
clé privée du destinataire en réception:
Message
en clair
émis par Bob
L'émetteur chiffre son
message avec la clé
publique du récepteur
Message
chiffré
Le récepteur déchiffre le
message chiffré par sa clé
publique avec sa clé privée
Message
en clair
reçu par Alice
IV) Signature électronique ( RFC 1991 )
La signature électronique est proche du chiffrement asymétrique ( 2 clés privée et publique ) mais différente:
On a un message en clair à envoyer avec signature électronique
- L'émetteur dispose d'une clé privée.
- L'émetteur crée une clé publique à partir de la clé privée qui lui est associée.
- L'émetteur fait le hachage du message à signer.
- L'émetteur chiffre l'empreinte du hachage avec sa clé privée = Signature électronique du message.
- L'émetteur envoie message + signature ( empreinte chiffrée par clé privée ) + sa clé publique associée à sa clé privée
- Le récepteur ayant reçu les 3 déchiffre la signature avec la clé publique de l'émetteur reçue = Empreinte d'émission.
- Le récepteur fait le hachage du message reçu.
- Le récepteur compare l'empreinte qu'il a calculée et l'empreinte faite à l'émission reçue qu'il a déchiffré.
La signature change selon le message qui est signé.
En résumé: Étape de chiffrement/déchiffrement asymétrique de l'empreinte de hachage = clé privée de l'émetteur en émission,
clé publique de l'émetteur en réception:
Empreinte
du hachage
du message de Bob
L'émetteur chiffre l'empreinte
du hachage de son message
avec sa clé privée
Empreinte
chiffrée
Le récepteur déchiffre
l'empreinte avec la clé
publique de l'émetteur
Empreinte
déchiffrée
reçue par Alice
Dans ce cas d’échanges, il n'y a pas de confidentialité ( clé publique échangée peut être interceptée ), d'où le message émis en
clair. Toute personne en réception avec la clé publique peut vérifier la signature.
Bob est le seul a pouvoir créer sa signature ( Émetteur de signature utilise sa clé privé d’émetteur ).
Tout le monde peut vérifier que c’est bien sa signature ( le récepteur utilise la clé publique de l’émetteur ) => Pas de confidentialité.
( Ajouter de la confidentialité = on utilise le système de chiffrement décrit avant = l’émetteur de message chiffré utilise la clé publique du récepteur ).
J. Millet
9
Création/ émission du document signé par les clés de l'émetteur
Les algorithmes utilisés sont commutatifs ( voir fin de Diffie Hellman ensuite ).
Si E sert au chiffrement ( Encryption ) avec clé privée et D au déchiffrement avec clé publique ( Decryption ), cela signifie
mathématiquement
D( E[Msg] )
= E( D[Msg] ) = M sans que D = E-1 !
chiffrement
signature
déchiffrement
électronique
V) Chiffrement hybride
Le chiffrement hybride utilise asymétrique et symétrique:
Le chiffrement symétrique a l'avantage d'être simple ( moins de calculs qu'en asymétrique ) et efficace.
Si on a besoin de performance, on utilisera un chiffrement symétrique.
Le problème en symétrique est de partager la clé secrète.
=> Pour cela on utilise un chiffrement asymétrique en début de communication pour échanger la clé secrète.
Exemple:
PGP ( Pretty Good Privacy )
GPG ( Gnu Privacy Guard = Équivalent en logiciel libre de PGP )
TLS ( Transport Layer Security ) ( ne pas confondre avec TTLS qui est une méthode d'authentification EAP
encapsulant du TLS = Tunneled TLS )
DH ( Diffie Hellman )
Illustration pour TLS ( qui améliore SSL )
-
-
Le navigateur web demande une connexion sécurisée TLS ( message "ClientHello" )
Le serveur envoie son certificat qui contient sa clé publique, ses infos et sa signature numérique
Le navigateur web vérifie la signature avec la clé publique et les certificats qu'il contient par défaut.
( S'il trouve le certificat, il envoie une demande OCSP à l'autorité émettrice pour vérifier sa non révocation )
Le navigateur crée une clé de chiffrement symétrique = Clé de session
o Sans authentification demandée par le serveur, il chiffre sa clé de session avec la clé publique du serveur
contenue dans le certificat.
o Avec authentification demandée par le serveur, le client envoie son certificat qui contient sa clé publique et
signe son message avec sa clé privée. Il chiffre sa clé de session avec la clé publique du serveur venant du
certificat.
Le serveur déchiffre la clé de session
o Sans authentification avec sa clé privée.
o Avec authentification avec la clé publique du client puis avec sa clé privée.
=> La connexion TLS est établie = Chiffrement symétrique avec la clé de session
J. Millet
10
Dans le cas des algorithmes hybrides,
- on échange la clé secrète du chiffrement symétrique à venir avec le principe asymétrique de clé privée et clé publique.
- on fera un chiffrement symétrique car c'est performant et moins consommateur de ressources
Pour les VPN, on utilise souvent l'algorithme DH ( Diffie Hellman ) pour la première phase d'échanges d'information avec clé
privée/publique pour créer un même nombre = clé secrète du chiffrement symétrique utilisé ensuite.
DH Diffie-Hellman
Principe
Exemple
Alice et Bob ont en commun 2 nombres:
p nombre premier p
g = nombre entier positif tel que g < p
Alice choisit un nombre a
p et g definis par algorithme,
connus de tous
p = 23
g=5
Bob choisit un nombre b
( qu'elle garde => seule à connaître a )
( qu'il garde )
Elle calcule α = ga mod p
Elle envoie à Bob α
Il calcule β = gb mod p
Il envoie à Alice β
α
Alice reçoit β de Bob
Alice calcule la clé partagée
K = βa mod p = ( gb )a mod p
β
Bob reçoit α d’Alice
Bob calcule la clé partagée
K = α b mod p = ( ga )b mod p
Alice choisit a=6,
Alice envoie α = 56 mod 23 = 8
Bob choisit b=15
Bob envoie β = 515 mod 23 = 19
Alice calcule K=196 mod 23 = 2
Bob calcule K=815 mod 23 = 2
=> Les 2 côtés ont à la fin une même clé secrète K utilisable en chiffrement symétrique sans l'avoir échangée, ni les nombres a et
b à l'origine du calcul.
=> Une personne qui écoute aura les valeurs p,g et α, β interceptées. Mais il lui manque a ou b pour trouver K.
( comme les nombres sont grands, il est quasi impossible de trouver a avec α = ga mod p ou b avec β = gb mod p )
Rem: Souvent on ajoute des authentifications pour éviter une attaque Man in the middle.
Groupe DH = choisi au début, ce groupe correspond à la complexité = Lg nombres p et g en bits ( Rem: ce n'est pas le nombre 1er g )
Il faut la même valeur des 2 côtés, donc aux 2 extrémités d'une liaison.
Dépassés: groupe DH 1 = 768 bits, DH2 = 1024 bits, DH 5 = 1536 bits
Groupe DH 14 = 2048 bits
Groupe DH 15 = 3072 bits
Groupe DH 16 = 4096 bits
Groupe DH 19 = 256 bits elliptic curve DH ( ECDH )
Groupe DH 20 = 384 bits ECDH
Groupe DH 24 = 2048 bits DH/DSA
Sur les appareils actuels, on doit pouvoir utiliser le groupe DH19.
source: http://cdn.rohde-schwarz.com/pws/dl_downloads/dl_common_library/dl_news_from_rs/197/N197_chiffrages_telephones_mobiles_f.pdf
http://www.bibmath.net/crypto/index.php?action=affiche&quoi=moderne/difhel
https://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange
https://www.youtube.com/watch?v=YEBfamv-_do
Exemple d'utilisation de ces notions: Vérification de signature et d'intégrité de l'ISO de Kali ( signature avec GPG, hachage avec SHA1 )
Aller à http://cdimage.kali.org/kali-2016.1/
- Charger le fichier ISO
- Charger le fichier empreinte SHA1SUMS
- Charger la clé publique GPG SHA1SUMS. gpg
Vérifier la signature: gpg --verify SHA1SUMS.gpg SHA1SUMS
=> On doit voir "OK"
Vérifier l'intégrité du fichier ISO reçu avec SHA1SUM ( pas d'erreur de chargement, pas de modification de la source )
grep nom_fichier.iso SHA1SUMS | sha1sum –c => On doit voir "OK"
Exemple d'utilisation de ces notions: Chiffrer et signer ses courriels: Thunderbird et Enigmail
http://korben.info/comment-chiffrer-ses-emails-thunderbird-gpg.html
J. Millet
11
Récapitulatif du chiffrement asymétrique
On dispose de 2 algorithmes:
EN chiffrement
DE Déchiffrement
On dispose de 2 clés liées mathématiquement:
Clé 1 utilisée avec un des 2 algorithmes
Clé 2 qui a été créée avec la clé 1 ce qui lui donne des propriétés mathématiques, utilisée avec l'autre algorithme.
Les algorithmes utilisés pour chiffrement/déchiffrement sont des fonctions à sens unique ( one way functions ) à trappe:
Message
en clair
=
Message
déchiffré
EN = Facile de passer de x à f(x)
x
f(x)
Message
chiffré
DE = Difficile de passer de f(x) à x
sauf dans un cas = La trappe
qui signifie que l'on a des infos supplémentaires
( 2ème clé, la 1ère étant utilisée dans l'autre sens )
Les algorithmes et les 2 clés sont tels que:
- Si le chiffrement a utilisé une clé, le déchiffrement ne peut se faire facilement qu'avec l'autre clé ( et pas avec la même ).
- Les opérations ont la propriété de commutativité =
On peut chiffrer avec la clé 1 puis déchiffrer avec la clé 2.
OU On peut chiffrer avec la clé 2 puis déchiffrer avec la clé 1.
Une des 2 clés sera gardée confidentielle = Clé privée.
L'autre sera distribuée, tout le monde peut la connaître = Clé publique.
Application au chiffrement:
clé publique du destinataire chiffre
coté source
clé privée du destinataire déchiffre
côté destinataire
La confidentialité vient du fait que le déchiffrement ne peut se faire qu'avec l'autre clé, pas la même.
La confidentialité vient du fait que le récepteur est le seul à posséder la seconde clé.
Clé 1 = publique du destinataire que l'on a envoyée à la source / Clé 2 = privée du destinataire
Application à la signature de message ( chiffrement de l'empreinte du message ):
clé privée de la source chiffre
coté source
clé publique de la source déchiffre
côté destinataire
Il n'y a pas de confidentialité dans ce cas puisque la clé de déchiffrement est publique.
( Si on veut de la confidentialité, on fera le chiffrement des informations de la signature donc cette fois avec la clé publique du destinataire )
Clé 1 = privée de la source / Clé 2 = publique de la source
Plus d'infos: http://exo7.emath.fr/cours/ch_crypto.pdf
J. Millet
12
Authentification
Protocole PAP ( Password Authentication Protocol )
Le serveur demande au client de donner Login et Mot de passe.
Le client répond: Ils sont transmis EN CLAIR.
Cela suppose donc que l'on a déjà fait un autre chiffrement comme TTLS sur Eduroam.
Le serveur vérifie dans sa base s'il a le compte, il accepte ou refuse.
CHAP (Challenge Handshake Authentification Protocol ) = RFC1994
Le serveur "défie" le client de lui donner Login et Mot de passe = Challenge.
(Le serveur demande l'authentification en indiquant l'algorithme d'authentification puis il envoie une requête avec une valeur d'au plus 255 octets)
Le client répond avec le hash MD5 du mot passe que l'utilisateur a tapé.
(Le Client connait l'algo de hachage selon l'algo d'authentification indiqué, il calcule et envoie l'empreinte de la valeur et de son mot de passe )
Le serveur vérifie dans sa base s'il a le compte, il calcule l'empreinte de son côté, il accepte ou refuse.
Exemple: Extrait de capture wireshark d'une connexion ADSL PPPoE ( msCHAP = version Microsoft de CHAP )
Authentification HTTP ( Digest Access Authentication ): RFC2617 ( Serveur HTTP, SIP,… )
Méthode "Basic" de RFC2617 ( pas de qod quality of protection, protection du nonce par compteur d'incrémentation, nonce côté client,… )
- Le serveur envoie une requête d'authentification avec les valeurs realm ( identifiant de la zone gérée par le serveur = royaume )
une valeur jetable utilisée une fois (nonce)
l'algorithme de hachage à utiliser, MD5 par exemple
- Le client pour ne pas utiliser son mot de passe directement calcule HA1 = MD5(username:realm:password)
( vérification pour compte 100, mdp 1234 et realm "asterisk" sous linux: echo -n "100:asterisk:1234" | md5sum )
Puis calcule HA2 HA2=MD5(method:digestURI) method = REGISTER et URI = "sip:sip.exemple.com" pour SIP
Puis calcule la réponse qu'il envoie: Réponse=MD5(HA1:nonce:HA2)
802.1X ( EAP et serveur radius )
Le client se connecte à une machine du réseau qui ne fait pas l'authentification. Cette machine va envoyer à une autre machine, le
serveur d'authentification une requête EAP ( Extensible Authentication Protocol ) souvent avec le protocole RADIUS ( Remote
Authentication Dial-in User Service ).
Cette méthode est utilisée sur le wifi ( Les comptes ne sont pas dans l'Access Point. Exemple Eduroam ) ou sur des switchs.
EAPOL = EAP over LAN
Il existe plusieurs versions d'EAP: EAP-TLS, EAP-TTLS, PEAP, EAP-PSK, EAP-SIM,…
Plus d'infos: http://www.reseaucerta.org/sites/default/files/Authentification-802.1x-V1.0.pdf
J. Millet
13
Certificats électronique
Le certificat est fait - d'une clé publique du propriétaire
- d'informations d'identification du propriétaire ( nom, localisation,...) qui sont chiffrées.
- d'informations sur la source du certificat ( autorité émettrice, date de validité,… )
Les plus utilisés sont:
+ certificat X509 ( un seul identifiant, une seule autorité de certification )
+ certificat OpenPGP ( peut contenir plusieurs identifiants, peut être signés par plusieurs certificats OpenPGP => Toile de confiance ).
Le certificat est créé par un tiers de confiance = Autorité de certification ( CA Certificate Authority ):
Organismes qui diffusent leurs propres clés publiques = Clés publiques racines ou root.
( Cela évite le risque de la falsification de clé publique dans le cas du chiffrement asymétrique par clé publique ).
Exemple: Les navigateurs web incluent nativement les clés publiques des autorités de certification
Autorités de Certification incluses dans Firefox https://mozillacaprogram.secure.force.com/CA/IncludedCACertificateReport
Exemple: Sous windows, taper certmgr.msc > Certif non autorisés => On voit les usurpations de certificats ( fraudulent )
Si on veut créer un certificat,
=> on envoie à une autorité de certification
- notre clé publique
- notre identité ( nom, adresse, raison sociale, téléphone, adresse courriel,... ).
=> L'autorité de certification vérifie l'identité du demandeur par des moyens conventionnels,
puis elle place notre clé publique et notre l'identité dans un conteneur qu'elle chiffre ( signe ) avec sa clé privée.
Le résultat est un fichier rendu au demandeur.
Voir https://letsencrypt.org/ utilisé pour freeboxos ( gratuit )
Répudiation: Fin de validité du certificat.
Exemple: Création de certificat autosigné sous linux http://www.linux-france.org/prj/edu/archinet/systeme/ch24s03.html
Visualisation d'un certificat: Dans Firefox, aller sur la page HTTPS, clic sur le certificat, >, Plus d'infos, Afficher le certif.
Exemples d'authentification sur Freebox:
Réseau wifi personnel sur Freebox = Authentification WPA2-PSK
Réseau wifi via Freebox d'abonnés dégroupés: SSID freewifi Authentification 802.1x
Réseau wifi via Freebox d'abonnés Freemobile: SSID freewifi-secure Authentification 802.1x EAP-SIM
Accès à la freebox depuis Internet avec sécurité et nom nom.freeboxos.fr: Authentification certificat TLS ( Let's Encrypt )
Exemple: Authentification SSH par clés ( Passwordless SSH access ):
Si on a peur de la faiblesse d'authentification par mot de passe, on peut utiliser l'authentification par clés.
1) Générer la paire de clés
Sous windows avec putty
Sous Linux
Télécharger puttygen, exécuter ce programme,
Indiquer le type d'algorithme et la longueur de clé ( RSA, DSA )
Clic sur Generate en bougeant la souris => Valeur aléatoire
Mettre un mot de passe pour protéger la clé privée
Il crée 2 fichiers pour clés privée et publique
ssh-keygen –t RSA -b 4096 –C mon_nom
( -t Algo -b longueur de la clé en bits, -C commentaire qui sera dans le fichier de la clé
)
Mettre un mot de passe pour protéger la clé privée
Il crée 2 fichiers pour clés privée et publique
2) Utiliser les clés
Sur le client SSH, on indique dans le logiciel
- une authentification SSH par clé
- l'emplacement de notre clé privée
Sur le serveur SSH, on a envoyé la clé publique associée et configuré le serveur ( sshd sous linux ).
PC avec
- Logiciel Client SSH
- notre Clé privée
Serveur avec
- Logiciel serveur SSH
- notre Clé publique
Ex: Serveur sur Raspberry Pi ( Passwordless SSH access )
https://www.raspberrypi.org/documentation/remote-access/ssh/passwordless.md
J. Millet
14
Choix d'un type de VPN
PPTP ( Point To Point Tunneling Protocol ) = RFC2637
On va encapsuler des paquets PPP dans les paquets IP ( Tunnel PPP )
Ce protocole a été conçu par Microsoft => Un client est installé par défaut sur les OS microsoft.
Il y a des paquets IP
* d'établissement/maintenance du VPN PPTP = port TCP 1723 = > protocol = 6 dans paquets IP pour indiquer TCP.
Entête protocole
IP
TCP
Fin de trame
avec @IP Publique
liaison utilisé
Message PPTP de
protocole
(PPP, Ethernet,…)
Port TCP 1723
contrôle du VPN
liaison utilisé
avec protocol=06
=> Contenu TCP
=> Contenu Ctrl PPTP
(PPP, Ethernet,…)
* de données du VPN = GRE indiqué par protocol = 47 = 0x2F dans les paquets IP
GRE indique le contenu encapsulé ( Champ Protocol Type qui a la valeur Ethertype du contenu = 0x880B pour PPTP )
PPP
(Point To
Point
Protocol)
Entête protocole
liaison utilisé
(PPP, Ethernet,…)
IP
GRE
avec @IP Publique
(Generic
Routing
Encapsulation)
avec protocol=47 = 0x2F
=> Contenu data VPN
Datagramme
IP
Chiffré
avec @IP privée
Contenu encapsulé
du lien point à point
Fin de trame
protocole
liaison utilisé
= Tunnel entre client/serveur VPN
(PPP, Ethernet,…)
Exemple: http://fr.slideshare.net/righthand0521/point-topoint-tunneling-protocol
L2TP sur IPsec
IPSEC
IPsec établit un tunnel protégé entre 2 machines = 2 @IP publiques.
C’est un protocole de niveau 3 du modèle OSI
- sans configuration réseau automatique entre 2 extrémités réseau public ( à coupler avec l2TP pour cela )
+ avec confidentialité = chiffrement symétrique avec échange de clé automatique et protégé:
IKE ( RFC 2408 Internet Key Exchange ) qui utilise
ISAKMP ( RFC2408 Internet Security Association and Key Management )
OAKLEY ( RFC 2412 ) = DH ( Diffie-Hellman ) et de l'authentification.
+ avec vérification d'intégrité des données par hachage
+ avec authentification initiale par phrase secrète partagée ( PSK ) ou certificat
+ avec vérification de l'émetteur
AH ( Authentication Header ) = Vérifie émetteur, intégrité mais PAS de chiffrement
ESP ( Encapsulating Security Payload ) = Vérifie émetteur, intégrité ET chiffrement
IPSec propose 2 modes de fonctionnement:
Mode Transport = entre 2 machines. ( Host toHost ): C'est un lien sécurisé, pas du VPN ( 1 adressage IP )
Seul le contenu du paquet IP est modifié par IPsec,
L'entête n'est pas modifiée ce qui permet le routage
Mode Tunnel = entre 2 réseaux de machines ( lien entre 2 routeurs, Network to Network )
Tout le paquet IP à transmettre est encapsulé et traité ( entête et contenu )
=> Mode pour VPN avec 2 adressages IP ( hors tunnel public, dans tunnel privé qui est encapsulé )
Une fois les échanges de configuration réalisés avec succès, les 2 extrémités ont établi un SA ( Security Association =
Lien sécurisé entre 2 machines avec description du fonctionnement )
Utilisation de AH/ESP et mode Transport/Tunnel
IPsec utilise soit AH, soit ESP, soit les 2 pour vérifier l'intégrité des données. En pratique on utilise plutôt ESP.
AH = Entête, valeur Protocol dans le champ IP: 51
ESP = Entête et enqueue, valeur Protocol dans le champ IP: Protocol 50
Protocole
Mode Transport
Mode Tunnel
(ajout AH ou ESP au paquet original, data chiffrée )
(paquet original [ entête et data ] chiffré, le tout est encapsulé)
AH
ESP
AH+ESP
J. Millet
15
NAT-T ( NAT Traversal ) = UDP Encapsulation
IPsec intègre des vérifications par hachage via les protocoles AH ou ESP ou les 2. Mais quand on utilise la translation
d'adresse, l'adresse IP source est remplacée ce qui fait que AH ou ESP détecte un paquet modifié et le supprime.
On a aussi parfois une entête chiffrée qui font que la NAT stocke les valeurs chiffrées et pas les vraies valeurs.
NAT-T ajoute une entête UDP non chiffrée qui encapsule l'entête ESP d'IPsec = Port UDP 4500.
Protocoles d'IPsec
( à choisir et configurer avant
connexion en cohérence
aux 2 extrémités du tunnel )
Déroulement d'IKE au début d'IPsec ( Port UDP 500 )
Phase 1 = Échange de clés et authentification pour établir un ISAKMP SA
Négociation de l'association de sécurité
utilisée pour cet échange de clé = protocoles
utilisés dans cette phase IKE
Échange de clé secrète souvent avec
OAKLEY =
DH Diffie-Hellman + Authentification
Authentification mutuelle des 2 entités
( les messages sont désormais chiffrés )
Phase 2 = Négociation des associations de sécurité SA utilisées pour la communication qui suit ( après IKE )
( Échanges protégés par l'ISAKMP SA établi en phase 1, ajout d'un clé "key material" )
Dans les paquets IPsec, on va encapsuler des trames L2TP.
L2TP L2TP était fait pour établir un tunnel regroupant plusieurs connexions point à point PPP.
Les 2 extrémités d'un tunnel L2TP sont le client ( LAC ) et le serveur ( LNS )
L2TP est un protocole de niveau 2 du modèle OSI
+ avec authentification PPP ( souvent CHAP = Nom d'utilisateur, mot de passe )
+ avec configuration réseau automatique de PPP => On aura une adresse IP privée du LAN.
1) Il complète IPsec qui ne donnait pas la fonction de configuration automatique
2) La liaison point à point dans L2TP avec @IP privée en l'encapsulation dans IPsec avec @IP publique font que
le client est vu comme une machine à part entière du réseau du serveur.
Encapsulation L2TP dans IPsec
Sans NAT-T
Avec NAT-T
J. Millet
16
OpenVPN
Solution propriétaire => Il faut installer un client sur chaque terminal qui veut se connecter
( sous windows, démarrer le client en administrateur ! )
Mais il n'utilise qu'un port UDP 1194.
OpenVPN utilise une authentification mutuelle. Il y aura un serveur où créer un certificat et un client où l'installer.
https://openvpn.net/index.php/open-source/documentation/howto.html
1) Exemple serveur sur NAS Synology: (https://www.synology.com/en-uk/knowledgebase/tutorials/459 )
Main Menu > VPN server, cliquer sur OpenVPN
- Dans Privilege, autoriser les utilisateurs du VPN parmi les comptes créés.
- Cliquer sur Autoriser aux clients l'accès au serveur LAN => Il faut du routage et on a accès au LAN
- Cliquer sur Appliquer et revenir dans cette page ( sinon le bouton suivant n'est pas encore actif ).
- Cliquer sur "Export Configuration". Récupérer le fichier zip que l'on modifiera et mettra sur le client.
=> Le zip contient 3 Fichiers: ca.crt, openvpn.ovpn,
README.txt.
2) Configuration de la BOX du réseau du NAS: Rediriger le port UDP 1194 si on laisse le réglage par défaut
3) Configuration client ( https://www.synology.com/en-uk/knowledgebase/tutorials/592 )
- Charger et installer le client OPENVPN (http://openvpn.net/index.php/open-source/downloads.html )
=> Le logiciel installe une nouvelle carte réseau sur le PC = "Tap-windows Adapter"
( parfois il faut l'activer manuellement dans le centre réseau et partage windows )
- Ouvrir le ZIP récupéré sur le serveur avec "Export Configuration"
=> Ouvrir le fichier openvpn.ovpn avec un éditeur texte = Profil OpenVPN
=> Remplacer YOUR_SERVER_IP par l'adresse IP publique de notre BOX
- Mettre les fichiers ca.crt et openvpn.ovpn modifié dans le sous-répertoire "config" du répertoire OpenVPN
( typiquement c:\Program Files\OpenVPN\config )
- Lancer le logiciel client que l'on a installé, mettre identifiant et mot de passe
ATTENTION: Sous windows, démarrer le client en administrateur sinon on n'a pas de routage ( voir les logs = erreur écriture )
J. Millet
17
V) Exemple: Lien sécurisé IPsec entre routeurs cisco
Dans cette configuration de VPN Site-To-Site,
- IKE Phase 1 utilise le protocole ISAKMP avec
Authentification par phrase secrète ( key 123 définie plus bas ) avec @ip de l'autre entité.
Hachage pour intégrité des données = sha
Chiffrement symétrique ( ENCRyption ) = 3des
Création de la clé secrète partagée par DH avec groupe DH 2
Durée de vie de la clé avant renégociation: 86400 secondes
- IKE phase 2 définit
la transformation des données ( ipsec transform-set ) = Chiffrement et Hachage pour ESP dans IPsec
quel trafic est concerné ( Access List ACL étendue => N° >99 )
la configuration du VPN ( l'autre extrémité du tunnel ( peer ) avec qui on va établir le lien, l'ACL, la transformation ).
- Enfin on affecte la configuration ( crypto map ) à une interface du routeur.
Voir aussi http://www.firewall.cx/general-topics-reviews/cisco-cracker/54-cisco-knowledgebase/cisco-routers/867-cisco-router-site-to-site-ipsec-vpn.html
J. Millet
18
Exercice:
Cisco propose 2 types de VPN:
Site-to-site entre 2 routeurs pour relier 2 sites.
Remote Access = accès distant d'un client vers le routeur de l'entreprise qui fait serveur VPN
- Démarrer packet tracer ( au moins version 6.0 )
- Créer le schéma pour faire un VPN Site à Site avec
2 PC ( Generic dans End Devices )
2 routeurs 2911 ( dans Routers )
1 Analyseur réseau ( Sniffer dans End Devices )
- Ouvrir la CLI et renommer le premier routeur avec le nom R1:
conf t > (config)# hostname R1
- Ouvrir la CLI et renommer le second routeur avec le nom R2:
conf t > (config)# hostname R2
- Sur le premier routeur:
* Taper #show version
*Dans le tableau avant la dernière ligne, vérifier que la sécurité n'est pas activée:
=> Ligne sécurité, colonne Type => None
* Activer la sécurité
(config)# license boot module c2900 technology-package securityk9
(config)# end
# copy running-config startup-config
# reload
* Taper #show version
=> Ligne sécurité, colonne Type => Evaluation
Cela permet d'avoir des commandes en plus.
- Recommencer sur le second routeur R2.
On va configurer le routeur R1
- Créer le serveur DHCP pour le réseau LAN
(config)#ip dhcp pool LAN
(dhcp-config)#network 192.168.1.0 255.255.255.0
(dhcp-config)#default-router 192.168.1.1
- Exclure l'adresse IP du routeur des baux du DHCP
(config)#ip dhcp excluded-address 192.168.1.1
- Configurer l'adresse IP LAN du routeur
(config)#int gi 0/1
(config-subif)#ip address 192.168.1.1 255.255.255.0
(config-subif)#no sh
- Configurer l'adresse IP WAN du routeur
(config)#int gi 0/0
(config-subif)#ip address 194.57.85.1 255.255.255.0
(config-subif)#no sh
J. Millet
19
- Sur le second routeur on crée l'autre extrémité du VPN IPsec:
- Créer le serveur DHCP pour le réseau LAN
(config)#ip dhcp pool LAN
(dhcp-config)#network 10.0.0.0 255.0.0.0
(dhcp-config)#default-router 10.0.0.1
- Exclure l'adresse IP du routeur des baux du DHCP
(config)#ip dhcp excluded-address 10.0.0.1
- Configurer l'adresse IP LAN du routeur
(config)#int gi 0/1
(config-subif)#ip address 10.0.0.1 255.0.0.0
(config-subif)#no sh
- Configurer l'adresse IP WAN du routeur
(config)#int gi 0/0
(config-subif)#ip address 194.57.85.2 255.255.255.0
(config-subif)#no sh
- Configurer le routage
- Créer une route statique sur le routeur 1 vers 2. ( ip route réseau_destination @IP_du_routeur_suivant )
(config)#ip route 0.0.0.0 255.255.255.0 194.57.85.2
- Créer une route statique sur le routeur 2 vers 1
(config)#ip route 0.0.0.0 255.255.255.0 194.57.85.1
- Mettre les PC en dhcp, attendre qu'ils aient une @IP ( clic sur le PC, choisir command prompt, ipconfig ).
- Émettre un ping entre les 2 PC
=> Vérifier que cela passe
=> Vérifier avec l'analyseur réseau que l'on voit les paquets ICMP ( clic sur analyseur réseau, onglet GUI, lignes ICMP )
On configure cette fois le VPN IPsec et on y inclut tout le trafic ip et icmp par l'ACL étendue.:
VPN IPsec sur le routeur R1
- Activer l'utilisation de la cryptographie ( pour IOS sans option cryptographique )
R1(config)#crypto isakmp enable
- Créer la configuration pour IKE phase 1 ( algo symétrique à utiliser en com, algo de vérification d'intégrité ,
groupe DH, lot de passe, durée de vie de clé )
R1(config)#crypto isakmp policy 1
R1(config-isakmp)#authentication pre-share
R1(config-isakmp)#encryption 3des
R1(config-isakmp)#hash md5
R1(config-isakmp)#group ?
En déduire la valeur la plus grande possible. Retaper la commande en mettant cette valeur à la place du x suivant
R1(config-isakmp)#group x
R1(config-isakmp)#lifetime 3600
R1(config-isakmp)#exit
Définir le mot en indiquant l'@IP de l'autre côté du tunnel VPN
R1(config)#crypto isakmp key rt1234 address 194.57.85.2
Indiquer les algorithmes de chiffrement de com et de vérification d'intégrité
R1(config)#crypto ipsec transform-set maConfigCom esp-3des esp-md5-hmac
- Créer une ACL étendue ( filtrage selon @IP dst, type protocole, port,… ) correspondant au trafic autorisé
(config)#ip access-list extended TRAFIC_VPN
(config-ext-nacl)#permit ip any any
(config-ext-nacl)#permit icmp any any
Rem: Si on utilise un n° d'ACL, il faut N° d'ACL > 99 pour avoir cette syntaxe ACL étendue ( IP extended access list )
J. Millet
20
- Créer une map qui va associer ACL, transform-set ( algos à utiliser ), @IP de destination
R1(config)#crypto map nom_MAP 1 ipsec-isakmp
R1(config-crypto-map)#set peer 194.57.85.2
R1(config-crypto-map)#set transform-set maConfigCom
R1(config-crypto-map)#set security-association lifetime seconds 3600
R1(config-crypto-map)#set pfs group2
R1(config-crypto-map)#match address TRAFIC_VPN
R1(config-crypto-map)#exit
- Indiquer pour l'interface du tunnel sur notre routeur la map utilisée
R1(config)#interface gi 0/0
R1(config-if)#crypto map nom_MAP
=> Un message indique que la crypto map fonctionne: "ISAKMP is ON"
- Sur le second routeur on crée l'autre extrémité du VPN IPsec:
Faire la même configuration ( le destinataire est R1 en 194.57.85.1
les réseaux dans l'ACL sont inversés)
- Vérifier que les ping entre PC passent (attention au début la négociation des clés du tunnel n'est pas finie,
=> cela ne passe pas => il faut relancer 2 ou 3 fois un ping )
- Vérifier dans l'analyseur réseau onglet GUI qu'un ping entre PC crée du trafic IPsec et pas ICMP => Il est chiffré
- Taper #show crypto isakmp sa => On voit les éléments qui ont communiqué lors de IKE phase 1
- Taper #show crypto ipsec sa => On voit les éléments qui ont communiqué lors de IKE phase 2
- Taper #show crypto map => On voit la configuration du VPN utilisée
Rem: Pour ajouter L2TP à IPSec, on ajoutera authentification, vpdn-group et interface Virtual-Template.
http://www.cisco.com/c/en/us/support/docs/security-vpn/ipsec-negotiation-ike-protocols/14122-24.html
J. Millet
21
Annexe: Algorithme asymétrique RSA
Alice veut envoyer un message à Bob. Elle demande à Bob de lui fournir une de ses 2 clés => Clé publique.
Algorithme
Étape 1: Bob choisit sa clé publique
Bob choisit 2 nombres premiers p et q qu'il gardera.
Exemple
Choix de p = 43
- Calculer F = ( p-1 ) × ( q-1 )
- Choisir un nombre e premier avec F ( aucun diviseur commun sauf 1 ou -1 )
- Calculer Z = p × q
La clé publique est de Bob est Z, e. Il l'envoie à Alice.
q = 53
F = (p-1)(q-1) = 2184
Choix de e = 67
Z = p x q = 2279
Envoi de clé publique: Z=2279 et e=67
Étape 2: Bob calcule la clé privée qu'il garde pour déchiffrer
Il calcule avec p et q sa clé privée Z,d qu'il sera le seul à connaître: Chercher d
tel que e x d = 1 % F = trouver un nombre entier k tel que e*d = F*k + 1
( voir en dessous Algorithme de résolution de l'égalité de Bézout )
Étape 3:
Alice reçoit la clé publique Z et e
Alice définit son message M ( il faut que la valeur ascii de M < Z ).
Trouver des nb entiers d et k tels que
67 x d ± 2184 x k = 1
Clé privée: Z=2279 et d = 163
M = 'a' = 97
( pas M = "ab" = 9798 qui est > à Z )
e
Alice chiffre son message: C = M % Z ( % = modulo )
e
M % Z = Me – Z x int(Me/Z)
C = 9767 % 2279 = 2042
Alice envoie le message chiffré à Bob.
Étape 4:
Bob reçoit le message chiffré C. Il possède sa clé privée d.
Il déchiffre le message chiffré C. M = Cd % Z
M = Cd % Z = 2042163 % 2279
= 97 = 'a'
Source: http://www.flatland.tuxfamily.org/chiffrement_asymetrique.php
Pour le sens contraire, on fait la même chose en inversant les acteurs.
Algorithme de Bézout ( calcul de la clé privée ):
http://www.lyceedadultes.fr/sitepedagogique/documents/math/mathTermSspe/02_PGCD_PPCM/02_cours_pgcd_ppcm_bezout_gauss.pdf
Début
Initialiser r = 0
d=0
Entrer les nombres e et F
Algorithme de Bézout
résolvant e*d =
F*k + 1
si e=67, F=2184
d=163 itérations donnent
d= 163 et k = -5
Non
r≠1?
Oui
d=d+1
m = e × d
u=u+1
k = (1-m)/F
Non
F>0?
Oui
r = m – F × int(m/F)
Afficher solution = d
r = m – F × int(1+ m/F)
Fin
J. Millet
22

Documents pareils