La puce TPM dans le kit de développement Intel

Récemment, je suis tombé sur un sujet en deux parties sur un excellent blog qui explique un peu la genèse de Mac OS X sur la plateforme Intel. Et qui explique comment le kit de développement utilisait la puce TPM intégrée.

C’est un sujet déjà évoqué ici : les premiers Mac Intel (le kit de développement et les Mac en Core Duo) intégraient une puce TPM, souvent utilisée pour stocker des clés cryptographiques. Dans les Mac du commerce, Apple n’utilisait pas la puce (elle a d’ailleurs été retirée rapidement), mais le DTK, lui, en avait besoin.

Apple avait mis en fait trois sécurités basiques dans son OS pour empêcher l’installation sur n’importe quel PC. Premièrement, Mac OS X Tiger utilisait les instructions SSE3, ce qui restait assez rare en 2005. Deuxièmement, Mac OS X n’intégrait des pilotes que pour quelques composants assez rares (ICH6, HD Audio, etc.). Troisièmement, il y avait la puce TPM.

Les deux premières sécurités sautaient assez facilement avec le bon CPU et le bon matériel, et dans le pire des cas Darwin – la version open source du noyau de Mac OS X – contenait des pilotes pour pas mal de trucs (PS/2, AC’97, les contrôleurs de disques, etc.). Visiblement, le seul programme qui utilisait le pilote TPM d’Apple (AppleTPMACPI.kext) était Rosetta, l’émulateur de PowerPC intégré dans Mac OS X. Et un composant essentiel de l’OS lié à l’interface (ATSServer) n’était disponible qu’en version PowerPC alors que le reste de l’OS avait été compilé pour les puces Intel. Sans lui, l’OS ne pouvait pas démarrer avec l’interface graphique. La solution a donc été de simplement modifier les quelques instructions faisant appel à la puce TPM pour démarrer Mac OS X sur un PC classique. Visiblement, le programme a été gardé en version PowerPC jusqu’à la fin pour éviter le piratage.

Un composant utilise Rosetta (image de chez /www.os2museum.com, j’avais la flemme d’allumer le mien)

A l’arrivé des premiers Mac Intel, d’autres protections sont apparues, la principale étant le passage d’un BIOS dans le kit de développement à un EFI propriétaire dans les Mac. Mais globalement, Apple n’a jamais vraiment empêché Mac OS X de tourner sur un PC. Mais Apple n’a jamais vraiment non plus prévu de le faire, ce qui explique les nombreuses bidouilles nécessaires pour les hackintosh.