Examen de Sécurité Informatique
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.
D'après le document Examen de Sécurité Informatique
Cet article a été rédigé automatiquement à partir du document source, puis vérifié avant publication.
Document source
Sécurité des systèmes d'information, Cryptographie · PDF · 3 pages
Afficher l'aperçu du document
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.
Exercice : Système RSA
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.
1. Calculer N et ɸ(N)
On rappelle que :
- N = p × q
- ɸ(N) = (p - 1) × (q - 1)
Calculons :
N = 19 × 23 = 437
ɸ(N) = (19 - 1) × (23 - 1) = 18 × 22 = 396
Réponse : N = 437 et ɸ(N) = 396
2. Calculer la clé privée (d, N) associée à e = 9, puis e = 17
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 :
- Pour e = 9 : trouver d tel que d × 9 ≡ 1 mod 396
- Pour e = 17 : trouver d tel que d × 17 ≡ 1 mod 396
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 :
- 396 = 9 × 44 + 0
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 :
- 396 = 17 × 23 + 5
- 17 = 5 × 3 + 2
- 5 = 2 × 2 + 1
- 2 = 1 × 2 + 0
PGCD(17, 396) = 1, donc l'inverse modulaire existe.
Utilisons l'algorithme d'Euclide étendu pour trouver d :
- 1 = 5 - 2 × 2
- 2 = 17 - 5 × 3
- 1 = 5 - (17 - 5 × 3) × 2 = 5 × 7 - 17 × 2
- 5 = 396 - 17 × 23
- 1 = (396 - 17 × 23) × 7 - 17 × 2 = 396 × 7 - 17 × 161
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 :
- 396 ÷ 17 = 23 reste 5
- 17 ÷ 5 = 3 reste 2
- 5 ÷ 2 = 2 reste 1
- 2 ÷ 1 = 2 reste 0
On remonte :
- 1 = 5 - 2 × 2
- 2 = 17 - 5 × 3
- 1 = 5 - (17 - 5 × 3) × 2 = 5 × 7 - 17 × 2
- 5 = 396 - 17 × 23
- 1 = (396 - 17 × 23) × 7 - 17 × 2 = 396 × 7 - 17 × 161
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 :
- 17 × 23 = 391 ≡ 391 mod 396 = 391
- 17 × 35 = 595 ≡ 595 - 396 = 199
- 17 × 233 = 3961 ≡ 3961 - 396 × 10 = 3961 - 3960 = 1
On trouve que 17 × 233 ≡ 1 mod 396.
Donc d = 233.
Conclusion :
- Pour e = 9, pas d'inverse modulaire, donc pas de clé privée.
- Pour e = 17, la clé privée est d = 233.
Clé privée associée à e = 17 : (d, N) = (233, 437)
3. Rappeler les fonctions de chiffrement et de déchiffrement de RSA
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 :
- Chiffrement : C = m^e mod N
- Déchiffrement : m = C^d mod N
4. Définir la propriété de non-répudiation et expliquer comment RSA permet de l'assurer
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.
Exercice : Sécurisation du message entre Alice et Bob
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.
1. Utiliser le chiffrement symétrique pour :
- Assurer l'intégrité du message
- Authentifier l'émettrice Alice
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.
- Calculer MAC = MAC_K(M)
- Envoyer le message complet : {M, MAC}
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.
2. Utiliser le chiffrement symétrique pour :
- Assurer la confidentialité de la requête uniquement
- Assurer l'intégrité du message
- Authentifier l'émettrice Alice
Solution :
Pour ne chiffrer que la requête R, on peut procéder ainsi :
- Chiffrer R avec K : C = Enc_K(R)
- Construire un message M' = {N, IP, C}
- Calculer MAC = MAC_K(M')
- Envoyer {M', MAC}
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)})}.
3. Répondre aux questions 1 et 2 en utilisant un chiffrement asymétrique
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) :
- Alice signe le message M avec sa clé privée dA : S = Sign_dA(M)
- Elle envoie {M, S}
- Bob vérifie la signature avec la clé publique eA
Pour assurer confidentialité de la requête, intégrité et authentification (question 2) :
- Alice chiffre la requête R avec la clé publique de Bob eB : C = Enc_eB(R)
- Elle construit M' = {N, IP, C}
- Elle signe M' avec sa clé privée dA : S = Sign_dA(M')
- Elle envoie {M', S}
- Bob vérifie la signature avec eA, puis déchiffre C avec dB pour obtenir R
Réponse :
- Question 1 : envoyer {M, Sign_dA(M)}
- Question 2 : envoyer {N, IP, Enc_eB(R), Sign_dA({N, IP, Enc_eB(R)})}
Problème : Audit et sécurité du système d'information d'une clinique
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.
1. Analyse des résultats Nmap sur le serveur Web
a) Expliquer les séquences de paquets envoyés par Nmap pour un port TCP et un port UDP
Solution :
Nmap utilise différents types de balayages :
- Balayage TCP SYN (-sS) : Nmap envoie un paquet SYN au port ciblé.
- Si le port est ouvert, la machine répond par un paquet SYN-ACK.
- Nmap répond alors par un RST pour ne pas établir la connexion complète.
- Si le port est fermé, la machine répond par un paquet RST.
Exemple pour le port 21/tcp :
- Nmap envoie SYN à 21
- Réponse SYN-ACK → port ouvert
- Nmap envoie RST pour interrompre la connexion
Balayage UDP (-sU) :
- Nmap envoie un paquet UDP vide au port ciblé.
- Si le port est fermé, la machine répond par un message ICMP "port unreachable".
- Si le port est ouvert ou filtré, aucune réponse ou un paquet UDP est reçu.
Exemple pour le port 53/udp :
- Nmap envoie paquet UDP à 53
- Pas de réponse → port ouvert ou filtré
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.
b) Recommandations à partir des résultats
Les ports ouverts sur le serveur Web sont :
- 21/tcp (FTP)
- 23/tcp (Telnet)
- 25/tcp (SMTP)
- 80/tcp (HTTP)
- 53/udp (DNS) et 68/udp (DHCP client)
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 :
- Désactiver ou déplacer les services FTP (21), Telnet (23) et SMTP (25) vers des serveurs dédiés.
- Utiliser des alternatives sécurisées (ex : SFTP au lieu de FTP, SSH au lieu de Telnet).
- Mettre en place un firewall pour filtrer les ports non nécessaires.
- Isoler le serveur Web dans une zone démilitarisée (DMZ).
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.
2. Proposition d'architecture réseau sécurisée
a) Schéma et justification de l'architecture
Solution :
On propose une architecture en plusieurs zones :
- Zone DMZ : Serveur Web accessible depuis l'extérieur, isolé du réseau interne.
- Réseau interne : Serveur de messagerie, serveur de base de données, ordinateurs du personnel administratif et soignant.
- Firewall : Entre Internet et la DMZ, puis entre la DMZ et le réseau interne pour filtrer le trafic.
- Sondes NIDS : Placées à l'entrée du réseau interne et dans la DMZ pour détecter les intrusions réseau.
- Sondes HIDS : Installées sur les serveurs critiques pour surveiller les activités internes.
- Switchs : Pour segmenter le réseau interne en VLANs selon les départements.
- Hubs : À éviter car ils ne segmentent pas le réseau, mais peuvent être utilisés pour la surveillance.
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.
b) Scénarios d'attaque
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.
3. Politique de contrôle d'accès RBAC
a) Principe de fonctionnement du modèle RBAC
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.
b) Principales caractéristiques du modèle RBAC
- Gestion centralisée des permissions via les rôles.
- Facilité d'administration en modifiant les rôles plutôt que les utilisateurs.
- Support des rôles hiérarchiques (certains rôles héritent des permissions d'autres).
- Possibilité de définir des contraintes, comme des rôles mutuellement exclusifs.
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.
c) Mise en place du modèle RBAC avec schéma, tableaux ou matrices
Solution :
Le personnel et les tâches :
- Personnel : hôtesses d'accueil, infirmiers, chirurgiens, comptables
- Tâches : admission à la clinique, admission à la salle d'opération, consultation du dossier, mise à jour du dossier, règlement de la facture, autorisation de sortie
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.
Méthode
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.
Commentaires
Aucun commentaire pour le moment. Posez la première question.