Nicolas SURRIBAS

Développement / Réseau / Sécurité Informatique

La vrai fausse backdoor dans le chiffrement des disques durs par PGP

Rédigé par devloop - -

Il y a quelques jours, le blog Securology a publié un article traitant d'une fonctionnalité peu connue du logiciel de chiffrement de disque PGP Whole Disk Encryption (WDE) qui a provoqué quelques réactions "trollesques"...

Avant d'entrer dans le vif du sujet, il est bon de connaître à quoi sert PGP WDE et un résumé simple de son fonctionnement.
PGP Whole Disk Encryption permet, comme son nom l'indique, de chiffrer la totalité d'un disque dûr, c'est à dire : les différentes partitions, le (ou les) système(s) d'exploitation et le secteur de boot (Master Boot Record).
Quand un poste disposant de cette technologie est allumé, il boote d'abord sur du code de PGP qui va demander la saisie d'un mot de passe au clavier par l'utilisateur.
Par une suite de différents calculs cryptographiques, ce mot de passe va permettre au final le déchiffrement des données.

Dans les étapes utilisées pour arriver au lancement du système d'exploitation, la première est la déchiffrement d'une clé qui a été cryptée à l'aide du mot de passe de l'utilisateur.
Cette méthode est très utilisée, notamment pour la cryptographie à clé publique : pour éviter que la clé secrète soit compromise en cas d'intrusion et/ou de vol de données, celle-ci n'est pas stockée en clair sur le disque mais stockée chiffrée par un algorithme de chiffrement symétrique.
Ce procédé est nommé S2K / K2S (string-to-key et vice-versa), il est par exemple documenté dans la RFC 2440 : OpenPGP Message Format (chapitres 3.6.*, c'est dans la même RFC que l'on trouve une explication sur le Radix-64).

On pourrait penser que la clé déchiffrée est celle utilisée pour le déchiffrement, mais il n'en est rien. Il y a une seconde étape qui permet à partir de cette clé d'accèder à la clé maître (master key) avec laquelle le chiffrement a été utilisé.
L'objectif de ce second procédé et de permettre à différents utilisateurs de déchiffrer le disque, chacun utilisant un mot de passe différent (si j'ai bien tout compris)

Maintenant que vous connaissez (vaguement) le fonctionnement du système, il est temps de parler de la fonctionnalité baptisée "Whole Disk Encryption (WDE) Bypass".
Le nom est celui donné par PGP et est suffisament explicite : il permet de passer oûtre la saisie d'un mot de passe pour déchiffrer les données.

A quoi sert exactement cette fonctionnalité ? Elle permet aux administrateurs de faire redémarrer les machines dont le disque est chiffré par WDE.
Partons du principe que vous êtes un administrateur d'un parc réseau avec des machines ultra-sécurisées et que vous avez besoin d'effectuer différentes taches qui seront validées lors du redémarrage de la machine.
Vous lancez l'opération et vous attendez sagement que vos machines redémarrent pour continuer à travailler. Sauf que... les machines ne redémarrent pas !
En effet le système d'exploitation ne s'est pas lancé car personne n'est devant le poste pour saisir le mot de passe de déchiffrement et par conséquent la couche réseau de l'OS n'est pas disponible. Vous voilà obligé de faire le tour des machines et de saisir chaque mot de passe de déchiffrement pour remettre votre réseau en marche.

C'est là qu'intervient la fameuse fonctionnalité "bypass". Quand elle est activée, elle va stocker sur le disque une nouvelle clé de chiffrement dérivée de la master key ainsi qu'un flag disant à WDE d'utiliser cette clé automatiquement au prochain démarrage du poste. Cette clé est cryptée par le procédé S2K par un mot de passe fixe (valeur hexadécimale 0x01).

Donc :
  • l'administrateur lance ses taches sur les machines
  • il active le WDE Bypass
  • il redémarre les postes
  • WDE utilise la clé de bypass pour démarrer les postes
  • WDE supprime les données de bypass qui ont été placées sur le disque
  • les postes sont démarrés et accessibles par le réseau

Sur le principe c'est plutôt bien trouvé et c'est une fonctionnalité qui est semble très appréciée dans les entreprises (on peut comprendre). Le problème c'est que l'on baisse la sécurité du chiffrement à chaque utilisation du mode bypass : il suffit qu'un intrus subtilise une machine entre le moment de l'éteignage et celui du redémarrage pour disposer d'un disque sur lequel sont présentes toutes les informations nécessaires pour déchiffer le disque.

Le débat faire rage sur Slashdot entre ceux qui considèrent qu'il s'agit d'une backdoor et ceux qui défendent qu'il s'agit d'une fonctionnalité tout à fait normale.
En réalité quand j'essayais de comprendre le fonctionnement de tout ça, ça n'a pas été évident de trouver les commentaires de ceux qui se posaient les vrais questions sur Slashdot. Il faut dire que tout les articles sur le sujet sont en anglais et que ça ne facilite pas la tâche... heureusement c'est de l'écrit (j'ai eu l'occasion de parler anglais cet après midi et c'était l'enfer, en plus c'était une discussion avec un chinois)

Après avoir pesé le pour et le contre, mon opinion personnelle est que non, ce n'est pas une backdoor.
D'abord, bien que peu expliquée, cette fonctionnalité était citée dans la documentation. De plus PGP affiche une position claire sur cette fonctionnalité et a réagit en postant un commentaire sur le blog de l'auteur de l'article avant de donner des explications publiques.

Cependant cette fonctionnalité baisse considérablement la sécurité générale du chiffrement. Comme toujours en cryptographie, le niveau de sécurité d'un système est équivalent à celui de son mayon le plus faible. Ici on peut imaginer un malware qui active le WDE Bypass en vue d'une prochaine attaque physique, ou encore un code qui modifiera le fonctionnement du WDE... mais là on s'écarte sans doute trop du sujet.

Dans tous les cas pour activer cette fonctionnalité il faut un "cryptographic access" aux données, c'est à dire avoir des droits d'utilisateur sur la machine, c'est à dire... avoir accès aux données en clair.

En fin de compte ce qui gêne c'est que le WDE Bypass pourrait tout aussi bien être utilisé en douce, et q'une clé spéciale soit intégrée à l'installation du logiciel, chiffrée à l'aide d'une passphrase connue seulement par une certaine agence de sécurité nationnale.
Bref on en revient à la confiance que l'on donne aux développeurs des logiciels que l'on utilise. Mais c'est un procédé intéressant et je comptais bien vous faire profiter de ces articles.

Explication (simplifiée) de PGP WDE sur le site officiel (vidéo présente)
Un second article de Securology en réponse aux informations apportées par un représentant de PGP
Le premier article

Les commentaires sont fermés.