Le TSEC (Tegra Security Co-processor) est un contrôleur utilisé dans la plupart des appareils Tegra, y compris la Switch. Comme de nombreux autres contrôleurs présents dans les périphériques Tegra, il est alimenté par un microprocesseur Falcon, mais avec des capacités de cryptage supplémentaires (via le SCP).
Sur la Switch, outre le protocole HDCP, le TSEC est utilisé dans le processus de démarrage de la console en fournissant une source supplémentaire de sécurité pour la dérivation de clés. Depuis le firmware 6.2.0, le rôle de TSEC a été étendu afin de retrouver une chaîne de démarrage sécurisée, car l'exploit de la RCM l'avait détruite.
Lorsque la version 6.2.0 a été proposée, les développeurs ont pu vaincre TSEC à l'aide du SMMU de Tegra. Cela a fonctionné en faisant croire à TSEC que le système fonctionnait dans un environnement sécurisé tout en contrôlant parfaitement le contenu de la mémoire. Dans ce cas, le TSEC lui-même n'a pas été compromis.
Ensuite, la solution pour la version 7.0.0 a été d'introduire un payload TSEC capable de contourner entièrement la SMMU en exploitant un canal de communication masqué entre TSEC et le contrôleur de mémoire de Tegra. Cela nécessitait une exploitation effective du TSEC, qui a finalement permis d'obtenir les clés nécessaires.
hexkyz rajoute que cet exploit spécifique ne fonctionnerait que dans certaines circonstances (qui ne seront pas détaillées pour des raisons évidentes). Bien que les clés 7.0.0 puissent être extraites de cette manière, les clés 6.2.0, par exemple, ne le pourraient pas (aussi bizarre que cela puisse paraître).
De ce fait, il était incertain que les clés des futures mises à jour puissent être extraites ou non ... Jusqu'à maintenant. Il a trouvé un défaut de conception critique il y a quelques semaines et après une brève session d'échanges avec SciresM, ils ont pu effectuer le schéma de cryptage du TSEC. Cela signifie que tous les contrôleurs basés sur Falcon v5 (et potentiellement avant ou même après) sont vulnérables, au niveau matériel, nous permettant d'extraire les futures clés nécessaires !
Depuis plus d'un an, Janvier 2018, il travaille sur des attaques sur le TSEC, mais avec l'aide qlutoo, shuffle2, SciresM et elmirorac, il a pu trouver et exploiter plus de 5 bugs différents qui se sont révélés cruciaux pour casser la sécurité du TSEC. La console qui fête aujourd'hui ses 2 ans a encore pas mal de plaisir à offrir aux développeurs.