Le standard P1735 de l’IEEE pour le chiffrement et la gestion de la propriété intellectuelle des conceptions électroniques est une passoire

En électronique comme ailleurs, aucune entreprise ne peut se permettre de réinventer la roue.

Quand on créé un système sur une puce, on achète des licences sur des parties spécifiques, comme des puces de communication sans fil, des décodeurs ou des encodeurs sons ou vidéo, des contrôleurs de périphériques, qu’on intègre à la conception finale en plus de sa propre logique et ses propres processeurs.

Bien évidemment, ces détenteurs de propriété intellectuelle ne souhaitent pas qu’un tiers puisse la voler par rétro ingénierie et par simple observation de la puce.

C’est pourquoi en septembre 2015, l’Institut des ingénieurs électriciens et électroniciens (IEEE) a publié le standard P1735-2014 sur la pratique recommandée pour le chiffrement et la gestion de la propriété intellectuelle des conceptions électroniques.

Une équipe de l’Université de Floride a découvert des erreurs surprenantes de chiffrement, et de nombreuses failles de sécurité dans le standard, et publié un article de recherche ce mois-ci.

‘Surprenante’ est le terme poli des chercheurs pour qualifier des erreurs qui n’auraient pas dû apparaître, avec des études de plus de dix ans prouvant l’inefficacité de telle technique ou la faiblesse de telle autre. D’où le nom du papier : Standardizing Bad Cryptographic Practice : Standardisation de mauvaises pratiques de chiffrement.

En utilisant des vecteurs d’attaques connus comme le padding-oracle attack, il est possible de récupérer l’ensemble de la propriété intellectuelle en clair sans connaître aucunement la clé de chiffrement.

Pire encore, les chercheurs ont montré qu’il était possible de produire des textes chiffrés conformes au standard, conçus pour intégrer des logiciels malveillants dans le matériel.

L’équipe recense les faiblesses suivantes :

  • Pas de confidentialité de la protection ; Il faudrait utiliser un autre schéma de remplissage pour le mode Enchaînement des blocs (CBC) ou le remplacer par un autre mode qui ne nécessite pas de remplissage ;
  • Pas de protection de l’intégrité. L’équipe a réussi à implanter un cheval de Troie ;
  • Mécanisme détraqué de licence par procuration: comme P1735 définit l’utilisation du même vecteur d’initialisation pour tous les messages d’une même connexion, on peut demander et obtenir de multiples licences lors d’une seule connexion.

Au total, 9 vulnérabilités sont recensées :

  • CVE-2017-13091 : improperly specified padding in CBC mode allows use of an EDA tool as a decryption oracle.
  • CVE-2017-13092 : improperly specified HDL syntax allows use of an EDA tool as a decryption oracle
  • CVE-2017-13093 : modification of encrypted IP cyphertext to insert hardware trojans.
  • CVE-2017-13094 : modification of the encryption key and insertion of hardware trojans in any IP.
  • CVE-2017-13095 : modification of a license-deny response to a license grant.
  • CVE-2017-13096 : modification of Rights Block to get rid of or relax access control.
  • CVE-2017-13097 : modification of Rights Block to get rid of or relax license requirement.

Tout le gratin de l’industrie des semi-conducteurs en a été informé par l’US CERT : AMD, Cisco, IBM, Intel, Qualcomm, Samsung, etc.

S’il est possible de limiter les risques dans certains cas, il faudra attendre une refonte profonde du standard pour les supprimer tous.