Format Oracles on OpenPGP

Publié le 06 Mai 2015 Mis à jour le 06 Mai 2015

Auteurs : Florian Maury, Jean-René Reinhard, Olivier Levillain et Henri Gilbert (ANSSI)

Conférence  CT-RSA 2015, 20-24 avril 2015, San-Francisco.

Le principe des attaques par oracles de « padding » est bien connu de la communauté des chercheurs en cryptographie, depuis 1998. Ce principe a depuis été généralisé afin d'exploiter tout type de propriétés du résultat du déchiffrement, qu'elles soient liées à la procédure de chiffrement, ou au format des données de la couche applicative. Si ce type d'attaques est connu, son exploitabilité est cependant encore démontrée maintes et maintes fois sur des protocoles standardisés et des applications déployées en production. Ceci peut être attribué à plusieurs facteurs, comme le besoin de compatibilité ascendante avec des standards employant des mécanismes favorisant la mise à disposition d'oracles, la difficulté d'implanter de manière sûre les opérations de déchiffrement, ou encore l'usage maladroit de bibliothèques cryptographiques par des développeurs insuffisamment informés.

Dans cet article, nous présentons plusieurs oracles de format, découverts dans des bibliothèques et programmes autonomes implantant le format de messages OpenPGP, y compris dans l'outil populaire de défense de la vie privée GnuPG. Nous démontrons que si un attaquant peut accéder à ces oracles, par exemple par l'entremise d'une interface lui étant exposée, ce dernier est en mesure, en faisant appel de manière répétée à ces oracles, de décrypter tout message chiffré symétriquement à l'aide d'OpenPGP. La complexité asymptotique de ces attaques varie de 2 à 256 requêtes aux oracles par octet de clair à recouvrer.