Le groupe Google a développé une famille de puces de sécurisation Titan que l'on peut retrouver dans certains de ses équipements en datacenter pour rajouter des couches de sécurité, notamment jusqu'au niveau hardware.

Ces composants ont trouvé place dans les nouveaux smartphones Google Pixel 3 et Pixel 3 XL sous la forme d'une puce dédiée Titan M dont la fime décrit les fonctionnalités dans plusieurs billets de blog.

Titan M reprend une partie des attributs des puces Titan pour serveurs en agissant à plusieurs niveaux. Il vérifie par exemple que le démarrage de l'appareil mobile se fait avec un firmware validé et non vérolé par des programmes malveillants. Cela pourra toutefois aussi avoir des conséquences négatives pour les amateurs de ROM custom et de personnalisation avancée.

Google Titan M

A gauche, puce Titan pour serveurs, à droite Titan M

Le puce Titan M se charge également de limiter le nombre d'essais possibles pour deviner le mot de passe d'un smartphone verrouillé ou encore de mieux sécuriser la mémoire flash contenant les données chiffrées.

La sécurité des transactions et des liens de confiance au sein d'Android est également supervisée par la nouvelle puce de Google, notammnent avec les nouvelles APIs de renforcement de sécurité introduites avec Android 9.0 Pie.

Google précise qu'il ne s'agit pas seulement d'un nouveau microcontrôleur surveillant les couches hautes du système mais bien d'un dispositif pensé pour protéger les appareils mobiles jusqu'à leurs circuits électriques, dans un souci du sécurisation s'étendant jusqu'aux chaînes d'approvisionnement et à la production (histoire aussi d'écarter les doutes autour de la présence de puces espionnes ajoutées dans les lignes de production).

Le composant Titan M est constitué d'un microprocesseur ARM Cortex-M3 associé à 64 Kb de RAM constamment alimentée, avec des protections destinées à détecter des anomalies susceptibles de signaler des tentatives d'attaque. Il supporte l'AES et le SHA et embarque un coprocesseur de traitement des algorithmes avec clé publique.

Il exploite également un générateur de nombres aléatoires TRNG (True Random Number Generator) censé ne pas permettre de prédire les valeurs produites pour ses clés internes, qui ne sortent pas du composant.