XBOX, architecture et s ecurit e - MetaGames-EU
Transcription
XBOX, architecture et s ecurit e - MetaGames-EU
L XBOX, architecture et securite 1 Table des matieres 1 Presentation generale 1.1 1.2 1.3 1.4 Introduction . . . . . . . . . . . . . . . . . La strategie de Microsoft . . . . . . . . . . Les objectifs a long terme . . . . . . . . . La Xbox, une architecture derivee du PC 1.4.1 Les points communs avec un PC . 1.4.2 Les dierences avec un PC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1 Architecture d'une Xbox . . . . . . . . . . . . . . . . . . . 2.1.1 Le complexe de calcul . . . . . . . . . . . . . . . . 2.1.2 Le sous-systeme I2C/SMBus . . . . . . . . . . . . 2.1.3 Le contr^oleur d'Entree/sortie (MCPX Multi-I/O) . 2.2 Le processus de demarrage de la Xbox . . . . . . . . . . . 2.2.1 Le BIOS . . . . . . . . . . . . . . . . . . . . . . . . 2.2.2 Le MCPX Boot Sector active le 2bl . . . . . . . . 2.2.3 Le 2bl execute le noyau . . . . . . . . . . . . . . . 2.3 Le disque dur . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.1 Fonctionnement . . . . . . . . . . . . . . . . . . . . 2.3.2 L'algorithme de deblocage du disque dur . . . . . . 2.3.3 Partitionnement . . . . . . . . . . . . . . . . . . . 2.3.4 Dierences entre Xbox FATX et MS-DOS FAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Presentation technique 3 Les failles de la Xbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1 L'aventure de Bunnie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.2 Les premiers tests . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.3 Les dierentes possibilites pour recuperer le ((Secret Boot Rom)). 3.1.4 Sa solution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Les programmeurs entre en jeu . . . . . . . . . . . . . . . . . . . . . . . 3.2.1 Un probleme majeur . . . . . . . . . . . . . . . . . . . . . . . . . 3.2.2 Le denouement . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3 Le projet ((Xbox Linux)) . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.2 Distributions Linux pour Xbox . . . . . . . . . . . . . . . . . . . 3.3.3 Le projet B ou comment faire tout cela sans ouvrir la machine . 4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3 3 5 5 5 6 7 7 7 8 9 10 10 11 13 16 16 16 18 19 20 20 20 20 21 22 23 23 23 23 24 24 25 26 26 2 1 Presentation generale 1.1 Introduction La Xbox est une console de jeux developpee par Microsoft en partenariat avec Nvidia. Il s'agit de l'alliance de deux groupes d'envergure, l'un est leader dans le secteur des logiciels grand public, l'autre leader dans le domaine des puces electroniques dediees aux applications multimedia. La XBox est une console de jeux 128 bits annoncee ociellement en mars 2000 par Bill Gates le fondateur de Microsoft. Sa sortie, retardee a plusieurs reprises, a nalement eu lieu en novembre 2001 aux Etats-unis, quelques mois apres en Europe et au Japon. Au cours des six premieres semaines, Microsoft a vendu aux Etats-unis plus d'un million et demi de machines, ce qui est considerable. Nous allons voir dans quel contexte cette machine a vu le jour, et quelles sont les perspectives envisagees par son constructeur. 1.2 La strategie de Microsoft Le fait que Microsoft se lance dans cette aventure a ce moment n'est pas un hasard. En eet, on pourrait dire qu'ils appliquent ce qu'on pourrait appeler ((la strategie du bon moment)). Le marche du jeu video, en particulier les consoles, conna^t depuis une vingtaine d'annees une forte croissance comme en temoigne la gure 1. Aujourd'hui, la concurrence est feroce entre les trois acteurs du secteur : Sony avec 69% de part de marche en 2002 s'impose comme le leader inconteste. Nintendo et Microsoft pour leur part realisent respectivement 21% et 10% de parts de marche. Aujourd'hui, ces derniers se disputent la seconde place. 70 60 Millions de machines vendues 50 40 30 20 10 0 1986 Fig. 1988 1990 1992 1994 1996 1998 2000 2002 1 { Evolution des ventes de consoles de 1987 a 2002 (source GFK) La place de la console dans l'habitat est de plus en plus importante. Les taux de penetration des consoles de jeux dans les foyers sont de 40% pour les E tats-Unis, 80% pour le Japon et 10% pour l'Europe. Mais pour seduire le public, les constructeurs de consoles de jeux doivent consentir a de tres gros investissements dont les retombees economiques sont dependantes du succes des ventes de jeux. Pour cause, le modele economique du secteur est tel que la marge sur le materiel est nulle dans le meilleurs des cas. C'est le cas de Nintendo dont la strategie 3 ne s'axe pas sur la puissance du materiel, a l'inverse, Microsoft qui propose la console la plus complete accuse un co^ut de production beaucoup plus important (cf Fig. 2). Pour rester credible et concurrentiel, Microsoft est contraint de vendre sa machine a perte. Sony Playstation 2 Nintendo GameCube Microsoft Xbox Processeur central 294 MHz 405 MHz 733 MHz Memoire centrale 32 Mo 43 Mo jusqu'a 64 Mo Processeur graphique 150 MHz 202 MHz 233 Mhz Memoire graphique 4 Mo 3 Mo jusqu'a 64 Mo Polygones par secondes 66 millions 6 a 12 millions 116 millions Disque dur Absent Absent Present Carte Ethernet Absent Absent Present Fig. 2 { R ecapitulatif des principales caracteristiques techniques des consoles actuelles Selon les estimations, la Xbox serait vendue de 30$ a 100$ en dessous de son prix de revient. Cela fait partie de la strategie pour s'implanter dans le secteur. Les chires engages par Microsoft sont impressionnants : de 1 a 2 milliards de dollars pour le developpement et la production de la machine. 500 millions de dollars pour sa promotion. Le benece realise sur un jeu vendu est partage par les acteurs ayant concouru a sa realisation, notamment le studio de developpement. Microsoft qui touche environ 7 dollars par jeu espere atteindre l'equilibre en 2004, dans l'hypothese ou 28 millions de consoles seraient vendues, et si chaque utilisateur achete 8 jeux. La compagnie compte egalement sur la vente des accessoires parfois tres commerciaux comme l'extension permettant de lire les DVD qui ne fait que debrider la machine d'une fonction deja presente. En terme de developpement logiciel, la politique de Microsoft est egalement bien denie. Il existe quatre programmes permettant d'acquerir pour une duree limitee et dans des conditions bien reglementees le kit de developpement nomme XDK dont Microsoft reste proprietaire. Ces programmes sont : { Xbox Registered Developer Program : il s'agit du programme ociel de developpement. Il est destine uniquement aux entreprises dont la reputation n'est plus a faire. Ce programme concerne les trois marches de la Xbox, soit l'Amerique du Nord, le Japon et l'Europe. { Xbox Incubator Program : ce programme est destine aux groupes independants qui souhaitent developper pour la Xbox. Ce programme ne concerne que l'Europe et ne rassemble aujourd'hui que treize participants. Microsoft donne six mois a chaque participant pour presenter un prototype de jeu (aucune application d'autre nature n'est acceptee). Microsoft decide ou non de reconduire la licence par tranche de six mois, sinon le materiel doit ^etre restitue. { Xbox Registered Content Creator Program : destine aux graphistes, musiciens et artistes en general, ce programme permet d'obtenir au maximum deux XDK pour une duree decidee par Microsoft. { Xbox Tools and Middleware Program : concerne le developpement d'outils intermediaires pour la Xbox. 4 Tous ces programmes soumettent les participants a une licence d'utilisation contenant notamment une clause de condentialite. Personne d'autre que Microsoft ne peut commercialiser de produits pour la Xbox, nous verrons lorsque nous aborderons la securite de la Xbox que cela est de toute facon rendu tres dicile techniquement. 1.3 Les objectifs a long terme Le pari de la rme Microsoft peut sembler risquer, mais m^eme si elle perd de l'argent, l'essentiel est d'^etre present dans le secteur pour preparer l'avenir. Dans ce secteur, l'image d'une entreprise aupres du public est primordiale. Et c'est pourquoi des pertes seraient acceptables s'ils arrivaient a seduire le public et a se faire un nom. La presence du disque dur et de la carte Ethernet, pourraient permettre a la Xbox de devenir une machine a l'utilisation plus ouverte que le simple jeu video. Microsoft qui parie sur le developpement mondial du ((haut debit)) a deja entame l'exploitation de cette technologie et propose des a present un service de jeu en ligne gratuit : Xbox Live. Ensuite viendra la television interactive (iTV), et s^urement bien d'autres services a forte valeur ajoutee. Nous allons maintenant nous interesser plus en detail a la conguration materielle de la machine. Dans la partie suivante, nous montrerons ce qui fait de la Xbox une machine proche du PC. 1.4 La Xbox, une architecture derivee du PC 1.4.1 Les points communs avec un PC A son lancement, la Xbox a ete presentee par Microsoft comme une console de jeu revolutionnaire. Cela ne s'applique s^urement pas a son architecture materielle. En eet, celle-ci s'apparente a un ((PC legacy-free)). Cette appellation, dont la traduction litterale est ((sans h eritage)) fait reference a un PC dont la carte mere ne dispose pas des ports de communications anciens. Ainsi sur ce type de plate-forme, on ne trouve ni les ports series, ni les ports paralleles pour imprimante, ni le port PS/2 pour souris, ni le port clavier. Les ports PCI ont egalement ete supprimes, ainsi l'utilisateur nal n'est jamais cense ouvrir sa machine. Ceci accro^t le contr^ole des fabricants de materiel sur leur produit, par exemple lors de pannes ou l'utilisateur sera contraint de s'adresser a un professionnel, ou en ce qui concerne les conditions de garantie alors plus restrictives. Ces ports supprimes sont remplaces par des ports USB. La carte mere a ete concue par Nvidia, autour de son architecture Nforce prevue a l'origine pour les PC standard. Ainsi, la Xbox comporte un disque dur IDE, un lecteur de DVD IDE, et un port reseau RJ45. Comme autres points communs, on peut egalement citer le CPU, un Intel Celeron 733, l'encodeur video de marque Conexant, ainsi que le bus de communication entre le GPU et le controleur de peripheriques (AMD Hypertransport). 5 1.4.2 Les dierences avec un PC Les deux principaux composants de l'architecture Nforce sont le GPU (processeur dedie au graphisme) et le MCP (contr^oleur de peripheriques). Le tableau suivant recapitule les dierences materielles entre le Nforce pour PC et le Nforce de la Xbox : Materiel Nforce PC Nforce Xbox Processeur central AMD Athlon Intel Celeron Memoire centrale ports DDR DIMMS 8 ports SMT DDR Processeur graphique Nvidia Geforce 2 Nvidia Geforce 3 ameliore Controleur IDE au nombre de 2 au nombre de 1 Bus et ports PCI Present Absent Sortie video vers PC et TV vers TV uniquement Ports USB Standard Proprietaire (gros ports ronds) Port herite : Clavier Present Absent Port herite : Souris Present Absent Port herite : Disquette Present Absent Port herite : Serie Present Absent Port herite : Parallele Present Absent Les dierences presentees ci-dessus sont justiees pour quatre raisons : 1. Une console de jeux n'a pas besoin de ces ports anciens. 2. Les co^uts de fabrication sont reduits. 3. L'encombrement de la machine est reduit. 4. La machine reste fermee (du moins pour ^etre encore sous garantie. La Xbox est d'ailleurs dicile a ouvrir, les vis sont toutes cachees et non standard). Nous allons maintenant voir les ajouts lies a la securite. Il s'agit des composants et mecanismes ajoutes par Microsoft pour s'assurer que la machine ne sera utilisee qu'avec des programmes et services Microsoft. Les motivations ne sont pas techniques mais commerciales. 1. Les 512 octets de demarrage sont ((caches)) dans la ROM du contr^oleur de peripheriques. L'objectif est de detecter si le BIOS est ociel. 2. Le BIOS est entache de signatures cryptographiques qui seront mises a l'epreuve par un de cryptographique au demarrage. 3. Le bon deroulement de ce de est surveille par le PIC, si le BIOS ne repond pas au de en moins de 200 millisecondes, la machine redemarre. 4. Les protections citees jusqu'ici sont fortes, mais la plus importante demeure le cryptage des applications Xbox par une cle RSA de 2048 bits (Pour exemple, la carte bancaire utilise une cle de 1024 bits...) Le chapitre suivant etudie en detail l'architecture presentee ici de facon succincte. 6 2 Presentation technique 2.1 Architecture d'une Xbox 2.1.1 Le complexe de calcul La Xbox possede un processeur Intel Celeron Pentium-III cadence a 733 Mhz, c'est le CPU. Il a acces a un bus de 133 MHz, le bus classic P6 FrontSideBus (F.S.B.) de Intel. Une seule puce est en mesure de communiquer sur ce bus avec le CPU. Celle-ci regroupe le processeur graphique appele GPU, ainsi qu'une puce ((northbridge)) nommee NV2A. Cette puce construite par nVidia est tres proche du ((Integrated Graphics Processors)) (I.G.P.) destine au PC. Depuis que ces deux composants sont regroupes dans une seule et m^eme puce, le CPU et le GPU peuvent partager un m^eme espace memoire. Cette technologie porte le nom de U.M.A. pour ((Unied Memory Architecture)). Comparee a une architecture video traditionnelle, l'UMA est de moindre co^ut. Cependant les acces memoire du CPU et du GPU pourraient entrer en conits et nuire aux performances de la machine. C'est pourquoi la memoire est souvent divisee en ((bandes)), ce qui garantit l'acces independant des deux puces a celle-ci (Le bus GTL+ qui relie le CPU et le GPU, a une vitesse de 133 Mhz et 64 bits d'adresse). Le GPU, cadence a 233 MHz, joue un r^ole central dans l'architecture de la Xbox. En eet, c'est lui qui est relie a la memoire centrale ainsi qu'au contr^oleur d'entree/sortie (M.C.P.X.). Les bus qui entrent en jeu dans ces connexions ne sont formellement pas securises, mais leur vitesse elevee (200 MHz DDR) constitue malgre tout une securite forte. Bien entendu, c'est egalement le MCPX qui se charge d'envoyer les donnees video vers l'encodeur de sortie video PAL ou NTSC. Northbridge et Southbridge, donc respectivement complexe graphique et contr^oleur d'entrees/sorties sont relies par un bus de 8 bits (peu d'informations circulent entre ces composants). Ce bus nomme HyperTransport Bus de technologie DDR est cadence a 200 MHz. 7 Complexe de calcul securise LED CPU GTL (133 Mhz, 64 bits @) SMC PW (pic) SSTL (200 Mhz DDR, 128 bits @) GPU CPU Monitor SDRAM (northbridge) Partie Arriere HTB (200 Mhz DDR, 8 bits @) USB SMBus Video Encoder USB MCPX (couthbridge) USB EEPROM Bios (FlashRom) USB IDE Ports LPC AVIP Partie Avant Puce Ethernet RJ45 Hard Disc DVD ALIM Fig. 3 { Vue d'ensemble de la Xbox. 2.1.2 Le sous-systeme I2C/SMBus Nous entendons par la l'ensemble des composants relies entre eux par le bus I2C/SMBUS (System Managment Bus), utilise pour la premiere fois par Intel en 1995. Ce sous-systeme a pour r^ole de commander et surveiller certains composants de la machine. Il regroupe plusieurs composants de l'electronique moderne dont nous ferons l'inventaire plus bas. L'ensemble est orchestre par une puce, le S.M.C. pour System Managment Coprocessor, qui est une puce de type PIC. Le SMBus est un cas particulier du bus I2C, lui m^eme largement repandu dans les machines actuelles. Contrairement aux bus utilises entre les dierents composants de calcul cites precedemment, le SMBus utilise des vitesses de transport faibles, ce qui limite le co^ut de revient. 8 Les composants possedent une identite codee sur 7 bits et les deux seules commandes possibles (lecture/ecriture) sont transmises sur 1 ou 2 octets. Ces commandes s'executent en exclusion mutuelle gr^ace a un bit qui passe a 1 pendant un cycle. On note egalement que ces operations provoquent une attente active du CPU. La Xbox pourrait utiliser le driver SMBus "i2c-amd756.o" de l'AMD756, ce driver etant compatible nForce. Detaillons maintenant les quatre puces constituant ce systeme, soit : 1. le SMC (composant de type PIC), 2. une EEPROM, 3. l'encodeur video, 4. une puce qui surveille les temperatures. PIC Un PIC est un petit microprocesseur qui possede sa propre memoire. Celui ci est un PIC16LC63 de 16 bits. C'est une taille modeste, mais largement susante pour sa fonction. Notons que ce PIC ne peut ^etre reprogramme. Il est en communication avec le CPU et permet de repondre a certaines temperatures, de modier la vitesse du ventilateur, de changer le mode video, de contr^oler le chariot ou encore d'allumer les LED en facade. Il utilise egalement certains de ses registres pour savoir, lors du processus de demarrage, si certaines instructions critiques doivent ^etre eectuees. EEPROM Il s'agit de l'autre composant ((cle)) du sous-systeme I2C/SMBus. Celui-ci ore des donnees en ROM (Read Only Memory), mais son grand avantage, par rapport a une ROM classique, est de pouvoir ^etre eacee puis reprogrammee un nombre de fois consequent. Cette propriete conduit ce composant electronique a ^etre tres apprecie des fabriquants de materiel electronique qui peuvent ainsi fournir des produits evolutifs et contr^olables. L'EEPROM de la Xbox ne contient que 256 octets et n'en utilise que 128, mais cela est susant pour conserver des donnees telles que le code de region du lecteur DVD, le numero de serie, l'adresse MAC, ou la norme d'achage TV(NTSC ou PAL). Les informations precitees sont accessibles en clair dans la memoire de la puce. Mais elle contient aussi des donnees en-cryptees que voici : { Une cle de securite, necessaire pour acceder au disque dur; { Des information sur le systeme cryptographique HMAC/SHA1, egalement utilise pour le deblocage du disque dur; { Le code de region de la machine. Comme pour les autres composants constituants le sous-systeme, il sut, pour communiquer avec l'EEPROM, d'envoyer une commande d'ecriture ou de lecture sur le SMBus en speciant l'adresse du composant. Nous verrons par la suite quel r^ole jouent ces composants concernant la securite de la Xbox. 2.1.3 Le contr^oleur d'Entree/sortie (MCPX Multi-I/O) MCPX Cette puce fait oce de relais entre le complexe de calcul et les peripheriques de la machine. Le MCPX est relie aux 4 connecteurs USB 1.1 en facade. Bien qu'utilisant le protocole USB standard, leur forme ronde et massive est tres dierente des connecteurs 9 standards. Deux peripheriques IDE sont relies au MCPX par un c^able IDE classique de PC : le disque dur (de 8 ou 10 Go suivant les versions de la machine) ainsi qu'un lecteur DVD de marque Philips ou Thomson. Cette puce est aussi en rapport direct avec les points LPC qui permettent de realiser des tests sur l'electronique (par exemple lors de la maintenance de la machine). Plus etonnant, le MCPX integre une carte son Dolby Digital 5.1 et se trouve relie a une puce externe de type Ethernet. La Xbox ne possedant qu'un seul connecteur de sortie, le son est dirige vers le m^eme connecteur que la video tandis que la carte reseau dispose d'un port RJ45 classique derriere la machine. Pour conclure, le BIOS utilise un bus non securise dont la vitesse est de 10Mhz pour communiquer avec le reste de la machine via le MCPX. Fig. 4 { La Xbox, de l'interieur. 2.2 Le processus de demarrage de la Xbox 2.2.1 Le BIOS Presentation Le BIOS est une Flash EPROM de 1 Mo, ce type de puce ressemble aux EEPROM a la dierence que celles-ci ne sont eacables qu'aux ultra-violet. La ROM du BIOS contient des donnees que l'on peut decomposer ainsi { Un boot sector. Il est cense ^etre execute en premier par la Xbox mais celui-ci est un leurre; 10 { Un chier encrypte appele bootloader ou 2bl. Il joue un r^ole important lors de l'allumage fortement securise de la machine; { Un autre chier encrypte et compresse, le noyau. Ces informations et quelques autres encore forment une image que nous appellerons Xbox OS Image. Celle ci ne faisant que 256 Ko, elle est repetee quatre fois a l'identique dans le BIOS. Au demarrage, la MCPX decode 16 fois consecutivement le contenu d'une de ses puces internes dans sa propre region de memoire cache. Le contenu de cette puce sera appelee par la suite Secret Boot ROM. Le BIOS etant de 1 Mo, ce sont 16 copies du BIOS qui se trouvent dans cette zone de memoire cache, soit 64 copies de l'Xbox OS Image Faux Boot Sector 2bl encrypte (bootloader 2) Donnees d’initialisation du noyau Noyau compresse et crypte ? Copyright MS ? X−Code X−Code Initialisation du MCPX Fig. 5 { Structure de l'XBox OS Image Les donnees d'initialisation du noyau ne sont pas cryptees. Elles ne servent qu'a accelerer le chargement de celui-ci. Le X-Code est du code que la machine peut interpreter rapidement. Il se compose de deux bloc distincts qui seront executes separement. Nous allons voir comment le 2bl parvient a decrypter puis decompresser le noyau avant de l'executer. 2.2.2 Le MCPX Boot Sector active le 2bl Nous avons vu que le BIOS contient un ((faux Boot Sector)), il faudra en realite utiliser le Boot Sector cache dans le Secret Boot Rom du MCPX. A l'allumage, la machine execute du X-Code place dans le BIOS ce qui initialise le MCPX. Puis le CPU prend la releve et execute le MCPX Boot Sector. Celui-ci execute la seconde partie du X-Code present dans l'Xbox OS Image, ceci dans le but de realiser quelque initialisations et congurations basiques de certains materiels. Une fois ces preparatifs termines, le MCPX Boot Sector decrypte le 11 2bl dans la RAM. Pour cela un algorithme RC4 est utilise. La cle est situee dans le Secret Boot Rom du MCPX. Apres cela le Boot Sector verie la validite du ((magic number)) du 2bl, puis saute a une adresse inscrite dans ce dernier. CPU GPU RAM 2bl 5 magik number Initialisation des tables d’adresse MCPX 1 Verification Secret boot ROM 2 boot sector 3 Cle RC4 4 RC4 BIOS XBox OS Image (boot sector) 2bl encrypte XCode Initialisation d’autres materiels XCode Initialisation du MCPX Fig. 6 { Le MCPX Boot Sector active le 2bl 2.2.3 Le 2bl execute le noyau Introduction Le 2bl se trouve maintenant en clair dans la RAM. Son r^ole va maintenant ^etre de decrypter puis decompresser le noyau situe dans le BIOS. 12 Preparation Avant toutes choses le 2bl installe des tables pour permettre la liaison entre les adresses physiques et virtuelles. puis il se copie lui m^eme a une autre adresse interne de la machine (n'ayant pas trouve d'informations sur la localisation de cette adresse, nous nous permettons la supposition que cette copie est placee hors de la RAM, peut ^etre dans un registre interne du complexe de calcul securise). Le 2bl execute cette copie. Le MCPX Boot Sector n'etant plus d'aucune utilite, il est cache par le materiel (celui-ci se trouve dans un registre ROM interne du MCPX). Le systeme active le ((ag)) (situe dans le PIC) dont le r^ole est de laisser la RAM se vider toutes les 200 ms, ainsi cela eace le 2bl en clair. La copie du 2bl continue son execution, initialisant certains registres videos et congurant les ports PCI qui n'existent pas. Cette phase d'initialisation etant achevee, le 2bl va pouvoir entamer le decryptage du noyau. Decryptage Le 2bl a acces a dierentes informations : { la taille des donnees d'initialisation du noyau. { la taille du noyau compresse et encrypte. { l'adresse des donnees d'initialisation. Le 2bl genere alors une cle par l'algorithme SHA-1 a partir de : { les donnees d'initialisation. { le noyau toujours compresse et encrypte. { la cle RC4 qui permettra la decompression du noyau (situee dans le 2bl ). Une fois cette cle produite, elle est comparee a une autre cle de reference situee dans le 2bl. Si le test s'avere positif, le noyau est decrypte dans la RAM gr^ace a la cle RC4 dont nous venons de parler. Celle-ci est bien evidemment dierente de celle utilisee lors du decryptage du 2bl. 13 CPU GPU RAM Noyau compresse Cle 3 MCPX Verification Cle RC4 4 SHA−1 BIOS 2 XBox OS Image Configuration (PCI, video ...) Initialisation du noyau Noyau crypte/compresse 2bl 1 Copyright Cle RC4 XCode Fig. 7 { Le 2bl execute le noyau Decompression Le noyau etant maintenant decrypte, il va falloir le decompresser et le placer au debut de la RAM. Le format de compression utilise est un derive du format Microsoft CAB, lequel supporte quatre types de compression. Le type mis en jeu dans notre cas est LZX. Execution Le noyau decompresse est au format PE, c'est un executable de nom ((Xboxkrnl.exe)). Une fonction d'entree dont l'adresse est connue du 2bl est necessaire a son execution. Deux parametres seront a passer a cette fonction 1. une cha^ne utilisee pour le deboguage, 14 2. l'adresse de deux cles cryptographiques : l'EEProm key et une cle de certicat. Ces deux cles sont en la possession du 2bl, il pourra donc executer le noyau et lui laisser terminer le processus de demarrage qui consiste essentiellement a activer le disque dur. 2.3 Le disque dur 2.3.1 Fonctionnement Introduction Le disque dur de la Xbox est un disque IDE classique construit par Seagate ou Western Digital. Pour communiquer avec le disque, et s'agissant d'un disque IDE, on utilise des commandes ATA (denies par la norme ATA/ATAPI-6, voir annexe). Parmi le grand nombre de commandes ATA, toutes ne sont pas toujours utilisees par les constructeurs. La securite de la Xbox met en jeu des commandes ATA tres rarement utilisees. Celles-ci permettent de limiter par le materiel l'acces au disque. La commande pour deverrouiller le disque est SECURITY UNLOCK. Cette commande utilise deux types de mots de passe,user ou master, de 2 octets chacun. Le mot de passe du disque dur (HD password ) est construit en trois phases : 1. Decryptage des donnees de l'EEPROM, 2. Extraction de la cle appelee HDKey presente dans l'EEPROM, 3. Generation du mot de passe nal a partir du modele et du n de serie du disque dur, informations que l'on obtient par la commande DEVICE IDENTITY. Les donnees renvoyees par la commande DEVICE IDENTITY ne sont pas au format ASCII, ainsi pour reconstituer les 20 octets du n de serie et les 40 octets du modele, il faut lire les donnees renvoyees en big endian. Pour ameliorer la securite du mecanisme la HDKey est dierente pour chaque machine, et le mot de passe genere specique au disque qui va ^etre debloque. Lors de la generation du mot de passe, deux routines cryptographiques sont utilisees, HMAC/SHA1 et RC4. SHA1 (Secure Hash Algorithm) a pour r^ole de renvoyer une cle de taille xe en fonction d'une donnee de taille variable. C'est un algorithme de hachage souvent utilise aujourd'hui. HMAC utilise cet algorithme, et lui ajoute la capacite de crypter cette cle avec une cle privee. Enn, l'algorithme RC4 est un algorithme cryptographique symetrique (a cle secrete). La cle pour coder et decoder un message est la m^eme, les deux parties communicantes doivent donc disposer d'un canal s^ur pour convenir de cette cle. 2.3.2 L'algorithme de deblocage du disque dur Donnees mise en jeu Nous avons vu que cet algorithme est compose de trois phases. Pour une bonne vision d'ensemble, commencons par detailler les donnees utilisees. { EEPROM Key : Il s'agit d'une donnee codee ((en dur)) et proteger physiquement contre la lecture. Elle servira de cle secrete HMAC a deux reprises; 15 { Le contenu (lisible) de l'EEPROM, dont trois donnees nous interessent dans le cas du deblocage du disque dur : { Data Hash : Donnee utilisee ((tel quel)) dans l'algorithme, { Encoded Cofounder ou cofondateur crypte, { Encoded Data ou donnees cryptees; { Numero de serie du disque dur; { Modele du disque dur. Deroulement de l'algorithme 1. Creation d'une cle RC4 par algorithme HMAC/SHA1 a partir de Data Hash (en clair) et EEPROM Key (la cle d'encryptage). 2. Utilisation de cette cle RC4 pour decrypter les donnees cryptees de l'EEPROM. On obtient le cofondateur et les autres donnees decryptees nommees maintenant HD Key. 3. Creation d'une cle RC4 a partir : { des donnees decryptees et du cofondateur comme donnees d'entrees { de l'EEPROM Key comme cle privee d'encryptage. 4. Comparaison de la cle obtenue et de Data Hash. Leur dierence provoque l'arr^et de la machine. 5. Si le test est positif, generation du mot de passe encore par HMAC/SHA1 avec : { le modele et le n de serie en entree. { HD Key pour la cle privee. En conclusion, la securite du disque dur est basee sur l'utilisation de materiel ((tamperresistant)), ce qui signie litteralement ((resistant aux manipulations)). Ce materiel renferme la cle privee (EEPROM Key ) utilisee lors de la generation du mot de passe. 16 eeprom data eeprom Key data_hash conf_enc data_enc RC4 RC4 conf data Hmac_SHA1 RC4 key Hmac_SHA1 exit =? HD Key model nbr Hmac_SHA1 serial nbr HD pass Fig. 8 { L'algorithme de deblocage du disque dur 2.3.3 Partitionnement Presentation des 6 partitions Le disque dur a une capacite de 8 ou 10 Go suivant la version de la machine. Il est scinde en 6 partitions. La premiere contient des donnees de conguration, les trois suivantes constituent de la memoire cache pour les jeux, ce qui accelere l'acces aux donnees et diminue les acces au lecteur DVD. La cinquieme contient des donnees inherentes aux applications ((diverses)) de la machine comme le menu de demarrage, le lecteur de CD ou de DVD. Enn la sixieme partition contient les sauvegardes de parties et les musiques de jeu. La Xbox de premiere generation (v1.0) utilisait un disque dur Seagate 17 de 8 Go. Ensuite viennent les versions 1.1 et 1.2 qui embarquent un disque dur Western Digital de 10 Go. Pour respecter la compatibilite des nouvelles versions avec les anciennes, 2 Go sont laissees pleines de zeros. Taille Partition 5 Mo Conguration 750 Mo Cache A 750 Mo Cache B 750 Mo Cache C 500 Mo Systeme 4895 Mo Donnees 1896 Mo Vide (versions recentes) Fig. 9 { Le partitionnement de la Xbox Conclusion L'adresse et la taille des 6 partitions de la Xbox sont codees en dur dans le noyau, il est ainsi impossible de modier ces informations. Il n'existe donc pas de table de partition. 2.3.4 Dierences entre Xbox FATX et MS-DOS FAT Le systeme de chier FATX peut se comparer au systeme FAT auquel on aurait retire quelques informations. Le systeme FAT presente quatre zones importantes : 1. le Boot Block (superblock de linux), 2. les ent^etes de repertoires, 3. la table d'allocation des chiers, 4. les donnees du chier en cours d'utilisation. Les deux dernieres zones sont identiques dans les deux systemes de chier. Par contre la plupart des champs du Boot Block FATX16 ont ete brides par rapport au FAT16. Ainsi le FATX32 prote peu des ameliorations introduites avec le FAT32. Les partitions comprenant plus de 65536 clusters (216 ) doivent ^etre partitionnees en FATX32. Il s'agit des partitions de plus de 1 Go, ainsi seule la partition contenant les donnees utilisateur est en FATX32, les autres sont en FAT16. Remarquons, pour nir, que le systeme FATX code les noms de chiers en ASCII et non en Unicode. 18 3 Les failles de la Xbox 3.1 L'aventure de Bunnie 3.1.1 Introduction Apres avoir suivi une conference presentee par un recruteur de chez Microsoft, ce jeune informaticien dipl^ome du M.I.T. a commence a s'interesser a la XBox. Alors que la machine vient de sortir au E tats-Unis, Andrew Wang (Bunnie) comprend rapidement que cette console de jeu est tres semblable a un PC et cherche une solution pour en dejouer la securite. Cet etudiant aurait pu essayer de casser la cle de securite pour executer son propre code, ou tenter de contourner la securite de la machine par des manipulations purement logicielles, comme cela a ete fait avec la DreamCast quelques annees auparavant. Mais Bunnie ne croit pas vraiment en ces solutions; il prefere tenter de mettre en pratique son experience en terme d'approche materielle. Sa premiere idee sera de tenter de asher le BIOS avec son propre code, ce qui deja lui permettrait d'etendre l'utilisation de la machine. 3.1.2 Les premiers tests Il va pour commencer essayer de lire les donnees du BIOS. Il constate que c'est une Flash EPROM de 1 Mo. Cette puce de 32 pattes est delicate a extraire, mais muni d'outils speciques dont un fer a souder en forme de pince, il parvient a la recuperer sans l'endommager. Sachant qu'il va avoir besoin de realiser un grand nombre de tests sur cette puce, il la place dans un adaptateur pour Flash EPROM. Les manipulations seront bien plus faciles. Il place l'ensemble dans son programmateur d'EPROM Flash et copie l'image du BIOS sur sa machine. Il recupere ainsi sans probleme un chier ".bin" de 1 Mo, il commence a l'analyser et s'apercoit qu'il s'agit de quatre copies identiques de la m^eme image appelee XBox OS Image. Il realise alors un nouveau test : il l'eace et la reprogramme avec le .bin precedemment recupere. L'operation se passe sans probleme. Il en deduit que la puce n'est protegee ni en lecture, ni en ecriture. Il emet alors l'hypothese que le code de ce BIOS est modie lors de chaque allumage de la console. Pour verier, il remet la puce en place sur la carte mere et relance la machine. Avec etonnement il constate que la console continue de demarrer. L'hypothese precedente est donc inrmee. On remarque qu'il ne serait pas possible de faire la m^eme chose avec une GameCube de Nintendo, le BIOS de cette derniere n'etant pas une EEPROM classique mais une puce integree au sein d'une autre puce bien ((enfouie)) dans la machine. Rb, un ami de Bunnie a lui aussi recu un porte-parole de Microsoft dans son universite. La conference presentait cette fois les qualites de securite de la Xbox, et en particulier les mesures prises pour emp^echer les utilisateurs d'executer un autre systeme d'exploitation que Windows 2000 sur la Xbox. Rb comprend lors de cette conference qu'il serait peut ^etre possible de prendre le contr^ole de la machine en dessoudant trois puces precises. Si cette hypothese se conrmait, Bunnie penserait au BIOS, s^urement au PIC, et a une tierce puce qu'il resterait a decouvrir. Apres dierents tests il se rend compte que le copyright de Microsoft est en clair, les 19 donnees ne sont donc pas toutes cryptees. Bunnie a egalement le sentiment que la puce renferme des donnees ((inutiles)) : il remplace les 512 premiers octets de la premiere image par des instructions assembleur NOP, et la Xbox demarre toujours. Il fait de m^eme avec les quatre copies presentes dans la puce, le comportement de la machine au demarrage reste inchange. Rb lui apporte de nouvelle information sur le PIC : { Il est alimente par une pile en permanence, { Il est connecte au SMBus, { La frequence du SMBus est faible et connue, { le SMBus et donc le PIC sont inactifs durant la premiere seconde de demarrage de la machine. La derniere information lui semble capitale, il pense que la cle qu'il cherche n'est s^urement pas dans une des quatre puces reliees au SMBus. Apres de nombreux autres tests il est en mesure d'apporter de nouvelles informations : { Bunnie est desormais persuade que les 256 premiers octets inutiles de l'Xbox Os Image constitue un faux ((Boot Sector)). { Il arme que c'est le MCPX qui ecrit par dessus cette partie de code du BIOS. Lire les donnees du MCPX avec un microscope electronique semble bien trop co^uteux. Cette pratique est parfois utilisee pour recuperer les donnees d'un composant electronique, c'est par exemple de cette maniere que les sources des cartes des cha^nes TV a peage ont ete decouverts en 1998. Mais cela necessite beaucoup de materiel co^uteux que Bunnie ne possede pas. Il ecarte donc cette solution. Son test suivant consiste a comparer deux images binaires de deux Xbox dierentes. Les deux chiers s'averent ^etre identiques. Toutes les Xbox possedent donc le m^eme BIOS. A ce moment la beaucoup pensaient que le BIOS d'une Xbox lui etait propre. 3.1.3 Les dierentes possibilites pour recuperer le ((Secret Boot Rom)). Bunnie commence a bien comprendre comment demarre une Xbox, il sait que le Boot sector a executer se trouve dans le MCPX. Plus precisement dans une puce ROM interne a celui ci. Le contenu de cette ROM est appele le ((Secret Boot ROM)). Il espere qu'en recuperant l'image de cette puce, il pourra retrouver des informations sur l'algorithme utilise ainsi que la cle permettant de decrypter le 2bl. Ceci lui permettrait par la suite d'executer son propre noyau. Pour cela il pense a plusieurs methodes. Il pourrait ^etre possible de recuperer les informations de cette ROM en analysant le MCPX au microscope electronique. Mais vu la precision utilisee pour la fabrication de la puce cela semble impossible avec les appareils que Bunnie possede. Il se renseigne aupres d'une entreprise specialisee qui lui conrme ce qu'il pensait, c'est impossible. Beaucoup de monde sur le forum BBS (un groupe de recherche sur le fonctionnement de la Xbox) suggere d'utiliser un scanner JTAG pour essayer de capturer les informations 20 qui arrivent au CPU. Mais brancher cet appareil sur la carte mere semble impossible sans enlever le CPU. Cette operation serait alors bien trop compliquee et trop co^uteuse pour ^etre realisee. Sonder la memoire pour recuperer les informations lorsqu'elles sont copiees dans la SDRAM serait une autre idee. Mais il y a beaucoup trop de point a examiner, en eet ce n'est pas moins de 128 points qu'il faudrait examiner en m^eme temps. De plus la cle cherchee pourrait ne jamais passer dans la RAM. Ce test a plusieurs milliers de dollars est donc ecarte. Il pourrait essayer de faire le m^eme genre d'analyse sur le bus de 64 octets entre le CPU et le GPU. Avec deux fois moins de points a sonder le co^ut de ce test serait deux fois moindre mais il demeure trop co^uteux pour Bunnie. De toutes facons l'installation d'un tel dispositif lui semble bien trop complique. Par contre, le bus qui transporte les donnees entre le MCPX et le GPU semble ^etre plus adapte. En eet ce bus n'utilise que 8 octets et la carte mere detaille parfaitement chaque piste (s^urement pour faciliter la maintenance). Ce bus utilise l'HyperTransport protocole de nVidia, les specications sur ce protocole sont libres et publiees sur Internet. Ce bus appelle HTB pour HyperTransportBus, n'utilise pas de securite particuliere et sa frequence est de 200 MHz. Un analyseur logique supportant cette haute frequence co^ute dans les 25000 dollars ! 3.1.4 Sa solution Il pense qu'il serait possible de trouver une solution moins co^uteuse en passant par le HTB. Il voudrait utiliser l'analyseur logique Xilinx Virtex-E qu'il possede. Celui-ci est capable de recevoir des donnees a plus de 200 MHz et il est compatible avec le protocole HyperTransport. Les signaux diuses sur le HTB sont identiques a des signaux LVDS, seul le mode diere. En utilisant un convertisseur LVDS vers TTL de Texas Instrument il va pouvoir recuperer des signaux utilisables par son analyseur. Il fabrique alors un petit circuit imprime compose essentiellement de ce convertisseur et il le place directement sur la carte mere, ce qui lui permet de deriver les pistes du HTB. Il ne lui reste plus qu'a rediriger ces signaux depuis son petit montage jusqu'a son analyseur via un c^able. Une trace des donnees est capturee dans l'analyseur, l'ordre des bits pourra ^etre determine en comparant avec les donnees initiales du BIOS. Un long travail de recherche et d'analyse commence pour reussir a retrouver les informations interessantes dans ce ((tas)) de donnees. Desormais les donnees sont desassemblees et l'algorithme utilise est determine : c'est bien le RC4 a cle 128 bits qui est utilise. La cle a ete trouvee gr^ace a un algorithme brute force applique sur les donnees. Desormais Bunnie comprend comment fonctionne le ((Boot Sector)) du MCPX. Etant donne que le test sur le magic number du 2bl permet uniquement de verier le bon format du chier il pourra reecrire son propre 2bl. Possedant le code du 2bl en clair il decouvrira rapidement l'algorithme utilise pour decrypter le noyau inclus dans le BIOS ainsi que la cle necessaire car nous avons vu en 2.2.3 que cette cle RC4 est place dans ce 2bl. 21 3.1.5 Conclusion Cette decouverte a ete publiee sur le Web le 26 Mai 2002, soit environ 6 mois apres la sortie de la console. Les autres consoles nouvelles generations n'ont pas tenu plus longtemps face aux attaques des pirates, hormis la GabeCube pour les raisons precitees. Ces informations rendues publiques, des possesseurs d'Xbox, des amateurs, des informaticiens, des electroniciens ou encore des pirates ont pu acceder a ces revelations. Il ne faudra attendre que quelques semaines pour voir appara^tre les toutes premieres puces. Celles-ci etaient particulierement compliquees a installer, il fallait souder plus de 30 ls sur des points particulierement petits. A ce moment il etait possible de copier un jeu Xbox sur un DVD-R et de lire cette copie avec sa Xbox. Vu la taille des jeux a ce moment la, les copies auraient pu se faire sur CDR-W mais le lecteur DVD de la xbox supporte tres mal ce type de support. 3.2 Les programmeurs entre en jeu 3.2.1 Un probleme majeur Une fois la securite materielle dejouee par Bunnie, les programmeurs qui prennent la releve souhaitent ecrire du code pour la Xbox. Les executables de la Xbox sont au format .xbe, ce format contient une signature d'authenticite calculee a partir du programme et d'une cle RSA privee de 2048 bits gardee jalousement par Microsoft. La procedure ocielle pour produire du code pour la Xbox est donc d'utiliser le XDK cite plus haut (tres dicile a obtenir de Microsoft), puis de s'adresser a ces derniers pour qu'ils acceptent de ((signer)) le code. Detaillons maintenant le fonctionnement du format XBE. Les .xbe comprennent deux parties principales : { L'ent^ete, qui contient les informations ayant trait a la securite ainsi que quelques pointeurs. { Les sections, elles contiennent le programme. Lorsque la Xbox cherche a executer une section elle doit realiser un certain de nombre de tests bases sur l'algorithme de hachage SHA-1. La machine commence par verier la validite de l'ent^ete en comparant deux choses : { La signature decryptee. { La signature obtenue par hachage de l'ensemble des ent^etes de sections. Si le test est valide, les sections peuvent commencer a ^etre executees. Pour cela, la Xbox commence par recuperer toutes les informations (taille/position) de chaque section. Une fois cette initialisation terminee, une cle de hachage est creee a partir des donnees de la section en cours, cette cle sera testee avec la cle de la section gardee dans l'ent^ete. Ce test reussi, la section peut ^etre executee, apres cela la section suivante sera testee a son tour et ainsi de suite. 3.2.2 Le denouement L'algorithme utilise semble vraiment bien pense, et aucunes failles ne semble exister. Par contre, tout ceci est executer par le noyau. Et les programmeurs savent qu'ils peuvent desormais deriver le BIOS original et utiliser leur BIOS. Le BIOS comporte le noyau, ils vont 22 donc essayer de modier celui-ci pour contourner cet algorithme. Apres plusieurs semaines de programmation commune entre des dizaines de programmeurs experimentes, une solution est trouvee. Les bibliotheques et les drivers oerts par le XDK on ete reecrits integralement. L'espace ou se trouve la cle est remplace par des 0. Un programme d'execution des .xbe (appele xbe bootloader) est ecrit; il ne teste tout simplement pas la cle RSA. Cela ouvre donc la porte au developpement de code pour la Xbox de facon legale, car aucuns elements de la cha^ne de developpement n'utilise d'outils sous copyright (comme le XDK par exemple). La plupart de ces logiciels sont ecrits en C ou C++, et ils n'utilisent que des bibliotheques libres. Cette legalite sous-jacente a permis le developpement rapide de nombreuses equipes de programmeurs, si bien que le nombre de fonctionnalites de la Xbox a vite grandi. En voici quelques unes : { Lecture de chiers videos (mpeg2, avi, divx, svcd, ...). { Lecture de chiers sons (wav, mp3, ...). { La quasi totalite des emulateurs de console plus anciennes ont ete portes sur la Xbox (Mame, Nintendo64, Playstation et bien d'autres). { Clients IRC et FTP. { navigateurs Internet. Remarque : Le systeme de jeu en ligne Xbox Live qui utilise les serveurs Microsoft n'est pas utilisable. Pour utiliser tout ces programmes en m^eme temps, il etait possible de placer chaque programme sur un DVD-R, mais la solution la plus pratique pour les utilisateurs fut de transferer chaque programme sur le disque dur de la console depuis un PC en utilisant le reseau Ethernet. Chaque programme pouvait ^etre dans un menu classique a l'aide du logiciel Evox. Tout ces developpeurs travaillent encore en equipes pour apporter de nouvelles fonctionnalites a la Xbox, il est possible d'integrer l'une d'elle sur le portail www.xboxdeveloper.net. L'enjeu majeur d'aujourd'hui est de faire demarrer Linux sans modications materielles, car aujourd'hui il faut installer un BIOS dit ((Cromwell)). Mais nous verrons cela dans le chapitre suivant. 3.3 Le projet ((Xbox Linux)) 3.3.1 Introduction Le ((Xbox Linux Project)) a vu le jour en juin 2002, peu de temps apres la sortie de la machine au Japon et en Europe. Il a pour objectifs le developpement d'une distribution Linux pour Xbox incluant le serveur X, et la possibilite de brancher n'importe quel composants PC traditionnels via les ports USB. Ceci ferait de la Xbox une machine de bureau traditionnelle. L'utilisation du noyau Linux permettra le developpement de logiciel pour la Xbox, chose impossible avec le noyau original de la Xbox, de plus il sera egalement possible de faire tourner dierentes version de Windows gr^ace a une machine virtuelle comme c'est le cas aujourd'hui sous Linux (VMWare, Plex86). Les versions de Linux dediees a la Xbox doivent remplir les conditions suivantes : 1. Tout le materiel de la Xbox doit ^etre supporte. Les applications Linux devront ^etre en mesure d'utiliser le disque dur, le lecteur de DVD, l'interface reseau ainsi que le 23 materiel connecte sur les ports USB. 2. Les distributions pour Xbox se devront d'^etre compatibles au maximum avec les distributions i386 classiques. En outre, toutes les distributions actuelles devraient pouvoir tourner sur Xbox apres remplacement du noyau et du serveur X (les paquetages au format actuel devront fonctionner ((tel quel))). Au debut du projet, un donneur anonyme connu seulement des responsables du projet a mis en jeu une somme de 200000 dollars, la date limite de realisation etant alors la n d'annee 2002. Pour attribuer cette somme, le projet a ete scinde en deux sous-projets chacun credite de la moitie de la somme : { Projet A : Porter Linux sur une Xbox modiee au niveau hardware : { Remplacer le BIOS (logiciel et materiel), { Obtenir un noyau ainsi que des pilotes XFree compatible Xbox, { Faire la gestion du FATX, systeme de chier propre a la Xbox, { XBE Bootloader. { Projet B : Faire de m^eme mais sans modications materielles. Fin 2002, le donneur anonyme s'est revele ^etre Michael Robertson, le fondateur de Lindows, un systeme d'exploitation alternatif compatible Windows et Linux. Ce dernier a nomme un comite technique charge de distribuer la somme mise en jeu. A cette date, le projet A etait complet, mais pas le projet B si bien que M. Robertson a remis en jeu les 100000 dollars du projet B... 3.3.2 Distributions Linux pour Xbox Il existe a ce jour 3 distributions stables : Mandrake 9, Ed's Debian, et Shallax's Gentoox. Mandrake fut la premiere, mais elle n'est pas mise a jour comme il le faudrait, ainsi, elle n'utilise pas le dernier noyau developpe pour Xbox, mais il reste possible de le mettre a jour. Les deux autres sont plus aboutis, le noyau et les drivers fournis sont plus recents. Avec ces distributions, on peut : { Naviguer sur internet. { E crire des e-mail. { E crire des documents (texte, tableur). { E couter de la musique. { Visionner des lms. { ... Il ne s'agit la que de quelques exemples, les systemes de paquetages traditionnels (.deb, .rpm) etant compatibles avec Xbox, il n'y a pas de limites. Installer Linux sur Xbox ne remet pas en cause l'utilisation originale de la machine, ces distributions utilisant l'espace libre laisse sur le disque dur, il demeure possible de jouer aux jeux Microsoft, sauvegarder ses parties, et lire des DVD. 24 3.3.3 Le projet B ou comment faire tout cela sans ouvrir la machine Un passionne denomme Habibi a reussi le 31 mars 2003 a executer une distribution Xbox allege (Xbox Linux Live) sans ouvrir la machine. C'est une premiere victoire mais cette solution reste assez marginale du fait qu'elle utilise un jeu ociel, et ne permet pas d'installer une vraie distribution Linux. Pour reussir cet exploit, il sut d'utiliser le jeu ((James Bond 007: Agent Under Fire)) et sa fonction de ((sauvegarder/charger)) qui enregistre l'evolution du joueur dans les missions. Il a utilise une bande de stockage USB reconnue par la Xbox pour y stocker la distribution precitee qu'il a ensuite chargee en exploitant une faille informatique bien connue : le ((depassement de memoire tampon)) (buer overow). Voici maintenant quelques idees qui permettrait d'executer du code non signe sur Xbox : { Factoriser la cle RSA 2048 bits (probleme algorithmique NP-Complet...) { Prendre a defaut le hachage SHA-1 des executables Microsoft pour garder l'ent^ete et modier le contenu de sections. Cela reviendrait a modier le corps des sections de telle facon que la cle hachee reste la m^eme. Cela est egalement tres improbable. { Demarrer la Xbox sans DVD conduit a l'execution du tableau de contr^ole Xbox pilote par les peripheriques USB. Il pourrait ^etre possible de provoquer un depassement de tampon quelque part dans le protocole USB... { Il existe des DVD video de demonstration (souvent dans la presse specialisee). Ces videos sont encodees avec le format proprietaire ((Bink)). Il faudrait alors comprendre ce format (dont la structure est gardee secrete) et trouver une faille (encore une fois de type depassement de tampon par exemple)...Le m^eme raisonnement pourrait s'appliquer en modiant un jeu original, mais cela est completement illegal et presente donc encore moins d'inter^et. 4 Conclusion Comme nous venons de le voir la Xbox est un PC dont le demarrage est fortement securise. Neanmoins Microsoft nous laisse penser que cette securite a ete developpee a la h^ate. En eet la cle RSA 2048 bits est certainement inviolable mais il est simple de ne pas executer l'algorithme cryptographique qui utilise cette cle ! Il sut de asher le bios de la Xbox pour la prendre le contr^ole de la machine. Ce bios est lui aussi securise, de plus l'algorithme RC4 ne semble pouvoir ^etre pris en defaut. Par contre le chier de demarrage (bootloader) est transfere en clair d'une puce interne de la Xbox vers la RAM. La securite de ces echanges est basee sur le fait qu'il est tres dicile d'intercepter des donnees vehiculees par un bus de 200 MHz. Un bus constitue d'un grand nombre de pistes et utilisant une frequence telle est dicilement derivable. Il faudra compter en centaine de millier d'euros pour recuperer les informations d'un tel systeme. Mais m^eme si cela revenais cher, il serait malgre tout possible de deriver les informations de ce bus, de recuperer le bootloader en clair, et apres quelque jours de travail, de ((casser)) completement la securite de la Xbox. Ce qui est etrange c'est qu'un bus possedant uniquement 8 pistes est utilise pour transferer 25 ce bootloader. Un jeune etudiant americain a alors pu dejouer la securite de la Xbox avec un appareil grand public a prix raisonnable. Ce bus n'utilise que 8 bits car les informations qui y circulent sont de faible taille, mais les ingenieurs de chez Microsoft n'etaient ils pas au courant que depuis des annees il existe des analyseurs logiques acceptant les contraintes techniques imposees dans ce cas? Une autre constatation des plus intrigantes est la suivante : la cle utilisee pour debloquer le disque dur semble reellement introuvable mais l'algorithme complique base sur le RC4 et le SHA-1 tombe a deux reprises sur des valeurs constantes. la cle est devenue inutile et le nouvel algorithme deux fois plus rapide ! La encore, combien de temps ces ingenieurs ont ils passe sur l'elaboration de cet algorithme pour ne pas se rendre compte de l'absurdite de leur travail? Nous avons vu que cette machine ressemble enormement a une machine commercialisee par nVidia et nous pensons que peu de travail a ete necessaire pour sortir une machine semblable a un ordinateur deja existant. Nous pensons aujourd'hui que Microsoft a passer tres peu de temps sur l'elaboration de cette machine multimedia et que le retard de plusieurs mois lors de sa sortie est probablement d^u a un "co^ut marketing". Il ne faut pas oublier que Microsoft n'avait jamais sortie de console de jeu et que sa concurrente, la PS2 de Sony serait de toute facon trop dicilement rattrapable. Ce que Microsoft cherche a dominer est peut ^etre la PS3 annonce pour 2004, ceci sans compter sur la discrete futur console de Nintendo. Il est alors possible que la Xbox soit volontairement fabriquee sans grand reexion pour que l'equipe Xbox de chez Microsoft puisse apprendre rapidement le monde des consoles de jeu video, qui, contrairement au monde PC est en etroite relation avec des pirates s'attaquant directement au materiel et non au logiciel. Comme nous l'avons vu beaucoup d'informations sur les erreurs realisees sur la Xbox sont disponibles sur Internet. Il est s^ur que la securite de la prochaine machine pourra, gr^ace a cela, ^etre beaucoup plus consistante. De plus il ne sera pas dicile de reprendre la m^eme architecture que la Xbox et d'y changer certains composants internes. Dans cette hypothese nous pensons que le processeur, le processeur graphique et la RAM seront changes pour la nouvelle Xbox, ces composants etant en perpetuel baisse gr^ace a la reussite du monde PC. Bien que la Xbox ne soit pas vraiment une reussite mondiale nous pensons qu'elle a ete une totale reussite pour Microsoft qui ne cherchait peut ^etre pas encore cela. Microsoft a su s'implanter dans le secteur et sortir Sega de la course, ce qui a long terme n'est pas negligeable. 26 References 1. 2. 3. 4. 5. http://www.xbox-scene.com http://xbox-linux.sourceforge.net http://www.hackingthexbox.com http://www.xboxhacker.net http://www.gotmod.com Informations generales diverses : 1. Comite technique ATA : http://www.t13.org 2. R.F.C. 2104 (detail HMAC) : http://www.networksorcery.com/enp/rfc/rfc2104.txt 3. Informations sur RC4 : http://www.uqtr.ca/ delisle/Crypto/prives/flux rc4.php 4. Informations sur les algorithmes de hachage : http://www.uqtr.ca/ delisle/Crypto/hachages 5. Informations sur SHA-1 : http://www.itl.nist.gov/fipspubs/fip180-1.htm 6. Interview de Dean Takahashi, auteur de ((Opening the Xbox: Inside Microsoft's Plan to Unleash an Entertainment Revolution)) : http://www.webtalkguys.com/article-xbox.shtml Nous remercions l'equipe ((Xbox Linux Project)) pour leur aide, en particulier Michael Steil et Jukka Aho qui nous ont eclaires quand nous en avions besoin. 27 SOS PC 06 - Services informatique à domicile (installation, formation, depannage, site web) Bienvenue sur le site de SOS PC 06 Mis à jour le 15.04.05 Nous proposons aux habitants des Alpes Maritimes et du Var, des services informatiques à domicile. La forme de notre entreprise nous permet de vous proposer un tarif defiant toute conccurence. En effet nous sommes à 30/h et nos déplacement sont gratuits !!! Verifiez que vous êtes bien dans notre zone de couverture. Des aides à domicile De l'initiation au dépannage le plus sensible nous somme en mesure de vous aider. Plus d'info. Des PC sur mesure Nous vous proposons dans notre boutique en ligne différents PC neufs. Nous vous offrons en ce moment, la livraison et l'installation à domicile. Notre premier prix est de 290, alors n'hesitez plus. Des consoles modifiées Nous modifions votre console (ps2, xbox ...) en 24h! Visitez notre boutique en ligne Des sites web pour vous faire connaître Pour réaliser le site web qui vous correspond le mieux, SOS PC 06 travail en équipe avec selinco.com Plus d'info Un autre service ? Si vous avez besoin d'un conseil ou d'un autre service, vous pouvez nous contacter pour nous présenter votre projet. SOS PC 06 - RCS Grasse (06) Siret 480 746 452 00014 - APE 527H - Contact http://www.sospc06.com/03/05/2005 17:58:40