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