Nous faisons des virements sur nos applications bancaires, effectuons des transactions sans contact, enregistrons nos performances sportives en transmettant des données personnelles … Finalement, nos téléphones en connaissent beaucoup sur nos vies.
Cet accroissement de fonctionnalités nous révèle un triste constat : notre vulnérabilité face aux menaces de piratage. Il existe aujourd’hui une multitude de solutions pour un hacker d’accéder à nos fonctions et données qui nous sont si précieuses. « Man in the middle[1] », « poisoning app », « data modification attacks », « eavesdropping threats [2] », industrialisation des attaques.
Des termes qui nous semblent sortir tout droit d’une série télévisée telle que « Mr.Robot [3] » mais qui finalement représente un véritable danger. Pour simplifier, un hacker peut orienter son attaque via différents angles : une faille matérielle, réseau, protocolaire ou bien tout simplement applicatif.
Pour résoudre ou du moins réduire de façon drastique les risques de sécurité, la société ARM[4], un des leaders mondiaux dans la réalisation de chips, a réalisé la TrustZone[5]. La TrustZone est une technologie matérielle qui donne la possibilité au SoC[6] ainsi que la mémoire vive de pouvoir être virtualisée/compartimentée en plusieurs. Cela afin de proposer N environnements, 1 non sécurisé et n-1 sécurisés. Chaque App sollicitant le TEE aura son propre environnement sécurisé.
Le premier environnement sera disponible en tant que REE (Rich Execution Environment) qui permettra d’utiliser les fonctionnalités standards. Ensuite les environnements suivants seront disponibles en tant que TEE (Trusted Execution Environment).
Ces derniers proposeront un environnement sécurisé permettant d’exécuter des fonctions sensibles et de stocker des informations confidentielles tel que des DRM[7] pour une application proposant du multimédia, une fonction de paiement pour une application bancaire, etc.
Si nous prenons l’exemple basique d’une banque souhaitant améliorer la sécurité à l’accès de son application (protection de la saisie du PIN et affichage de l’identifiant). L’utilisateur lancera son application bancaire via l’environnement non sécurisé (REE). Cette application bancaire sollicitera des fonctions se trouvant dans le TEE (sécurisé) pour l’affichage et la saisie du code de connexion. Suivi de cela, le TEE exécutera les fonctions de cryptage de données.
Ces données cryptées sortiront de la zone TEE et partiront via le modem au serveur de la banque. A son tour la banque retournera une information cryptée qui sera à son tour décryptée par le TEE avec ses clés se trouvant dans sa zone sécurisée et enfin l’utilisateur sera connecté à son application bancaire si la réponse de la banque est positive pour une connexion.
L’avantage indéniable de cette technologie est que 90% des SoC des smartphones sont fabriqués par ARM, donc compatibles. Son désavantage est qu’il reste inférieur en terme de sécurité par rapport au Secure Element tout en restant cependant honorable. Son faible coût et son excellente expérience utilisateur peut faire balancer le choix en sa faveur suivant l’usage.
Il est bon de noter qu’actuellement AMD, Intel et MIPS [8] tentent aussi de proposer des solutions pour le TEE mais ils restent à la marge sur le marché (- de 10%) ainsi que la solution d’ARM fonctionne uniquement avec Android.
[1] https://fr.wikipedia.org/wiki/Attaq...
[2] https://msdn.microsoft.com/en-us/li...
[3] http://www.allocine.fr/series/fiche...
[5] http://www.arm.com/products/process...
[6] https://fr.wikipedia.org/wiki/Syst%...