« Projets étudiants cryptographie et sécurité/BodinDeWinter XBOX RGH » : différence entre les versions

De Wiki du LAMA (UMR 5127)
Aller à la navigation Aller à la recherche
(Page créée avec « I. Introduction De document est destiné à un usage éducatif uniquement. Nous ne sommes pas responsable de l'utilisation frauduleuse des informations présentes dans ce ... »)
 
Aucun résumé des modifications
Ligne 1 : Ligne 1 :
=== Auteurs : Joris BODIN et Tim DE WINTER ===
I. Introduction

== I. Introduction ==

''' Présentation du "Reset Glitch Hack" Xbox 360 permettant l'exécution de code non signé par Microsoft '''

De document est destiné à un usage éducatif uniquement. Nous
De document est destiné à un usage éducatif uniquement. Nous
ne sommes pas responsable de l'utilisation frauduleuse des informations
ne sommes pas responsable de l'utilisation frauduleuse des informations
Ligne 8 : Ligne 13 :
millions d'exemplaires faisant de cette console la sixième plus vendue
millions d'exemplaires faisant de cette console la sixième plus vendue
de tout les temps.
de tout les temps.

Tout comme un ordinateur classique, la Xbox 360™ est assemblée
Tout comme un ordinateur classique, la Xbox 360™ est assemblée
sur une carte mère avec les composants classiques : un CPU (Central
sur une carte mère avec les composants classiques : un CPU (Central
Ligne 16 : Ligne 22 :
jeux au graphismes étonnant sont encore développés sur cette plate
jeux au graphismes étonnant sont encore développés sur cette plate
forme.
forme.

Processeur : Xenon triple-coeurs
Processeur : Xenon triple-coeurs
RAM : 512MB (2005)
RAM : 512MB (2005)
4GB (2010)
Disque dur : 20, 60, 120, 250, ou 320 GB
Disque dur : 20, 60, 120, 250, ou 320 GB
Processeur graphique : ATI Xenos 512MB
Processeur graphique : ATI Xenos 512MB

== II. Présentation du CPU ==

''' 1) Caractéristiques techniques '''

Le processeur Microsoft XCPU ou Xenon est le coeur du système. Crée par
IBM© et Microsoft© à partir de la série POWER (Performance Optimization With
Enhanced RISC), le Xenon est composé de 3 coeurs compatible SMT 2 voies
capable de virtualiser 6 processeurs. Le procédé de fabrication du Xenon a été
améliorer durant la période de commercialisation de Xbox 360™ afin de résoudre
les problèmes de température de la console. Le processeur est passé d'une
finesse de gravure de 90nm en 2005, à 60nm en 2007 (Xenon Falcon), puis à
45nm en 2010 (Xenon Trinity).
Le Xenon est munis de 128 bits de eFUSE, des "fusibles électronique" crées
par IBM qui permettent de vérifier la version du Kernel : à chaque modification /
mise à jour du Kernel, un eFUSE est détruit empêchant toute rétro-compatibilité.

Nom : Xenon
Nombre de transistors : 165 millions
Nombre de coeurs : 3
Vitesse d'horloge : 3,2 GHz
Mémoire intégrée : ROM et 64Kb de SRAM contenant le Secure
Bootloader de la console et l'hyperviseur de
cryptage qui génère

''' 2) Processus de lancement le l'OS : Secure Boot-loader '''

'' a) Qu'est-ce qu'un Boot-loader ? ''

Un Boot-loader est un programme écrit qui, au démarrage d'une
machine, permet de charger un système d’exploitation plus complexe.
Il à plusieurs tâches a accomplir :
• Intégrer le système d'exploitation dans la mémoire,
• Donner à celui-ci les informations dont il a besoin pour
fonctionner correctement,
• Changer l’environnement pour quelque chose de convenable
au système,
• Enfin il transfert le contrôle au système d’exploitation.

'' b) Le Secure Boot-loader de la Xbox 360 ''

Le Secure Boot-loader de la Xbox 360™ fonctionne comme un
boot-loader classique a la différence que le kernel est signé. Plus
précisément, il charge les données de l'OS présentes sur le disque dur
interne de la console puis les hash à l'aide du SHA (Secure Hash
Algorithm) en les comparant à des hash obtenu grâce à l'hyperviseur
de cryptage contenu dans la ROM du processeur. Microsoft© à mit en
place cette protection dans le but de rendre la console incompatible
avec toutes autres OS que celles éditées par eux même. Il est ainsi en
théorie impossible de lancer autre chose qu'une OS signée par
Microsoft©.

'' c) Processus de lancement supposé du kernel ''

Les informations concernant la méthode de génération du hash à partir
de l'hyperviseur de cryptage sont un peu floues car Microsoft© n'as pas
souhaité dévoiler le processus exact de fonctionnement de son Secure
Boot-loader.

1. Lancement de la console,
2. Le processeur exécute les premières instructions présentes dans sa
ROM : le Secure Boot-loader,
3. Copie des données de l'OS dans la RAM,
4. Hashage des données de l'OS à l'aide du SAH,
5. Génération d'un hash à l'aide de l'hyperviseur de cryptage de la ROM,
6. Comparaison des deux hash obtenu à l'aide de memcmp :
→ Si les deux hash correspondent, alors le boot peut se
poursuivre : On transfert le contrôle du système au kernel.
→ Si les deux hash sont différents, alors le boot est arrêter et la
procédure de lancement plante.

Problématique : Comment contrer cette protection et parvenir à lancer
un OS quelconque depuis une Xbox 360 ?

Version du 12 mars 2016 à 12:57

Auteurs : Joris BODIN et Tim DE WINTER

I. Introduction

Présentation du "Reset Glitch Hack" Xbox 360 permettant l'exécution de code non signé par Microsoft

De document est destiné à un usage éducatif uniquement. Nous ne sommes pas responsable de l'utilisation frauduleuse des informations présentes dans ce document. La Xbox 360™ est une console de salon développée par Microsoft© et commercialisée entre 2005 et 2006 partout dans le monde. Depuis son lancement, la console a été écoulée a plus de 83 millions d'exemplaires faisant de cette console la sixième plus vendue de tout les temps.

Tout comme un ordinateur classique, la Xbox 360™ est assemblée sur une carte mère avec les composants classiques : un CPU (Central Processing Unit), une GPU (Graphics Processing Unit), de la RAM GDDR3, un décodeur audio XMA, … La console de Microsoft© a été optimisée afin de faire fonctionner des applications graphiques exigeantes, or encore aujourd'hui, près de 10ans après sa sortie, des jeux au graphismes étonnant sont encore développés sur cette plate forme.

Processeur : Xenon triple-coeurs RAM : 512MB (2005) Disque dur : 20, 60, 120, 250, ou 320 GB Processeur graphique : ATI Xenos 512MB

II. Présentation du CPU

1) Caractéristiques techniques

Le processeur Microsoft XCPU ou Xenon est le coeur du système. Crée par IBM© et Microsoft© à partir de la série POWER (Performance Optimization With Enhanced RISC), le Xenon est composé de 3 coeurs compatible SMT 2 voies capable de virtualiser 6 processeurs. Le procédé de fabrication du Xenon a été améliorer durant la période de commercialisation de Xbox 360™ afin de résoudre les problèmes de température de la console. Le processeur est passé d'une finesse de gravure de 90nm en 2005, à 60nm en 2007 (Xenon Falcon), puis à 45nm en 2010 (Xenon Trinity). Le Xenon est munis de 128 bits de eFUSE, des "fusibles électronique" crées par IBM qui permettent de vérifier la version du Kernel : à chaque modification / mise à jour du Kernel, un eFUSE est détruit empêchant toute rétro-compatibilité.

Nom : Xenon Nombre de transistors : 165 millions Nombre de coeurs : 3 Vitesse d'horloge : 3,2 GHz Mémoire intégrée : ROM et 64Kb de SRAM contenant le Secure Bootloader de la console et l'hyperviseur de cryptage qui génère

2) Processus de lancement le l'OS : Secure Boot-loader

a) Qu'est-ce qu'un Boot-loader ?

Un Boot-loader est un programme écrit qui, au démarrage d'une machine, permet de charger un système d’exploitation plus complexe. Il à plusieurs tâches a accomplir : • Intégrer le système d'exploitation dans la mémoire, • Donner à celui-ci les informations dont il a besoin pour fonctionner correctement, • Changer l’environnement pour quelque chose de convenable au système, • Enfin il transfert le contrôle au système d’exploitation.

b) Le Secure Boot-loader de la Xbox 360

Le Secure Boot-loader de la Xbox 360™ fonctionne comme un boot-loader classique a la différence que le kernel est signé. Plus précisément, il charge les données de l'OS présentes sur le disque dur interne de la console puis les hash à l'aide du SHA (Secure Hash Algorithm) en les comparant à des hash obtenu grâce à l'hyperviseur de cryptage contenu dans la ROM du processeur. Microsoft© à mit en place cette protection dans le but de rendre la console incompatible avec toutes autres OS que celles éditées par eux même. Il est ainsi en théorie impossible de lancer autre chose qu'une OS signée par Microsoft©.

c) Processus de lancement supposé du kernel

Les informations concernant la méthode de génération du hash à partir de l'hyperviseur de cryptage sont un peu floues car Microsoft© n'as pas souhaité dévoiler le processus exact de fonctionnement de son Secure Boot-loader.

1. Lancement de la console, 2. Le processeur exécute les premières instructions présentes dans sa ROM : le Secure Boot-loader, 3. Copie des données de l'OS dans la RAM, 4. Hashage des données de l'OS à l'aide du SAH, 5. Génération d'un hash à l'aide de l'hyperviseur de cryptage de la ROM, 6. Comparaison des deux hash obtenu à l'aide de memcmp : → Si les deux hash correspondent, alors le boot peut se poursuivre : On transfert le contrôle du système au kernel. → Si les deux hash sont différents, alors le boot est arrêter et la procédure de lancement plante.

Problématique : Comment contrer cette protection et parvenir à lancer un OS quelconque depuis une Xbox 360 ?