Introduction au Trusted Computing

La cybersécurité : des mécanismes défensifs à parfaire

Malgré des décennies de recherche dans le domaine de la sécurité informatique, les attaques malveillantes contre les systèmes sont toujours légions et leurs conséquences négatives, indéniables. Cette difficulté à faire face à la menace cybernétique peut s’expliquer par le fait que la sécurité des systèmes n’est généralement pas dans les priorités des développeurs ou encore parce que les systèmes informatiques sont de plus en plus hétérogènes. Conséquemment, certaines solutions, valables pour les uns, deviennent inapplicables pour les autres. De plus,comme la performance est généralement privilégiée à la sécurité, les principaux mécanismes de défense sont implémentés de façon purement logicielle. Ainsi, la tâche de protection contre les menaces est laissée au système d’exploitation et aux logiciels antivirus. Aucune protection n’est généralement réalisée au niveau matériel. Cela rend les systèmes particulièrement vulnérables, puis qu’un logiciel malveillant peut modifier la façon dont le système d’exploitation s’exécute ou encore désactiver la protection du logiciel antivirus. Il estdonc primordial d’utiliser des mécanismes de sécurité à la fois logiciels et matériels, implémentés dés la conception des systèmes.

Un concept de défense alternatif : le trusted computing

L’une des pistes de recherche explorées par les chercheurs pour faire face aux menaces cybernétiques est le trusted computing (informatique digne de confiance). Le trusted computing désigne les technologies permettant d’établir la confiance dans un système. Cela signifie que chaque fois que le système est utilisé, cette technologie s’assure que les processus critiques sont sécurisés et s’exécutent dans un environnement isolé. Ce concept repose, généralement, sur des mécanismes matériels et logiciels afin d’effectuer ses vérifications.

Les composantes du trusted computing

Afin de faire les vérifications nécessaires et établir la confiance dans un système, le trusted computing s’appuie sur des composants dignes de confiance de base : Trusted Computing Base (TCB). À partir de celles-ci, l’intégrité de tout le reste du système peut être vérifiée. L’exemple le plus courant pour l’ensemble des composants dignes de confiance comporte le processeur (ou un mode sécurisé du processeur), du stockage sécurisé et une partie logicielle. Les domaines d’application du trusted computing comportent :
Le démarrage sécurisé (trusted boot) :

à chaque démarrage du dispositif ou de l’ordinateur, il y a une chaîne de vérification de l’intégrité du logiciel. Cela est généralement fait à l’aide du calcul des hash cryptographiques du code.

L’exécution isolée (isolated execution) :   cela permet d’exécuter des processus sensibles en isolation des autres processus, ou même du système d’exploitation, afin de protéger leurs exécutions et les données qu’ils utilisent. L’isolation peut être logicielle, matérielle ou une combinaison des deux.

Les mises à jour sécurisées(secure updates) :

la mise à jour des dispositifs doit assurer que la version à installer est authentique et supérieure à celle déjà installée. Le stockage sécurisé(secure storage) : afin de protéger les données des utilisateurs, et même le système d’exploitation et les codes du démarrage des attaques physiques, le stockage sécurisé est indispensable. Les données doivent résister aux différentes attaques cryptographiques même lorsqu’elles sont stockées sur un système de fichiers auquel nous ne faisons pas confiance. La gestion des droits numériques (digital rights management) : la gestion des droits numériques vise à protéger les contenus médias des fournisseurs de services. Par exemple, si un fournisseur loue un film, il veut s’assurer que ce film sera présent seulement la durée du prêt. Cela est garanti par des mécanismes de trusted computing.

 

Méthodes d’implémentation du trusted computing

Plusieurs méthodes d’implémentation du trusted computing ont déjà été proposées. Parmi les premières solutions fournissant de l’exécution sécurisée, nous pouvons noter l’apparition de la carte intelligente (externe) qui se branche à l’ordinateur afin de fournir des services de sécurité tels que l’authentification sécurisée, ou encore le chiffrement de données (par exemple les cartes FORTEZZA). Cette méthode permet de garantir un grand degré de sécurité logicielle et matérielle. Par la suite, il y a eu modification de ce concept : au lieu de fournir la sécurité par un module externe à brancher, le module est désormais intégré directement sur la carte mère. Bien que ce schéma diminue légèrement les garanties de sécurité, il augmente considérablement les performances, surtout pour les opérations cryptographiques, vu que ces opérations sont optimisées au niveau matériel du processeur. Parallèlement, il y a eu apparition d’une technique d’isolation logicielle : la virtualisation (Xen ou Vmware par exemple). Le but principal de cette technologie est d’éviter le gas- pillage des ressources matérielles et de les utiliser au maximum en tout temps. Mais ce qui a contribué à rendre les machines virtuelles populaires et largement utilisées en sécurité informatique, c’est la facilité de leur installation et de leur configuration, et le fait qu’elles soient isolées. D’ailleurs, elles sont utilisées dans plusieurs contextes en sécurité. Par exemple, dans l’ingénierie inverse des logiciels malveillants, elles fournissent des environnements vulnérables afin d’amorcer des attaques qui permettent d’analyser les techniques utilisées par les pirates. Elles peuvent fournir un environnement d’exécution isolé, même si la machine hôte n’est pas digne de confiance et pourrait être infectée par des logiciels malveillants. Étant une solution souvent gratuite (la plupart des logiciels de virtualisation étant gratuits et à code source ouvert), et ne nécessitant pas de modifications matérielles, cela a contribué à sa popularité et procure une bonne alternative pour faire de l’exécution isolée. Finalement, il y a eu apparition des extensions de sécurité pour les processeurs, comme Intel Software Guard Extensions (SGX), ou encore ARM Trustzone. Ces extensions permettent de fournir des mécanismes de protection des processus sensibles en les exécutant isolément des autres programmes et du système d’exploitation. Le processeur est incapable de fournir seul une solution sécuritaire complète, mais il y a des implémentations logicielles qui font que cette technologie offre un grand degré de sécurité et d’isolation. Le trusted computing peut donc être implémenté selon différentes méthodes, comme la virtualisation, les modules de sécurité externes ou les processeurs sécurisés, cette dernière étant la plus prometteuse.

Le trusted computing, un concept à explorer davantage

Le trusted computing commence à être utilisé dans des applications de la vie courante, par exemple, dans le cas du paiement électronique utilisant le téléphone cellulaire. Cependant, l’adoption de cette technologie reste assez limitée et elle est principalement utilisée sur les téléphones cellulaires, même si matériellement elle peut être utilisée sur presque toutes les plates-formes (ordinateurs, systèmes embarqués, etc.). En effet, la majorité des nouveaux processeurs, même ceux qui ne sont pas très chers, offrent des technologies permettant l’exécution isolée. Le potentiel de sécurité de ce concept n’est pas donc pas exploité à son maximum. Parmi les raisons pour lesquelles les recherches utilisant le trusted computing ne sont pas assez fréquentes, malgré les avantages offerts, on peut citer l’absence de documentation et le fait que la majorité du code qui inclut la séquence de démarrage et le fonctionnement du processeur sécurisé sont fermés et propriétaires des constructeurs de processeurs. Cela rend difficile aux chercheurs et développeurs d’expérimenter le trusted computing, développer des applications sécurisées en l’utilisant, chercher des failles de sécurité afin d’en assurer la sécurité, etc. Néanmoins ce concept reste très prometteur, il pourrait constituer une solution à plusieurs problèmes de sécurité informatique et de gestion des données privées.

Plus de formations sur