Académique Documents
Professionnel Documents
Culture Documents
Scurit et Rseaux
UE RSX 112
2007-2008
G. Florin, S. Natkin
-1-
-2-
CHAPITRE 1 : FONCTIONS
CRYPTOGRAPHIQUES
Exercice 1 : Chiffres cls secrtes; cryptogramme 1
1) Cassez le cryptogramme suivant qui utilise une substitution monoalphabtique. Le texte en
clair ne contient que des lettres. Cest un extrait dune fable de La Fontaine.
gcxobwryv ib ogx tb syiib
ypsyxg ib ogx tbv qmgzev
t cpb wgqrp wrox qysyib
g tbv obiybwv t roxrigpv
vco cp xgeyv tb xcojcyb
ib qrcsbox vb xorcsg zyv
ab igyvvb g ebpvbo ig syb
jcb wyobpx qbv tbcd gzyv
ib obfgi wcx wrox mrppbxb
oybp pb zgpjjcgyx gc wbvxyp
2) En supposant que vous disposiez dun histogramme de la rpartition des lettres et des
digrammes dans la langue franaise ainsi quune fonction Nombre_fautes(texte) qui donne (selon un
correcteur orthographique) el pourcentage de mots dans un texte qui ont au moins une faute
dorthographe, imaginez un algorithme de cryptanalyse de ce type de crypto-systmes
-3-
lettre
h
k
l
n
u
a
d
f
m
e
j
z
q
s
t
w
r
i
c
p
o
v
x
y
g
b
Total
Exemple
pourcentage
0,0
0,0
0,0
0,0
0,0
0,5
0,5
0,5
1,0
1,5
2,0
2,0
2,5
3,0
3,4
3,9
4,4
5,9
6,4
6,4
7,4
7,9
7,9
8,4
8,9
15,8
100,0
Nb lettre
0
0
0
0
0
1
1
1
2
3
4
4
5
6
7
8
9
12
13
13
15
16
16
17
18
32
203
-4-
lettre
k
w
z
j
y
x
h
b
q
f
g
v
m
p
c
d
o
u
l
r
i
t
n
a
s
e
Franais
pourcentage
0,0
0,1
0,1
0,2
0,3
0,5
0,7
0,8
0,8
1,1
1,2
1,3
2,3
2,9
3,4
4,3
5,2
5,2
6,0
6,4
7,2
7,4
7,7
8,1
8,9
17,7
99,9
-5-
-6-
-7-
Bernard
Choisir n
au hasard
(entier)
Choisir p
au hasard
(pair ou
impair)
Envoyer n en clair
Envoyer p en clair
Dcision finale :
Alice gagne si
Bernard na pas
donn la bonne
parit.
Dcision finale
Bernard gagne sil
a donn la bonne
parit.
1) Etudiez le protocole prcdent en scurit. Quelles sont les fraudes possibles de la part de Alice
ou Bernard ?
2) On cherche une solution au jeu de pile ou face en rseau sans utiliser de fonctions
cryptographiques. On doit donc transmettre des valeurs alatoires en clair par messages
CNAM- Anne 2007/2008
-8-
Bernard
Choisir n au hasard
(entier).
Choisir k cl secrte
Choisir p
au hasard
(pair ou
impair)
Envoyer p en clair
Envoyer n et k en clair
Dcision finale :
Alice gagne si
Bernard na pas
donn la bonne
parit.
Dcision finale
Bernard gagne sil
a donn la bonne
parit.
3) Le protocole obtenu est il scuritaire (selon vous est ce que Alice ou Bernard en utilisant ce
protocole avec un chiffre cl secrte peuvent tricher) ?
4) Dans les mmes conditions qu' la question prcdente, utilise maintenant une fonction f de
chiffrement asymtrique (typiquement le chiffre RSA). Alice dtermine au dbut du protocole un
couple cl publique/cl prive. Pour envoyer n chiffr au dbut sous la forme fk(n), Alice doit-elle
chiffrer avec la cl prive ou avec la cl publique qu'elle vient de dterminer. Alice termine en
envoyant comme prcdemment les moyens de dchiffrement de n (k,n). Le protocole obtenu est il
scuritaire (selon vous est ce qu'en utilisant ce protocole avec un chiffre cl publique Alice ou
Bernard peuvent tricher)? (2 points)
Dans une approche cls publiques avec le chiffre RSA, Alice doit donc gnrer pour ellemme un couple cl publique (note (e,N)), cl prive (note (d,N)) avec N=PQ produit de deux
CNAM- Anne 2007/2008
-9-
nombres premiers. Cependant, dans l'optique d'une approche cl publique il est assez naturel que
Alice aprs avoir choisi son couple cl publique, cl prive dvoile Bernard sa cl publique. On va
donc examiner maintenant une nouvelle solution dans laquelle Alice commence le protocole en
gnrant un couple cl publique/cl prive. Elle choisit l'entier n alatoire. Dans son premier message
elle communique Bernard la valeur de la cl publique (e, N) en clair et le chiffre RSA de n au
moyen de sa cl publique. A la fin du protocole Alice dvoile Bernard sa cl prive Pour simplifier
la vrification Alice dvoile aussi les deux entiers premiers utiliss P et Q. Bernard a le mme
comportement que prcdemment en choisissant p et en le transmettant en clair.
Alice
Bernard
Choisir p
au hasard
(pair ou
impair)
Envoyer p en clair
Dcision finale
Bernard gagne sil
a donn la bonne
parit.
5) Le protocole obtenu est il scuritaire (selon vous est ce que Alice ou Bernard en utilisant ce
protocole avec le chiffre cl publique RSA peuvent tricher)?
Aprs avoir cherch utiliser un chiffre on cherche maintenant utiliser une fonction de
hachage cryptographique H (comme le MD5 ou le SHA-1). Une solution de base avec fonction de
hachage est la suivante :
-10-
Alice
Bernard
Choisir n
au hasard
(entier)
Choisir p
au hasard
(pair ou
impair)
Envoyer H(n)
Envoyer p en clair
Envoyer n en clair
Dcision finale :
Alice gagne si
Bernard na pas
donn la bonne
parit.
Dcision finale
Bernard gagne sil
a donn la bonne
parit.
6) Rappelez la dfinition dune fonction de hachage sens unique. Que se passe til (du point de vue
de la scurit), si la fonction H nest pas sens unique ?
7) Rappelez la dfinition dune fonction de hachage collisions faibles difficiles. Que se passe til
(pour la scurit) si la fonction H nest pas collisions faibles difficiles ?
8) Rappelez la dfinition dune fonction de hachage collisions fortes difficiles. Que se passe til
(pour la scurit) si la fonction H nest pas collisions fortes difficiles ?
9) Le protocole sous lhypothse que H est sens unique et collisions fortes difficiles est il
scuritaire (Alice ou Bernard peuvent ils tricher) ?
10) Alice et Bernard souhaitent dfinir un protocole, qui puisse tre en cas de litige, soumis un
juge. Pour cela, Alice et Bernard se proposent de modifier le protocole qui vient d'tre dcrit (avec
fonction de hachage) ou dajouter lutilisation dautres fonctions cryptographiques dans les
messages. Proposez des modifications pour une version du protocole qui puisse tre soumise
larbitrage en non rpudiation dun juge (justifiez les mcanismes introduits permettant de dfendre le
point de vue que seuls Alice ou Bernard peuvent tre l'auteur de leurs messages et que les messages
mis ont effectivement t reus) ?
11) La mthode de Diffie-Hellman est rpute permettre un change de cl secrte alatoire entre
deux entits qui ne peuvent communiquer que par un rseau non scuris. L'objectif est donc que la
cl ne circule jamais en clair sur le rseau et qu'elle soit alatoire. On peut donc essayer de rsoudre
le problme pos par la scurisation du jeu de pile ou face en rseau, en utilisant la solution de
Diffie-Hellmann pour partager les deux variables alatoires ncessaires au jeu de pile ou face. Peuton construire une solution au jeu de pile ou face empchant Alice ou Bernard de tricher et qui serait
bas sur l'utilisation du protocole de Diffie et Hellmann? (2 points)
-11-
-12-
-13-
Que pourrait faire le notaire pour que le serveur B et le notaire ne soient jamais pigs par
un client malveillant qui dclare la perte de sa cl aprs avoir donn un ordre et avant dmax. Dans
quelles applications une telle stratgie est elle utilisable? Dans quelles applications est-elle
inutilisable?
5) La solution utilise l'algorithme RSA. Si un utilisateur pour rpudier sa signature lectronique
conteste la scurit du protocole quels arguments peuvent tre opposs?
6) Le site B peut essayer de dnier avoir reu l'ordre (s'il ne lui convient pas) en n'mettant pas
l'acquittement final et en prtendant ensuite qu'il n'a jamais reu la transaction interprtable ou que
son calculateur est tomb en panne ce moment. Comment le notaire peut-il contrer cette attitude
(recherchez une solution dduite des pratiques bancaires courantes)?
-14-
-15-
2.1) Proposez des modifications du protocole Px pour dfinir le protocole Py qui assurent le
changement scuris des cls.
A
Choisir un nombre
alatoire RA
Envoyer [RA]
RA
Recevoir [RA]
Choisir un nombre
alatoire RB
Envoyer [DB{EA(RA),RB}]
DB{EA(RA),RB}
Recevoir [DB{EA(RA),RB}]
Dcoder RA et RB
Envoyer [DA{EB(RB)}]
DA{EB(RB)}
Recevoir [DA{EB(RB)}]
Dcoder RB
2.2) Quelles cls change-t-on, quel moment, selon quel cryptage? Justifiez votre solution. On
rappelle que la scurit de l'algorithme RSA repose sur le fait que les cls prives doivent rester
confidentielles.
3) En quoi la technique de modification des cls applique rend t-elle extrmement difficile l'action
des pirates.
3.1) On examinera d'une part le problme de dcryptage par un pirate qui essaierait de casser le
code par analyse des messages changs.
3.2) On examinera ensuite le cas d'un pirate qui connatrait les cls initiales d'un utilisateur A ou B
par des moyens autres que le dcryptage (ngligence de l'utilisateur). Que se passe-t-il?
3.3) L'accs au calculateur de l'metteur ou du destinataire en session distance constitue une
possibilit d'attaque d'un tel protocole. Que doit faire un pirate qui a russi se connecter?
3.4) Quels sont les moyens matriels et logiciels qui protgent les systmes de ce type d'attaque?
4) 4.1) Quand on est en phase i (avec les couples des cls (EA(i), DA(i)) (EB(i), DB(i)) ) comment
sont assures la confidentialit et l'authentification des messages en mode RSA ?
4.2) Quel est l'inconvnient majeur de cette approche ?
4.3) Comment pourrait-on rsoudre ce dernier problme ?
CNAM- Anne 2007/2008
-16-
B (Bernard)
4) La cryptographie cls publique est rpute permettre des interlocuteurs ne se connaissant pas
de communiquer de faon confidentielle. On cherche une solution cl publique entre deux entits A
et B (Alice et Bernard). La solution recherche est discipline intrinsque cest dire que le
protocole garantit par lui mme la scurit poursuivie sans utiliser de gardien de cl, de juge,
darbitre, de notaire etc. pour rgler dventuels problmes. Proposez un protocole scuris
dchange de cl discipline intrinsque utilisant la cryptographie cl publique. Analysez votre
protocole en termes de rptition et dinsertion dans le rseau entre Bernard et Alice dun pirate
Martin.
5) Une ide due Rivest et Shamir, deux des inventeurs du RSA a t baptise protocole
cliquets car elle fonctionne par tapes qui ne permettent pas de revenir en arrire. Il sagit dune
solution cl publique et discipline intrinsque dont lobjectif est de parer une attaque de
lintercepteur Martin. Le protocole suivant est plus gnral que lchange dune cl : il propose
lchange dun message not Message_A entre Alice et Bernard et dun Message_B de Bernard
vers Alice :
-17-
A (Alice)
B (Bernard)
Envoi_cl_publique( EA )---------------------------------------->
<-------------------------------------- Envoi_cl_publique( EB )
Dterminer Message_A
Premire_partie (EB(Message_A) )
Envoi (Premire_partie (EB(Message_A) ) )
-------------------------------------->
Dterminer Message_B
Premire_partie (EA(Message_B) )
Envoi (Premire_partie (EA(Message_B)))
<-------------------------------------Envoi (Seconde_partie (EB(Message_A) ) )
-------------------------------------->
Envoi (Seconde_partie (EA(Message_B)))
<--------------------------------------Dchiffrage complet Message_B
Dchiffrage complet Message_A
Le dcoupage des messages crypts en deux parties (par exemple par moiti) doit simplement
tre tel quune partie dun message chiffr nest pas dchiffrable directement sans la connaissance de
lautre partie. On enverrait par exemple dans un codage par blocs, la premire moiti de chacun des
blocs puis la seconde moiti de chacun des blocs. Pourquoi un tel protocole gne t il
considrablement une attaque dun intercepteur ?
6) Avec la mthode dchange dun secret de Diffie et Hellman (1976) deux sites peuvent partager
une valeur secrte. Chaque site met une valeur caractristique du secret (qui est donc publique) et
chaque site utilisant cette valeur peut calculer un secret. Pourquoi ce secret ne peut tre devin par
un couteur passif ? Que peut faire un couteur actif pour contrer ce protocole ?
7) Pour donner un bon niveau de scurit, la plupart des solutions implantes utilisent un annuaire (un
tiers de confiance) qui distribue des cls publiques de manire scurise. On appelle certificat une
donne liant un nom logique (un nom dusager) et une clef publique associe ce nom. Un protocole
dchange de cls de session commence alors par un accs scuris une cl publique comme suit :
A (Alice)
Demande_certificat (B)
Gardien
B (Bernard)
---------------------------------------------------------->
Envoyer_certificat (certificat_B)
<--------------------------------------------------------Comment le protocole suivant est il excut pour empcher une attaque de lintercepteur
Martin ? On peut ensuite par exemple procder un change de cl de session en toute confiance.
8) DAP ("Directory Access Protocol") est le protocole client serveur de gestion rpartie de
l'annuaire X500 associ la messagerie X400. LDAP ("Lightweight Directory Access Protocol") est
une version simplifie de DAP adapte lenvironnement Internet pour en faire un protocole de
niveau application de l'Internet. Il permet un client LDAP d'accder, de modifier, d'ajouter des
donnes un annuaire gr par un serveur LDAP en utilisant les protocoles TCP/IP. De trs
nombreux types de donnes peuvent tre stocks dans un annuaire LDAP mais la donne
CNAM- Anne 2007/2008
-18-
essentiellement gre par les annuaires LDAP sont des certificats au format X509. Les certificats
X509 ont t dfinis au dpart dans la norme X509 de la suite des protocoles X500. La
spcification suivante dfinit lessentiel de la structure de donne associe un certificat au format
X509 (langage de syntaxe de donnes ASN1). Commentez la structure de donne ainsi retenue.
Comment est vrifie une signature ?
Certificate ::= SIGNED {
SEQUENCE{
version [0]
Version DEFAULT v1,
serialNumber
CertificateSerialNumber,
signature
AlgorithmIdentifier,
issuer
Name,
validity
Validity,
subject
Name,
subjectPublicKeyInfo SubjectPublicKeyInfo,
issuerUniqueIdentifier
[1] IMPLICIT UniqueIdentifier OPTIONAL
}
}
Version ::= INTEGER { v1(0), v2(1), v3(2) }
CertificateSerialNumber ::= INTEGER
AlgorithmIdentifier ::= SEQUENCE {
algorithm
ALGORITHM.&id({SupportedAlgorithms}),
parameters
ALGORITHM.&Type ({SupportedAlgorithms}
{@algorithm}) OPTIONAL }
SupportedAlgorithms ALGORITHM ::= { ... }
Validity ::= SEQUENCE { notBefore UTCTime, notAfter UTCTime }
SubjectPublicKeyInfo ::= SEQUENCE { algorithm AlgorithmIdentifier,
subjectPublicKey BIT STRING
}
Time ::= CHOICE { utcTime
UTCTime,
generalizedTime
GeneralizedTime }
SIGNED { ToBeSigned } ::= SEQUENCE {
toBeSigned ToBeSigned,
encrypted ENCRYPTED { HASHED {ToBeSigned }}}
-19-
C
Pour mettre le chque en paiement, C signe le chque en utilisant sa cl prive et transmet le
chque endoss sa banque BC pour que le montant soit vir son compte.
C, BC , Id_Cheq_A , Montant , Dc (Da (H (A , C , Id_Cheq_A , Montant )))
C
BC
I.1) Avec ce protocole un intrus peut-il faire payer ses dpenses auprs de C en se faisant passer
pour A . Comment C vrifie que seul A, a pu mettre le chque ?
I.2) Avec ce protocole pourquoi la banque BC est elle sure que seul A a pu mettre le chque, quil
est destin C et que C a accept le paiement ? Voyez vous une diffrence entre la signature
Dc(Da(H(A,C,Id_Cheq_A ,Montant))) et lutilisation de deux signatures concatnes
Da(H(A,C,Id_Cheq_A,Montant)), Dc(H(A,C,Id_Cheq_A,Montant))
I.3) Avec ce protocole, C peut-il prsenter plusieurs fois le chque en paiement sa banque ? A
peut-il utiliser plusieurs fois le mme chque pour payer C (le mme commerant) ou des
commerants diffrents ?
I.4) Est ce que les paiements effectus par A sont confidentiels ?
I.5) Est ce que A peut faire des chques sans provision ?
CNAM- Anne 2007/2008
-20-
BA
A, C, Id_Cheq_A , Montant , Dba(Da(H (A,C, Id_Cheq_A ),Montant)))
BA
A
A, C, Id_Cheq_A , Montant , Dba(Da(H (A,C, Id_Cheq_A ),Montant)))
C
A, C, Id_Cheq_A , Montant , Dc(Dba(Da(H (A,C, Id_Cheq_A ),Montant)))
BC
-21-
Bob
Bob gnre un nombre
alatoire s sur k bits;
il calcule h1 = {C s} H
Rseau
Alice
Bob, Alice,'Demande
opration', h1
-22-
Bob
Bob gnre s alatoire
sur k bits et calcule :
h0 = C s
h1 = {h0}H
Rseau
Alice
hi = {hi-1}H
..
hn= {hn-1}H
Bob conserve la suite h1
, . hi, , hn
2
hi = {hi-1}H
..
hn+1= {hn}H
Alice dtruit les hi et ne
conserve que hn+1
4
Demande de la
premire opration
.
2+ Demande de la ime
2i opration (i n)
..
Bob, Alice, 'demande d'opration',
hn-i+1
2+
2i
+1
Authentification de Bob ?
Ralisation de lopration 1
si OK
Authentification de Bob ?
Ralisation de lopration i
si OK
6) Bob mmorise toute la suite des hi quil prsente un par un chaque opration en commenant
par hn puis hn-1. puis hn-i+1.. Alice mmorise une seule valeur en commenant par hn+1 quelle
remplace ensuite par hn puis hn-1 et ainsi de suite chaque nouvelle opration. Quelle est la
vrification ralise par Alice pour authentifier Bob aux tapes 5 et 2+2i+1 ?
7) Expliquez pourquoi Estelle, qui observe ce protocole ne peut aucune tape en tirer des
informations suffisantes pour pouvoir usurper lidentit de Bob.
CNAM- Anne 2007/2008
-23-
Supposons que lon se place dans une approche de cryptographie cl publique. Alice et
Bob disposent donc de couples cl publique, cl prive et de certificats accessibles dans un annuaire
de certificats. Pour raliser le protocole prcdent dauthentification, dans une tape pralable, Alice
et Bob doivent sauthentifier en utilisant un protocole clef publique, Alice doit gnrer la cl secrte
C et doit lenvoyer Bob en utilisant galement la mthode cls publiques.
8) Donnez une solution pour cette authentification mutuelle et pour l'change de cl C. Quel(s)
protocole(s) de l'Internet pourrait servir faire ces authentifications.
Supposons que Alice soit une banque et Bob un de ses clients. On utilise maintenant le
protocole prcdent pour faire des micro paiements. Un protocole de micro paiement est un
protocole permettant de dbiter des sommes trs faibles pour des applications de consultation
payantes sur Internet (lire une page d'un document ou dun journal par exemple). On suppose que n
reprsente une somme en centimes d'euro (n = 1000 centimes par exemple). Cette somme est
dbite du compte courant de Bob au dbut et crdite un compte "de micro paiement" utilisable par
Bob.
On suppose que chaque dbit de micro paiement vaut un centime, ce centime est dbit du
compte de micro paiement de Bob lors de la ralisation par Alice dune opration. Chaque
opration du protocole prcdent est donc un paiement d'un centime.
Quand le compte de micro paiement est vide, Bob doit alimenter nouveau son compte de
micro paiement et Alice et Bob recommencent toute une autre srie doprations de micro paiement.
Si Bob dcide de ne plus payer de cette faon, alors que son compte de micro paiement n'est pas
vide, son compte courant est crdit du solde du compte de micro paiement.
9) Expliquez pourquoi Bob ne peut pas faire de la fausse monnaie (chaque centime est identifi, ne
peut tre rejou).
10) Expliquez pourquoi Estelle ne peut se substituer Bob pour utiliser le compte de micro paiement
de Bob.
11) Quel est l'avantage de ce protocole par rapport un paiement qui utiliserait chaque tape une
authentification selon les mthodes habituelles (par exemple utilisation de SSL pour les paiements par
carte bancaire sur Internet).
-24-
3) Ladministrateur examine deux certificats diffrents et constate quils portent des cls publiques
identiques. Quelle peut tre la source de cette situation ? Quel est le danger rsultant ?
4) Ladministrateur constate que deux certificats diffrents portent un numro de srie identique.
Quelle peut tre la source de cette situation ? Quel est le danger rsultant (que doit faire
ladministrateur) ?
5) Ladministrateur constate que deux certificats diffrents sont signs au moyen de la mme cl
prive. Quelle peut tre la source de cette situation ? Quel est le danger rsultant (que doit faire
ladministrateur) ?
-25-
3. Quand Alice sollicite le serveur Bob, elle utilise le ticket que lui a remis le KDC quil met dans
sa requte.
Nous allons dtailler les trois tapes prcdentes. Pour cela, nous dfinissons prcisment
les notations des diffrents objets manipuls par le protocole :
Alice
A,a
SA,sa
Bob
B,b
Kerberos
KDC,kdc
KAB,kab
Ticket
date_fab_X
date_courante
Le nom du client.
Une clef utilise par Alice pour sauthentifier qui en gnral est drive dun mot
de passe A est connue dAlice et de Kerberos (en majuscule quand elle est
utilise pour le dchiffrement, en minuscule pour le chiffrement)
La clef de session dAlice SA est connue dAlice et de Kerberos
Le nom du serveur invoqu.
La clef prive du serveur Bob. (en majuscule quand elle est utilise pour le
dchiffrement, en minuscule pour le chiffrement)
Le nom du serveur de distribution des clefs
La clef de Kerberos connue de lui seul(en majuscule quand elle est utilise pour
le dchiffrement, en minuscule pour le chiffrement)
La clef de session dtermine entre client et serveur. (en majuscule quand elle est
utilise pour le dchiffrement, en minuscule pour le chiffrement)
Le ticket donn un client Alice pour utiliser un serveur Bob.
La date de fabrication de l'objet X
Date donne par lhorloge locale de la machine
Comme dans tout systme d'accs a mots de passe, le client a convenu pralablement avec
ladministrateur systme dun nom (Alice), et dun mot de passe qui devient la clef prive A dAlice.
Pareillement, il a t convenu, pour le programme serveur, dun nom (Bob), et dune clef prive B.
Les clefs ne sont connues que de leur propritaire (qui doivent donc les garder secrtes), et du
serveur d'authentification Kerberos. Ce systme doit donc tre particulirement bien protg.
-27-
Alice
Kerberos
KSB_AS_REQ, Alice, Kerberos
Gnre la clef SA ;
date_per_SA := date_courante+ dure_validit ;
TGT= {Alice, SA, date_per_SA}sym
kdc
2) Expliquez lusage des deux chiffrements raliss dans cette tape. Contre quelle attaque est
utilise la variable date_per_SA ? Expliquez son usage.
Etape 2 : Obtention du ticket daccs au serveur
Lorsque Alice dsire (durant la priode de validit de son ticket dauthentification) utiliser le service
du serveur Bob, elle adresse Kerberos une requte daccs ce serveur. Cette requte contient
outre le nom du serveur, TGT et la date courante chiffre avec SA. A rception de cette demande
Kerberos dchiffre TGT, rcupre la clef SA, dchiffre la date avec SA et vrifie que cette date est
voisine de son heure courante.
3) Que prouve ce contrle ? Quelle technique de protection peut utiliser Kerberos pour le contrle
des droits dAlice? Quel est lusage du chiffrement ralis par Kerberos?
Etape 3 : Accs au serveur applicatif
Dans un dlai compatible avec la dure de validit du Ticket, Alice va demander au serveur Bob
dexcuter la transaction pour laquelle elle a obtenu le ticket. Elle envoi donc ce serveur une
requte avec le ticket.
4) A quoi sert la variable d1 et pourquoi est elle chiffre ? Expliquez le principe du contrle ralis
par Bob ? Quel est lusage de la variable REP2 ? A quoi pourra servir KAB dans la suite des
changes de la transaction courante entre Alice et Bob ? Comment appelle ton une telle variable?
Extension de Kerberos
Une extension de Kerberos est en cours de normalisation. Elle consiste utiliser un crypto
systme asymtrique pour toutes les oprations utilisant des clefs rmanente (A,B, KDC). Dans ce
cas Kerberos na plus besoins de stocker les clefs symtriques de chaque participant. Il ne stocke
que des clefs symtriques de session et sa clef (KDC) et des certificats pour chaque utilisateur. Ceci
rduit considrablement le risque li une attaque de Kerberos.
5) Donnez le schma dchange de messages de ltape 1 (cas nominal) correspondant cette
extension en justifiant lutilisation de chaque opration cryptographique.
[Adr_c ; Adr_s ; ( { Ac }Cl_sess_c,s ; { Tc,s }Cl_s ) ]
CNAM- Anne 2007/2008
-28-
Longueur
Identificateur
Donnes
PAP est bas sur la connaissance par les deux sites dun mot de passe secret associ au
demandeur. Aprs ngociation des paramtres de liaison et avant lchange de donnes, le site
demandant laccs au rseau avec PAP doit fournir son mot de passe au prestataire daccs.
Lchange est le suivant :
Trame Code 1 : Demande dauthentification (par lusager)
La zone donnes comporte :
- longueur du nom du demandeur utilis (1 octet)
- nom du demandeur daccs (user's name)
- longueur de mot de passe utilis (1 octet)
- mot de passe (password)
Le mot de passe est trait comme dans les systmes classiques. Il est compar avec une
valeur stocke dans un fichier de mots de passes (ventuellement crypts) sur le site du prestataire
daccs.
Trame Code 2 : Acquittement positif dauthentification
La zone donnes est inexistante.
Le demandeur peut ensuite mettre des trames PPP.
Trame Code 3 : Rejet dauthentification
Lutilisateur ne peut pas transmettre de trames. Il doit mettre nouveau une trame
de code 1 et russir les tapes 1 et 2.
1) Citez deux faiblesses de cette mthode ?
-29-
-30-
Code
Ident
Longueur
Authentificateur
(16 octets)
Attributs
Les diffrents champs dans le dessin prcdent ont la signification suivante :
a) Le code dfinit en fait sur un octet le type du message.
1
Access-Request
2
Access-Accept
3
Access-Reject
CNAM- Anne 2007/2008
-31-
4
5
11
12
13
255
Accounting-Request
Accounting-Response
Access-Challenge
Status-Server (experimental)
Status-Client (experimental)
Reserved
b) Lidentificateur (identifier sur un octet) associe les requtes et les rponses. La zone
longueur (length) dfinit sur deux octets la longueur totale des donnes incluant code, longueur etc.
c) Lauthentificateur (Authenticator) (16 octets) est utilis comme son nom lindique pour
lauthentification. Sa mthode de calcul est diffrente selon les types de messages (voir plus loin
lexplication du protocole).
d) Les attributs (Attributes) sont utiliss pour vhiculer toutes les informations ncessaires
aux changes AAA. Le format dun attribut est le suivant :
Longueur
Type
Valeur
2 User-Password
3 CHAP-Password
5 NAS-Port
6 Service-Type
8 Framed-IP-Addres
9 Framed-IP-Netmask
11 Filter-Id
12 Framed-MTU
14 Login-IP-Host
15 Login-Service
17 (unassigned)
18 Reply-Message
20 Callback-Id
21 (unassigned)
23 Framed-IPX-Network 24 State
26 Vendor-Specific
Client_RADIUS
Access-Request
Access-Accept ou Access-reject
-32-
- Le champ authentificateur contient une valeur alatoire de 16 octets. Dans le message AccessRequest cette valeur est baptise authentificateur de requte (Request Authenticator).
- Un champ attribut de type nom dusager contient le nom dutilisateur en clair.
- Un champ attribut de type mot de passe contient le mot de passe usager cod par :
MD5 ( Secret || Authentificateur ) OUEX Mot_de_passe
|| : l'oprateur de concatnation.
MD5 : fonction de hachage sens unique pour crer une signature de 16 octets.
OUEX : ou exclusif (en anglais XOR) entre lempreinte MD5 et le mot de passe sur 16 octets.
Une technique est propose pour crypter les mots de passe de plus de 16 octets sur 16
octets. Si pi est le ime bloc de 16 octets du mot de passe le calcul est donn par :
b1 = MD5(Secret || Authentificateur)
c(1) = p1 ouex b1
b2 = MD5(Secret || c(1))
c(2) = p2 ouex b2
...
bi = MD5(Secret || c(i-1))
c(i) = pi ouex bi
Structure du message Access-Accept ou Accept-Reject
- Ces messages de rponse servent essentiellement par leur type accepter ou rejeter
lauthentification.
- Le champ Authentificateur des messages Access-Accept ou Access-Reject contient une signature
MD5 des informations suivantes concatnes (notion de Response Authenticator)
MD5 (
Code de rponse ||
Identificateur de rponse ||
Longueur de rponse ||
Authentificateur (celui de la requte) ||
Attributs de rponse (si ncessaire) ||
Secret )
- Zones attributs (si ncessaire).
1) Dans le message access-request comment est utilis lauthentificateur ( quoi sert il) ? Quelles
sont les caractristiques associes lauthentificateur de requte pour que le secret ne puisse tre
dcrypt ?
2) On remarque dans la mthode dauthentification RADIUS lemploi de MD5 et du ou exclusif.
Quelle est la mthode de chiffrement qui se rapproche le plus de la mthode employe pour le mot
de passe (pourquoi le mot de passe ne peut-il tre dcrypt)?
3) Comment le serveur vrifie til lidentit de lusager ? Peut-on utiliser un fichier des mots de passe
crypts comme en UNIX ou doit-on avoir les mots de passe en clair sur le serveur RADIUS?
4) Le client peut-il galement authentifier le serveur ?
5) La solution rsiste telle une attaque par rptition ?
CNAM- Anne 2007/2008
-33-
Client_RADIUS
Access-Request
Access-Challenge
Access-Request
Access-Accept ou Access-reject
-34-
Exercice 18 : Scurisation des rseaux sans fils WIFI : les normes WEP
Le dveloppement des rseaux locaux sans fils IEEE 802.11 connus sous le sigle
commercial WIFI (WIreless FIdelity) est trs rapide et trs important. Les rseaux locaux sans fils
(Wireless LANs) permettent de dployer de petites infrastructures de rseau local sans avoir besoin
de cbler les btiments. Dans la plupart des cas, ces rseaux sans fils fonctionnent pour acheminer et
recevoir du trafic de lInternet mondial auquel le rseau est connect via un point daccs. Le
systme informatique qui joue le rle de point daccs possde quand lui une liaison filaire avec
lInternet.
Dans ce problme on tudie les techniques de scurit qui ont accompagn la premire
gnration du WIFI (802.11 de base en 1997, 802.11b en 1999). Ces mcanismes de scurit sont
runis sous le sigle WEP (Wired Equivalent Privacy).
1) Le problme de scurit est un problme considr comme majeur dans un rseau sans fil.
Pourquoi (citez diffrentes attaques qui rendent ces infrastructures particulirement vulnrables) ?
-35-
Le WEP suppose quune cl secrte est partage entre toutes les stations et le point
daccs. Dans cette mthode d'authentification, lorsqu'une station apparat dans un rseau, elle met
une requte d'authentification, le point daccs lui rpond par un message contenant en clair un
nonce. La station doit rpondre en retournant la valeur du nonce chiffre en RC4 au moyen de la cl
secrte. Le chiffre RC4 est le chiffre utilis pour le chiffrement en confidentialit du WEP et il est
dcrit plus loin. Si le point daccs peut vrifier que le nonce est correctement chiffr alors
lauthentification russit sinon elle choue.
4) Rappelez la dfinition d'un nonce. Quels sont les avantages et inconvnients de la mthode
dauthentification en WIFI par cls partages (particulirement du point de vue de la scurit)?
-36-
on change deux cases du tableau S. Pour le chiffrement proprement dit, on commence par choisir
une valeur stocke dans le tableau S. Cet octet, not k, rsulte dun calcul dadresse et de
lextraction de la valeur de la case du tableau S correspondante. k est utilis pour raliser le
chiffrement effectif, par un ou exclusif avec loctet en clair chiffrer.
On rappelle la dfinition du ou exclusif : 0 0 = 0, 0 1 = 1, 1 0 = 1, 1 1= 0
Avec cette dfinition on rappelle que le ou exclusif est son propre inverse (l'opration inverse du
ou exclusif , la soustraction, est le ou exclusif x x = 0).
i:= 0; j := 0 ;
rpter
(Boucle pour tous les octets chiffrer)
i := (i+1) mod 256 ;
(Choix d'une case i)
j := (j+S[i]) mod 256 ;
(Choix d'une case j)
aux := S[i] ; S[i] := S[j] ; S[j] := aux ;
(Echange de S[i] et S[j])
k := S[(S[i]+S[j]) mod 256] ;
(On prend une valeur k dans S)
octet_chiffr := octet_en_clair k ;
( ou exclusif avec k)
jusqu fin du texte en clair ;
5) Si lon utilise lopration de chiffrement RC4 spcifie par les deux algorithmes prcdents, quels
sont les algorithmes utiliss pour le dchiffrement (commentez votre rponse) ?
6) Quelle est la mthode de chiffrement vue en cours qui se rapproche le plus de ce chiffre (citez les
points de rapprochement qui vous font proposer votre choix)?
7) Quelles sont les diffrences principales entre le RC4 et le chiffre vu en cours que vous proposez ?
8) On suppose quon utilise le chiffre RC4 sur deux messages diffrents avec la mme cl. Un
attaquant coute le trafic chiffr. Cet attaquant peut connatre sur certains messages tout ou partie du
texte en clair. Par exemple, parce que le format de certains messages est connu et que de
nombreuses valeurs qui correspondent aux diffrents champs sont connues (messages complets du
protocole WIFI connus, existence denttes de messages connues avec les protocoles IP, TCP,
HTTP, SMTP ). On suppose donc que sur un message un attaquant connat un octet en clair et il
connat la valeur chiffre qui circule (octet_chiffr). Sur un second message, utilisant la mme cl,
lattaquant connat seulement loctet chiffr. En utilisant la technique de chiffrement RC4 base sur le
ou exclusif montrez que lattaquant peut dchiffrer loctet du second message ?
En WEP, pour ne pas utiliser sur chaque message la mme cl secrte (on vient de voir que
c'est trs mauvais), on complte la cl secrte partage en lui rajoutant en tte une valeur de 24 bits.
Cette valeur est appele vecteur dinitialisation. De la sorte, pour un message donn, la cl RC4
utilise est compose de trois octets de vecteur dinitialisation suivis de 5 ou 13 octets de cl secrte
partage.
WEP ne spcifie pas de rgle prcise concernant le choix du vecteur dinitialisation. La
norme indique seulement que le vecteur d'initialisation utilis pour un message doit tre transmis en
clair avec ce message. Certaines implantations commencent toujours en prenant pour le premier
message mis la valeur 0. Ensuite, le vecteur dinitialisation est gr comme un numro de squence.
Il est simplement incrment pour chaque nouveau message mis.
9) Dans cette gestion du vecteur d'initialisation, on souhaite faire une premire estimation de la
rutilisation de la mme cl. On fait un calcul approch en supposant un rseau WIFI fonctionnant
CNAM- Anne 2007/2008
-37-
-38-
November 1998
5. IP Traffic Processing
As mentioned in Section 4.4.1 "The Security Policy Database (SPD)",
the SPD must be consulted during the processing of all traffic
(INBOUND and OUTBOUND), including non-IPsec traffic. If no policy is
found in the SPD that matches the packet (for either inbound or
outbound traffic), the packet MUST be discarded.
NOTE: All of the cryptographic algorithms used in IPsec expect their
input in canonical network byte order (see Appendix in RFC 791) and
generate their output in canonical network byte order. IP packets
are also transmitted in network byte order.
5.1 Outbound IP Traffic Processing
5.1.1 Selecting and Using an SA or SA Bundle
In a security gateway or BITW implementation (and in many BITS
implementations), each outbound packet is compared against the SPD to
determine what processing is required for the packet. If the packet
is to be discarded, this is an auditable event. If the traffic is
allowed to bypass IPsec processing, the packet continues through
"normal" processing for the environment in which the IPsec processing
is taking place. If IPsec processing is required, the packet is
either mapped to an existing SA (or SA bundle), or a new SA (or SA
bundle) is created for the packet. Since a packet's selectors might
match multiple policies or multiple extant SAs and since the SPD is
ordered, but the SAD is not, IPsec MUST:
1. Match the packet's selector fields against the outbound
policies in the SPD to locate the first appropriate
policy, which will point to zero or more SA bundles in the
SAD.
2. Match the packet's selector fields against those in the SA
bundles found in (1) to locate the first SA bundle that
matches. If no SAs were found or none match, create an
appropriate SA bundle and link the SPD entry to the SAD
entry. If no key management entity is found, drop the
-39-
packet.
3. Use the SA bundle found/created in (2) to do the required
IPsec processing, e.g., authenticate and encrypt.
In a host IPsec implementation based on sockets, the SPD will be
consulted whenever a new socket is created, to determine what, if
any, IPsec processing will be applied to the traffic that will flow
on that socket.
NOTE: A compliant implementation MUST not allow instantiation of an
ESP SA that employs both a NULL encryption and a NULL authentication
algorithm. An attempt to negotiate such an SA is an auditable event.
5.1.2 Header Construction for Tunnel Mode
This section describes the handling of the inner and outer IP
headers, extension headers, and options for AH and ESP tunnels. This
includes how to construct the encapsulating (outer) IP header, how to
handle fields in the inner IP header, and what other actions should
be taken. The general idea is modeled after the one used in RFC
2003, "IP Encapsulation with IP":
o The outer IP header Source Address and Destination Address
identify the "endpoints" of the tunnel (the encapsulator and
decapsulator). The inner IP header Source Address and
Destination Addresses identify the original sender and
recipient of the datagram, (from the perspective of this
tunnel), respectively. (see footnote 3 after the table in
5.1.2.1 for more details on the encapsulating source IP
address.)
o The inner IP header is not changed except to decrement the TTL
as noted below, and remains unchanged during its delivery to
the tunnel exit point.
o No change to IP options or extension headers in the inner
header occurs during delivery of the encapsulated datagram
through the tunnel.
o If need be, other protocol headers such as the IP
Authentication header may be inserted between the outer IP
header and the inner IP header.
The tables in the following sub-sections show the handling for the
different header/option fields (constructed = the value in the outer
field is constructed independently of the value in the inner).
5.1.2.1 IPv4 -- Header Construction for Tunnel Mode
IPv4
Header fields:
version
header length
TOS
total length
ID
flags (DF,MF)
fragmt offset
-40-
TTL
protocol
checksum
src address
dest address
Options
constructed (2)
AH, ESP, routing hdr
constructed
constructed (3)
constructed (3)
never copied
decrement (2)
no change
constructed (2)
no change
no change
no change
1) Le paragraphe d'introduction du chapitre prend comme point de dpart la notion de SPD qui est
un lment de base de IPSEC. Rappelez la dfinition et le rle de la SPD. La norme souligne quun
datagramme entrant ou sortant doit obligatoirement correspondre une entre de la SPD sinon le
datagramme doit tre dtruit. Pourquoi?
Pour faciliter la lecture du texte nous fournissons les informations suivantes. Il existe trois
faons d'ajouter des traitements de scurit IPSEC des quipements en rseau existants (trois
types de solutions dimplantation dIPSEC).
a) Par la modification du code du protocole IP en intgrant compltement IPSEC dans une
implantation IP existante.
b) Une solution voisine de la prcdente mais plus modulaire consiste sparer le plus
clairement possible le code de IPSEC du code IP standard. La partie de code spcifique IPSEC
apparat alors comme un module spar de IP qui est activ si ncessaire. On parle alors en anglais
de solution "Bump-In-The-Stack" do le sigle BITS. Certains aspects comme la fragmentation et le
rassemblage des datagrammes qui peuvent tre ncessits par IPSEC, doivent quand mme tre
traits par une modification dans le code du protocole IP (qui est alors assez lgre).
Les deux solutions a) et b) sont applicables tous les types d'entits rseaux (htes, routeurs
ou passerelles de scurit) par modification logicielle.
c) La solution baptise "Bump-In-The-Wire" ayant pour sigle BITW consiste faire raliser
la scurisation IPSEC par un composant matriel/logiciel ddi, l'extrieur de lentit rseau
demandant une scurisation IPSEC. Il peut sagir dune passerelle de scurit (un quipement de
rseau ddi la scurit) ou dun routeur jouant galement le rle de passerelle de scurit.
2) A la fin du premier paragraphe de la section 5.1.1, la norme rappelle que dans la dfinition dune
politique de scurit IPSEC, les rgles sont ordonnes (elles sont exploites dans un ordre qui est
dfini par ladministrateur de la scurit). A quoi correspond cette notion dordre (pourquoi les
rgles sont-elles ordonnes) ? Indication : vous pouvez relier la dfinition dune politique de scurit
IPSEC la dfinition dune politique de scurit dans un filtre de paquets dun pare-feu.
Le paragraphe 5.1.1 distingue deux cas possibles en ce qui concerne la consultation de la
SPD. Les paragraphes associs aux deux cas commencent l'un par 'In a security gateway' et l'autre
par 'In a host'). Dans le premier cas, on voit en lisant le texte, que chaque datagramme en mission
commence par une consultation de la SPD. Dans le second cas le texte s'intresse l'application de
IPSEC sur le trafic de datagrammes cr par une socket (communication de niveau transport en
TCP ou en UDP). La SPD est consulte seulement chaque fois qu'une socket est cre.
CNAM- Anne 2007/2008
-41-
3) Expliquez cette diffrence de comportement entre les deux cas (quels sont les avantages et les
inconvnients des deux mthodes). A quel type d'implantation serait plutt associ le cas d'IPSEC
fonctionnant pour une communication socket ?
4) Le premier paragraphe dans le point 5.1.1 fait rfrence la notion de SA. Rappelez le rle d'une
SA ?
5) Le premier paragraphe du 5.1.1 fait aussi rfrence une notion de "SA bundle" ('SA bundle' :
littralement un paquet ou une liasse de SA). En effet, dans certains cas, un trafic de communication
IP est soumis plusieurs SAs, chacune d'entre elle dfinissant une transformation particulire do la
notion de SA bundle. Dans quelle circonstance enchane t'on plusieurs traitements en scurit
IPSEC? Quel intrt a-t-on alors acqurir ensemble les SA associes ?
6) On voque dans le mme paragraphe, par exemple dans la formule 'If no SAs were found
or none match, create an appropriate SA', la possibilit de cration dynamique d'une
SA. On a donc un mode statique (une SA est cre au pralable) et un mode dynamique (une SA
est cre lorsqu'un datagramme circule). Les deux modes sont adapts des rseaux de nature
diffrente. A quels types de rseaux correspondent les deux modes de cration des SAs ?
7) Comment peut-on dynamiquement crer une SA (donnez un ou des exemples de solution
technique permettant cette cration) ? Indication : le mode dynamique est principalement ralis par
les protocoles IKE/ISAKMP/OAKLEY.
-42-
-43-
Initiateur I
IP
UDP
IP
UDP
Rp : SA = une SA de la liste
IP
UDP
Cl_I
IP
UDP
Cl_R
IP
UDP
Nonce_I
Nonce_R
Identifiant_I
Hachage-I
UDP
Identifiant_R
Hachage-R
-44-
fonctionnement client serveur sans tat. Rappelez la dfinition dun mode client serveur sans tat ? Le
protocole ISAKMP/OAKLEY peut-il tre sans tat (ventuellement jusqu'o) ?
2) ISAKMP indique que le cookie a surtout pour objectif de parer des attaques en dni de service
(DOS Denial of Service). On rappelle quun dni de service est obtenu quand un site (ici le
rpondeur) est soumis par un pirate des demandes en avalanche (ici des changes de cls) pour
lempcher de travailler. Gnralement cette attaque est prpare sur diffrents sites dont lintrus a
pris le contrle et ces sites sont dclanchs simultanment (flooding attack). Peu importe que les
requtes chouent. En fonction des caractristiques du protocole ISAKMP/OAKLEY, pourquoi le
rpondeur est-il sensible au problme de dni de service (ce qui justifie un mcanisme de prvention
du dni de service)?
3) Pour parer des attaques en dni de service dun rpondeur, la norme indique que le cookie
rpondeur CKY-R doit tre caractristique du site qui le gnre et vrifiable par ce site lorsquon le
lui retransmet (dans les messages ultrieurs). Il doit donc reposer sur un secret connu du site qui
gnre le cookie. On recommande dimplanter le cookie en appliquant une fonction de hachage avec
cl secrte la concatnation de ladresse IP source, IP destination, port UDP source, port UDP
destination. Pour cela on peut utiliser lun des MACs dont limplantation est obligatoire en IPSEC :
HMAC-MD5 ou HMAC-SHA-1 avec comme cl un secret choisi par le rpondeur.
Imaginez une attaque en dni de service que ce cookie empche (ventuellement des
attaques)?
4) Avec ISAKMP/OAKLEY on utilise gnralement la solution dchange de cls de DiffieHellman. On voit que l'initiateur et le rpondeur changent des valeurs Cl_I et Cl_R. Quelle sont
les valeurs dfinissant Cl_I et Cl_R selon le protocole de Diffie-Hellman que doivent schanger
linitiateur et le rpondeur dans les zones cls du troisime et du quatrime message. Quel est ensuite
le secret partag entre linitiateur et le rpondeur selon le protocole de Diffie-Hellman ? On appelle
dans la suite du problme cette valeur: cl_Diffie_Hellman.
5) Quels sont les avantages et quels sont les inconvnients de lutilisation du protocole dchange de
cls de Diffie-Hellman ?
A la suite de lchange Diffie-Hellman du troisime et du quatrime message le protocole
ISAKMP/OAKLEY dfinit alors une mthode de calcul des cls secrtes qui vont tre utilises
ensuite. En fait ISAKMP/OAKLEY ne propose pas d'utiliser directement la Cl_Diffie_hellman
mais propose de calculer des cls drives. Dans le mode cl pr-partage que nous tudions ici, la
norme indique que les deux entits calculent tout dabord une cl matresse baptise SKEYID
dfinie par la forme suivante dans laquelle la notation || dfinit la concatenation:
SKEYID = PRF (Pre_Shared_Key , Nonce_I || Nonce_R)
Dans cette formule, le sigle PRF dfinit une fonction qui est un gnrateur de nombres pseudo
alatoires (PRF est un abrg pour Pseudo Random Function). PRF peut donc tre choisi par une
implantation comme tout gnrateur de nombres pseudo-alatoires deux paramtres qui sont une
cl (pour un gnrateur cette cl servira de graine) et un message M. En fait la norme indique aussi
que PRF pourra tre le plus souvent ralise par une fonction de hachage cl secrte c'est--dire
un MAC(cl,M) (de cl secrte cl et appliqu au message M).
A partir de SKEYID (cl matresse) la norme dfinit le calcul de trois cls drives, trois cls
secrtes utilises par la suite.
-45-
- SKEYID_e est une cl secrte utilise pour protger les messages du protocole dchange
de cls IKE/ISAKMP/OAKLEY en confidentialit. On lutilise tout de suite sur les deux derniers
messages.
- SKEYID_a est une cl secrte utilise en phase 2 par lchange de cls pour authentifier ses
communications.
- SKEYID_d est une cl secrte utilise comme cl matresse pour gnrer ensuite dautres
cls secrtes qui vont protger les communications proprement dites en IP (scurit des donnes
usagers). Cest donc une cl utilise par dautres associations de scurit ngocies en phase 2
ISAKMP.
Ces cls secrtes sont dfinies comme suit :
SKEYID_d = PRF (SKEYID, cl_Diffie_Hellman || CKY_I || CKY_R || 0)
SKEYID_a = PRF (SKEYID, cl_Diffie_Hellman || CKY_I || CKY_R || 1)
SKEYID_e = PRF (SKEYID, cl_Diffie_Hellman || CKY_I || CKY_R || 2)
On voit qu'elles sont fabriques partir de SKEYID comme cl et avec un hachage de la
concatnation de la cl de Diffie-Hellman, des deux cookies et d'un entier diffrenciant les trois cls
qui est tout simplement sur un octet.
Les deux derniers messages de lchange en six messages sont ddis lauthentification et
lintgrit. Le paramtre principal est un identifiant de lmetteur du message (Identifiant_I ou
Identifiant_R selon les cas) qui est soit une adresse IP (sur 4 octets) soit un nom de domaine DNS
(FQDN Fully Qualified Domain Name). Deux mcanismes de scurit sont utiliss dans ces deux
derniers messages.
a) Les deux partenaires calculent des quantits baptises HASH_I et HASH_R selon les
formules :
HACHAGE_I = PRF (SKEYID, Cl_I || Cle_R || CKY-I || CKY-R || SA || Identifiant_I)
HACHAGE_R = PRF (SKEYID, Cl_I || Cle_R || CKY-I || CKY-R || SA|| Identifiant_R)
b) La norme indique que la charge utile du cinquime et du sixime message est chiffre en
confidentialit en utilisant la cl SKEYID_e. Donc dans le cinquime et le sixime message
lidentifiant suivi du hachage sont chiffrs au moyen du chiffre cl secrte slectionn dans
lassociation de scurit (par exemple DES, 3DES, AES) en utilisant la cl SKEYID_e.
6) Comment lauthentification mutuelle de l'initiateur et du rpondeur est elle effectue?
7) Pourquoi doit-on dans cet change de cls soccuper plus particulirement de lintgrit des
messages changs? Comment lintgrit des messages est elle obtenue ?
8) Comment le secret de la cl pr partage est-il protg ?
9) A quoi servent les nonces I et R ?
10) Quapporte le chiffrement en confidentialit des deux derniers messages ?
11) Rappelez les proprits dune bonne cl secrte. Quels sont les mcanismes dans la gnration
des cls secrtes utilises en IPSEC qui garantissent la qualit de ces cls ?
-46-
12) Quels sont les avantages et les inconvnients de ce mode de base dchange de cls pr
partages (change manuel de cls) du point de vue de ladministration de rseau (travail de
lingnieur systme rseau) ?
-47-
-48-
En combinant les diffrents choix possibles dans les trois domaines prcdents, la norme
dfinit 31 suites de chiffrement cohrentes qui peuvent tre adoptes aprs ngociation.
1) Du point de vue du modle OSI on considre que SSL-TLS est de niveau session alors que
linterface socket standard nest pas de niveau session. Pourquoi ?
2) La plupart des utilisations de SSL/TLS comporte lauthentification du serveur par le client (bien
que les fonctions dauthentification soient optionnelles). Citez une application de cette
authentification. De manire gnrale pourquoi est il important dauthentifier un serveur ?
3) Pour un serveur, il est galement possible avec SSL-TLS dauthentifier le client. Citez une
application de cette authentification. De manire gnrale quelle est lutilisation de cette
authentification.
4) Le protocole SSL/TLS propose, dans lune de ses modalits, dutiliser la notion de certificat.
Cette approche est dailleurs de loin la plus souvent retenue. A quoi sert un certificat. Rappelez les
principaux champs dun certificat ?
5) La vrification dun certificat comporte diffrentes tapes. Quels sont les traitements raliser
pour vrifier un certificat ?
6) Rappelez les principes dune authentification en utilisant un algorithme cls publiques ?
Les changes du protocole Handshake sont assez complexes. En particulier ce protocole
dpend des techniques de scurisation utilises (dfinies par le contexte de scurisation ngoci). On
prsente les principaux lments du fonctionnement du protocole Handshake en omettant beaucoup
de dtails pour simplifier.
Lchange suivant est utilis en cas dauthentification dans les deux sens au moyen de
certificats. Ce protocole ngocie le contexte de scurisation, change les certificats et les valide,
construit un secret partag sur 48 octets (master secret) qui permet de fabriquer des cls de
session et il change des messages de terminaison.
Client
Serveur
-49-
Finished()
Exercices UE Scurit et Rseaux
-50-
Banque
de l'acheteur
Rseau du
groupement
bancaire
(architecure
Internet ou autre)
Passerelle
de paiement
Serveur
du marchand
PC
de l'acheteur
Rsau des utilisateurs
(architecture Internet avec
protocoles SET)
Le fonctionnement de base est analogue celui des cartes de crdits habituelles. L'acheteur
connecte son poste de travail sur le serveur du marchand. Il consulte le catalogue des produits
proposs, passe commande et autorise le paiement. Le marchand accepte la commande et la ralise.
Le marchand pour se faire payer adresse sa banque l'autorisation de paiement de l'acheteur via la
passerelle de paiement. On trouve donc trois protocoles essentiels dans SET:
- Le protocole d'achat.
- Le protocole d'autorisation de paiement.
- Le protocole de paiement
Voici (parmi de nombreuses autres) quelques rgles de scurit de base que les protocoles
SET doivent respecter :
a) L'acheteur et la passerelle de paiement doivent pouvoir vrifier que le marchand est bien
celui qu'il prtend tre. Le marchand doit pouvoir vrifier que l'acheteur et la passerelle de paiement
sont bien ceux qu'ils prtendent tre.
b) Une personne non autorise ne doit pas pouvoir modifier les messages changs entre le
marchand et la passerelle de paiement.
c) Le marchand ne doit pas pouvoir accder au numro de la carte de l'acheteur.
d) Le banquier na pas connatre la nature de la commande passe par lacheteur au
marchand.
-51-
1) Les problmes de scurit associs aux rgles a) b) c) prcdentes sont des problmes gnraux
traits en cours. Donnez pour les rgles a) puis b) puis c) les noms des problmes associs.
Rappelez de manire succincte la dfinition de ces problmes (en une phrase).
SET est un protocole applicatif, qui dfinit une politique de scurit. A partir des lments
prcdents on cherche spcifier cette politique
2) Quels sont les quatre rles qui doivent tre considrs ?
On dfinit les objets suivants
a)
b)
c)
d)
e)
f)
La carte bleue
Le PIN code de la carte bleue ("Personal Identification Number", le code secret)
Le numro de la carte bleue
L'identifiant de la commande
Le contenu qualitatif de la commande (sa nature)
Le prix de la commande
Selon le cas on dfinit pour les objets prcdents une ou plusieurs des mthodes suivantes:
A. Crer
B. Lire (connatre la donne)
C. Accepter (signer la donne)
3) Pour chaque objet donnez les mthodes applicables (A, B ou C)
4) Etablir la matrice des droits: Il s'agit d'une matrice ayant en colonne (au nombre de 13) les
mthodes et en ligne (au nombre de 4) les rles. Si un rle X a le droit d'utiliser la mthode y
l'lment X,y est marqu 1 et n'est pas marqu sinon.
Pour mettre en oeuvre les protocoles de scurit utilisant la cryptographie SET dfinit une
phase d'accrditation pralable des acteurs par une autorit de certification (en fait une hirarchie
d'autorits).
Autorit de certification
Acheteur
Passerelle
de
paiement
Marchand
Vue globalement, l'autorit de certification dlivre des certificats aux diffrents acteurs des
protocoles SET.
5) Qu'est ce qu'un certificat? Quelles en sont les proprits principales?
6) On tudie maintenant le processus d'achat. Il se droule en deux changes requtes rponses
successifs.
Premier change (l'change initial)
CNAM- Anne 2007/2008
-52-
La requte initiale de l'acheteur vers le marchand indique simplement en clair l'intention par
l'acheteur de passer commande.
La rponse initiale du marchand comporte trois lments:
- un identifiant de commande plus sa signature numrique
- le certificat du marchand avec sa cl publique
- le certificat de la passerelle de paiement avec sa cl publique.
A la suite de ce premier change, quelles vrifications peuvent tre effectues par l'acheteur ?
7) Le second change du processus d'achat comporte l'envoi de la requte d'achat et une rponse
d'accus de rception de commande.
Envoi de la requte d'achat
L'acheteur construit la structure de donne commande qui a vocation a tre communique au
marchand (produits, quantits, prix avec l'identification de la commande fournie par le marchand
pendant l'change initial...). Elle est baptise par la suite OI ("Order Information").
L'acheteur construit la structure de donnes de paiement qui a vocation a tre communique
la passerelle de paiement (informations concernant la carte bancaire de l'acheteur et identification
de la commande payer fournie par le marchand pendant l'change initial). Elle est baptise dans la
suite PI ("Payment Information").
En fait les deux structures de donnes sont lies. Le paiement ne concerne que la commande
identifie. Il doit tre effectu que si la commande est accepte par le marchand. La commande n'est
effective que si la banque approuve le paiement. De plus le contenu de la commande doit tre cach
la banque et le contenu des instructions de paiement doit tre cach au marchand.
Pour lier les deux structures de donnes, l'acheteur calcule par l'algorithme SHA-1 la
fonction de hachage de chacune des structures de donnes SHA-1(OI) et SHA-1(PI). Il applique
nouveau la fonction de hachage SHA_1 l'ensemble (SHA-1(OI), SHA-1(PI)) des fonctions de
hachage concatnes. Il chiffre cette dernire empreinte en RSA avec sa cl prive. C'est en fait une
signature numrique double qui est ralise. Elle est baptise dans la norme SET signature duale.
Signature duale =
{{{OI }
, {PI }SHA1}SHA1
SHA1
-53-
-54-
-55-
Dans la premire ligne de ce fichier on dcrit o se trouve le fichier des mots de passe. Il est
ici baptis /otherdir/.htpasswd (cest un fichier qui a pour nom .htpasswd et qui se trouve dans le
rpertoire otherdir). La seconde ligne indique quil nexiste pas de protection daccs au niveau
groupe dutilisateurs, ce qui est indiqu par le fait que le fichier des protections de groupe est un flot
vide (/dev/null). La chane associe la troisime ligne (mot cl AuthName) peut tre arbitrairement
choisie par ladministrateur. Elle dfinit le nom du domaine auquel sapplique la politique de
protection. Ce nom est transmis par le serveur au navigateur et il est affich lors des demandes de
mots de passe. Il permet lusager de savoir quel nom dusager et quel mot de passe fournir (en
fonction du domaine accd). Ici le nom du domaine est un nom passe partout Bypassword. La
ligne AuthType (type dauthentification) dfinit le protocole dauthentification comme tant Basic
cest--dire celui que nous tudions ici. Dautres authentifications sont utilisables (PGP,
KerberosV4, KerberosV5, ou Digest que nous examinons plus loin). On voit ensuite que dans ce
fichier exemple seules les requtes GET et PUT sont autorises (enregistrement Limit GET PUT).
On aurait pu dfinir ici une authentification pour dautres oprations du protocole HTTP. Ici,
lautorisation est prvue uniquement pour lusager daniel.
Il faut bien sur crer le fichier /otherdir/.htpasswd de mots de passe. Il contient des
enregistrements de la forme usager:mot_de_passe. Les serveurs WEB disposent doutils pour crer
simplement par des dialogues interactifs ces fichiers de protection.
2) On suppose que ladministrateur du serveur WEB doit protger dautres pages WEB qui ont t
cres dans un autre rpertoire /mydir/goose. Ces pages appartiennent un nouveau domaine
baptis realm. Ladministrateur souhaite protger laccs ces pages WEB en autorisant lusager
daniel pour les oprations GET, PUT et POST , et lusager laurent uniquement pour les requtes
GET sur ces nouvelles pages. Quels sont les fichiers qui doivent tre crs et quel endroit doivent
til se trouver?
Quand on ralise un service daccs distant en rseau comme telnet ou de transfert de
fichiers comme ftp, on commence par une ouverture de connexion (login process) pendant laquelle
on ralise une authentification de lusager. Cette authentification demeure effective pendant toute une
priode considre comme formant un tout du point de vue de la protection. Pendant une telle
session un usager peut raliser un ensemble doprations puis fermer la session quand bon lui
semble.
3) Le protocole HTTP est il conu selon le principe prcdent, cest dire que laccs un
ensemble de pages, dimages dun serveur forme un tout ou bien chaque accs est-il considr
comme indpendant des autres comme cest le cas pour un serveur sans tat (le serveur est il avec
ou sans tat) ?
4) Quelles sont les consquences du choix prcdent relativement au problme dauthentification
(quelle technique peut-on proposer cot navigateur client pour simplifier la vie de lusager sa
console) ?
A la version 1.1 du protocole HTTP (HTTP/1.1 RFC 2068 janvier 1997) est associe un
autre protocole dauthentification baptis message digest authentication dfini par la RFC 2069
janvier 1997. Des amliorations ont encore t apportes au protocole de la version digest par la
RFC 2617 juin 1999.
On dfinit ici les principes gnraux de la solution sans entrer dans les dtails. Lorsquune
rponse dun serveur WEB une requte dun navigateur client est un rejet (code 401
unauthenticated), la rponse du serveur contient un champ particulier baptis nonce qui contient
CNAM- Anne 2007/2008
-56-
une valeur alatoire la discrtion du serveur. Ce message de rejet devient alors ce que lon appelle
un challenge. Au lieu de rpondre par le nom dusager et le mot de passe, le navigateur client doit
alors rpondre par un nom dusager et la place du mot de passe la valeur :
MD5( concat ( nom dusager, mot de passe, nonce ) )
Dans lexpression prcdente, concat dsigne loprateur de concatnation. On voit donc
que le navigateur ayant obtenu un nom dusager et un mot de passe doit fabriquer un texte qui
concatne le nom dusager, le mot de passe et le nonce. Ensuite il lui applique la fonction MD5 qui
dfinit une fonction de hachage sens unique. Le rsultat est la valeur transmise ( la place du mot
de passe).
La RFC 2069 propose dutiliser par dfaut dans le protocole dauthentification de type
digest la fonction MD5 (Message Digest version 5). Dautres fonctions de hachage sens unique
peuvent tre ngocies.
5) Comment le serveur WEB ralise la vrification de lautorisation daccs une page
WEB protge (le navigateur client ayant envoy une requte avec nom dusager, MD5( concat (
nom dusager, mot de passe, nonce ) ) comme expliqu plus haut) ?
6) Pourquoi avoir appliqu la fonction MD5 au mot de passe et en mme temps au nonce (quest ce
que cela apporte en termes de scurit) ?
7) La mthode de vrification permet-elle de stocker les mots de passe dans le fichier des mots de
passe sous une forme crypte (comme dans les fichiers de mot de passe daccs un systme
UNIX) ou bien doit-on avoir sur le serveur le fichier des mots de passe en clair ? Quelle est la
consquence relativement la scurit de la mthode?
La valeur du nonce dpend de limplantation du serveur (implementation dependent). La
norme suggre nanmoins pour assister les implanteurs de serveurs WEB une valeur de nonce qui
peut-tre recalcule, de manire ce que la valeur obtenue soit identique (presque toujours) entre un
challenge et sa rponse.
Nonce = MD5 ( concat (adresse_IP, ":", estampille , ":", cl_prive) )
Adresse_ip est ladresse IP de la machine du client.
Estampille est une valeur dpendante du temps qui ne change pas trs souvent.
Cl_prive est une valeur secrte du serveur.
8) Pourquoi choisir une estampille temporelle qui ne change pas trs souvent ? Quel est le risque
encouru par cette mthode?
9) Pourquoi avoir choisi dintroduire dans le nonce ladresse IP du client, une estampille temporelle,
un secret (en quoi le choix des valeurs utilises dans le nonce limite til le risque encouru) ?
-57-
-58-
-59-
5) Quelles proprits doivent vrifier les horloges de chaque entit DNS pour que les contrles
d'horodatage soient efficaces? Quel protocole complmentaire TSIG doit on absolument mettre en
uvre pour que lhorodatage fonctionne correctement ?
De manire gnrale on appelle en scurit MAC (Message Authentication Code), une
information rajoute un message qui sert de signature en intgrit en utilisant une fonction de
hachage et une cl secrte. HMAC signifie Keyed-Hashing Message Authentication Code. HMAC
est une mthode particulire de construction dun MAC. HMAC est dfini par la RFC 2104. Cest
une mthode de signature assez largement utilise (IPSEC, SSL, DNSSEC).
Pour construire une signature HMAC on utilise une cl secrte note K et une fonction de hachage
de scurit note H. Il peut sagir par exemple de MD5 ou de SHA-1. De la sorte on a des
HMAC-MD5 ou des HMAC-SHA-1.
Comme H nest pas unique on note B le nombre doctets gnr pour chaque hachage (par exemple
avec des condenss de 128 bits on a donc B=16 octets).
Si la cl K est trop courte (elle fait moins de B octets) on la complte avec des 0. Si la cl K est
trop longue elle est tronque B octets par application de la fonction H.
0n dfinit deux chanes de B octets utilises pour faire du bourrage (padding):
Ipad = 0x36 rpt B fois (l'octet 36 en hexadcimal rpt B fois).
Opad = 0x5C rpt B fois (l'octet 5C en hexadcimal rpt B fois).
La signature HMAC pour un message M est donne par:
HMAC(M) = H ( K XOR Opad || H ( K XOR Ipad || M ) )
Dans lexpression prcdente, XOR est loprateur de ou exclusif. La double barre || indique la
concatnation.
De manire expliciter autrement la signature HMAC on peut encore dire quelle est obtenue au
moyen des tapes suivantes de calcul:
A. Si K fait plus de B octets calculer K = H(K).
B. Si K fait moins de B octets ajouter des 0 K de faon ce que K soit de longueur B.
C. Calculer K XOR Ipad.
D. Concatner le message M au rsultat de 3.
E. Appliquer H au rsultat de 4.
F. Calculer K XOR Opad.
G. Concatner le rsultat de 5 au rsultat de 6.
H. Appliquer H au rsultat de 7.
6) La cl K est une cl secrte. Quelles prcautions doit-on prendre concernant sa longueur, sa
gnration et son stockage?
7) Sur quelles proprits de H reposent la scurit du mcanisme de signature en intgrit HMAC?
8) Rappelez la mthode classique de signature vue en cours? Quel est l'avantage de HMAC en
terme de performance par rapport la mthode classique de signature?
Nouveaux enregistrements ressources KEY, SIG (RFC 2535 2539)
Une autre solution propose dans le cadre DNSSEC pour lauthentification et lintgrit
repose sur la cration de deux nouveaux types denregistrements ressources (KEY et SIG) qui
peuvent tre stocks dans une base de donnes DNS.
Lenregistrement KEY a pour objectif de stocker des cls selon un format propre au DNS.
Comme lutilisation de cls ne concerne pas uniquement le DNS, lenregistrement KEY peut aussi
CNAM- Anne 2007/2008
-60Exercices UE Scurit et Rseaux
servir pour dautres protocoles de scurit (au niveau rseau avec IPSEC, au niveau transport avec
TLS ou au niveau application avec SMIME).
La structure de lenregistrement KEY est la suivante :
{Nom , TTL, Classe=IN, Type=KEY, (Indicateurs, Protocole, Algorithme, Valeur de cl)}
- Un nom denregistrement KEY peut appartenir diffrents types permettant diffrentes
utilisation de la cl. Dans le cas le plus usuel (scurisation du DNS), il sagit dun nom de zone
DNS pour lequel on dfinit une cl (par exemple cnam.fr). Un nom denregistrement KEY peut
galement tre un nom de machine ou un nom dutilisateur.
- Les indicateurs (flags) dfinissent diffrents champs prcisant lutilisation de la cl (quel est le
type du champ nom, )
- Le champ protocole dfinit le protocole de scurit utilisant la cl (par exemple 3 : DNSSEC,
)
- Le champ algorithme dfinit lalgorithme de chiffrement auquel est destin la cl (par exemple 3 :
DSA ).
- La valeur de la cl (code au format base 64).
Lenregistrement ressource SIG est plac aprs un enregistrement ressource donn. Il
contient une signature pour cet enregistrement ressource. La technique de signature est la technique
habituelle (ce nest pas une signature HMAC). De la sorte, on peut interroger un serveur DNS sur
un enregistrement ressource (mode de fonctionnement de base) mais on peut aussi demander la
signature de cet enregistrement ressource. Pour amliorer les performances on peut aussi enregistrer
une signature pour un ensemble denregistrements ressources.
La structure de lenregistrement SIG est la suivante :
{Nom , TTL, Classe=IN, Type=SIG, (Type de lenregistrement sign, Algorithme, TTL dorigine,
Date dchance, Date de signature, Empreinte de la cl, Autorit signatrice, Signature)}
- Type de lenregistrement sign (par exemple SOA).
- Champ algorithme (dfinit les algorithmes utiliss pour gnrer une signature).
- TTL dorigine (dfinit le TTL de lenregistrement sign).
- Date d'chance (la date limite dutilisation dune signature).
- Date de signature (dfinit la date de cration de la signature).
- Empreinte de la cl (dfinit un rsum, une empreinte de la cl utilise).
- Autorit ayant sign (dfinit le nom de lautorit qui a gnr la signature).
- Valeur de la signature (code au format base 64).
9) A quel type dalgorithme de chiffrement est selon vous destin lenregistrement KEY.
10) Avec les nouveaux enregistrements KEY et SIG comment se passe une requte daccs
scurise dans le DNS?
11) Les enregistrements KEY sont des enregistrements ressources qui peuvent tre protgs aussi
par un enregistrement SIG ? A quoi sert lenregistrement SIG dans ce cas ?
12) Une ide qui a t propose pour vrifier une cl est dutiliser la hirarchie de nommage du
DNS comme hirarchie des autorits de certification. Selon cette approche comment fonctionnerait
alors la vrification dune cl (par exemple si un enregistrement est sous l'autorit d'une zone
iie.cnam.fr, quels sont les niveaux d'autorits impliqus dans le contrle de cet enregistrement, quels
sont les contrles raliss par le destinataire)?
-61-
13) Les champs date dchance de signature et date de signature de lenregistrement montrent que
la validit dune signature dpend du temps. Pourquoi? Quel protocole est indispensable pour
valider correctement les signatures ?
-62-
-63-
2) Pour la mise en uvre des signatures DNSSEC, on suggre quelquefois quil est prfrable
dutiliser des cls plutt courtes. Pourquoi cette proposition (discutez en les avantages et les
inconvnients) ?
3) Quand des cls sont courtes quelle prcaution doit-on prendre ?
Il est apparu trs naturel, en raison de lexistence de la hirarchie de nommage du DNS,
dassocier une chane de certification larbre du DNS. Lide de base pour le fonctionnement des
signatures devient la suivante. La zone parente doit signer la cl publique dune zone fille.
4) En cas de renouvellement frquent des cls, quel problme se pose alors ?
Pour certaines requtes DNS la rponse est ngative en ce sens que l'information demande
n'existe pas. Il ny a pas de rponse quand une requte porte sur des noms inexistants ou sur des
types denregistrements qui n'ont pas t dfinis pour un nom de domaine qui existe par ailleurs. Une
rponse ngative est significative et usurper une telle rponse peut permettre des attaques. Un
nouveau type denregistrement dans le DNS baptis NXT a t cr. Les enregistrements NXT sont
insrs dans un fichier de zone entre les enregistrements correspondants deux noms (do le sigle
de next, le prochain). Un enregistrement NXT est associ un nom de domaine. Il contient la liste
des diffrents types de RR qui sont renseigns pour ce nom de domaine et il pointe sur le prochain
nom de domaine figurant dans le fichier de zone. Le dernier nom de domaine de la zone pointe sur le
premier nom de sorte quune base de donnes de zone est aussi une liste circulaire.
5) Quelle prcaution doit-on prendre relativement lordre des enregistrements ressource dans une
base de donnes de zone.
6) Avec lenregistrement NXT quels sont les problmes de confidentialit qui se posent du point de
vue de la diffusion des informations concernant larchitecture informatique dune entreprise ?
DNSSEC - bis (DNSSEC - 2)
A la suite de lexprimentation de DNSSEC version 1, diffrents problmes ayant t
relevs. Une nouvelle version a t propose et adopte (RFC 4033), de sorte que pour viter toute
ambigut les enregistrements ressources utiliss par la version 2 portent des noms diffrents de ceux
de la version 1 : SIG est devenu RRSIG, KEY est devenu DNSKEY, NXT est devenu NSEC.
Nous tudions ici une seule modification importante. On propose en version 2 que chaque zone
dispose de deux sortes de cls pour les chiffrements RSA. Ces cls seront donc a priori diffrentes
moins de leur donner la mme valeur mais on ne gagne plus rien.
Les cls baptises ZSK (pour 'Zone Signing Key') dsignent les clefs utilises pour la
signature de pratiquement tous les types d'enregistrements ( une exception qu'on va voir). En ce
sens une cl ZSK est analogue la cl utilise en signature dans la version DNSSEC -1 (une cl
stocke dans l'enregistrement KEY).
Les clefs baptises KSK ('Key Signing Key') servent dans la construction de la chane de
confiance. Elles ne signent que d'autres cls. La KSK d'une zone est signe par la ZSK de la zone
parente. Elle sert principalement signer la ZSK de la zone.
La chane de confiance est alors assure par la cration d'un nouvel enregistrement ressource
baptis DS pour 'Delegation Signer'. Un enregistrement DS est localis dans une zone parente pour
crer un lien de scurit avec une zone fille. DS contient une signature de la KSK de la zone fille
(c'est--dire un hachage de la KSK de la zone fille chiffr par la ZSK de la zone mre).
CNAM- Anne 2007/2008
-64-
7) Avec cette solution pourquoi devient-il beaucoup plus facile de changer de cl ZSK dans une
zone ?
8) On suggre quavec DNSSEC bis les cls KSK doivent tre longues. Pourquoi ?
9) Quels sont les inconvnients de cette solution ? Indication : listez les oprations raliser.
-65-
-66-
Cependant les deux rgles a) et b) nvitent plus beaucoup de courriers non sollicits car les
entreprises qui font du spam le font, non pas partir de machines dans leur domaine, mais partir de
machines appartenant dautres domaines de lInternet qui ont t infestes par des virus chargs
dmettre les courriers indsirables. Une proposition de vrification qui amliore les rgles a) et b) a
t rcemment accepte par lIETF. Lensemble des nouveaux mcanismes est baptis SPF pour
Sender Policy Framework. La nouvelle vrification est base sur la cration dans le DNS dun
nouveau type denregistrement ressource qui contient pour un domaine les machines habilites
mettre du courrier.
8) Le nouvel enregistrement ressource a dabord t dfini en utilisant le type existant TXT.
Pourquoi avoir utilis ce type existant ?
Il existe de nombreuses variantes en SPF pour spcifier une machine habilite mettre du
courrier. Une faon basique mais quand mme trs significative dappliquer la politique SPF consiste
crer lenregistrement suivant :
domaine. IN TXT "v=spf1 mx all"
domaine. : le nom de domaine concern par lenregistrement ressource
IN TXT : enregistrement ressource type TXT pour le rseau Internet
"v=spf1" : une valeur obligatoire pour indiquer une utilisation du RR TXT en spf version 1
"mx"
: spcifie que tous les serveurs de courrier du domaine sont des metteurs autoriss
"-all"
: indique que tous les courriers qui ne satisfont pas la contrainte sont rejets.
-67-
Action
Autoriser
Interdire
On voit que les principaux champs utiliss pour le filtrage sont les adresses IP source et
destination, les ports source et destination, le protocole transport par IP qui est soit TCP soit UDP.
On voit ensuite que tous les autres champs dun paquet IP ou dun segment TCP ou UDP sont
susceptibles dtre lobjet dun filtrage et sont regroups dans une seule colonne. Ainsi, lexemple
montre quon peut dfinir pour autoriser une transmission, la prsence obligatoire du bit SYN dans
le segment TCP. On trouve enfin dans la dernire colonne, une action associe la capacit qui est
soit dautoriser la communication soit de linterdire. En rsum on peut donc dfinir une politique de
scurit portant non seulement sur ladressage mais aussi sur tous les paramtres dappels ou de
rponse relatifs aux protocoles IP/TCP/UDP.
Selon les choix effectus dans un pare-feux industriel, la forme syntaxique qui permet de
configurer une ligne du tableau est assez variable. Par ailleurs, pour dfinir la politique de scurit
(remplir les lignes du tableau) on doit aussi connatre certains aspects smantiques du fonctionnement
du filtre. Par exemple, nous supposerons ici que le filtrage est appliqu en sortie c'est--dire juste
avant dmettre un paquet sur lune des interfaces de sortie du dispositif matriel qui supporte le filtre
(par exemple un routeur ou un hte). Nous supposerons galement que les lignes du tableau (les
capacits) sont exploites lune aprs lautre dans lordre ou elles apparaissent. La premire ligne
qui est satisfaite dclenche laction associe qui est soit de transmettre soit dinterdire la transmission
(c'est--dire de dtruire le datagramme). D'autres choix sont possibles.
1) Les rgles de filtrage associes aux lignes du tableau prcdent sont des capacits dans une
politique de scurit. Quel est le sujet, quel est lobjet et quel est le droit associ la capacit ?
2) Dans une politique de scurit en matire de communications, on peut avoir une attitude qui
consiste autoriser un ensemble limit de communications permettant aux utilisateurs de travailler et
interdire tout les autres communications par dfaut.
Comment sappelle le principe de scurit qui gouverne un tel choix de politique. Quels sont les
avantages et quels sont les inconvnients de cette politique ?
3) Donnez la forme gnrale dune liste de capacits qui dfinit une politique conforme au principe
de la question 2 (tout ce qui nest pas autoris est interdit). On notera une zone qui peut prendre
toutes les valeurs possibles par une *.
4) Une autre version pour concevoir une politique de scurit est de permettre par dfaut tout ce qui
nest pas interdit. Quels sont les avantages et les inconvnients dun tel choix. Donnez la forme
gnrale dune liste de capacits quand on adopte cette seconde stratgie.
CNAM- Anne 2007/2008
-68-
5) Dans une connexion TCP pratiquement tous les segments ont le bit ACK positionn (prsence
dun champ dacquittement insr dans le segment). Quels sont les segments qui nont pas le bit
ACK positionn ?
6) Dduire de la question prcdente, la forme dune politique de scurit (avec deux rgles de
filtrage) qui interdit un processus (avec une adresse source port source) douvrir une connexion
TCP sur une adresse destination port destination mais qui lui permet de poursuivre une
communication (une connexion) qui a t ouverte par lautre extrmit (le processus peut fonctionner
en serveur passif mais pas en ouvreur actif )?
7) Une entreprise possde un rseau dentreprise connect lInternet mondial au moyen dun filtre
de paquets. Lentreprise souhaite dfinir une politique de scurit ou lon interdit par dfaut tout ce
qui nest pas autoris. Pour la politique de scurit relative aux accs distance en Telnet on
souhaite interdire toute connexion en provenance de lextrieur du rseau dentreprise (de lInternet
mondial) vers le rseau dentreprise. Par contre on souhaite autoriser toutes les connexions en Telnet
partir dun client (un poste de travail) connect au rseau dentreprise vers nimporte quel serveur.
Donnez la liste de filtrage qui autorise le trafic Telnet en sortie et qui linterdit en entre (il est
indispensable d'expliquer les choix effectus pour les diffrents champs d'une rgle de filtrage) ?
Indications :
a) On considrera que ladresse IP du rseau de lentreprise est 163.173/16
b) Le port Telnet est le port 23.
c) On sattachera ce que les ports allous aux services bien connus ('well known ports' des
serveurs comme le port 23 de telnet) soient distingus des ports allous dynamiquement aux
clients qui demandent une connexion. On pourra considrer que les ports allous
dynamiquement ont toujours un numro suprieur 1023.
8) Lentreprise ne possde quun seul serveur de messagerie (MTA Mail Transfer Agent) qui
fonctionne avec le protocole Internet SMTP. Le protocole SMTP est un protocole client-serveur.
Le MTA de l'entreprise est un client SMTP pour d'autres serveurs dans l'Internet lorsqu'un membre
du personnel met un courrier. Le MTA est un serveur SMTP dun client distant lorsqu'un membre
du personnel reoit un courrier. On cherche tout d'abord dfinir en franais les principaux
changes qui doivent tre autoriss entre le serveur de messagerie de lentreprise et les autres
serveurs de messagerie distants dans lInternet mondial. Quelles sont les quatre catgories de
messages qui vont devoir tre autoriss entre le serveur de messagerie de lentreprise et ces
machines distantes?
9) Quelle est la liste des capacits (des rgles de filtrage) qui doivent tre dfinies pour autoriser la
circulation des courriers lectroniques entre le serveur de messagerie de lentreprise et le reste de
lInternet (il est indispensable d'expliquer les choix effectus pour les diffrents champs d'une rgle
de filtrage)?
Indications :
a) On considrera que ladresse IP du serveur de lentreprise est 163.173.128.20.
b) Le port SMTP est le port 25.
c) On sattachera ce que les ports allous aux services bien connus ('well known ports' des
serveurs comme le port 25) soient distingus des ports allous dynamiquement qui ont
toujours un numro suprieur 1023.
-69-
Lmetteur de la requte doit alors fournir le mot de passe associ au compte gerard sur la
machine ulysse.cnam.fr. Dans la version de base, qui reste le fonctionnement de nombreuses
implantations des commandes rsh, rcp, rlogin, tous les changes se font en clair.
1) Donnez la liste la plus large dattaques que vous pouvez imaginer sur l'excution des commandes
distantes en mode de base. Il est obligatoire de justifier pour une attaque cite comme possible, le
mode opratoire de lattaque (dcrire le fonctionnement de lattaque et sa consquence sur
lexcution des commandes distantes qui vient dtre dcrit).
Afin dviter aux utilisateurs de devoir saisir, pour chaque commande distante, un mot de
passe, on permet pour chaque compte utilisateur de crer dans le rpertoire principal (le rpertoire
par dfaut), un fichier dont le nom est par convention .rhosts. Ce fichier contient une liste des
machines, qui sont autorises excuter des commandes sans vrification du mot de passe, sur le
compte associ au rpertoire qui contient le fichier .rhosts. Les htes lists dans ce fichier sont
baptiss htes de confiance pour un compte utilisateur donn ( trusted hosts ). Cette mthode des
htes de confiance est galement applique globalement pour lensemble des utilisateurs dune
machine au moyen dun fichier systme dont le nom est par convention /etc/hosts.equiv. Ce fichier
contient une liste dautorisation ou dinterdiction de lutilisation des commandes r pour des
ordinateurs ou des utilisateurs.
2) Comment appelle t'on en scurit le contenu d'un tel fichier (dfinissez cette approche de la
scurit par comparaison aux diffrentes approches de scurit vues en cours) ?
-70-
3) Quelles sont les failles en scurit de la mise en uvre des fichiers .rhosts ou hosts.equiv
(donnez la liste la plus large dattaques que vous pouvez imaginer) ?
Gnralits SSH
La version initiale de l'environnement de scurit SSH (Secure SHell) a t propose en
1995 par Tatu Ylnen (chercheur finlandais) pour permettre lexcution scurise des commandes
distance Unix que nous venons de voir. T. Ylnen a donc introduit une nouvelle srie de commandes
prfixes par s pour scurit. La principale nouvelle commande a t baptise ssh (secure shell)
pour raliser lexcution scurise de toute commande distance. Pour scuriser des transferts de
fichiers il a introduit des commandes comme scp ('ssh copy') et sftp (ssh file transfer protocol).
Dans ce texte nous ne considrons que la scurisation des commandes d'UNIX mais le protocole
SSH peut-tre utilis aussi pour scuriser des commandes Windows ou Mac OS. SSH est devenu
avec le temps un logiciel de scurit trs rpandu dans la scurisation des applications rseaux.
Ce texte sintresse la version 2 (SSH V2), normalise lIETF aprs de longs dbats en
janvier 2006. Les RFC principales sont : SSH Protocol Architecture (SSH-ARCH RFC 4251),
SSH Authentication Protocol (SSH-AUTH RFC 4252), SSH Transport Layer Protocol (SSHTRANS RFC 4253), SSH Connection Protocol (SSH-CONN RFC 4254).
La version 2 de SSH hrite par de nombreux aspects de mcanismes dvelopps pour la
version 1. Mais la version 2 corrige des faiblesses de scurit de certains mcanismes de la version
1. Par exemple on y introduit l'utilisation du protocole dchange de cls de Diffie-Hellman,
l'utilisation de macs . La version 2 ajoute de nouvelles fonctions. Pour toutes ces raisons, elle est
incompatible avec la version 1 qui est donc destine disparatre.
Au total, SSH version 2 offre la possibilit de construire plusieurs sessions concurrentes
scurises (construire plusieurs VPN SSH) avec authentification forte, contrle dintgrit et
chiffrement des sessions. Chaque session permet l'une des applications scurise suivante:
- Sessions de travail distance ('remote login') : ssh, slogin remplaant rsh, login
- Sessions de transfert de fichiers: scp ou sftp qui remplacent rcp ou ftp.
- Sessions de dport d'affichage multi fentre : pour le protocole X11.
- Sessions ralisant des tunnels chiffrs : pour acheminer des informations changes par
dautres protocoles (SSH Port forwarding soit relayage ou transfert de port).
SSH V2 est structure en modules spars alors que la version 1 tait monolithique.
Lorganisation modulaire en couches de SSH V2 (au dessus de TCP) est la suivante :
Applications scurises utilisant des tunnels SSH
Commandes distance scurises SCP, SFTP, SSH,
SSH-CONN
Sessions scurises SSH
SSH-AUTH
Authentification client SSH
SSH-TRANS
Authentification serveur, Echanges confidentiels de donnes SSH
TCP
Transmission Control Protocol
La couche SSH-TRANS ralise lauthentification du serveur, ngocie les algorithmes utiliss
(chiffrement, change de cls, intgrit, compression), change les cls de session, assure les
fonctions de confidentialit et dintgrit sur les donnes, ralise des fonctions de compression.
CNAM- Anne 2007/2008
-71-
a) Une premire mthode recommande pour faire connatre la cl publique dun site serveur
est de linstaller manuellement dans un fichier sur chaque site client.
Une cl publique de serveur est connue, pour tous les utilisateurs dun systme client, si elle
a t installe dans un fichier systme global dont le nom est par convention en Open-SSH
/etc/ssh_known_hosts. Dans ce texte, parmi les diffrentes implantations des normes SSH, nous
utilisons pour nos exemples la version libre Open-SSH.
La cl publique peut tre connue d'un seul utilisateur si elle se trouve dans le fichier
known_hosts qui est par convention localis dans le sous rpertoire .ssh du rpertoire par dfaut de
cet utilisateur (fichier ~/.ssh/known_hosts ou ~ dsigne de manire gnrale le rpertoire par dfaut
dun usager soit par exemple /users/deptinfo/gerard).
-72-
b) Dans certains cas, un usager client peut vouloir utiliser un serveur distant sans que la cl
publique de cette machine ne soit connue du client. Dans ce cas, le client SSH demande et obtient
du serveur sa cl publique par un change de messages ralise louverture de la connexion SSH.
On propose alors lusager demandeur de mettre cette cl publique dans son fichier
~/.ssh/known_hosts.
4) Quel problme de scurit peut poser la transmission en rseau de la cl publique dun serveur
SSH distant sans la structure de certificat ?
Le dialogue console suivant est une partie de celui quon peut constater lorsquun client tente
pour la premire fois dtablir une communication en Open-SSH avec un site distant dont le nom de
domaine est serveur_ssh.cnam.fr et dont la cl publique ne figure pas dans fichier known_hosts :
% ssh serveur_ssh.cnam.fr
Mcanismes de confidentialit
CNAM- Anne 2007/2008
-73-
12) Le plus souvent, on privilgie en SSH lauthentification du client base sur un chiffre cls
publiques contre l'authentification par mot de passe.
Citez diffrentes faiblesses de lauthentification mot de passe mme si l'change d'authentification
est chiffr en confidentialit comme en SSH.
CNAM- Anne 2007/2008
-74-
On observe, dans lexcution de la commande ssh-keygen, que les cls publique et prive
sont conserves dans deux fichiers identity et identity.pub du rpertoire baptis .ssh. On observe
galement que lutilisateur sest vu demander une chane de caractre (une phrase de passe) au
prompt "Enter passphrase" qu'il a du rpter au prompt "again". On voit aussi que cette chane est
facultative. Quand elle est fournie, elle est utilise comme cl secrte d'un algorithme de chiffrement
cl secrte pour chiffrer le fichier contenant la cl prive. En consquence, chaque fois qu'on devra
utiliser la cl prive, l'usager se verra demander la phrase de passe pour dchiffrer la cl prive.
Quand la phrase de mot de passe n'est pas fournie par l'utilisateur lors de la cration, celui-ci doit
assurer par lui-mme la protection de sa cl prive. On a donc deux approches de scurisation d'une
cl prive.
14) Comparez les deux approches de scurisation de la cl prive (niveau de scurit, aisance du
procd,).
L'utilisateur d'une authentification SSH cl publique doit galement enregistrer sa cl
publique sur le serveur SSH sur lequel il va s'authentifier. Il doit placer cette cl dans un fichier dans
le sous-rpertoire .ssh du rpertoire par dfaut du compte sur lequel il s'authentifie. Cette
transmission doit tre scurise. Une solution de base est de la scuriser au moyen du mot de passe
habituel douverture de session sur un compte sur le serveur distant. A partir de l on peut
authentifier l'usager client au moyen d'une solution a cl publique.
Dans le cas de lutilisation dune phrase de passe, la demande frquente de cette phrase un
usager est fastidieuse. SSH propose une solution au moyen d'un agent pour fournir cette phrase la
place de l'usager.
Mcanismes dintgrit
CNAM- Anne 2007/2008
-75-
15) La version 1 de SSH utilisait le CRC-32 comme contrle de lintgrit des messages transmis.
C'est--dire quon calculait pour chaque message chang en SSH une redondance selon la mme
mthode que celle qui est utilise dans tous les rseaux locaux (par exemple en Ethernet ou en Wifi).
Cette mthode a t abandonne en SSH version 2. Pourquoi ?
16) SSH version 2 utilise comme contrle de lintgrit un HMAC. Rappelez le mode de
fonctionnement de cette mthode de contrle dintgrit. Pourquoi est-elle de scurit ?
-76-