Quelle est la différence entre un Secure Element (SE), un Trusted Execution Environment (TEE) et un Trusted Platform Module (TPM)?
Je comprends qu'ils font tous référence à un cryptoprocesseur externe sécurisé, conçu pour stocker des clés cryptographiques et exécuter des algorithmes cryptographiques en toute sécurité. Y a-t-il des différences ou signifient-ils tous la même chose?
Commençons par disposer les différentes définitions:
Nous pouvons clairement voir en comparant les définitions que ces 3 éléments sont différents, mais partagent un objectif commun. La différence entre un TPM et un TEE réside principalement dans la façon dont il est implémenté (purement matériel ou combo matériel et logiciel). Le SE a une fonction différente qui peut faire partie de la fonction d'un TPM et/ou d'un TEE, en étant un endroit sûr pour stocker des secrets cryptographiques.
Un peu plus sur les aspects fonctionnels: - Le TPM est une fonctionnalité fixe et bien spécifiée par une norme ISO et TCG. Vous ne pouvez pas simplement ajouter ou modifier cela. Il s'agit généralement d'une puce de sécurité discrète connectée via SPI à l'hôte uC.
TEE est (comme expliqué par les affiches précédentes) un environnement d'exécution sur une puce/SoC plus grande, mais le code s'exécutant à l'intérieur de ce TEE est à la discrétion des développeurs. Il existe même des implémentations TPM qui s'exécutent à l'intérieur d'un TEE.
l'élément sécurisé (SE) désigne généralement (sans séparer les cheveux) une puce de sécurité discrète qui est connectée via une interface série à l'hôte uC. Sur le SE, vous trouverez généralement une implémentation JavaCard et, par conséquent, la fonctionnalité du SE dépend des applets qui sont chargées et exécutées.