École Privée d’Ingénierie du Niger — L’école du nouveau monde

✉ elearning@epiniger.edu.ne    🌐 epiniger.edu.ne

Unité d’enseignement : CYB · S3 · UE1 — Cryptanalyse

  • Outils de détection d’intrusion

    Ce cours forme les étudiants au métier de défenseur : détecter les intrusions, analyser les alertes et réagir aux incidents, dans l’esprit d’un analyste de centre opérationnel de sécurité (SOC). Il part des protocoles réseau (IP, TCP, UDP, ARP, ICMP, fragmentation) relus sous l’angle de la détection, présente les technologies de filtrage et les principes des systèmes de détection d’intrusion (signatures, anomalies, HIDS, NIDS, IPS). Il décrit ensuite les grandes familles d’attaques au niveau de leurs mécanismes généraux, de leurs indicateurs de compromission et de leurs parades, sans jamais fournir de procédure offensive. Il traite enfin l’architecture de collecte (placement des sondes, SPAN/TAP), la journalisation et le SIEM, l’organisation d’un SOC, l’installation de Suricata dans le laboratoire de l’étudiant, le tri des alertes, les métriques de détection et la réponse à incident. Les exemples portent sur des organisations nigériennes (banque, opérateur, école) ; toute manipulation se fait sur les machines virtuelles de l’étudiant, dans le respect de la loi nigérienne sur la cybercriminalité.

    Objectifs d’apprentissage

    • Identifier dans le trafic et les journaux les champs et comportements révélateurs d’une intrusion.
    • Expliquer les techniques de détection (signatures, anomalies) et choisir entre HIDS, NIDS et IPS.
    • Associer les familles d’attaques à leurs indicateurs de compromission et à leurs parades.
    • Concevoir une architecture de collecte et dimensionner un SIEM ; décrire les fonctions d’un SOC.
    • Installer, configurer et tester un IDS open source (Suricata) dans un laboratoire isolé.
    • Trier et prioriser des alertes, calculer les métriques de détection et conduire une réponse à incident.

    Prérequis

    Bonnes connaissances en réseaux (modèle TCP/IP, adressage, VLAN) et en sécurité ; administration Linux de base ; connaissance du guide d’hygiène informatique de l’ANSSI ; avoir suivi le parcours d’introduction à la cybersécurité.

    Plan du cours

    1. Leçon 1 — Protocoles réseau et principes de la détection d’intrusion
    2. Leçon 2 — Familles d’attaques et indicateurs de compromission
    3. Leçon 3 — Déployer un IDS : sondes, journaux, SIEM et SOC
    4. Leçon 4 — L’analyste SOC : tri des alertes, métriques et réponse à incident

    Modalités d’évaluation

    Volume horaire : 13 h de cours magistral, 7 h de travaux dirigés et 20 h de travail personnel de l’étudiant (dont les manipulations guidées dans le laboratoire virtuel) ; 2 crédits. Évaluation : contrôle continu (quiz, exercices de TD, compte rendu du TP Suricata) et examen terminal écrit (analyse d’alertes et de journaux, calculs de métriques, questions de cours).

    Bibliographie

    • Richard Bejtlich, The Practice of Network Security Monitoring, No Starch Press, 2013.
    • Chris Sanders et Jason Smith, Applied Network Security Monitoring: Collection, Detection, and Analysis, Syngress, 2013.
    • NIST SP 800-94, Guide to Intrusion Detection and Prevention Systems (IDPS), 2007 ; NIST SP 800-61, Computer Security Incident Handling Guide.
    • ANSSI, Guide d’hygiène informatique et Recommandations de sécurité pour la mise en œuvre d’un système de journalisation.
    • OISF, documentation officielle de Suricata (docs.suricata.io) ; norme ISO/IEC 27035 (gestion des incidents de sécurité de l’information).
  • Gestion de clés et algorithmes cryptographiques

    Ce cours prolonge « Principes de la cryptographie et cryptanalyse » (PCC2311), qui a présenté l’histoire des chiffres, le vocabulaire (chiffrement, clé, vecteur d’initialisation), les principes de Kerckhoffs et de Shannon, les chiffrements symétriques (DES, 3DES, AES, modes ECB, CBC, CFB, CTR) et asymétriques (RSA, ElGamal, Diffie-Hellman). Il se concentre sur les algorithmes qui garantissent l’intégrité et l’authenticité (fonctions de hachage, MAC, signatures) et sur ce qui fait la sécurité réelle d’un système : la gestion des clés et les infrastructures à clés publiques. Les manipulations se font dans le laboratoire personnel de l’étudiant avec OpenSSL, Apache, GnuPG et la bibliothèque standard Python (hashlib, hmac, secrets), sur des cas inspirés d’organisations nigériennes (école, banque, PME, paiement mobile).

    Objectifs d’apprentissage

    • Expliquer les propriétés des fonctions de hachage, le paradoxe des anniversaires et l’état de MD5, SHA-1, SHA-2 et SHA-3 ; stocker correctement des mots de passe.
    • Choisir entre MAC (HMAC, CMAC) et signature (RSA, DSA, ECDSA) et calculer des exemples sur de petits nombres.
    • Définir une politique de gestion des clés couvrant tout le cycle de vie, avec les standards PKCS et les recommandations NIST/ANSSI.
    • Expliquer l’attaque de l’homme du milieu contre Diffie-Hellman et les moyens de l’empêcher.
    • Lire et valider des certificats X.509, créer une petite PKI de test et mettre en place HTTPS sur Apache.
    • Échanger des messages chiffrés et signés avec GnuPG et vérifier correctement un jeton JWT.

    Prérequis

    Cours PCC2311 (arithmétique modulaire, AES, RSA, Diffie-Hellman), administration Linux de base (paquets, droits, services), notions de réseau (HTTP, DNS, TCP) et de programmation Python.

    Plan du cours

    1. Leçon 1 — Fonctions de hachage cryptographiques
    2. Leçon 2 — Intégrité et authentification : MAC, HMAC et signatures numériques
    3. Leçon 3 — Gestion des clés : cycle de vie, échange Diffie-Hellman, homme du milieu et standards PKCS
    4. Leçon 4 — Infrastructures à clés publiques (PKI), certificats X.509 et cas pratiques : OpenSSL, HTTPS, GnuPG, JWT

    Modalités d’évaluation

    Volume horaire : 13 h de cours magistral, 7 h de travaux dirigés, 0 h de TP encadré, 20 h de travail personnel de l’étudiant (TPE), 2 crédits. Les manipulations guidées (OpenSSL, Apache, GnuPG, Python) sont réalisées en TPE sur les machines virtuelles de l’étudiant. Évaluation : contrôle continu (40 % : quiz en ligne, exercices de TD, compte rendu de la mise en place d’HTTPS ou de l’échange GnuPG) et examen terminal écrit (60 %).

    Bibliographie

    • A. Menezes, P. van Oorschot, S. Vanstone, Handbook of Applied Cryptography, CRC Press, 1996.
    • N. Ferguson, B. Schneier, T. Kohno, Cryptography Engineering: Design Principles and Practical Applications, Wiley, 2010.
    • W. Stallings, Cryptography and Network Security: Principles and Practice, Pearson.
    • NIST SP 800-57 Part 1 Recommendation for Key Management ; FIPS 180-4 (SHS), FIPS 186-5 (signatures), FIPS 198-1 (HMAC).
    • IETF : RFC 5280 (certificats X.509 et CRL), RFC 2104 (HMAC), RFC 8017 (PKCS#1), RFC 7519 (JWT).
  • Principes de la cryptographie et cryptanalyse

    Ce cours d’introduction à la cryptologie (UE1 « Cryptanalyse », L2) présente les principes sur lesquels reposent toutes les protections modernes de l’information : messageries, paiement mobile, VPN des banques et des opérateurs, sauvegardes chiffrées des administrations. On part de l’histoire des chiffres secrets et de leur cryptanalyse élémentaire (César, Vigenère, analyse de fréquences), on acquiert les outils mathématiques indispensables (arithmétique modulaire, théorie de Shannon), puis on étudie la cryptographie symétrique (DES, AES, modes opératoires) et asymétrique (RSA, Diffie-Hellman, ElGamal, courbes elliptiques). La cryptanalyse est abordée dans une démarche défensive : comprendre pourquoi un système tombe pour savoir choisir et configurer des algorithmes sûrs. Les exercices se font sur de petits nombres, à la main puis avec Python (pow, hashlib) et OpenSSL dans le laboratoire personnel de l’étudiant. Ce cours est complété, au même semestre, par « Gestion de clés et algorithmes cryptographiques » (GAC2312) : hachage, MAC, signatures, gestion des clés et PKI.

    Objectifs d’apprentissage

    • Retracer les grandes étapes de l’histoire de la cryptographie et de la cryptanalyse et en tirer les principes de Kerckhoffs et de Shannon.
    • Chiffrer et casser les chiffrements classiques (César, ROT13, substitution, Vigenère) par force brute, analyse de fréquences et méthode de Kasiski.
    • Effectuer les calculs d’arithmétique modulaire utiles en cryptographie (PGCD, inverse, exponentiation rapide, Fermat-Euler) et évaluer une sécurité en bits.
    • Décrire le fonctionnement des chiffrements symétriques (flot, blocs, DES, 3DES, AES) et choisir un mode opératoire adapté.
    • Mettre en œuvre à la main RSA, Diffie-Hellman et ElGamal et expliquer le principe des courbes elliptiques.
    • Identifier les grandes familles d’attaques et recommander des algorithmes et des tailles de clés conformes à l’état de l’art.

    Prérequis

    Mathématiques de base (division euclidienne, nombres premiers, puissances, logarithme en base 2), numération binaire et hexadécimale, notions de programmation Python et utilisation de la ligne de commande Linux.

    Plan du cours

    1. Leçon 1 — Histoire de la cryptographie et cryptanalyse des chiffrements classiques
    2. Leçon 2 — Outils modernes : services de sécurité, arithmétique modulaire et théorie de Shannon
    3. Leçon 3 — Cryptographie symétrique : chiffrements par flot et par blocs, DES, AES et modes opératoires
    4. Leçon 4 — Cryptographie asymétrique : RSA, Diffie-Hellman, ElGamal, courbes elliptiques et cryptanalyse

    Modalités d’évaluation

    Volume horaire : 13 h de cours magistral, 7 h de travaux dirigés, 0 h de TP encadré, 20 h de travail personnel de l’étudiant (TPE), 2 crédits. Les manipulations OpenSSL/Python proposées sont réalisées en TPE sur les machines virtuelles de l’étudiant. Évaluation : contrôle continu (40 % : quiz en ligne, exercices de TD corrigés, compte rendu d’une manipulation) et examen terminal écrit (60 % : exercices de calcul et questions de cours, calculatrice autorisée).

    Bibliographie

    • A. Menezes, P. van Oorschot, S. Vanstone, Handbook of Applied Cryptography, CRC Press, 1996 (consultable en ligne sur le site de l’Université de Waterloo).
    • B. Schneier, Cryptographie appliquée : protocoles, algorithmes et code source en C, Vuibert (traduction de Applied Cryptography, Wiley).
    • S. Singh, Histoire des codes secrets : de l’Égypte des pharaons à l’ordinateur quantique, JC Lattès, 1999 (rééd. Le Livre de Poche).
    • C. Paar, J. Pelzl, Understanding Cryptography, Springer, 2010.
    • NIST, FIPS 197 Advanced Encryption Standard et SP 800-57 Recommendation for Key Management ; ANSSI, guide de sélection d’algorithmes cryptographiques.