Maths & NSI

Terminale

Architectures matérielles, systèmes d'exploitation et réseaux

Ce chapitre explore quatre facettes du fonctionnement concret d'un système informatique en réseau : l'intégration des composants matériels au sein d'un système sur puce, la gestion des processus par le système d'exploitation, l'acheminement des données par les protocoles de routage, et enfin la sécurisation des échanges grâce au chiffrement et au protocole HTTPS.

Composants intégrés d'un système sur puce

De la carte mère au système sur puce

Un ordinateur « classique » (PC de bureau) est construit autour d'une carte mère : un circuit imprimé sur lequel viennent se brancher le processeur, la mémoire vive, et différentes cartes d'extension (carte graphique, carte réseau...), chacune reliée par des bus. Cette organisation en composants séparés facilite la réparation et la mise à niveau (changer une seule pièce défectueuse), mais occupe un volume important.

Le système sur puce (SoC)

Un système sur puce, ou SoC (System on a Chip), regroupe sur une unique puce de silicium l'essentiel des composants d'un ordinateur :

  • un ou plusieurs processeurs (CPU), souvent multi-cœurs ;
  • de la mémoire vive (RAM) ;
  • un circuit graphique (GPU) ;
  • des contrôleurs de communication (Wifi, Bluetooth, réseau mobile...) ;
  • parfois des composants spécialisés (traitement d'image, reconnaissance faciale...).

Cette architecture équipe la quasi-totalité des téléphones, tablettes et cartes de type Raspberry Pi, et de plus en plus d'ordinateurs portables.

Avantages et inconvénients de l'intégration

Composants séparés (carte mère classique)Système sur puce (SoC)
TailleImportante (plusieurs cartes)Très réduite (quelques cm²)
VitesseCommunication via des bus plus longsComposants très proches : liaisons plus courtes et plus rapides
ConsommationPlus élevéeRéduite : idéale pour les appareils sur batterie
Dissipation thermiqueNécessite parfois un système de refroidissement dédiéMoins de chaleur à dissiper (mais concentrée)
Réparation / évolutivitéUn composant défaillant peut être remplacé seulUne panne d'un seul composant impose de remplacer toute la puce

L'intégration réduit donc la distance électrique entre les composants, ce qui limite les pertes et permet des fréquences de fonctionnement plus élevées, tout en réduisant la consommation électrique — au prix d'une réparabilité beaucoup plus faible.

Exemple : les processeurs ARM

Les architectures ARM, développées depuis les années 1990, sont très utilisées dans les SoC des appareils mobiles pour leur faible consommation électrique. On les retrouve par exemple dans le Raspberry Pi (processeur ARM Cortex, quatre cœurs) ou dans les puces des smartphones (séries Exynos, Bionic...). L'évolution du nombre de composants suit la loi de Moore, énoncée en 1975 par Gordon Moore (co-fondateur d'Intel) : le nombre de transistors présents sur une puce double environ tous les deux ans.

Exercice — Comparer PC classique et système sur puce

On souhaite concevoir un boîtier de vidéosurveillance autonome sur batterie, qui doit être le plus compact et le moins gourmand en énergie possible.

  1. Un tel boîtier devrait-il plutôt être conçu autour d'une carte mère classique ou d'un système sur puce (SoC) ? Justifier avec deux arguments.
  2. Citer un inconvénient du choix fait à la question 1, dans le cas où un seul composant du boîtier tombe en panne après la fin de la garantie.
  3. La puce choisie intègre un CPU, une RAM, un GPU et un module Wifi sur un seul circuit de quelques centimètres carrés. Pourquoi cette proximité physique des composants améliore-t-elle la vitesse de communication entre eux ?
Exercice — Identifier les composants intégrés sur la puce d'un smartphone

Voici la liste des éléments présentés comme intégrés sur la puce d'un smartphone récent, d'après sa fiche technique :

  • un processeur (CPU) 8 cœurs ;
  • 8 Go de mémoire vive (RAM) ;
  • un circuit graphique (GPU) ;
  • un modem 5G et un module Wifi/Bluetooth ;
  • un module de traitement d'image, utilisé par l'appareil photo ;
  • une carte réseau Ethernet, reliée par un câble RJ45 au routeur du domicile.
  1. Parmi ces six éléments, lequel n'a normalement pas sa place sur la puce (le SoC) d'un smartphone ? Pourquoi ?
  2. Pour les cinq éléments restants, à quelle catégorie de composants du cours chacun correspond-il (processeur, mémoire vive, circuit graphique, contrôleur de communication, ou composant spécialisé) ?
  3. À l'aide de la notion de « distance électrique » vue en cours, expliquer pourquoi regrouper ces composants sur une seule puce, plutôt que de les répartir sur des cartes séparées reliées par des bus, améliore à la fois la vitesse et la consommation.
Exercice — Loi de Moore : extrapoler le nombre de transistors sur une puce

D'après le cours, la loi de Moore énonce que le nombre de transistors présents sur une puce double environ tous les deux ans.

  1. On suppose qu'une puce comportait environ 1 milliard de transistors en 2010. En supposant que la loi de Moore se soit vérifiée depuis, combien de transistors compterait, en théorie, une puce comparable en 2026 ? Détailler le calcul (nombre de périodes de deux ans écoulées, puis facteur multiplicatif).
  2. Ce nombre vous semble-t-il facile à obtenir en pratique ? À l'aide du tableau de comparaison du cours, citer un inconvénient de l'intégration qui devient de plus en plus difficile à gérer à mesure que l'on entasse un tel nombre de composants sur une puce de quelques centimètres carrés.
  3. La loi de Moore décrite dans le cours est-elle une loi physique, comparable à la loi de la gravitation, ou autre chose ? Justifier en une phrase.

QCM — Systèmes sur puce

1. Que signifie l'acronyme SoC ?
2. Quel est le principal inconvénient de l'intégration poussée d'un système sur puce ?
3. La loi de Moore enonce que le nombre de transistors sur une puce double environ tous les deux ans. Si une puce comporte 2 milliards de transistors aujourd'hui, combien en comportera-t-elle environ dans 6 ans si cette tendance se poursuit ?

Gestion des processus et interblocage

Programme et processus

Un programme est un fichier statique, une suite d'instructions écrites sur le disque. Un processus, lui, désigne une instance d'exécution de ce programme à un instant donné : lancer deux fois le même programme crée deux processus distincts, avec chacun leur propre espace mémoire.

Les états d'un processus

Un système d'exploitation exécute en permanence bien plus de processus que le nombre de cœurs disponibles sur le processeur : il doit donc les faire alterner. Au cours de son existence, un processus passe par plusieurs états :

  • prêt : le processus est créé et attend d'accéder au processeur ;
  • élu : le processus a obtenu le processeur et s'exécute réellement ;
  • bloqué : le processus, en cours d'exécution, doit attendre une ressource (données à lire sur le disque, réponse réseau...) ; il libère alors le processeur plutôt que de le laisser inactif ;
  • terminé : le processus a fini son exécution (il ne peut terminer que depuis l'état élu).

Un processus élu qui se fait interrompre avant d'avoir terminé (par exemple si son temps alloué est écoulé) repasse à l'état prêt, en attendant d'être élu à nouveau. Un processus bloqué, une fois la ressource obtenue, repasse également à l'état prêt (et non directement élu).

L'ordonnancement

Lorsque plusieurs processus sont dans l'état prêt, c'est l'ordonnanceur (scheduler) du système d'exploitation qui décide lequel élire. Plusieurs politiques existent :

  • premier arrivé, premier servi (FIFO) : simple, mais un processus long peut faire attendre longtemps les suivants ;
  • plus court d'abord : efficace, mais suppose de connaître à l'avance la durée d'exécution de chaque processus (rarement possible en pratique) ;
  • par priorité : chaque processus reçoit un niveau de priorité ; risque qu'un processus de faible priorité ne soit jamais élu (famine) ;
  • tourniquet (round-robin) : chaque processus reçoit un court instant de temps processeur, appelé quantum ; s'il n'a pas terminé au bout de ce quantum, il retourne en fin de file, à l'état prêt. C'est la politique la plus courante pour un usage interactif, car elle garantit qu'aucun processus n'attend indéfiniment.

L'interblocage (deadlock)

Un interblocage survient lorsque plusieurs processus s'attendent mutuellement, sans qu'aucun ne puisse jamais progresser. Exemple classique à deux processus et deux ressources :

  1. P1P_1 demande et obtient la ressource R1R_1.
  2. P2P_2 demande et obtient la ressource R2R_2.
  3. P1P_1, toujours en cours, demande R2R_2 : elle est détenue par P2P_2, donc P1P_1 se bloque en l'attendant.
  4. P2P_2 demande à son tour R1R_1 : elle est détenue par P1P_1, donc P2P_2 se bloque également.

P1P_1 attend R2R_2 (détenue par P2P_2), et P2P_2 attend R1R_1 (détenue par P1P_1) : aucun des deux ne peut plus avancer. C'est un cycle d'attente, caractéristique de l'interblocage.

Des stratégies existent pour éviter ou détecter les interblocages (par exemple imposer un ordre total sur l'acquisition des ressources), mais elles ne sont pas au programme ici : il suffit de savoir identifier une situation d'interblocage.

Exercice — Ordonnancement par tourniquet

Trois processus P1, P2, P3 arrivent tous à l'instant 0, avec les durées d'exécution suivantes : P1 : 5 ms, P2 : 3 ms, P3 : 4 ms. On utilise un ordonnancement tourniquet avec un quantum de 2 ms (le processeur passe systématiquement au processus suivant de la file après 2 ms, si le processus en cours n'a pas terminé).

  1. Dérouler l'ordonnancement (donner la suite des processus élus, avec leur durée d'exécution à chaque tour) jusqu'à ce que les trois processus soient terminés.
  2. Donner l'instant auquel chaque processus se termine.
  3. Quel est l'intérêt du tourniquet par rapport à une politique « premier arrivé, premier servi » dans ce contexte ?
Exercice — Bac NSI — Sujet 0.B 2024 (exercice 2)

Exercice tiré du sujet zéro 0.B du bac NSI (2024), sur les systèmes d'exploitation, les commandes UNIX et l'ordonnancement de processus.

1. Différence entre logiciel libre et logiciel propriétaire. Rôle d'un système d'exploitation.

2. Chemin absolu de /home/elsa/documents/boulot/rapport.odt (déjà donné) ; chemin relatif de /home/max/images/photos_vac/photo_1.jpg depuis /home/elsa.

3. Depuis /home/elsa, on exécute cp documents/fiche.ods documents/boulot. Que contiennent documents et documents/boulot ensuite ?

4. Décrire le schéma à trois états d'un processus (prêt / élu / bloqué) avec ses transitions (élection, blocage, déblocage). Donner un exemple de passage élu→bloqué. Nommer une structure de données LIFO.

5. Ordonnancement FIFO (« par ordre de soumission ») pour 5 processus :

ProcessusArrivéeDurée
P103
P216
P344
P462
P571

Représenter le chronogramme d'exécution.

6. Reprendre avec l'algorithme « par tourniquet » (round-robin), quantum Q=2.

7. Décrire une situation d'interblocage entre deux processus P1, P2 se disputant deux ressources R1, R2.

Correction réservée aux abonnés Premium.

Créez un compte gratuit : votre première correction est offerte.

Exercice — Bac NSI — Sujet « 2 annulé » 2021 (exercice 4)

Exercice tiré du sujet NSI 2021 dit « 2 annulé », sur les processus et l'interblocage.

Partie A. 3 programmes partagent table traçante, modem, imprimante :

Programme 1              Programme 2              Programme 3
demander(table traçante) demander(modem)          demander(imprimante)
demander(modem)          demander(imprimante)     demander(table traçante)
exécution                exécution                exécution
libérer(modem)           libérer(imprimante)      libérer(table traçante)
libérer(table traçante)  libérer(modem)            libérer(imprimante)

1. Justifier qu'un interblocage peut se produire (p1, p2, p3 les processus associés).

2. Modifier l'ordre du Programme 3 pour l'empêcher.

3. Si p1 demande la table traçante déjà utilisée par p3, quel est l'état de p1 en attendant (élu/bloqué/prêt/terminé) ?

Partie B. Une commande Linux liste des processus (colonnes UID, PID, PPID, C, STIME, TTY, TIME, CMD), avec une chaîne de processus chromium-browser tous rattachés au PID 831, et un processus PID 6211 au temps d'exécution le plus long (00:01:16).

4. Quelle commande a produit cet affichage ? Quel est le PID parent des processus chromium-browser ? Quel PID a le temps d'exécution le plus long ?

Correction réservée aux abonnés Premium.

Créez un compte gratuit : votre première correction est offerte.

Exercice — Bac NSI — Session 2021 (exercice 2)

Exercice tiré d'un bac NSI de la session 2021 (centre d'examen non confirmé), sur les processus, l'ordonnancement, l'interblocage et les opérateurs booléens (chiffrement XOR).

QCM. 1. Commande affichant les processus en cours : dir, ps, man ou ls ? 2. Identifiant d'un processus sous UNIX : PIX, SIG, PID ou SID ? 3. Gestion du partage du processeur entre processus : interblocage, ordonnancement, planification ou priorisation ? 4. Commande interrompant un processus sous UNIX : stop, interrupt, end ou kill ?

Ordonnancement. Un processeur exécute, à chaque cycle, le processus disponible de plus petite valeur de priorité (préemption possible). P1 (durée 3, arrivée 3, priorité 1), P2 (durée 3, arrivée 2, priorité 2), P3 (durée 4, arrivée 0, priorité 3). Donner le processus exécuté à chaque cycle de 0 à 9.

Interblocage. Trois processus utilisent des ressources R1, R2, R3. Lequel des trois scénarios suivants provoque un interblocage ? Justifier.

  • Scénario 1 : P1 acquiert R1 ; P2 acquiert R2 ; P3 attend R1 ; P2 libère R2 ; P2 attend R1 ; P1 libère R1.
  • Scénario 2 : P1 acquiert R1 ; P2 acquiert R3 ; P3 acquiert R2 ; P1 attend R2 ; P2 libère R3 ; P3 attend R1.
  • Scénario 3 : P1 acquiert R1 ; P2 acquiert R2 ; P3 attend R2 ; P1 attend R2 ; P2 libère R2 ; P3 acquiert R2.

XOR. Avant chiffrement (masque jetable), m = 0b 0110 0011 0100 0110 (deux caractères ASCII de 8 bits). a) Identifier ces deux caractères. b) Avec la clé k = 0b 1110 1110 1111 0000, donner le message chiffré (XOR bit à bit). c) Dresser la table de vérité de (a XOR b) XOR b, et en déduire l'opération que doit effectuer un destinataire connaissant la clé pour déchiffrer.

Correction réservée aux abonnés Premium.

Créez un compte gratuit : votre première correction est offerte.

Exercice — Bac NSI — Amérique du Nord 2024 J1 (exercice 1, question 7 — interblocage)

Exercice tiré du bac NSI Amérique du Nord 2024 (jour 1), exercice 1, sur une situation d'interblocage entre processus ordonnancés par tourniquet.

Reprenons l'exemple des processus A (créé cycle 2, durée 3), B (créé cycle 1, durée 4), C (créé cycle 4, durée 3), D (créé cycle 0, durée 5), ordonnancés par la méthode du tourniquet décrite précédemment (voir l'exercice sur la file et l'ordonnancement). Ils utilisent des ressources partagées : un fichier commun, le clavier, le GPU, le port 25000. Détail des actions de chaque processus, dans l'ordre :

  • A : acquérir le GPU ; faire des calculs ; libérer le GPU.
  • B : acquérir le clavier ; acquérir le fichier ; libérer le clavier ; libérer le fichier.
  • C : acquérir le port ; faire des calculs ; libérer le port.
  • D : acquérir le fichier ; faire des calculs ; acquérir le clavier ; libérer le clavier ; libérer le fichier.

Chaque processus effectue une action de sa liste à chaque cycle où il est élu par le tourniquet. Montrer que l'ordre d'exécution obtenu aboutit à une situation d'interblocage.

Correction réservée aux abonnés Premium.

Créez un compte gratuit : votre première correction est offerte.

Exercice — Bac NSI — Polynésie 2023 J2 (exercice 3)

Exercice 3 (4 points) du sujet de bac NSI Polynésie 2023, jour 2.

  1. Avec ps -aef on obtient un extrait montrant, entre autres, les processus de PID 9617 (PPID 8887, commande /usr/lib/firefox/firefox), 9657, 9697, 9750, 9794 (tous de PPID 9617), et 9795 (PPID 9794) ; le processus 8887 a pour commande bash. a. Donner, sous forme d'un arbre de PID, la hiérarchie des processus liés à firefox. b. Indiquer la commande qui a lancé le premier processus de firefox. c. La commande kill supprime un processus via son PID (ex. kill 8600). Indiquer la commande permettant de supprimer tous les processus liés à firefox, et uniquement ceux-là.

  2. a. Recopier et compléter le schéma d'ordonnancement des processus (Nouveau → un premier état → un deuxième état → Terminé, avec un aller-retour vers un troisième état) avec les termes : Élu, En attente, Prêt, Blocage, Déblocage, Mise en exécution.

Quatre processus : P1 (arrivée 0, durée 8), P2 (arrivée 2, durée 6), P3 (arrivée 3, durée 2), P4 (arrivée 7, durée 2). Méthode : parmi les processus en attente, on exécute un cycle de celui dont la durée restante est la plus courte (égalité départagée par l'arrivée la plus ancienne), et on recommence jusqu'à épuisement.

Ordonnancement obtenu (exemple donné) : P1,P1,P1,P3,P3,P1,P1,P4,P4,P1,P1,P1,P2,P2,P2,P2,P2,P2 (18 cycles).

b. Le temps d'exécution d'un processus est la différence entre son instant de terminaison et son instant d'arrivée. Calculer la moyenne des temps d'exécution des quatre processus.

On modifie l'ordonnancement : le processeur exécute désormais deux cycles à chaque fois (au lieu d'un seul) du processus choisi.

c. Déterminer le nouvel ordonnancement (par blocs de 2 cycles). d. Calculer la nouvelle moyenne des temps d'exécution, et indiquer si cet ordonnancement est plus performant que le précédent.

  1. Chaque processus est représenté par une liste comportant autant d'éléments que de durées (en cycles), suivis d'autant de chaînes vides que sa date de création :
p1 = ['1.8','1.7','1.6','1.5','1.4','1.3','1.2','1.1']
p2 = ['2.6','2.5','2.4','2.3','2.2','2.1','','']
p3 = ['3.2','3.1','','','']
p4 = ['4.2','4.1','','','','','','','']
liste_proc = [p1, p2, p3, p4]

a. Recopier (sans les commentaires) et compléter choix_processus, qui renvoie l'indice du processus le plus court parmi ceux en liste d'attente :

def choix_processus(liste_attente):
    if liste_attente != []:
        mini = len(liste_attente[0])
        indice = 0
        ...
        return indice

b. Une fonction scrutation (non étudiée) parcourt liste_proc et renvoie la liste d'attente des processus en fonction de leur arrivée. Recopier et compléter ordonnancement :

def ordonancement(liste_proc):
    execution = []
    attente = scrutation(liste_proc, [])
    while attente != []:
        indice = choix_processus(attente)
        ... # A FAIRE (plusieurs lignes de code) ...
        attente = scrutation(liste_proc, attente)
    return execution
Correction réservée aux abonnés Premium.

Créez un compte gratuit : votre première correction est offerte.

Exercice — États des processus et ordonnancement en file

D'après le sujet de bac NSI 2021 (Métropole, candidats libres, sujet 2).

1. Les états possibles d'un processus sont : prêt, élu, bloqué et terminé.

  • a. À quoi correspond l'état élu ?
  • b. Représenter par un schéma les passages possibles entre ces états.

2. Quatre processus C1, C2, C3 et C4 sont créés sur un ordinateur, et aucun autre processus n'y est lancé. L'ordonnanceur place les processus prêts dans une file : un processus qui devient prêt est enfilé, et le processus élu est défilé. Un processus élu s'exécute jusqu'à ce qu'il se termine ou qu'il soit bloqué.

  • a. Une file fonctionne-t-elle selon le principe « premier entré, premier sorti » ou « dernier entré, premier sorti » ?
  • b. Les processus arrivent dans la file dans l'ordre C1, C2, C3, C4. Leurs durées d'exécution totales sont respectivement de 100, 150, 80 et 60 ms. Après 40 ms d'exécution, C1 lance une écriture sur disque qui dure 200 ms, pendant laquelle il est bloqué ; après 20 ms d'exécution, C3 lance une écriture de 10 ms, pendant laquelle il est bloqué. On sait que C2 est prêt de 0 à 40 ms, élu de 40 à 190 ms, puis terminé.

Donner, sur l'intervalle de 0 à 400 ms, les états successifs de C1, C3 et C4, avec les dates de changement.

Exercice — Systèmes sur puce et applications qui s'attendent mutuellement

D'après le sujet de bac NSI 2021 (Amérique du Nord).

Un constructeur automobile équipe ses bureaux d'ordinateurs munis d'un système d'exploitation et de plusieurs applications : un traitement de texte, un tableur, un logiciel de conception assistée par ordinateur (CAO) et un système de gestion de bases de données (SGBD).

1. Dans ses véhicules, il intègre des systèmes embarqués (GPS, freinage antiblocage ABS…) construits sur des systèmes sur puce (SoC). Citer deux avantages des systèmes sur puce par rapport à l'architecture classique d'un ordinateur.

2. Un ingénieur utilise en même temps les quatre applications. À un instant donné, l'état de leurs processus vis-à-vis de cinq données D1 à D5 est le suivant : M signifie que l'application mobilise la donnée, A qu'elle est en attente de cette donnée.

ApplicationD1D2D3D4D5
Traitement de texteMA–––
TableurA–––M
SGBD–MAA–
CAO––AMA

Montrer que les applications s'attendent mutuellement. Comment appelle-t-on cette situation ?

QCM — Processus et interblocage

1. Dans quel état se trouve un processus qui attend une ressource (par exemple une donnée à lire sur le disque) ?
2. Quelle est la condition qui caractérise un interblocage entre deux processus P1 et P2 ?
3. Trois processus P1, P2, P3 arrivent tous a l'instant 0 dans un ordonnanceur tourniquet (round-robin) avec un quantum de 4 ms, dans la file P1, P2, P3. Leurs besoins totaux en temps processeur sont : P1 = 6 ms, P2 = 2 ms, P3 = 5 ms (un processus qui termine avant la fin de son quantum cede immediatement le processeur, sans etre replace dans la file). A quel instant P1 termine-t-il son execution ?

Protocoles de routage

Le rôle d'un routeur

Un routeur est une machine possédant plusieurs cartes réseau (donc plusieurs adresses IP), qui relie entre eux différents réseaux. Lorsqu'un routeur reçoit un paquet, il doit décider vers quel prochain routeur (ou vers quelle machine) le transmettre : c'est le rôle du routage.

La table de routage

Chaque routeur dispose d'une table de routage, qui associe à chaque réseau de destination la passerelle (gateway) à utiliser, c'est-à-dire l'adresse du prochain routeur sur le chemin. Exemple simplifié :

DestinationPasserelle
192.168.0.0/25192.168.0.1
192.168.1.0/25192.168.1.1
100.10.42.0/25192.168.1.2
0.0.0.0/0192.168.1.3

Pour un paquet à destination d'une adresse IP donnée, le routeur cherche la ligne de la table correspondant à son réseau ; si aucune ligne ne correspond, il utilise la route par défaut (0.0.0.0/0), qui capte tout le trafic restant, en général vers Internet.

Exemple. Un paquet à destination de 100.10.42.100 est envoyé, d'après la table ci-dessus, vers la passerelle 192.168.1.2. Un paquet à destination de 8.8.8.8 (hors de toutes les lignes spécifiques) suit la route par défaut, vers 192.168.1.3.

Ces tables peuvent être renseignées statiquement par un administrateur réseau, ou mises à jour dynamiquement par un algorithme, indispensable dès que le réseau devient grand (Internet est ainsi divisé en dizaines de milliers de systèmes autonomes, ou AS).

Deux familles d'algorithmes de routage dynamique

RIP : algorithme à vecteur de distances

RIP (Routing Information Protocol) est le plus ancien algorithme de routage dynamique. Chaque routeur mesure la distance vers chaque réseau en nombre de sauts (le nombre de routeurs traversés). Périodiquement (toutes les 30 secondes), chaque routeur transmet sa table à ses voisins directs, qui la comparent à la leur et la mettent à jour si un chemin plus court apparaît. Chaque routeur n'a ainsi qu'une connaissance locale du réseau (on parle de routing by rumor), et la distance maximale autorisée est de 15 sauts.

OSPF : algorithme à état de liens

OSPF (Open Shortest Path First) corrige les limites de RIP : chaque routeur diffuse l'état de ses liaisons à tout le réseau, si bien que tous les routeurs finissent par avoir une vision globale et identique de la topologie (modélisable par un graphe pondéré, où les coûts dépendent par exemple du débit des liaisons). Chaque routeur applique alors l'algorithme de Dijkstra sur ce graphe pour calculer, depuis lui-même, le chemin le moins coûteux vers chaque destination.

RIPOSPF
MétriqueNombre de sautsCoût (lié par exemple au débit)
Vision du réseauLocale (voisins uniquement)Globale (tout le réseau)
Algorithme sous-jacentVecteur de distancesDijkstra (état de liens)
Limite15 sauts maximumRéseaux de petite/moyenne taille
Exercice — Suivre un paquet à travers une table de routage

On reprend la table de routage du routeur 1, présentée dans le cours :

DestinationPasserelle
192.168.0.0/25192.168.0.1
192.168.1.0/25192.168.1.1
100.10.42.0/25192.168.1.2
0.0.0.0/0192.168.1.3
  1. Un paquet arrive sur le routeur 1, à destination de la machine 192.168.1.101. Vers quelle passerelle est-il envoyé ?
  2. Un paquet est à destination de 192.168.4.1 (un serveur sur Internet). Quelle ligne de la table s'applique ? Vers quelle passerelle le paquet est-il envoyé ?
  3. Expliquer pourquoi cette table ne peut pas fonctionner si elle doit être tenue à jour manuellement pour un réseau de plusieurs milliers de machines, et donner le nom d'un algorithme permettant de l'automatiser.
Exercice — Bac NSI — Sujet zéro 2021 (exercice 5)

Exercice tiré du sujet zéro officiel du bac NSI (2021), sur les protocoles de routage RIP et OSPF.

Réseau de 7 routeurs A à G, reliés par : A-B, A-C, A-D, B-D, C-E, C-F, D-E, E-G, F-G.

RIP (métrique = nombre de sauts). Tables partielles données :

Table de A : B(B,1), C(C,1), D(D,1), E(C,2), F(C,2), G(C,3). Table de C : A(A,1), E(E,1), F(F,1), G(F,2).

1. Trajet de A à G en nombre minimal de sauts ? En déduire une table de routage possible pour G.

2. Le routeur C tombe en panne : reconstruire la table de A.

OSPF (métrique = somme des coûts, coût =108/d=10^8/d). Débits : A-B 10 Gb/s, A-C 10 Mb/s, A-D 100 Mb/s, B-D 20 Mb/s, C-E 50 Mb/s, C-F 100 Mb/s, D-E 100 Gb/s, E-G 100 Mb/s, F-G 100 Mb/s.

3. Vérifier que le coût de A-B vaut 0,01. La liaison B-D a un coût de 5 : quel est son débit ?

4. Déterminer le chemin de A à G de coût total minimal (en détaillant le raisonnement).

Correction réservée aux abonnés Premium.

Créez un compte gratuit : votre première correction est offerte.

Exercice — Bac NSI — Sujet 0.A 2024 (exercice 1)

Exercice tiré du sujet zéro 0.A du bac NSI (2024), sur les routeurs et les protocoles de routage RIP/OSPF.

Réseau local N1 : M1 (192.168.1.1/24), M2 (192.168.1.2/24), M3 (192.168.2.3/24). Depuis M1, ping 192.168.2.3 échoue (« Hôte inaccessible »).

1. Expliquer ce résultat.

2. Définir RAM ; expliquer le terme Linux ; expliquer pourquoi un routeur a besoin d'au moins deux interfaces réseau.

3. Attribuer une adresse IP valide à l'interface eth0 d'un routeur R1 ajouté à N1 (sachant M1=.1, M2=.2 déjà pris, réseau 192.168.1.0/24).

N1 est relié à N2, N3, N4 via des routeurs R1-R6. Table RIP de R1 (métrique = nb de routeurs traversés) :

Dest.InterfaceMétrique
N1eth00
N2eth11
N3eth22
N4eth12
N4eth22

4. Chemin d'un paquet de N1 vers N2 ?

5. Le routeur R3 (sur le chemin de N3 et de l'une des routes vers N4) tombe en panne : reconstruire la table de R1.

Protocole OSPF (coût =108/d=10^8/d). Types de liaison : Fibre (1 Gb/s), Fast-Ethernet (100 Mb/s), Ethernet (10 Mb/s).

6. Calculer le coût de chaque type de liaison.

R1-R2 est en Fibre, R1-R3 en Ethernet, R3-R6 en Fast-Ethernet, R2-R6 est de type inconnu. Table OSPF de R1 : N2 via eth1, coût 0,1 ; N4 via eth1 (R1-R2-R6), coût 1,1 ; N4 via eth2 (R1-R3-R6), coût 11.

7. En déduire le type et le débit de la liaison R2-R6.

8. La liaison R1-R3 devient Fibre : mettre à jour la table OSPF de R1 (entrées N3, N4).

Exercice — Bac NSI — Sujet « 2 annulé » 2021 (exercice 3)

Exercice tiré du sujet NSI 2021 dit « 2 annulé », sur le sous-réseautage IP et les protocoles de routage.

Réseau d'entreprise : L1 (192.168.1.0/24, PC P1/P2 via R1), L2 (172.16.0.0/16, serveurs S1/S2 via R6), interconnectés par R2, R3, R4, R5.

1. Adresses réseau de L1 et L2 ? Plus petite/plus grande adresse attribuable sur chacun ? Nombre maximal de machines sur chacun ?

2. Utilité de plusieurs chemins entre L1 et L2 ? Avec la topologie R1-R2, R2-R3, R2-R5, R3-R4, R3-R5, R4-R5, R5-R6, chemin le plus court (en sauts) entre R1 et R6 ? Avec coûts Ether=10, FastEther=1 sur R1-R2(Ether), R2-R5(Ether), R5-R6(Ether), R2-R3(FastEther), R3-R4(FastEther), R4-R5(FastEther), R3-R5(Ether), quel chemin R1→R6 a le coût minimal ?

3. Compléter les tables de routage de R5 et R6 pour que le trafic L1↔L2 emprunte le chemin le plus court en sauts.

Correction réservée aux abonnés Premium.

Créez un compte gratuit : votre première correction est offerte.

Exercice — Bac NSI — La Réunion 2022 (exercice 5)

Exercice tiré du bac NSI La Réunion 2022 (Jour 1), sur l'adressage IP et la notation CIDR.

Deux réseaux non reliés physiquement pour une "LAN party" : réseau 1 (switch1) avec des serveurs 172.150.4.10, 172.150.4.3, et le PC3 en 172.150.4.30/24 ; réseau 2 (switch2) avec des PC en 192.168.5.10, .25, .27, .28.

1.a. Combien d'octets compose une adresse IPv4 ? 1.b. Notation décimale du masque associé à /24 ?

2. Pour le PC3 (172.150.4.30/24) : conversion binaire de l'IP, masque en binaire, ET logique bit à bit, adresse réseau décimale.

3.a. Parmi ces propositions, laquelle/lesquelles conviendrai(en)t pour un 4ᵉ PC du réseau 1 ? 1) 172.154.4.30 2) 172.150.4.10 3) 172.150.10.257 4) 172.150.4.11 5) 172.150.4.0 6) 172.150.4.200 3.b. Commande système pour connaître sa propre adresse IP ?

4. On relie directement switch1 à switch2 pour que toutes les machines communiquent. Pourquoi est-ce insuffisant ? Proposer une alternative.

5. liste_IP = [[192,168,10,1],[192,168,10,25],[192,168,10,13]]. Écrire adresse(ip, liste_IP) qui ajoute ip et affiche "pas trouvée, ajoutée" si absente, ou affiche "trouvée" sinon.

Exercice — Bac NSI — Métropole 2022 (exercice 3)

Exercice tiré du bac NSI Métropole 2022 (Jour 1), sur les représentations binaires et les protocoles de routage RIP/OSPF.

1.a. Donner en décimal l'adresse IPv4 11000000.10101000.10000000.10000011. 1.b. Réseau A : toutes les adresses en 192.168.128._ _ _. Combien d'adresses différentes possibles ?

2. Tables RIP (métrique = sauts) de 5 routeurs : A(A0,B1,C1,D1,E2), B(A1,B0,C2,D1,E2), C(A1,B2,C0,D1,E2), D(A1,B1,C1,D0,E1), E(A2,B2,C2,D1,E0). 2.a. Routeurs directement reliés à A ? 2.b. Représenter sommairement le graphe des 5 routeurs.

3. OSPF : métrique =108/deˊbit(bps)=10^8/\text{débit(bps)}. Compléter :

Débit100 kbps500 kbps?100 Mbps
Métrique1 000?101

4. Réseau de 7 routeurs F à L. Liaisons : F–G(8), F–H(5), F–I(20), G–I(6), G–L(3), H–J(4), H–I(20), I–J(5), L–J(2), J–K(3), I–K(15). Table partielle de F (F=0,G=8,H=5). 4.a. Chemin de F vers I (justifier). 4.b. Compléter la table de routage de F (I,J,K,L). 4.c. Une unique panne qui force tout le trafic vers F à passer par G ?

Correction réservée aux abonnés Premium.

Créez un compte gratuit : votre première correction est offerte.

Exercice — Bac NSI — Métropole session de remplacement 2022 (exercice 4)

Exercice tiré du bac NSI Métropole (session de remplacement) 2022, sur l'architecture de Von Neumann et les réseaux (adressage IP, protocole RIP).

1. Entre deux schémas proposés (l'un montrant Mémoire ↔ Processeur{UC,UAL} avec Entrées/Sorties reliées au Processeur ; l'autre isolant l'UAL seule comme "Processeur", l'UC étant séparée), lequel représente le mieux une architecture de Von Neumann ?

Réseau : R1 (LAN01, 192.168.10.0/24, DHCP+PC01-03) relié à R2 (Internet, 90.10.20.0/24, via 2.100.40.0/24), R3 (via 3.100.30.0/24), R4 (via 4.10.10.0/24) ; R3–R4 via 4.20.10.0/24 ; R3–R5 via 5.30.20.0/24 ; R5–R7 via 7.30.40.0/24 ; R4–R6 via 6.10.30.0/24.

2. Proposer une adresse IPv4 pour PC02 de LAN01. 3. Combien de machines maximum sur LAN01 (masque /24) ? 4. Rôle d'un switch ? 5. Rôle d'un routeur ?

Table de routage RIP partielle de R1 :

DestinationPasserelleMétrique
192.168.10.0/240.0.0.00
2.100.40.0/242.100.40.11
3.100.30.0/243.100.30.21
4.10.10.0/244.10.10.21
4.20.10.0/24......
7.30.40.0/24......
6.10.30.0/24......
90.10.20.0/242.100.40.12

6. Compléter les lignes incomplètes. 7. Si la liaison R1–R2 tombe : que devient la ligne « Internet » ?

Correction réservée aux abonnés Premium.

Créez un compte gratuit : votre première correction est offerte.

Exercice — Bac NSI — Centres étrangers 2021 (exercice 4)

Exercice tiré du bac NSI Centres étrangers 2021 (Jour 1), sur l'adressage IP et la notation CIDR.

Réseau de 8 PC, 3 switchs et 3 routeurs organisés en 3 sous-réseaux : SWITCH1 (172.16.0.0/16, PC1-3), SWITCH2 (192.168.20.0/24 : PC6 en 192.168.20.11/24, PC7 en 192.168.20.10/24, PC8 à déterminer), SWITCH3 (192.168.0.0/24, PC4-5).

1.a. Combien d'octets compose une adresse IPv4 ? 1.b. PC7 = 192.168.20.10/24. Conversion binaire sur 4 octets ? 1.c. Masque /24 en binaire ? 1.d. Masque en décimal ?

2. Adresse réseau = ET logique bit à bit (IP ∧ masque). Donner l'adresse réseau en binaire, puis en décimal.

3. Parmi ces adresses, laquelle/lesquelles conviendrai(en)t pour PC8 (même réseau que PC6/PC7) ? 192.168.20.0 / 192.256.20.11 / 192.168.20.30 / 192.168.20.230 / 192.168.20.260 / 192.168.27.11

4. dec_bin(n) prend un entier 0-255 et renvoie sa conversion binaire (liste de 8 éléments). Exemple : dec_bin(10) → [0,0,0,0,1,0,1,0]. Écrire IP_bin(adresse), qui prend une liste de 4 entiers et renvoie une liste de 4 listes binaires, via dec_bin. Exemple : IP_bin([192,168,0,1]) → [[1,1,0,0,0,0,0,0],[1,0,1,0,1,0,0,0],[0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,1]].

Correction réservée aux abonnés Premium.

Créez un compte gratuit : votre première correction est offerte.

Exercice — Bac NSI — Nouvelle-Calédonie 2022 J2 (exercice 4)

Exercice tiré du bac NSI Nouvelle-Calédonie 2022 (jour 2), sur l'adressage IP et les protocoles de routage (RIP, OSPF).

Trois salles T1, T2, T3 (réseaux locaux avec commutateurs S1, S2, S3) plus un serveur (S4), interconnectés par les routeurs R1 à R4 (masque /24 partout). Extrait des adresses : R1 (eth1 195.168.1.1 côté S1, eth2 196.163.2.1 côté R2, eth3 194.162.1.1 côté R4) ; R2 (eth1 197.162.1.1 côté S2, eth2 196.163.2.2 côté R1, eth3 198.164.3.1 côté R3, eth4 193.154.5.1 côté R4) ; R4 (eth1 220.10.1.1 côté S4, eth2 194.162.1.2 côté R1, eth3 193.154.5.2 côté R2, eth4 200.158.4.2 côté R3). Portable 1 (S1) : 195.168.1.40 ; Portable 5 (S2) : 197.162.1.50 ; Portables 6-9 (S3) : 199.160.1.60-63 ; Serveur (S4) : 220.10.1.12.

1. a) Adresse du réseau local de Portable 3 (relié à S1). b) Une adresse possible pour Portable 3. c) Nombre d'adresses encore disponibles pour Portable 4 (réseau T2), en justifiant.

2. Donner les adresses IP des trois interfaces de R3 (première adresse disponible de chaque réseau connecté : S3, R2, R4).

3. Portable 1 veut joindre Portable 5. a) Trois parcours possibles. b) Le plus court chemin RIP (sauts). c) Si R1-R2 se rompt, le nouveau plus court chemin RIP.

4. Type de câble pour reconnecter R1-R2 (Internet / VGA / Ethernet / HDMI) ?

5. OSPF : coût = 10^9/d (d en bit/s). Débits (Mbps) : R1-R4:1000, R2-R3:10, R2-R4:1000, R3-R4:20, R1-R2:inconnu. a) La liaison R1-R2 a un coût de 10 : son débit en Mbps ? b) Portable 1 -> Portable 5, R1 doit envoyer à R2 : chemin de meilleur coût entre R1 et R2, en justifiant.

Correction réservée aux abonnés Premium.

Créez un compte gratuit : votre première correction est offerte.

Exercice — Bac NSI — Nouvelle-Calédonie 2022 J2 (exercice 5)

Exercice tiré du bac NSI Nouvelle-Calédonie 2022 (jour 2), sur les masques de réseau et les tables de routage RIP (avec une fonction Python).

1. Un masque de réseau valide, sur 32 bits, est une suite de 1 suivie d'une suite de 0. a) 255.255.225.0 et 255.255.224.0 sont-ils valides ? Justifier. b) convBin(liste) convertit 4 entiers (0 à 255) en liste de 32 bits. En considérant /0 et /32 comme valides, écrire cidr(bits), qui renvoie l'entier n de la notation CIDR si bits code un masque valide, -1 sinon.

2. Quelle commande affiche la table de routage : dir/ls, cacls/chmod, route print/ip route, ping, ou tracert/traceroute ?

3. Réseau à 3 routeurs R1 (eth0 192.168.1.1 côté PC, eth1 192.168.2.1 côté R2), R2 (eth0 192.168.2.2 côté R1, eth1 192.168.3.2 côté R3), R3 (eth0 192.168.3.3 côté R2, eth1 192.168.4.3 côté serveur). a) À l'étape 1 (mise en service), donner les tables de R2 et R3 (réseaux directement connectés uniquement). b) À l'étape 2 (R2 diffuse d'abord sa table, puis R1/R3 diffusent la leur à R2, qui se stabilise à : 2.0/24 direct, 3.0/24 direct, 1.0/24 via 192.168.2.1 - 1 saut, 4.0/24 via 192.168.3.3 - 1 saut), donner la table de R1. c) À l'étape 3 (même mécanisme), donner à nouveau la table de R1.

Correction réservée aux abonnés Premium.

Créez un compte gratuit : votre première correction est offerte.

Exercice — Bac NSI — Session 2021 (exercice 5)

Exercice tiré d'un bac NSI de la session 2021 (centre d'examen non confirmé), sur les réseaux et les protocoles de routage RIP et OSPF.

Réseau à 6 routeurs R1-R6 ; le réseau local L1 est relié à R1, L2 à R6. Liaisons : R1-R3, R1-R2, R3-R2, R3-R4, R2-R4, R4-R5, R2-R5, R4-R6, R2-R6, R5-R6, R1-L1, R6-L2 (réseau 54.37.122.0/24).

Extraits de tables de routage vers 54.37.122.0/24 : R1 (passerelle 86.154.10.1, sur le lien R1-R2) ; R2 (passerelle 37.49.236.22, sur le lien R2-R6) ; R3 (passerelle 62.34.2.8, sur le lien R3-R4) ; R4 (passerelle 94.23.122.10, sur le lien R4-R6) ; R5 (passerelle 218.32.15.1, sur le lien R5-R6).

1. a) D'après la table de R1, vers quel routeur envoie-t-il un paquet de L1 vers L2 ? Justifier. b) Nommer les routeurs traversés.

2. La liaison R1-R2 est rompue. a) Donner, avec RIP (nombre de sauts), l'un des deux chemins possibles de L1 vers L2. b) Quelle(s) ligne(s) du tableau des passerelles est (sont) modifiée(s) ?

3. La liaison R1-R2 est rétablie ; on passe à OSPF (coût = 10^9/BP). Coûts : R1-R2:100, R1-R3:100, R2-R3:?, R2-R4:1, R2-R5:10, R2-R6:10, R3-R4:10, R4-R5:1, R4-R6:10, R5-R6:1. a) La bande passante de R2-R3 est 10 Mbps : calculer son coût. b) Déterminer le chemin de L1 à L2 selon OSPF. c) Indiquer pour quel(s) routeur(s) la table de routage vers L2 est modifiée par rapport à RIP.

Correction réservée aux abonnés Premium.

Créez un compte gratuit : votre première correction est offerte.

Exercice — Bac NSI — Amérique du Nord 2024 J2 (exercice 3, question 1 — adressage IP)

Exercice tiré du bac NSI Amérique du Nord 2024 (jour 2), exercice 3 (question sur l'adressage IP, préalable à l'étude de la blockchain nsicoin).

Un réseau local relie les machines d'Alice (192.168.1.1) et de Bob (192.168.1.2). L'adresse de diffusion, réservée, est 192.168.1.255 ; le masque de ce réseau local est 255.255.255.0.

Donner une adresse IP possible pour la machine de Charlie afin qu'elle puisse communiquer avec celles d'Alice et de Bob dans ce réseau local. Justifier en donnant toutes les conditions à respecter dans le choix de cette adresse IP.

Correction réservée aux abonnés Premium.

Créez un compte gratuit : votre première correction est offerte.

Exercice — Bac NSI — Centres étrangers 2024 J1 (exercice 2)

Exercice 2 (6 points) du sujet de bac NSI Centres étrangers (groupe 1) 2024, jour 1.

Une adresse IPv4 (32 bits) est notée en 4 octets a.b.c.d. La notation a.b.c.d/n (CIDR) signifie que les n premiers bits représentent la partie « réseau », les bits restants la partie « machine ». L'adresse dont tous les bits « machine » sont à 0 est l'« adresse du réseau » ; celle dont ils sont tous à 1 est l'« adresse de diffusion ».

Un réseau relie deux réseaux locaux L1 et L2 par l'intermédiaire de 8 routeurs (A à H). L1 utilise un masque sur 24 bits (255.255.255.0) ; L2 utilise un masque sur 16 bits, avec des adresses 172.16.x.x.

Partie A : adresses IP

  1. Donner le masque de sous-réseau des machines de L2, en notation décimale pointée.

Concernant L2 :

  1. Donner l'adresse du réseau.
  2. Donner l'adresse de diffusion.
  3. Donner le nombre maximum de machines pouvant être connectées à ce réseau.

Partie B : protocoles de routage

Extraits des tables de routage des 8 routeurs (règle vers L2) : A route via H ; B route via C ; C route via D ; D est directement connecté à L2 ; E route via D ; F route via E ; G route via H ; H route via D.

  1. À l'aide de ces informations, donner un chemin (nommer les routeurs traversés) suivi par un message envoyé de L1 (connecté à A) vers L2.

La liaison entre les routeurs H et D est rompue.

  1. Sachant que le protocole de routage RIP est utilisé (distance en nombre de sauts), et que le graphe des liaisons restantes est A–B, A–H, A–G, B–C, C–H, C–D, D–E, E–F, F–H, F–G, G–H, donner les nouveaux chemins que pourra suivre un message allant de L1 vers L2.
  2. Choisir un des chemins de la question précédente. Donner le(s) routeur(s) dont la règle de routage à destination de L2 est obligatoirement modifiée, et écrire la (les) nouvelle(s) règle(s).

La liaison H–D est rétablie. Pour tenir compte du débit des liaisons, on utilise désormais le protocole OSPF (distance liée au coût des liaisons), avec couˆt=109BP\text{coût} = \dfrac{10^9}{BP} (BP : bande passante en bit/s).

Bandes passantes des liaisons du réseau : A–B, A–H, A–G, B–C, C–D, F–H, G–H : 1 Gbit/s ; C–H, D–H : 100 Mbit/s ; D–E, E–F, F–G : 10 Gbit/s.

  1. Calculer le coût des liaisons pour les 3 valeurs de bande passante présentes ci-dessus.
  2. Déterminer le chemin que suivra un message allant de L1 vers L2, et donner son coût.
  3. La liaison entre les routeurs G et F est rompue. Déterminer le nouveau chemin suivi par un message allant de L1 vers L2, et donner son coût.
Correction réservée aux abonnés Premium.

Créez un compte gratuit : votre première correction est offerte.

QCM — Protocoles de routage

1. Que mesure l'algorithme RIP pour choisir la meilleure route vers un réseau ?
2. Quelle est la principale différence entre OSPF et RIP ?
3. D'apres la table de routage donnee en exemple dans le cours (192.168.0.0/25 -> 192.168.0.1 ; 192.168.1.0/25 -> 192.168.1.1 ; 100.10.42.0/25 -> 192.168.1.2 ; 0.0.0.0/0 -> 192.168.1.3), vers quelle passerelle un paquet a destination de l'adresse 192.168.0.50 est-il envoye ?

Sécurisation des communications : chiffrement et HTTPS

Le chiffrement symétrique

Un chiffrement est dit symétrique lorsque la même clé sert à chiffrer et à déchiffrer un message. Le plus ancien exemple est le chiffrement de César : chaque lettre est décalée d'un même nombre fixe de rangs dans l'alphabet (la clé).

def chiffre_cesar(message, cle):
    """Chiffre un message (majuscules, A-Z) par decalage de cle rangs"""
    resultat = ""
    for lettre in message:
        if lettre.isalpha():
            rang = (ord(lettre.upper()) - ord('A') + cle) % 26
            resultat += chr(rang + ord('A'))
        else:
            resultat += lettre
    return resultat
 
def dechiffre_cesar(message, cle):
    """Dechiffre un message chiffre par decalage de cle rangs"""
    return chiffre_cesar(message, -cle)

Avec seulement 26 clés possibles, le chiffrement de César est trivial à casser par force brute (essayer toutes les clés). Le standard actuel, AES (Advanced Encryption Standard), utilise des clés de 128 à 256 bits, soit jusqu'à 2256≈10772^{256} \approx 10^{77} clés possibles : une attaque par force brute y est totalement inenvisageable. Mais un chiffrement symétrique pose un problème pratique : comment transmettre la clé secrète à son interlocuteur sans qu'elle puisse être interceptée ?

Le chiffrement asymétrique

Le chiffrement asymétrique (proposé par Diffie et Hellman en 1976, puis mis en œuvre par l'algorithme RSA en 1978) résout ce problème en utilisant deux clés différentes :

  • une clé publique, que l'on peut diffuser librement, utilisée pour chiffrer ;
  • une clé privée, gardée secrète par son propriétaire, utilisée pour déchiffrer.

Analogie du cadenas. Barbara fabrique un cadenas ouvert (sa clé publique) et en garde la seule clé (sa clé privée). Elle envoie le cadenas ouvert à Albert : n'importe qui peut le voir. Albert enferme son message dans une boîte qu'il ferme avec le cadenas de Barbara, puis la lui envoie. Même en interceptant la boîte fermée, un espion ne peut pas l'ouvrir sans la clé privée, restée chez Barbara : seule Barbara peut donc lire le message.

Le chiffrement asymétrique est cependant beaucoup plus coûteux en calcul que le chiffrement symétrique : il n'est pas utilisé pour chiffrer de gros volumes de données, mais pour échanger en toute sécurité une clé symétrique.

Le protocole HTTPS

HTTPS combine les deux approches pour sécuriser la navigation web : le chiffrement asymétrique sert uniquement à échanger une clé, puis toute la communication utilise un chiffrement symétrique (beaucoup plus rapide). Déroulement simplifié d'une connexion HTTPS :

  1. Le client (le navigateur) envoie une demande de connexion sécurisée au serveur.
  2. Le serveur répond en envoyant sa clé publique, accompagnée d'un certificat signé par une autorité de certification (qui garantit que la clé appartient bien au bon site, et non à un imposteur).
  3. Le client vérifie ce certificat, puis génère une clé de session symétrique (AES), qu'il chiffre avec la clé publique du serveur avant de l'envoyer.
  4. Seul le serveur, grâce à sa clé privée, peut déchiffrer cette clé de session. C'est la fin de la poignée de main (handshake).
  5. Client et serveur échangent ensuite toutes leurs données chiffrées symétriquement avec cette clé de session, connue d'eux seuls.

Ce mécanisme hybride répond aux deux failles du simple protocole HTTP : il empêche un tiers de lire les données échangées (elles sont chiffrées), et grâce au certificat, il empêche un tiers de se faire passer pour le serveur légitime.

Exercice — Chiffrement de César et rôle des clés en HTTPS

Partie A. En utilisant les fonctions chiffre_cesar et dechiffre_cesar du cours :

  1. Donner le résultat de chiffre_cesar("NSI", 3).
  2. Un message a été chiffré par décalage de César et donne "KHOOR". Sachant que le message original est "HELLO", quelle est la clé utilisée ?

Partie B. Lors d'une connexion HTTPS à un site web :

  1. Quelle clé (publique ou privée) le serveur envoie-t-il au client en clair ? Pourquoi cela ne compromet-il pas la sécurité de l'échange ?
  2. Pourquoi le client et le serveur n'utilisent-ils pas le chiffrement asymétrique pour toute la communication, plutôt que de l'utiliser seulement pour échanger une clé de session symétrique ?
Exercice — Bac NSI — Amérique du Nord 2024 J2 (exercice 3, partie B — hachage et minage)

Exercice tiré du bac NSI Amérique du Nord 2024 (jour 2), exercice 3 partie B, sur la sécurisation d'une blockchain par hachage et minage (preuve de travail).

On enrichit la classe Bloc de trois attributs : hash_bloc_precedent (le hash du bloc précédent, ou "0" s'il n'y en a pas), nonce (entier, fixé à 0 avant minage), hash (calculé par calculer_hash, non détaillé ici). Propriétés du hash : il dépend de tout le contenu du bloc et uniquement de lui ; il se calcule rapidement ; la moindre modification du bloc change complètement le hash ; il est impossible de retrouver le bloc à partir de son hash ; deux blocs de même hash sont identiques. « Miner » un bloc consiste à trouver une valeur de nonce telle que hash commence par "00".

11. Expliquer en quoi consiste la recherche exhaustive de cette valeur de nonce.

12. Donner, en justifiant, la valeur de hash_bloc_precedent du bloc0 (premier bloc de la chaîne).

13. Le hash étant codé sur 256 bits, donner le calcul du nombre de hash possibles.

14. Compléter le code de minage_bloc :

def minage_bloc(self):
    """modifie le nonce d'un bloc pour que son hash commence par '00'
    en enumerant tous les entiers naturels en partant de 0."""
    self.nonce = 0
    self.hash = self.calculer_hash()
    while ... :
        self.nonce = ...
        self.hash = ...
Correction réservée aux abonnés Premium.

Créez un compte gratuit : votre première correction est offerte.

Exercice — Casser un chiffre de César, puis chiffrer avec Vigenère

D'après un cours de cryptographie de NSI Terminale.

Le chiffre de César décale chaque lettre d'un même nombre de rangs dans l'alphabet (avec un décalage de 3, A devient D, B devient E… et X devient A). On ne chiffre que des lettres majuscules.

  1. Combien de clés différentes le chiffre de César offre-t-il ?
  2. Compléter les fonctions suivantes, à l'aide de ord (code d'un caractère) et de chr (caractère d'un code).
def decale(lettre, cle):
    """Décale une lettre majuscule de cle rangs dans l'alphabet."""
    rang = ...(lettre) - ...("A")
    rang = (rang + ...) % ...
    return ...(rang + ord("A"))
 
def chiffre_cesar(phrase, cle):
    texte_chiffre = ""
    for ... in ...:
        texte_chiffre += ...
    return texte_chiffre
  1. Un message a été chiffré avec une clé inconnue : PRZRFFNTRARPBAGVRAGEVRAQVAGRERFFNAG. Écrire un programme qui le déchiffre par force brute, puis donner la clé et le message.
  2. Le chiffre de Vigenère utilise une clé de plusieurs lettres, répétée le long du message : avec la clé NSI, on décale les lettres de rang 1, 4, 7… de 14 (N est la 14ᵉ lettre), celles de rang 2, 5, 8… de 19 (S), et celles de rang 3, 6, 9… de 9 (I). Chiffrer RENDEZVOUS, puis écrire une fonction vigenere(texte, cle). Pourquoi ce chiffre résiste-t-il mieux à l'analyse que celui de César ?
Exercice — Le masque jetable : chiffrer avec le OU exclusif

D'après un cours de cryptographie de NSI Terminale.

Le OU exclusif (XOR, opérateur ^ en Python) s'applique bit à bit à deux entiers : 110 ^ 66 vaut 44. Pour chiffrer un caractère avec un caractère de la clé, on calcule le XOR de leurs codes.

  1. Chiffrer à la main le mot NSI avec la clé 42 (appliquée à chaque lettre), sachant que les codes de N, S et I sont 78, 83 et 73.
  2. Dresser la table de vérité de (x⊕y)⊕y(x \oplus y) \oplus y. Quelle propriété en déduit-on pour déchiffrer ?
  3. Écrire une fonction xor(a, b) qui renvoie le caractère dont le code est le XOR des codes des caractères a et b, puis une fonction masque_jetable(message, cle) qui chiffre le message caractère par caractère, en revenant au début de la clé si elle est plus courte que le message.
  4. Bob reçoit d'Alice le message chiffré avec la clé "KEY", sous forme de codes : [25, 1, 15, 107, 4, 121, 6, 12, 29, 2]. Le déchiffrer.
  5. Pourquoi ce chiffrement est-il incassable si la clé est aléatoire, aussi longue que le message, et utilisée une seule fois ? Que se passe-t-il si Alice réutilise la même clé pour deux messages ?
Exercice — Le chiffrement RSA sur de petits nombres

D'après un cours de cryptographie de NSI Terminale.

Dans le chiffrement asymétrique RSA, Alice fabrique une clé publique et une clé privée :

  • elle choisit deux nombres premiers pp et qq, et calcule n=p×qn = p \times q et φ=(p−1)(q−1)\varphi = (p - 1)(q - 1) ;
  • elle choisit un entier ee premier avec φ\varphi : sa clé publique est le couple (e,n)(e, n) ;
  • elle calcule l'entier dd tel que e×de \times d ait pour reste 1 dans la division par φ\varphi : sa clé privée est le couple (d,n)(d, n).

Pour envoyer un nombre mm (avec 0⩽m<n0 \leqslant m < n), Bob calcule le reste cc de mem^e dans la division par nn. Alice retrouve mm comme reste de cdc^d dans la division par nn.

  1. Alice choisit p=3p = 3, q=11q = 11 et e=3e = 3. Calculer nn, φ\varphi, puis vérifier que d=7d = 7 convient.
  2. Bob envoie le message m=4m = 4. Calculer le message chiffré cc, puis vérifier qu'Alice retrouve bien 4.
  3. En Python, pow(a, b, n) calcule le reste de aba^b dans la division par nn. Écrire une boucle qui vérifie que le déchiffrement redonne le bon message pour tous les messages possibles de 0 à n−1n - 1.
  4. Un espion connaît la clé publique (3,33)(3, 33). Comment pourrait-il retrouver la clé privée ? Pourquoi est-ce impossible en pratique avec les clés réelles ?
  5. Dans HTTPS, pourquoi n'utilise-t-on pas RSA pour chiffrer toute la communication ?

QCM — Chiffrement et HTTPS

1. Dans un chiffrement symétrique, comment les clés de chiffrement et de déchiffrement sont-elles liées ?
2. Dans le protocole HTTPS, à quoi sert le chiffrement asymétrique ?
3. Un attaquant intercepte toute la communication entre un client et un serveur HTTPS, y compris la cle publique envoyee par le serveur lors de la poignee de main. Pourquoi ne peut-il pas dechiffrer la cle de session symetrique que le client envoie juste apres ?

Exercices bilan

Identifier les composants d'un système sur puce

ApplicationCorrigé gratuit

Une montre connectée doit tenir dans un boîtier de quelques centimètres, fonctionner plusieurs jours sur une petite batterie, et communiquer avec un smartphone.

  1. Qu'est-ce qu'un système sur puce (SoC) ? En quoi son organisation diffère-t-elle de celle d'un ordinateur de bureau, construit autour d'une carte mère ?
  2. Citer trois composants que l'on s'attend à trouver intégrés sur la puce unique de cette montre. Expliquer pourquoi l'architecture SoC est ici incontournable, en invoquant deux contraintes physiques propres à cet objet.
  3. Le fabricant annonce que la puce de la montre comptait environ 500 millions de transistors lors de sa sortie, en 2018. En admettant que ce nombre suit la loi de Moore (doublement tous les deux ans), estimer le nombre de transistors d'une puce comparable commercialisée en 2026. Détailler le calcul.
  4. Citer un inconvénient du système sur puce par rapport à l'architecture classique, illustré par une situation concrète touchant cette montre connectée (panne, réparation, mise à niveau...).
  5. Le fabricant explique que l'intégration sur une seule puce réduit la distance électrique entre les composants. Expliquer, en une phrase, les deux effets bénéfiques que cela procure.

Simuler un ordonnancement en tourniquet

Application

Le système d'exploitation ordonnance ses processus selon la politique du tourniquet (round-robin), avec un quantum de 44 ms. Rappel : si un processus n'a pas terminé au bout de son quantum, il repasse à l'état prêt et retourne en fin de file.

Trois processus arrivent tous à l'instant t=0t = 0 ms, placés dans la file dans cet ordre : P1 (a besoin de 99 ms de temps processeur au total), P2 (33 ms), P3 (55 ms).

  1. Construire le déroulement de l'ordonnancement : pour chaque tranche de temps processeur accordée, préciser quel processus est élu, l'intervalle de temps concerné, et le temps de calcul qu'il lui reste une fois la tranche écoulée.
  2. À quel instant chaque processus se termine-t-il ? Donner l'ordre de terminaison des trois processus.
  3. Décrire, pour P1 uniquement, la succession de ses états (prêt, élu...) depuis t=0t = 0 jusqu'à sa terminaison.
  4. P2 termine avant P1, alors qu'il est arrivé après lui dans la file. Expliquer pourquoi.
  5. Expliquer, à l'aide de cet exemple, pourquoi le tourniquet garantit qu'aucun processus prêt ne peut attendre indéfiniment, contrairement à une politique par priorité stricte.
Correction réservée aux abonnés Premium.

Créez un compte gratuit : votre première correction est offerte.

Reconnaître un interblocage entre trois processus

EntraînementCorrigé gratuit

Scénario A. Trois processus P1, P2, P3 se partagent trois ressources à exemplaire unique R1, R2, R3. Les événements suivants se produisent dans cet ordre :

  1. P1 demande et obtient R1.
  2. P2 demande et obtient R2.
  3. P3 demande et obtient R3.
  4. P1 demande R2.
  5. P2 demande R3.
  6. P3 demande R1.

Scénario B. Deux processus P4, P5 se partagent deux ressources R4, R5.

  1. P4 demande et obtient R4.
  2. P4 demande R5, encore libre, et l'obtient immédiatement.
  3. P5 demande R4 : elle est détenue par P4, donc P5 se bloque en l'attendant.
  4. P4 termine son traitement et libère R4 et R5.
  5. P5, désormais débloqué, obtient R4 et poursuit son exécution.

Questions.

  1. Dans le scénario A, décrire ce qu'attend chaque processus après l'étape 6, et qui détient la ressource attendue. Justifier qu'il y a interblocage.
  2. Une stratégie évoquée en cours consiste à imposer un ordre total sur l'acquisition des ressources — par exemple, tout processus doit toujours demander R1 avant R2, et R2 avant R3. Montrer que cette règle empêche la situation du scénario A de se produire telle quelle : préciser à quelle étape le déroulement décrit devient impossible, et pourquoi.
  3. Dans le scénario B, P5 est bloqué dès l'étape 3. Expliquer pourquoi il ne s'agit pourtant pas d'un interblocage.
  4. Formuler, en une phrase, la condition présente dans le scénario A mais absente du scénario B.

Construire une table de routage RIP sur un réseau en anneau

Entraînement

Cinq routeurs R1 à R5 sont reliés entre eux, formant un anneau. Les liaisons directes sont les suivantes :

  • R1 — R2
  • R2 — R4
  • R4 — R5
  • R5 — R3
  • R3 — R1

Ce réseau utilise le protocole RIP.

  1. Pour chacun des routeurs R2, R3, R4 et R5, donner la distance en nombre de sauts depuis R1 telle que la calculerait RIP, en précisant le chemin retenu.
  2. En déduire la table de routage de R1 une fois les échanges RIP stabilisés (colonnes Destination, Passerelle, Distance).
  3. RIP limite la distance maximale autorisée à 1515 sauts. Un réseau d'entreprise compte plusieurs dizaines de milliers de routeurs organisés en une très longue chaîne. Expliquer pourquoi RIP ne convient pas pour un tel réseau, et pourquoi ce n'est pas un problème sur l'anneau de cinq routeurs ci-dessus.
  4. Avec RIP, chaque routeur n'a qu'une connaissance locale du réseau (« routing by rumor »). Le routeur R1 sait-il, à partir de sa seule table de routage, que R4 et R5 sont directement reliés entre eux ? Justifier.
Correction réservée aux abonnés Premium.

Créez un compte gratuit : votre première correction est offerte.

Comparer RIP et OSPF sur un même réseau

Entraînement

On reprend l'anneau de cinq routeurs de l'exercice précédent (R1 — R2 — R4 — R5 — R3 — R1), cette fois équipé du protocole OSPF. On donne le débit de chacune des cinq liaisons :

LiaisonDébit
R1 — R211 Gb/s
R2 — R411 Gb/s
R4 — R511 Gb/s
R5 — R311 Mb/s
R3 — R111 Mb/s

Rappel (cette formule ne figure pas dans le cours en ligne) : le coût d'une liaison de débit dd (exprimé en bit/s) vaut couˆt=108d\text{coût} = \dfrac{10^8}{d}. On rappelle que 11 Gb/s =109= 10^9 bit/s et 11 Mb/s =106= 10^6 bit/s.

  1. Calculer le coût de chacune des cinq liaisons.
  2. Il existe exactement deux chemins entre R1 et R5 dans cet anneau. Les identifier, calculer le coût total de chacun, et déterminer lequel est retenu par OSPF.
  3. Comparer ce résultat à la distance RIP obtenue à l'exercice précédent pour rejoindre R5 (établie à 22 sauts, via R3). RIP et OSPF retiennent-ils le même chemin ici ? Expliquer cet écart en une ou deux phrases.
  4. Un administrateur remplace le matériel de la liaison R3-R1 : son débit passe de 11 Mb/s à 22 Mb/s (les quatre autres liaisons sont inchangées). Recalculer le coût de cette liaison. Cette amélioration suffit-elle à faire changer le chemin retenu par OSPF entre R1 et R5 ? Justifier par le calcul.
Correction réservée aux abonnés Premium.

Créez un compte gratuit : votre première correction est offerte.

Chiffrement symétrique et asymétrique : force brute et échange de clé

Entraînement
  1. Rappeler ce qui distingue un chiffrement symétrique d'un chiffrement asymétrique.
  2. Un coffre-fort électronique protège un fichier par un chiffrement symétrique dont la clé est codée sur 88 bits. Combien de clés différentes sont possibles ? Un attaquant dispose d'un programme capable de tester 100100 clés par seconde : combien de temps, au maximum, lui faut-il pour trouver la clé par force brute ?
  3. Le fabricant décide de passer à des clés de 128128 bits, comme le permet le standard AES (la valeur exacte de 21282^{128} est d'environ 3,4×10383{,}4 \times 10^{38}). Avec un ordinateur qui teste, cette fois, un milliard (10910^9) de clés par seconde, combien de temps (en années, on donnera l'ordre de grandeur) faudrait-il pour épuiser toutes les clés possibles ? On rappelle qu'une année compte environ 3,16×1073{,}16 \times 10^7 secondes.
  4. Une boutique en ligne veut recevoir un numéro de carte bancaire chiffré, de telle sorte que seule elle puisse le lire. Expliquer comment le chiffrement asymétrique permet cela, en précisant laquelle des deux clés de la boutique le client utilise, et laquelle reste secrète.
  5. Un pirate intercepte la clé publique de la boutique lors de son envoi au client. Peut-il s'en servir pour déchiffrer un futur numéro de carte bancaire chiffré avec cette clé ? Justifier.
  6. Expliquer pourquoi HTTPS n'utilise pas le chiffrement asymétrique pour transmettre l'intégralité d'une page web, alors qu'il l'utilise bien au tout début de la connexion.
Correction réservée aux abonnés Premium.

Créez un compte gratuit : votre première correction est offerte.

Routage et connexion HTTPS vers un serveur distant

Type bac

Partie A — Routage. Le routeur R1 d'une entreprise possède trois rattachements :

  • le réseau local interne, 172.20.5.0/24, via son interface d'adresse 172.20.5.1 ;
  • le réseau d'une entreprise partenaire, 172.20.9.0/24, joignable via une liaison louée directe, d'adresse 10.0.9.2 ;
  • le reste d'Internet, via le routeur du fournisseur d'accès R2, d'adresse 10.0.0.2 (route par défaut).
  1. Construire la table de routage de R1 (trois lignes : Destination, Passerelle).
  2. On suppose que les paquets suivants sont émis par une machine du réseau local interne. Pour chacune des adresses de destination ci-dessous, indiquer si le paquet reste sur le réseau local sans passer par R1, ou par quelle passerelle de la table il transite — en justifiant à chaque fois par la ligne utilisée : 172.20.5.200 ; 172.20.9.15 ; 51.15.20.10.
  3. La liaison louée vers le partenaire tombe en panne : sa ligne est retirée de la table de R1. Un paquet à destination de 172.20.9.15 est de nouveau présenté à R1. Quelle ligne de la table lui correspond désormais, et vers quelle passerelle est-il envoyé ? Ce paquet parviendra-t-il pour autant à destination ? Justifier brièvement.

Partie B — HTTPS. Le navigateur d'un élève se connecte ensuite à https://exemple.fr.

  1. Avant même l'échange d'une clé de session, le navigateur reçoit du serveur un élément particulier avant de lui faire confiance. Lequel, et à quoi sert-il précisément ?

  2. Voici, dans le désordre, cinq étapes de l'établissement de cette connexion HTTPS. Les remettre dans le bon ordre.

    D. Le serveur répond en transmettant sa clé publique, accompagnée d'un certificat signé par une autorité de certification. B. Le client engendre une clé de session symétrique, la chiffre avec la clé publique du serveur, et l'envoie. E. Le client et le serveur échangent leurs données, désormais chiffrées symétriquement avec la clé de session. C. Le client envoie une demande de connexion sécurisée au serveur. A. Le serveur déchiffre la clé de session grâce à sa clé privée : la poignée de main est terminée.

  3. Le certificat de l'étape D est intercepté par un pirate lors de son transit sur le réseau. Peut-il l'utiliser pour se faire passer pour exemple.fr auprès d'un autre client ? Justifier, en s'appuyant sur la distinction entre information publique et information secrète.

  4. Après la poignée de main, quel type de chiffrement (symétrique ou asymétrique) est utilisé pour l'essentiel du trafic entre le client et le serveur, et pourquoi ce choix plutôt que l'autre ?

Correction réservée aux abonnés Premium.

Créez un compte gratuit : votre première correction est offerte.

Chapitre suivant