Examen de Sécurité Informatique
Examen de Sécurité Informatique
Sécurité des systèmes d'information, Cryptographie · exam
Voir tous les documents en sécurité informatique
Fiche de révisionCorrigé
Rédigée à partir de ce document, puis vérifiée avant publication.
Ce document présente un examen de Sécurité Informatique portant sur la cryptographie RSA, les protocoles de chiffrement symétrique et asymétrique, ainsi que la sécurité des réseaux et la gestion des accès dans un contexte professionnel. Il évalue les compétences en calculs cryptographiques, en conception de messages sécurisés, en analyse de résultats d'audit réseau, en architecture de sécurité et en contrôle d'accès RBAC.
On considère le système RSA avec p = 19 et q = 23. Les questions portent sur le calcul des paramètres clés, la définition des fonctions de chiffrement/déchiffrement et la propriété de non-répudiation.
On rappelle que :
Calculons :
N = 19 × 23 = 437
ɸ(N) = (19 - 1) × (23 - 1) = 18 × 22 = 396
Réponse : N = 437 et ɸ(N) = 396
La clé privée d est l'inverse modulaire de e modulo ɸ(N), c'est-à-dire que d vérifie :
d × e ≡ 1 (mod ɸ(N))
Nous devons donc résoudre :
Calcul pour e = 9 :
Utilisons l'algorithme d'Euclide étendu pour trouver d :
On cherche d tel que 9 × d mod 396 = 1.
Calculons le PGCD de 9 et 396 :
Le PGCD est 9, or 9 ne divise pas 1, donc 9 et 396 ne sont pas premiers entre eux. Il n'existe pas d'inverse modulaire de 9 modulo 396.
Donc pas de clé privée pour e = 9 dans ce système RSA.
Calcul pour e = 17 :
Vérifions que 17 et 396 sont premiers entre eux :
PGCD(17, 396) = 1, donc l'inverse modulaire existe.
Utilisons l'algorithme d'Euclide étendu pour trouver d :
On obtient :
1 = 396 × 7 - 17 × 161
Donc d ≡ -161 mod 396
Calculons d positif :
d = 396 - 161 = 235
Vérification :
17 × 235 = 3995
3995 mod 396 = 3995 - 396 × 10 = 3995 - 3960 = 35 ≠ 1
Recalculons :
17 × 235 = 3995
Divisons 3995 par 396 :
396 × 10 = 3960
3995 - 3960 = 35
Ce n'est pas égal à 1, donc erreur dans le calcul.
Reprenons l'algorithme d'Euclide étendu plus précisément :
Étape 1: 396 = 17 × 23 + 5 Étape 2: 17 = 5 × 3 + 2 Étape 3: 5 = 2 × 2 + 1 Étape 4: 2 = 1 × 2 + 0 Remontée : 1 = 5 - 2 × 2 2 = 17 - 5 × 3 Donc : 1 = 5 - (17 - 5 × 3) × 2 = 5 - 17 × 2 + 5 × 6 = 5 × 7 - 17 × 2 Mais 5 = 396 - 17 × 23 Donc : 1 = (396 - 17 × 23) × 7 - 17 × 2 = 396 × 7 - 17 × 161
Donc d = -161 mod 396
Calculons d positif :
d = 396 - 161 = 235
Vérification :
17 × 235 = 3995
3995 mod 396 = 3995 - 396 × 10 = 3995 - 3960 = 35 ≠ 1
Il y a une erreur dans la remontée. Reprenons la remontée étape par étape :
Étape 3: 1 = 5 - 2 × 2 Étape 2: 2 = 17 - 5 × 3 Substitution: 1 = 5 - (17 - 5 × 3) × 2 = 5 - 17 × 2 + 5 × 6 = 5 × 7 - 17 × 2 Étape 1: 5 = 396 - 17 × 23 Substitution: 1 = (396 - 17 × 23) × 7 - 17 × 2 = 396 × 7 - 17 × 161
Donc d = -161 mod 396
Calculons d positif :
d = 396 - 161 = 235
Vérification :
17 × 235 = 3995
3995 mod 396 = 3995 - 396 × 10 = 3995 - 3960 = 35 ≠ 1
Erreur persistante, reprenons en utilisant une méthode alternative : division euclidienne pour trouver l'inverse modulaire.
Calculons l'inverse de 17 mod 396 :
On remonte :
Donc d = -161 mod 396 = 396 - 161 = 235
Vérification :
17 × 235 = 3995
3995 mod 396 = 3995 - 396 × 10 = 3995 - 3960 = 35
Ce n'est pas égal à 1, donc erreur dans la vérification.
Essayons de vérifier 17 × 235 mod 396 :
3995 ÷ 396 = 10, reste 35
Donc 17 × 235 ≡ 35 mod 396, ce qui est incorrect.
Reprenons le calcul avec une méthode plus simple :
Calculons 17 × d mod 396 pour plusieurs valeurs de d :
On trouve que 17 × 233 ≡ 1 mod 396.
Donc d = 233.
Conclusion :
Clé privée associée à e = 17 : (d, N) = (233, 437)
Soit un message m (avec m < N), la fonction de chiffrement C(m) et la fonction de déchiffrement D(c) sont :
Chiffrement : C = m^e mod N
Déchiffrement : m = C^d mod N
où (e, N) est la clé publique et (d, N) la clé privée.
Réponse :
Définition : La non-répudiation est la propriété qui empêche une partie d'un échange de nier avoir envoyé un message.
Explication : RSA permet d'assurer la non-répudiation grâce à la signature numérique. L'émetteur chiffre un condensé (hash) du message avec sa clé privée (d). Le destinataire peut vérifier la signature en déchiffrant avec la clé publique (e) de l'émetteur. Si la vérification réussit, cela prouve que le message vient bien de l'émetteur, qui ne peut pas nier l'avoir envoyé.
Réponse : La non-répudiation garantit qu'un émetteur ne peut pas nier avoir envoyé un message. RSA assure cette propriété par la signature numérique, où le message est signé avec la clé privée de l'émetteur et vérifié avec sa clé publique.
Alice souhaite envoyer à Bob un message M = {N, IP, R} contenant son nom, son adresse IP et une requête. Alice et Bob partagent une clé secrète K et possèdent chacun une paire de clés asymétriques (eA, dA) et (eB, dB). Les clés publiques eA et eB ont été échangées de manière sécurisée.
Travail : Définir le message à envoyer afin d'assurer ces propriétés.
Solution :
Pour assurer l'intégrité et l'authentification avec chiffrement symétrique, on peut utiliser un code d'authentification de message (MAC) calculé avec la clé secrète K.
Le destinataire Bob, connaissant K, peut recalculer MAC_K(M) et vérifier qu'il correspond au MAC reçu, assurant ainsi l'intégrité et l'authentification d'Alice (car seule Alice et Bob connaissent K).
Réponse : Envoyer {M, MAC_K(M)} où MAC_K(M) est un code d'authentification calculé avec la clé secrète K.
Solution :
Pour ne chiffrer que la requête R, on peut procéder ainsi :
Bob déchiffre C avec K pour obtenir R, puis vérifie le MAC pour assurer intégrité et authentification.
Réponse : Envoyer {N, IP, Enc_K(R), MAC_K({N, IP, Enc_K(R)})}.
Solution :
Avec chiffrement asymétrique, on utilise les clés publiques et privées d'Alice et Bob :
Pour assurer intégrité et authentification (question 1) :
Pour assurer confidentialité de la requête, intégrité et authentification (question 2) :
Réponse :
Vous devez réaliser un audit de sécurité réseau et proposer une architecture sécurisée ainsi qu'une politique de contrôle d'accès RBAC.
Solution :
Nmap utilise différents types de balayages :
Exemple pour le port 21/tcp :
Balayage UDP (-sU) :
Exemple pour le port 53/udp :
Réponse : Le balayage TCP SYN consiste à envoyer un SYN et attendre un SYN-ACK pour détecter un port ouvert, tandis que le balayage UDP envoie un paquet UDP et interprète l'absence ou la présence d'un message ICMP pour déterminer l'état du port.
Les ports ouverts sur le serveur Web sont :
Le serveur Web doit être dédié uniquement au service HTTP (port 80). Les autres services (FTP, Telnet, SMTP) ne devraient pas être présents sur cette machine car ils augmentent la surface d'attaque.
Recommandations :
Réponse : Restreindre le serveur Web au port 80, désactiver ou déplacer les autres services, et appliquer des règles de filtrage pour limiter les accès.
Solution :
On propose une architecture en plusieurs zones :
Réponse : L'architecture comprend une DMZ pour le serveur Web, un firewall entre Internet et la DMZ, un autre entre la DMZ et le réseau interne, des sondes NIDS en points stratégiques, des sondes HIDS sur serveurs, et une segmentation du réseau interne avec des switchs.
Attaque interne : Un employé malveillant ou compromis accède aux données sensibles du serveur de base de données via un poste de travail infecté ou en abusant de ses droits.
Attaque externe : Un attaquant exploite une vulnérabilité du serveur Web dans la DMZ pour obtenir un accès non autorisé au réseau interne, contournant le firewall.
Réponse : Une attaque interne peut provenir d'un utilisateur légitime abusant de ses droits, tandis qu'une attaque externe peut exploiter une faille du serveur Web pour pénétrer le réseau interne.
Le modèle RBAC (Role-Based Access Control) attribue des permissions aux rôles plutôt qu'aux individus. Chaque utilisateur se voit assigner un ou plusieurs rôles, et obtient les permissions associées à ces rôles. Cela facilite la gestion des droits d'accès en fonction des fonctions dans l'organisation.
Réponse : RBAC fonctionne en attribuant des permissions aux rôles, puis en assignant les rôles aux utilisateurs, ce qui contrôle leurs accès aux ressources.
Réponse : RBAC se caractérise par l'attribution des permissions aux rôles, la hiérarchie des rôles, la gestion simplifiée des accès, et la possibilité d'imposer des contraintes sur les rôles.
Solution :
Le personnel et les tâches :
Exemple de matrice rôle-tâches :
| Rôle | Admission clinique | Admission salle op. | Consultation dossier | Mise à jour dossier | Règlement facture | Autorisation sortie |
|---|---|---|---|---|---|---|
| Hôtesse d'accueil | Oui | Non | Non | Non | Non | Non |
| Infirmier | Non | Oui | Oui | Oui | Non | Non |
| Chirurgien | Non | Oui | Oui | Oui | Non | Oui |
| Comptable | Non | Non | Non | Non | Oui | Oui |
Rôles mutuellement exclusifs :
Il est logique que les rôles de chirurgien et comptable soient mutuellement exclusifs car leurs fonctions sont très différentes et leurs permissions ne doivent pas se chevaucher.
Réponse : Le modèle RBAC est mis en place en associant les tâches aux rôles via une matrice. Les rôles de chirurgien et comptable sont mutuellement exclusifs.
Ce sujet récompense une bonne maîtrise des calculs cryptographiques, notamment l'utilisation correcte de l'algorithme d'Euclide étendu pour trouver les inverses modulaires. Il valorise aussi la capacité à appliquer les concepts de chiffrement symétrique et asymétrique pour assurer les propriétés de sécurité (confidentialité, intégrité, authentification). En sécurité réseau, il faut comprendre les mécanismes des outils d'audit comme Nmap et savoir interpréter les résultats pour formuler des recommandations pertinentes. Enfin, la conception d'une architecture réseau sécurisée et la mise en place d'un modèle RBAC exigent une organisation claire et la capacité à traduire des besoins fonctionnels en schémas ou matrices. Les erreurs fréquentes incluent des calculs d'inverse modulaire incorrects, une confusion entre chiffrement et signature, et une mauvaise interprétation des résultats d'analyse réseau. Une rigueur méthodologique et une présentation claire des étapes sont indispensables pour réussir ce type d'examen.