Vous êtes sur la page 1sur 8

Problme1

SoitAetBdeuxentitsquiveulentchangerdesdonnessecrtes.Ilsdoiventtout
d'abordfaireuneauthentificationrciproqueenutilisantuneclsecrteKAB,
cecidoittreralisen3messagesetavecl'utilisationdesnombresalatoires.
1. Pourquoiilestimportantdefaireuneauthentificationrciproque?
2. Donnerles3messageschangspourfairecetteauthentificationrciproque.
3. Unhackerveutattaquerleprotocoled'authentification.TandisqueAestteint
ilcontacteBdansunepremiresessionmaisilnepeutpasvolerl'identitde
A.Pourquoi?
4. CehacherouvreunedeuximesessionavecBenutilisantdesparamtres
convenablespuisrevientalapremiresessionetilpeutdoncdanscette
sessionvolerl'identitdeA.donnerleschmad'attaque.
5. Quellesolutionsimpleutilisezvouspourrsoudreceproblme.

Problme2:
Onvatudierl'changeralisdansleProtocoldeDiffieHellman.
1. DonnerleProtocoled'changeetquelestletyped'algorithmedechiffrement
quiserautilispourchiffrerlesdata?
2. Calculercetteclsin=47,g33,x=11ety=13.
3. tudierlacomplexitdelamthodedecryptanalysedecettecl.
4. Unhackerjouelerledemaninthemiddlepourespionnerlesdatachangs.
Donnerleschmad'attaquesurleprotocole.

Problme3
Kerberos:
Introduction
LeprojetAthenaduMIT(MassachusettsInstitutesofTechnology)tait,danslemilieu
desannes80,unprojetderechercheportantsurlessystmesrpartis.
Ilavaitpourobjectifladfinitiond'unenvironnementhomogned'accspourdesPC
sousMS/DOS,desstationsdetravailoudescalculateurssousUNIX,engrandnombreet
relisparplusieursrseauxlocaux.

L'undespointsfortsdecetenvironnementestleprotocolequigrelafois
l'authentificationdesutilisateursetcertainsmcanismesdeprotection.Ceprotocoleest
dnommKerberos(Cerbre,lechientroisttes,gardiendel'enfer).
DepuiscesoriginesKerberosaconnudenombreusesvariantesetatimplantdans
diffrentsproduits(enparticulierchezDigitalEquipmentetplusrcemmentchez
Microsoft).Ilconstituelestandarddessystmesdedistributiondeclssymtriques
(gardiensdescls)etesttrsutilissurInternet,enparticulierparlesorganismesde
rechercheetd'enseignement.LaplupartdesprotocolesInternet(PPP,HTTP,SMTP,
FTP,...)grentuneauthentificationdesentitscommunicantesbasesurKerberos.
SesprincipesonttreprisdansdesarchitecturesdeprotectioncommeDCEetWindows
NT.
Laversionencoursdenormalisationl'IETFestlav5quin'utilisequelacryptographie
symtrique(DESettripleDES)etlesfonctionsdehachagesensunique(MD5etSHA
1),lav4faisantl'objetdelaRFC1501.
Question1.1
Quellessontlesfonctionsquedoitraliserungardiendecls?
Question1.2
ExpliquezlesprincipesdutripleDESetsesavantagesparrapportauDES.
Question1.3
quoipeutservirlacombinaisond'unefonctiondehachageetd'uncryptosystme.
Descriptionduprotocole
Kerberosmetencommunicationtroisentits:
l'entitclient:unprogrammeouunutilisateursurunemachinedonne.Pour
simplifier,nousconsidronsquel'entitclientfigureuniquementunutilisateur
humain.Pournous,ceseraAlice.
l'entitserveur:unprogrammerequisparl'entitclient(parexempleleserveurde
fichier).CeseradanslasuiteleserveurdeBob.
lecentrededistributiondescls,appelKDC(KeyDistributionCenter),ilconnat
lesclsprivesdetouteslesentitsclientsouserveursqu'ilconservedansunebase
dedonnes,ilgnreaussidesclsdesession(temporaires).
PourfonctionnerKerberosncessiteunesynchronisationdeshorlogesdetoutesles
machinesdurseau.Ceprotocoledoitraliserentretoutcoupled'horlogedurseauun
cartinfrieur5mnpourdesdatesluesaummeinstant(cequiestassezfacile
raliser).
Pourpouvoirutiliserunserveur,Kerberossuitunprotocolededistributiondeclsde
sessionquirespectelestapessuivantes:

1Alices'authentifieauprsduKDC
2Alicedemandeunticketd'utilisationduserveurBobauKDC.Unticketausensde
Kerberoscomporteessentiellementunecldesessionetdiffrentesinformations
annexesdtaillesplusloin.KDCluirenvoieunticketvalablepourleserveur
demand.

3QuandAlicesolliciteleserveurBob,elleutiliseleticketqueluiaremisleKDC
qu'ilmetdanssarequte.
Dtaildestapes
Nousallonsdtaillerlestroistapesprcdentes.Pourcela,nousdfinissions
prcismentlesnotationsdesdiffrentsobjetsmanipulsparleprotocole:
Alice
Nomduclient.
A,a
ClutiliseparAlicepours'authentifier.Elleest,engnral,drived'unmotdepasse.Aestconnued'AliceetdeKerberos.ElleestnoteAquandelleest
utilisepourledchiffrement,aquandelleestutilisepourlechiffrement.
SA,sa
Cldesessiond'Alice.Elleestconnued'AliceetdeKerberos.ElleestnoteSAquandelleestutilisepourledchiffrement,saquandelleestutilisepour
lechiffrement.
Bob
Nomduserveurinvoqu.
B,b
ClpriveduserveurBob.ElleestnoteBquandelleestutilisepourledchiffrement,bquandelleestutilisepourlechiffrement.
Kerberos
Nomduserveurdedistributiondescls.
KDC,kdc
CldeKerberos.Elleestconnuedeluiseul.ElleestnoteKDCquandelleestutilisepourledchiffrement,kdcquandelleestutilisepourlechiffrement.
KAB,kab
Cldesessiondtermineentreclientetserveur.ElleestnoteKABquandelleestutilisepourledchiffrement,kabquandelleestutilisepourle
chiffrement.
Ticket
TicketdonnunclientnommAlicepourutiliserunserveurnommBob.
date_fab_X
datedefabricationdel'objetX.
date_courante
datedonneparl'horlogelocaledelamachine.

Commedanstoutsystmed'accsmotsdepasse,leclientaconvenu,pralablement,
avecl'administrateursystmed'unnom(Alice),etd'unmotdepassequidevientlacl
priveAd'Alice.Pareillement,ilatconvenu,pourleprogrammeserveur,d'unnom
(Bob)etd'uneclpriveB.Lesclsnesontconnuesquedeleurpropritaire(quidoivent
donclesgardersecrtes)etduserveurd'authentificationKerberos.Cesystmedoitdonc
treparticulirementbienprotg.
tape1:Authentificationduclient
Alicecommenceparenvoyerunerequted'authentificationKSB_AS_REQcontenant
sonnomdelogin(Alice)Kerberos.KerberosluirenvoieunmessageKSB_AS_REP
contenantunecldesessionSApersonnelleAliceetunticketdecontrled'accsTGT
(TicketGrantingTicket).
Question2.1
Expliquezl'usagedesdeuxchiffrementsralissdanscettetape.
Question2.2
Contrequeltyped'attaqueestdestinelavariabledate_per_SA?Expliquezson
usage.
tape2:Obtentionduticketd'accsauserveur
Lorsqu'Alicedsire(durantlapriodedevaliditdesonticketd'authentification)utiliser
leserviceduserveurBob,elleadresseKerberosunerequted'accsceserveur.Cette
requtecontient,outrelenomduserveur,leticketTGTetladatecourantechiffreavec
SA.rceptiondecettedemandeKerberosdchiffreTGT,rcuprelaclSA,dchiffre
ladateavecSAetvrifiequecettedateestvoisinedesonheurecourante.
Question3.1
Queprouvececontrle?
Question3.2
QuelletechniquedeprotectionpeututiliserKerberospourlecontrledesdroits
d'Alice?
Question3.3
Quelestl'usageduchiffrementralisparKerberos?
tape3:Accsauserveurapplicatif
DansundlaicompatibleavecladuredevaliditduTicket,Alicevademanderau
serveurBobd'excuterlatransactionpourlaquelleelleaobtenuleTicket.Elleenvoie
doncceserveurunerequteavecleTicketTetladatecouranted1chiffre(D1):

Question4.1
quoisertlavariableD1etpourquoiestellechiffre?
Question4.2
ExpliquezleprincipeducontrleralisparBob.
Question4.3
Quelestl'usagedelavariableREP2?
Question4.4
quoipourraservirKABdanslasuitedeschangesdelatransactioncouranteentre
AliceetBob?Commentappelletonunetellevariable?

Problme 4
SSL

SSL (Secure Sockets Layer), est une norme de rseau qui permet de scuriser les
communications pour des applications Internet utilisant TCP/IP. SSL offre un service
de communication analogue celui des sockets mais SSL ajoute aux communications
standards, des fonctions de scurit (authentification du client par le serveur, du
serveur par le client, intgrit, confidentialit des donnes changes) et
ventuellement aussi des fonctions de compression.
Dvelopp par Netscape jusqu la version 3.0 (novembre 1996), lIETF a alors
adopt SSL et a prsent sa version baptise TLS (Transport Layer Security RFC
2246 en 1998). compatible avec SSL 3.0. Par rapport SSL, TLS offre quelques
extensions mineures comme une amlioration des signatures, diffrents traitements
derreurs supplmentaires.
SSL/TLS est dcoup en deux grandes parties. La partie Handshake assure les
fonctions initiales dun change scuris. La partie Record assure les fonctions de
scurit sur les donnes utilisateur en appliquant des approches de cryptographie et de
signatures dfinies pendant la phase de Handshake. Ce problme tudie plus
particulirement la partie Handshake.
La partie Handshake de SSL/TLS permet dtablir le contexte de scurisation utilis
ensuite dans la phase dchange de donnes. La partie Handshake permet

lauthentification des entits communicantes. Elle permet galement lchange de cls


de session.
Un contexte de scurisation comporte :
- Un identifiant de session scurise choisi par le serveur.
- Un certificat dentit distante (optionnel).
- Une mthode de compression (si la compression est applique).
- La suite cryptographique utilise (voir plus loin).
- Une cl secrte (master secret 48 octets partags entre client et serveur).
- Une variable indiquant si la session peut couvrir plusieurs connexions TCP.
Les oprations principales du protocole Handshake sont :
1. Ngocier la suite cryptographique utilise pendant le transfert des donnes.
2. Etablir une cl de session partage entre le client et le serveur
3. Authentifier le serveur par le client (optionnel).
4. Authentifier le client par le serveur (optionnel).
En SSL/TLS une suite cryptographique est un choix relatif aux lments suivants :
- La mthode dchange de cls.
- La mthode de chiffrement utilise pendant le transfert des donnes.
- La mthode de hachage utilise pour la cration dune signature.
La mthode dchange de cls peut se faire de deux faons. Lune utilise les
algorithmes cl publique et la notion de certificat. Une autre mthode est prvue en
labsence de certificats : la mthode de Diffie-Hellman.
Le chiffrement est ralis au moyen dun algorithme cl secrte. Neuf algorithmes
cl secrtes avec des variantes sur les longueurs de cls sont possibles (DES, TripleDES, IDEA, etc)
La fonction de hachage sens unique (Digest Function) peut galement tre
slectionne (MD5, SHA-1)
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.

Explications des changes


a) La premire phase (messages ClientHello, ServerHello) correspond la
ngociation du contexte de scurisation. Le client envoie diffrentes informations
proposant un contexte de scurisation
(premier message avec version du protocole SSL, un nombre alatoire, un nonce, une
suite cryptographique, une mthode de compression). Le serveur choisit les valeurs
dfinitives du contexte de scurisation acceptable en fonction de la proposition client
(second message). Il fournit galement un nombre alatoire.
b) Dans le cas dune authentification du serveur, le serveur fournit son certificat
(message Certificate). Il demande le certificat du client sil y a aussi authentification
du client (message CertificateRequest).
c) Le client valide le certificat du serveur.
d) Le client envoie son certificat au serveur. Il cre un secret au moyen dun
gnrateur de nombres alatoires (pre master secret). Le client lenvoie au serveur
encrypt avec la cl publique du serveur (message ClientKeyExchange). Le client
gnre le secret partag (master secret) partir du pre master secret et des deux
nombres alatoires changs dans les deux premiers messages.
e) Le serveur valide le certificat client. Il dcrypte le secret (pre master secret) envoy
par le client au moyen de sa cl prive. Il gnre selon le mme algorithme que le
client le mme secret partag (master secret).
f) En utilisant le secret maintenant partag (master secret), le client et le serveur
gnrent chacun de leur cot la mme cl secrte de session utilisable pour des
algorithmes cls prives (comme le DES).
g) Le client et le serveur changent des messages de terminaison (Finished) chiffrs
au moyen de la cl secrte de session. Ces messages indiquent que le protocole de
Handshake est termin et que les changes auront lieu partir de maintenant en
utilisant le contexte de scurit ngoci. Ces messages doivent tre dchiffrs et
vrifis.

7) Quels sont les mcanismes du protocole Handshake qui assurent lauthentification


du serveur vis vis du client?
8) Le protocole SSL utilise une combinaison de mthodes de cryptographie qui
comprend des algorithmes cls publiques et des algorithmes cls prives. Pourquoi
utiliser concurremment les deux techniques?