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