Greuet Corentin
    • Create new note
    • Create a note from template
      • Sharing URL Link copied
      • /edit
      • View mode
        • Edit mode
        • View mode
        • Book mode
        • Slide mode
        Edit mode View mode Book mode Slide mode
      • Customize slides
      • Note Permission
      • Read
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Write
        • Only me
        • Signed-in users
        • Everyone
        Only me Signed-in users Everyone
      • Engagement control Commenting, Suggest edit, Emoji Reply
    • Invite by email
      Invitee

      This note has no invitees

    • Publish Note

      Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

      Your note will be visible on your profile and discoverable by anyone.
      Your note is now live.
      This note is visible on your profile and discoverable online.
      Everyone on the web can find and read all notes of this public team.
      See published notes
      Unpublish note
      Please check the box to agree to the Community Guidelines.
      View profile
    • Commenting
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
      • Everyone
    • Suggest edit
      Permission
      Disabled Forbidden Owners Signed-in users Everyone
    • Enable
    • Permission
      • Forbidden
      • Owners
      • Signed-in users
    • Emoji Reply
    • Enable
    • Versions and GitHub Sync
    • Note settings
    • Note Insights
    • Engagement control
    • Transfer ownership
    • Delete this note
    • Save as template
    • Insert from template
    • Import from
      • Dropbox
      • Google Drive
      • Gist
      • Clipboard
    • Export to
      • Dropbox
      • Google Drive
      • Gist
    • Download
      • Markdown
      • HTML
      • Raw HTML
Menu Note settings Versions and GitHub Sync Note Insights Sharing URL Create Help
Create Create new note Create a note from template
Menu
Options
Engagement control Transfer ownership Delete this note
Import from
Dropbox Google Drive Gist Clipboard
Export to
Dropbox Google Drive Gist
Download
Markdown HTML Raw HTML
Back
Sharing URL Link copied
/edit
View mode
  • Edit mode
  • View mode
  • Book mode
  • Slide mode
Edit mode View mode Book mode Slide mode
Customize slides
Note Permission
Read
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Write
Only me
  • Only me
  • Signed-in users
  • Everyone
Only me Signed-in users Everyone
Engagement control Commenting, Suggest edit, Emoji Reply
  • Invite by email
    Invitee

    This note has no invitees

  • Publish Note

    Share your work with the world Congratulations! 🎉 Your note is out in the world Publish Note

    Your note will be visible on your profile and discoverable by anyone.
    Your note is now live.
    This note is visible on your profile and discoverable online.
    Everyone on the web can find and read all notes of this public team.
    See published notes
    Unpublish note
    Please check the box to agree to the Community Guidelines.
    View profile
    Engagement control
    Commenting
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    • Everyone
    Suggest edit
    Permission
    Disabled Forbidden Owners Signed-in users Everyone
    Enable
    Permission
    • Forbidden
    • Owners
    • Signed-in users
    Emoji Reply
    Enable
    Import from Dropbox Google Drive Gist Clipboard
       owned this note    owned this note      
    Published Linked with GitHub
    Subscribed
    • Any changes
      Be notified of any changes
    • Mention me
      Be notified of mention me
    • Unsubscribe
    Subscribe
    # Sécurisation des réseaux - cours ## Plan du cours Introduction Cryptographie cryptographie symétrique cryptographie asymétrique Signature numérique, authentification Principe Somme de contôle Les infrastructures à clés publiques 03/02 : TD/TP Chiffrement symétrique et les modes opérations 24/02 : TD/TP Chiffrement asymétrique et leur mise en oeuvre 09/03 : TD/TP Autorités de certification 23/03 IoniBalls turboGrossePute 06/04 Sori pute ## Cours 1 - Chiffrement symétrique et les modes opérations ### Définition cryptographie Cryptographie : Etude des méthodes permettant de protéger les données. Cryptanalyse : etude des méthodes permettant de passer outre les protections des données. Cryptologie = cryptographie + cryptanalyse But de la cryptologie : sauvegarder et sécuriser des données ### Cryptographie moderne les algo modernes ont étendu les possibilitéss : - Empêcher la lecture des données à des personnes non autorisées --> Confidentialité - Transmettre des données de manière sure --> Confidentialité Mais aussi : - authentifier le créateur ou l'émetteur des données --> Authentification - s'assurer qu'il ne pourra pas nier en être à l'origine --> Non répudiation - Empêcher les modifications des données --> garantir l'intégrité ### Cryptographie à clé secrète : La méthode la plus ancienne Elle utilise la même clé pour chiffrer et déchiffrer un message (ou bien la clé de déchiffrage se déduit immédiatement de la clé de chiffrage) Si elle est utilisée convenablement, elle est "INCASSABLE" ! (ET C'EST PROUVE par 9 chercheurs sur 10) ### Substitution et chiffre de césar https://fr.wikipedia.org/wiki/Chiffrement_par_d%C3%A9calage Méthode très simple de chiffrage attriibué à Jules César HIMSELF : L'algo consiste simplement à décaler les lettres de l'alphabet du message à envoyer. il saigne, il a le coronavirus #CORENTIN OH NO ! ALED ON VA MPURIR JE SUIS INFECTé, help me J'invoque : DRAGON BLANC AUX YEUX BLEUS en position attaque : YES ATTAQUE PAR FORCE BRUT = ON ESSAIE TOUT J'ai éjac du nez, c'est parti vite Me balancer par sur Twitter par contre #GIGN @PoliceNational ### Chiffrement INCASSABLE : OTP "one time pad" ou 'OneTrickPony pour les intimes' https://en.wikipedia.org/wiki/One-time_pad La seule méthode de chiffrement aujourd'hui prouvée comme étant incassable est une méthjode à clé symétrique secrète : one time pad (ou "masque jetable") Son algo est simple Sa mise en oeuvre est rapide - Pour le chiffrement - Pour le déchiffrement Mais pourquoi se faire chier avec des algos compliqués, coûteux et moins sûrs ? parceque très difficilement utilisable. (voir "Condition d'utilisation") Pourquoi OTP est potentiellement "INCASSABLE" ? --> Soit M = {m0,m1,...,mn} un msg de taille n Soit C = {c0,c1,...,cn} le message M chiffré avec la clé K Quelque soit M' un msg de taille n, il exister une clé K' de taille n telle que pour tout i appartenant à [0,...,n], m'i ! ci + *(xor)* k'i Condidtion d'utilisation * La clé soit de taille au moins égale à la taille du message. * Il faut que la clé soit purement aléatoire. * Sinon on peut en déduire le seed de generation et potentielement brutforce la clé plus facilement * Il faut que la clé ne serve qu'une seul fois. OTP est très difficilement utilisable : * Pour transmettre 10Go de donné, il faut une clé d'au moins 10Go * Pour communiquer sur des court message il faut transmettre la clé de manière sur. Ducoup pourquoi ne pas transmettre les message en meme temps que la clé ? * Il faut un vrai generateur de nombre aleatoire ### Méthode par diffusion (majorité des algos modernes): - DIFFUSION = SUBSTITUTION + TRANSPOSITION - Disperse la structure statistique du texte. - La difusion masque la relation entre le texte clair et le texte chiffré. Principe de confision - Il s'agit de masquer la relation entre la clé secrète et le texte chiffré. - On suppose que l'opposant connaît l'algo de chiffrement - On souhaite éviter qu'à partir de l'algo et le texte chiffré, la clé soit identifiable - L'objectif est d'obtenir un chiffrement dont la seule attaque possible est par "Force Brute" ### Méthode forte La seule attaque possible consiste a essayer toutes les clés possible (force brute) - on ne peut pas déduire d'informations sur la donnée claire ou la clé à partir de la donnée chiffré - on ne peut pas déduire d'informations sur la clé à partir de la donnée en clair - Le nombre de clés possible est très grand - Aujourd'hui, classiquement 2¹²⁸, 2¹⁹² ou d²⁵⁶ (on estime le nombre d'atomes dans univers à ~2²⁶⁵) ### Premier standard DES : UNE ANCIENNE METHODE FORTE En 1977 apparaît le standard DES : Data Encryption Standard - inventé par IBM, modifiée par la NSA - Premier standard cryptographique - Algorythme de chiffrement par bloc - Clés de 56 bits 2⁵⁶ clés possibles : attaques par force brute impossible en 1977 - les attaques par force brute sont désormais largement envisageables (le standard était prévu pour avoir une durée de vie de 10 ans) - Des techniques de cryptanalyse ont été développpées rendant plus vulnérable encore DES en réduisant len nombre de clé à tester #### Double DES une solution intermédiaire - Solution intémédiaire : doubles DES - Il s'agit d'appliquer 2 fois de suite DES avec deux clés distinctes - Diffie Hellman ont trouvé une attaque qui rend presque inopérant le passage à double DES --> perte de son standard au profit d'AES après un appel d'offre du NIST - Seconde solution : Triple-DES. - Améliore nettement DES : 2¹¹² clés possibles Remplacé par AES #### AES : LE STANDARD ACTUEL Advanced Encryption Standard Robuste et efficace Chiffrement par bloc Standard du NIST depuis octobre 200 Utilise des clés de 128, 192 ou 256 bits (évolutive) Aucune méthode connue de cryptanalyse, encore aujourd'hui personne n'a trouvé de méthode pour pouvoir l'attaquer directement en tant qu'algo Utilisé dans de nombreux systèmes cryptographiques (WPA2 pour la norme IEEE 802.11 du Wifi, les connexions bluetooth, ...) Chiffrement par bloc. Il prend en entreée des blocs de donnée y applique une fonction reversible sur les blocs et retourne des blocs chiffrés Lorsque la donnée est constituée de plusieurs blocs, la méthode la plus simple et d'utiliser la clé sur chacun des blocsn ce qui peut donner des indications, a minima (il a switch la diapo le con) (...) ### Mode d'opération Le mode d'opéation d'un algorythme de chiffrement par bloc décrit la manière dont on l'applique sur les différents blocs du message à chiffrer #### Exemple de mode d'opération : Cipher block chaining (CBC) ![](https://i.imgur.com/RqiW5Q2.jpg) Voir TP Crypto Ionipute avec vecteur d'initialisation ### Limite de la cryptographie à clé secrète * L'échange des clés : -il est fortement conseillé de changer régulièrement de clé pour le chiffrement . * Partage de clé : -Pour N personnes il faut (N x (N-1))/2 clés * Distribution des clé ### Trent : distributeur des clés secrètes Trent dispose des clés de tout le monde. C'est le TTP (Trusted Third Party) Fait office d'intermédiaire entre X personnes Etape 1 : Alice envoie le message chiffré avec sa clé à Trend Etape 2 : Trend envoie le message chiffré avec la clé de Bob à Bob Avec ce systèmen pour N utilisateurs, on aura besoin de N clés secrètes. Elles ne sont pas partagés par tout les utilisateurs Problème : - tout transite par Trent - confiance de Trent ? - centralisation des clés - total de clé trop grand - s'il conserve les clés, il devient un point faible du système - opération de chiffrement lourdes et inutiles ### Solution alternative à Trent : les KDC (key distribution center) Trent dispose de toutes les clés, Trent envoie la clé secrète cryptés à Bob et à Alice en cryptant le message avec la clé de chacun. Alice et Bob peuvent communiquer Trent devient alors un distributeur de clés Resout le problème des opérations inutiles de chiffrement Résout le problème de transit unique par Trent Problème persistants : confiance du TTP ? SOLUTION : CRYPTOGRAPHIE A CLE PUBLIQUE ### Début de la solution à l'utiliusation d'un KDC Ralph Merkle en 1970 a conçu un système permettant d'échanger publiquement des clés secrètes Principe : Alice crée plein de clé indexés par un numéro de série dans le désordre et range tout dans un tableau Puis chiffre ce tableau avec les clés générés Puis elle envoie le tableau des numéros de série(peut êtrecapté par Eve) Bob déchiffre un numéro du tableauu (numéro de série) et envoie le numéro de série et devient la clé secrète entre Alice et Bob Création d'une dysémtrie entre les interlocuteurs légitimes (déchiffrement long pour 1 clé donc pour le tableau très long pour l'attaquant ) ### Diffie-Hellman complexe l'idée en héritant de l'idée de Merkle Les deux interlocuteurs partagent un problème qu'ils savent résoudre rapidement L'adversaire manque d'une information Etape 1 : [![](https://i.imgur.com/iTOiPNk.jpg) ](https://) Etape 2 : ![](https://i.imgur.com/cYoXIN2.jpg) | ka=(g^b mod p)^a mod p | kb=(g^a mod p)^b mod p | | -------- | -------- | | ka=(g^b)^a mod p | kb = (g^a)^b mod p | | ka=g^(b*a) mod p | kb = g^(a*b) mod p | ON A BIEN Ka=Kb= K LA CLE SECRETE ECHANGEE ENTRE ALICE ET BOB La méthode de diffie helman permet de se mettre d'accord sur une clé secrètre sur un canal non sécurisé. Limites : - Pas d'authentification - Fonctionnement "en ligne" (ne convient pas ax mails par exemple) ### RSA Rivest,Shamir & Adleman (MIT); Résout les problèmes d'authentification et d'échange de clé; Utilisation de clés distinctes pour le chiffrement et le déchiffrement - Une clé publique mise a dispo de tous - Une clé secrète - ce qui est chiffré avec la clé publique n'edst déchiffrable qu'avec la clé privée - Ce qui est chiffré avec la clé privée n'est déchiffrable qu'avec la clé publique Connaitre la clé publique n'aide pas à la découverte de la clé secrète. Connaitre la clé publique n'aide pas à déchiffrer un message chiffré avec celle-ci. Tout le monde peut connaitre la clé publique : la distribution des clés est grandement simplifié. #### Authentification avec RSA l'authentification consiste simplement à chiffrer un message avec la clé privée - Le message n'est déchiffrable que grace à la clé publique correspondante - Si la clé publique déchiffre le message, on est sûr qu'il a été chiffré avec la clé privée. #### Intégrité avec RSA On peut employer la même méthode que pour l'authenficiation : - Le message chiffré avec la clé publique est corrompu s'il est modifié durant la transmission - On peut simplement chiffrer un résumé du messge qui devient alors une signature #### Résumé Un résumé de message est obtenu grâce à l'utilisation d'une fonction de "Hachage cryptographique - MD5, sha-1, sha-256 etc... Pour être utilisable en cryptographie, une fonction de hachage doit avoir certaine propriétés : - L'unidirectionnalité (Résistance à la première pré-image) : On ne doit pas pouvoir reconstituer tout ou partie du message à partir de son résumé. - La résistance faible aux collisions (résistance à la seconde pré-image) : Etant donné un résumé, il est très difficile de trouver un message différent qui produit le même résumé. On ne peut pas modifier le message en le faisant passer pour le message original. - La résistance forte aux collisiosn : Etant donné une fonction de hachage, il est très difficile de trouver deux messages différents produisant le même résumé (résistance à l'attaque des anniversaires) #### Distribution des clés publiques On a vu que la cryptographie à clé publique permet : - La confidentialité - Le contrôle d'intégrité - L'authentification - La non-répudiation La sécurité repose sur la confidentialité des clés privées, mais aussi sur l'intégrité et l'authenticité des clés publiques. Pour assurer l'authenticité des clés publiques, o nutilisera des "certificats numériques" au sein d'infrastructures à clés publiques ou PKI (public key infrastructures) ### Attaques par répétition Alice envoie plusieurs messages : - 1/11/2010 : "rdv 12h30 chez doc gyneco" - 2/11/2010 : "j'ai un plan cul j'peux pas venir" Eve intercepte le message 1, remplace son contenu par celui du 2/11/2010 et bob ne peut pas se rendre compte du problème. Pour résoudre le problème : chaque message doit être "estampillé" par une date ou un marqueur temporaire. ### Vol des clés en mémoire Les clés cryptographiques doivent être aussi aléatoires que possibles - Elle contiennent donc normalement à peu près autant de bits à 1 que de bits à 0. - Ce qui ne "ressemble" pas à n'importe quel type de données. - On peut identifier les séquences qui peuvent correspondre à des lés cryptographiques dans la mémoire de la machine. ### Distribution des clés publiques Problèmes : Comment être sûr que la clé publique est bien celle de la personne avec laquelle on souhaite échanger des messages ? Comment faire si la clé privée est volée ? ### Certificat numérique Un certificat numérique est un document signé par un tiers de confiance contenant : - Des informations sur le détenteur de la clé publique - Le rôle de l'utilisateur - La clé publique elle-même - Des dates de début et de fin de validité Principe : - Les utilisateurs génèrent leurs couples de clés publiques/privées - Ils demandent alors un certificat qui authentifie leur clé publique auprès d'un tiers de confiance - Le tier de confiance certifie l'identité du demandeur en créant un certificat pour l'utilisateur, qu'il signe avec sa propre clé privée. - L'utilisateur dispose maintenant d'une certification de sa clé publique par le tier de confiance. ### Les PKI Une infrastructure à clés publiques repose sur le système de certification n des clés publiques par un tiers de confiance Une clé est alors associé à l'identité d'une personne Les plus répandues : PKIX.509 ou PGP : pretty good privacy Prochain cours : certificat ## TD1 - Exo ### Exo 1 - 2 - 3 - feuille ### Exo 4 ``` for ((i=0;i<80000;++i));do echo ZARROU >> z21805306-ex4.1.txt done ``` Chiffrer un fichier en utilisant l'algo AES-192 avec une clé et un vecteur d'initialisation spécifique : `openssl enc -aes-192-cbc -K 00010203040506070809A0A1A2A3A4A5A6A7A8A9B0B1B2B3 -iv FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0 -in z21805306-ex4.1.txt -out z21805306-ex4.2.enc` Modifier le fichier en remplaçant l'octet d'offset 200 par la valeur 0 : ``` dd if=z21805306-ex4.2.enc of=debut bs=1 count=199 dd if=/dev/zero bs=1 count=1 of=zero dd if=z21805306-ex4.2.enc bs=1 skip=200 of=fin cat debut zero fin > z21805306-ex4.3.mod ``` Déchiffrer : (le -d permet de déchiffrer) ``` openssl enc -aes-192-cbc -d -K 00010203040506070809A0A1A2A3A4A5A6A7A8A9B0B1B2B3 -iv FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0 -in z21805306-ex4.3.mod -out z21805306-ex4.4.txt ``` Afficher en détail pour voir les erreurs du fichier : ``` hexdump -C -v z21805306-ex4.4.txt | less ``` EXO 5 : Script (voir discord) chmod +x exo5.sh mkdir TEST ./exo5.sh TEST Ca créé un répertoire en + ## Cours 2 - Chiffrement asymétrique et leur mise en oeuvre Enfait le cours 2 est intégré au cours 1 donc cheh

    Import from clipboard

    Paste your markdown or webpage here...

    Advanced permission required

    Your current role can only read. Ask the system administrator to acquire write and comment permission.

    This team is disabled

    Sorry, this team is disabled. You can't edit this note.

    This note is locked

    Sorry, only owner can edit this note.

    Reach the limit

    Sorry, you've reached the max length this note can be.
    Please reduce the content or divide it to more notes, thank you!

    Import from Gist

    Import from Snippet

    or

    Export to Snippet

    Are you sure?

    Do you really want to delete this note?
    All users will lose their connection.

    Create a note from template

    Create a note from template

    Oops...
    This template has been removed or transferred.
    Upgrade
    All
    • All
    • Team
    No template.

    Create a template

    Upgrade

    Delete template

    Do you really want to delete this template?
    Turn this template into a regular note and keep its content, versions, and comments.

    This page need refresh

    You have an incompatible client version.
    Refresh to update.
    New version available!
    See releases notes here
    Refresh to enjoy new features.
    Your user state has changed.
    Refresh to load new user state.

    Sign in

    Forgot password

    or

    By clicking below, you agree to our terms of service.

    Sign in via Facebook Sign in via Twitter Sign in via GitHub Sign in via Dropbox Sign in with Wallet
    Wallet ( )
    Connect another wallet

    New to HackMD? Sign up

    Help

    • English
    • 中文
    • Français
    • Deutsch
    • 日本語
    • Español
    • Català
    • Ελληνικά
    • Português
    • italiano
    • Türkçe
    • Русский
    • Nederlands
    • hrvatski jezik
    • język polski
    • Українська
    • हिन्दी
    • svenska
    • Esperanto
    • dansk

    Documents

    Help & Tutorial

    How to use Book mode

    Slide Example

    API Docs

    Edit in VSCode

    Install browser extension

    Contacts

    Feedback

    Discord

    Send us email

    Resources

    Releases

    Pricing

    Blog

    Policy

    Terms

    Privacy

    Cheatsheet

    Syntax Example Reference
    # Header Header 基本排版
    - Unordered List
    • Unordered List
    1. Ordered List
    1. Ordered List
    - [ ] Todo List
    • Todo List
    > Blockquote
    Blockquote
    **Bold font** Bold font
    *Italics font* Italics font
    ~~Strikethrough~~ Strikethrough
    19^th^ 19th
    H~2~O H2O
    ++Inserted text++ Inserted text
    ==Marked text== Marked text
    [link text](https:// "title") Link
    ![image alt](https:// "title") Image
    `Code` Code 在筆記中貼入程式碼
    ```javascript
    var i = 0;
    ```
    var i = 0;
    :smile: :smile: Emoji list
    {%youtube youtube_id %} Externals
    $L^aT_eX$ LaTeX
    :::info
    This is a alert area.
    :::

    This is a alert area.

    Versions and GitHub Sync
    Get Full History Access

    • Edit version name
    • Delete

    revision author avatar     named on  

    More Less

    Note content is identical to the latest version.
    Compare
      Choose a version
      No search result
      Version not found
    Sign in to link this note to GitHub
    Learn more
    This note is not linked with GitHub
     

    Feedback

    Submission failed, please try again

    Thanks for your support.

    On a scale of 0-10, how likely is it that you would recommend HackMD to your friends, family or business associates?

    Please give us some advice and help us improve HackMD.

     

    Thanks for your feedback

    Remove version name

    Do you want to remove this version name and description?

    Transfer ownership

    Transfer to
      Warning: is a public team. If you transfer note to this team, everyone on the web can find and read this note.

        Link with GitHub

        Please authorize HackMD on GitHub
        • Please sign in to GitHub and install the HackMD app on your GitHub repo.
        • HackMD links with GitHub through a GitHub App. You can choose which repo to install our App.
        Learn more  Sign in to GitHub

        Push the note to GitHub Push to GitHub Pull a file from GitHub

          Authorize again
         

        Choose which file to push to

        Select repo
        Refresh Authorize more repos
        Select branch
        Select file
        Select branch
        Choose version(s) to push
        • Save a new version and push
        • Choose from existing versions
        Include title and tags
        Available push count

        Pull from GitHub

         
        File from GitHub
        File from HackMD

        GitHub Link Settings

        File linked

        Linked by
        File path
        Last synced branch
        Available push count

        Danger Zone

        Unlink
        You will no longer receive notification when GitHub file changes after unlink.

        Syncing

        Push failed

        Push successfully