• Aucun résultat trouvé

Chapitre 2 : Stade TA1 - Pr´ esentation

2.3 Description du stade TA1

A chaque authentification, le terminalT interroge alors l’´el´ement s´ecuris´e pour permettre

le d´eroulement d’une authentification telle que d´ecrite `a la Figure 2.1 .

La contrainte C1 empˆeche le d´eroulement d’un sc´enario tel que celui d´ecrit ci-dessus

tandis que la contrainte C2 empˆeche un sc´enario similaire `a l’exemple suivant.

Exemple 3. Afin d’authentifier de mani`ere certaine l’utilisateur, equensWorldline

l’enrˆole r´ecoltant toutes ses donn´ees identifiantes et les stocke sur ses serveurs.

Lorsqu’une phase d’authentification s’engage, il r´ecup`ere toutes les valeurs d’empreintes

de l’utilisateur `a l’instant t et les compare `a celles pr´ec´edemment stock´ees.

D’un point de vue s´ecuritaire, ce dernier exemple serait acceptable (en consid´erant

une base de donn´ees inattaqu´ee) mais le respect de la vie priv´ee de l’utilisateur ne serait

alors pas assur´ee.

2.3 Description du stade TA1

Selon le mode de fonctionnement de TA, un utilisateur souhaitant s’authentifier va prouver

la connaissance d’un secret, difficile `a retrouver pour toute entit´e autre que lui 2.1. Pour

ce faire, plusieurs probl´ematiques affleurent :

1. Secret Cryptographique. Pour ˆetre consid´er´e comme un secret cryptographique,

une donn´ee doit apparaˆıtre al´eatoire (ou pseudo-al´eatoire) et uniform´ement

distribu´ee. Un secret cryptographique consistera en une telle donn´ee et son

impr´edictibilit´e d´ecoulera de sa longueur (environ 100 bits d’apr`es l’ANSSI en

2016 [112]) pour assurer un niveau de s´ecurit´e ad´equat. Les empreintes biom´etriques

2. Gestion de secret. Une fois qu’un tel secret cryptographique a ´et´e g´en´er´e, se pose

la question de sa gestion. Si un secret cryptographique est conserv´e en clair sur un

dispositif, il peut ˆetre lu par un attaquant. S’il est stock´e, il doit l’ˆetre dans un

´el´ement s´ecuris´e.

3. Reproduction de secret. Au vu de notre contexte purement logiciel (contrainte

C1), aucun secret ne peut ˆetre stock´e ; il faudra ˆetre en mesure de la reconstruire `a

partir de certaines donn´ees plus `a mˆeme d’ˆetre conserv´ees ou r´ecup´er´ees.

2.3.1 Aper¸cu du fonctionnement

Initi´e en 2008 pour r´epondre `a l’appel `a projet rappel´e ci-dessus, la solution TA a pour

philosophie de g´en´erer `a la demande la cl´e secr`ete sk d’un utilisateur U. Ainsi, l’id´ee

consiste `a g´en´erer cette cl´e `a partir de donn´ees identifiantes que l’utilisateur aura a sa

disposition ; ces donn´ees seront alors port´ees par l’utilisateur U et/ou ses appareils T

(Smartphone, PC, . . . ) vus comme des sources d’al´ea n´ecessaire `a la g´en´eration du

secret sk. Cette d´emarche correspond au domaine du fingerprinting pour lequel des

´etudes formelles ont ´et´e propos´ees en 2010 et en 2016 respectivement dans le cas des

navigateurs [110] et des smartphones [111]. Dans le cas des empreintes biom´etriques

physiologiques classiques, deux faits sont commun´ement admis :

• chaque utilisateur peut ˆetre identifi´e uniquement par sa valeur d’empreinte (e.g.

empreinte digitale) ;

• les variations dans l’acquisition de tels signaux empˆechent l’utilisation de techniques

classiques (fonction de hachage, chiffrement) dans leur exploitation.

Les choses sont un peu diff´erentes dans le cas des empreintes de navigateur et d’appareils :

c’est l’accumulation de valeurs de plusieurs champs caract´eristiques (e.g. liste des plugins,

user agent, syst`eme d’exploitation) qui constituera une empreinte de navigateur [113,114].

Chaque champ apporte de l’information mais pas suffisamment pour identifier uniquement

un utilisateur ; on parle d’identification partielle. Certains travaux [115] proposent

alors d’appliquer une fonction de hachage sur l’ensemble de ces valeurs pour obtenir

un identifiant secret relatif `a un profil. Dans toute la suite de ce manuscrit, chaque

champ apportant de l’information sur un utilisateur sera d´efini comme un attribut : la

liste des plugins, le user agent, le syst`eme d’exploitation, num´ero de SIM sont autant

d’attributs permettant d’identifier partiellement des utilisateurs. Anticipant l’´emergence

dufingerprinting, la solution TA proposait d’appliquer un KDF `a de telles donn´ees pour

g´en´erer le secret sk. Avec une limitation cependant : les valeurs consid´er´ees ne doivent

souffrir d’aucune variation puisqu’une modification d’un seul champ modifierait alors la

valeur du secret retourn´e.

Pour r´esumer, l’id´ee g´en´erale de TA est donc la suivante : U muni de T doit ˆetre

capable de g´en´erer et re-g´en´erer `a la demande un secretskn´ecessaire `a son authentification

comme illustr´e par la Figure 2.1. Cette g´en´eration de secret pourra tirer profit de ses

diff´erents attributs.

Afin d’assurer la s´ecurit´e du secret g´en´er´e, l’agr´egation d’un certain nombre d’attributs

constituant un profil utilisateur pourra ˆetre r´ealis´ee.

2.3.2 Profil utilisateur

L’IMEI (pour International Mobile Equipment Identity) est un attribut tel que d´efini

ci-dessus. Compos´e de 15 digits dont 14 al´eatoirement choisis, il permet d’identifier de

mani`ere unique chacun des terminaux de t´el´ephonie mobile et r´epond donc au facteur

de possession FA-2 (D´efinition 43). Cet attribut donne acc`es `a 14 × log2(10) ≈ 47

bits d’entropie ; ce sera l’un des attributs portant le plus d’attributs mais ce sera bien

´evidemment trop peu d’un point de vue cryptographique.

L’id´ee est donc de consid´erer un profil utilisateur, not´e Ω, qui consistera en l’ensemble

des valeurs d’attributs r´ecolt´es par l’application logicielle App. Un exemple de profil

utilisateur tel que d´efini au stade TA1 est repr´esent´e en Figure 2.2.

Attributatti Valeurωi

IMEI 354784054129987/02

SIM 208 20 1134567890

Connecteur USB micro USB

D´efinition ´ecran 720×1280

Debogueur Android Debug Bridge (ADB)

Hash de la librairie OpenSSL 8e52d5cb. . . 20afb443

Mode root oui / non

Nom du t´el´ephone T´el´ephone de Bob

WiFi activ´e oui / non

Hash de l’applicationApp 0d04bfeb. . . 34c9984d

Figure 2.2: Profil Utilisateur au stade TA1

Renseign´e par une politique, un module d´edi´e de la solution TA aura pour but de

collecter le profil Ω en s’assurant que la nature des attributs consid´er´es permettra de

r´ealiser une authentification TA (D´efinition 44). Le cadre de nos travaux consistera `a

en extraire un secret stable sk pour permettre de r´ealiser cette authentification. D’autre

part, pour assurer un certain niveau de s´ecurit´e, un profil utilisateur devra porter assez

d’entropie afin de g´en´erer une cl´eskde longueur suffisante [112]. Alors que cette estimation

est plutˆot directe dans le cas d’attributs comme ceux sp´ecifi´es par la Figure 2.2, nous

verrons au Chapitre 3 que certains sont plus difficiles `a ´evaluer ; nous verrons que cette

´evaluation fera l’objet d’´etudes futures pour permettre l’accession au stade TA3-Ind.

2.3.3 Premi`ere solution

L’objectif O4 requiert que l’utilisateur soit capable, `a partir de son profil Ω, de g´en´erer

un secretsklors de chaque session d’authentification. Notons Ω = (w1, . . . , wn), o`uwi est

la valeur de l’attributatti,saltune graine publique,KDFun KDF et(authGen, authProve,

authVerif) un protocole d’authentification tel qu’introduit `a la Figure 2.1. Les primitives

d’enrˆolement et d’authentification de la solution TA1 peuvent ˆetre respectivement d´ecrits

`a travers les Figures 2.3 et 2.4.

Entr´ee : Un profil Ω = (w1, w2, . . . , wn).

1. Le serveurS envoie un challengec`a l’utilisateurU.

2. L’utilisateur U cr´ee une identit´e publique `a partir de son

profil Ω :

• Il calculesk=KDF(w1,kw2k. . .kwnksalt).

• Il g´en`ere sa cl´e publiquepk←authGen(sk)

• Il g´en`ere un preuveπ=authProve(sk,pk;c).

3. U envoie (pk, π) au serveurS.

4. S v´erifie queauthVerif(π,pk) = 1 et associepketsalt`aU.

Il abandonne sinon.

Figure 2.3: Enrˆolement de U via Ω au stade TA1

`A la fin de l’enrˆolement, le serveur d’authentification a alors associ´e l’identit´e publique

pk `a l’utilisateur U. Lors d’une authentification future, ce dernier devra alors prouver

la connaissance du secret associ´e sk pour convaincre de son identit´e. Ne disposant

d’aucune capacit´e de stockage s´ecuris´e, il n’est pas dans son int´erˆet de conserver ce secret

sur son terminal T. Ainsi, lorsque U souhaite s’authentifier, son application App va

collecter son profil Ω0 = (w01, w20, . . . , wn) o`u0 wi0 consiste en la valeur de atti au moment

de l’authentification. U suit alors la proc´edure d´ecrite dans la Figure 2.4 pour tenter

reconstruire le secret sk.

Contrairement `a la session d’enrˆolement, l’utilisateur U n’envoie paspk0 au serveurS.

En fait si Ω0 est correct (i.e. ´egal `a Ω), la consistance est ´evidente. Cela entraine que

sk0 =sk et par cons´equent pk=pk0. Finalement, on obtient :

authVerif(π0,pk) = authVerif(authProve(sk0,pk0;c0) =authVerif(authProve(sk,pk;c0),pk) = 1.

Est-ce une authentification TA ? En supposant que les profils d’authentification Ω0

et Ω soient ´egaux en tout point, alors un utilisateur est capable de reconstruire le mˆeme

sket donc de s’authentifier. Au vu du profil utilisateur (Figure 2.2), les objectifs O2 et O3

(D´efinition 44) sont clairement r´ealis´es alors que l’objectif O1 n’est pas atteint a priori.

Pour ce faire, il est n´ecessaire au stade TA1 de recourir `a une interaction avec l’utilisateur

Entr´ee : Un profil Ω0= (w01, w02, . . . , w0n).

1. Senvoie un challengec0etsalt`aU.

2. Udoit re-g´en´ererskpour prouver sa connaissance du secret

associ´e `apk

• Il calculesk0=KDF(w0

1,kw0

2k. . .kw0

nksalt).

• Il g´en`erepk0←authGen(sk0).

• Il g´en`ereπ0=authProve(sk,pk;c0).

3. Il envoieπau serveurS.

4. Sa v´erifie que authVerif(π0,pk) = 1. Il rejette

l’authentification sinon.

Figure 2.4: Authentification de U via Ω aux stade TA1

qui doit alors taper son mot de passe, ce qui constitue une une premi`ere limitation au

stade TA1. Cette limitation est renforc´ee par la tendance actuelle `a se passer de solutions

d’authentification bas´ees sur l’usage de mots de passe `a l’image de ce que promeut le

consortium FIDO constitu´e de g´eants du domaine (Google, Qualcomm, Discover Financial

Services, Visa Inc, Mastercard, . . . ) [116, 117]. On notera L0 la limitation qui contraint

l’utilisateur `a une interaction du type mot de passe.

2.4 Vue d’ensemble de la solution TA et diff´erents