Previous Up Next

4  Corrigé du DS du 11 janvier 2016

Tous documents autorisés. Répondez directement sur l’énoncé. Vous trouverez la correction sur le site web habituel.

4.1  Questions sur le cours

Voici quelques questions sur le cours d’infonuagique. Une réponse de plus de trois lignes est hors sujet (deux lignes suffisent généralement).

  1. Quel procédé permet d’obtenir une machine virtuelle avec un processeur de type différent de celui de la machine hôte ?
    Seule l’émulation permet d’obtenir une machine virtuelle avec un CPU totalement différent de celui de la machine hôte.
  2. Dans le système LVM (Logical Volume Manager) de Linux, quelle commande permet de libérer une partition physique ou un disque physique (PV) des blocs utilisés par une partition virtuelle (LV) ?
    La commande pvmove permet de transférer les blocs d’un PV vers un autre.
  3. Pour qu’un navigateur reconnaisse un site Web sécurisé comme valide faut-il que le certificat X509 de ce site soit directement signé par une autorité de certification connue du navigateur ? Sinon précisez la condition de validation.
    Non, le certificat du site doit être en bout d’une chaîne de certification dont l’origine est une autorité de certification reconnue par le navigateur.
  4. Avant que l’encryption WEP (Wired Equivalent Privacy) ne soit cassée par découverte de la clef WEP, quel autre procédé permettait de décoder les trames WiFi encryptées avec WEP ?
    L’idée était de constituer, par différentes techniques, un dictionnaire avec comme entrées les vecteurs d’initialisation et comme valeurs les flux aléatoires RC4 correspondants.
  5. Si vous souhaitez utiliser, comme procédé d’encryption, WPA-PSK, quelle précaution faut-il prendre ? Pourquoi ?
    La clef WPA doit être suffisament longue et utiliser un jeu de caractères assez riche. Dans le cas contraire la clef peut être cassée par force brute après capture de quelques paquets WiFi seulement.

4.2  Questions sur le TP

Voici quelques questions sur les travaux pratiques d’infonuagique. Une réponse de plus de trois lignes est hors sujet.

  1. Quel hyperviseur avez-vous utilisé pour votre machine virtuelle hébergeant un site Web ? Avec quel type de virtualisation ?
    Il s’agissait d’un hyperviseur Xen avec une machine virtuelle en mode para-virtualisation.
  2. Combien de serveurs de bases de données avez-vous installé pour openStack ?
    Un seul sur le noeud contrôleur. Les applications sur les noeuds réseau et de calcul se connectent sur le serveur mysql du noeud contrôleur.
  3. Décrivez la méthode utilisée pour ajouter deux cartes Ethernet sur le noeud réseau.
    Le fichier de configuration .cfg de la machine virtuelle a été modifié. Plus exactement deux descriptions de cartes Ethernet ont été ajoutées à la directive vif du fichier de configuration. La description consiste en une adresse Ethernet et en le commutateur virtuel correspondant au VLAN sur lequel connecter la carte.
  4. Dans quel fichier de configuration avez-vous enregistré les adresses IP de vos machines virtuelles Debian ?
    Le fichier de configuration IP sous Debian est /etc/network/interfaces.
  5. Quel est le rôle du module glance d’openStack ?
    Ce module gère les images des machines virtuelles d’openStack.

4.3  Exercice de configuration réseau

Il vous est demandé de configurer l’interface réseau d’une machine virtuelle déjà créée et installée dans un réseau local associé au réseau IPv4 192.168.226.0/28.

Répondez aux questions suivantes.

  1. Trouvez l’adresse IPv4 du routeur sachant qu’il possède la première adresse IPv4 utilisable du réseau.
    La première adresse disponible est 192.168.226.1.
  2. Donnez le masque réseau avec la notation classique, c’est à dire celle des adresses IPv4.
    Un masque avec 28 bits à 1 s’écrit de façon classique 255.255.255.240.
  3. Avec les éléments ci-dessus, donnez une configuration IP valide pour eth0 à saisir dans le fichier interfaces (répertoire /etc/network) sur la machine virtuelle. La machine virtuelle doit pouvoir contacter des machines à l’extérieur de son réseau local.
    Un exemple de configuration IP valide pour la machine virtuelle est :
    iface eth0 inet static
      address 192.168.226.2
      netmask 255.255.255.240
      gateway 192.168.226.1
    

4.4  Exercice de cassage de clef WiFi

Nous allons considérer un protocole d’identification basé sur celui de WPA (WiFi Protected Access) mais extrêmement simplifié :

Un analyseur réseau est utilisé pour capturer les trois premiers échanges de l’identification entre une station et le point d’accès.

paquet n°1
: aa 04 91 00 16 ;
paquet n°2
: aa 04 00 91 df 53 a8 ;
paquet n°3
: aa 04 91 00 a7 50 ;

Répondez aux questions suivantes :

  1. Quelle est l’adresse du point d’accès ? Quelle valeur aléatoire transmet-il à la station ?
    L’adresse du point d’accès est donnée par le second octet des paquets : 0x04. La valeur aléatoire du point d’accès est le premier octet des données du second paquet : 0xdf.
  2. Quelle est l’adresse de la station ? Quelle valeur aléatoire transmet-elle au point d’accès ?
    L’adresse de la station est donnée, par exemple, par le troisième octet du premier paquet : 0x91. La valeur aléatoire de la station est le premier octet des données du premier paquet : 0x16.
  3. Quel est le code calculé par le point d’accès ?
    Ce code est visible dans les deux derniers octets de données du second paquet : 0x53a8.
  4. A partir du code du point d’accès, donnez la formule mathématique pour retrouver la clef d’identification ou, à défaut, écrivez un programme C pour la découvrir.
    La méthode de calcul du code rend la découverte de la clef d’identification un peu complexe (du moins dans le cadre de cet examen, je ne doute pas qu’avec une méthode si primitive et un peu de temps vous seriez capable de mettre au point un algorithme efficace de découverte de clef). Par contre avec un espace si restreint pour la clef (256 valeurs seulement), le cassage par force brute est trival, voir le programme C ci-dessous.
    #include <stdio.h>
    #define MAC_STATION     0x91
    #define MAC_AP          0x04
    #define ALEA_STATION    0x16
    #define ALEA_AP         0xdf
    #define CST_AP          0x5555
    #define CODE_AP         0x53a8
    int main(void){
    int i;
    for(i=0;i<256;i++){
      long int key=MAC_STATION*MAC_AP*ALEA_STATION*ALEA_AP*i;
      long int code_ap=(key*CST_AP)&0xffff;
      if(code_ap==CODE_AP) printf("key=%02x\n",i);
      }
    }
    
    Ici la clef d’identification était 0x8d.

Previous Up Next