De nos jours, la sécurité est une priorité pour tout le monde. Les microcontrôleurs et les systèmes sur puce de nos jours sont conçus avec des capacités de sécurité. Cependant, la mémoire Flash série a été généralement plus exposée aux pirates. Ce papier blanc explique comment la mémoire Flash d'authentification peut être associée de manière unique et sécurisée à un contrôleur hôte autorisé pour empêcher le vol de propriété intellectuelle.
Flash d'authentification : résolution du problème de sécurité laissé par les circuits imprimés Flash NOR conventionnels
En réponse à la demande des fabricants OEM soucieux de la sécurité, les fabricants de microcontrôleurs et de systèmes sur puce (SoC) dotent généralement leurs produits d'une large variété de capacités de sécurité : les microcontrôleurs 32 bits standard prêts à l'emploi pour des applications financières courantes disposent souvent aujourd'hui d'un accélérateur cryptographique matériel, d'un générateur de nombre aléatoire et des emplacements de mémoire sécurisés.
Mais la mémoire Flash série, l'emplacement où la majeure partie de la précieuse propriété intellectuelle d'un fabricant est stockée est généralement plus vulnérable qu'un SoC ou qu'un microcontrôleur. Les points faibles de sécurité dans la mémoire Flash d'un MCU ou d'un SoC exposent les fabricants OEM à des risques de vol de produit, pénalisant sur le plan commercial, à cause du clonage des conceptions de carte à circuit imprimé d'ingénierie inversée. Cet article explique comment la mémoire Flash d'authentification peut être associée de manière unique et sécurisée à un contrôleur hôte autorisé.
La faille de sécurité actuelle
Une exigence de sécurité fondamentale pour tout fabricant OEM réputé est d'empêcher la possibilité de voler ou de cloner la propriété intellectuelle d'un fabricant OEM, y compris le code d'application qui est stocké dans la mémoire Flash NOR série externe.
La majeur partie de la valeur intégrée dans un produit final électronique n'est, bien sûr, pas un secret. Prenez l'exemple d'un thermostat IoT domestique intelligent : une analyse du démontage laborieux de l'assemblage de la carte d'un thermostat permettra d'identifier avec précision tous les composants et de reproduire fidèlement la disposition de la carte par n'importe quelle usine qui souhaite cloner le produit. La conception matérielle n'est pas un secret.
Le code de l'application est secret, ou il devrait l'être en tout cas. Un système électronique, cependant, est aussi solide que son lien le plus faible. De nos jours, le SoC ou MCU principal est normalement fortement protégé par des capacités de chiffrement, d'anti-altération et de stockage sécurisé implémenté dans le matériel et le logiciel. Donc si un pirate souhaite cloner le code d'application du produit, son point d'entrée le plus probable est un circuit de carte mémoire Flash externe.
Pour cette raison, les fabricants d'aujourd'hui « protègent » généralement leur matériel de stockage de code avec un identifiant unique (UID) stocké dans l'espace mémoire partitionné dans le circuit imprimé Flash. Mais en toute honnêteté, un UID offre juste une barrière insignifiante aux attaques. N'importe quel ingénieur avec des connaissances en sécurité sera capable de situer et d'identifier son UID, puis de désactiver facilement l'association entre le MCU et le matériel de stockage du code. Une fois que l'association est supprimée, la base sécurisée du fabricant OEM est brisée. Le code stocké sur le dispositif peut être copié et le clonage de la conception du thermostat peut réellement commencer.
La faiblesse dans ce système de sécurité Flash est que l'UID même n'est pas sécurisé. C'est un numéro de code immuable, permanent : une fois lu hors de la mémoire, il peut être utilisé de nouveau par un hôte non autorisé.
La solution : une authentification dynamique et sécurisée
Le remède à ce problème est facile à concevoir en théorie : l'UID doit être différent chaque fois que la mémoire est confrontée à l'hôte. Mais l'avantage du UID fixe utilisé aujourd'hui est sa facilité d'implémentation : il doit juste être programmé une fois dans la mémoire Flash et une fois dans le contrôleur hôte. Ensuite, les deux valeurs peuvent simplement être comparées pour authentifier le dispositif Flash.
Comment la réponse à une confrontation de l'hôte peut donc être différente chaque fois, tout en étant reconnue par l'hôte ?
Chiffrement symétrique de l'ID de mémoire
Voilà le problème que Winbond a décidé de résoudre avec sa gamme W74M de circuits imprimés Flash d'authentification (voir la Figure 1). Winbond est plus connu pour son large portefeuille de circuits imprimés Flash NOR et NAND série : c'est le premier producteur au monde de mémoire Flash série, détenant environ 30 % des parts du marché. En 2016, Winbond a expédié 2,1 milliards d'unités de ses circuits imprimés Flash série SpiFlash®.
Dorénavant, elle aborde aussi les problèmes auxquels les clients font face avec la vulnérabilité de sécurité dans la portion de mémoire Flash de leurs conceptions : c'est la raison de l'introduction de la gamme W74M. La méthode de base par laquelle Winbond sécurise l'identité d'une mémoire passe par le chiffrement symétrique : l'hôte et la mémoire connaissent tous les deux le même secret, une « clé racine ».
Fig 1 : l'architecture du paquet à plusieurs puces W74M
Cependant, la clé racine n'est jamais directement transmise entre l'hôte et la mémoire (le « challenger » et le « répondant »). À la place, un message chiffré (un code HMAC) est généré en combinant la clé racine et un élément dynamique comme un numéro aléatoire. Cette combinaison est alors traitée par un algorithme de chiffrement, le SHA-256. SHA-256 est un algorithme de hachage sécurisé avec une taille d'empreinte de 256 bits, une fonction de hachage cryptographique publiée par l'institut NIST américain en tant que standard FIPS. C'est une fonction cryptographique utilisée pour le traitement de transactions financières et elle est généralement considérée comme étant impossible à briser en pratique.
Voir les produits connexes
Pour authentifier la mémoire W74M, le contrôleur hôte compare la valeur du code HMAC de la mémoire par rapport à la valeur qu'il calcule en utilisant sa clé racine et le même numéro aléatoire traité par l'algorithme SHA-256. Si les valeurs correspondent, les opérations de mémoire normale peuvent continuer.
Parce que le code HMAC est généré en partie par un élément dynamique, tel qu'un numéro aléatoire, la valeur du code est différente chaque fois qu'il est généré. Cela signifie que les attaques contre une mémoire Flash avec un UID fixe conventionnel qui réussissent, comme décrit ci-dessus, échouent lorsqu'elles ont lieu contre une mémoire W74M. Et la fonction SHA-256 étant tellement sécurisée, il n'y a en pratique aucun risque qu'un pirate soit capable de déchiffrer le code HMAC pour révéler la valeur de la clé racine.
La Figure 1 montre aussi deux autres caractéristiques intéressantes du W74M. Tout d'abord, le compteur monotone non volatile fournit une vérification supplémentaire de l'authenticité de la mémoire. Le compteur commence à zéro lorsque la clé racine est établie et un seul incrément est ajouté en réponse à une commande émise par le contrôleur hôte. Cela signifie que le compteur a une valeur unique connue seulement de la mémoire et de l'hôte. Si la valeur du compteur fournie par la mémoire lorsque confrontée par l'hôte ne correspond pas à la valeur du compteur de l'hôte, la valeur du code HMAC de la mémoire ne sera pas la même que celle calculée par l'hôte. Cela indique alors au processeur hôte que le dispositif d'authentification W74M a été altéré.
Voir les produits connexes
Le processeur peut utiliser cette information pour protéger le système hôte, par exemple en empêchant le dispositif qui a été altéré d'avoir accès aux ressources du système hôte. Cela évite le risque qu'un pirate remplace l'unité W74M montée sur la carte par le fabricant OEM par un W74M différent afin de le détourner.
Cette capacité de protection est pertinente pour la deuxième caractéristique de la note affichée dans la Figure 1 : il y a quatre instances de la combinaison de clé racine/HMAC/compteur monotone dans chaque dispositif W74M. Une instance sera utilisée pour une authentification du contrôleur du dispositif hôte. Les trois autres « canaux » d'authentification sont destinés à être utilisés par exemple dans les dispositifs IoT qui doivent vérifier leur identité afin d'obtenir l'accès aux services en réseau (voir Figure 2). Comme indiqué ici, une clé racine différente peut être stockée de manière sécurisée pour chaque canal d'authentification et partagée avec le dispositif hôte approprié. Cela signifie que les racines clé du dispositif hôte, de la passerelle Internet et du service Cloud restent secrètes : un dispositif n'a pas connaissance de la clé racine d'un autre dispositif.
Fig 2 : authentification à plusieurs couches activée par le W74M
Cette capacité d'authentification à plusieurs couches peut également être utilisée dans un système complexe tel qu'un drone, qui est composé de nombreux éléments. Un dispositif W74M dans un de ces éléments peut être utilisé pour authentifier :
– le processeur principal du drone
– le module de batterie amovible
– la télécommande
– une caméra
L'authentification chiffrée et sécurisée permet au fabricant de drones de garantir que seules des caméras et des batteries de rechange de marque peuvent être utilisées et empêche la possibilité qu'une télécommande non autorisée perturbe le drone en vol.
Implémentation sécurisée
Comme décrit ci-dessus, les fonctions cryptographiques du M74W sont extrêmement sécurisées. De plus, les clés racine sont stockées dans l'espace mémoire OTP qui ne peut pas être lu par un dispositif externe.
Le dispositif W74M lui-même est alors sécurisé intrinsèquement. L'implémentation sécurisée nécessite aussi un provisionnement sécurisé pour garantir que les clés racine programmées dans chaque unité W74M et contrôleur ou SoC hôte en production restent le secret du fabricant OEM. Cela dépend normalement des propres processus d'approvisionnement et de production du fabricant OEM bien que Winbond puisse, de manière facultative, prendre en charge l'approvisionnement de la clé racine du W74M au nom du client.
La gamme W74M des dispositifs Flash d'authentification est disponible dans diverses densités de 32 Mo à 1 Go, dans des paquets standard. Cela signifie que les conceptions de dispositif sécurisées qui, aujourd'hui, intègrent un circuit imprimé Flash NOR/NAND pour le stockage de code et un circuit imprimé d'authentification externe peuvent remplacer ces deux puces par un seul paquet W74M qui s'adapte dans une prise Flash standard. Cela permet de réduire le nombre de composants et le coût de la nomenclature tout en fournissant le niveau de sécurité le plus élevé d'authentification.
Le W74M est également disponible en tant que dispositif d'authentification à plusieurs couches pur, sans capacité de mémoire Flash NOR, avec les numéros de référence W74M00AVSSIG et W74M00AVSNIG.
Par CS Lin
Directeur marketing, Winbond Electronics Corporation America