Autres moyens de la sécurité

publicité
Rappel: Utilités la sécurité à tous les niveaux
Sécurité des RO
Partie 6
Application : S-MIME, PGP, Sbox, OTP
Présentation
SSH
Session : SHTTP
Transport : SSL, TLS
Sécurisation des
échanges
Réseau : authentification IP (IPsec)
Liaison : CHAP, PAP
Liaison physique : Bluetooth
SSL, TLS,
SHTTP
IpSec
Boîtier de
chiffrement
Anas ABOU EL KALAM
[email protected]
Anas Abou El Kalam
2
SSL : Introduction
Plan
SSL
• SSL défini par netsacpe et intégré au
browser
• Première version de SSL testé en interne
• Première version de SSL diffusé : V2 (1994)
• Version actuelle V3
• Standard à l€’IETF au sein du groupe
Transport Layer Security (TLS)
• Standard au sein du WAP Forum Wireless
Transport Layer Security (WTLS)
SSH
IPSec
VPN
S-MIME
PGP
Anas Abou El Kalam
3
Anas Abou El Kalam
4
SSL / TLS : caractéristiques
SSL : Architecture
Repose sur un procédé de crypto à clès publiques
Indépendant du protocole utilisé
NFS
– transactions Web (HTTP), connexions via FTP, POP ou IMAP.
– Agit telle une couche supplémentaire, permettant d'assurer la
sécurité des données, située entre couches Appli & transport
FTP
SMTP
HTTP
Transparent pour l'utilisateur
Supporté par la quasi totalité des navigateurs
SSL
Serveur sécurisé par SSL URL commençant par https://
Confidentialité Algo symétriques (3DES, IDEA, 9RC4)
Intégrité MAC (MD5 ou SHA)
Authentification X509 et MAC
TCP
Port
Protocolenon
sécurisé
SNMP
RPC
UDP
6
Anas Abou El Kalam
Ports au dessus de SSL (2/2)
Ports au dessus de SSL (1/2)
Protocole
sécurisé
XDR
IP
5
Anas Abou El Kalam
Telnet
Application
Protocole
sécurisé
Port
Protocolenon
sécurisé
Application
HTTPS
443
HTTP
Transactions requêteréponse sécurisées
FTP-DATA
889
FTP
Transfert de fichiers
SSMTP
465
SMTP
Messagerie électronique
FTPS
990
FTP
Contrôle du transfert de fichiers
SNNTP
563
NNTP
News sur le réseau Internet
IMAPS
991
IMAP4
Accès distant à la boîte aux lettres avec ou
sans rapatriement des messages
SSL-LDAP
636
LDAP
Annuaire X.500 allégé
TELNETS
992
Telnet
Protocole d’accès distant à un système
informatique
SPOP3
995
POP3
Accès distant à la boîte aux
lettres avec rapatriement des
messages
IRCS
993
IRC
Protocole de conférence par l’écrit
Anas Abou El Kalam
7
Anas Abou El Kalam
8
SSL : propriétés / services
SSL : Protocoles
• Authentification
– Serveur (obligatoire), client (optionnel)
– Utilisation de certificat X509 V3
– A l’établissement de la session.
• Confidentialité
– Algorithme de chiffrement symétrique négocié, clé
généré à l’établissement de la session.
• Intégrité
– Fonction de hachage avec clé secrète : hmac(clé
secrète, h, Message)
• Non Rejeu
– Numéro de séquence
Anas Abou El Kalam
Application
SSL
Alert
CCS
Record
TCP
9
SSL / TLS : fonctionnement globale
Anas Abou El Kalam
10
TLS : négociation de session
Une session définit les éléments suivants :
échange de clés entre client & serveur.
– Le client, se connecte au site (marchand) sécurisé par SSL et lui demande
de s'authentifier. Le client envoie également la liste des cryptosystèmes qu'il
supporte, triée par ordre décroissant de la longueur des clés.
– Le serveur a réception de la requête envoie un certificat au client, contenant
la clé publique du serveur, signée par une CA, ainsi que nom d’algo le plus
haut dans la liste avec lequel il est compatible
– Le client vérifie validité certificat (i.e., authenticité marchand), puis
– Le client crée une clé secrète aléatoire, chiffre cette clé à l'aide de la clé
publique du serveur, puis lui envoie clé de session.
session
– Le serveur est en mesure de déchiffrer la clé de session avec sa clé privée.
Les deux entités sont en possession d'une clé commune dont ils sont seuls
connaisseurs.
Le reste des transactions peut se faire à l'aide de clé de session, garantissant
l'intégrité et la confidentialité des données échangées.
Anas Abou El Kalam
Handshake
– identifiant de session
– algorithme de compression
– algorithme de chiffrement, type d ’algorithme de chiffrement : (par
blocs, flux), taille de la clé de chiffrement
– algorithme de scellement, taille du sceau
– secret maître
– aléa serveur, aléa client
– certificat
– session réutilisable
Clés utilisées :
– secret maître,
– aléas serveur et client permettent de calculer la clé de chiffrement et
– clé de scellement.
11
Anas Abou El Kalam
12
TLS : négociation de session
TLS : négociation de session
Décider du niveau de sécurité
(suivant les capacités de chacun)
Toute communication sécurisée débute par
une négociation de session «€TLS
Handshake protocol€»
Format des trames de négociation :
Type
Taille
Le serveur s’authentifie
et envoie les paramètres permettant
d ’établir un pré-secret maître
Contenu
Type : hello_request (0), client_hello (1), server_hello (2) ...
Objectif
• Authentification du serveur et éventuellement du client,
• Négociation des algorithmes de chiffrement et de hachage,
échange d’un secret,
• Génération des clés.
Anas Abou El Kalam
Le client s ’authentifie (si requis)
et envoie les paramètres permettant
d ’établir un pré-secret maître
Fin négociation de session
Client & serveur converseront désormais
avec algos et clés
de sécurité
établies
Anas Abou
El Kalam
13
La négociation de session TLS
14
Handshake
Message
Typede
message
Sens de
transmission
Signification
HelloRequest
optionnel
serveur → client
Ce message demande au client d'entamer
le Handshake.
ClientHello
obligatoire
client → serveur
Ce message contient :
le numéro de version du protocole SSL ;
le nombre aléatoire : client_random ;
l'identificateur de session : session_ID ;
la liste des suites de chiffrement choisies
par le client ;
la liste des méthodes de compression
choisies par le client.
ServerHello
obligatoire
serveur → client
Ce message contient :
le numéro de version du protocole SSL ;
un nombre aléatoire : serveur_random ;
l'identificateur de session : session_ID ;
une suite de chiffrement ;
une méthode de compression.
Anas Abou El Kalam
15
Anas Abou El Kalam
16
Handshake
Handshake
Certificate
Optionnel
serveur → client
client → serveur
Ce message contient le certificat du
serveur ou celui du client si le serveur le lui
réclame et que le client en possède un.
ClientKeyExchange
Obligatoire
client → serveur
Ce message contient le PreMasterSecret
crypté à l’aide de la clé publique du
serveur.
CertificateVerify
Optionnel
client → serveur
Ce message permet une vérification
explicite du certificat du client.
Finished
obligatoire
serveur → client
Ce message signale la fin du protocole
Handshake et le début de l’émission des
données protégées avec les nouveaux
paramètres négociés.
ServerKeyExchange
Optionnel
serveur → client
Ce message est envoyé par le serveur que
s’il ne possède aucun certificat, ou
seulement un certificat de signature.
CertificateRequest
Optionnel
serveur → client
Par ce message, le serveur réclame un
certificat au client.
ServerHelloDone
Obligatoire
serveur → client
Ce message signale la fin de l’envoi des
messages ServerHello et subséquents.
client → serveur
17
Anas Abou El Kalam
18
Anas Abou El Kalam
Handshake
Handshake
Ouverture d'une
connexion
Ouverture d'une
session SSLv3
Client
Serveur
Client
Serveur
Client Hello
Client Hello
Serveur Hello
Certificate
(Serveur Key Exchange)
(Certificate Request)
Server Hello Done
Serveur Hello
ChangeCipherSpec
Finished
(Certificate)
Client Key Exchange
(Certificate Verify)
ChangeCipherSpec
Finished
ChangeCipherSpec
Finished
ChangeCipherSpec
Finished
Application Data
Application Data
Application Data
Anas Abou El Kalam
19
Anas Abou El Kalam
20
La négociation de session TLS
La négociation de session TLS
2ème phase : authentification (optionnelle) du Client
1ère phase : authentification serveur
Suite à la requête d'un C,
le S :
Serveur
– envoie son certificat au C
– liste algos cryptos, qu'il souhaite négocier
– peut demander au client de s'authentifier en lui
demandant son certificat.
Le C
– vérifie validité certificat à l'aide Kpub du CA
– Si le certificat est valide, le client génère un
pré-master secret (PMS) de 48 octets
– Le PMS servira à dériver le MS (48 octets)
– PMS est chiffré avec clé publique du S puis
transmis à ce dernier.
Client
– réplique en envoyant ce certificat puis
– en signant un message avec sa clé privée (ce
message contient des informations sur la
session et le contenu de tous les échanges
précédents)
Données échangées par la suite entre C/S
sont chiffrées et authentifiées à l'aide de clés
dérivées de la clé maître.
Anas Abou El Kalam
Remarque :
Clé publique serveur chiffrement
Clé privée du client signature
21
La négociation de session TLS
Anas Abou El Kalam
22
La négociation de session TLS
Client Hello
Server certificate
– heure
– tirage nbre aléatoire client.random (28 octets)
– session Id :
• vide = nouvelle session,
• renseigné = utiliser session déjà ouverte
– choix d’algorithmes de chiffrement supportés
– méthode de compression supportés
– n° version du client SSL utilisé
– envoyé si le serveur doit s’authentifier,
dès que Server Hello a été envoyé
– contient une chaîne de certificats X509 v3
(avec le certificat racine en dernier),
correspond à l’algo utilisé (RSA, DH, 9)
⇒le client dispose donc de la clé publique
du serveur
Server Hello
Server key exchange
– le serveur sélectionne la version
– tirage nbre aléatoire : server.random (28 oct)
– session Id :
• renseigné = N° nouvelle session ou session à
réutiliser ,
• vide = session à ne pas mettre en cache
– algorithme de chiffrement sélectionné
– méthode de compression à utiliser
Si session réutilisée, passer en FINISH
Anas Abou El Kalam
– envoyé uniquement si le client n’a pas
toutes les données nécessaires (ex: le
serveur n’a pas de certificat)
– paramètres de la clé de chiffrement
(modulo, exposant9)
– hash MD5/SHA (client.random +
server.random+paramètres)
23
Anas Abou El Kalam
24
La négociation de session TLS
La négociation de session TLS
Certificate request
Clé publique
– envoyé uniquement si l’authentification du
client est requise
– types de certificats admis
– noms d’autorités de certification reconnues
du serveur
N° version
Pre Master Secret Key
RSA
Client key exchange
Server hello done
Client Key Exchange
– dans le cas de l’algorithme RSA, le client génère un “pre-master
secret” de 46 octets + 2 octets n° version (pour détecter les
« rollback attacks »)
– il chiffre ce pre-master secret avec la clé publique du serveur
– le serveur attend une réponse du client
Client certificate
– envoyé uniquement si le serveur a réclamé
une authentification du client
– certificat
– si le client ne possède pas de certificat, une
alerte est envoyée au serveur.
• Suivant les cas, cela peut faire échouer la
négociation
Anas Abou El Kalam
Pre Master Secret
Key sécurisé
Calcul des clés
– le pre-master secret, client.random et server.random permettent
au client et au serveur de calculer
• 2 clés de sessions (une pour chaque sens), et
• 2 clés secrètes à utiliser pour les MACs.
25
La négociation de session TLS
Anas Abou El Kalam
26
TLS : génération des clés
Certificate verify
Utilisation d€’une fonction de génération de
nombres pseudo aléatoires (PRF)
– envoyé si le client a envoyé un certificat qui permet de signer
– hash MD5 et hash SHA de tous les messages de négociation
envoyés jusqu’ici
– permet de convenir de secrets relativement courts et de générer
des clés bien plus longues
– l ’utilisation de deux algorithmes de hash différents augmente la
sécurité
Client Finish et Server Finish
– envoyé après un Change Cipher Spec
• et donc chiffré avec les nouveaux algorithmes négociés.
– client et serveur doivent envoyer un “Finish” et vérifier celui
qu’il reçoive de la partie opposée.
– PRF(master_secret,finished_label, Hash MD5 +Hash SHA de
tous les messages de négociations envoyés jusqu’ici) sur 12
octets,
– finished_label = “client finished” ou “server finished”.
Anas Abou El Kalam
PRF(secret,chaine ASCII,sel)=P_MD5(moitié_secret,chaine+sel) XOR
P_SHA(autre moitié_secret,chaine+sel)
P_hash(secret,sel)=HMAC_hash(secret,A(1)+sel)+
HMAC_hash(secret,A(2)+sel)+
…
où A(0)=sel et pour i>0 A(i)= HMAC_hash(secret,A(i-1)
27
Anas Abou El Kalam
28
TLS : pile de protocole
TLS : génération des clés
Quatre Protocoles
Génération du secret maître à partir de :
–
–
–
–
Pré secret maître établi par le client (client key exchange)
des aléas serveur et client
de la chaîne ASCII « master_key »
effacer le pré secret maître de la mémoire
Génération d€’un bloc de clés à partir de :
–
–
–
–
secret maître
des aléas serveur et client
de la chaîne ASCII « key expansion »
générer un bloc de taille suffisante (PRF) et le découper pour
obtenir la clé de scellement client, serveur, clé de chiffrement
client et serveur, vecteurs d ’initialisation client et serveur
(chiffrement par blocs)
Anas Abou El Kalam
29
ChangeCipherSpec (CCS)
Handshake
– authentification mutuelle C/S
– négociation algos chiffrement,
TLS Modif
hachage, échange clés symétriques TLS
Cipher TLS Alert
HTTP
Handshake
Change Cipher Spec
spec
Protocol
Protocol
protocol
– Notif du S que tous messages qui
vont suivre message “Client
TLS Record Protocol
Finished” seront chiffrés avec clés /
algos négociés.
TCP
Alert
– Alertes qui peuvent être envoyés
IP
par chacunedes parties suite aux
evnt qui peuvent subvenir
Record
– sécurité des données HTTP
– sécurité des autres couches de
protocoles TLS
Anas Abou El Kalam
30
Le protocole Record
• ChangeCipherSpec signale au Record toute
modification des paramètres de sécurité,
• Reçoit les données des couches supérieures€:
(Handshake, Alert, CCS, HTTP, FTP ...), et les
transmet au protocole TCP.
• Constitué d’un message (1 octet)
• Après application de :
la fragmentation des données en blocs de taille
maximum de 214 octets
la compression des données, fonction prévue mais non
supportée actuellement
la génération d’un condensât pour assurer le service
d’intégrité
le chiffrement des données pour assurer le service de
confidentialité
Anas Abou El Kalam
31
Anas Abou El Kalam
32
Le protocole Alert (2)
Le protocole Alert
• Le protocole Alert peut être invoqué€:
Message
par l’application, par exemple pour signaler la fin d’une
connexion
par le protocole Handshake suite à un problème survenu au
cours de son déroulement
• par la couche Record directement, par
exemple si l'intégrité d'un message est
mise en doute
Anas Abou El Kalam
Contexte
Type
bad_certificate
échec de vérification d’un certificat
fatal
bad_record_mac
réception d’un MAC erroné
fatal
certificate_expired
certificat périmé
fatal
certificate_revoked
certificat mis en opposition (révoqué)
fatal
certificate_unknown
certificat invalide pour d’autres motifs que ceux
précisés précédemment
fatal
close_notify
interruption volontaire de session
fatal
decompression_failure
les données appliquées à la fonction de
décompression sont invalides (par exemple, trop
longues)
fatal
handshake_ failure
impossibilité de négocier des paramètres satisfaisants
fatal
illegal_parameter
un paramètre échangé au cours du protocole
Handshake dépasse les bornes admises ou ne
concorde pas avec les autres paramètres
fatal
no_certificate
réponse négative à une requête de certificat
avertissement
ou fatal
unexpected_message
arrivée inopportune d’un message
fatal
unsupported_certificate
le certificat reçu n’est pas reconnu par le destinataire
avertissement
ou fatal
33
34
Anas Abou El Kalam
TLS : traitement des données
TLS : traitement des données
Données applicatives
Fragmentation :
Fragmentation (214 octets maxi)
Fragment 1
– frontières messages clients peuvent être déplacées Données applicatives
– fragments de 214 octets au plus
Fragment 2
Compression (optionnelle) :
Compression (ajoute 1024 octets maxi)
– ajoute au pire 1024 octets
– sans pertes
Compressé
Frag 2
Compressé
Sceau :
– HMAC(MAC_write_secret,seq_num+type de
protocole TLS+version TLS+taille du fragment
compressé+fragment compressé)
– + = concaténation
Scellement (HMAC)
Compressé
Frag 1
MAC
Chiffrement :
Chiffrement (ajoute 2048 octets maxi)
Fragment Chiffré
– le fragment peut être paddé (chiffrement par blocs)
– on chiffre le fragment compressé + MAC
– ajoute au pire 1024 octets
Fragment Chiffré
Anas Abou El Kalam
Compressé MAC
35
Anas Abou El Kalam
36
TLS : PDU (Protocol Data Unit) de données
Type de protocole :
Type
Maj Min
– TLS Cipher Change
Protocol (20)
– TLS Alert Protocol (21)
– TLS Handshake Protocol
(22)
– données applicatives (23)
Taille
Données (compressées)
chiffré
MAC
Version : 3.1
Taille :
– taille des données
chiffrées (214+2048 max).
Anas Abou El Kalam
TLS : protocole d ’alerte
Niveau d€’alerte :
– avertissement
– fatal
Message :
– fermeture de session
– mauvais format de message
– MAC erroné, erreur de
déchiffrement, erreur de
décompression
– overflow (message trop long)
– mauvais certificat
– ...
37
Var d’état d’une session TLS
Niveau
Description
PDU alerte
Anas Abou El Kalam
38
Var d’état d’une connexion TLS
Les paramètres qui définissent une connexion SSL sont ceux qui se seront rafraîchis
pendant une session lors d'établissement d'une nouvelle connexion :
Session ID (l'dentifiant de session)
– séquence aléatoire de 32 octets choisie par le serveur pour identifier session.
Peer certificate (le certificat du pair)
Server_random et Client_random
– deux nombres aléatoires de 32 octets, générés par le C et le S lors de chaque connexion
– c'est un certificat X 509 du correspondant (soit pour un serveur ou un client).
Server_MAC_write_secret
Compression method
– clé secrète utilisé par le serveur pour calculer les MACs
Client_MAC_write_secret
– Algo de compression utilisé
– clé secrète utilisé par le client pour calculer les MACs
Cipher spec (suite de chiffrement)
Server_write_key
– définit les algorithmes de chiffrement et de hachage
– clé symétrique utilisé par le serveur pour le chiffrement des données.
MasterSecret
Client_write_key
– clé de 48 octets partagée entre le client et le serveur.
– clé symétrique utilisé par le client pour le chiffrement des données.
Is resumable (le drapeau)
Initialization vectors
– flag qui indique si il est possible d'ouvrir de nouvelles connexions sur la session
en question
– vecteur d'initialisation pour le chiffrement par bloc en mode CBC (Cipher Bloc Chaining),
l'un du coté serveur et l'autre du coté client.
Sequence number
– chaque message est numéroté, l'un pour le S, l'autre par le C, et chacun codé sur 8 octets.
Anas Abou El Kalam
39
Anas Abou El Kalam
40
SSL : liste non exhaustive de serveur
SSL : charges
Nom de l’API
Opération
Temps decalcul pour leclient
(ms)
Temps decalcul pour le
serveur (ms)
Total (ms)
Ouverture d’une nouvelle
session (Handshake complet)
18,94
16,9
35,85
Rafraîchissement d'une
session (Handshake simplifié)
0,11
0,11
0,22
Ouverture d’une nouvelle
connexion
0,079
0,071
0,15
5,5
5,3
10,8
http://www.aolserver.com
Alibaba2.0
Computer Software
Manufacturers
http://www.csm.co.at/alibaba/
Apache 1.3
The Apache
Group
http://www.inetmi.com
Enterprise Server 3.0
http://www.novonyx.com
Novonyx
Enterprise Web Secure/VM 1.1
Beyond-Software Incorporated
http://www.beyond-software.com
Internet Information Server 4.0
MicrosoftCorp.
Sun Microsystems
Lotus Domino Go WebserverIBM
4.6.1
http://www.oracle.com/products
Roxen Challenger 1.2b I
Idonex
http://www.roxen.com
SSLava
Phaos Technologies
http://www.phaos.com/main.htm
WebSite Professional 2.2
O'Reilly Software
http://www.website.oreilly.com/
WebTen 2.1
Tenon Intersystems
RSA
RC4-40 MD5
RC4-128 MD5
0x04
RC4- 128 SHA
0x05
0x06
0x07
DES40 CBC SHA
DH et
DSA
0x08
0x09
0x0A
0x0B
DES CBC SHA
0x0C
3DES EDE CBC SHA
0x0D
DES40 CBC SHA
DH et
RSA
0x0E
0x0F
3DES EDE CBC SHA
0x10
0x11
DES CBC SHA
0x12
3DES EDE CBC SHA
0x13
DES40 CBC SHA
DHE et
RSA
DES CBC SHA
DES40 CBC SHA
DHE et
DSA
3DES EDE CBC SHA
DES40 CBC SHA
0x14
0x15
3DES EDE CBC SHA
0x16
Anas Abou El Kalam
–
–
–
–
Casser les clefs
Attack replay
Man in the middle
Attaque à clair ouvert
• Parades de SSL
–
–
–
–
DES CBC SHA
Beta 1
DESCBC SHA
42
• Pistes classiques
IDEA CBC SHA
Anas Abou El Kalam
SSLava
Code
0x03
RC2 CBC-40 MD5
http://www.tenon.com/products/webten
http://www.zeustech.net
Attaques classiques
SSL : liste de suite de chiffrement supportée par un serveur
Export
http://www.java.sun.com
http://www.ibm.com
OracleWeb Application Server
Oracle Corp.
3.01
41
Apache
Jigsaw Microsoft
Netscape
Netscape
SSLLeay 08.0 2.0 Beta 1 IIS/4.0 Entreprise3.0L Entreprise 3.0F
http://www.microsoft.com/iis
Netscape
Enterprise Server 3.5.1
Netscape Communications Corp.
http://www. netscape.com
Anas Abou El Kalam
Suite
http://www.apache.org
Commerce Server/400 1.0CI/NET, Inc.
Zeus Web Application Server
Zeus
3 Technology
Serveur et Version
Adresse
America Online. Inc
Java Server 1.1
Temps de calcul pour 16Ko
de données (chiffrement ou
déchiffrement, élaboration et
vérification du MAC)
Fournisseur
AOLserver 2.3
43
Taille des clefs
Nonces (connection id)
Certificats servent à passer les clefs
Clefs + Aléas
Anas Abou El Kalam
44
Sources de vulnérabilité
Scénarios d’attaque
• Taille des clefs
•
•
•
•
• SSL v2
• Certificats
SSL v2 : Forcer une faible taille de clef
Tous :
Diffie-Hellman anonyme
SSL v3 : Accepte Finished avant ChangeCipherSpec
SSL v3 : Envoi de données chiffrées avant
réponse serveur au Finished.
• Implémentations
45
Anas Abou El Kalam
46
Anas Abou El Kalam
Exemple 2
Exemple 1
• Faible clefs
• Pas de vérification
d’intégrité
• Tiers
à
l’écoute
SSL v2
Forced weak ciphersuite
CryptoL
SSL v3
DH anonymous authentification
“ Man in the middle ” attack
CryptoL
Anas Abou El Kalam
47
Anas Abou El Kalam
48
Exemple 3
Exemple 4
Phase 1
• Envoi de données
chiffrées
• Permet de casser
la clef,
puis de répondre
Phase 2
SSL v3
Send data before finished server
?
Anas Abou El Kalam
49
SSL vs TLS ?
50
Anas Abou El Kalam
SSL vs SSH ?
Différences minimes :
– TLS = « SSL v3.1 » ==> basé sur SSL 3.0
– Même si à la fois SSL et TLS sont dispo dans la majorité des
navigateurs, ils ne s'intorpére pas
SSH
SSL / TLS
programme et protocole de connexion et
d'exécution de commande sur ordi accessible
depuis un réseau
Les connexions SSH doivent être
authentifiées
propose de nombreuses autres options
• un seul doit être choisi dans la phase de négociation
• Mais TLS peut se trensformer en SSL3 si nécessaire
– TLS Record Protocol utilise HMAC pour sceller les données
– Avec TLS, taille padding des données « imprévisible » (jusqu ’à 255
octets), tandis qu ’avec SSL, cette taille était prévisible (juste ce qui est
nécessaire pour être multiple taille du bloc de chiffrement)
– TLS utilise une fonction de génération pseudo-aléatoire (PRF) là où
SSL utilisait des imbrications de hash MD5 et SHA
– TLS ne supporte pas Fortezza comme algo d ’échange de clés.
protocole de sécurisation des communications Internet
ne requiert aucune authentification côté serveur : celleci est optionnelle, et une connexion peut être anonyme
authentification côté client que par échange de clefs
publiques
peut-être utilisé dans un cadre autre que le
se limite au protocole HTTP (en fait HTTPS, qui est
Web pur : FTP, POP3 / IMAP / SMTP, telnet HTTP sécurisé par SSL)
permet de son côté de créer un "tunnel" entre SSL/TLS n'est utile qu'en cas d'échange entre deux
applications
ces deux applications, qui reste ouvert et
disponible même s'il n'y pas d'échange en
cours.
permet de sécuriser le transport d'informations via le
SSH est une véritable plate-forme de
Web
sécurisation pour toutes formes de
communications électroniques.
Anciennes versions de SSL :
– rollback attack étudiée
– tous les messages de négociation sont scellés (pas en v2.0)
Anas Abou El Kalam
51
Anas Abou El Kalam
52
TLS : conclusion
Plan
SSL
Avantages
SSH
– Protocole assez bien pensé et complet
– Supportés par de nombreux navigateurs et donc + ou - “standard”
IPSec
Inconvénients
– On n’est pas averti si le certificat utilisé est répudié
– Lourd ?
– La renégociation de sessions n’est pas prévue, or sur un ftp ou un telnet,
une session peut rester ouverte très longtemps
– Les algorithmes de chiffrement négociés peuvent être un peu faibles
(RC4-40 bits notamment).
VPN
S-MIME
PGP
Anas Abou El Kalam
53
Sécurisation des échanges : SSH
54
Anas Abou El Kalam
Sécurisation des échanges : SSH
Intro
Apperçu (simplifié) du protocole
– remplacement sécurisé des commandes telnet, rlogin, rsh et rcp d’Unix
1. Négociation de la version du protocole
– Utilise SSL
2. Identification de l’hôte distant (RSA)
– fonctions supplémentaires
3. Négociation de l’algorithme de chiffrement (3DES, Blowfish, IDEA, ...)
– authentification par clés publiques
4. Génération et échange d’une clé de chiffrement de session
– tunnels
5. Authentification de l’utilisateur
– Secure ftp (sftp)
- soit par clé publique / privée
- soit par login traditionnel
Implémentations
6. Session établie
à partir de cet instant,
tous les échanges sont chiffrés
la clé de session est générée à
l’aide du protocole Diffie-Hellman
– SSH (http://www.ssh.com)
– OpenSSH (www.openssh.com)
– ...
Anas Abou El Kalam
55
Anas Abou El Kalam
56
Sécurisation des échanges : SSH
Sécurisation des échanges : SSH
Utilisation basique sous Unix
Configuration
la paire de clés est générée grâce à la commande ssh_keygen
Clé publique du
serveur
UnUtilisateur[~] ssh toto.n7.fr
non connue
Host key not found from the list of known hosts.
Clé publique du
Are you sure you want to continue connecting (yes/no)? yes
serveur
Host 'toto.n7.fr' added to the list of known hosts.
récupérée
[email protected]'s password: XXXXXX
Authentification par
pwd
Last login: Wed Aug 7 15:34:11 2002 from UnUtilisateur.n7.fr
Sun Microsystems Inc. SunOS 5.7 Generic October 1998
Sun Microsystems Inc. SunOS 5.7 Generic October 1998
(ssh-keygen
ssh-keygen -t rsa)
rsa pour générer des clés RSA
les clés publiques et privées du serveur sont en général stockées dans /etc/ssh
à la 1ère connexion d’un utilisateur sur un serveur, la clé
publique est récupérée et stockée dans $HOME/.ssh/known_hosts du client
le démon s’exécutant sur une machine serveur est sshd
la paire de clés d’un utilisateur se trouve en général dans $HOME/.ssh
– (fichiers id_rsa et id_rsa.pub) => pour authentification des utilisateurs par clés
toto[~]
57
Anas Abou El Kalam
Sécurisation des échanges : SSH
Anas Abou El Kalam
58
Sécurisation des échanges : SSH
Tunneling
Tunneling
Très utile lorsque l’on veut établir une connexion sécurisée avec un serveur POP, IMAP par
client[~] ssh -n -f serveurssh -L 1234:serveurimap:143 -N
exemple et qu’on ne dispose pas d’une version de ce serveur intégrant les fonctionnalités SSL
Client POP
Serveur POP
1
Client SSH
création du tunnel : le port local 1234 est donc redirigé sur le port 143 (IMAP)
du serveurimap (la transaction est chiffrée jusqu’au serveurssh)
3
2
Communication chiffrée
client[~] telnet localhost 1234
Trying 127.0.0.1...
Serveur SSH
Connected to localhost.
Escape character is '^]'.
* OK [CAPABILITY IMAP4REV1 LOGIN-REFERRALS STARTTLS AUTH=LOGIN]
serveur IMAP4rev1 2002.325 at Wed, 7 Aug 2002 17:45:47 +0200
(CEST)
1. Le client SSH crée un serveur local
2. Le client SSH transmet les requêtes au serveur SSH
3. Le serveur SSH les redirige vers le vrai serveur
Anas Abou El Kalam
59
Anas Abou El Kalam
60
Sécurisation des échanges : SSH
Sécurisation des échanges : SSH
Tunneling : un autre exemple
Tunneling
- Pour la lecture du courrier, le mieux est bien sûr de créer
un tunnel en utilisant comme port local le même port que celui
du service (IMAP ou POP), et ensuite de modifier les préférences du lecteur
de courrier (127.0.0.1 pour le serveur IMAP)
1. création du tunnel :
ssh -n -f serveurssh -L 143:serveurimap:143 -N
2. modification des préférences du lecteur de courrier (ici
Netscape)
le serveur IMAP
est la machine
locale
Anas Abou El Kalam
Certains sites ne sont accessibles que depuis certains ordis, serveurs ou domaines très précis.
– Par exe, pour accéder à l'Intranet de l'N7, on doit se connecter depuis l'un des
ordinateurs de l'École.
– Cette contrainte permet d'être certain que seules les personnes autorisées
pourront accéder à certaines données, après s'être préalablement identifiées au
moyen d'un mot de passe.
Mais cet avantage a un inconvénient.
– Si vous êtes à l'étranger, ou si vous êtes tout simplement chez vous et ne pouvez
vous rendre physiquement devant les ordinateurs en question, ces ressources
vous sont inaccessibles...
Solution ?
– La technique du tunnel SSH : « creuser un tunnel » entre votre connexion et un
serveur autorisé pour y faire passer les infos de manière sécurisée
Etapes
– 1. ouvrir une connexion sécurisée avec ce serveur (par ex java, à l'N7)
–
2. dire à votre navigateur de se brancher sur cette connexion ;
– 3. vous connecter à des sites comme si vous étiez sur ce serveur.
61
Sécurisation des échanges : SSH
62
Anas Abou El Kalam
Sécurisation des échanges : SSH
Ouvrir le Tunnel
Ouvrir le Tunnel
dans l'onglet « SSH » puis Tunnel :
Sous Linux
1. Source Port : 3128
toto@ordinateur $ ssh -N -T -L 3128:www-cache.n7.fr:[email protected]
2. destination : www-cache.n7.fr:3128
Sous Windows
3. Cliquer sur « Add »
dans l'onglet « Session » :
www-cache.n7.fr
1. Host name (or IP@) : java.n7.fr
java.n7.fr
2. Port : 22
3. Protocole : SSH
4. Saved sessions : N7 par tunnel
)7 par tunnel SSH
L3128
www-cache.n7.fr:3128
SSH
dans l'onglet «session »
1. cliquer sur « save »
Anas Abou El Kalam
63
Anas Abou El Kalam
64
Sécurisation des échanges : SSH
Sécurisation des échanges : SSH
Empreinter le Tunnel
Empreinter le Tunnel
maintenant que le tunnel est ouvert, on peut l'emprunter
Exemple de config avec IE
– Allez dans Options, puis cliquez sur l'onglet Connections ; cliquez sur le bouton «
Paramètres réseau »,
Exemple de config avec Firefox
– Indiquez à votre navigateur que vous voulez utiliser un proxy, en cliquant sur «
Manual proxy configuration », puis en tapant localhost comme proxy HTTP, et
3128 comme port :
Cochez case «
Utiliser un
serveur proxy
pour votre
réseau local
», et
indiquez
d'utiliser
l'adresse
localhost avec
le port 3128 :
Anas Abou El Kalam
65
Sécurisation des échanges : SSH
Anas Abou El Kalam
66
Sécurisation des échanges : SSH
Ouvrir le Tunnel
Empreinter le Tunnel
Sous Linux
Maintenant, le tunnel est ouvert, et votre navigateur est disposé à l'emprunter.
toto@ordinateur $ ssh -N -T -L 3128:www-cache.n7.fr:[email protected]
Demandez-lui d'aller à l'adresse http://www.intranet.n7.fr pour vérifier son bon
Sous Windows
fonctionnement.
dans l'onglet « SSH » puis Tunnel :
1. Source Port : 3128
Reboucher le tunnel
2. destination : www-cache.n7.fr:3128
Quand vous empruntez un tunnel, en règle générale, n'oubliez pas d'en sortir...
3. Cliquer sur « Add »
Dans le cas d'un tunnel SSH, il suffit pour cela de :
1. retourner dans les options de votre navigateur, et de lui indiquer de ne pas utiliser de proxy.
2. fermer la fenêtre de terminal avec laquelle vous avez ouvert le tunnel.
www-cache.n7.fr
Anas Abou El Kalam
67
Anas Abou El Kalam
68
IPSec : intro
Plan
Introduction
– IPsec vise à sécuriser les échanges de données au niveau de la couche réseau (IP)
– Un des méthodes permettant de créer des VPN, i.e., relier, de manière sûre, 2 systèmes
en s'appuyant sur un réseau existant, lui-même considéré comme non sécurisé.
– défini par un groupe de travail du même nom à l’IETF (Internet Engineering Task Force)
– Services au niveau réseau
– IPSec n’est pas un protocole fixe (ex: alg de chiffrement)
– créé en 1992, première version en 1995
– intégré de base dans IPV6, doit être explicitement utilisé avec IPV4
SSL
SSH
IPSec
Propriétés
VPN
confidentialité des données et protection contre l’analyse du trafic
intégrité des données
S-MIME
authentification de l’origine des données
protection contre le rejeu
=> IPSec n’est pas un protocole fixe (les algos de chiffrement et d'authentification à
proprement parler sont spécifiés séparément du protocole lui-même.),
– il s’agit d’un cadre pour implanter des services de sécurité
PGP
Anas Abou El Kalam
69
Composants crypto dans l’architecture Internet
Anas Abou El Kalam
70
IPSec : Mécanismes
2 mécanismes de sécurité viennent s’ajouter au traitement IP classique
– l’Authentication Header (AH
AH)
– l’Encapsulation Security Payload (ESP
ESP)
IPv6 : IPSec est supporté en natif dans IPv6;
IPv4,
IPv4 le champ Protocol du datagramme est modifié pour indiquer la présence
d’une des 2 extensions
– AH=51, ESP=50
AH et ESP contiendront eux-mêmes un champ Next Header qui indiquera le type
du protocole (TCP, ...) initialement contenu dans le datagramme IP
Anas Abou El Kalam
71
Anas Abou El Kalam
72
IPSec : les 2 modes d'échange
Description des modes d'IPSec
Mode transport
– les mécanismes de sécurité ne sont appliqués qu’aux données de la couche supérieure
et les informations relevant d’opérations sur la couche IP, telles que contenues dans l’entête IP, ne sont pas protégées.
Mode tunnel
Mode Transport : s'intercale entre le protocole
réseau (IP) et le protocole de transport (TCP, UDP)
– ne modifie pas l'en-tête initial
– Plusieurs variantes
– les données de la couche supérieure de même que l’en-tête d’IP du paquet IP sont
protégées grâce à une encapsulation.
Mode Tunnel : remplace les en-têtes IP originaux et
Il est également possible d'encapsuler une communication IPsec en mode tunnel ou transport
dans une autre communication IPsec en mode tunnel, elle-même traitée par une passerelle
de sécurité, qui transmet les datagrammes après suppression de leur première enveloppe à
encapsule la totalité du paquet IP; e.g.,
@ IPA externe pourra être celle de la passerelle de
sécurité implémentant IPSec, et
@ IPB interne sera celle de la machine finale, sur le
réseau derrière la passerelle.
un hôte traitant à son tour les protections restantes ou à une seconde passerelle de sécurité.
Mode Nesting : hybride puisqu'il utilise les 2 modes
Encapsuler de l'IPSec dans de l'IPSec
73
Anas Abou El Kalam
Tunnel ==> encapsulation datagrammes IP dans d’autres... Cela permet de :
– créer des réseaux privés virtuels (ou VPN).
VPN
Établir une communication sécurisée (le tunnel) entre des entités éloignées, séparées
par un réseau non sécurisé/public (Internet), et ce de manière quasi-transparente.
Datagramme IPSec
Datagramme IP
Datagramme IP
Datagramme IP
Tunnel IPSec
Partie données du datagramme IPSec
propriétés générales des tunnels VPNs :
–
–
–
–
les données transitant sont chiffrées (confidentialité+Intégrité)
les 2 extrémités sont authentifiées
les adresses sources/destinations sont chiffrées (IP dans IPSec)
autres qualités :anti-rejeux, empêcher attaques man-in-the-middle
Anas Abou El Kalam
74
IPSec : AH (propriétés 1/2)
Tunneling IPSec
Datagramme IP
Anas Abou El Kalam
75
assure l’intégrité et l’authentification de l’origine des datagrammes IP
– Authenicité : AH garantit que datagrammes IP reçus ont effectivement été émis
par l'hôte dont l'@ IP est indiquée comme adresse source dans les en-têtes.
– L'unicité (optionnelle, à la discrétion du récepteur) : AH garantit qu'un
datagramme ayant été émis légitimement et enregistré par un attaquant ne
peut être réutilisé par ce dernier, les attaques par rejeu sont ainsi évitées.
– L'intégrité : AH garantit que certains champs du datagramme IP n'ont pas été
modifiés depuis leur émission :
• les données (en mode tunnel, ceci comprend la totalité des champs, y
compris les en-têtes, du datagramme IP encapsulé dans le datagramme
protégé par AH),
• version (4 en IPv4, 6 en IPv6),
• longueur de l'en-tête (en IPv4), longueur totale du datagramme (en IPv4),
longueur des données (en IPv6),
• identification, protocole ou en-tête suivant (ce champ vaut 51 pour indiquer
qu'il s'agit du protocole AH),
• adresse IP de l'émetteur, adresse IP du destinataire
Anas Abou El Kalam
76
IPSec : AH (propriétés 2/2)
IPSec : AH (paramètres)
L'intégrité (suite)
– L'intégrité de celles des options IP qui ne sont pas modifiables pendant le
transport est assurée, celle des autres options ne l'est pas.
– Cependant, la valeur que prendront les champs type de service (IPv4),
indicateurs (IPv4), index de fragment (IPv4), TTL (IPv4), somme de contrôle
d'en-tête (IPv4), classe (IPv6), flow label (IPv6), et hop limit (IPv6) lors de leur
réception n'étant pas prédictible au moment de l'émission, leur intégrité n'est
Valeur du compteur
utilisée pour détecter
les datagrammes
d’IP rejoués afin
d’assurer l’intégrité
des séquences de
datagrammes
pas garantie par AH.
AH n'assure pas la confidentialité : les données sont signées mais pas chiffrées.
AH ne spécifie pas d'algorithme de signature particulier, ceux-ci sont décrits
séparément, cependant, une implémentation conforme à la Rfc 2402 est tenue de
supporter les algorithmes MD5 et SHA-1.
Anas Abou El Kalam
77
IPSec : AH (modes)
Anas Abou El Kalam
IPSec : AH (vérification)
•IP AH peut être utilisé selon deux modes : Transport ou Tunnel.
•Transport :
•l’unique modification apportée au datagramme IP d’origine est l’inclusion du champ
en-tête d’authentification.
•Tunnel :
•un autre en-tête IP est ajouté avant l’en-tête IP d’origine.
Anas Abou El Kalam
l’index des paramètres sécurité référence une association de sécurité qui définit
– l’algorithme d’authentification choisi,
– les clés utilisées et
– les partenaires autorisés à utiliser cette association
78
79
Le traitement à la réception d’un datagramme IP protégé par l’IP AH consiste à
• vérifier le champ des données d’authentification contenu dans l’IP AH en
comparant sa valeur au résultat du hachage calculé par le destinataire.
• Si le champ des données d’authentification est valide, l’intégrité du
datagramme IP est prouvée.
• L’authentification de l’origine des données est assurée car seuls l’expéditeur
et le destinataire d’un datagramme ont accès à la fonction de hachage sécurisée
•à la clé secrète partagée dans le cadre de l’association de sécurité
correspondante
• Un attaquant peut exécuter une attaque de rejeu en retransmettant au
destinataire de l’association de sécurité un datagramme IP qui a déjà été
transmis entre les deux entités de l’association
•Si le service optionnel de détection de rejeu est sélectionné par le
destinataire, alors il est possible de détecter les datagrammes rejoués en
utilisant le champ numéro de séquence de l’AH
Anas Abou El Kalam
80
IPSec : Encapsulation Security Payload (ESP)
IPSec : Encapsulation Security Payload (ESP)
Contrairement à AH, ESP ne protége pas les en-têtes des datagrammes IP utilisés
pour transmettre la communication. Seules les données sont protégées.
En mode tunnel, ces garanties s'appliquent aux données du datagramme dans
lequel est encapsulé le trafic utile, donc à la totalité (en-têtes et options inclus) du
datagramme encapsulé.
En mode transport, ESP assure :
En mode tunnel, deux avantages supplémentaires apparaissent:
– Confidentialité :
– La confidentialité,
confidentialité limitée, des flux / traffic
• la partie données des datagrammes IP transmis est chiffrée.
• car il permet aux passerelles de sécurité de cacher l’identité des hôtes
source et de destination ainsi que la taille réelle des datagrammes IP.
– Authentification de l'origine des données (optionnelle) :
• la partie données des datagrammes reçus ne peut avoir été émise que par
l'hôte avec lequel a lieu l'échange IPsec, qui ne peut s'authentifier avec
succès que s'il connaît la clef associée à l'ESP
• Attaquant qui sniffe données transitant par un lien ne peut pas déterminer
quel volume de données est transféré entre deux hôtes particuliers.
– e.g., si la communication entre deux sous-réseaux est chiffrée à l'aide
d'un tunnel ESP, le volume total de données échangées entre ces deux
sous-réseaux est calculable par cet attaquant, mais pas la répartition de
ce volume entre les différents systèmes de ces sous-réseaux.
– l'absence d'authentification nuit à la confidentialité
– Unicité (optionnelle, à la discrétion du récepteur):
• protection contre rejeux
– Integrité des données (optionnelle) :
– La confidentialité des données,
données si elle est demandée, s'étend à l'ensemble des
champs, y compris les en-têtes, du datagramme IP encapsulé dans le
datagramme protégé par ESP)
• les données n'ont pas été modifiées depuis leur émission
81
Anas Abou El Kalam
Anas Abou El Kalam
IPSec : ESP
82
IPSec : ESP
Portée de la confidentialité et de l'authentification en mode Transport & Tunnel
ESP (∀ mode) ne spécifie pas d'algorithme de signature ou de chiffrement
particulier, ceux-ci sont décrits séparément, cependant, une implémentation
conforme à la Rfc 2406 est tenue de supporter l'algorithme de chiffrement DES en
mode CBC, et les signatures à l'aide des fonctions de hachage MD5 et SHA-1
Données d'authentification
Mode
tunnel
Anas Abou El Kalam
83
En mode Transport, l’en-tête du diagramme IP (e.g., @source & @dest sont à texte clair.
Si tout le datagramme qui inclut infos du protocole doit aussi être protégé ==> utiliser mode Tunnel
• Il permet en effet que les passerelles de sécurité, agissant comme noeuds intermédiaires entre
les hôtes source et de destination finaux, mettent en oeuvre le protocole IP ESP en encapsulant le
datagramme IP d’origine échangé entre la source et la destination avec un autre en-tête IP utilisé
uniquement sur le chemin protégé entre ces passerelles.
84
Anas Abou El Kalam
IPSec : Différences AH // ESP
IPSec : calcul données d'auth.
•ESP en mode Transport, l’en-tête du diagramme IP (@source & @dest) sont à
texte clair
•Si tout datagramme qui inclut infos du protocole doit être protégé ==> utiliser
ESP en mode Tunnel
• ESP mode Tunnel permet que les passerelles de sécurité, agissant comme
noeuds intermédiaires entre hôtes source et dest finaux, mettent en oeuvre
le protocole IP ESP en encapsulant le datagramme d’origine échangé entre
source & dest avec un autre en-tête IP utilisé uniquement sur le chemin
protégé entre ces passerelles.
• Contrairement au champ données d’auth. AH, le champ données d’auth. ESP
est optionnel et l’authentification fournie ne couvre que les champs de l’en-tête
ESP, de la charge ESP et du remplissage d u datagramme.
L’en-tête IP (celui d’origine dans le mode Transport ou le nouveau enmode
Tunnel) n’est jamais protégé par le service d’authentification ESP.
• Dans les cas où l’intégrité et la confidentialité des données de tout le
datagramme IP sont obligatoires, il est donc recommandé d’utiliser IP ESP en
association à IP AH.
Anas Abou El Kalam
L’auth. fourni par AH et ESP est basé sur une fonction de hachage sécurisée
Les données d’authentification peuvent être calculées de deux manières :
– E (H(M)) où :
K
• E : fonction chiffrement utilisant alg symétrique ou asymétrique
• K : clé secrète partagée par source/dest dans cas d’un algo symétrique
et la clé secrète privée de source dans le cas d’un algo asymétrique
• H : condensat de message calculé avec MD5 ou SHA-1
– en appliquant fonction hachage (H) sur une association du message (M) et
de la valeur secrète (K) partagée par source et destination.
•
H(K, M, K),
K) K étant lke secret partagé
•
HMAC(K, M) = H(K⊕P , H(K⊕P , M)) où P et P sont deux chaînes de bits
1
1
2
constantes et représente l’opération d’ou-exclusif bit par bit.
85
IPSec : Internet Key Exchange (IKE)
2
Anas Abou El Kalam
86
IPSec : Internet Key Exchange (IKE)
Les mécanismes (AH et ESP) utilisent des paramètres (algos chiffrement, clefs,
mécanismes sélectionnés) sur lesquels les tiers communiquants doivent se mettre
d’accord (les clés doivent être échangées de façon sure !)
Parmi ses avantages figure le mode agressif (pas obligatoire), qui permet
d'accélérer la négociation, au prix de la protection d'identité.
– L'identité est toutefois protégée dans le cas d'une négociation IKE authentifiée
à l'aide de signatures à clef publique.
(le champ SPI référence une entrée dans une base de données où sont stockées ces
informations pour une communication donnée,
Deux manières d'échanger des clefs sont abondamment utilisées :
Configuration manuelle possible mais peu réaliste, - sûre pour réseau grande taille
– les clefs pré-partagées,
– les certificats X.509
==> configuration dynamique : protocole IKE (Internet
Internet Key Exchange)
Exchange
• dans ce dernier cas, deux systèmes d'adresses initialement inconnues
pourront protéger leurs échanges
=> se charge de l’échange des clés mais aussi de la gestion de tous les
paramètres relatifs à la sécurisation des échanges
=> nécessite une authentification des tiers par secret partagé ou par échange de
clés publiques (possibilité d’utiliser des certificats)
=> plusieurs clés sont ensuite générées : pour AH (authentification des paquets),
pour ESP (chiffrement des paquets)
Anas Abou El Kalam
87
Anas Abou El Kalam
88
IPSec : Association de sécurité (SA)
IPSec : Association de sécurité (SA)
Afin de stocker et de manipuler l'ensemble paramètres gérés par IKE et utilisés par
mécanismes sécurisation ==> IPsec a recours à notion SA (security
security association).
association
La Rfc 2401 (Security
Security Architecture for the Internet Protocol) décrit le protocole IPsec au
niveau le plus élevé.
En particulier, elle indique ce qu'une implémentation est censée permettre de configurer en
une SA est une structure de données qui regroupe l'ensemble des paramètres de
sécurité associés à une communication donnée
– Chaque SA est identifiée de manière unique par
termes de politique de sécurité
• un SPI,
– c'est-à-dire quels échanges IP doivent être protégés par IPsec et, le cas
• une @ IP de destination (éventuellement @ de broadcast ou de multicast),
échéant, quel(s) protocole(s) utiliser).
• un protocole (AH ou ESP).
Sur chaque système capable d'utiliser IPsec doit être présente une SPD (security
security policy
Les SA actives sont regroupées dans une SAD (security
security association database).
database
database),
database
– Les protections offertes par Ipsec sont basées sur des choix définis dans SPD
– permet de préciser la politique de sécurité à appliquer au système (selon choix
administrateur)
La SPD est consultée pendant le traitement de tout datagramme IP, entrant ou
sortant, y compris les datagrammes non-IPsec.
Les données de la SA sont trop importantes pour pouvoir être transportées in
extenso dans chaque header
– ==> Chaque entrée de cette base de données est identifiée par un SPI
(security parameters index) unique (32 bits).
Anas Abou El Kalam
89
Anas Abou El Kalam
90
IPSec : architecture
IPSec : Association de sécurité (SA)
Trafic sortant
• Lorsque "couche" Ipsec reçoit data à envoyer,
Les plus importants de ces termes sont :
– SPD base de données définissant la politique de sécurité (protocole, ....)
– SA une entrée de la SPD
– SAD liste des SA actives (en cours d'utilisation)
Les règles de la SPD doivent pouvoir, si l'adminsitrateur du système le souhaite,
dépendre des paramètres suivants :
– adresse ou groupe d'adresses IP de destination
– adresse ou groupe d'adresses IP source
– nom du système (DNS complète, nom X.500 distingué ou général)
elle cconsulte BD politiques (SPD) pour savoir
comment traiter ces données.
• Si SPD indique que trafic doit se voir appliquer
des mécanismes de sécurité, elle récupère les
caractéristiques requises pour SA
correspondante et va consulter SAD.
• Si SA nécessaire existe, elle est utilisée pour
traiter le trafic en question.
• Sinon, Ipsec fait appel à IKE pour établir une
nouvelle SA avec caractéristiques requises
– protocole de transport utilisé (typiquement, TCP ou UDP)
– nom d'utilisateur complet, comme [email protected] (pas obligatoire)
– importance des données (pas obligatoire sur certains types d'implémentations)
– ports source et destination (UDP et TCP seulement)
• Lorsque Ipsec reçoit paquet en provenance du réseau, elle examine l'en-tête pour savoir si ce
paquet s'est vu appliquer un ou plusieurs services Ipsec et si oui, quelles sont références de SA
• Consulte SAD pour connaître param à utiliser pour vérification et/ou déchiffrement.
• Une fois le paquet vérifié et/ou déchiffré, la SPD est consultée pour savoir si l'association de
sécurité appliquée au paquet correspondait bien à celle requise par les politiques de sécurité.
Certains paramètres (ID U, Protocole transport, ports srce/dest) peuvent être
illisibles à cause d'un éventuel chiffrement ESP au moment où ils sont traités,
auquel cas la valeur de la SPD les concernant peut le préciser
Anas Abou El Kalam
Trafic entrant
91
Anas Abou El Kalam
92
IPSec : architectures supportées
IPSec : architectures supportées
Dialogue entre deux hôtes protégeant le trafic eux-mêmes
Le protocole IPsec permet théoriquement n'importe quelle combinaison, en un
nombre quasiment illimité de niveaux d'encapsulation, i.e., d'accumulations de SA.
Deux hôtes engagent une comm IPsec, en encapsulant le protocole de haut niveau dans :
– en mode transport :
– Néanmoins, les implémentations ne sont pas tenues d'offrir une telle flexibilité.
Quatre typres d'architectures sont conforme à la RFC 2401
• datagrammes AH
• datagrammes ESP
• ou datagrammes ESP encapsulés dans datagrammes AH
– Dialogue entre deux hôtes protégeant le trafic eux-mêmes
– en mode tunnel :
– Dialogue entre deux LANs à l'aide de passerelles de sécurité
• des datagrammes AH
– Dialogue entre deux hôtes traversant deux passerelles de sécurité
• ou des datagrammes ESP
– Dialogue entre un hôte et une passerelle de sécurité
IP1
entête IP original
IP2
entête IP d'encapsulation
DCS Donn.es des Couches Supérieures
93
Anas Abou El Kalam
IPSec : architectures supportées
Anas Abou El Kalam
94
IPSec : architectures supportées
2- Dialogue entre deux LANs à l'aide de passerelles de sécurité
Dialogue entre deux hôtes traversant deux
passerelles
deux passerelles de sécurité gèrent les conversations entre les hôtes de deux LANs ≠,
IPsec s'appliquant de manière transparente pour les hôtes.
Les deux passerelles échangent des datagrammes en mode tunnel, à l'aide de AH ou ESP,
puis transmettent les datagrammes obtenus après traitement IPsec aux hôtes destinataires.
Les datagrammes IP émis par un système de l'un des deux LANs sont encapsulés dans
d'autres datagrammes IP+IPsec par la passerelle du "LAN émetteur",
Encapsulation supprimée par la passerelle du "LAN récepteur" pour obtenir de nouveau les
datagrammes IP originaux.
datagramme IP interne échangé entre
Hôte1 et Hôte2 est encapsulé en entier
par l’en-tête IP externe échangé entre les
passerelles de sécurité.
La sécurité bout en bout de l’en-tête
interne avec IPsec peut être protégée par
AH, ESP ou les deux en mode Transport
et Tunnel, en fonction de la AS bout en
bout négociée entre les systèmes hôtes.
On applique un ensemble différent de AS
à l’en-tête IP externe échangé entre les
passerelles de sécurité sur Internet.
Ex: VPN avec IPSec
Anas Abou El Kalam
95
la prise en charge de la sécurité bout en
bout sur le réseau virtuel privé impose
que chaque passerelle de sécurité doit
autoriser le transit du trafic IPsec destiné
à un hôte faisant partie du réseau privé
local.
Anas Abou El Kalam
96
IPSec : architectures supportées
IPSec : Ex d'implémentations d'IPSEC
4- Accès distant d'un hôte à un intranet par le biais d’une passerelle de sécurité afin d’atteindre un second hôte situé sur
l’intranet
OpenBSD
Les choix possibles de AS entre Hôte1 et PS sont identiques à ceux qui prévalent pour les passerelles de
sécurité du scénario sur le réseau virtuel privé.
intégration native dans la pile IP du noyau
De la même manière, les choix pour l’association de sécurité bout en bout entre le hôte distant et le hôte
local sont identiques à ceux du premier scénario.
La seule particularité pour ce cas précis est que Hôte1 doit appliquer l’en-tête de transport bout en bout
avant l’en-tête de tunnel sur les datagrammes de sortie.
La combinaison de deux AS n’est toutefois pas toujours requise pour un accès distant.
Dans le cas où le réseau interne est fiable et où la sécurité bout en bout n’est pas nécessaire, l’AS2 en
mode tunnel entre Hôte1 et la passerelle est suffisante.
administration de IPsec avec ipsecadm
négociation dynamique des SA et des clés avec le démon isakmpd
– fichier de configuration de isakmpd : /etc/isakmpd/isakmpd.conf
– fichier de configuration de la politique de sécurité :
/etc/isakmpd/isakmpd.policy
FreeS/WAN
permet d’intégrer IPsec sur machine linux (développement non natif dans la pile IP)
nécessité de patcher le noyau avec KLIPS (Kernel IPsec Support)
administration de IPsec avec la commande ipsec
démon implémentant IKE est pluto
– fichiers de configuration : /etc/ipsec.conf, /etc/ipsec.secrets
Anas Abou El Kalam
97
IPSec : Ex d'implémentations d'IPSEC
98
Anas Abou El Kalam
IPSec : Ex d'implémentations d'IPSEC
Ex avec FreeS/Wan :
Ex avec FreeS/Wan :
– mise en place d’IPsec en mode transport entre 2 machines
– mise en place d’IPsec en mode transport entre 2 machines
1er cas : échange de clés dynamique en utilisant IKE, par secret partagé
2ème cas : échange de clés dynamique en utilisant IKE, par clés publiques
dans le fichier /etc/ipsec.secrets, sur les 2 ,machines, mettre le secret partagé :
193.50.169.115 193.50.169.116 "0x1107d0bb_6acbe1e5_21433426_f3f10dfa_4392fcda_6c215f1a_e2b14b6b"
dans le fichier /etc/ipsec.conf, configuration de la connexion
conn test
type=transport
Left=193.50.169.115
ipsec en mode transport
@IP des 2 machines
right=193.50.169.116
authby=secret
authentification par secret partagé
auto=start
Anas Abou El Kalam
99
Anas Abou El Kalam
100
IPSec : C/C
Plan
L'intérêt majeur de cette solution / à d'autres techniques (e.g., tunnels SSH) est
qu'il s'agit d'une méthode standard (facultative en IPv4, obligatoire en IPv6), mise
au point dans ce but précis, décrite par différentes RFCs, et donc interopérable.
économie de bande passante,
SSL
SSH
– compression des en-têtes des données transmises
– ne fait pas appel à de trop lourdes techniques d'encapsulation, comme par
exemple les tunnels PPP sur lien SSH.
IPSec
permet également de protéger des protocoles de bas niveau comme ICMP et
IGMP, RIP, etc...
VPN
solution évolutive, puisque les algorithmes de chiffrement et d'authentification à
proprement parler sont spécifiés séparément du protocole lui-même.
Inconvénient inhérent à sa flexibilité :
S-MIME
– sa grande complexité rend son implémentation délicate.
PGP
Anas Abou El Kalam
101
VPN : intro
Anas Abou El Kalam
102
VPN : principe de tunneling
C'est un réseau privé qui repose sur une infrastructure publique (Internet)
Consiste à construire un chemin virtuel après avoir identifié émetteur / destinataire
– la source chiffre les données et les achemine en empruntant Ce chemin virtuel.
VPN ont commencé à être mis en place pour répondre à problématiques du type :
– Comment une succursale d'une entreprise peut accéder aux données situées sur
un serveur de la maison mère distant de plusieurs milliers de kilomètres ?
Principe ("protocole de tunneling")
Afin d'assurer un accès aisé et peu coûteux aux intranets ou aux extranets
d'entreprise, les réseaux privés virtuels d'accès simulent un réseau privé, alors
qu'ils utilisent en réalité une infrastructure d'accès partagée, comme Internet.
Les données à transmettre peuvent être prises en charge par un protocole ≠ d'Ip.
– faire circuler les informations de l'entreprise de façon cryptée d'un bout à l'autre
du tunnel.
– Dans Ce cas, le tunneling encapsule les données en ajoutant une en-tête.
Le tunneling est l'∑ proessus d'encapsulation, transmission et désencapsulation.
• U ont l'impression de se connecter directement sur réseau de leur entreprise
Anas Abou El Kalam
103
Anas Abou El Kalam
104
VPN : principe
VPN : Le VPN d'accès
L’encapsulation (ou tunneling) de paquets dans d’autres paquets
Exemple avec IP (A envoie un paquet à B) :
utilisé pour permettre à des utilisateurs itinérants d'accéder au réseau privé. Deux cas:
U demande au fournisseur d'accès de lui établir une connexion chiffrée vers serveur distant : il
communique avec Nas (Network Access Server) du FI et c'est NAS qui établit la connexion.
– 1ère permet à U de communiquer sur ++ réseaux en créant plusieurs tunnels, mais
nécessite un FI proposant un NAS compatible avec la solution VPN choisie par l'entreprise.
De plus, la demande de connexion par le NAS n'est pas chiffrée Ce qui peut poser
problèmes sécurité
U possède son propre logiciel client pour le Vpn auquel cas il établit directement la
communication de manière cryptée vers le réseau de l'entreprise.
– problème 1 disparaît puisque l'intégralité des infos sera chiffrée dès l'établissement
connexion. Par contre, cette solution nécessite que chaque client transporte avec lui le
logiciel lui permettant d'établir une communication chiffrée.
• pour pallier Ce problème certaines E/ses mettent en place des Vpn à base de Ssl.
Anas Abou El Kalam
105
VPN : L'intranet VPN
∀ méthode ==> l'importance dans le VPN d'avoir une authentification forte des U.
106
Anas Abou El Kalam
– e.g., vérification "login / mot de passe",
"Tokens sécurisés" (pwd aléatoires), certificats, ...
VPN : bilan
Un système de Vpn doit pouvoir mettre en oeuvre les fonctionnalités suivantes :
Authentification U
– Seuls U autorisés doivent pouvoir s'identifier sur réseau virtuel
– historique connexions et actions effectuées sur le réseau doit être conservé.
utilisé pour relier au moins deux intranets entre eux.
Ce type de réseau est particulièrement utile au sein d'une E/se possédant ++ sites distants.
Données sensibles (BD clients, infos financières...) peuvent être amenées à transiter sur VPN.
Des techniques de cryptographie sont mises en oeuvre pour vérifier que les données n'ont pas
été altérées. Il s'agit d'une authentification au niveau paquet pour assurer
– la validité des données,
– l'identification de leur source
– non-répudiation.
La plupart des algos utilisés font appel à signatures qui sont ajoutées aux paquets.
La confidentialité des données est, elle aussi, basée sur des algos de chiffrement.
La technologie en la matière est suffisamment avancée pour permettre une sécurité quasi
parfaite. Le coût matériel des équipements de chiffrement ainsi que limites légales interdisent
l'utilisation d'un codage " infaillible ".
Généralement pour confidentialité, codage en lui-même pourra être moyen, mais sera combiné
107
Anas Abou El Kalam
avec d'autres techniques comme l'encapsulation
IP dans IP pour assurer sécurité raisonnable.
Gestion d'adresses
– Chaque client sur réseau doit avoir une adresse privée, qui doit rester
confidentielle
– Un nouveau client doit pourvoir se connecter facilement au réseau et recevoir
une @.
Chiffrement des données
– Lors de leurs transports sur le réseau public les D doivent être protégées.
Gestion de clés.
– Les clés de chiffrement pour C &S doivent pouvoir être générées et régénérées.
Prise en charge multiprotocole
– Solution VPN doit supporter protocoles les plus utilisés sur réseaux publics (IP, ..
Le Vpn est un principe : il ne décrit pas l'implémentation effective de ces
caractéristiques. C'est pourquoi il existe plusieurs produits différents sur le marché
dont certains sont devenus standard, et même considérés comme des normes 108
Anas Abou El Kalam
VPN : implémentations
Plan
Protocoles de niveau 2 comme
SSL
– PPTP de Microsoft
– L2tp (Layer Two Tunneling Protocol) proposé par l’IETF.
SSH
Protocoles de niveau 3 comme
– IPSec
IPSec
– MPLS
VPN
S-MIME
PGP
Anas Abou El Kalam
109
110
Anas Abou El Kalam
Aspects juridiques
Plan
SSL
Evolution juridique de la signature électronique
1997
SSH
EUROPE
IPSec
Directive
1999/93/CE
« Signature
électronique »
FRANCE
VPN
Recommandation
97/489/CE
« Lien entre le titulaire
et l’émetteur »
1999
S-MIME
2000
2001
Directive
2000/31/CE
« Commerce
électronique »
Loi
2000-230
Décret
2001-272
PGP
Anas Abou El Kalam
111
Anas Abou El Kalam
112
La Directive 1999/93/CE
La Directive 1999/93/CE
Article 5 : reconnaissance légale de la signature
électronique
– La signature électronique doit être acceptée au même titre qu’une signature
manuscrite pour autant que :
La Directive européenne 1999/93/CE
– Rappel sur la portée d’une Directive : une Directive est un texte qui
fixe les objectifs à atteindre pour les états membres, sans pour
autant imposer la manière d’y parvenir. La directive est découpée
en articles :
• Elle soit accompagnée d’un certificat qualifié
• Qu’elle soit créée par un dispositif sécurisé
– Cependant, une signature électronique ne peut être rejetée directement
comme preuve non valide si elle ne respecte pas ces contraintes
Article 2 : définitions
Article 4 : principe de la libre circulation sur le marché
intérieur
– Signature électronique : authentification
– Signature électronique avancée : authentification, intégrité et non
répudiation
– Certificat : donnée qui confirme la relation entre une personne et sa
signature électronique
– Certificat qualifié : un certificat délivré par un prestataire de service
de qualification et portant diverses informations, dont une période
de validité
– Prestataire de service de certification : une entité capable de founir
des certificats (les « obligations » à remplir sont également
précisées dans la directive
Anas Abou El Kalam
– Les produits et services relatifs à la signature électronique sont soumis aux
législations des pays d’origine, ils doivent circuler librement
Article 3 : absence d’autorisation préalable et accès au
marché
– La fourniture des services de certification n’est pas soumise à une autorisation
préalable 9 cependant les états membres peuvent émettre des
recommendations visant à augmenter la qualité de ces services
113
La Directive 1999/93/CE
Anas Abou El Kalam
114
La Directive 1999/93/CE
Article 6 : responsabilité des prestataires de
certification
Article 7 : la dimension internationale
– Cet article prévoit des mécanismes de coopération pour
faciliter les accords bi-latéraux en vue de favoriser le
commerce électronique
– Les prestataires sont responsables d’un minimum de choses :
• Ils doivent s’assurer de l’exactitude des informations contenues dans le
certificat
• Ils doivent s’assurer que le porteur du certificat est attitré en tant que tel
• Ils doivent assurer que dans le cas où le prestataire génère les
données nécessaires à la signature et à la vérification, ces données
soient effectivement complémentaires
Articles 9 & 10 : création d’un comité de
conseil
– Un comité est créé pour assister la CE dans les décisions
concernant la signature électronique
Article 8 : protection des données personnelles
– Les prestataires sont tenus à respecter la Directive européenne sur
la protection des données personnelles 95/46/CE
– De plus, ils ne peuvent récolter ces informations que depuis le
porteur du certificat (ou avec son consentement explicite)
Anas Abou El Kalam
115
Anas Abou El Kalam
116
La Loi 2000-230
La Loi 2000-230
La Loi 2000-230 modifie quelques articles du code civil
L’article 1316 : la preuve écrite est indépendante du
support ou du mode de transmission
L’article 1316-4 : institution de la propriété officielle
de la signature et équivalence de la signature
électronique lorsqu’elle est établie par un
processus fiable
L’article 1316-1 : la signature électronique est acceptée
en tant que preuve à condition qu’elle possède les
propriétés d’authentification et d’intégrité
L’article 1317 : extension de l’acte authentique au
support électronique
L’article 1316-2 : le règlement des conflits, lorsqu’il n’y a
pas de texte explicite, se fait par le juge en utilisant la
preuve la plus vraisemblable, quelque soit le support
L’article 1326 : un acte unilatéral engagant un
signataire doit être écrit par lui-même, la
précedente version de l’article indiquant par sa
L’article 1316-3 : l’écrit électronique a la même force
probante que l’écrit sur papier
Anas Abou El Kalam
main
Le décret 2001-272 suit la Directive 1999/93/CE et
offre un cadre opérationnel pour la Loi 2000-230
117
Anas Abou El Kalam
118
Téléchargement