des vérifications sur TCPA: les raisons pour lesquelles je refuse d'avoir des puces et des softs TCPA dans mon ordinateur

IMPORTANT: Le professeur et directeur de l'unité Sécurité de l'Université de Cambridge, Ross Anderson, propose un document en anglais plus à jour que celui-ci: The TC FAQ
Une ancienne version française de ce document est disponible ici.


Puisqu'il circule beaucoup d'informations non vérifiables sur TCPA, voici 8 informations vérifiables sur TCPA (documents du site officiel TCPA ou documents officiels destinés à rassurer d'IBM cités à chaque fois) et leur conséquences pour nous les utilisateurs:

*info 1: au moment de la fabrication il est inséré une clé privée asymétrique unique dans chaque puce TCPA
"the endorsement key" "uniquely identifies the platform" au bas de la page 4 de http://www.research.ibm.com/gsal/tcpa/tcpa_rebuttal.pdf
IBM dit que c'est pour des problèmes de vie privée qu'ils ont pris la décision que l'accès à cette clé peut être désactivé dans les puces IBM actuelles. Cette décision interne d'IBM est la confirmation que la norme TCPA n'oblige pas à fournir la possibilité de désactiver cette clé (désactivation qui n'est faisable que si les softs et documents DRM dont on a besoin n'obligent pas à utiliser cette clé)
*conséquences de cette info: cette clé unique est pire qu'un simple numéro unique (retiré par Intel de ses processeurs, après des appels au boycott), car elle ne peut pas etre contrefaite (elle est authentifiable car elle seule peut décoder des messages cryptées avec sa clé publique associée). Un jour ou l'autre, l'utilisation de cette clé sera exigée par les softs DRM (donc fermer l'accès à cette clé impliquera de ne pas pouvoir utiliser ces softs pour encoder/décoder) pour que seul un ordinateur précis puisse accéder à un fichier protégé par DRM, pour un temps précis en fonction de ce qu'a payé l'utilisateur de l'ordinateur, et des techniques de watermarking pourront être utilisées par ce soft DRM pour savoir si ce PC a fait une copie en utilisant des techniques analogiques et l'a envoyé à d'autres PCs.

*info 2.1: TCPA a pour but l'identification à distance de l'OS que j'ai booté: "a provider
will need to know that the remote platform is trustworthy" "The TCPA
system reports the metrics and lets the challenger make the final decision regarding the
trustworthiness of the remote platform." http://www.trustedcomputing.org/docs/Credible_Interoperability_020702.pdf
*conséquences: les fournisseurs de contenu auront donc la possibilité de discriminer l'OS que j'utilise. Ils pourront refuser de m'envoyer un contenu si je n'utilise pas Windows pour le recevoir.
Comme évoqué dans l'info suivante, Windows pourra alors faire en sorte qu'aucun autre OS de mon ordinateur puisse accéder à ces documents.

*info 2.2: il est possible pour un OS d'utiliser TCPA pour crypter certains documents et interdire aux autres OS d'accéder à ces documents
"if an attempt is made to boot an alternative system" "the unseal will fail, thus protecting the data" bas de la page 4 de http://www.research.ibm.com/gsal/tcpa/why_tcpa.pdf
*conséquences: tous les utilisateurs de dual-boot (par exemple Linux et Windows sur le meme ordinateur) pourront bientot etre confrontés à des fichiers (documents ou programmes) encryptés sous Windows et inutilisables sous Linux: les documents ne seront donc pas ouvrables par openoffice, et les programmes ne seront donc pas exécutables par wine.
Notons que sous Linux et Windows il est deja possible de protéger par une passphrase certains documents ou certaines partitions. La différence est que cette passphrase est stockée dans le cerveau de l'utilisateur qui peut donc l'utiliser avec l'OS de son choix, pas dans une puce TCPA qui refusera à un OS alternatif de l'utiliser.
Notons aussi que des outils libres comme tripwire permettent de s'assurer en bootant à partir d'une disquette ou d'un CD-rom qu'un OS n'a pas été modifié par un virus ou par un cracker (pas besoin de TCPA pour cela donc)
enfin des outils libres de sécurité comme LinuxSecurityModule, systrace, fireflier, permettent de s'assurer que certains fichier du système ne pourront aps être accédés par des programmes qui communiquent avec internet (limitant par là meme les dégats que peuvent causer un virus ou un cracker)

*info 2.3: un OS a la possibilité de prendre le controle total de la puce TCPA (appelée TPM) et de toutes ses fonctionnalités en devenant "owner" du TPM). La seule façon de reprendre le controle de la puce est de faire un reset, et de perdre les informations qu'elle contenait.
"A TPM is necessarily activated by a reset. This, however, causes the TPM to discard any existing secrets, and puts the TPM into its virgin state, waiting for an Owner." bas de la page 18 de http://www.trustedcomputing.org/docs/main%20v1_1b.pdf
*conséquences: Si les applications DRM de Win exigent que Win soit owner, on devra laisser owner à Win pour pouvoir utiliser ces applications.

*info 2.4: Microsoft est le seul non fabricant de CPU à être membre fondateur de TCPA
cf "background" de http://www.trustedcomputing.org/tcpaasp4/index.asp
et les specs TCPA commencent par une notion de "roots of trust" très similaire à l'activation framework de Windows XP
page 12 de http://www.trustedcomputing.org/docs/main%20v1_1b.pdf
*conséquence: cette information est à rapprocher des condamnations anti-trust définitives dont MS vient de faire l'objet. Cela prouve que Palladium n'est pas la seule technologie de contrôle soutenue activement par MS. Palladium peut s'appuyer sur TCPA qui intègre déjà des notions de l'activation framework de XP.

Conséquence de l'ensemble des informations 2.x ci-dessus
: il est facile d'utiliser TCPA pour fournir l'équivalent des trusted sandboxs de Palladium.
Si le premier OS au moment du boot ne contient en fait qu'une trusted sandbox et un virtualiseur (comme le libre plex86, ou virtualPC, vmware, ...), alors il pourra faire tourner dans le virtualiseur un système complet, tout en controlant la manière dont ce système peut accéder aux informations contenues dans la trusted sandbox, ainsi qu'aux programmes qui s'exécutent dans cette sandbox.
On peut faire de meme en utilisant un micro-noyau: en faisant tourner de manière concurente et indépendante une sandbox et un OS au-dessus de ce micro-noyau. Depuis NT, Windows peut s'exécuter au-dessus d'un micro-noyau (le système libre Hurd s'exécute aussi au dessus d'un micro-noyau)
Quand un fournisseur de contenu voudra s'assurer que mon système contient une trusted sandbox de type Palladium, il pourra exiger que ma puce TCPA lui fournisse un checksum signé du premier OS du boot. Dès lors il pourra refuser de m'envoyer des documents ou des programmes si il constate que mon OS ne possède pas cette trusted sandbox.
On peut noter d'ailleurs que MS vient de racheter le virtualiseur VirtualPC: http://www.connectix.com/about/acquisition_win.html


*info 3: impossibilité de controler le code qui est dans les puces TCPA
contrairement aux softs libres de sécurité comme LSM/tripwire/fireflier/systrace, il est très difficile, voir impossible, d'aller controler le code qui sera stocké dans les puces TCPA .
Il est meme prévu dans la spec officielle de cacher au maximum le fonctionnement d'éléments comme le générateur aléatoire (qui est pourtant la base de la sécurité de tout cryptage)
"Intermediate results from the RNG are not available to any user. When the data is for internal use by the TPM (e.g., asymmetric key generation) the data is held in a shielded location and is not accessible to any user. " en haut de la page 13 de http://www.trustedcomputing.org/docs/TCPA_TPM_PP_1_9_7.pdf
*conséquences: sécurité et obscurité ne font pas bon ménage. Des chevaux de Troie ou des failles pourraient etre introduites dans ces puces sans que les utilisateurs le sachent. Les algorithmes de sécurité et de cryptages évoluent au fur et à mesure que de nouvelles failles sont trouvées: il n'est pas prévu dans les specs de pouvoir changer ces algorithmes si une nouvelle faille est trouvée. Aucun des algorithmes de cryptage utilisés dans les specs TCPA n'a été démontré comme étant incassable (par une preuve mathématique). La taille fixe de leur clé est incompatible avec l'évolution rapide des matériels et des techniques pour casser la crypto.
Bref, mieux vaut utiliser des logiciels libres de crypto évolutifs que des logiciels obscurs non évolutifs cachés dans une puce.

*info 4: TCPA inclut un mode "extend" qui permet de s'assurer que seul un OS signé pourra être booté avec ce mode
"the OS kernel would have to be signed"
paragraphe 4 du document critique d'un des créateurs de TCPA http://www.cs.umd.edu/~waa/TCPA/TCPA-goodnbad.html
document commenté par IBM comme étant très raisonable "most reasonnable" et sans nier l'existence du mode "extend" au bas de la page 4 de http://www.research.ibm.com/gsal/tcpa/why_tcpa.pdf
*conséquences du mode "extend": tous les OS libres (noyaux + programmes systèmes) que l'on peut recompiler en totalité ou en partie ne seront plus utilisables avec TCPA après recompilation.
Voir plus utilisables du tout, même sous forme de binaires, si aucune version récente de l'OS n'est signée pour TCPA.

*info 5: les specs n'interdisent pas l'ajout de fonctionalités supplémentaires par chaque constructeur dans leur puces de sécurité:
"it can be integrated into some existing component or components"
page 11 de http://www.trustedcomputing.org/docs/main%20v1_1b.pdf
*conséquences: un PC à la norme TCPA ne sera donc pas une garantie que seules les fonctionalités de la norme TCPA sont dans ses puces de sécurité (ou dans son CPU)
ce PC pourra notamment interdire l'accès aux fonctions TCPA aux OS non signés (meme si le mode extend est abandonné dans les specs)
voir interdire le boot de tout OS non signé

Bref, au moins pour toutes les raisons ci-dessus, je refuse fortement d'avoir des puces ou des softs TCPA dans mon ordinateur (au moins aussi fort que le numéro unique Intel dans chaque processeur qui a été abandonné après des appels au boycott)

URL permanente de cet article: http://free2.org/tcpa/

cette page est diffusable sous licence GNU GPL de la FSF (merci de garder un lien vers l'URL permanente)