Vous êtes sur le site public du Cert-IST
Récupération de clés de chiffrement en mémoire RAM

Date :03 Avril 2008

Publication: Article

Le présent article a pour but d’expliquer, de commenter  et d’évaluer le niveau de risque d’une attaque utilisant la persistance des données en mémoire RAM pour contourner les systèmes de chiffrement des disques durs. En effet une récente étude [1] publiée par l’université de Princeton montre que ce risque est plus élevé que ce  qu’il est généralement supposé. Dans les faits, la mémoire DRAM utilisée dans nos ordinateurs actuels peut conserver pendant un certain temps (de quelques secondes à quelques minutes) les données qu’elle contient après l’arrêt du système à température ambiante et ce même si le composant mémoire a été retiré de la carte mère. Bien que la DRAM devienne moins fiable lorsqu’elle n’est plus rafraîchie par le système, son contenu n’est pas effacé et il est conservé suffisamment longtemps pour permettre à une personne malveillante de récupérer une image complète et réutilisable de la mémoire vive du système. L’étude montre que ce phénomène remet en question la possibilité pour un système d’exploitation de protéger des données cryptographiques face à une personne ayant un accès physique à la machine.

La rémanence des données en mémoire RAM est un phénomène déjà connu depuis plus de 20 ans et des études ont déjà suggéré le fait que cela pouvait poser des problèmes de sécurité. Mais jusqu’à présent, aucune étude n’avait décrit plus précisément le phénomène. L’étude de l’université de Princeton semble être la seule à décrire des algorithmes permettant de reconstruire des clés de chiffrement, d’appliquer ces méthodes à des logiciels de chiffrement de disque couramment utilisés et également à discuter de mesures de protection.

 

Présentation de l’attaque

La plupart des experts affirment que la mémoire vive est effacée presqu’immédiatement après l’arrêt de l’ordinateur ou qu’il est de toute façon extrêmement difficile de récupérer des données stockées en RAM une fois l’ordinateur éteint. L’étude publiée par l’université de Princeton montre que ces affirmations sont fausses. Le contenu de la mémoire RAM couramment utilisée s’efface progressivement sur une période de quelques secondes à la température habituelle de fonctionnement même si le composant mémoire est retiré de la carte mère. Mais les données peuvent être conservées beaucoup plus longtemps (de quelques minutes à plusieurs heures) si la RAM est gardée à basse température. Par conséquent, de simples techniques non destructives permettent de récupérer des données résiduelles en RAM tout en ne nécessitant qu’un accès physique momentané à la machine. L’attaque peut être menée à bien même lorsqu’une session utilisateur est verrouillée ou même si l’ordinateur est en veille et selon les cas en veille prolongée.

L’étude décrit d’abord plusieurs expériences qui ont été menées pour caractériser la rémanence des données en RAM, et ce pour une grande variété de technologies et de composants différents.

Voici quelques constatations qui peuvent résumer ces expériences :

  • La plupart des modules mémoire testés conservent une grande quantité de données lorsqu’ils ne sont plus rafraîchis par le système et même lorsqu’ils ne sont plus alimentés. La persistance de ces données peut s’étaler sur des périodes correspondant à plusieurs milliers de cycles de rafraichissement.
  • A une température normale de fonctionnement, un faible taux de corruption des données est constaté pendant quelques secondes, puis suit une période de dégradation rapide (plus de 50% après 60 secondes sans alimentation). Les quelques premières secondes pendant lesquelles les données ne sont pas encore corrompues peuvent être mises à profit pour redémarrer l’ordinateur à froid et permettre de récupérer des données sensibles sans avoir à retirer le module mémoire de la carte mère.
  • Les modules de RAM les plus récents, pour lesquels le nombre de composants électroniques est plus important, semblent conserver les données moins longtemps lorsqu’ils ne sont plus sous tension.
  • Dans la plupart des cas lors des expériences, presque tous les bits se retrouvaient effacés après un temps prévisible et retrouvaient des valeurs de base également prévisibles plutôt qu’aléatoires.
  • Enfin, la dégradation des données stockées en RAM est très fortement liée à la température à laquelle est soumis le composant.


Le paramètre sur lequel il semble le plus facile d’agir pour retarder l'effacement mémoire est la température. Le rapport de l’université de Princeton mentionne 2 techniques que les chercheurs ont employées pour réduire la température de la mémoire :

  • Une technique de refroidissement simple consiste à décharger une bombe aérosol réfrigérante sur le composant mémoire. Cette technique a permis aux chercheurs de l’université de Princeton de refroidir des composants à près de -50°C. A cette température, la perte de données a été évaluée à environ 1% après 10 minutes.
  • Une seconde technique, plus avancée, consistait à plonger la barrette de mémoire dans de l’azote liquide (-196°C). A cette température, la perte de donnée a été mesurée à 0,17%. On peut à priori en déduire que les données peuvent être conservées en mémoire plusieurs heures ou jours à condition de posséder des moyens de refroidissement suffisants.

 
Le rapport présente ensuite plusieurs variantes de l’attaque dont le but est de récupérer des clés de chiffrement ou des données sensibles en mémoire RAM. Les voici, classées de la plus simple (facile à contrer) à la plus avancée (très difficilement parable) :

  • La plus simple consiste à arrêter la machine puis à la redémarrer en utilisant un système d’exploitation personnalisé, petit en mémoire, permettant de faire une image complète de la RAM.
  • Une attaque plus avancée consiste à couper l’alimentation pendant un bref instant, à remettre l’ordinateur sous tension, puis à démarrer un kernel personnalisé. Cette attaque permet en outre d’empêcher le système d’exploitation de nettoyer la mémoire avant son arrêt.
  • Enfin, une attaque encore plus robuste consiste à couper l’alimentation de la machine puis à transplanter le module mémoire sur un PC spécialement préparé par l’attaquant pour récupérer les données. Cette attaque a en outre le mérite d’empêcher la machine victime d’effacer la mémoire au moment du boot.

 
Dans toutes les variantes présentées ci-dessus, l’attaquant doit démarrer une machine avec un système d’exploitation personnalisé. En effet, lorsqu’un système se lance, il écrase nécessairement des portions de mémoire. En l’occurrence démarrer un système d’exploitation complet détruirait une bonne partie des données stockées en mémoire. Donc, le système de l’attaquant doit non seulement contenir des outils permettant de faire une image de la mémoire et de récupérer des clés de chiffrement, mais il doit aussi être suffisamment petit pour ne pas écraser trop de données lors de son démarrage.

 
Nous avons déjà vu que si l’attaquant est amené à couper l’alimentation trop longtemps, les données ont toutes les chances d’être corrompues. Les chercheurs de l’université de Princeton ont développé 3 méthodes permettant de limiter cet effet et également de corriger des erreurs dans les clés de chiffrement récupérées :

  • La première consiste à refroidir le composant mémoire avant de couper l’alimentation ; ceci a pour effet de diminuer considérablement le taux d’erreur rencontré par la suite.
  • La seconde consiste à appliquer des heuristiques et des algorithmes spécialement développés par les chercheurs de l’université de Princeton. Ceux-ci permettent de localiser les clés symétriques et privées dans la mémoire et de corriger les erreurs qu’elles peuvent contenir.
  • La troisième consiste à reproduire les conditions (délais utilisés, température etc.) respectées lors de l’extraction des données en mémoire et de mesurer de manière expérimentale les erreurs retrouvées et leur emplacement en mémoire. Avec ces informations, l’attaquant peut réaliser une procédure de correction d’erreurs largement accélérée. En effet, l’étude a montré que ces erreurs étaient bien souvent prévisibles.

 
Ces techniques peuvent être utilisées séparément ou de manière combinée. Lorsqu’elles sont combinées, l’attaque peut être très puissante en permettant par exemple de récupérer des clés de chiffrement même si le taux d’erreur constaté au départ est important (jusqu’à 50%).

Au lieu d’essayer de récupérer directement les clés de chiffrement, la plupart des méthodes se concentrent sur les valeurs dérivées de ces clés telles que les « key schedule » (sous-clés temporaires générées lors d’une opération de chiffrement) qui ont une plus forte probabilité de redondance en mémoire. Pour des raisons de performance, beaucoup d’applications précalculent ces valeurs et les gardent en RAM tant que la clé de base elle-même est utilisée. Par exemple, pour reconstruire une clé AES, l’attaque consiste à traiter les « key schedule » récupérés comme des codes de correction d’erreur et à retrouver la clé de chiffrement la plus probable à partir de ces sous-clés.

Le calcul préalable des sous-clés ou d’une manière plus générale la conservation des clés en mémoire vive posent un réel problème : le compromis entre les performances et la sécurité. Les bonnes pratiques auraient tendance à dire que les logiciels doivent effacer les clés de la mémoire lorsqu’elles ne sont plus utilisées mais cela n’est pas toujours réalisable en particulier quand la même clé est utilisée de manière répétitive. Deux exemples fréquents sont d’une part le cas du disque crypté, pour lequel la clé de base doit rester disponible pour permettre l’accès aux fichiers, et d’autre part le cas d'un serveur Web SSL pour lequel la clé privée RSA doit être accessible pour permettre l’établissement de nouvelles sessions.

 

Analyse du risque encouru

Evaluation du risque

Le risque associé à cette attaque dépend très fortement des mesures de sécurité physique dont bénéficient les équipements informatiques. Comme l’attaque demande à un moment donné d’avoir accès physiquement à la machine victime, il est évident que les ordinateurs portables qui sont souvent transportés d’un lieu à un autre sont plus vulnérables que les ordinateurs de bureau. Donc, les politiques de sécurité physique doivent probablement être revues pour prendre en compte ce type de menaces, en particulier si elles considèrent que les solutions de chiffrement de disque garantissent la confidentialité des données sur les ordinateurs.

 

Evaluation de l’impact

Le phénomène de rémanence de la RAM permet potentiellement à une personne malveillante de récupérer l’intégralité des données qui y sont stockées lorsqu’un ordinateur est en fonctionnement. Cette affirmation nous mène à penser que toutes les données confidentielles stockées en mémoire vive sont exposées quand par exemple un ordinateur portable est laissé quelque part sans aucune mesure de protection physique. L’attaque peut être menée à bien sur un ordinateur sous tension, même si celui-ci affiche une demande de mot de passe pour être déverrouillé et même si celui-ci est en veille.

L’étude de l’université de Princeton évoque plusieurs exemples de données critiques qui peuvent être récupérées en mémoire vive :

  • Les clés de chiffrement de BitLocker, permettant à l’attaquant de lire l’intégralité des données sauvegardées sur un disque crypté avec cette solution.
  • Les clés de chiffrement de TrueCrypt, permettant à un attaquant de lire toutes les données stockées sur un disque dur chiffré avec cette solution, mais permettant également de récupérer les données de tous les disques virtuels montés avec cette solution lorsque l’attaquant obtient un accès physique à la machine.
  • Les clés de chiffrement de FileVault, permettant à une personne malveillante de lire toutes les données sur un disque chiffré avec cette solution sur les systèmes MacOS X.
  • Les clés de chiffrement de dm-crypt, permettant à un attaquant d’extraire les données d’un disque crypté avec cette solution dans les environnements Linux.
  • Les mots de passe utilisateur sous MacOS X.
  • Les clés privées d’un serveur Apache utilisant SSL.

 

Mais on peut facilement imaginer d’autres types de données stockées en RAM lorsqu’un ordinateur est en fonctionnement :

  • Les e-mails ou les documents ouverts au moment ou l’ordinateur est verrouillé,
  • Les pages Web affichées dans un navigateur même quand il s’agit d’une connexion SSL,
  • Les clés de chiffrement DRM (Digital Right Management),

 

Recommandations

Il est difficile de se protéger contre les attaques visant à faire une image de la RAM pour récupérer des clés de chiffrement, car ces clés doivent bien être stockées quelque part lorsqu’elles sont souvent utilisées. Les solutions de chiffrement de disque ainsi que des logiciels manipulant des données sensibles devraient effacer ces données lorsqu’elles ne sont plus utilisées. Mais comme mentionné précédemment, cela n’est pas toujours possible pour des raisons de performance. De plus, le rapport montre que l’utilisation de sous-clés précalculées dans le but d’accélérer les opérations de chiffrement rend les clés elles-mêmes plus vulnérables. En effet, le précalcul de valeurs dérivées des clés de chiffrement tend à multiplier les informations relatives à ces clés en mémoire, ce qui aide grandement l’attaquant dans sa reconstruction de ces dernières, même lorsque la mémoire présente un taux d’erreurs élevé.


La plupart des mesures suggérées par l’étude de l’université de Princeton se focalisent sur les points suivants :

  • L’effacement ou la dissimulation des clés de chiffrement avant qu’une personne malveillante puisse avoir accès à la machine,
  • La possibilité d’interdire sur une machine l’exécution de logiciels permettant de faire une image de la mémoire,
  • La possibilité de protéger physiquement les composants mémoire,
  • Enfin, la possibilité de créer des composants dont la rémanence est extrêmement faible.

 
Voici quelques mesures pratiques pouvant être mises en place facilement et permettant de rendre l’attaque plus difficile à réaliser :

  • Les PCs peuvent souvent être configurés pour faire un test et un effacement de la RAM avant de lancer le système d’exploitation. Cette fonctionnalité est souvent appelée « Quick Boot » dans le BIOS. Désactiver l’option « Quick Boot » dans le BIOS forcera la machine à faire un test et un effacement de la mémoire. Si l’attaquant n’a pas la possibilité d’enlever la barrette de mémoire de la machine, il ne pourra pas exécuter un logiciel d’image mémoire sur cette machine.
  • La plupart des attaques impliquent de démarrer un système d’exploitation personnalisé à partir d’un périphérique amovible ou via l’utilisation du réseau. Les ordinateurs peuvent généralement être configurés pour demander un mot de passe administrateur pour démarrer à partir de ces sources. Si cette fonctionnalité n’est pas présente dans le BIOS, il est toujours possible de supprimer tous les médias amovibles de la séquence de démarrage puis de définir un mot de passe d’administration du BIOS empêchant ainsi toute modification non autorisée. On peut cependant noter qu’un attaquant ayant un accès physique à la machine pourra toujours réinitialiser la mémoire NVRAM (Non Volatile RAM) pour restaurer les paramètres par défaut du BIOS et ainsi réactiver le démarrage à partir de sources externes.
  • Suspendre le système de manière sûre. Les résultats de l’étude montrent que verrouiller l’utilisation de l’ordinateur (par exemple laisser l’ordinateur allumé avec un écran demandant le mot de passe de l’utilisateur pour être déverrouillé) ne protège pas le contenu de la mémoire vive. Suspendre le fonctionnement d’un ordinateur portable en le mettant en veille n’est pas plus efficace, la RAM restant dans c cas-là sous tension. Mettre un ordinateur en veille prolongée (hibernation) n’est efficace que si un mot de passe est immédiatement demandé lorsqu’on rallume le système.
  • Avec la plupart des solutions de chiffrement de disque, les utilisateurs sont protégés lorsqu’ils arrêtent complètement leur machine quand elle n’est pas utilisée. Les données peuvent persister en mémoire quelques temps après l’arrêt du système, l’utilisateur devrait en théorie garder un œil sur la machine une ou deux minutes après son extinction. Cette recommandation n’est pas valable pour les systèmes utilisant BitLocker et s’appuyant sur le composant matériel TPM (Trusted Platform Module) pour conserver les informations cryptographiques car dans ce cas-là, la clé de chiffrement du disque principal est chargée en mémoire avant même le démarrage de Windows.


Plusieurs vendeurs de solution de chiffrement de disque ont réagi suite à la publication de cette étude par l’université de Princeton. Microsoft et PGP par exemple ont publié des avis de sécurité spécifiques et des recommandations concernant leurs logiciels (voir les liens dans le paragraphe « pour plus d’information »).

 

Pour plus d’informations

Toutes les pages référencées ci-dessous sont écrites en langue anglaise.