Rapport technique d`évaluation - TrueCrypt v6.0a
Transcription
Rapport technique d`évaluation - TrueCrypt v6.0a
SOGETI Infrastructure Services 6 - 8, Rue Duret 75016 Paris Evaluation CSPN TrueCrypt v6.0a Tél. : +33(0)1.58.44.55.66 Fax : +33(0)1.58.44.26.19 Rapport technique d’évaluation Référence SOGETI : K08-JBB-CR-671-2008 Version 1.2 Évaluation CSPN Rapport technique d’évaluation VALIDITE DU DOCUMENT Identification Client Projet Evaluation CSPN Fournisseur SOGETI IS/ESEC Validité du document Action Rédaction Rédaction Date 18/08/2008 18/08/2008 Nom J.-B. BEDRUNE J. LENOIR Fonction Consultant sécurité Consultant sécurité Visa Historique des modifications Date création 18/08/2008 Date application V.R. Évolution 1.0 1.1 1.2 Création du RTE Corrections mineures Prise en compte des remarques de la DCSSI 12/09/2008 20/10/2008 Diffusion (suivie en mise à jour) Pascal Chour DCSSI Diffusion en copie (non suivie) Édouard JEANSON SOGETI ESEC Manager Référence des documents utilisés Version 0.3 3 1.0 Référence K08-LC-PRE-651-2008 K08-JBB-CR-672-2008 Nom TrueCrypt – Cible de sécurité CSPN Documentation TrueCrypt 6.0 Spécifications cryptographiques de TrueCrypt 6.0 Par sa conception et sa réalisation technique originale, ce document est protégé par les dispositions régissant le droit de la propriété intellectuelle. Il est notamment interdit sous peine de poursuites d'imiter ou de reproduire en tout ou partie cette conception et réalisation technique de ce document. Il est également interdit de transmettre à des tiers ce document, ou de divulguer tous renseignements et informations contenus dans ce document, ou toute information permettant l'imitation ou la reproduction totale ou partielle de ce document. Ce document est l’unique propriété de SOGETI IS, et toute reproduction et/ou divulgation, sans autorisation expresse et préalable de SOGETI IS, est interdite. SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 2 / 80 Évaluation CSPN Rapport technique d’évaluation TABLE DES MATIERES VALIDITE DU DOCUMENT ..................................................................................................................................... 2 TABLE DES MATIERES ........................................................................................................................................... 3 IDENTIFICATION DE L’EVALUATION ...................................................................................................................... 5 IDENTIFICATION DU PRODUIT EVALUE ................................................................................................................. 5 TRAVAUX CITÉS .................................................................................................................................................... 5 1. FONCTIONNALITES, ENVIRONNEMENT D’UTILISATION ET DE SECURITE ...................................................... 6 1. 2. 3. 4. 5. 2. SPECIFICATION DE BESOIN DU PRODUIT.....................................................................................................................6 UTILISATEURS TYPIQUES ........................................................................................................................................8 ENVIRONNEMENT TYPIQUE D’UTILISATION/ARGUMENTAIRE DU PRODUIT ........................................................................8 DESCRIPTION FONCTIONNELLE DU PRODUIT ...............................................................................................................8 INVENTAIRE DES FONCTIONS DE SECURITE IDENTIFIEES .................................................................................................9 INSTALLATION DU PRODUIT ...................................................................................................................... 12 1. 2. 3. 4. 3. PARTICULARITE DE PARAMETRAGE DE L’ENVIRONNEMENT ..........................................................................................12 OPTIONS D’INSTALLATION RETENUES POUR LE PRODUIT .............................................................................................12 DESCRIPTION DE L’INSTALLATION ET DES NON-CONFORMITES EVENTUELLES ...................................................................13 DUREE DE L’INSTALLATION ...................................................................................................................................13 ANALYSE DE LA CONFORMITE .................................................................................................................... 14 1. 2. 3. 4. 5. 6. 7. 4. ANALYSE DE LA DOCUMENTATION .........................................................................................................................14 REVUE DU CODE SOURCE .....................................................................................................................................14 MECANISMES CRYPTOGRAPHIQUES........................................................................................................................15 FONCTIONNALITES TESTEES ..................................................................................................................................22 SYNTHESE DES FONCTIONNALITES TESTEES/NON TESTEES ET DES NON-CONFORMITES .......................................................23 AVIS D’EXPERT SUR LE PRODUIT.............................................................................................................................24 DUREE DE L’ANALYSE ..........................................................................................................................................24 ANALYSE DE LA RESISTANCE DES FONCTIONS ET MECANISMES ................................................................. 25 1. 2. 3. 4. 5. LISTE DES MECANISMES ET COTATIONS DE LEUR RESISTANCE .......................................................................................25 ROBUSTESSE DES MECANISMES CRYPTOGRAPHIQUES .................................................................................................30 AVIS D’EXPERT SUR LA RESISTANCE DES MECANISMES DE SECURITE ...............................................................................33 DUREE DE L’ANALYSE ..........................................................................................................................................33 ANALYSE DES VULNERABILITES .................................................................................................................. 34 1. 2. 3. 4. 5. 6. LISTES DES VULNERABILITES CONNUES OU POTENTIELLES A LA SOUS-CATEGORIE ..............................................................34 LISTE DES VULNERABILITES REELLEMENT TESTEES ......................................................................................................36 LISTE DES VULNERABILITES DECOUVERTES LORS DE L’ANALYSE ET NON CONNUES DES BASES UTILISEES .................................36 AVIS D’EXPERT SUR LES VULNERABILITES .................................................................................................................43 DUREE DE L’ANALYSE ..........................................................................................................................................43 ANALYSE DE LA FACILITE D’EMPLOI ........................................................................................................... 44 1. 2. 3. 4. CAS OU LA SECURITE EST AMBIGUË ........................................................................................................................44 RECOMMANDATIONS POUR UNE UTILISATION SURE DU PRODUIT .................................................................................44 AVIS D’EXPERT SUR LA FACILITE D’EMPLOI ...............................................................................................................46 DUREE DE L’ANALYSE ..........................................................................................................................................47 SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 3 / 80 Évaluation CSPN Rapport technique d’évaluation 7. SYNTHESE .................................................................................................................................................. 47 ANNEXE 1 : FICHES D’ANALYSE DE CONFORMITE DES FONCTIONS DE SECURITE ................................................ 48 ANNEXE 2 : TABLEAUX PROPOSES PAR LA CEM POUR LA COTATION DES MECANISMES DE RESISTANCE ........... 79 8. FIN DU DOCUMENT.................................................................................................................................... 80 SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 4 / 80 Évaluation CSPN Rapport technique d’évaluation Identification de l’évaluation Référence du RTE Auteur Approbateur Date de création du RTE Date de mise à jour du RTE N° de version majeure du RTE N° de version mineure du RTE Divers J.-B. BEDRUNE J. LENOIR F. RAYNAL 18/08/2008 08/08/2008 1 0 Identification du produit évalué Nom de l’éditeur Nom du produit Nº de version analysée Correctifs éventuels appliqués TrueCrypt Foundation TrueCrypt 6.0a Travaux cités Alexei Czeskis, David J. St. Hilaire, Karl Koscher, Steven D. Gribble, Tadayoshi Kohno, Bruce Schneier. 2008. Defeating Encrypted and Deniable File Systems: TrueCrypt v5.1a and the Case of the Tattling OS and Applications. s.l. : 3rd Usenix Workshop on Hot Topics in Secuirty, 2008. DCSSI. 2008. Cotation cryptographique des mécanismes cryptographiques du projet TRUECRYPT. Paris : s.n., 2008. —. 2006. Règles et recommandations concernant le choix et le dimensionnement des mécanismes cryptographiques de niveau de robustesse standard. 2006. Eli Biham, Orr Dunkelman, Nathan Keller. 2003. Differential-Linear Cryptanalysis of Serpent. Lecture notes in computer science. 2003. Hars, Laszlo. 2006. P1619: how serious is the leak of K2? IEEE Standards Working Group Areas. [Online] Juin 2, 2006. http://grouper.ieee.org/groups/1619/email/msg00962.html. IEEE 1619. 2008. The XTS-AES Tweakable Block Cipher. 2008. IEEE. 2008. IEEE Standard for Cryptographic Protection of Data on Block-Oriented Storage Devices. 2008. 978-0-7381-5363-6. Jonathan Brossard, Iviz Technosolutions Pvt. Ltd. 2008. Bypassing pre-boot authentication passwords by instrumenting the BIOS keyboard buffer (practical low level attacks against x86 pre-boot authentication softwares). Calcutta : s.n., 2008. NIST. 2004. The Secure Hash Algorithm Validation System (SHAVS). 2004. ntldr. 2008. Critical vulnerabilities in TrueCrypt 5.1. openPGP in Russia. [Online] Mars 11, 2008. http://www.pgpru.com/novosti/2008/kriticheskajaujazvimostjvtruecrypt51. SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 5 / 80 Évaluation CSPN Rapport technique d’évaluation 1. Fonctionnalités, environnement d’utilisation et de sécurité 1. Spécification de besoin du produit Une application de chiffrement de données à la volée sur toute mémoire persistante de stockage permet de protéger en confidentialité les données enregistrées sur tout ou partie de la mémoire persistante de stockage d’une machine (ou, plus généralement, sur un support de stockage éventuellement amovible), dans les deux cas suivants : 1. l’application est hors fonctionnement ; 2. l’application est en fonctionnement, mais sans qu’un utilisateur légitime ne se soit authentifié à l’application. TrueCrypt est une application logicielle de chiffrement de données à la volée sur mémoire de masse. Elle permet de créer un disque virtuel chiffré (volume TrueCrypt) contenu dans un fichier et de le monter comme un disque physique réel. TrueCrypt peut aussi chiffrer une partition entière ou un périphérique, comme une disquette ou une clé USB. TrueCrypt est un intermédiaire transparent entre les applications que l'utilisateur emploie pour manipuler ses données (lecture, modification, sauvegarde), et le support de stockage contenant le disque chiffré. L'activation du disque requiert l'authentification de l'utilisateur. Une fois activé, rien ne distingue le disque chiffré des autres mémoires de masse auxquelles l'utilisateur a accès. En cours de fonctionnement, TrueCrypt chiffre (respectivement, déchiffre) de façon transparente pour l'utilisateur, les données écrites (respectivement, lues) sur le disque. TrueCrypt protège les données sensibles de l’utilisateur à l’intérieur de conteneurs chiffrés. Ces conteneurs constituent les « disques chiffrés » dans la suite de ce document. TrueCrypt permet de gérer trois types de « disques chiffrés » : - Les conteneurs fichiers qui sont des fichiers avec n'importe quelle extension et d'une taille variable définie par l'utilisateur. Un fichier conteneur est un fichier standard pouvant être stocké sur n’importe quel support de données ; - Les conteneurs partitions qui sont des partitions physiques complètes qui font office de conteneur. Peuvent également être chiffrés suivant cette méthode, les disques durs entiers, les disques durs USB, les disquettes, les clés USB ou tout autre type de matériel de stockage de données ; - La partition système ou tout le disque système. Il y a alors chiffrement de toute la partition contenant le système d’exploitation ; il faut déverrouiller le disque au boot pour pouvoir utiliser le système d’exploitation. Les fonctionnalités de sécurité principales sont : - L’authentification de l’utilisateur : le montage du disque et toute modification des paramètres d’authentification sont conditionnés à l'authentification préalable de l'utilisateur. SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 6 / 80 Évaluation CSPN Rapport technique d’évaluation - - Le chiffrement et déchiffrement de manière transparente des données écrites sur et lues depuis le « disque chiffré » lorsque celui-ci a été monté. Cette activation nécessite une authentification de l'utilisateur à travers la fourniture de données d'authentification de type mot ou phrase de passe. La génération des clés de chiffrement associées au « disque chiffré ». Bien que les données d’authentification et les clés de chiffrement ne soient pas associées à des données utilisateurs devant être protégées par le produit, leur confidentialité doit être assurée : - L’efficacité du mécanisme d’authentification dépend de la confidentialité des données d’authentification ; - L’efficacité des mécanismes de chiffrement dépend de la confidentialité des clés de chiffrement. En cas de divulgation de ces données, la protection en confidentialité des données de l’utilisateur ne peut plus être assurée. 1. Biens sensibles que le produit doit protéger L'objectif premier de l’application est de protéger les données enregistrées sur le disque par les utilisateurs en cas de vol du support ou de la machine le contenant. Ces données sont protégées en confidentialité via le chiffrement par une clé secrète (la clé maîtresse) qui est elle-même chiffrée par une autre clé secrète (clé d’en-tête dérivée à partir des données d’authentification). Données utilisateurs Les données de l'utilisateur déposées sur le disque chiffré sont à protéger en confidentialité par l’application TrueCrypt. Données de sécurisation Les données utilisées par TrueCrypt pour assurer la confidentialité des données utilisateur doivent également être protégées en confidentialité : - Les données d’authentification utilisées pour contrôler l’identité annoncée par l’utilisateur (mot ou phrase de passe et éventuellement fichier « keyfiles »1) ; - La clé d’entête utilisée pour chiffrer les données d’entête qui contiennent en particulier la clé maître. Cette clé est obtenue par dérivation à partir des données d’authentification ; - La clé maître utilisée pour chiffrer les données de l’utilisateur. 2. Menaces sur les biens sensibles manipulés par le produit Les menaces existantes lorsque le produit est en fonctionnement avec un utilisateur légitime authentifié ne sont pas considérées. Menace sur la mémoire de masse Un attaquant prend connaissance des données sensibles de l'utilisateur stockées sur le disque, par exemple, après avoir récupéré une ou plusieurs images partielles ou totales du disque (éventuellement à des moments différents) ou bien après avoir volé l'équipement ou le disque. Menace sur les mémoires temporaires Après l'arrêt de l'application de chiffrement par l'utilisateur, un attaquant avec accès aux mémoires de travail de l'application (par exemple, RAM) prend connaissance des données sensibles de l'utilisateur 1 Ces fichiers, décrits plus loin, contiennent une part des données d’authentification de l’utilisateur. SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 7 / 80 Évaluation CSPN Rapport technique d’évaluation ou des clés cryptographiques. 2. Utilisateurs typiques L’utilisateur typique est l’utilisateur du compte géré par le système d’exploitation. TrueCrypt permet à l’utilisateur de protéger ses données en confidentialité sur le disque de la machine. L’utilisation de TrueCrypt ne nécessite pas de compétences particulières en informatique et en sécurité. 3. Environnement typique d’utilisation/Argumentaire du produit 1. Description de l’environnement d’utilisation Le produit TrueCrypt fonctionne dans les environnements Windows, Linux et Mac OS X. Le matériel informatique d'une entreprise ou d'un service administratif peut être l'objet d'un vol au même titre que tout autre objet de valeur. Ce risque est accentué par le nomadisme des équipements. TrueCrypt est une application de chiffrement des données à la volée sur un support informatique permettant de protéger la confidentialité de ces dernières et de réduire l'impact de la perte en cas de vol de matériel. TrueCrypt permet de chiffrer et d’assurer la confidentialité de la totalité des données stockées sur des disques durs internes ou externes (disques durs USB, etc.), des disquettes, des clés USB, ou de tout autre type de matériel de stockage de données. Les « disques chiffrés » peuvent être sauvegardés sur CD ou DVD. Les « disques chiffrés » sont indépendants du système d’exploitation. Ils peuvent être montés dans tout environnement dans lequel TrueCrypt peut être exécuté, si le système de fichiers sous-jacent à un volume chiffré est géré par le système sur lequel le volume est monté. TrueCrypt est destiné à être utilisé sur un poste de travail classique, et ne nécessite pas de dépendances particulières. 2. Hypothèses sur l’environnement d’utilisation - Environnement opérationnel L'environnement opérationnel ne permet pas à un attaquant d'accéder au disque lorsque des données sensibles sont accessibles à un utilisateur légitime sur l'équipement. - Rémanence La mémoire vive (RAM) utilisée par la machine qui exécute le produit n’est pas rémanente par construction. 4. Description fonctionnelle du produit L’objectif principal du produit est de couvrir le vol de la machine ou du support de stockage. SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 8 / 80 Évaluation CSPN Rapport technique d’évaluation Néanmoins, les risques de la phase opérationnelle vis-à-vis du service de protection des données en confidentialité rendu par le produit sont couverts (comme, par exemple, l'écriture d'informations confidentielles sur des zones non chiffrées ou l'écriture de la clé en clair sur une mémoire persistante). La confidentialité des données inscrites sur la mémoire de masse est garantie quels que soient les états successifs de la machine lors de la phase opérationnelle. En cas d'arrêt logique du système d’exploitation, s’il est configuré pour ne pas créer une image mémoire de la RAM (mémoire supposée non rémanente), il n’y a pas d’atteinte possible à la confidentialité des données sensibles inscrites temporairement en RAM. 5. Inventaire des fonctions de sécurité identifiées Légende : • Existence de la fonction dans le produit : Oui / Non / Information Non Disponible / Sans Objet • Criticité de la fonction pour le produit : Critique / Important / Facultatif Intitulé Existence (O/N/ND/SO) Criticité pour le produit (C/I/F) Support crypto Opération cryptographique O C Opération cryptographique O C Opération cryptographique Opération cryptographique Opération cryptographique Génération des mots de passe SOGETI I.S. Division : Consulting Agence : ESEC. O O O Description et commentaire sur la fonction de sécurité Génération de nombres aléatoires pour générer la clé maîtresse de chiffrement, la clé secondaire (en mode XTS), la graine et les fichiers « keyfiles » Génération de la clé maîtresse associée à un disque C Écriture de données chiffrées sur un « disque chiffré » préalablement monté en utilisant les clés et algorithmes de chiffrement associés à ce « disque chiffré » C Lecture de données chiffrées sur un « disque chiffré » préalablement monté en utilisant les clés et algorithmes de chiffrement associés à ce « disque chiffré » C Calcul du haché d'une donnée associée à un « disque chiffré », suivant l'algorithme de calcul de haché associé à ce « disque chiffré » Identification et authentification Génération, par les utilisateurs autorisés, de leurs mots ou phrases de passe, ainsi que les fichiers O C « keyfiles» auxquels le mot de passe peut être associé. Réf : K08-JBB-CR-671-2008 Page 9 / 80 Évaluation CSPN Rapport technique d’évaluation Mécanismes d’authentification C - Création du mot de passe lors de la création d'un « disque chiffré » ; - Modification du mot de passe ; - Contrôle de la qualité des mots de passe ; - Gestion des fichiers keyfiles. Dérivation des clés d'entêtes suivant le standard PKCS#5 à partir des données d'authentification de l'utilisateur. Cette clé d'entête permet ensuite d'accéder aux données contenues dans l'entête, dont la clé maître. Gestion des disques chiffrés Création d'un « disque chiffré » : Administration des fonctions de sécurité O - Formatage de la zone mémoire allouée ; - Lors de l'initialisation, si l'option « Quick Format» n’est pas sélectionnée, le « disque chiffré » est formaté et rempli d'aléa ; - Création de l'entête contenant la clé maîtresse. C Administration des fonctions de sécurité O C Création et exécution d’un système d’exploitation caché et chiffré. Administration des fonctions de sécurité O I Démontage des « disques chiffrés » à la demande de l'utilisateur. Démontage automatique des « disques chiffrés » montés lors des événements suivants : - Administration des fonctions de sécurité O I Cette fonctionnalité offre en outre la possibilité, lorsque les options associées sont sélectionnées, de démonter automatiquement les « disques chiffrés » lors des événements suivants : - Mise en veille. - SOGETI I.S. Division : Consulting Agence : ESEC. Fermeture de l’OS ; Réf : K08-JBB-CR-671-2008 Fermeture de session. Déclenchement de l'économiseur d'écran. Mise en mode économie d'énergie. Atteinte d'un délai fixé par l'utilisateur (ce délai n'est pas Page 10 / 80 Évaluation CSPN Rapport technique d’évaluation associé à un « disque chiffré », mais à l'application) Enfin, il est possible de forcer le démontage de « disques chiffrés », même lorsque ces « disques chiffrés » contiennent des fichiers ou des répertoires ouverts par des applications. Génération de la liste des « disques chiffrés » qui sont montés. Administration des fonctions de sécurité Intégrité des données stockées Intégrité des données stockées O I Cette gestion consiste à ajouter les disques montés à la liste et à les supprimer lors du démontage. Protection des données de l’utilisateur Un conteneur possédant un volume caché peut protéger le volume O I caché en interdisant l’écriture sur celui-ci. O I Un en-tête de conteneur peut être sauvegardé puis restauré plus tard en cas d’altération. Effacement des données sensibles (les mots de passe des disques chiffrés) présentes dans la mémoire du pilote. Suppression des données temporaires Politique de contrôle des flux de données SOGETI I.S. Division : Consulting Agence : ESEC. O O I C Une option permet d’appeler cette fonction de manière automatique, pour effacer le mot de passe dans la mémoire lors du démontage des « disques chiffrés », ou lors de la fermeture du logiciel. Verrouillage en mémoire des variables susceptibles de contenir des informations sensibles (ex: le contenu de la RAM associé ne doit pas pouvoir être copié dans le fichier de SWAP du système d'exploitation). Ce verrouillage n’est toutefois pas toujours possible c’est la raison pour laquelle la documentation du logiciel préconise la désactivation du fichier d’échange. Réf : K08-JBB-CR-671-2008 Page 11 / 80 Évaluation CSPN Rapport technique d’évaluation 2. Installation du produit 1. Particularité de paramétrage de l’environnement L’architecture nécessaire à la réalisation de l’évaluation a été déployée à l’aide de machines virtuelles, dans un souci de reproductibilité des tests et de stockage des archives. Nous utilisons pour cela le logiciel VMware Workstation dans sa version 6.0.4 build-93057. La machine virtuelle utilisée est un poste standard : • sur lequel est installé Windows XP Professionnel, version 5.1 (2600), Service Pack 2, • possédant l’ensemble des mises à jour disponibles depuis le site Windows Update au début de l’évaluation. L’installation a également été testée sur une machine virtuelle standard, sous Linux Ubuntu 7.04, comprenant l’ensemble des mises à jour disponibles depuis les serveurs Canonical. Enfin, l’installation a été effectuée sur un ordinateur portable Apple équipé de Mac OS X Leopard 10.5.4 à jour. Aucun paramétrage supplémentaire n’a été effectué. 2. Options d’installation retenues pour le produit L’installation sous Windows a été effectuée en conservant les options de TrueCrypt activées par défaut, c'est-à-dire : • l’association des fichiers .tc avec TrueCrypt ; • la création d’un point de restauration ; • la suppression du fichier de pagination. Le package de localisation en français a ensuite été ajouté. Sous Ubuntu et OS X l’installation se fait avec un installeur ne présentant pas d’options de configuration. 3. Identification de la version installée Le numéro de version installée est identifiable lors de l’installation : le nom du fichier d’installation téléchargeable sur le site de l’éditeur est « TrueCrypt Setup 6.0a.exe ». Une fois le produit installé, la version est identifiable dans la rubrique « A propos… » du menu « Aide » de TrueCrypt. Une boîte de dialogue contenant la version du produit en gras apparaît : SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 12 / 80 Évaluation CSPN Rapport technique d’évaluation Figure 1 Identification de la version installée 4. Description de l’installation et des non-conformités éventuelles L’installation ne pose aucun problème. La seule non-conformité rencontrée par rapport à la documentation est que celle-ci ne détaille pas qu’un message est affiché lors du premier lancement du programme. Ce message invite l’utilisateur à lire une partie du guide de l’utilisateur, avant d’utiliser le produit : Figure 2 Message affiché lors du premier lancement de TrueCrypt La traduction de l’interface utilisateur ne fonctionne que sur les versions Windows, comme spécifié dans la documentation. 5. Durée de l’installation L’installation prend moins de 10 minutes. SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 13 / 80 Évaluation CSPN Rapport technique d’évaluation 3. Analyse de la conformité 1. Analyse de la documentation Nous nous concentrons lors de l’analyse de la documentation sur les points qui nous paraissent essentiels pour une bonne utilisation et une bonne compréhension du fonctionnement du produit. La documentation du produit se présente sous la forme de pages HTML consultables par un navigateur web au sein de laquelle on peut naviguer via un menu. La documentation couvre l’étendue des fonctionnalités du produit. Mises à part les informations telles que la licence du produit ou les références qui ont contribué au développement du produit, on peut catégoriser les différents points de la documentation comme appartenant à deux catégories : • les informations permettant l’utilisation du produit ; • les informations techniques permettant la compréhension du produit. Bien que ces deux parties ne soient pas totalement indépendantes (il est nécessaire de comprendre un minimum le fonctionnement technique de TrueCrypt pour l’utiliser correctement), cette division nous paraît pertinente. Dans la catégorie informations permettant l’utilisation du produit on peut classer les chapitres suivants : Guides utilisateurs, Répudiation Crédible, Volume TrueCrypt, Fenêtre du programme principal, Raccourcis, Keyfiles, Mode traveller, Droits administrateurs, Tâches de fonds, Packs Langues, Systèmes supportés, Précautions de sécurité, Utilisation des lignes de commandes, Diagnostic des anomalies, Incompatibilités, Problèmes connus, Désinstallation de TrueCrypt et Les systèmes de fichier TrueCrypt. Parmi ces chapitres les deux nous paraissant les plus importants pour une bonne utilisation du produit sont les Guides utilisateurs et les Précautions de sécurité. Ces deux parties sont assez complètes, didactiques et contiennent de nombreux exemples. Ceci permet à l’utilisateur de prendre en main aisément le produit et de l’utiliser de façon sûre. Dans la catégorie « Informations techniques permettant la compréhension du produit », on peut classer les chapitres suivants : Algorithmes de chiffrement et Algorithmes de hachage. Ces deux décrivent les algorithmes de chiffrement et de hachages utilisés. Ils donnent également les références de ces algorithmes dans les normes internationales et donnent des détailles techniques d’implémentation, permettant à l’utilisateur d’approfondir ses recherches. En conclusion la documentation de TrueCrypt est complète, didactique et détaillée. On peut regretter cependant un manque de découpage clair entre les informations techniques sur le produit et les informations nécessaires à l’utilisation du produit. 2. Revue du code source Le code source complet est disponible depuis le site de TrueCrypt. Un fichier Readme.txt dans l’archive du code source liste les outils nécessaires à la compilation, et l’environnement nécessaire à la compilation du produit. Les outils sont Visual Studio 2008, Visual C++ 1.52 (disponibles sur le site de la MSDN), le DDK (Driver Development Kit) de Visual Server 2008, les assembleurs yasm et nasm, et l’outil SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 14 / 80 Évaluation CSPN Rapport technique d’évaluation de compression gzip. La compilation ne pose aucun problème une fois l’environnement paramétré. Il est possible de compiler le projet en mode débogage. De nombreuses informations de débogage sont alors disponibles lors de l’utilisation du produit. Le code est écrit en plusieurs langages. La majorité du code est écrit en C. La partie concernant le gestionnaire de démarrage, plus récente, est écrite en C++ et en assembleur 16 bits pour les parties bas niveau. Certaines fonctions relatives à la cryptographie sont écrites en assembleur 32 bits ou 64 bits dans un souci d’optimisation de la vitesse d’exécution. Ces choix de langage nous paraissent pertinents. Le code source est réparti dans plusieurs répertoires. Il est globalement bien structuré. • Le dossier « Boot » contient la source du bootloader installé par TrueCrypt si un volume système est chiffré. • Un dosser « Common » contient la liste des fichiers communs à l’ensemble des projets. • Le dossier « Driver » contient le code du pilote TrueCrypt. • Le dossier « Format » contient le code de l’exécutable « TrueCrypt Format.exe », chargé de la création de nouveaux volumes chiffrés. • Le dossier « Mount » contient le code de « TrueCrypt.exe », interface principale du programme, qui permet entre autres le montage et démontage des volumes chiffrés. • Un dossier « Platform » contient des définitions de classes et de manipulations d’objet basiques. Ces objets sont utilisés par le bootloader. • Le dossier « Setup » correspond au code de génération du programme « TrueCrypt Setup.exe ». Cet outil est utilisé pour créer des installeurs pour TrueCrypt. La taille des fonctions dans l’ensemble du programme est très variable. Alors que certains modules sont correctement découpés, d’autres contiennent des fonctions extrêmement longue, sans que cela soit justifié : il aurait été possible de rendre le code plus modulaire. La fonction MainDialogProc du fichier Format/Tcformat.c contient plus de 1800 lignes de code, par exemple. Globalement, le code des parties concernant l’interface graphique est plus mal écrit que celui des parties plus sensibles. Le code est directement compilable pour des plateformes 32 bits et 64 bits. La portabilité d’un tel code, exécuté sur de nombreuses parties du système (mode utilisateur, mode noyau, MBR, etc.) montre une réelle rigueur de la part des développeurs. En définitive, le code du programme TrueCrypt est assez bien pensé, et bien structuré. Certaines parties sont moins lisibles que d’autres, principalement du fait de la longueur de certaines fonctions. Le code des parties les plus récentes est plus lisible que celui datant d’anciennes versions. 3. Mécanismes cryptographiques 1. Conformité par séquences étalons Des fonctions de tests des fonctions cryptographiques sont mises en œuvre dans TrueCrypt. Ces vérifications se font par séquences étalons, et sont exécutées au lancement du programme et à la demande de l’utilisateur. Les tests sont très basiques, en grande partie à cause des contraintes de temps d’exécution. Ces tests n’ont pas été pris en compte pour l’évaluation de la conformité des algorithmes. Les tests ont été réalisés à partir de séquences étalons. Les fonctions de chiffrement sont toutes des SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 15 / 80 Évaluation CSPN Rapport technique d’évaluation candidates pour AES. Ce sont les séquences générées par l’implémentation de référence qui ont été utilisées. Les séquences étalons des fonctions de hachage proviennent de sources diverses. Conformité de l’implémentation d’AES Les suites étalon utilisées sont celles du NIST : http://csrc.nist.gov/archive/aes/rijndael/rijndael-vals.zip. Les tests ont été réalisés sur : • Chiffrement AES en mode ECB avec des clés de 256 bits • Déchiffrement AES en mode CBC avec des clés de 256 bits Il s’agit de tests de Monte Carlo. L’algorithme utilisé pour le chiffrement est le suivant : Algorithme : AESMonteEncryptECB Entrées : Une clé K1 de 256 bits, un message m1 Sortie : VRAI si le test est correct, FAUX sinon 1. Initialiser et 2. Pour 0 400 Faire : a. Pour 0 10000 Faire : i. Calculer ii. b. Fin Pour c. Vérifier que Ci est conforme. Sinon retourner FAUX d. Générer ki+1 3. Fin Pour 4. Retourner VRAI Le test est analogue pour le déchiffrement, en utilisant la fonction de déchiffrement dk au lieu de ek. La conformité du chiffrement et du déchiffrement en mode CBC n’a pas été étudiée, ce mode n’étant plus disponible dans la version 6. Les résultats en mode ECB sont positifs. Algorithme Test Résultat AES AESMonteEncryptECB OK AES AESMonteDecryptECB OK Conformité de l’implémentation de Twofish Les tests sont identiques à ceux réalisés sur AES. Les séquences étalon sont ceux fournis au NIST lors de la soumission pour AES : http://www.schneier.com/code/twofish-kat.zip Les résultats en mode ECB sont positifs. Algorithme Test Résultat Twofish TwofishMonteEncryptECB OK Twofish TwofishMonteDecryptECB OK SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 16 / 80 Évaluation CSPN Rapport technique d’évaluation Conformité de l’implémentation de Serpent Les tests sont identiques à ceux réalisés sur AES. Les séquences étalon sont ceux fournis au NIST lors de la soumission pour AES : http://www.cl.cam.ac.uk/~rja14/Papers/serpent.tar.gz Les résultats en mode ECB sont positifs. Serpent SerpentMonteEncryptECB Résultat Serpent SerpentMonteEncryptECB OK Serpent SerpentMonteDecryptECB OK Conformité de l’implémentation de SHA-512 Les tests réalisés sur SHA-512 utilisent les séquences étalon du NIST (« SHA Test Vectors for Hashing Byte-Oriented Messages »). Ils sont disponibles à l’adresse : http://csrc.nist.gov/groups/STM/cavp/documents/shs/shabytetestvectors.zip La méthodologie utilisée est fondée sur celle du NIST détaillée dans (NIST, 2004). Il s’agit d’effectuer trois tests : un avec des messages courts, un avec des messages longs et un dernier avec des messages pseudo-aléatoires. Messages courts Une mise en œuvre de SHA doit générer correctement des empreintes pour des messages de longueur arbitraire. Le test suivant porte sur la génération d’empreintes sur plusieurs messages courts, c'est-àdire dont la longueur est inférieure à l’espace de travail utilisé par l’algorithme. Les empreintes sont calculées sur une série de messages de taille 0 à 1024 bits, par échelon de 8 bits. Algorithme : SHA512ShortMsg Entrée : une liste de 129 éléments (mi, hi), avec mi des messages de longueur 0 à 1024 bits Sortie : VRAI si le test a réussi, FAUX sinon. 1. Pour 0 128 Faire : a. Calculer b. Si : i. Retourner FAUX c. Fin Si 2. Fin Pour 3. Retourner VRAI Messages longs Une mise en œuvre de SHA doit générer correctement des empreintes pour des messages dépassant la longueur de l’espace de travail de SHA. La taille m des messages vérifiés varie de 99 100 avec l taille de l’espace de travail (ici 1024 bits), soit ici : 1024 8 99 , 1 128. Algorithme : SHA512LongMsg Entrée : une liste de 128 éléments (mi, hi) avec mi des messages de longueur 1816 à 102400 bits Sortie : VRAI si le test a réussi, FAUX sinon 1. Pour i de 1 à 129 Faire : a. Calculer b. Si Alors : SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 17 / 80 Évaluation CSPN Rapport technique d’évaluation i. Retourner FAUX c. Fin Si 2. Fin Pour 3. Retourner VRAI Messages pseudo-aléatoires Il s’agit d’un test de Monte Carlo. Les messages sont générés à partir d’une graine de 512 bits. La graine est utilisée par un générateur d’aléa pour créer 100000 empreintes. Une empreinte sur 1000 est enregistrée et vérifiée. Algorithme : SHA512Monte Entrée : une graine s, une liste de messages , 0 100 Sortie : VRAI si le test a réussi, FAUX sinon 1. Pour 0 100 Faire : a. " # b. Pour i de 3 à 1003 Faire : i. Calculer $% |$" |$ c. Fin Pour d. # " e. Si : i. Retourner FAUX f. Fin Si 2. Fin Pour 3. Retourner VRAI Les trois tests sont positifs. Algorithme Test SHA-512 SHA512ShortMsg SHA-512 SHA512LongMsg SHA-512 SHA512Monte Résultat OK OK OK Remarque : des tests identiques ont également été réalisés avec SHA-1, même si celui-ci n’est plus disponible dans la version 6. Les tests s’adaptaient facilement, cette fonction a donc également été testée. Les résultats sont également tous positifs. Conformité de l’implémentation de Whirlpool Les séquences étalon utilisées sont celles de la soumission de l’algorithme pour le projet NESSIE. La mise en œuvre utilisée par TrueCrypt est l’implémentation NESSIE de référence, légèrement modifiée. Les tests ont tout de même été réalisés. Les séquences étalon sont disponibles ici : http://planeta.terra.com.br/informatica/paulobarreto/whirlpool.zip Trois tests ont été effectués : • un test sur des messages de taille variable ayant tous leurs bits à zéro ; • un autre sur des messages de 512 bits contenant un seul bit à 1 ; • un dernier sur un message de 512 bits à 0, et dont l’empreinte est ré-hachée 100 000 000 de fois. SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 18 / 80 Évaluation CSPN Rapport technique d’évaluation Messages de longueur variable Ce test calcule l’empreinte de messages de taille allant de 0 à 1023 bits. Tous les bits de chaque message sont à zéro. Les résultats obtenus sont comparés à la séquence de référence. Algorithme : NESSIELength Entrée : une liste d’empreintes , 0 1024 Sortie : VRAI si le test a réussi, FAUX sinon 1. Pour 0 1024 Faire : a. Générer un message M de longueur i bits, avec tous ses bits à 0 b. Calculer ' c. Si : i. Retourner FAUX d. Fin Si 2. Fin Pour 3. Retourner VRAI Message de 512 bits contenant un seul bit à 1 Ce test calcule l’empreinte de 512 messages mi de 512 bits. Le ième bit,0 512, est mis à 1 pour chacun des messages. Les résultats obtenus sont comparés à la séquence de référence. Algorithme : NESSIEOneBit Entrée : une liste d’empreintes , 0 512 Sortie : VRAI si le test a réussi, FAUX sinon 1. Pour 0 512 Faire : a. Générer un message M de 512 bits dont seul le ième bit est mis à 1 b. Calculer ' c. Si : i. Retourner FAUX d. Fin Si 2. Fin Pour 3. Retourner VRAI Calcul d’une empreinte sur 100 millions d’itérations Ce test calcule l’empreinte d’un message de 512 bits tous à zéro. L’empreinte résultante est ensuite hachée, ceci 100 millions de fois. Algorithme : NESSIEHundredMillion Entrée : une empreinte h Sortie : VRAI si le test à réussi, FAUX sinon 1. Générer m la chaine de 512 bits tous à 0 2. Pour 0 100000000 Faire : a. Calculer h’ = H(M) b. M = h’ 3. Fin Pour 4. Si h = h’ retourner VRAI, sinon retourner FAUX Les trois tests sont positifs. SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 19 / 80 Évaluation CSPN Rapport technique d’évaluation Algorithme Whirlpool Whirlpool Whirlpool Test NESSIELength NESSIEOneBit NESSIEHundredMillion Résultat OK OK OK Conformité de l’implémentation de RIPEMD-160 Les tests sur RIPEMD-160 ont été effectués à partir des séquences disponibles ici : http://homes.esat.kuleuven.be/~bosselae/ripemd160.html Seules 9 séquences sont disponibles. Les résultats sont tous positifs. Algorithme RIPEMD-160 Test RIPEMDTestVectors Résultat OK Conformité de l’implémentation de PBKDF2 La fonction de dérivation de clés PBKDF2 a été testée à partir des séquences étalons disponibles dans la RFC 3962 (« Advanced Encryption Standard (AES) Encryption for Kerberos 5 »). La fonction sous-jacente utilisée est un HMAC-SHA1. Peu de séquences étalons utilisant d’autres fonctions de hachage sont disponibles. La mise en œuvre de PBKDF2 avec les fonctions de hachage utilisées par TrueCrypt 6 a été vérifiée par revue du code source. Les différences trouvées portent uniquement sur l’appel de fonctions de hachage différentes pour chaque HMAC. La graine, le mot de passe et leurs longueurs, ainsi que le nombre d’itérations sont variables dans les différentes séquences. Les résultats obtenus sont positifs. Algorithme PBKDF2 Test PBKDF2-HMAC-SHA1TestVectors Résultat OK Conformité de l’implémentation du mode XTS La mise en œuvre du mode XTS a été vérifiée à partir des séquences étalon spécifiées dans IIIE 1619 (IEEE, 2008). N’ayant pas accès à la version complète de ce document, les vecteurs ont été récupérés depuis les sources d’OpenBSD à l’adresse : http://www.openbsd.org/cgi-bin/cvsweb/src/regress/sys/crypto/aesxts/ Les séquences disponibles utilisent AES comme fonction de chiffrement, avec des clés de 128 ou 256 bits. Les tests ont porté sur les 5 séquences avec des clés de 256 bits. TrueCrypt utilise les mêmes séquences lors de son lancement pour vérifier la conformité de la mise en œuvre. Des tests indépendants ont toutefois été réécrits. Les résultats obtenus sont positifs. Algorithme Test Résultat XTS-AES XTS-AES256TestVectors OK SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 20 / 80 Évaluation CSPN Rapport technique d’évaluation Les mêmes fonctions sont utilisées l’utilisation du mode XTS avec les autres fonctions de chiffrement disponibles. Nous considérons donc que la mise en œuvre de ce mode est correcte. 2. Conformité par revue de code source Effacement des données sensibles L’effacement des données sensibles se fait toujours en appelant la fonction burn, définie dans le fichier Tcdefs.h. Cette macro-fonction est définie comme suit : 1. #define burn(mem, size) 2. do { 3. volatile char *burnm = (volatile char *) (mem); 4. int burnc = size; 5. RtlSecureZeroMemory (mem, size); 6. while (burnc--) *burnm++ = 0; 7. } while (0) Deux procédures d’effacement sont donc appelées : la seconde remet tous les octets de la mémoire à zéro. La première, définie dans WinNT.h, fait exactement la même chose : elle n’a pas d’utilité réelle si le programme est compilé avec Visual Studio 2008. Contexte des algorithmes de chiffrement Les fonctions de chiffrement sont toujours utilisées à l’aide d’un wrapper sur les fonctions de bas niveau. En particulier, un contexte de chiffrement est manipulé par 3 fonctions : crypto_open, crypto_loadkey et crypto_close. crypto_open alloue une structure de type KEY_INFO, contenant entre autres des clés de chiffrement et les contextes de chiffrement associés. Elle est initialisée à 0 et verrouillée en mémoire à l’aide de VirtualLock si elle est appelée en mode utilisateur. crypto_close détruit les données du contexte en appelant la fonction burn, puis déverrouille la structure avec VirtualUnlock. Enfin, la mémoire précédemment allouée est libérée. Il y a donc un mécanisme de sécurité empêchant la copie des clés sur le disque. Les contextes de chiffrement, et donc les variables intermédiaires utilisées par les fonctions de chiffrement, sont correctement effacés si la fonction crypto_close est appelée quand les clés de chiffrement ne sont plus nécessaires. Une revue du code source semble montrer que cette fonction est toujours appelée. Algorithme de dérivation de clé PBKDF2 La fonction de dérivation de clé PBKDF2 présente un problème de mise en œuvre : les fonctions derive_u_whirlpool, derive_u_sha512 et derive_u_ripemd160 ne convertissent pas correctement l’index de bloc en notation big endian. Seul l’octet de poids faible est pris en compte, les trois autres étant considérés nuls. Le mécanisme mis en œuvre présente alors des cycles de longueur 256 fois la taille des condensats générés : • 5120 octets pour RIPEMD-160 ; • 16384 pour SHA-512 et Whirlpool. SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 21 / 80 Évaluation CSPN Rapport technique d’évaluation Ce problème n’a aucun impact sur la sécurité du produit : les appels à cette demandent au maximum des données de 1536 octets (soient 6 clés de 256 bits). Enfin, toutes les variables intermédiaires sensibles sont correctement effacées, quelle que soit la fonction de hachage utilisée. La fonction de dérivation de clé PBKDF2 telle que mise en œuvre dans TrueCrypt n’est pas de niveau standard. Le problème de mise en œuvre identifié, déjà présent dans la version 4.2, ne crée toutefois, tel qu’il est utilisé, aucun affaiblissement de nature cryptographique. 3. Conformité du générateur d’aléa Le générateur d’aléa est le même que celui mis en œuvre dans la version 4.2, à ceci près que le tableau d’aléa utilisé est deux fois plus grand. Les conclusions sont donc les mêmes que celles de la version 4.2. La règle suivante n’est pas respectée : • RègleSArchiGDA-2 : Un générateur physique d’aléa ou des éléments secrets combinés avec une mémoire non volatile doivent être employés. Le générateur est formé d’un état perturbé par des éléments extérieurs ne constituant pas une véritable source physique d’aléa, retraités par une fonction de hachage cryptographique de niveau standard. Cette composition n’est pas reconnue de niveau standard pour la génération d’aléa selon le référentiel de la DCSSI. 4. Conformité des fonctions de calcul d’intégrité L’intégrité de l’en-tête de volume déchiffré est assurée par deux CRC-32 et une chaine de 4 octets. Le CRC-32 n’est pas un mécanisme cryptographique, tout comme la comparaison d’une partie de l’en-tête avec 4 octets fixés. Ces informations, en particulier la valeur « TRUE », donnent des informations sur les données présentes dans l’en-tête. Toutefois, l’en-tête est chiffré avec les mêmes algorithmes que ceux utilisés pour le chiffrement du volume. Une attaque à texte clair partiellement connu ne paraît pas envisageable. Le mécanisme de vérification de l’intégrité des données n’est pas de niveau standard. Il faut cependant noter qu’il est principalement utilisé pour authentifier l’utilisateur plus que pour vérifier l’intégrité des données de l’en-tête. 4. Fonctionnalités testées L’ensemble des fonctionnalités testées s’est avéré conforme à sa cible de sécurité. L’analyse de conformité n’a pas été réalisée concernant la « suppression des données temporaires ». Certaines données en mémoire, comme les clés de chiffrement, ne sont pas triviales à retrouver sans connaitre leur valeur. L’étude a donc été faite par analyse de code source. Les résultats sont présentés SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 22 / 80 Évaluation CSPN Rapport technique d’évaluation dans la section « Liste des vulnérabilités découvertes lors de l’analyse et non connues des bases utilisées ». D’autres points, comme la vérification du format du volume chiffré, ont été étudiés avec un outil en Python développé pendant l’évaluation. Il permet de parser l’en-tête d’un conteneur TrueCrypt, en particulier les clés de chiffrement, et de manipuler grossièrement le contenu du disque chiffré. 5. Synthèse des fonctionnalités testées/non testées et des nonconformités Les fonctionnalités portant les intitulés suivants (cf. Annexe 1 : Fiches d’analyse de conformité des fonctions de sécurité) ont été testées : • Génération des mots de passe o Modification des mots de passes d’un volume chiffré (Tableau 5 Test_Changement_motdepasse_1 et Tableau 6 - Test_Changement_motdepasse_2) o Changement des mots de passe d’un volume caché (Tableau 8 Test_Changement_motdepasse_volcache_1 et Tableau 9 Test_Changement_motdepasse_volcache_2) o Vérification de la robustesse des mots ou phrases de passe lors de la création de volumes TrueCrypt (Tableau 21 - Test_qualite_mots_de_passes_1) o Gestion des fichiers keyfiles (Tableau 11 - Test_Genkeyfiles_1, Tableau 12 Test_taille_keyfiles_1, Tableau 13 - Test_utilisation_keyfiles_1 et Tableau 14 Test_donnees_utiles_keyfiles_1) • Administration des fonctions de sécurité : o Création d’un volume chiffré dans un conteneur (Tableau 4 Test_Cree_VolChiffre_Conteneur_1) o Création d’un volume caché (Tableau 7 - Test_Creer_Vol_cache_1) o Création d’une partition système chiffrée (Tableau 1 – Test_Creation_Part_Chiffree_1) o Création d’une partition système primaire chiffrée et d’une partition système secondaire chiffrée contenant une copie cachée du système d’exploitation. (Tableau 2 – Test_Creation_Syst_Cache_1) o Montage du volume externe et caché de la partition système secondaire contenant une copie cachée du système d’exploitation (Tableau 3 - Test___1) o Démontage automatique des disques chiffrés à la fermeture de l’OS (Tableau 15 Test_demontage_fermeture_OS_1) o Démontage automatique des disques chiffrés à la mise en veille (Tableau 16 Test_demontage_mise_en_veille_1) o Démontage automatique des disques chiffrés à la fermeture de session (Tableau 17 Test_demontage_fermeture_session_1) o Démontage automatique des disques chiffrés lors de déclenchement de l’économiseur d’écran (Tableau 18 - Test_demontage_economiseur_ecran_1) o Démontage automatique des disques chiffrés lors de l’atteinte du délai fixé par l’utilisateur (Tableau 19 - Test_demontage_atteinte_delai_1) o Démontage automatique des disques chiffrés lors de la mise en mode économie d’énergie (Tableau 24 - Test_demontage_economie_energie_1) o Forçage du démontage des volumes contenant des fichiers ou programmes en cours d’utilisation (Tableau 20 - Test_forcer_demontage_1) • Protection des données de l’utilisateur SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 23 / 80 Évaluation CSPN Rapport technique d’évaluation o o Protection du volume caché chiffré contre les dommages (Tableau 10 Test_Protect_Vol_cache_1) Tests d’intégrité du volume et restauration des en-têtes défectueux (Tableau 22 Test_integrite_recuperation_1 et Tableau 23 - Test_integrite_recuperation_2) 6. Avis d’expert sur le produit Le produit est conforme à sa cible de sécurité. Toutes les fonctionnalités testées sont implémentées. 7. Durée de l’analyse L’analyse de conformité a duré 7 jours. SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 24 / 80 Évaluation CSPN Rapport technique d’évaluation 4. Analyse de la résistance des fonctions et mécanismes 1. Liste des mécanismes et cotations de leur résistance Les précédentes étapes de l’évaluation nous ont permis d’identifier les mécanismes de sécurité suivants : 1. Résistance du mot de passe d’un volume chiffré Facteur Temps mis pour Expertise de l’attaquant Connaissance nécessaire à l’attaque Identification d’une vulnérabilité Exploitation d’une vulnérabilité * * Compétent(2) Profane(0) Informations publiques (2) Informations publiques (2) Indétectable(0) Indétectable(0) Standard (1) Standard (2) * * Accès au produit par l’attaquant Type d’équipement nécessaire pour exploiter la vulnérabilité Somme des valeurs Potentiel d’attaque Niveau de requis : résistance : Elevé Elevé Ce mécanisme est complexe à coter. • Premièrement, l’attaque est triviale à identifier et à mener. • La résistance de ce mécanisme est fortement liée à la politique de mot de passe de l’utilisateur. TrueCrypt recommande l’utilisation de mots de passe de plus de 20 caractères, mais ne vérifie pas la qualité du mot de passe choisi. Nous considérons ici que le mot de passe est conforme aux recommandations de TrueCrypt, et qu’il n’est pas trivial à retrouver (ce n’est pas une chaîne répétée plusieurs fois, ni une concaténation de plusieurs mots d’un dictionnaire). SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 25 / 80 Évaluation CSPN Rapport technique d’évaluation La fonction de dérivation de clé PKBDF2 utilisée, combinée à un mot de passe fort, rendra l’attaque a priori impraticable. La taille du sel utilisé, de 64 octets, rend impossible toute attaque par pré-calcul. Le temps nécessaire à une recherche exhaustive est alors excessivement long. 2. Résistance du mécanisme de vérification d’intégrité sur le volume Facteur Temps mis pour Expertise de l’attaquant Connaissance nécessaire à l’attaque Identification d’une vulnérabilité Exploitation d’une vulnérabilité * * Compétent(2) Profane(0) Informations publiques (2) Informations publiques (2) Indétectable(0) Indétectable(0) Standard (1) Standard (2) * * Accès au produit par l’attaquant Type d’équipement nécessaire pour exploiter la vulnérabilité Somme des valeurs Potentiel d’attaque Niveau de requis : résistance : Elevé Elevé Le mécanisme de vérification d’intégrité de l’en-tête d’un volume repose sur la présence de la chaine « TRUE » dans l’en-tête du volume déchiffré ainsi que la validité de deux CRC32 dans cet en-tête. La probabilité de générer un en-tête de volume vérifiant le mécanisme d’intégrité est de l’ordre de ")* . On considère l’attaque sur l’intégrité du comme impraticable. Le mécanisme d’intégrité mis en place n’est toutefois pas conforme aux recommandations de la DCSSI : il n’utilise pas de fonctions de hachage cryptographique. SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 26 / 80 Évaluation CSPN Rapport technique d’évaluation 3. Résistance du mot de passe d’un volume caché et du déni plausible Facteur Temps mis pour Expertise de l’attaquant Connaissance nécessaire à l’attaque Identification d’une vulnérabilité Exploitation d’une vulnérabilité * * Compétent(2) Profane(0) Informations publiques (2) Informations publiques (2) Indétectable(0) Indétectable(0) Standard (1) Standard (2) * * Accès au produit par l’attaquant Type d’équipement nécessaire pour exploiter la vulnérabilité Somme des valeurs Potentiel d’attaque Niveau de requis : résistance : Elevé Elevé Nous n’avons pas trouvé, au cours de l’évaluation, un moyen de révéler la présence d’un volume caché dans un volume TrueCrypt. La résistance du mot de passe du volume caché et de la présence d’un volume caché est équivalente à celle d’un volume chiffré. La résistance de ce mécanisme est la même que celle du mécanisme de résistance du mot de passe d’un volume normal. SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 27 / 80 Évaluation CSPN Rapport technique d’évaluation 4. Résistance des clés maître de chiffrement Facteur Temps mis pour Expertise de l’attaquant Connaissance nécessaire à l’attaque Identification d’une vulnérabilité Exploitation d’une vulnérabilité * * Expert (5) Expert (4) Informations publiques (2) Informations publiques (2) Indétectable(0) Indétectable(0) Spécialisé (3) Standard (2) * * Potentiel d’attaque Niveau de requis : résistance : Elevé Elevé Accès au produit par l’attaquant Type d’équipement nécessaire pour exploiter la vulnérabilité Somme des valeurs Les clés de chiffrement du volume sont retournées par le générateur d’aléa de TrueCrypt. La résistance des clés maîtres de chiffrement repose et sur les algorithmes de chiffrement utilisés, et sur le générateur d’aléa. Ces mécanismes cryptographiques sont considérés comme sûrs. En particulier, aucune attaque opérationnelle n’existe sur les fonctions de chiffrement et le mode de chiffrement utilisés. L’attaque sur les clés maîtresses de chiffrement revient alors à une recherche exhaustive sur ces clés. SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 28 / 80 Évaluation CSPN Rapport technique d’évaluation 5. Résistance du déni plausible du système d’exploitation caché Facteur Temps mis pour Expertise de l’attaquant Connaissance nécessaire à l’attaque Identification d’une vulnérabilité Exploitation d’une vulnérabilité * * Compétent(2) Profane(0) Informations publiques (2) Informations publiques (2) Indétectable(0) Indétectable(0) Standard (1) Standard (2) * * Potentiel d’attaque Niveau de requis : résistance : Elevé Elevé Accès au produit par l’attaquant Type d’équipement nécessaire pour exploiter la vulnérabilité Somme des valeurs Prouver l’existence d’un système caché revient à prouver celle d’un volume caché. Les formats utilisés sont les mêmes, du point de vue cryptographique. L’existence d’un système d’exploitation caché est, en pratique, en fait plus difficile à prouver que celle d’un volume caché : la présence d’un volume caché est parfois facile à supposer à cause d’éléments extérieurs à TrueCrypt, causés par le système d’exploitation ou les applications tierces (Alexei Czeskis, 2008). Ceci n’est pas possible dans le cas d’un système caché. SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 29 / 80 Évaluation CSPN Rapport technique d’évaluation 2. Robustesse des mécanismes cryptographiques 1. Robustesse des algorithmes de chiffrement symétrique Twofish Twofish est une fonction de chiffrement par blocs, utilisant des blocs de 128 bits. TrueCrypt utilise Twofish avec des clés de 256 bits. Aucune attaque n’a été publiée sur Twofish depuis l’évaluation de la version 4.2 de TrueCrypt. L’algorithme Twofish est un algorithme de chiffrement par bloc de niveau standard. AES TrueCrypt utilise AES avec des clés de 256 bits. L’AES, tel qu’il est spécifié dans le FIPS-197, est un mécanisme de chiffrement par blocs de niveau standard (DCSSI, 2006). Serpent Serpent est un algorithme de chiffrement par blocs utilisant des blocs de 128 bits. TrueCrypt utilise Serpent avec des clés de 256 bits. Il n’existe actuellement pour la version non réduite de Serpent aucune attaque théorique plus efficace qu’une recherche exhaustive. La meilleure attaque contre Serpent est une attaque par cryptanalyse différentielle linéaire. Elle attaque 11 tours (Serpent possède 32 tours) avec une complexité en temps de 2139,2 et 2125,3 textes clairs choisis (Eli Biham, 2003). Cette attaque est donc totalement théorique. L’algorithme Serpent est un algorithme de chiffrement par bloc de niveau standard. Mode opératoire XTS pour le chiffrement par blocs Le mode opératoire LRW était utilisé dans la version 4.2 de TrueCrypt. Des problèmes de sécurité sont apparus sur ce mode (Hars, 2006). C’est pourquoi le mode XTS est maintenant utilisé. Il s’agit d’une variante du mode XEX, justement utilisé pour pallier les problèmes rencontrés avec le mode LRW. Le mode XTS utilisé avec AES a été standardisé par l’IEEE P1619 (Standard for Cryptographic Protection of Data on Block-Oriented Storage Device) (IEEE 1619, 2008). Le mode XTS est en cours de standardisation par le NIST, en tant que mode opératoire pour l’AES. La DCSSI recommande (DCSSI, 2006) l’emploi d’un mode opératoire de chiffrement non déterministe, SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 30 / 80 Évaluation CSPN Rapport technique d’évaluation ce qui est le cas du mode XTS. À ce jour, aucune attaque n’est publiée sur ce mode. Des critiques ont été faites quant à l’abandon du mode LRW pour IEEE P1619 : elles insistaient sur le fait que ce mode était soumis à études depuis des années, ce qui n’était pas le cas des autres modes proposés, comme XTS. Une attention particulière a été portée sur les conséquences de la perte d’une des clés de chiffrement : la perte de la clé secondaire permettait des attaques sur le mode LRW. Or, cette clé n’est justement pas correctement effacée de la mémoire sous certaines conditions, dans TrueCrypt. Nous n’avons trouvé aucune attaque de ce type avec le mode XTS. La règle et la recommandation suivantes sont respectées : • RègleSModeChiff-1 : Au sein du modèle de sécurité correspondant à l’usage du mode de chiffrement, il ne doit exister aucune attaque de complexité inférieure à2+ , où , est la taille en bits du bloc. • RecomSModeChiff-1 : L’emploi d’un mode opératoire de chiffrement non déterministe est recommandé. L’algorithme XTS utilisé avec AES, Serpent ou Twofish est un mécanisme de chiffrement symétrique de niveau standard. 2. Procédures de validation des éléments secrets Il n’est plus possible de créer des volumes chiffrés avec le mode LRW. La fonction DetectWeakSecondaryKey, testant la faiblesse des clés secondaires pour ce mode, a donc été supprimée. Son utilisation n’était pas fondée d’un point de vue cryptographique (DCSSI, 2008). TrueCrypt ne vérifie pas si des clés faibles sont utilisées pour le mode XTS. Les développeurs considèrent que la probabilité d’utiliser une clé faible est nulle : /* Note: XTS mode could potentially be initialized with a weak key causing all blocks in one data unit on the volume to be tweaked with zero tweaks (i.e. 512 bytes of the volume would be encrypted in ECB mode). However, to create a TrueCrypt volume with such a weak key, each human being on Earth would have to create approximately 11,378,125,361,078,862 (about eleven quadrillion) TrueCrypt volumes (provided that the size of each of the volumes is 1024 terabytes). */ 3. Traitement du mot de passe utilisateur Description générale Un volume peut être monté avec un mot de passe et/ou des fichiers clés. Le mot de passe est stocké dans une structure Password contenant sa longueur, d’au plus 64 caractères, et sa valeur. Des opérations sur les fichiers clés sont effectuées afin d’obtenir également une structure Password pour l’ensemble des fichiers clés. Enfin, les deux structures obtenues sont fusionnées, avec une addition octet par octet modulo 2- . SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 31 / 80 Évaluation CSPN Rapport technique d’évaluation Le mot de passe n’est pas modifié, et les clés de chiffrement sont directement dérivées de sa valeur. Les opérations effectuées sur les fichiers clés sont détaillées dans la partie suivante. Manipulation des fichiers clés Les données des fichiers clés sont traitées afin d’obtenir un « mot de passe aléatoire » pour le volume, d’une taille fixe de 64 octets. On peut donc la considérer comme une fonction de hachage. L’algorithme de traitement KeyFileProcess pour chaque fichier clé est le suivant : Algorithme : KeyFileProcess Entrée : un tableau . . , . , … , .0$ de longueur octets, contenu du fichier clé, un tableau d’aléa 1 1 , 1 , … , 12% de 64 octets Sortie : le tableau d’aléa 1 modifié 1. 4 0566666666 2. 0 3. Pour 0 Faire : a. 4 789:32. , 4 b. 1 1 4 < 24 =. 2c. 1 1 4 < 16 =. 2d. 1" 1" 4 < 8 =. 2e. 1% 1% 4 =. 2f. 3=. 64 4. Retourner 1 UPDC32 est la fonction de mise à jour de CRC-32. Elle prend en paramètre un octet à traiter, et le haché courant. Elle retourne la nouvelle valeur du haché. 1 est utilisé pour l’ensemble des fichiers clés. Sa valeur est mise à jour chaque fois qu’un nouveau fichier clé est traité. Il est trivial de trouver des collisions dans cette fonction. Exemple : Prenons une chaine de 13 caractères, contenant les données « TrueCrypt 6.0 ». Le CRC de ces données est 0x9392B2F1. Lors de l’appel de la fonction KeyFileProcess, 52 octets vont être écrits dans 1. Ajoutons maintenant 4 autres caractères à cette chaine, formés de façon à ce que le CRC-32 de la chaine complète soit nul. Pour cela, on rajoute les octets 0xF1, 0xB2, 0x92 et 0x93. Après l’ajout du 16e octet, va valoir 0. Le 17e et dernier octet sera donc écrit au début de 1. Le haché ayant une valeur nulle, les valeurs de 1 ne seront pas modifiées. On crée un fichier conteneur de test, protégé par un fichier clé contenant les données « TrueCrypt 6.0\xF1\xB2\x92\x93 ». Le volume peut alors être monté avec le fichier clé suivant : « TrueCrypt 6.0\xF1\xB2\x92 ». Il est possible de monter un volume TrueCrypt avec plusieurs fichiers clés différents. SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 32 / 80 Évaluation CSPN Rapport technique d’évaluation Le mécanisme utilisé pour traiter les fichiers clés n’atteint pas le niveau standard. 4. Mécanisme de dérivation de clé PBKDF2 Le mécanisme de dérivation de clé est le même que celui de la version 4.2. Dans la version 4.2, il était possible d’entrer des mots de passe de plus de 64 caractères ; seuls les 64 premiers caractères étaient alors utilisés. Ce n’est plus possible dans cette version. Lorsqu’un mot de passe court est entré, un message d’avertissement est affiché, préconisant d’utiliser des mots de passe d’au moins 20 caractères. Dans la version 4.2, ce message s’affichait si le mot de passe entré par l’utilisateur faisait moins de 12 caractères. La version 6 n’affiche ce message que si le mot de passe fait moins de 20 caractères. Le nombre d’itérations pour PBKDF2 n’est plus 2000 pour chaque fonction de hachage : 1000 itérations sont utilisées pour SHA-512 et Whirlpool, en raison de la lenteur de ces algorithmes par rapport aux précédents algorithmes utilisés (RIPEMD-160 et SHA-1). Ceci ne pose toutefois pas de problème de sécurité, et suit la recommandation de PKCS#5 d’utiliser au moins 1000 itérations. Aucune attaque n’a été publiée sur PBKDF2 depuis la version 4.2 de TrueCrypt. Le mécanisme de dérivation des clés PBKDF2, utilisé comme spécifié dans PKCS#5, est un mécanisme cryptographique de niveau standard. 3. Avis d’expert sur la résistance des mécanismes de sécurité Les mécanismes de sécurité mis en œuvre dans TrueCrypt nous paraissent tous robustes. S’il existe des vulnérabilités dans le produit (voir section « Analyse des vulnérabilités »), les mécanismes, aussi bien pris séparément que dans leur ensemble, sont bien pensés. Ils s’appuient soit sur des standards reconnus (notamment AES et PBKDF2), soit sur l’état de l’art (comme XTS et Whirlpool). L’analyse du code source montre que les développeurs se sont souciés des problèmes de sécurité liés à l’utilisation de TrueCrypt, en particulier en ce qui concerne la gestion des clés et le déni plausible. L’enchainement des mécanismes est bien construit. L’impression générale est que le produit est solide. 4. Durée de l’analyse L’analyse a duré 6 jours. SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 33 / 80 Évaluation CSPN Rapport technique d’évaluation 5. Analyse des vulnérabilités 1. Listes des vulnérabilités connues ou potentielles à la souscatégorie 1. Bases CVE Il existe trois vulnérabilités publiques sur TrueCrypt dans les bases CVE du NIST : • CVE-2007-1738 Summary: TrueCrypt 4.3, when installed setuid root, allows local users to cause a denial of service (filesystem unavailability) or gain privileges by mounting a crafted TrueCrypt volume, as demonstrated using (1) /usr/bin or (2) another user's home directory, a different issue than CVE-2007-1589. Published: 3/28/2007 CVSS Severity: 6.9 (Medium) • CVE-2007-1589 Summary: TrueCrypt before 4.3, when set-euid mode is used on Linux, allows local users to cause a denial of service (filesystem unavailability) by dismounting a volume mounted by a different user. Published: 3/21/2007 CVSS Severity: 2.1 (Low) • CVE-2006-2183 Summary: Untrusted search path vulnerability in Truecrypt 4.1, when running suid root on Linux, allows local users to execute arbitrary commands and gain privileges via a modified PATH environment variable that references a malicious mount command. Published: 5/4/2006 CVSS Severity: 7.2 (High) Ces vulnérabilités concernent toutes les versions Linux de TrueCrypt. Elles ont été a priori corrigées dans les versions suivantes de TrueCrypt. Il n’a pas été vérifié si ces vulnérabilités étaient également présentes sur les versions Windows de TrueCrypt. 2. Mauvaise gestion de l’hibernation Deux vulnérabilités sur la version 5.1 de TrueCrpyt ont été publiées sur un site russe (ntldr, 2008). Elles concernaient la mise en hibernation du système. TrueCrypt utilisait le nom du contrôleur de stockage pour déterminer si les fonctions de dump du disque devaient être filtrées. Ces fonctions sont utilisées pour générer un crashdump en cas d’erreur dans le noyau, et pour écrire le contenu de la mémoire vive sur le disque pendant la mise en hibernation. Si un pilote non présent dans la liste était utilisé, et que celui-ci possédait ces fonctionnalités de dump, alors le fichier d’hibernation et le crashdump seraient écrits en clair sur le disque. Les clés de chiffrement du disque système (et celles des volumes montés) seraient alors accessibles en lisant ce fichier. SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 34 / 80 Évaluation CSPN Rapport technique d’évaluation Une structure DUMP_INITIALIZATION_CONTEXT est passée par le système au pilote lors de l’initialisation de celui-ci. Cette structure contient deux fonctions d’écriture sur le disque : WriteRoutine et WritePendingRoutine. TrueCrypt ne filtrait, d’après le site, que la fonction WritePendingRoutine. Si le pilote de dump ne gère pas la fonction WritePendingRoutine, alors c’est la fonction WriteRoutine qui sera appelée, et le fichier d’hibernation sera écrit en clair sur le disque. Nous sommes circonspects quant à l’existence de cette vulnérabilité : d’après les sources de la version 5.1, les deux fonctions sont correctement filtrées. Ces deux vulnérabilités n’existent pas dans la version 6.0a. 3. La mémoire clavier du BIOS n’est pas effacée Une vulnérabilité a été publiée pendant l’évaluation. Il s’agit d’un problème dans la gestion du mot de passe entré lors du démarrage d’un système chiffré (Jonathan Brossard, 2008). Elle concerne la version 5, et a été en partie corrigée dans la version 6. Cette vulnérabilité a été publiée dans (Jonathan Brossard, 2008). Elle concerne l’utilisation de TrueCrypt avec une partition système entièrement chiffrée. Le gestionnaire de démarrage de la version 5.0 effaçait correctement le mot de passe de sa mémoire, mais ne vidait pas le tampon de mémoire clavier du BIOS. Ce tampon est situé à l’adresse 0040:001E. Il était alors possible, une fois la machine démarrée, de lire le contenu de ce tampon pour récupérer tout ou partie du mot de passe (le tampon mémoire clavier du BIOS étant limité à 16 caractères). Cette vulnérabilité a été corrigée dans la version étudiée. Elle a été reproduite en désactivant les fonctions de sécurité ajoutées dans cette version. Les données suivantes ont alors été observées (le mot de passe de démarrage étant « bonjour ») : Figure 3 - Etat de la mémoire tampon clavier du Bios après démarrage de la machine Le mot de passe est bien présent dans la mémoire clavier du BIOS. La vulnérabilité a bien été corrigée dans la version 6.0a. Le tampon du clavier est effacé par la fonction ClearBiosKeystrokeBuffer, présente dans le fichier BootConsoleIo.cpp. Voici l’état de la mémoire que l’on peut observer sur un système chiffré avec TrueCrypt 6.0a une fois la machine démarrée : Figure 4 - Etat de la mémoire tampon clavier du Bios après démarrage de la machine On constate que le tampon a été complètement effacé (zone de données entourées de rouge). Ce test a été réalisé sur une machine ayant un mot de passe de 10 caractères. SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 35 / 80 Évaluation CSPN Rapport technique d’évaluation 4. Vulnérabilités potentielles La recherche de vulnérabilités se focalisera sur les points suivants : • Format du volume Les parsers de fichiers manipulent souvent des données de manière incorrecte, ce qui peut entrainer des problèmes de sécurité. Le format des volumes a été conçu, semble-t-il, d’une façon à éviter ces erreurs (très peu d’adresses, tampons de taille fixe, etc.). • Paramètres envoyés au pilote TrueCrypt installe un pilote, qui reçoit des commandes depuis le mode utilisateur. Ces commandes et les données associées doivent être correctement manipulées par le pilote, afin d’éviter des attaques entrainant une élévation de privilèges. • Gestion des clés Les clés de chiffrement ou le mot de passe utilisateur doivent être effacés de la mémoire dès qu’ils ne sont plus utilisés. C’est également le cas des contextes de chiffrement et de hachage, et de celui du générateur d’aléa. 2. Liste des vulnérabilités réellement testées Voici la liste des vulnérabilités qui ont été testées : • • • • • • • Non effacement du mot de passe dans la mémoire du bootloader ; Non effacement du mot de passe dans le tampon mémoire clavier du BIOS ; Non effacement du mot de passe dans la mémoire du pilote ; Mauvaise gestion des paramètres d’en-tête des volumes chiffrés ; Mauvaise gestion des paramètres reçus par le pilote ; Non effacement des clés dans la mémoire du processus utilisateur ; Non effacement des mots de passe dans la mémoire du processus utilisateur. 3. Liste des vulnérabilités découvertes lors de l’analyse et non connues des bases utilisées 5. Informations sur la longueur du mot de passe dans la mémoire du BIOS La découverte de cette vulnérabilité fait suite au test de vulnérabilité concernant le non effacement du tampon mémoire du clavier du BIOS. Ceci concerne le cas d’une partition système entièrement chiffrée. Causes Le tampon clavier du BIOS est correctement effacé. En revanche, le pointeur vers le dernier caractère du tampon n’est pas effacé. Ceci permet de retrouver la longueur du mot de passe modulo 16. Voici les informations contenues dans la mémoire du BIOS : SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 36 / 80 Évaluation CSPN Rapport technique d’évaluation • • • Adresse 0040:001A : pointeur vers dernier caractère du tampon ; Adresse 0040:001C : pointeur vers le prochain caractère à écrire dans le tampon ; Adresse 0040:001E : tampon clavier. Le tampon clavier a une taille de 32 octets. Chaque caractère est codé sur deux octets : le premier caractère est encodé en ASCII, le second est le scancode BIOS. Le tampon clavier contient donc 16 caractères, le dernier étant le caractère « Entrée ». Appelons p1 et p2 respectivement le pointeur vers le dernier caractère du tampon et le pointeur vers le prochain caractère à écrire dans le tampon. TrueCrypt efface le contenu du tampon mais pas le contenu de p1 et de p2. Sur un système où TrueCrypt 6.0a est installé et la machine démarrée, p1 et p2 sont égaux et non nuls. Connaissant p1 et p2, il est possible d’obtenir des informations sur la taille du mot de passe. En effet, dans le cas ou l’utilisateur a entré un mot de passe valide sans erreur au boot, p1 et p2 pointent vers le la fin des données dans le tampon, à savoir le code ASCII de la touche « Entrée ». On obtient alors l’équation suivante : A B 051C B 1D =. 16 @ 2 Où l est égal à la taille du mot de passe modulo 16. Exploitation En lisant la mémoire aux adresses 0040:001A et 0040:001C, on calcule la longueur du mot de passe de l’utilisateur, modulo 16 caractères. Exemple 1 Figure 5 - Etat de la mémoire tampon clavier du Bios après démarrage de la machine Sur ce premier exemple la longueur du mot de passe est de 10 caractères. p1 et p2 valent alors 0x34. Si on applique la formule précédente on obtient : 0534 B 051C 22 B 1D =. 16 E B 1F =. 16 10 2 2 La longueur du mot de passe utilisé modulo 16 est 10. @ Exemple 2 Figure 6 - Etat de la mémoire tampon clavier du Bios après démarrage de la machine (2) Sur ce deuxième exemple la longueur du mot de passe est de 20 caractères, p1 et p2 valent alors 0x28. Si on applique la formule précédente on obtient : SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 37 / 80 Évaluation CSPN Rapport technique d’évaluation 0528 B 051C 10 B 1D =. 16 E B 1F =. 16 4 2 2 On retrouve alors la longueur du mot de passe utilisé modulo 16 soit 4. @ Conséquences Un attaquant est en mesure de prévoir la longueur du mot de passe du système chiffré une fois que celui-ci est démarré. Ceci est possible en mode utilisateur. Ceci permet de réduire l’espace de recherche du mot de passe de démarrage en vue d’une attaque par recherche exhaustive, par exemple à partir d’une copie de disque. Cette vulnérabilité n’affecte que les systèmes dont la partition système est entièrement chiffrée. 6. Mauvaise gestion des paramètres reçus par le pilote Causes Les données traitées par le pilote TrueCrypt lors de l’envoi de l’IRP TC_IOCTL_REOPEN_BOOT_VOLUME_HEADER ne sont pas gérées correctement. Le paramètre d’entrée est une structure Password, constituée du mot de passe de volume et de sa taille. Cette structure est définie dans le fichier Password.h. La taille est un entier signé. La borne supérieure de la taille du mot de passe est vérifiée par la fonction ReopenBootVolumeHeader du fichier DriveFilter.c. La borne inférieure n’est pas vérifiée. Si la taille est valide, le volume est rouvert et la fonction VolumeReadHeader est appelée. Cette fonction appelle une fonction crypto_loadkey. Elle recopie le mot de passe dans un tampon de taille fixe à l’aide de memcpy. La taille des données à copier pour la fonction memcpy est un entier non signé. Il est donc possible d’envoyer un message mal formé avec une longueur de mot de passe négative, par exemple égale à -1. La fonction memcpy tentera alors de copier 232-1 octets. Exploitation L’envoi de l’IRP TC_IOCTL_REOPEN_BOOT_VOLUME_HEADER depuis le mode utilisateur se fait en appelant la fonction DeviceIoControl de Windows. L’exploitation n’est possible que si le système est chiffré : dans le cas contraire, une erreur est renvoyée par TrueCrypt car aucun volume de démarrage n’est monté. En passant une taille négative dans la structure Password, un écrasement de la mémoire se produit dans l’espace noyau, levant alors une exception PAGE_FAULT_IN_NONPAGED_AREA et provoquant un arrêt brutal et immédiat du système. SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 38 / 80 Évaluation CSPN Rapport technique d’évaluation Figure 7 - Envoi d'un mot de passe de longueur négative Bien que non triviale, en grande partie du fait que la taille des données copiées n’est pas contrôlable, la possibilité d’exécution de code en mode noyau est suspectée. Il est apparu durant les tests que le système ne redémarrait plus, le gestionnaire de démarrage ayant été endommagé. Dans ce cas, le disque de recouvrement doit être utilisé pour remettre en état l’entête du système chiffré. Conséquences Un système d’exploitation chiffré est sujet à une attaque par déni de service, voire à une exécution de code arbitraire en mode noyau depuis un compte utilisateur. Cette attaque n’est pas réalisable si la partition système n’est pas chiffrée : la fonction vulnérable traitant l’IRP TC_IOCTL_REOPEN_BOOT_VOLUME_HEADER vérifie préalablement que le système est chiffré avant de copier la clé dans le tampon de taille fixe. SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 39 / 80 Évaluation CSPN Rapport technique d’évaluation 7. Le chemin des fichiers clé n’est jamais effacé de la mémoire Causes Une liste de fichiers clés est spécifiée par l’utilisateur lors du montage d’un volume. Une représentation interne de la liste est construite par la fonction SelectMultipleFiles. Cette fonction copie la liste des fichiers dans une variable globale SelectMultipleFilesPath. Cette variable n’est jamais effacée. La variable locale file, contenant également la liste des fichiers à copier, n’est pas effacée. Elle contient la liste des fichiers clés en UNICODE. Exploitation Il est trivial de retrouver la liste et le chemin des fichiers clés utilisés pour monter un volume TrueCrypt dans la mémoire du processus TrueCrypt.exe. Lorsque plusieurs fichiers sont sélectionnés, leur chemin est copié dans SelectMultipleFilesPath, situé à une adresse fixe (0x49C148). Il s’agit de la méthode d’exploitation la plus fiable. Figure 8 : Plusieurs fichiers clés utilisés Dans le cas où un seul fichier est monté, la variable contenant le chemin du fichier clé se situe dans la pile. Une attaque relativement fiable consiste à faire une recherche par expressions régulières dans la mémoire du processus. SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 40 / 80 Évaluation CSPN Rapport technique d’évaluation Figure 9 : Un seul fichier clé utilisé Conséquences Tout attaquant ayant un accès au compte de l’utilisateur est en mesure de retrouver le ou les fichiers clés utilisés pour monter un volume TrueCrypt, même si celui-ci est démonté. Dans le cas où un volume n’est protégé qu’avec des fichiers clés, et donc sans mot de passe, l’accès au volume est immédiat. Les partitions système ne pouvant pas être montées avec des fichiers clés, cette vulnérabilité n’affecte que les volumes TrueCrypt. 8. Sauvegarde des en-têtes de volume Causes La fonctionnalité de sauvegarde de l’en-tête des volumes chiffrés n’efface pas correctement les clés de chiffrement. Lors de la sauvegarde, l’en-tête est déchiffré avec le mot de passe utilisateur, puis de nouveau chiffré. Les clés de chiffrement ne sont pas modifiées. Seul un nouveau sel est généré. Lors de la création du fichier de sauvegarde, le contenu du tampon recevant le nouvel en-tête, non initialisé, est préalablement chiffré avec des clés temporaires, afin d’obtenir des données pseudo-aléatoires. Ceci est utilisé pour donner un aspect aléatoire à l’en-tête de volume caché, s’il n’y a pas de volume caché. Pour cela, deux clés temporaires sont générées. La clé secondaire de chiffrement du volume est sauvegardée dans un tampon originalK2. La clé maitre temporaire est stockée dans un tampon temporaryKey. Ces deux variables ne sont jamais effacées. Exploitation Si l’en-tête d’un volume a été sauvegardé, la clé secondaire de celui-ci est présente en mémoire tant que le processus TrueCrypt.exe n’a pas été fermé. Les deux clés orginalK2 et temporaryKey sont accessibles même si le volume n’a pas été monté. La lecture des clés est immédiate. SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 41 / 80 Évaluation CSPN Rapport technique d’évaluation Conséquences Tout attaquant ayant un accès au compte de l’utilisateur, après que celui-ci a fait une sauvegarde d’un en-tête de volume, est capable de retrouver la clé secondaire de chiffrement du volume. En pratique, il devra toujours casser la clé primaire pour déchiffrer les données du volume. Cette vulnérabilité a en revanche un impact plus important dans les versions antérieures à la version 5, où le mode LRW était utilisé. Le mode LRW a en effet été abandonné suite aux problèmes de sécurité engendrés si la clé secondaire été compromise. 9. Les mots de passe ne sont pas correctement effacés lors de la création d’un nouveau volume Causes La fonction VerifyPasswordAndUpdate, définie dans le fichier Password.c, est appelée lorsque l’utilisateur rentre le mot de passe de son nouveau volume. Le mot de passe doit être entré deux fois, afin que l’utilisateur ne puisse pas faire d’erreur de frappe lors de la définition de celui-ci. Cette fonction compare les deux mots de passe entrés, et active un bouton permettant de passer à l’étape suivante s’ils sont identiques. Cette fonction appelle les fonctions GetWindowTextLength et GetWindowText de Windows pour récupérer la longueur des mots de passe entrés et leur valeur. Ces deux fonctions n’effacent pas correctement le contenu de leur tampon mémoire sur la pile, et donc le mot de passe utilisateur. Ceci est dû au fonctionnement de Windows et n’est pas directement lié à l’utilisation de TrueCrypt. Exploitation Le processus utilisateur TrueCrypt Format.exe contient le mot de passe du dernier volume créé en clair dans sa mémoire. Il se situe dans la pile de celui-ci, aux adresses 0x11DBD8 et 0x11DC04. Ce mot de passe est récupérable tant que le processus n’a pas été fermé. Dans l’exemple suivant, le mot de passe est « testmotdepassemdp » : Figure 10 – Mot de passe dans la pile de TrueCrypt Format après la création d’un volume chiffré SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 42 / 80 Évaluation CSPN Rapport technique d’évaluation Conséquences Tout attaquant ayant un accès au compte de l’utilisateur est en mesure de retrouver le mot de passe du dernier volume chiffré créée, même si celui-ci a été démonté. Cette attaque n’est possible que si le processus TrueCrypt Format.exe est en cours d’exécution. Ce processus est normalement fermé par l’utilisateur à la fin de la création du volume, ce qui réduit en principe fortement les possibilités d’attaque. Le problème est dû aux mécanismes de Windows. Il est toutefois possible de corriger cette vulnérabilité. La longueur du mot de passe est retournée par GetWindowText. L’appel à GetWindowTextLength est donc superflu. Il faut ensuite écraser le tampon mémoire de GetWindowText, par exemple en effectuant un appel supplémentaire à celui-ci sur un objet contenant un texte suffisamment long pour écraser le tampon. Une modification du code source mettant en application cette méthode montre que le mot de passe ne réside alors plus dans la mémoire du processus. 4. Avis d’expert sur les vulnérabilités Les vulnérabilités découvertes ont une importance variable. Certaines nous paraissent critiques, mais ne sont exploitables que dans des cas d’utilisation très précis, comme celle concernant la présence en mémoire du mot de passe après la création d’un volume. Ces problèmes devraient être corrigés. En attendant, des recommandations d’utilisation permettent de pallier les problèmes découverts. Ce n’est toutefois pas le cas pour le déni de service découvert sur les volumes chiffrés. Même si l’exécution de code n’est pas avérée, les conséquences d’un tel problème sont gênantes, en particulier le fait de devoir restaurer le bootloader à partir du CD-ROM de restauration. Vulnérabilité Les mots de passe ne sont pas correctement effacés lors de la création d’un nouveau volume. La clé de chiffrement secondaire du volume n’est pas effacée lors de la sauvegarde des en-têtes de volume. Le chemin des fichiers clés n’est jamais effacé après le montage d’un volume Recommandation Redémarrer l’ordinateur après la création du volume Redémarrer l’ordinateur après la sauvegarde des en-têtes. Ne pas utiliser de fichiers clés, ou avec une extrême précaution, et en utilisant un mot de passe fort. Le mot de passe reste en mémoire si l’option Ne pas copier son mot de passe et ne jamais « Afficher le mot de passe » est activée ou si activer l’option « Afficher le mot de passe ». celui-ci a été copié dans le presse-papiers. Une exécution de code potentielle existe si le Pas de recommandations, attendre un correctif. système est entièrement chiffré 5. Durée de l’analyse L’analyse de vulnérabilités a été réalisée tout au long de l’étude, en particulier durant l’évaluation de la résistance des mécanismes et l’analyse des mécanismes cryptographiques. La découverte et l’évaluation des risques engendrés par les vulnérabilités ont duré environ 7 jours. SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 43 / 80 Évaluation CSPN Rapport technique d’évaluation 6. Analyse de la facilité d’emploi 1. Cas où la sécurité est ambiguë La documentation de TrueCrypt recommande, s’ils sont employés, d’utiliser des fichiers « keyfiles » d’une taille supérieure ou égale à 30 octets. Un utilisateur peur créer un volume chiffré sans mots de passe et en utilisant un « keyfile » de taille nulle. Dans un tel cas l’interface de TrueCrypt ne génère aucun message d’avertissement de sécurité à destination de l’utilisateur. Nous pensons que dans ce cas la sécurité est ambigüe. A titre de comparaison lorsque l’utilisateur créée un volume chiffré en utilisant un mot de passe seul, un avertissement lui est envoyé si la longueur du mot de passe est inférieure à 20 caractères. Mis à part ce cas mineur nous n’avons pas constaté de cas d’utilisation du produit où la sécurité est ambigüe. 2. Recommandations pour une utilisation sûre du produit Les recommandations sont séparées en deux parties : la première liste des conseils d’ordre généraux. Elle reprend notamment des recommandations spécifiées dans la documentation. La deuxième liste les contre-mesures nécessaires à mettre en place pour réduire autant que possible les vulnérabilités recensées précédemment. 5. Recommandations générales • Robustesse du mot de passe Une attaque sur le mot de passe du volume chiffré par recherche exhaustive est envisageable sur des volumes avec des mots de passe courts. Afin d’éviter ce type d’attaque, TrueCrypt recommande d’utiliser des mots de passe d’au moins 20 caractères. Pour les même raisons, si des fichiers clés sont utilisés, leur taille doit être supérieure ou égale à 30 octets. La génération de fichiers clés de 64 octets par TrueCrypt est une bonne solution pour garantir le caractère aléatoire de ces fichiers. • Fichier de pagination En utilisation normale de la machine le système d’exploitation gère un fichier de pagination. Ce fichier sert au système d’exploitation comme une extension de la mémoire vive (RAM). TrueCrypt ne peut garantir que des informations sensibles contenues dans la mémoire du pilote comme les clés maîtresses de chiffrement ne seront pas écrites en clair dans ce fichier par le système d’exploitation. TrueCrypt recommande donc de désactiver le fichier de pagination lorsque le produit est installé. Cette remarque n’est pas à prendre en compte dans le cas d’un système intégralement chiffré. • Mise en veille prolongée Lors du déclenchement de la veille prolongée le système d’exploitation crée un fichier d’hibernation contenant une copie de la mémoire système. La mémoire du pilote TrueCrypt contenant les clés maîtres de chiffrement peuvent alors être copiées sur le disque dur de la machine lors de la mise en veille prolongée. TrueCrypt recommande donc de désactiver la mise en veille prolongée pendant l’utilisation du produit. Cette remarque n’est pas à prendre en compte dans le cas d’un système intégralement chiffré. SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 44 / 80 Évaluation CSPN Rapport technique d’évaluation • Partitions chiffrées Afin de prévenir des éventuelles fuites de données sensibles concernant les volumes TrueCrypt et leur contenu, nous préconisons l’utilisation de partitions chiffrées en lieu et place de simples conteneurs. En effet, dans le cas de volumes simples, le système d’exploitation ou des applications tierces peuvent écrire temporairement dans une zone externe au conteneur, et donc non chiffrée. Dans le cas d’une partition, les données écrites sur le disque seront toujours chiffrées. • Informations de débogage Lors d’une erreur système sérieuse Windows propose d’effectuer une copie de tout ou partie de la mémoire noyau (dump) pour analyse post-mortem de la machine. Des informations sensibles comme les clés maîtresses de chiffrement, contenues dans la mémoire du pilote, peuvent alors être copiées sur le disque dur de la machine. Pour cette raison, il est recommandé de désactiver l’option « Ecriture des informations de débogage » du système d’exploitation durant l’utilisation de Truecrypt. • Changement de mot de passe Lors du changement de mot de passe d’un volume chiffré seul l’en-tête de ce dernier est modifié, les clés maîtresses servant au chiffrement du système de fichier du volume chiffré restent inchangées. Nous recommandons donc lors d’un changement de mot de passe de créer un nouveau volume chiffré et créer ainsi de nouvelles clés maîtresses de chiffrement, particulièrement si le mot de passe est changé après que celui-ci est suspecté d’être compromis. • Changement de mot de passe d’un volume caché Lors du changement du mot de passe d’un volume caché seul l’en-tête de ce dernier est modifié. SI un attaquant a accès au volume chiffré avant et après le changement de mot de passe il constatera le changement d’en-tête chiffré. L’en-tête du volume chiffré se trouvant à une adresse fixe et documentée l’attaquant en déduira de façon certaine la présence d’un volume chiffré. Pour cette raison nous recommandons de ne pas changer le mot de passe d’un volume caché mais plutôt de créer un nouveau volume chiffré hôte contenant un volume caché. • CD-Rom de sauvegarde Lors de la création d’une partition chiffrée, TrueCrypt impose de graver une copie de sauvegarde de l’en-tête sur un média, qu’il faut stocker de manière sûre. De la même manière, nous recommandons d’effectuer une copie de sauvegarde des entêtes des volumes TrueCrypt (hors partitions et partitions système où cela est imposé afin de poursuivre la création). Ces sauvegardes doivent impérativement être stockées de façon sûre. • Formatage des volumes chiffrés Lors de la phase de création de volumes (quelque soit le type de volumes : simples ou partitions), nous préconisions de ne jamais utiliser l’option « Formatage rapide ». Si cette option n’est pas activée, TrueCrypt formate l’espace du volume avec des aléas, le cas échéant, les données présentent sur l’emplacement du volume ne seront pas systématiquement écrasées. • Systèmes de fichiers journalisés Dans le cadre de l’emploi de conteneurs chiffrés (hors partitions), nous préconisons l’utilisation de système de fichiers non journalisés tels que FAT32. L’utilisation de système de fichier journalisé tels que NTFS peut permettre la récupération d’informations par le biais des métadonnées propres aux systèmes de fichiers journalisés. • Défragmentation des volumes Nous préconisons de ne pas défragmenter les systèmes de fichiers contenant des conteneurs SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 45 / 80 Évaluation CSPN Rapport technique d’évaluation TrueCrypt. En effet, si le système de fichier est défragmenté, il est possible de retrouver certaines parties ou fragments du conteneur. Dans le cas d’un changement de mot de passe par exemple, il serait ainsi possible de monter le volume avec un ancien mot de passe compromis (ou des anciens KeyFiles), en reconstruisant une entête précédente avec les fragments retrouvés. Si le système de fichier est toutefois défragmenté, nous préconisons d’effacer de manière sûre tout l’espace libre après l’opération de défragmentation. 6. Recommandations suite aux vulnérabilités découvertes • Copier / Coller Lorsqu’un utilisateur effectue un copier / coller de son mot de passe dans une des boîtes de dialogue de « TrueCrypt » ou « TrueCrypt Format », ou qu’il sélectionne l’option « Afficher le mot de passe », le mot de passe sera présent, en totalité ou en partie, dans le contexte des processus. Ceci est dû aux fonctionnalités du système d’exploitation, qui n’effacent pas les tampons mémoire manipulés. Il est donc recommandé de ne pas copier son mot de passe, et de ne pas sélectionner l’option affichant le mot de passe. • Création d’un nouveau volume Lors de la création d’un volume chiffré avec l’outil « TrueCrypt Format » le mot de passe du dernier volume chiffré créé n’est pas effacé de la mémoire de ce processus. Le processus « TrueCrypt Format » doit être au moins immédiatement fermé après la création d’un volume chiffré. Il est conseillé de redémarrer directement le système d’exploitation. • Sauvegarde des en-têtes de volume Une fois l’en-tête d’un volume sauvegardé et conservé en lieu sûr, il est recommandé de fermer puis relancer TrueCrypt, voire de relancer le système d’exploitation, afin d’éviter que la clé de chiffrement secondaire du volume ne reste présente en mémoire. • Fichiers clés Le chemin des fichiers de clés n’est jamais effacé en mémoire. Nous conseillons de ne pas utiliser de fichiers clés, ou avec une extrême précaution, tant que cette vulnérabilité n’a pas été corrigée. • Déni de service et exécution de code potentielle La mauvaise gestion des paramètres passés au pilote sur un système d’exploitation chiffré ne peut pas être corrigée par des moyens simples. Nous ne pouvons donc pas fournir de recommandations sur ce point. 3. Avis d’expert sur la facilité d’emploi TrueCrypt s’avère simple à utiliser. Un utilisateur novice s’y retrouvera facilement en lisant le tutoriel de base disponible avec la documentation. L’assistant de création des volumes de TrueCrypt, et les différents messages affichés lors des opérations sensibles, fournissent assez d’informations nécessaires à l’utilisateur au cours des manipulations. Le parti pris des auteurs, qui documentent aussi bien les aspects fonctionnels que les aspects techniques, est pertinent. Contrairement à de trop nombreux produits, il est facile de comprendre assez globalement le fonctionnement interne du programme sans lire le code source. Les détails techniques sont présentés de façon rigoureuse, et restent accessibles pour un utilisateur curieux. SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 46 / 80 Évaluation CSPN Rapport technique d’évaluation 4. Durée de l’analyse L’analyse de la facilité d’emploi a duré une journée. Elle découle des résultats trouvés précédemment, et des recommandations déjà énoncées dans la documentation de TrueCrypt. 7. Synthèse Cible de sécurité : la solution évaluée est conforme à sa cible de sécurité. Toutes les fonctions de sécurité sont correctement implémentées. Installation du produit : l’installation ne pose pas de problème particulier. Une seule non-conformité a été relevée, et n’a pas d’importance quant à l’utilisation ou la sécurité du produit. Revue du code source : le code source est assez bien pensé, et bien structuré. Il est facilement compilable. Sa portabilité indique une rigueur de la part des développeurs. Les parties de code ayant trait à l’interface graphique du produit sont moins propres que le reste. Il semble que les parties de code les moins lisibles concernent les parties du programme présente depuis les premières versions. Analyse de la résistance des fonctions et mécanismes : les mécanismes mis en œuvre sont robustes. Les développeurs ont bien pensé le produit. Les fonctions de sécurité s’appuient sur des mécanismes éprouvés, ou sur l’état de l’art en matière de cryptographie. Analyse des vulnérabilités : plusieurs vulnérabilités ont été découvertes, certaines nous paraissent importantes. Il s’agit toujours d’erreurs de programmation, et non d’erreurs de conception. La plupart d’entre elles induisent des fuites d’informations, notamment sur le mot de passe ou les clés de chiffrement. Elles ne sont exploitables que dans des cas particuliers d’utilisation. Aucune attaque à partir d’un volume chiffré uniquement n’a été trouvée. Une vulnérabilité découverte sur le pilote pourrait permettre une exécution de code en mode noyau, et dans certains cas oblige l’utilisateur à restaurer le bootloader avec son CD de secours. Facilité d’emploi : le produit est simple à utiliser et à administrer. Les précautions d’utilisation sont nombreuses, et documentées ; ceci est normal pour un produit reposant essentiellement sur des mécanismes cryptographiques. Les données techniques présentes dans la documentation permettent de comprendre pourquoi ces mesures ont été préconisées. SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 47 / 80 Évaluation CSPN Rapport technique d’évaluation Annexe 1 : Fiches d’analyse de conformité des fonctions de sécurité Objectif de l’analyse : Fonction de sécurité : partition système chiffrée Logiciel TrueCrypt version 6.0a Réf. : Test_Creation_Part_Chiffree_1 Auteur : Jean-Baptiste Bédrune Objet du test : TrueCrypt peut générer une partition système chiffrée devant être montée uniquement en spécifiant le mot de passe saisi lors de la création de cette partition. Scénario du test : L’utilisateur autorisé créé une partition système chiffrée en spécifiant un mot de passe. Il tente ensuite de monter la partition système (In fine de booter le système) avec un mot de passe erroné. Il monte ensuite la partition TrueCrypt en utilisant le mot de passe spécifié lors de la création de cette partition. Opérations à effectuer Résultats attendus Résultats observés • Créer une partition chiffrée en • La tentative de montage de • La tentative de montage de suivant les instructions de la partition sans mot de la partition sans mot de l’assistant. Les paramètres suivants passe doit échouer passe échoue ont été utilisés : • La tentative de montage de • La tentative de montage de o Amorçage simple la partition avec un mot de la partition avec un mot de o Chiffrement AES passe erroné doit échouer passe erroné échoue o Hachage RIPMD-160 • La tentative de montage de • La tentative de montage de o Mot de passe de 20 la partition avec le mot de la partition avec le mot de caractères passe correct doit réussir passe valide réussie. Le système démarre et est utilisable de manière transparente. Conclusions : La partition système chiffrée générée est bien amorçable depuis l’interface du BootLoader TrueCrypt uniquement en fournissant le mot de passe valide spécifié lors de la création du conteneur. Un message invitant à restaurer les clés du BootLoader apparaît au bout de la cinquième tentative infructueuse de saisie du mot de passe : « "If you are sure the password is correct, the key data may be damaged. Boot your TrueCrypt Rescue Disk and select 'Repair Options' > 'Restore key data'. » Création d’une Tableau 1 – Test_Creation_Part_Chiffree_1 SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 48 / 80 Évaluation CSPN Rapport technique d’évaluation Objectif de l’analyse : Fonction de sécurité : Création d’une partition système primaire chiffrée et d’une partition système secondaire chiffrée contenant une copie cachée du système d’exploitation. Logiciel TrueCrypt version 6.0a Réf. : Auteur : Jean-Baptiste Bédrune Test_Creation_Syst_Cache_1 Objet du test : TrueCrypt peut générer une partition système primaire chiffrée et une partition système secondaire contenant un volume cachée (avec une copie du système d’exploitation leurre). Le système d’exploitation qui sera démarré (leurre ou caché) dépend du mot de passe saisie. Quelque soit le système à démarrer, les partitions doivent être montées uniquement en spécifiant le mot de passe saisi lors de la création de ces dernières. Scénario du test : L’utilisateur autorisé créé une partition système primaire chiffrée en spécifiant un mot de passe. Il crée ensuite une seconde partition système constituée d’un volume externe et d’un volume caché contenant une copie du système d’exploitation leurre. Il tente de monter la partition système primaire (In fine de booter le système leurre) avec un mot de passe erroné. Il monte ensuite la partition TrueCrypt en utilisant le mot de passe spécifié lors de la création de la partition primaire. Il tente de monter la partition système cachée (In fine de booter le système caché) avec un mot de passe erroné. Il monte ensuite la partition TrueCrypt en utilisant le mot de passe spécifié lors de la création de la partition secondaire cachée. Opérations à effectuer • Créer un volume externe chiffré (partition secondaire) en suivant les instructions de l’assistant. Les paramètres suivants ont été utilisés : o o o o o • Créer un volume caché au sein du volume externe (partition secondaire) en suivant les instructions de l’assistant. Les paramètres suivants ont été utilisés : o o o o • Amorçage simple AES RIPMD-160 Mot de passe de 20 caractères Formatage complet en FAT AES RIPMD-160 Mot de passe de 20 caractères Formatage complet en FAT Créer une partition primaire chiffrée en suivant les instructions de l’assistant. Les paramètres suivants ont été utilisés : o o o o Amorçage simple AES RIPMD-160 Mot de passe de 20 caractères Résultats attendus • La tentative de montage de la partition primaire ou secondaire (respectivement le boot du système leurre ou caché) sans mot de passe doit échouer • La tentative de montage de la partition primaire ou secondaire (respectivement le boot du système leurre ou caché) avec un mot de passe erroné doit échouer • La tentative de montage de la partition primaire ou secondaire (respectivement le boot du système leurre ou caché) avec les mots de passe respectifs corrects doit réussir Résultats observés • La tentative de montage de la partition primaire ou secondaire (respectivement le boot du système leurre ou caché) sans mot de passe échoue • La tentative de montage de la partition primaire ou secondaire (respectivement le boot du système leurre ou caché) avec un mot de passe erroné échoue • La tentative de montage de la partition primaire ou secondaire (respectivement le boot du système leurre ou caché) avec les mots de passe respectifs et valides réussie Conclusions : Les partitions système chiffrées (principale et secondaire) générées sont bien amorçables depuis l’interface du BootLoader TrueCrypt, uniquement en fournissant le mot de passe valide spécifié lors de la création des partitions. Si le mot de passe est identique à celui du système leurre, ce dernier démarre ; s’il est identique au système caché, ce dernier démarre. En revanche, s’il n’est conforme à aucun des deux systèmes ou nulle, aucun système de démarre. Un message invitant à restaurer les clés du BootLoader apparaît au bout de la cinquième tentative infructueuse de saisie du mot de passe : « "If you are sure the password is correct, the key data may be damaged. Boot your TrueCrypt Rescue Disk and select 'Repair Options' > 'Restore key data'. » Tableau 2 – Test_Creation_Syst_Cache_1 SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 49 / 80 Évaluation CSPN Rapport technique d’évaluation Objectif de l’analyse : Logiciel TrueCrypt version 6.0a Fonction de sécurité : Montage du Réf. : Test___1 Auteur : Jean-Baptiste Bédrune volume externe et caché de la Objet du test : TrueCrypt peut démarrer le système leurre et monter les partition système secondaire volumes externe et caché de la partition secondaire, uniquement en spécifiant (contenant une copie cachée du les mots de passe saisi lors de la création de la partition secondaire chiffrée. système d’exploitation). Scénario du test : L’utilisateur démarre sur le système leurre en spécifiant le bon mot de passe. Il tente de monter le volume externe de la partition secondaire avec un mot de passe erroné. Il tente ensuite de monter le volume externe en utilisant le mot de passe spécifié lors de la création de la partition secondaire. Il tente de monter le volume caché de la partition secondaire avec un mot de passe erroné. Il tente ensuite de monter le volume caché en utilisant le mot de passe spécifié lors de la création de la partition secondaire. Opérations à effectuer • Opérations du test Test_TC_2 • Démarrer le système leurre en indiquant le bon mot de passe au BootLoader Résultats attendus • La tentative de montage du volume externe sans mot de passe doit échouer • La tentative de montage du volume externe avec un mot de passe erroné doit échouer • La tentative de montage du volume externe avec le mot de passe correct doit réussir • • • Résultats observés • La tentative de montage du volume externe sans mot de passe échoue • La tentative de montage du volume externe avec un mot de passe erroné échoue • La tentative de montage du volume externe avec le mot de passe valide réussie • La tentative de montage du volume caché sans mot de passe doit échouer La tentative de montage du volume caché avec un mot de passe erroné doit échouer La tentative de montage du volume caché avec le mot de passe correct doit réussir • • La tentative de montage du volume caché sans mot de passe échoue La tentative de montage du volume caché avec un mot de passe erroné échoue La tentative de montage du volume caché avec le mot de passe valide réussie Conclusions : Le volume externe de la partition secondaire généré se monte correctement en fournissant uniquement le bon mot de passe défini dans l’assistant de création de volume. Le volume caché de la partition secondaire généré se monte correctement en fournissant uniquement le bon mot de passe défini dans l’assistant de création de volume. Le volume caché contient les fichiers du système d’exploitation caché. Tableau 3 - Test___1 SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 50 / 80 Évaluation CSPN Rapport technique d’évaluation Objectif de l’analyse : Fonction de sécurité : Création d’un volume chiffré dans un conteneur Logiciel TrueCrypt version 6.0a Réf. : Auteur : Julien Lenoir Test_Cree_VolChiffre_Conteneur_1 Objet du test : TrueCrypt peut générer un volume chiffré dans un conteneur devant être monté uniquement en spécifiant le mot de passe saisi lors de la création du volume chiffré. Scénario du test : L’utilisateur autorisé créée un volume chiffré dans un conteneur en spécifiant un mot de passe. IL tente ensuite de monter le volume crée avec un mot de passe erroné. Il monte ensuite un volume TrueCrypt à partir de ce conteneur en utilisant le mot de passe spécifié lors de la création du conteneur. Opérations à effectuer Résultats attendus Résultats observés • Sélectionner « Créer un • La tentative de montage du • La tentative de montage du volume » conteneur sans mot de conteneur sans mot de passe doit échouer passe échoue • Sélectionner « Créer un fichier conteneur » • La tentative de montage du • La tentative de montage du conteneur avec un mot de conteneur avec un mot de • Sélectionner « Volume passe erroné doit échouer passe erroné échoue TrueCrypt Standard » • La tentative de montage • La tentative de montage du • Sélectionner l’emplacement avec le mot de passe correct conteneur avec le mot de du conteneur de destination doit réussir passe valide réussie. Le • Sélectionner un algorithme disque apparaît alors dans la de chiffrement et un liste des disques durs algorithme de hachage accessibles. • Spécifier la taille du conteneur : 10 Mo. • Entrer un mot de passe ayant une taille comprise entre 20 et 64 caractères. ici : « jfqmagez*ghz!egh%45zgee 1+ » • Cliquer sur Formater • Cliquer sur Quitter • Depuis l’interface de TrueCrypt, sélectionner le conteneur nouvellement créée • Sélectionner un lecteur de destination • Cliquer sur « Monter » • Tenter de monter le volume sans mot de passe • Tenter de monter le volume avec un mot de passe erroné. Ici : « eozgoezjgeag45h4ez2ghez » • Tenter de monter le volume avec le mot de passe correct. Ici : « jfqmagez*ghz!egh%45zgee 1+ » Conclusions : Le conteneur chiffré généré peut être monté depuis l’interface de TrueCrypt uniquement en fournissant le mot de passe valide spécifié lors de la création du conteneur. Tableau 4 - Test_Cree_VolChiffre_Conteneur_1 SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 51 / 80 Évaluation CSPN Rapport technique d’évaluation Objectif de l’analyse : Fonction de sécurité : Modification des mots de passes d’un volume chiffré 1/2 Logiciel TrueCrypt version 6.0a Réf. : Auteur : Julien Lenoir Test_Changement_motdepasse_1 Objet du test : TrueCrypt permet à l’utilisateur de modifier le mot de passe d’un volume chiffré existant. Une fois cette modification effectuée il doit être impossible à l’utilisateur de monter le volume chiffré avec un autre mot de passe que celui qu’il a spécifié lors du changement de mot de passe Scénario du test : L’utilisateur autorisé créée un volume chiffré en spécifiant un mot de passe. Il change ensuite le mot de passe de son volume chiffré en donnant son mot de passe actuel et le nouveau mot de passe. Il va ensuite tenter de monter le volume avec son ancien mot de passe, puis tenter de monter le volume avec le nouveau mot de passe. Opérations à effectuer Résultats attendus Résultats observés • Créer le conteneur chiffré • La création du conteneur • La création du conteneur « conteneur_original » de 10 chiffré « conteneur_original » chiffré a réussi mo selon la procédure décrite doit réussir • Le montage du conteneur dans • Le montage d’un volume « conteneur_original » a Test_Cree_VolChiffre_Conten chiffré à partir du conteneur réussi eur_1 en utilisant le mot de « conteneur_original » doit • Le démontage du disque passe : réussir, le disque chiffré doit chiffré a réussi « jgoezngjhzeoqmqzgiazn » être accessible depuis le poste • La tentative de changement • Depuis l’interface principale de travail de mot de passe a réussi de TrueCrypt sélectionner le • Le démontage doit réussir, le • La tentative de montage du fichier « conteneur_original » disque chiffré ne doit plus conteneur et monter le volume être accessible depuis le poste « conteneur_mot_de_passe_ • Depuis l’interface démonter le de travail modifie » avec le mot de volume • La tentative de changement passe • Faire une copie de de mot de passe doit réussir, « jgoezngjhzeoqmqzgiazn » « conteneur_original » vers TrueCrypt doit afficher une échoue « conteneur_mot_de_passe_ boîte message indiquant le • La tentative de montage du modifie » succès de l’opération conteneur • Depuis l’interface de • La tentative de montage du « conteneur_mot_de_passe_ TrueCrypt sélectionner le conteneur modifie » avec le mot de fichier « conteneur_mot_de_passe_ passe « conteneur_mot_de_passe_ modifie » avec l’ancien mot « pagjeoamgjeghimqgrpmz »r modifie » de passe doit échouer éussi • Sélectionner Outils pour le • La tentative de montage du volume -> Modifier le mot de conteneur passe du volume « conteneur_mot_de_passe_ modifie » avec le nouveau • Entrer le mot de passe actuel mot de passe doit réussir « jgoezngjhzeoqmqzgiazn » • Entrer le nouveau mot de passe « pagjeoamgjeghimqgrpmz » • Valider en cliquant sur OK • Depuis l’interface de TrueCrypt sélectionner le fichier « conteneur_mot_de_passe_ modifie » et tenter de le monter avec l’ancien mot de passe « jgoezngjhzeoqmqzgiazn » • Tenter de monter le conteneur « conteneur_mot_de_passe_ modifie » avec le nouveau mot de passe « pagjeoamgjeghimqgrpmz » Conclusions : SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 52 / 80 Évaluation CSPN Rapport technique d’évaluation Le test montre que l’utilisateur est capable de changer le mot de passe d’un conteneur chiffré s’il est en possession du mot de passe du conteneur. Une fois le mot de passe du conteneur changé l’utilisateur ne peut monter le conteneur qu’en utilisant le nouveau mot de passe, l’ancien mot de passe du conteneur n’est plus valide. Tableau 5 - Test_Changement_motdepasse_1 SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 53 / 80 Évaluation CSPN Rapport technique d’évaluation Objectif de l’analyse : Fonction de sécurité : Modification des mots de passes d’un volume chiffré 2/2 Logiciel TrueCrypt version 6.0a Réf. : Auteur : Julien Lenoir Test_Changement_motdepasse_2 Objet du test : Vérifier que, conformément aux spécifications du format de volume TrueCrypt, seuls l’entête et la sauvegarde de l’entête sont modifiés lors de la modification des mots de passes d’un volume hôte. Scénario du test : On va comparer ici les deux fichiers conteneurs servant au montage d’un disque chiffré. Le premier nommé «conteneur_original » correspond au conteneur avant un changement de mot de passe du volume principal. Le second nommé «conteneur_mot_de_passe_modifie» correspond au conteneur après la modification du mot de passe principal. Opérations à effectuer Résultats attendus Résultats observés • Faire une copie des conteneurs • Seuls l’en-tête original et • Les 512 premiers octets, « conteneur_original » et l’en-tête de sauvegarde du correspondant à l’en-tête «conteneur_mot_de_passe_mod volume principal doivent principal sont différents. On ifie» générés lors du test être modifiés peut noter que les 65024 Test_Changement_motdepasse_ octets de l’entête marqués • Les données chiffrées ne 1 comme réservés dans la doivent pas être modifiées spécification de TrueCrypt • A l’aide d’un éditeur (les clés maîtresses sont eux, identiques dans hexadécimal, comparer les principales et secondaires les deux fichiers. fichiers « conteneur_original » et restant inchangées) « conteneur_mot_de_passe_mod • Les 65536 octets à partir de • L’en-tête original et l’en-tête ifie » l’adresse 65636 du fichier, de sauvegarde du volume correspondant à l’entête • Relever les différences entre les caché potentiel ne doivent d’un potentiel volume caché deux fichiers pas être modifiés sont identiques entre les deux fichiers. • Les (T – 2*131072) octets à partir de l’adresse 131072, correspondant aux données chiffrées dans la spécification de TrueCrypt, sont identiques dans les deux fichiers. T étant la taille du fichier du fichier conteneur. • Les 512 premiers octets de la sauvegarde de l’en-tête situés à l’adresse (T 131072) différent entre les deux fichiers. T étant la taille du fichier conteneur. On peut noter que les 65024 octets marqués comme réservés dans la sauvegarde de l’en-tête sont identiques entre les deux fichiers. • Les 65536 octets à partir de l’adresse (T – 65536) et correspondant à l’en-tête de sauvegarde d’un potentiel volume caché sont identiques entre les deux fichiers. T étant la taille du fichier conteneur. Conclusions : SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 54 / 80 Évaluation CSPN Rapport technique d’évaluation On constate que lors de la modification du mot de passe d’un volume chiffré contenu dans un fichier conteneur, seuls l’en-tête principal et l’en-tête de sauvegarde sont modifiés, conformément à la documentation de TrueCrypt. Il est cependant à noter que le champ marqué comme réservé dans la spécification de volume TrueCrypt n’est lui pas modifié. Ce aussi bien dans l’entête original que dans la sauvegarde de l’en-tête. Tableau 6 - Test_Changement_motdepasse_2 SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 55 / 80 Évaluation CSPN Rapport technique d’évaluation Objectif de l’analyse : Fonction de sécurité : Création d’un volume caché Logiciel TrueCrypt version 6.0a Réf. : Test_Creer_Vol_cache_1 Auteur : Julien Lenoir Objet du test : TrueCrypt permet la création d’un volume caché chiffré dans un volume chiffré TrueCrypt hôte existant Scénario du test : L’utilisateur autorisé créée un volume TrueCrypt chiffré et caché dans un volume TrueCrypt chiffré hôte existant au préalable Opérations à effectuer Résultats attendus Résultats observés • Copier le conteneur issu du • La création du volume • La création du volume test chiffré dans le volume chiffré dans le volume Test_Cree_VolChiffre_Conten existant doit réussir existant réussi eur_1 vers • Le montage du volume hôte • Le montage du volume hôte « conteneur_destination » doit réussir réussi. Il apparaît dans la • Depuis l’interface principale de liste des volumes montés et • Le démontage du volume TrueCrypt sélectionner : est accessible depuis le hôte doit réussir « Créer un volume » poste de travail Windows • Le montage du volume • Sélectionner « Créer un fichier • Le démontage du volume caché doit réussir conteneur » hôte réussi, il n’apparaît plus • Le démontage du volume dans la liste de TrueCrypt et • Sélectionner « Volume chiffré doit réussir n’est plus accessible depuis TrueCrypt caché » le poste de travail • Sélectionner « Mode direct » • Le montage du disque caché • Sélectionner le volume hôte réussi, il apparaît dans la destiné à recevoir le volume liste de TrueCrypt sous le caché, ici type «caché ». Il est « conteneur_destination » accessible depuis le poste de • Entrer le mot de passe du travail Windows volume TrueCrypt : • Le démontage réussi, le « jfqmagez*ghz!egh%45zgee1 volume n’apparaît plus dans +» la liste de TrueCryp et n’est • Sélectionner le chiffrement plus accessible depuis le AES et l’algorithme de hachage poste de travail Windows RIPEMD-160 • Sélectionner la taille du conteneur caché, ici 5 Mo • Entrer le mot de passe pour le volume caché : « zghriabhromqhvruohyqigryiz eo » • Cliquer sur Formater • Sélectionner le conteneur « conteneur_destination » • Tenter de monter le volume hôte avec le mot de passe : «jfqmagez*ghz!egh%45zgee1+ » • Si opération réussie démonter le volume • Tenter de monter le volume caché avec le mot de passe : « zghriabhromqhvruohyqigryiz eo » • Si opération réussie démonter le volume nouvellement monté Conclusions : L’utilisateur autorisé est capable de créer un volume chiffré dans un volume hôte existant. Il peut ensuite soit monter le volume hôte en utilisant le mot de passe du volume hôte, soit monter le volume caché en utilisant le mot de passe du volume caché SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 56 / 80 Évaluation CSPN Rapport technique d’évaluation Tableau 7 - Test_Creer_Vol_cache_1 SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 57 / 80 Évaluation CSPN Rapport technique d’évaluation Objectif de l’analyse : Fonction de sécurité : Changement des mots de passes d’un volume caché 1/2 Logiciel TrueCrypt version 6.0a Réf. : Auteur : Julien Lenoir Test_Changement_motdepasse_volcach e_1 Objet du test : TrueCrypt permet à l’utilisateur de modifier le mot de passe d’un volume caché chiffré existant. Une fois cette modification effectuée il doit être impossible à l’utilisateur de monter le volume caché chiffré avec un autre mot de passe que celui qu’il a spécifié lors du changement de mot de passe Scénario du test : L’utilisateur autorisé change le mot de passe d’un volume caché chiffré sans modifier le mot de passe du volume hôte. IL vérifie ensuite que le mot de passe du volume hôte n’a pas changé. Tente de monter le volume avec son ancie mot de passe puis finalement tente de monter le volume avec son nouveau mot de passe Opérations à effectuer Résultats attendus Résultats observés • Copie du conteneur créée lors • Le montage du volume • Le montage du volume hôte du test avec le mot de passe hôte avec le mot de passe Test_Creer_Vol_cache_1 vers « jfqmagez*ghz!egh%45zgee1+ « jfqmagez*ghz!egh%45zg « conteneur_avant_modificatio ee1+ » a réussi » à partir du conteneur n» « conteneur_apres_modificatio • Le montage du volume n » doit réussir • Faire une copie de caché à l’aide du mot de « conteneur_avant_modificatio passe • Le montage du volume caché à n » vers «zghriabhromqhvruohyqig l’aide du mot de passe « conteneur_apres_modificatio «zghriabhromqhvruohyqigryize ryizeo » à partir du n» o » à partir du conteneur conteneur « conteneur_apres_modifi « conteneur_apres_modificatio • Depuis la fenêtre principale de cation » a réussi n » doit réussir TrueCrypt sélectionner le • L’opération de fichier • L’opération de changement de « conteneur_apres_modificatio changement de mot de mot de passe doit réussir n» passe a réussi • Le montage du volume caché • Tenter de monter le volume • Le montage du volume après modification du mot de hôte à l’aide du mot de passe passe à l’aide du mot de passe caché après modification « jfqmagez*ghz!egh%45zgee1+ du mot de passe à l’aide du «zghriabhromqhvruohyqigryize » mot de passe o » à partir du conteneur « conteneur_apres_modificatio «zghriabhromqhvruohyqig • Si succès démonter le volume ryizeo » à partir du n » doit échouer • Tenter de monter le volume conteneur • Le montage du volume caché caché à l’aide du mot de passe « conteneur_apres_modifi après modification du mot de • Si succès démonter le volume cation » a échoué passe à l’aide du mot de passe « caché • Le montage du volume pzgjhoezhgirzmzgoemzgiemzhg • Depuis l’interface de TrueCrypt caché après modification e » à partir du conteneur cliquer sur Outils pour le du mot de passe à l’aide du « conteneur_apres_modificatio volume->Modifier le mot de n » doit réussir mot de passe « passe du volume pzgjhoezhgirzmzgoemzgie • Le montage du volume hôte à • Entrer le mot de passe actuel mzhge » à partir du l’aide du mot de passe du volume caché, ici « conteneur « jfqmagez*ghz!egh%45zgee1+ zghriabhromqhvruohyqigryizeo « conteneur_apres_modifi » doit réussir » cation » a réussi • Entrer le nouveau mot de • Le montage du volume passe souhaité pour le volume hôte à l’aide du mot de caché, passe ici « pzgjhoezhgirzmzgoemzgie « jfqmagez*ghz!egh%45zg mzhge » ee1+ » a réussi • Cliquer sur OK • Tenter de monter le volume caché avec le mot de passe « zghriabhromqhvruohyqigryiz eo » • Tenter de monter le volume caché avec le mot de passe « pzgjhoezhgirzmzgoemzgiemz hge » • Tenter de monter le volume hôte à l’aide du mot de passe « jfqmagez*ghz!egh%45zgee1+ » Conclusions : SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 58 / 80 Évaluation CSPN Rapport technique d’évaluation L’utilisateur authentifié peut changer le mot de passe d’un volume chiffré caché sans modifier le mot de passe du volume chiffré caché. Il n’est plus alors possible de monter le volume chiffré caché à l’aide de l’ancien mot de passe Tableau 8 - Test_Changement_motdepasse_volcache_1 SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 59 / 80 Évaluation CSPN Rapport technique d’évaluation Objectif de l’analyse : Fonction de sécurité : Changement des mots de passes d’un volume caché 2/2 Logiciel TrueCrypt version 6.0a Réf. : Auteur : Julien Lenoir Test_Changement_motdepasse_volcache_2 Objet du test : Vérifier que, conformément aux spécifications du format de volume TrueCrypt, seuls l’entête et la sauvegarde de l’entête du volume caché sont modifiés lors de la modification des mots de passes d’un volume caché. Scénario du test : On va comparer ici les deux fichiers conteneurs servant au montage d’un disque caché. Le premier nommé «conteneur_avant_modification» correspond au conteneur avant un changement de mot de passe du volume caché. Le second nommé «conteneur_apres_modification» correspond au conteneur après la modification du mot de passe du volume caché. Opérations à effectuer Résultats attendus Résultats observés • Faire une copie des conteneurs • Seuls l’en-tête original et l’en-tête • Les 65536 « conteneur_avant_modification» et de sauvegarde du volume caché premiers octets «conteneur_apres_modification» doivent être modifiés du fichier, générés lors du test correspondant à • Les données chiffrées ne doivent Test_Changement_motdepasse_volcac l’en-tête pas être modifiées (les clés he_1 principal du maîtresses principales et volume hôte • A l’aide d’un éditeur hexadécimal, secondaires restant inchangées) sont identiques comparer les fichiers • L’en-tête original et l’en-tête de dans les deux « conteneur_avant_modification» et sauvegarde du volume hôte ne fichiers, « conteneur_apres_modification» doivent pas être modifiés conformément • Relever les différences entre les deux aux fichiers spécifications de TrueCrypt. • Les 512 octets à partir de l’adresse 65636 du fichier, correspondant à l’entête d’un potentiel volume caché différent. Les 65024 octets de l’en-tête du volume caché marqués dans la documentation comme réservés sont identiques dans les deux fichiers. • Les (T – 2*131072) octets à partir de l’adresse 131072, correspondant aux données chiffrées dans la spécification de TrueCrypt, sont identiques dans les deux fichiers. T étant la taille du fichier conteneur. • Les 65536 octets à partir de l’adresse (T – 131072) et SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 60 / 80 Évaluation CSPN Rapport technique d’évaluation • correspondant à la sauvegarde de l’en-tête du volume hôte sont identiques entre les deux fichiers. T étant la taille du fichier conteneur. Les 512 premiers octets de la sauvegarde de l’en-tête du volume chiffré situés à l’adresse (T 65536) différent entre les deux fichiers. T étant la taille du fichier conteneur. On peut noter que les 65024 octets marqués comme réservés dans la sauvegarde de l’en-tête du volume chiffrés sont identiques entre les deux fichiers. Conclusions : On constate que lors de la modification du mot de passe d’un volume caché chiffré contenu dans un volume hôte, seuls l’entête principal et l’en-tête de sauvegarde du volume caché sont modifiés, conformément à la documentation de TrueCrypt. Il est cependant à noter que le champ marqué comme réservé dans la spécification de volume TrueCrypt n’est lui pas modifié. Ce aussi bien dans l’en-tête original que dans la sauvegarde de l’en-tête. Tableau 9 - Test_Changement_motdepasse_volcache_2 SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 61 / 80 Évaluation CSPN Rapport technique d’évaluation Objectif de l’analyse : Fonction de sécurité : Protection du volume caché chiffré contre les dommages Logiciel TrueCrypt version 6.0a Réf. : Test_Protect_Vol_cache_1 Auteur : Julien Lenoir Objet du test : Lors du montage d’un volume chiffré hôte en activant la protection du volume caché chiffré ce dernier doit être protégé lors de l’écriture sur le volume hôte Scénario du test : Un volume chiffré hôte contient un volume chiffré caché. Le volume chiffré hôte est monté en activant la protection du volume caché. Une tentative de remplissage du disque hôte est effectuée. Une vérification de l’intégrité des données sur le volume caché est ensuite effectuée. Opérations à effectuer Résultats attendus Résultats observés • La création du volume hôte • Créer un volume hôte • La création du volume hôte et du volume caché doivent et du volume caché ont • Créer un volume caché dans réussir réussi le volume hôte • Le montage du volume précédemment créée • Le montage du volume caché doit réussir caché a réussi • Monter le disque caché • La copie du fichier • La copie du fichier • Créer un fichier binaire « fichier_volume_caché » « fichier_volume_caché » a « fichier_volume_cache » de doit réussir réussi. Après la copie il ne données aléatoires de la reste plus aucuns octets de • Le démontage du volume taille du volume caché libres sur le volume caché caché doit réussir • Générer la signature du • Le démontage du volume • Le montage du volume hôte fichier caché a réussi avec activation de la « fichier_volume_cache » à protection du volume caché l’aide de l’algorithme sha1 • Le montage du volume hôte doit réussir avec la protection du volume • Copier caché à réussi. Une boîte • La copie du fichier « fichier_volume_cache » message est apparue nous « fichier_volume_hote1 » sur le volume caché indiquant que le volume doit échouer • Démonter le volume caché caché était protégé jusqu’au • Après un échec d’écriture • Monter le volume hôte démontage du volume hôte due à la protection du contenant le volume caché • La copie du fichier volume caché le disque hôte en activant la protection de « fichier_volume_hote1 » a doit devenir accessible en volumes cachés échoué. TrueCrypt a affiché lecture uniquement. La • Créer un fichier binaire une boîte message indiquant copie du fichier « fichier_volume_hote1 » de une tentative d’écriture sur « fichier_volume_hote2 » données aléatoires de la le volume caché. Le système, doit donc échouer taille du volume hôte Windows, a affiché une info• Le démontage du volume • Tenter de copier bulle indiquant l’échec de la hôte doit réussir « fichier_volume_hote1 » copie. • Le montage du volume • Générer un fichier binaire • La tentative de copie de caché doit réussir « fichier_volume_hote2 » de « fichier_volume_hote2 » • La signature du fichier aléatoire d’une taille égale à car le système, ici Windows, « fichier_volume_cache » en (taille du volume hôte – considère quel le disque est fin de test doit être taille du volume caché) plein. Le fichier identique à celle du début • Tenter de copier « fichier_volume_hote1 » du test, signe que « fichier_volume_hote2 » apparaît toujours comme l’ensemble du contenu du sur le volume hôte étant sur le disque. Une disque caché a bien été • Démonter le volume hôte tentative de suppression protégé. • Monter le volume caché manuelle de • Le démontage du volume • Générer la signature du « fichier_volume_hote1 » le caché doit réussir fichier fait disparaitre du contenu • Lors d’une procédure de « fichier_volume_cache » se du disque mais fait montage d’un autre volume, trouvant sur le volume caché apparaître des info-bulles l’option de protection d’un • Comparer cette signature à stipulant l’échec de volume ne doit pas être celle générée à partir du « l’écriture décalée » sélectionnée fichier • La tentative de copie de « fichier_volume_cache » « fichier_volume_hote2 » avant sa copie sur le volume après suppression manuelle caché de « fichier_volume_hote1 » • Démonter le volume caché échoue. Bien que le fichier • Depuis l’interface de apparaisse dans la liste des TrueCrypt cliquer sur fichiers présents sur le « Monter » puis sur disque Windows affiche à « Options de montage » nouveau une info-bulle • Vérifier l’état de l’option de stipulant l’erreur de protection de volume caché « l’écriture décalée » SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 62 / 80 Évaluation CSPN Rapport technique d’évaluation • • • • • Le démontage du disque hôte réussi Le montage du disque caché a réussi L’emprunte du fichier « fichier_volume_cache » est la même que celle obtenue en début de test Le démontage du volume caché a réussi Lors d’une procédure de montage d’un autre volume, l’option de protection d’un volume n’est pas sélectionnée Conclusions : On constate que l’option de protection d’un volume caché fonctionne. Elle permet de protéger les données du volume caché contre l’écrasement lors de l’utilisation du disque hôte. Si une telle tentative est stoppée par TrueCrypt alors le disque hôte devient protégé contre l’écriture jusqu’au démontage. L’intégrité des données sur le volume caché protégé est conservée si l’option de protection de ce dernier est activée. Après le démontage d’un volume hôte utilisé avec la protection du volume caché, l’option de protection reste par défaut décochée pour conserver le déni plausible. Tableau 10 - Test_Protect_Vol_cache_1 SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 63 / 80 Évaluation CSPN Rapport technique d’évaluation Objectif de l’analyse : Logiciel TrueCrypt version 6.0a Fonction de sécurité : Génération de Réf. : Test_Genkeyfiles_1 Auteur : Julien Lenoir fichiers Keyfiles Objet du test : TrueCrypt permet de générer des fichiers keyfiles de 64 octets Scénario du test : Un utilisateur génère deux fichiers keyfile différents Opérations à effectuer Résultats attendus Résultats observés • Depuis l’interface de • La génération des deux • La génération des deux TrueCrypt sélectionner dans fichiers clés doit réussir fichiers clé a réussi le menu « Fichiers clé » puis • Les deux fichiers • Les deux fichiers ont une « Générer aléatoirement un « fichier_keyfile1 » et taille de 64 octets fichier clé » « fichier_keyfile2 » doivent • Les deux fichiers keyfile sont • Cliquer sur « Générer et avoir une taille de 64 octets différents et semblent sauvegarder un fichier clé » • Les deux fichiers doivent remplis de données puis sauvegarder le fichier être différents aléatoires « fichier_keyfile1 » • Cliquer sur « Générer et sauvegarder un fichier clé » puis sauvegarder le fichier « fichier_keyfile2 » • Vérifier la taille des fichiers • Editer les deux fichiers à l’aide d’un éditeur hexadécimal Conclusions : TrueCrypt permet à l’utilisateur de créer des fichiers keyfiles de 64 octets. Tableau 11 - Test_Genkeyfiles_1 SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 64 / 80 Évaluation CSPN Rapport technique d’évaluation Objectif de l’analyse : Fonction de sécurité : Taille des fichiers keyfiles Logiciel TrueCrypt version 6.0a Réf. : Test_taille_keyfiles_1 Auteur : Julien Lenoir Objet du test : TrueCrypt recommande l’utilisation de fichiers keyfiles d’une taille au moins égale à 30 octets et ayant une entropie élevée Scénario du test : Un utilisateur tente de chiffrer un volume avec un fichier keyfile de taille nulle et un mot de passe vide Opérations à effectuer Résultats attendus Résultats observés • Générer un fichier • • Aucun message « fichier_vide» ayant une d’avertissement n’est affiché taille nulle à l’utilisateur • Depuis l’interface de • La création du volume a TrueCrypt sélectionner réussi « Créer un volume » • Le montage du volume à • Sélectionner « Créer un l’aide d’un fichier vide fichier conteneur » quelconque réussi • Sélectionner « Volume TrueCrypt standard » • Sélectionner l’emplacement du conteneur cible « conteneur.tc » • Spécifier une taille pour le fichier conteneur • Laisser le mot de passe vide • Cocher la case « Fichier clé » • Sélectionner « Fichier clé… » • Sélectionner « Ajouter un fichier » • Sélectionner le fichier « fichier_vide » précédemment crée • Valider en cliquant sur OK • Formater le volume • Quitter • Depuis l’interface de TrueCrypt sélectionner le fichier conteneur « conteneur.tc » • Tenter de monter le volume en utilisant un fichier vide quelconque Conclusions : TrueCrypt recommande dans sa documentation l’utilisation de fichiers keyfiles ayant une taille supérieure ou égale à 30 octets et ayant une entropie élevée. Il n’est pas précisé dans la documentation que la création d’un volume chiffré avec un fichier clé vide avec et sans mot de passe doit déclencher l’affichage d’un avertissement. Sur ce point TrueCrypt est conforme à la documentation. Tableau 12 - Test_taille_keyfiles_1 SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 65 / 80 Évaluation CSPN Rapport technique d’évaluation Objectif de l’analyse : Fonction de sécurité : Utilisation des fichiers keyfiles Logiciel TrueCrypt version 6.0a Réf. : Test_utilisation_keyfiles_1 Auteur : Julien Lenoir Objet du test : TrueCrypt permet d’utiliser un ou plusieurs fichiers keyfiles lors de la création d’un volume chiffré. Ce ou ces keyfiles sont alors nécessaires pour monter le volume chiffré Scénario du test : L’utilisateur crée un volume chiffré à l’aide d’un keyfile généré par TrueCrypt. Il tente alors ensuite de monter le volume sans le fichier keyfile, avec un fichier keyfile différent de celui utilisé lors de la création du volume puis finalement avec le fichier keyfile ayant servi à la création du volume. Opérations à effectuer Résultats attendus Résultats observés • La création du fichier • Créer un fichier keyfile • La création du fichier « bon_keyfile » a réussi « bon_keyfile » à l’aide du « bon_keyfile » doit réussir générateur de fichier keyfile • La création du fichier • La création du fichier de TrueCrypt « mauvais_keyfile » a réussi « mauvais_keyfile » doit • Créer un volume chiffré par réussir • La tentative de montage du le fichier keyfile dans le volume à partir du • La tentative de montage du conteneur « conteneur.tc » conteneur « conteneur.tc » volume à partir du utilisant comme fichier conteneur « conteneur.tc » sans utiliser de fichier keyfile keyfile « bon_keyfile » échoue sans utiliser de fichier keyfile doit échouer • Créer un fichier keyfile • La tentative de montage du « mauvais_keyfile » à l’aide • La tentative de montage du volume à partir du du générateur de fichier volume à partir du conteneur « conteneur.tc » keyfile de TrueCrypt en utilisant le fichier conteneur « conteneur.tc » « mauvais_keyfile » comme en utilisant le fichier • Tenter de monter le volume fichier clé échoue « mauvais_keyfile » comme à partir du conteneur fichier clé doit échouer « conteneur.tc » sans • La tentative de montage du spécifier de fichier keyfile volume à partir du • La tentative de montage du conteneur « conteneur.tc » volume à partir du • Tenter de monter le volume en utilisant le fichier conteneur « conteneur.tc » à partir du conteneur « bon_keyfile » comme en utilisant le fichier « conteneur.tc » en utilisant fichier clé réussi « bon_keyfile » comme le fichier « mauvais_keyfile » fichier clé doit réussir comme fichier clé • Tenter de monter le volume à partir du conteneur « conteneur.tc » en utilisant le fichier « bon_keyfile » comme fichier clé Conclusions : TrueCrypt permet de chiffrer un volume en utilisant un fichier keyfile à la place d’un mot ou phrase de passe. Ce fichier keyfile est alors nécessaire pour pouvoir monter le volume chiffré Tableau 13 - Test_utilisation_keyfiles_1 SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 66 / 80 Évaluation CSPN Rapport technique d’évaluation Objectif de l’analyse : Fonction de sécurité : Utilisation des 1048576 premiers octets des fichiers keyfiles par TrueCrypt Logiciel TrueCrypt version 6.0a Réf. : Test_donnees_utiles_keyfiles_1 Auteur : Julien Lenoir Objet du test : TrueCrypt permet d’utiliser un ou plusieurs fichiers keyfiles lors de la création d’un volume chiffré. Seuls les 1048576 premiers octets (premier Mo) de chaque fichier sont utilisés pour la création du volume comme pour son montage. Scénario du test : L’utilisateur crée utilise un fichier keyfile de taille supérieure à 1024 octets pour créer un volume chiffré. ème L’utilisateur tente de monter le volume avec le keyfile dont le 1048576 octet a été modifié. L’utilisateur tente de ème monter le volume avec le keyfile dont l’octet 1048577 octet a été modifié. Opérations à effectuer Résultats attendus Résultats observés • La création du volume • Créer un fichier contenant • La création du volume des données aléatoires de chiffré ayant le fichier chiffré a réussi « keyfile_original » comme plus de 1048576 octets • Le montage du volume avec fichier clé doit réussir « keyfile_original » comme fichier keyfile • Créer un volume chiffré • Le montage du volume avec « keyfile_original » a réussi ayant le fichier comme fichier keyfile • Le montage du volume avec « keyfile_original » doit « keyfile_original » comme comme fichier keyfile fichier clé réussir « keyfile_avant_limite » a • Le montage du volume avec échoué • Faire une copie de « keyfile comme fichier keyfile original » vers • Le montage du volume avec « keyfile_avant_limite » « keyfile_avant_limite » doit comme fichier keyfile dont on modifie le échouer « keyfile_apres_limite » a ème 1048576 octet • Le montage du volume avec réussi • Faire une copie de comme fichier keyfile « keyfile_original » vers « keyfile_apres_limite » doit « keyfile_apres_limite » dont réussir ème on modifie le 1048577 octet • Tenter de monter le volume précédemment crée avec comme fichier keyfile « keyfile_original » • Tenter de monter le volume précédemment crée avec comme fichier keyfile « keyfile_avant_limite » • Tenter de monter le volume précédemment crée avec comme fichier keyfile « keyfile_apres_limite » Conclusions : Conformément à la documentation on constate que TrueCrypt utilise bien les 1048576 premiers octets des fichiers keyfiles lors du montage des volumes Tableau 14 - Test_donnees_utiles_keyfiles_1 SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 67 / 80 Évaluation CSPN Rapport technique d’évaluation Objectif de l’analyse : Fonction de sécurité : Démontage automatique des disques chiffrés à la fermeture de l’OS Logiciel TrueCrypt version 6.0a Réf. : Auteur : Julien Lenoir Test_demontage_fermeture_OS_1 Objet du test : Vérifier que lors de la fermeture de l’OS tous les volumes chiffrés montés sont automatiquement démontés Scénario du test : L’utilisateur va créer un volume chiffré dans un conteneur. Il va ensuite monter ce volume chiffré puis fermer l’OS sans préalablement démonter le volume. Il redémarrera ensuite son OS et vérifiera que les volumes montés avant la fermeture de l’OS ne sont plus montés. Opérations à effectuer Résultats attendus Résultats observés • Création d’un volume chiffré • La fermeture de l’OS doit • La fermeture de l’OS a réussi dans un conteneur réussir • Après un redémarrage de • Montage du volume chiffré • Après le redémarrage le l’ordinateur le lecteur associé au volume chiffré a associé au conteneur lecteur associé au volume doit avoir disparu du poste disparu du poste de travail • Fermer l’OS via le menu de travail « démarrer » de Windows • La tentative de suppression • La tentative de suppression du fichier conteneur a réussi • Redémarrer l’OS du fichier conteneur doit • Vérifier que le lecteur réussir associé au volume chiffré n’est plus présente • Tenter de supprimer le fichier conteneur créée au début du test pour vérifier que le volume n’est plus utilisé par l’OS Conclusions : Lors de la fermeture de l’OS les volumes montés sont automatiquement démontés. Tableau 15 - Test_demontage_fermeture_OS_1 SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 68 / 80 Évaluation CSPN Rapport technique d’évaluation Objectif de l’analyse : Fonction de sécurité : Démontage automatique des disques chiffrés à la mise en veille Logiciel TrueCrypt version 6.0a Réf. : Auteur : Julien Lenoir Test_demontage_mise_en_veille_1 Objet du test : Vérifier que lors de la mise en veille tous les volumes chiffrés montés sont automatiquement démontés Scénario du test : L’utilisateur va créer un volume chiffré dans un conteneur. Il va ensuite monter ce volume chiffré puis mettre en veille l’ordinateur sans préalablement démonter le volume. Il réactivera ensuite son ordinateur et vérifiera que les volumes montés avant la mise en veille sont démontés. Opérations à effectuer Résultats attendus Résultats observés • Création d’un volume chiffré • La mise en veille de • La mise en veille de dans un conteneur l’ordinateur réussit doit l’ordinateur réussit. réussir TrueCrypt affiche une boite • Montage du volume chiffré d’information indiquant que associé au conteneur • Après la réactivation le les volumes ont été lecteur associé au volume • Mise en veille de démontés et que ce doit avoir disparu du poste l’ordinateur via le menu démontage est facultatif et de travail « démarrer » de Windows configurable depuis • La tentative de suppression • Réactiver l’ordinateur l’utilitaire de TrueCrypt. du fichier conteneur doit • Vérifier que le lecteur • Après une réactivation de réussir associé au volume chiffré l’ordinateur le lecteur n’est plus présente associé au volume chiffré a • Tenter de supprimer le disparu du poste de travail fichier conteneur créée au • La tentative de suppression début du test pour vérifier du fichier conteneur a réussi que le volume n’est plus utilisé par l’OS Conclusions : Lors de la mise en veille de l’OS les volumes montés sont automatiquement démontés si l’option est activée dans TrueCrypt. Il est important de noter que cette fonction est liée au programme principal de TrueCrypt. Si l’utilisateur monte un volume chiffré puis ferme le programme principal de TrueCrypt le volume chiffré restera monté même l’ordinateur est mis en veille. Tableau 16 - Test_demontage_mise_en_veille_1 SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 69 / 80 Évaluation CSPN Rapport technique d’évaluation Objectif de l’analyse : Fonction de sécurité : Démontage automatique des disques chiffrés à la fermeture de session Logiciel TrueCrypt version 6.0a Réf. : Auteur : Julien Lenoir Test_demontage_fermeture_session_1 Objet du test : Vérifier que lors de la fermeture de session tous les volumes chiffrés montés sont automatiquement démontés Scénario du test : L’utilisateur va créer un volume chiffré dans un conteneur. Il va ensuite monter ce volume chiffré puis fermer sa session sans préalablement démonter le volume. Il ouvrira ensuite sa session et vérifiera que les volumes montés avant la fermeture de session sont démontés. Opérations à effectuer Résultats attendus Résultats observés • Création d’un volume chiffré • La fermeture de session doit • La fermeture de session dans un conteneur réussir réussit • Montage du volume chiffré • Après l’ouverture de session • Après ouverture de la session le lecteur associé au associé au conteneur le lecteur associé au volume doit avoir disparu du poste de volume chiffré a disparu du • Activer le démontage de travail poste de travail volumes à la fermeture de • La tentative de suppression • La tentative de suppression session depuis l’interface de TrueCrypt du fichier conteneur doit du fichier conteneur a réussi réussir • Fermer la session depuis le menu démarrer • Ouvrir la session • Vérifier que le lecteur associé au volume chiffré n’est plus présent • Tenter de supprimer le fichier conteneur créée au début du test pour vérifier que le volume n’est plus utilisé par l’OS Conclusions : Lors de la fermeture de session les volumes montés sont automatiquement démontés si l’option est activée depuis l’interface de TrueCrypt. Il est important de noter que cette fonction est liée au programme principal de TrueCrypt. Si l’utilisateur monte un volume chiffré puis ferme le programme principal de TrueCrypt le volume chiffré restera monté même l’utilisateur ferme sa session. Tableau 17 - Test_demontage_fermeture_session_1 SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 70 / 80 Évaluation CSPN Rapport technique d’évaluation Objectif de l’analyse : Logiciel TrueCrypt version 6.0a Fonction de sécurité : Démontage Réf. : Auteur : Julien Lenoir automatique des disques chiffrés lors Test_demontage_economiseur_ecran_1 de déclenchement de l’économiseur Objet du test : Vérifier que lors du déclenchement de l’économiseur d’écran tous d’écran les volumes chiffrés montés sont automatiquement démontés Scénario du test : L’utilisateur va créer un volume chiffré dans un conteneur. Il va ensuite monter ce volume chiffré puis attendre le déclenchement de l’économiseur d’écran sans préalablement démonter le volume. Il arrêtera ensuite l’économiseur d’écran et vérifiera que les volumes montés avant le déclenchement de l’économiseur d’écran sont démontés. Opérations à effectuer Résultats attendus Résultats observés • La fermeture de session doit • La fermeture de session • Création d’un volume chiffré dans un conteneur réussir réussit • Montage du volume chiffré • Après le déclenchement de • Après le déclenchement de l’économiseur d’écran le l’économiseur d’écran le associé au conteneur lecteur associé au volume doit lecteur associé au volume • Activer le démontage de avoir disparu du poste de chiffré a disparu du poste de volumes au déclenchement travail travail de l’économiseur d’écran • La tentative de suppression du • La tentative de suppression • Attendre le déclenchement fichier conteneur doit réussir du fichier conteneur a réussi de l’économiseur d’écran • Arrêter l’économiseur d’écran • Vérifier que le lecteur associé au volume chiffré n’est plus présent • Tenter de supprimer le fichier conteneur créée au début du test pour vérifier que le volume n’est plus utilisé par l’OS Conclusions : Lors du déclenchement de l’économiseur d’écran les volumes montés sont automatiquement démontés si l’option est activée depuis l’interface de TrueCrypt. Il est important de noter que cette fonction est liée au programme principal de TrueCrypt. Si l’utilisateur monte un volume chiffré puis ferme le programme principal de TrueCrypt le volume chiffré restera monté même si l’économiseur d’écran se déclenche. Tableau 18 - Test_demontage_economiseur_ecran_1 SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 71 / 80 Évaluation CSPN Rapport technique d’évaluation Objectif de l’analyse : Logiciel TrueCrypt version 6.0a Fonction de sécurité : Démontage Réf. : Auteur : Julien Lenoir automatique des disques chiffrés lors Test_demontage_atteinte_delai_1 de l’atteinte du délai fixé par Objet du test : Vérifier que lors de l’atteinte du délai fixé par l’utilisateur tous les l’utilisateur volumes chiffrés montés sont automatiquement démontés Scénario du test : L’utilisateur va créer un volume chiffré dans un conteneur. Il va ensuite monter ce volume chiffré puis attendre l’atteinte du délai fixé par l’utilisateur sans préalablement démonter le volume. Il vérifiera ensuite que les volumes montés avant la mise en mode économie d’énergie sont démontés. Opérations à effectuer Résultats attendus Résultats observés • Création d’un volume chiffré • Après de l’atteinte du délai • Après l’atteinte du délai fixé dans un conteneur fixé par l’utilisateur le par l’utilisateur le lecteur lecteur associé au volume associé au volume chiffré a • Montage du volume chiffré doit avoir disparu du poste disparu du poste de travail associé au conteneur de travail • La tentative de suppression • Activer le démontage de • La tentative de suppression du fichier conteneur a réussi volumes lors de l’atteinte du fichier conteneur doit d’un délai d’une minute réussir • Attendre la mise en mode économie d’énergie • Vérifier que le lecteur associé au volume chiffré n’est plus présent • Tenter de supprimer le fichier conteneur créée au début du test pour vérifier que le volume n’est plus utilisé par l’OS Conclusions : Lors de l’atteinte du délai fixé par l’utilisateur les volumes montés sont automatiquement démontés si l’option est activée depuis l’interface de TrueCrypt. Il est important de noter que cette fonction est liée au programme principal de TrueCrypt. Si l’utilisateur monte un volume chiffré puis ferme le programme principal de TrueCrypt le volume chiffré restera monté même si le délai d’inactivité est dépassé. Tableau 19 - Test_demontage_atteinte_delai_1 SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 72 / 80 Évaluation CSPN Rapport technique d’évaluation Objectif de l’analyse : Logiciel TrueCrypt version 6.0a Fonction de sécurité : Forçage du Réf. : Test_forcer_demontage_1 Auteur : Julien Lenoir démontage des volumes contenant des Objet du test : Vérifier qu’il est possible de forcer le démontage d’un volume fichiers ou programmes en cours chiffré monté contenant des fichiers ou programmes en cours d’exécution d’utilisation Scénario du test : L’utilisateur va créer un volume chiffré dans un conteneur. Il va ensuite monter ce volume chiffré puis y créer un répertoire et y copier un programme. Il va ensuite lancer le programme et ouvrir le dossier avec l’explorateur Windows. Il va finalement forcer le démontage du volume chiffré sans fermer au préalable le dossier ni le programme en cours d’utilisation Opérations à effectuer Résultats attendus Résultats observés • Création d’un volume chiffré • Le démontage du volume • TrueCrypt affiche une boite dans un conteneur doit réussir message demandant si l’utilisateur souhaite forcer • Montage du volume chiffré • La fenêtre de l’explorateur le démontage du volume associé au conteneur sur le dossier créée dans le volume chiffré doit se • Après avoir forcé le • Création d’un dossier sur ce fermer démontage du volume le volume chiffré puis ouverture programme calc.exe est de ce dossier • L’exécution du programme toujours en exécution calc.exe doit se poursuivre • Copie de programme • L’explorateur ouvert sur le « C:\Windows\System32\calc. • Le lecteur associé au volume dossier dans le conteneur exe » dans le volume chiffré doit avoir disparu de est fermé puis l’exécution de ce l’explorateur programme • Le lecteur associé au volume • La suppression du fichier chiffré a disparu du poste de • Depuis l’interface de conteneur doit réussir travail TrueCrypt démonter le volume • La suppression du fichier conteneur a réussit • Vérifier que le démontage réussit • Vérifier que le lecteur associé au volume chiffré n’est plus présent • Tenter de supprimer le fichier conteneur créée au début du test pour vérifier que le volume n’est plus utilisé par l’OS Conclusions : Il est possible depuis l’interface de TrueCrypt de forcer le démontage des volumes chiffrés contenant des fichiers ou programmes en cours d’éxécution Tableau 20 - Test_forcer_demontage_1 SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 73 / 80 Évaluation CSPN Rapport technique d’évaluation Objectif de l’analyse : Logiciel TrueCrypt version 6.0a Fonction de sécurité : Vérification de Réf. : Auteur : Julien Lenoir la robustesse des mots ou phrases de Test_qualite_mots_de_passes_1 passe lors de la création de volumes Objet du test : TrueCrypt recommande d’utiliser des mots ou phrases de passe TruCrypt. robustes. Scénario du test : L’utilisateur créer un volume TrueCrypt à l’aide de l’assistant. 1 Il tente de saisir un mot ou phrase de passe robuste , inférieur à 20 caractères 1 Il tente de saisir un mot ou phrase de passe robuste , égal à 20 caractères 1 Il tente de saisir un mot ou phrase de passe robuste , supérieur à 20 caractères 2 Il tente de saisir un mot ou phrase de passe faible , inférieur à 20 caractères 2 Il tente de saisir un mot ou phrase de passe faible , égal à 20 caractères 2 Il tente de saisir un mot ou phrase de passe faible , supérieur à 20 caractères 1 : un mot (ou phrase) de passe robuste est un mot (ou phrase) de passe composé de lettres, de chiffres et de caractères spéciaux ; : un mot (ou phrase) de passe faible est un mot (ou phrase) de passe ne présentant pas les caractéristiques du mot (ou phrase) de passe robuste (par ex : une date, nom commun, répétition de caractères, …). Note : la notion de robustesse ou de faiblesse d’un mot (ou phrase) de passe inclut la taille du mot (ou de la phrase) de passe. Cependant, c’est une variable dans le cadre de ce test, ainsi, les définitions ci-dessus omettent volontairement ce paramètre essentiel 2 Opérations à effectuer • Créer un volume TrueCrypt • Vérifier les messages ou l’absence de message lors de la validation de la saisie du mot (ou phrase) de passe Résultats attendus • L’assistant doit afficher un message d’information si le mot (ou phrase) de passe est faible et/ou inférieur à 20 caractères • L’assistant doit afficher un message d’information si le mot (ou phrase) de passe est égale ou supérieur à 20 caractères, mais faible • Aucun message d‘information de doit être affiché si le mot (ou phrase) de passe est égal ou supérieur à 20 caractères Résultats observés • La saisie d’un mot (ou phrase) de passe faible inférieur à 20 caractères provoque l’affichage d’un message d’erreur. • La saisie d’un mot (ou phrase) de passe robuste inférieur à 20 caractères provoque l’affichage d’un message d’erreur. • La saisie d’un mot (ou phrase) de passe faible égal à 20 caractères ne provoque pas l’affichage d’un message d’erreur (idem si supérieur à 20 caractères) • La saisie d’un mot (ou phrase) de passe robuste égal à 20 caractères ne provoque pas l’affichage d’un message d’erreur (idem si supérieur à 20 caractères) Conclusions : La vérification du mot (ou phrase) de passe saisi est uniquement réalisée sur la longueur du mot (ou la phrase) de passe. Aucune vérification n’est faite sur les caractères constituant le mot (ou phrase) de passe. Tableau 21 - Test_qualite_mots_de_passes_1 SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 74 / 80 Évaluation CSPN Rapport technique d’évaluation Objectif de l’analyse : Fonction de sécurité : Tests d’intégrité du volume et restauration des entêtes défectueux 1/2 Logiciel TrueCrypt version 6.0a Réf. : Test_integrite_recuperation_1 Auteur : Jean-Baptiste Bédrune Objet du test : TrueCrypt effectue un test d’intégrité sur l’en-tête du volume chiffré. TrueCrypt propose également de restaurer l’en-tête du volume à partir d’une copie de l’en-tête embarquée dans le volume. Scénario du test : Opérations à effectuer Résultats attendus Résultats observés • La création du volume • La création du volume • Créer un volume chiffré dans un conteneur nommé chiffré dans le conteneur chiffré dans le conteneur « normal » doit réussir « normal » a réussi « normal » et ayant comme mot de passe • Le montage du volume à • Le montage du volume à « cspncspncspncspncspn » partir du conteneur partir du conteneur • Mettre à zéro les 16 « normal-broken » non « normal-broken » non restauré doit échouer restauré a échoué premiers octets du fichier « normal » correspondants • La restauration du volume • La restauration du volume aux 16 premiers octets de endommagé « normalendommagé « normall’en-tête du volume broken » doit réussir broken » a réussi TrueCrypt. Sauvergarder e • Le montage du volume à • Le montage du volume à conteneur modifié sous le partir du conteneur partir du conteneur nom « normal-broken » « normal-broken » restauré « normal-broken » restauré • Tenter de monter le volume doit réussir a réussi à partir du conteneur « normal-broken » • Restaurer l’en-tête du volume « normal-broken » à partir de la sauvegarde de l’en-tête intégrée au volume depuis de l’interface de TrueCrypt. • Tenter de monter le volume à partir du conteneur « normal-broken » Conclusions : TrueCrypt effectue bien un test d’intégrité sur l’en-tête du volume chiffré. TrueCrypt permet bien de restaurer l’en-tête du volume chiffré à partir de la copie de l’en-tête embarquée dans le volume. Tableau 22 - Test_integrite_recuperation_1 SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 75 / 80 Évaluation CSPN Rapport technique d’évaluation Objectif de l’analyse : Fonction de sécurité : Tests d’intégrité du volume et restauration des entêtes défectueux 2/2 Logiciel TrueCrypt version 6.0a Réf. : Test_integrite_recuperation_2 Auteur : Jean-Baptiste Bédrune Objet du test : TrueCrypt effectue un test d’intégrité sur l’en-tête du volume chiffré. TrueCrypt propose également de restaurer l’en-tête du volume à partir d’une copie de l’en-tête sauvegardée sur un fichier externe au volume. Scénario du test : Opérations à effectuer Résultats attendus Résultats observés • Créer un volume chiffré de • La création du volume • La création du volume 10Mo dans un conteneur chiffré dans le conteneur chiffré a réussi nommé « normal » et ayant « normal » doit réussir • Le montage du volume à comme mot de passe • Le montage du volume à partir du conteneur « cspncspncspncspncspn » partir du conteneur « normal-broken » non • Sauvegarder l’en-tête du « normal-broken » non restauré a échoué volume dans un fichier restauré doit échouer • La restauration du volume externe nommé « header• La restauration du volume endommagé « normalvolume » endommagé « normalbroken2 » à partir de la • Mettre à zéro les 16 broken2 » à partir de la sauvegarde de l’en-tête premiers octets du fichier sauvegarde de l’en-tête contenue dans le volume a « normal » correspondants contenue dans le volume réussi aux 16 premiers octets de doit réussir • Le montage du volume à l’en-tête du volume • Le montage du volume à partir du conteneur TrueCrypt. Mettre à zéro les partir du conteneur « normal-broken2 » 16 premiers octets du fichier « normal-broken2 » restauré a échoué « normal » à partir de restauré doit échouer • La restauration du volume l’adresse 0x9E0000 • La restauration du volume endommagé « normalcorrespondants aux 16 endommagé « normalbroken2 » à partir de la premiers octets de la broken2 » à partir de la sauvegarde de l’en-tête sauvegarde de l’en-tête du sauvegarde de l’en-tête contenue dans le fichier volume TrueCrypt . contenue dans le fichier « header-volume » a réussi Sauvegarder le conteneur « header-volume » doit • Le montage du volume à modifié sous le nom réussir partir du conteneur « normal-broken2 » • Le montage du volume à « normal-broken2 » • Tenter de monter le volume partir du conteneur restauré a réussi à partir du conteneur « normal-broken2 » « normal-broken2 » restauré doit réussir • Restaurer l’en-tête du volume « normal-broken2 » à partir de la sauvegarde de l’en-tête intégrée au volume depuis de l’interface de TrueCrypt. • Tenter de monter le volume à partir du conteneur « normal-broken2 » • Restaurer l’en-tête du volume « normal-broken2 » à partir de la sauvegarde de l’en-tête contenue dans le fichier « header-volume » depuis de l’interface de TrueCrypt. • Tenter de monter le volume à partir du conteneur « normal-broken2 » Conclusions : TrueCrypt effectue bien un test d’intégrité sur l’en-tête du volume chiffré. TrueCrypt permet bien de restaurer l’en-tête du volume chiffré à partir de la copie de l’en-tête sauvegardée sur un fichier externe au volume. SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 76 / 80 Évaluation CSPN Rapport technique d’évaluation Tableau 23 - Test_integrite_recuperation_2 SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 77 / 80 Évaluation CSPN Rapport technique d’évaluation Objectif de l’analyse : Logiciel TrueCrypt version 6.0a Fonction de sécurité : Démontage Réf. : Auteur : Julien Lenoir automatique des disques chiffrés lors Test_demontage_economie_energie_1 de la mise en mode économie Objet du test : Vérifier que lors de la mise en mode économie d’énergie tous les d’énergie volumes chiffrés montés sont automatiquement démontés Scénario du test : L’utilisateur va créer un volume chiffré dans un conteneur. Il va ensuite monter ce volume chiffré puis attendre la mise en mode économie d’énergie sans préalablement démonter le volume. Il réactivera ensuite sa machine et vérifiera que les volumes montés avant la mise en mode économie d’énergie sont démontés. Opérations à effectuer Résultats attendus Résultats observés • La mise en mode économie • Juste avant la mise en mode • Création d’un volume chiffré dans un conteneur d’énergie doit réussir économie d’énergie l’interface graphique de • Montage du volume chiffré • Après la mise en mode TtrueCrypt indique que tous économie d’énergie le lecteur associé au conteneur les volumes ont été associé au volume doit avoir • Activer le démontage de démontés. disparu du poste de travail volumes lors de la mise en • La mise en mode économie • La tentative de suppression mode économie d’énergie d’énergie à réussi du fichier conteneur doit • Attendre la mise en mode réussir • Après réactivation de l’OS, le économie d’énergie volume précédemment • Réactiver l’ordinateur monté est bien démonté • Vérifier que le lecteur • La tentative de suppression associé au volume chiffré du fichier conteneur a réussi n’est plus présent • Tenter de supprimer le fichier conteneur créée au début du test pour vérifier que le volume n’est plus utilisé par l’OS Conclusions : Lors de la mise en mode économie d’énergie les volumes montés sont automatiquement démontés si l’option est activée depuis l’interface de TrueCrypt. Si l’option n’est pas activée depuis l’interface de TrueCrypt les volumes ne sont pas démontés avant la mise en mode économie d’énergie. Tableau 24 - Test_demontage_economie_energie_1 SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 78 / 80 Évaluation CSPN Rapport technique d’évaluation Annexe 2 : Tableaux proposés par la CEM pour la cotation des mécanismes de résistance Valeur pour Valeur pour Facteur Intervalle identification d’une exploitation d’une vulnérabilité vulnérabilité < 0.5 h 0 0 < 1 jour 2 3 Temps mis pour < 1 mois 3 5 > 1 mois 5 8 Impraticable * * * Indique que le chemin d’attaque n’est pas exploitable dans un intervalle de temps qui serait utile à un attaquant. Une valeur * indique un haut niveau de résistance. Expertise de l’attaquant Connaissance nécessaire à l’attaquant Accès au produit par l’attaquant Type d’équipement nécessaire pour exploiter la vulnérabilité Somme des valeurs 0 à 10 11 à 17 18 à 24 > 25 SOGETI I.S. Division : Consulting Agence : ESEC. Profane Compétent Expert Aucune Informations publiques Informations sensibles < 0.5h ou indétectable < 1 jour < 1 mois > 1 mois Impraticable Aucun Standard Spécialisé Spécifique 0 2 5 0 5 8 0 2 3 4 * 0 1 3 5 0 2 4 0 2 4 0 4 6 9 * 0 2 5 6 Résistant à un attaquant ayant Niveau de résistance des un potentiel d’attaque fonctions Pas de classement Faible Basique/Élémentaire Modéré Médium/Moyen Élevé Élevé Réf : K08-JBB-CR-671-2008 Page 79 / 80 Évaluation CSPN Rapport technique d’évaluation 8. FIN DU DOCUMENT SOGETI I.S. Division : Consulting Agence : ESEC. Réf : K08-JBB-CR-671-2008 Page 80 / 80