• Aucun résultat trouvé

5.2 Les technologies fond´ees sur le Trusted Computing

5.2.1 Principes du Trusted Computing

Le Trusted Computing, ou ✭✭ informatique de confiance ✮✮, est un ensemble de concepts qui reposent essentiellement sur le principe des derniers niveaux de confiance que nous avons ´evoqu´es. Une ✭✭ plate-forme de confiance ✮✮ (qui d´esigne ici une Trusted Computing Platform telle que d´ecrite dans les sp´ecifications du TCG [Tru03a]) est en fait une plate-forme informatique dont la couche mat´erielle comporte un composant particulier, le Trusted Platform Module (ou TPM). Le TPM est dot´e de capacit´es cryptographiques particuli`eres qui permettent de mettre en œuvre un certain nombre d’activit´es de base, utiles `a la protection ´etendue des donn´ees. Les architectures d’informatique de confiance peuvent ´egalement impliquer des tiers de confiance, des autorit´es de certification cryptographique d´edi´ees appel´es Trusted Authorities. Lorsque nous nous r´ef´ererons `

a des ✭✭ tiers de confiance ✮✮ ou `a des ✭✭ autorit´es de confiance ✮✮, nous les supposerons dor´enavant compatibles avec les protocoles de l’informatique de confiance.

Les plates-formes de confiance ont ´et´e d´ecrites de mani`ere tr`es d´etaill´ee par Siani Pearson dans son ouvrage Trusted Computing Platforms : TCPA technology in context [Pea02b], qui se r´ef`ere toutefois `a la premi`ere version des sp´ecifications. Nous tˆacherons dans notre analyse de prendre en compte les d´eveloppements importants introduits notamment par la version 1.1 des sp´ecifications g´en´erales [Tru03a] et la version 1.2 des sp´ecifications du TPM, parues en 2003

[Tru03b]. Les propositions de l’informatique de confiance ont ´et´e ´etudi´ees avec attention par la communaut´e acad´emique de s´ecurit´e informatique, par exemple par Mark Dermot Ryan [Rya06a,

Rya06b] ou Ross Anderson [And03], et int´egr´ees `a de nombreuses propositions. Nous pr´esentons

ici un r´esum´e tr`es synth´etique des composants, propri´et´es et fonctionnalit´es sp´ecifiques d’une plate-forme de confiance.

5.2.1.1 Le Trusted Platform Module

Le Trusted Platform Module, ou TPM9 [Tru03b] est une puce ´electronique qui peut ˆetre mont´ee sur une carte d’extension ou sur la carte m`ere d’une plate-forme informatique. Le TPM comprend les composants suivants (les ´el´ements logiques seront d´etaill´es par la suite) :

– Un processeur cryptographique disposant d’un g´en´erateur de nombres pseudo-al´eatoires, d’un moteur de hachage SHA-1 [Nat93], d’un g´en´erateur de cl´es asym´etriques RSA [RSA78] et d’un moteur de signature et de chiffrement (sym´etrique et asym´etrique)10;

– Une m´emoire persistante permettant le stockage permanent de deux paires de cl´es RSA ; – Une m´emoire volatile comprenant notamment plusieurs emplacements de stockage de cl´es ; – Une interface d’entr´ee-sortie.

La figure5.5repr´esente de mani`ere sch´ematique les ´el´ements fondamentaux du TPM, ainsi que l’icˆone que nous utiliserons pour le repr´esenter par la suite.

Processeur cryptographique Mémoire persistante Mémoire volatile générateur de nombres pseudo-aléatoires générateur de clés RSA hacheur SHA-1 moteur de chiffrement-déchiffrement-signature En tré e s-So rt ie s clé d'approbation (EK) clé racine pour le stockage (SRK) registre de conf. (PCR) paires de clés AIK clés de chiffrement

Fig.5.5 – Sch´ema des ´el´ements constitutifs d’un Trusted Platform Module

Le TPM est con¸cu de mani`ere `a ˆetre r´esistant aux attaques physiques, c’est-`a-dire que les informations qu’il renferme (notamment celles de la m´emoire persistante) seront d´etruites en cas de tentative d’intervention physique sur le composant. Les fonctionnalit´es des plates-formes de confiance reposent sur quelques ´el´ements cl´e stock´es ou cr´e´es par le TPM : la cl´e d’approbation,

9

Le TPM a ´egalement ´et´e surnomm´e Fritz chip dans ses premi`eres ann´ees [And03].

10

Les algorithmes SHA-1 et RSA sont impos´es par les sp´ecifications, mais un TPM peut ´egalement proposer d’autres algorithmes de chiffrement.

151 Les technologies fond´ees sur le Trusted Computing

la cl´e racine pour le stockage, le registre de configuration de la plate-forme et les cl´es d’identit´e d’attestation.

La cl´e d’approbation

La cl´e d’approbation (Endorsement Key ou EK ) est une paire de cl´es RSA (EKpub, EKpriv ) stock´ee dans la m´emoire persistante du TPM. Cette paire de cl´e est cr´e´ee en mˆeme temps que le TPM. La cl´e priv´ee est stock´ee dans le TPM et nulle par ailleurs : elle n’est normalement pas conserv´ee par le fabricant du composant. Avant de commercialiser la puce, le fondeur diffuse la partie publique de la cl´e. Toute autorit´e de confiance sera ainsi en mesure d’ˆetre convaincue, lors d’un dialogue avec le TPM, de l’authenticit´e de ce dernier11.

La cl´e racine pour le stockage

La cl´e racine pour le stockage (Storage Root Key ou SRK ) est un autre couple de cl´es RSA, cr´e´e lorsqu’un utilisateur prend possession du TPM (op´eration qui correspond `a une primitive sp´ecifique, take ownership, du TPM). Le couple est ´egalement stock´e dans la partie persistante de la m´emoire du TPM, et la partie priv´ee du couple n’en sort jamais. Cette cl´e asym´etrique est utilis´ee pour chiffrer de mani`ere sˆure d’autres cl´es, qui seront stock´ees `a l’ext´erieur du TPM et utilis´ees pour le chiffrement s´ecuris´e de donn´ees.

Le registre de configuration de la plate-forme

Le registre de configuration de la plate-forme (Platform Configuration Register ou PCR) est un condensat cryptographique stock´e dans la partie volatile de la m´emoire du TPM. Il constitue une signature de l’ensemble des logiciels en cours d’ex´ecution sur la plate-forme12.

Les cl´es d’identit´e d’attestation

Les cl´es d’identit´e d’attestation (Attestation Identity Key ou AIK ) sont des paires de cl´es asym´etriques cr´e´ees par le TPM et stock´ees dans la partie volatile de sa m´emoire. Elles sont utilis´ees pour authentifier la machine en tant que plate-forme de confiance sans impliquer direc-tement la cl´e d’approbation. Elles sont `a la base de la gestion des identit´es virtuelles.

5.2.1.2 L’activation du TPM

Une plate-forme peut d´emarrer et fonctionner avec son TPM activ´e ou d´esactiv´e. Dans le dernier cas, elle ne disposera pas des fonctionnalit´es d’une plate-forme de confiance. Pour que le TPM s’active, il est n´ecessaire que la phase de d´emarrage de la plate-forme, dans laquelle le TPM est impliqu´e, se passe de mani`ere ✭✭ acceptable ✮✮. Le code du BIOS (qui doit ˆetre compatible avec l’informatique de confiance) est v´erifi´e par le TPM avant son chargement, afin de s’assurer qu’il n’a pas ´et´e modifi´e. Lors du chargement du syst`eme d’exploitation (qui doit ´egalement ˆetre

11 Il suffit pour cela que l’autorit´e demande au TPM de signer un nombre al´eatoire challenge avec sa cl´e priv´ee EKpub. L’autorit´e v´erifie que la cl´e priv´ee correspond bien `a la cl´e publique en v´erifiant cette signature : {{challenge}EKpriv}EKpub= challenge.

12

Cette pr´esentation est une simplification de la r´ealit´e. Dans la pratique, plusieurs PCR peuvent ˆetre pr´esents dans la m´emoire volatile du TPM, repr´esentant les environnements correspondants aux diff´erentes sessions ouvertes sur la machines mais isol´ees les unes des autres en m´emoire.

compatible), le BIOS v´erifie l’int´egrit´e du code du noyau. Si l’une de ces v´erifications ´echoue, alors le TPM est d´esactiv´e13.

L’utilisateur de la plate-forme peut ´egalement d´ecider de d´emarrer celle-ci avec le TPM d´esactiv´e, renon¸cant ainsi aux fonctionnalit´es de l’informatique de confiance14.

5.2.1.3 L’authentification en tant que Trusted Computing Platform Comme nous l’avons sugg´er´e, il est ais´e pour un agent de v´erifier qu’une plate-forme distante est bien une plate-forme de confiance, puisque la partie publique des cl´es d’approbation est diffus´ee par des autorit´es de certification. Cependant, l’utilisation de cette cl´e EK aupr`es de n’importe quel agent permet d’identifier la plate-forme de mani`ere unique, autorisant donc la tra¸cabilit´e totale de ses activit´e en cas de collusion des diff´erents agents. Ceci constituant un risque majeur pour la protection du pseudonymat de la plate-forme (et de ses utilisateurs), ce sont d’autres protocoles qui sont utilis´es. L’authentification en tant que plate-forme de confiance peut se faire soit par le biais de tiers de confiance, soit via l’utilisation d’un protocole plus complexe.

Implication de tiers de confiance

Dans le sc´enario impliquant un tiers de confiance, la plate-forme de confiance va g´en´erer une paire de cl´es d’identit´e d’attestation AIK, dont elle va signer la partie publique `a l’aide de la partie priv´ee de sa cl´e d’approbation EK. La plate-forme envoie ensuite `a un tiers de confiance (utilisant une paire de cl´es TC ) la partie publique de la cl´e AIK, la partie publique de sa cl´e EK ainsi que la signature (formule (5.1)). Le tiers de confiance v´erifie que la cl´e EKpub est bien la partie publique d’une cl´e d’approbation valide, puis v´erifie la signature (formule (5.2)). Ensuite, la plate-forme devra prouver au tiers de confiance qu’elle connaˆıt la partie secr`ete de la cl´e AIK, ce qui peut se faire de mani`ere simple par un d´efi (challenge) cryptographique. `A l’issue de quoi, le tiers de confiance est bien convaincu que la cl´e AIK a ´et´e g´en´er´ee par une plate-forme de confiance authentique. Il va donc signer la partie publique de cette cl´e `a l’aide de sa cl´e priv´ee et la renvoyer `a la plate-forme. Lorsque la plate-forme voudra prouver `a un agent qu’elle est bien une plate-forme de confiance, elle lui fournira la partie publique d’une cl´e d’identit´e d’attestation ainsi que la signature de cette cl´e publique par un tiers de confiance (formule (5.3)).

AIKpub, EKpub, {AIKpub}EKpriv (5.1)

AIKpub= {{AIKpub}? EKpriv}EKpub (5.2)

AIKpub, TCpub, {AIKpub}TCpriv (5.3)

L’agent pourra ainsi avoir la garantie (certifi´ee par le tiers de confiance) que les donn´ees sign´ees par la cl´e AIKpriv l’ont bien ´et´e par une plate-forme de confiance authentique, sans pour autant que la partie publique de la cl´e d’approbation (EKpub) n’ait eu `a lui ˆetre r´ev´el´ee.

13

Ceci signifie entre autres que la plate-forme ne pourra pas ˆetre identifi´ee comme une plate-forme de confiance et que les donn´ees pr´ec´edemment chiffr´ees par le biais du TPM seront inaccessibles.

14

Dans certaines mises en œuvre de l’informatique de confiance et notamment dans celle de Microsoft, le NGBSC (New Generation Based Secure Computing), le syst`eme d’exploitation est divis´e en deux parties dis-tinctes ex´ecut´ees en parall`ele : un environnement standard et un environnement de confiance. Les m´emoires des deux environnements sont isol´ees l’une de l’autre et le passage de donn´ees de l’environnement de confiance `a l’environnement standard est impossible.

153 Les technologies fond´ees sur le Trusted Computing

De cette mani`ere, la plate-forme pourra, `a l’occasion de diff´erentes transactions, utiliser plu-sieurs cl´es d’identit´e d’attestation aupr`es du mˆeme agent sans que ce dernier puisse ´etablir une corr´elation entre les transactions. C’est de cette mani`ere que l’informatique de confiance peut ˆetre utilis´ee pour la gestion d’identit´es virtuelles. Ce protocole est en g´en´eral utilis´e dans une version l´eg`erement plus complexe permettant d’attacher la cl´e d’attestation `a un programme particulier sur la plate-forme de confiance (op´eration d’attestation proprement dite).

Utilisation du protocole DAA

Si le protocole que nous venons de pr´esenter permet de fournir `a un agent des garanties fortes sur le fait que la plate-forme distante soit bien une plate-forme de confiance sans toutefois d´evoiler son identit´e, il comporte toutefois des risques pour la protection de l’anonymat (ou plus pr´ecis´ement du pseudonymat) de la plate-forme. Ce protocole est en effet sensible au risque de collusion entre tiers de confiance. Si plusieurs tiers de confiances sont contrˆol´es par une mˆeme entit´e malveillante, alors l’utilisation de la cl´e d’approbation EK aupr`es des diff´erents tiers de confiance peut ˆetre trac´ee, et cette cl´e attach´ee `a l’ensemble des cl´es d’identit´e d’attestation AIK utilis´ees par la plate-forme. L’hypoth´etique entit´e malveillante est donc en mesure de relier de mani`ere totalement d´eterministe un certain nombre d’activit´es de la plate-forme de confiance.

Pour limiter l’impact des collusions, agents et plates-formes peuvent ´eventuellement s’en-tendre `a chaque interaction pour choisir les tiers de confiance de mani`ere al´eatoire. Le risque de tra¸cabilit´e s’en trouve diminu´e, mais non annul´e15.

Pour cette raison, le protocole DAA, pour Direct Anonymous Attestation [BCC04], a ´et´e propos´e en 2004 en compl´ement de l’utilisation des tiers de confiance. DAA est un protocole d’authentification de type zero-knowledge (´egalement appel´e en fran¸cais ✭✭ `a divulgation nulle de connaissance ✮✮), c’est-`a-dire que la plate-forme de confiance peut prouver `a l’agent distant qu’elle dispose d’une cl´e d’approbation valide sans toutefois lui donner d’information sur l’identit´e de cette cl´e16. L’´etude de ce type de protocoles d´epasse le cadre de nos travaux et nous accepterons cette propri´et´e17.

Dans son rapport sur l’informatique de confiance en 2004 [Art04], le groupe de travail de la Commission europ´eenne sur la protection des donn´ees met en lumi`ere le risque encouru par le recours syst´ematique aux tiers de confiance dans la phase d’authentification. Le rapport recommande, pour la protection de la vie priv´ee des utilisateurs, que le protocole DAA soit la m´ethode d’authentification par d´efaut des plates-formes de confiance, ce qui n’´etait pas encore le cas dans la version courante des sp´ecification du TCG.

5.2.1.4 La certification de la pile d’ex´ecution

Nous avons vu que le TPM conservait en m´emoire, au cours de son ex´ecution, le registre de configuration de la plate-forme (PCR). Le PCR est un condensat r´esumant l’ensemble des

15

En effet, le choix des tiers de confiance peut ˆetre en partie manipul´e au d´etriment de la plate-forme de confiance si l’agent distant connaˆıt et contrˆole les collusions.

16

Plus pr´ecis´ement, le protocole se base sur une s´equence de d´efis (challenges) math´ematiques propos´es par l’agent distant. Pour chacun d’eux, il y a une certaine probabilit´e pour que la plate-forme r´eponde correctement au d´efi sans toutefois disposer d’une cl´e d’approbation valide. Cependant, en augmentant le nombre de d´efis, cette probabilit´e chute tr`es rapidement. L’agent distant peut donc se convaincre que la plate-forme est bien une plate-forme de confiance avec une probabilit´e aussi ´elev´ee que n´ecessaire.

17

En r´ealit´e, des failles (susceptible de mettre en p´eril le pseudonymat de la plate-forme de confiance) ont ´et´e mises en ´evidence (ainsi que les m´ethodes `a mettre en œuvre pour les combler) dans les premi`eres version du protocole [SRC07], mais nous supposerons qu’elles ont pu ˆetre corrig´ees et que nous disposons d’un protocole DAA ✭✭ id´eal ✮✮.

applications en cours d’ex´ecution sur la plate-forme, en prenant en compte l’ordre dans lequel elles ont ´et´e lanc´ees. Si l’on consid`ere le PCR comme une suite dont on ne conserve que le dernier ´el´ement, le premier est obtenu par le hachage du code du BIOS (formule (5.4)). Pour chaque nouveau programme de code P lanc´e sur la plate-forme (en commen¸cant par le syst`eme d’exploi-tation), la nouvelle valeur du PCR est obtenue par l’application de la formule d’extension du PCR (formule (5.5)), `a savoir un hachage de la valeur pr´ec´edente concat´en´ee avec le condensat correspondant au programme.

PCR0 = h(BIOS) (5.4)

PCRn+1= h(PCRn+ h(P)) (5.5)

Lors de la phase de d´emarrage de la machine, le contrˆole n’est pass´e `a la couche sup´erieure que lorsque le condensat de celle-ci a ´et´e v´erifi´e et int´egr´e au PCR. En comparant deux PCR, il est ainsi possible de d´eterminer si deux contextes d’ex´ecutions sont identiques ou non. Cependant, `

a cause des propri´et´es du hachage cryptographique, il est pratiquement impossible `a partir de la valeur courante du PCR :

– de retrouver une valeur ant´erieure du PCR ;

– d’identifier un ou plusieurs des programmes ex´ecut´es sans connaˆıtre l’ensemble de la s´equence ;

– de forger une s´equence d’ex´ecution diff´erente aboutissant `a un PCR identique. Attestation de l’environnement d’ex´ecution

`

A l’aide du PCR et de m´ethodes similaires `a celles utilis´ees pour l’authentification en tant que plate-forme de confiance, il est possible de convaincre un agent distant de la nature exacte de l’environnement d’ex´ecution de la plate-forme de confiance. Si la plate-forme envoie `a l’agent la mesure du PCR sign´ee par une cl´e d’identit´e d’attestation, alors l’agent peut avoir confiance dans le fait que le PCR a bien ´et´e calcul´e par un TPM valide, refl´etant donc fid`element l’environnement d’ex´ecution distant. Si l’agent distant dispose d’un PCR de r´ef´erence, il peut le comparer au PCR fourni avant de prendre des d´ecisions.

Attestation d’un programme particulier

Il est ´egalement possible `a une plate-forme de confiance de communiquer sur une application en particulier, sans utiliser le PCR (qui d´ecrit l’int´egralit´e des logiciels lanc´es, ce qui peut donc ˆetre trop peu expressif pour de nombreuses interactions). Mark Dermot Ryan d´ecrit un protocole d’attestation d’une cl´e AIK attach´ee `a un programme particulier [Rya06a]. Ce protocole est quasiment similaire `a celui que nous avons donn´e pour l’authentification en tant que plate-forme de confiance aupr`es d’une autorit´e de certification, `a ceci pr`es qu’en plus de la cl´e d’identit´e d’attestation g´en´er´ee, le condensat d’une application particuli`ere est ´egalement sign´e par le TPM. Les informations envoy´ees au tiers de confiance sont donc celles de la formule (5.6) (o`u A est le code de l’application en question).

AIKpub, EKpub, {AIKpub + h(A)}EKpriv (5.6)

Le tiers de confiance, en plus de v´erifier la signature, v´erifie alors ´egalement que l’application A fait partie d’une liste d’applications ✭✭ certifi´ees ✮✮, autoris´ees, garantissant le respect d’un certain nombre de propri´et´es. La d´elivrance du certificat par le tiers de confiance est alors subordonn´ee `

a cette v´erification, et la cl´e d’identit´e d’attestation est attach´ee, dans le certificat fourni, `a ce programme particulier.

155 Les technologies fond´ees sur le Trusted Computing

Cette m´ethode d’approbation d’un programme distant est une propri´et´e qui nous sera tr`es utile pour la mise en œuvre de la protection des donn´ees personnelles. En effet, elle permet `a un agent d’avoir la certitude que le programme distant qui traitera ses donn´ees a re¸cu l’agr´ement d’une autorit´e de certification qu’il pourra lui-mˆeme avoir choisie.

5.2.1.5 Le chiffrement de donn´ees par le TPM

Le TPM peut ˆetre utilis´e pour chiffrer des donn´ees de mani`ere plus sˆure, en utilisant la cl´e racine pour le stockage SRK (qui est sp´ecifique au propri´etaire du TPM : si un autre utilisateur prend possession du TPM, la cl´e est d´etruite). La cl´e SRK est utilis´ee pour chiffrer d’autres types de cl´es RSA : des cl´es de stockage, utilis´ees pour chiffrer d’autres cl´es RSA, et des cl´es de liaison (binding keys), utilis´ees pour chiffrer des cl´es sym´etriques. La cl´e sym´etrique K, qui servira `a chiffrer les donn´ees elles-mˆemes, est donc stock´ee dans l’ordinateur apr`es avoir ´et´e chiffr´ee par toute une chaˆıne de cl´es RSA, remontant jusqu’`a la cl´e SRK stock´ee dans le TPM.