Implémentations des spécifications du TCG sous GNU/Linux

Transcription

Implémentations des spécifications du TCG sous GNU/Linux
Les spécifications du TCG sous GNU/Linux
Implémentations des spécifications
du TCG sous GNU/Linux
Serge LEFRANC
SEE 10/2005
DGA/CELAR
n° 1 / 23
Les spécifications du TCG sous GNU/Linux
Introduction
SEE 10/2005
DGA/CELAR
n° 2 / 23
Les spécifications du TCG sous GNU/Linux
Introduction
1/3
« From a practical standpoint, the security problem will remain as
long as manufacturers remain commited to current system
architecture, produced without a firm requirement for security. As
long as there is support for ad hoc fixes and security packages for
these inadequate designs and as long as the illusory results of
penetration teams are accepted as demonstrations of a computer
system security, proper security will not be a reality. »
Roger Schell, USAF,
Preliminary notes on the Design of secure
Military Computer System (1er janvier 1973)
SEE 10/2005
DGA/CELAR
n° 3 / 23
Les spécifications du TCG sous GNU/Linux
Introduction
2/3
I En 30 ans, la situation décrite par Roger Schell s’est
concrétisée…
Î
Nos systèmes ne sont pas spécifiés pour lutter contre les menaces modernes
véhiculées par Internet, ils sont souvent sujets à des problèmes
d’implémentation et nécessitent l’installation quasi quotidienne de patchs de
sécurité!
I Depuis 2000, un certain nombre de réflexions sur ce sujet font
état de la nécessité d’avoir des mécanismes de sécurité natifs
et implémentés au niveau matériel.
Î
Article de Roger Schell: « Platform Security: What is lacking ».
I Sous l’initiative d’IBM, le groupe TCPA (Trusted Computing
Platform Alliance) a été créé en 2001 afin de fournir les
spécifications de fonctionnement d’un tel composant.
Î
SEE 10/2005
A l’origine, IBM avait réalisé la puce ESS (Embedded Security Subsystem) qui
permettait de rendre disponible des jetons à clef publique en les intégrant au
système (analogue à ce que proposait une carte à puce).
DGA/CELAR
n° 4 / 23
Les spécifications du TCG sous GNU/Linux
Introduction
3/3
I Au printemps 2003, le groupe TCPA a évolué en TCG (Trusted
Computing Group).
Î
Î
Il reprend l’ensemble des spécifications du groupe TCPA.
C’est une organisation non gouvernementale à but non lucratif.
I La presse s’est faite l’écho d’un certain nombre d’analyses
sur ce que serait TCPA et les implications de cette nouvelle
architecture pour les utilisateurs.
Î
Ces analyses n’étant pas très objectives, IBM a publié un article clarifiant la
situation (Clarifying Misinformation on TCPA, Octobre 2002).
I Contrairement à ce que l’on pense, l’utilisation de ces
technologies ne se limite pas au monde du logiciel
propriétaire, un grand nombre de travaux ont déjà été réalisés
sous GNU/Linux.
Î
SEE 10/2005
C’est l’objet de cette présentation!
DGA/CELAR
n° 5 / 23
Les spécifications du TCG sous GNU/Linux
Plan de l'exposé
I Introduction
I Présentation du Trusted Computing Group
Î
Î
Î
Î
Objectifs
Organisation
Réalisations
État actuel de la diffusion
I Les implémentations sous GNU/Linux
Î
Î
IBM TCPA support
Applied Data Security Group
I Conclusion
SEE 10/2005
DGA/CELAR
n° 6 / 23
Les spécifications du TCG sous GNU/Linux
Présentation du TCG
SEE 10/2005
DGA/CELAR
n° 7 / 23
Les spécifications du TCG sous GNU/Linux
Objectifs
I Le but du TCG est d’améliorer la sécurité des ordinateurs en
fournissant un ensemble de spécifications en vue d’établir un
standard industriel pour un sous système informatique de
confiance.
Î
Î
Î
Î
Une plate-forme conforme à ces spécifications est appelée Trusted Platform.
La partie TCPA à laquelle il est souvent fait référence est apelée Trusted
Platform Subsystem.
Ce sous système est composé d’un composant matériel (le TPM, Trusted
Platform Module) associé à une API d’utilisation (la TSS, TPM Software Stack).
Récemment, des groupes de travail spécialisés se sont constitués afin de
fournir des solutions à des problématiques plus larges:
– Infrastructure, Mobile, PC Client, Serveur, Système de stockage, Trusted
Network Connect…
SEE 10/2005
DGA/CELAR
n° 8 / 23
Les spécifications du TCG sous GNU/Linux
Organisation
I Le groupement TCG est constitué de plus d’une centaine de
membres repartis en 3 niveaux de contributions:
Î
Î
Î
Î
Promoter Member
Contributor Member
Adopter Member
A cela s’ajoute la possibilité pour des organismes de recherche ou étatique de
participer aux réunions de travail, mais sans avoir de privilèges décisionnels sur
les orientations techniques (TCG Industry Liaison Program).
I Les membres Promoter possèdent un droit de vote
concernant les orientations techniques du TCG.
Î
Î
Les membres sont AMD, Hewlett Packard, IBM, Intel, Microsoft, Sony et SUN
Microsystem.
En plus des droits d’inscription, chaque candidature au niveau Promoter doit
être avalisée par l’ensemble des membres de ce niveau.
– Il ne suffit donc pas de donner 50 000$!
SEE 10/2005
DGA/CELAR
n° 9 / 23
Les spécifications du TCG sous GNU/Linux
Réalisations
I La réalisation la plus avancée et la plus significative concerne
le composant matériel de sécurité et son API d’utilisation.
Î
Î
Î
SEE 10/2005
TPM: Version 1.2, février 2005.
TSS: Version 1.1, août 2003.
Certains autres groupes de travail ont fourni des spécifications, mais elles ne
sont pas aussi avancées que l’ensemble TPM/TSS, et surtout, elle ne sont pas
encore en phase industrielle (ce qui est le cas pour le TPM).
DGA/CELAR
n° 10 / 23
Les spécifications du TCG sous GNU/Linux
Le TPM
1/4
I Le TPM est un composant matériel composé de plusieurs
éléments:
UNITES
FONCTIONNELLES
RNG
MEMOIRE NON
VOLATILE
Endorsement Key
2048 bits
MEMOIRE
VOLATILE
Clef RSA 1
. . .
Clef RSA 9
Hash
HMAC
Storage Root Key
2048 bits
Générateur Clef
RSA
Owner Auth Secret
160 bits
Chiffrement et
Déchiffrement RSA
SEE 10/2005
PCR 0
. . .
PCR 15
Handles de clef
Handles autorisation
de session
DGA/CELAR
n° 11 / 23
Les spécifications du TCG sous GNU/Linux
Le TPM
2/4
I Le TPM possède 5 unités fonctionnelles fournissant un
service cryptographique:
Î
Î
Î
Î
Î
Un générateur de nombres aléatoires matériel,
Une unité de hachage SHA-1,
Un mécanisme d’authentification de message via l’utilisation de la fonction de
hachage précédente,
Une capacité pour générer des clefs RSA de 2048 bits maximum,
Un moteur RSA permettant la signature, le chiffrement et le déchiffrement.
I Le TPM stocke également 3 clefs en mémoire non volatile:
Î
La clef d’« endorsement » composée d’une paire de clefs publique et privée
RSA de 2048 bits.
– Cette clef peut être créée aléatoirement lors de la fabrication du composant ou
importée par l’utilisateur. La partie clef privée ne quitte jamais le composant et la partie
publique est utilisée pour l’attestation et le chiffrement de données envoyées au
composant.
SEE 10/2005
DGA/CELAR
n° 12 / 23
Les spécifications du TCG sous GNU/Linux
Le TPM
Î
3/4
La Storage Root Key (SRK) est également une paire de clefs publique et privée
RSA de 2048 bits.
– Elle ne quitte jamais le TPM et est utilisée pour chiffrer les clefs privées afin de les
stocker en dehors du TPM et les déchiffrer lors de leur import. Cette clef est initialisée
avec la commande TPM_TakeOwnership. Cette clef peut être remise à zéro par son
propriétaire.
Î
La Owner Authorization Secret Key est un secret de 160 bits partagé avec le
propriétaire du TPM.
– Le propriétaire la charge dans le TPM via la commande TPM_TakeOwnership. Elle
est utilisée pour autoriser certaines requêtes sensibles.
I La mémoire volatile stocke un certain nombre de données non
permanentes:
Î
Î
10 espaces pour le stockage de paires de clefs RSA temporaires.
15 registres PCR (Platform Configuration Register) de 160 bits contenant le
haché d’informations sur la configuration.
– Lors de la phase de démarrage, un certain nombre de mesures sont réalisées sur le
BIOS, la MBR, le bootloader… Elles sont stockées dans les PCR.
SEE 10/2005
DGA/CELAR
n° 13 / 23
Les spécifications du TCG sous GNU/Linux
Le TPM
Î
4/4
2 types de Handles: les Handles de clef qui sont utilisés pour donner un nom
temporaire au clefs chargées dans le TPM et les Handles d’autorisation de
session qui sont utilisés pour identifier les données d’état d’autorisation à
travers les différentes commandes.
I Le TPM ne réalise aucun contrôle et aucun monitoring!
Î
Î
Î
Les mesures sont réalisées par le PC et envoyées au TPM.
Il n’a aucune possibilité de savoir quelles sont les données mesurées.
Il n’est pas capable de réinitialiser l’ordinateur.
I Le propriétaire du TPM est le seul à le contrôler.
Î
Î
SEE 10/2005
Le TPM est désactivable à la demande.
Le propriétaire contrôle l’usage des clefs.
DGA/CELAR
n° 14 / 23
Les spécifications du TCG sous GNU/Linux
État actuel de la diffusion
I IDC estime qu’il y aura plus de 30 millions de périphériques
TPM en 2006.
Î
En 2007, 55% des ordinateurs portables seront équipés de puce TPM.
I Vendeurs de composants TPM:
Î
Î
Î
Î
Atmel (AT97SC3202, AT97SC3201, AT97SC3201S)
Infineon (SLD 9630 TT 1.1)
National Semiconductors (Trusted IO, Super IO)
ST Microelectronics (ST 19W18, ST 19WP18-TPM)
I Vendeurs de systèmes incluant l’architecture TPM:
Î
Î
Î
Î
SEE 10/2005
Fujitsu (Lifebook S7000, E8000, NAH)
Hewlett Packard (Stations de travails D530, portables NC4010, NC6000,
NC8000, NW8000)
IBM (Portables ThinkPad et station de travail NetVista)
Intel (Carte mère D875GRH)
DGA/CELAR
n° 15 / 23
Les spécifications du TCG sous GNU/Linux
Les implémentations sous GNU/Linux
SEE 10/2005
DGA/CELAR
n° 16 / 23
Les spécifications du TCG sous GNU/Linux
Les implémentations sous GNU/Linux
I L’implémentation Open Source d’IBM
Î
IBM fournit un driver pour le TPM et la TSS sous Linux.
– http://sourceforge.net/projects/tpmdd/
– http://sourceforge.net/projects/trousers/
I TPM Device Driver
Î
Î
Î
Driver permettant d’utiliser le composant TPM comme décrit dans la
spécification 1.2 du TCG.
Ce sont des patchs au noyau Linux 2.6.5, 2.6.9, 2.6.10 et 2.6.11.
Actuellement en version stable.
I TrouSerS
Î
Î
SEE 10/2005
C’est une implémentation de la librairie TSS.
Actuellement en version bêta.
DGA/CELAR
n° 17 / 23
1/4
Les spécifications du TCG sous GNU/Linux
Les implémentations sous GNU/Linux
2/4
I Développement du module tcglinux au noyau Linux
Î
Î
Le but est de fournir des mesures de certains composants de l’OS.
Ces informations peuvent ensuite être utilisées pour déterminer l’intégrité de la
configuration du système à un instant donné.
I Ce projet se compose de plusieurs sous ensembles:
Î
Une architecture de mesure d’intégrité,
– Calcul du haché SHA-1 d’un ensemble de fichiers du système associé à une librairie
qui permet aux applications de vérifier les entrées sensibles dans cette liste de haché.
Î
Un mécanisme d’attestation basé sur le TPM,
– Le TPM stocke de façon sécurisée une signature de la liste des hachés de fichiers.
– Toute nouvelle mesure ajoutée à la liste est également ajoutée dans un registre PCR
Î
SEE 10/2005
Le but est de tirer parti de la liste de hachés pour raisonner en terme de
sécurité de fonctionnement du système.
DGA/CELAR
n° 18 / 23
Les spécifications du TCG sous GNU/Linux
Les implémentations sous GNU/Linux
3/4
I Applied Data Security Group
Î
Groupe de recherche de l’université de Bochum (Allemagne).
– http://www.prosec.rub.de/index.html
Î
Î
Î
Implémente les spécifications du TCG sous Linux depuis début 2004.
Réalisation d’un driver et la librairie associée pour le TPM d’Infineon SLD 9630
TT LPC (le driver est basé sur le driver fournit par IBM).
La version 1.5 du drivers TPM est intégrée au noyau Linux 2.6.13 et supporte
la version 1.2 du composant Infineon.
– La libtpm n’est plus compatible compte tenu des modifications induites par la
version 1.2 des spécifications. Il est conseillé d’utiliser TrouSerS.
I Parallèlement, ce groupe de recherche fournit des
implémentations « TPM compliant » de certaines applications:
Î
Î
Î
Î
Î
Trusted GRUB,
Secure GUI,
Trusted Viewer,
Secure Application Manager.
Le degré d’avancement de ces applications est variable…
– Trusted GRUB est fonctionnel.
SEE 10/2005
DGA/CELAR
n° 19 / 23
Les spécifications du TCG sous GNU/Linux
Les implémentations sous GNU/Linux
4/4
I Trusted GRUB
Î
Î
Î
Extension du bootloader GRUB via la gestion des spécifications du TCG.
Fournit une architecture sécurisée de démarrage.
Le TPM mesure l’intégrité d’un certain nombre d’élément nécessaire au
démarrage du système d’exploitation.
I Secure GUI
Î
Interface sécurisée qui fournit un canal de communication sécurisé entre une
application et l’utilisateur
I Trusted Viewer
Î
Fournit un environnement de visualisation dans lequel les données ne peuvent
pas être altérées (DRM…).
I Secure Application Manager
Î
Î
SEE 10/2005
Contrôle l’installation de nouvelles applications et services afin de vérifier que la
politique de sécurité définie pour le système est bien respectée.
Permet également de fournir des informations sur le contexte de fonctionnement
des applications afin de leur fournir un mécanisme d’authentification.
DGA/CELAR
n° 20 / 23
Les spécifications du TCG sous GNU/Linux
Conclusion
SEE 10/2005
DGA/CELAR
n° 21 / 23
Les spécifications du TCG sous GNU/Linux
Conclusion
I L’orientation donnée depuis quelques années à l’intégration
des fonctionnalités de sécurité au cœur du matériel est
devenue une réalité.
I Contrairement à ce que l’on pense, ces améliorations ne se
cantonnent pas au monde du logiciel propriétaire, les
différentes initiatives présentées en sont la preuve!
Î
Î
Elles existent également sous NetBSD et OpenBSD…
… et Apple semble plus qu’intéressé pour son passage sur architecture x86!
I Ces nouvelles architectures vont nous permettre de modifier
en profondeur l’implémentation de la sécurité dans nos
systèmes, notamment via l’utilisation d’une couche matérielle
dédiée.
SEE 10/2005
DGA/CELAR
n° 22 / 23
Les spécifications du TCG sous GNU/Linux
Bibliographie
I Roger Schell, Michael Thompson, « Plateform Security: What is
lacking » Elsevier Science, Information Security Technical Report,
Janvier 2000.
I David Safford, « Clarifying Misinformation on TCPA », IBM Research,
Octobre 2002.
I Liste des materiels utilisant un TPM:
http://www.tonymcfadden.net/tpmvendors.html
SEE 10/2005
DGA/CELAR
n° 23 / 23