Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
elearning:workbooks:centos:8:avance:l113 [2024/10/01 10:20] adminelearning:workbooks:centos:8:avance:l113 [2024/10/10 14:21] (Version actuelle) admin
Ligne 38: Ligne 38:
           * Les Routeurs           * Les Routeurs
           * Les Passerelles           * Les Passerelles
 +      * Comprendre le Chiffrement
 +        * Introduction à la cryptologie
 +          * Définitions
 +            * La Cryptographie
 +            * Le Chiffrement par Substitution
 +        * Algorithmes à clé secrète
 +          * Le Chiffrement Symétrique
 +        * Algorithmes à clef publique
 +          * Le Chiffrement Asymétrique
 +          * La Clef de Session
 +        * Fonctions de Hachage
 +        * Signature Numérique
 +        * Utilisation de GnuPG
 +          * Présentation
 +          * Installation
 +          * Configuration
 +          * Signer un message
 +          * Chiffrer un message
 +        * PKI
 +          * Certificats X509
     * Comprendre IPv4     * Comprendre IPv4
       * En-tête TCP       * En-tête TCP
Ligne 822: Ligne 842:
   * entre deux protocoles différents,   * entre deux protocoles différents,
   * entre des formats de données différents.   * entre des formats de données différents.
 +
 +=====Comprendre le Chiffrement=====
 +
 +====Introduction à la cryptologie====
 +
 +===Définitions===
 +
 +  * **La Cryptologie**
 +    * La science qui étudie les aspects scientifiques de ces techniques, c'est-à-dire qu'elle englobe la cryptographie et la cryptanalyse. 
 +  * **La Cryptanalyse**
 +    * Lorsque la clef de déchiffrement n'est pas connue de l'attaquant on parle alors de cryptanalyse ou cryptoanalyse (on entend souvent aussi le terme plus familier de cassage).
 +  * **La Cryptographie**
 +    * Un terme générique désignant l'ensemble des techniques permettant de chiffrer des messages, c'est-à-dire permettant de les rendre inintelligibles sans une action spécifique. Les verbes crypter et chiffrer sont utilisés.
 +  * **Le Décryptement ou Décryptage**
 +    * Est le fait d'essayer de déchiffrer illégitimement le message (que la clé de déchiffrement soit connue ou non de l'attaquant).
 +
 +{{ :redhat:lx04:crypto1.gif|Cette image issue de Comment Ça Marche (www.commentcamarche.net) est mise à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de l'image, dans les conditions fixées par la licence, tant que cette note apparaît clairement. }}
 +
 +==La Cryptographie==
 +
 +La cryptographie apporte quatre points clefs: 
 +
 +  * La confidentialité
 +    * consiste à rendre l'information inintelligible à d'autres personnes que les acteurs de la transaction.
 +  * L'intégrité
 +    * consiste à déterminer si les données n'ont pas été altérées durant la communication (de manière fortuite ou intentionnelle).
 +  * L'authentification
 +    * consiste à assurer l'identité d'un utilisateur.
 +  * La non-répudiation
 +    * est la garantie qu'aucun des correspondants ne pourra nier la transaction. 
 +
 +La cryptographie est basée sur l'arithmétique. Il s'agit, dans le cas d'un texte, de transformer les lettres qui composent le message en une succession de chiffres (sous forme de bits dans le cas de l'informatique), puis ensuite de faire des calculs sur ces chiffres pour:
 +
 +  * Procéder au chiffrement
 +    * Le résultat de cette modification (le message chiffré) est appelé cryptogramme (Ciphertext) par opposition au message initial, appelé message en clair (Plaintext)
 +  * Procéder au déchiffrement
 +
 +Le chiffrement se fait à l'aide d'une clef de chiffrement. Le déchiffrement nécessite  une clef de déchiffrement.
 +
 +On distingue deux types de clefs:
 +
 +  * Les clés symétriques: 
 +    * des clés utilisées pour le chiffrement ainsi que pour le déchiffrement. On parle alors de chiffrement symétrique ou de chiffrement à clé secrète.
 +  * Les clés asymétriques: 
 +    * des clés utilisées dans le cas du chiffrement asymétrique (aussi appelé chiffrement à clé publique). Dans ce cas, une clé différente est utilisée pour le chiffrement et pour le déchiffrement.
 +
 +==Le Chiffrement par Substitution==
 + 
 +Le chiffrement par substitution consiste à remplacer dans un message une ou plusieurs entités (généralement des lettres) par une ou plusieurs autres entités. On distingue généralement plusieurs types de cryptosystèmes par substitution :
 +
 +  * La substitution **monoalphabétique**
 +    * consiste à remplacer chaque lettre du message par une autre lettre de l'alphabet
 +  * La substitution **polyalphabétique** 
 +    * consiste à utiliser une suite de chiffres monoalphabétique réutilisée périodiquement
 +  * La substitution **homophonique** 
 +    * permet de faire correspondre à chaque lettre du message en clair un ensemble possible d'autres caractères
 +  * La substitution de **polygrammes**  
 +    * consiste à substituer un groupe de caractères (polygramme) dans le message par un autre groupe de caractères
 +
 +====Algorithmes à clé secrète====
 +
 +===Le Chiffrement Symétrique===
 +
 +Ce système est aussi appelé le système à **Clef Secrète** ou à **clef privée**.
 +
 +Ce système consiste à effectuer une opération de chiffrement par algorithme mais comporte un inconvénient, à savoir qu'il nécessite un canal sécurisé pour la transmission de la clef de chiffrement/déchiffrement.
 +
 +{{:redhat:lx04:crypto2.gif|Cette image issue de Comment Ça Marche (www.commentcamarche.net) est mise à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de l'image, dans les conditions fixées par la licence, tant que cette note apparaît clairement.}}
 +
 +<WRAP center round important 60%>
 +**Important** - Le système de Méthode du Masque Jetable (One Time Pad) fût mis au point dans les années 1920. Il utilisait une clef générée aléatoirement à usage unique.
 +</WRAP>
 +
 +Les algorithmes de chiffrement symétrique couramment utilisés en informatique sont:
 +
 +  * **[[wpfr>Data_Encryption_Standard|Data Encryption Standard]]** (DES),
 +  * **[[wpfr>Triple_DES|Triple DES]]** (3DES),
 +  * **[[wpfr>RC2]]**, 
 +  * **[[wpfr>Blowfish|Blowfish]]**,
 +  * **[[wpfr>International_Data_Encryption_Algorithm|International Data Encryption Algorithm]]** (IDEA),
 +  * **[[wpfr>Standard_de_chiffrement_avancé|Advanced Encryption Standard]]** (AES).
 +
 +====Algorithmes à clef publique====
 +
 +===Le Chiffrement Asymétrique===
 +
 +Ce système est aussi appelé **Système à Clef Publique**.
 +
 +Ce système consiste à avoir deux clefs appelées des **bi-clefs**:
 +
 +  * Une clef **publique** pour le chiffrement
 +  * Une clef **secrète** ou **privée** pour le déchiffrement
 +
 +{{:redhat:lx04:crypto3.gif|Cette image issue de Comment Ça Marche (www.commentcamarche.net) est mise à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de l'image, dans les conditions fixées par la licence, tant que cette note apparaît clairement.}}
 +
 +  * L'utilisateur A (celui qui déchiffre) choisit une clef privée. 
 +  * A partir de cette clef il génère plusieurs clefs publiques grâce à un algorithme.
 +  * L'utilisateur B (celui qui chiffre) choisit une des clefs publiques à travers un canal non-sécurisé pour chiffrer les données à l'attention de l'utilisateur A.
 +
 +Ce système est basé sur ce que l'on appelle une **fonction à trappe à sens unique** ou **one-way trap door**.
 +
 +Il existe toutefois un problème – s'assurer que la clef publique récupérée est bien celle qui correspond au destinataire !
 +
 +Les algorithmes de chiffrement asymétrique couramment utilisés en informatique sont:
 +
 +  * **[[wpfr>Digital_Signature_Algorithm|Digital Signature Algorithm]]** (DSA)
 +  * **[[wpfr>Rivest_Shamir_Adleman|Rivest, Shamir, Adleman]]** (RSA)
 +
 +===La Clef de Session===
 +
 +Ce système est un compromis entre le système symétrique et le système asymétrique. Il permet l'envoie de données chiffrées à l'aide d'un algorithme de chiffrement symétrique par un canal non-sécurisé et a été mis au point pour palier au problème de lenteur de déchiffrement du système asymétrique.
 +
 +{{:redhat:lx04:crypto4.gif|Cette image issue de Comment Ça Marche (www.commentcamarche.net) est mise à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de l'image, dans les conditions fixées par la licence, tant que cette note apparaît clairement.}}
 +
 +Ce système fonctionne de la façon suivante :
 +
 +  * L'utilisateur A chiffre une clef privée générée aléatoirement, appelée une « clef de session », en utilisant une des clefs publiques de l'utilisateur B.
 +  * L'utilisateur A chiffre les données avec la clef de session.
 +  * L'utilisateur B déchiffre la clef de session en utilisant sa propre clef privée.
 +  * L'utilisateur B déchiffre les données en utilisant la clef de session.
 +
 +====Fonctions de Hachage====
 +
 +La fonction de **hachage**, aussi appelée une fonction de **condensation**, est à **sens unique** (one way function). Il « condense » un message en clair et produit un haché unique.
 +
 +{{:redhat:lx04:crypto5.gif|Cette image issue de Comment Ça Marche (www.commentcamarche.net) est mise à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de l'image, dans les conditions fixées par la licence, tant que cette note apparaît clairement.}}
 +
 +Les deux algorithmes de hachage utilisés sont: 
 +
 +  * **[[wpfr>MD5|Message Digest 5]]** (MD5) 
 +  * **[[wpfr>SHA-1|Secure Hash Algorithm]]** (SHA)
 +
 +Lors de son envoie, le message est accompagné de son haché et il est donc possible de garantir son intégrité:
 +
 +{{:redhat:lx04:crypto6.gif|Cette image issue de Comment Ça Marche (www.commentcamarche.net) est mise à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de l'image, dans les conditions fixées par la licence, tant que cette note apparaît clairement.}}
 + 
 +  * A la réception du message, le destinataire ou l’utilisateur B calcule le haché du message reçu et le compare avec le haché accompagnant le document. 
 +  * Si le message ou le haché a été falsifié durant la communication, les deux empreintes ne correspondront pas. 
 +
 +<WRAP center round important 60%>
 +**Important** - Ce système permet de vérifier que l'empreinte correspond bien au message reçu, mais ne permet pas de prouver que le message a bien été envoyé par l’utilisateur A.
 +</WRAP>
 +
 +====Signature Numérique====
 +
 +Pour garantir l'authentification du message l‘utilisateur A va chiffrer ou **signer** le haché à l'aide de sa clé privée. Le haché signé est appelé un **sceau**.
 +
 +{{:redhat:lx04:crypto7.gif|Cette image issue de Comment Ça Marche (www.commentcamarche.net) est mise à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de l'image, dans les conditions fixées par la licence, tant que cette note apparaît clairement.}}
 +
 +  * L’utilisateur A envoie le sceau au destinataire.
 +  * A la réception du message L’utilisateur B déchiffre le sceau avec la clé publique de l’utilisateur A.
 +  * Il compare le haché obtenu au haché reçu en pièce jointe.
 + 
 +Ce mécanisme de création de sceau est appelé **scellement**.
 +
 +Ce mécanisme est identique au procédé utilisé par SSH lors d'une connexion 
 +
 +====Utilisation de GnuPG====
 +
 +===Présentation===
 +
 +**GNU Privacy Guard** permet aux utilisateurs de transférer des messages chiffrés et/ou signés.
 +
 +===Installation===
 +
 +Sous RHEL 9, le paquet gnupg est installé par défaut :
 +
 +<code>
 +[root@centos8 ~]# whereis gpg
 +gpg: /usr/bin/gpg /usr/share/man/man1/gpg.1.gz
 +</code>
 +
 +===Configuration===
 +
 +Pour initialiser %%GnuPG%%, saisissez la commande suivante :
 +
 +<code>
 +[root@centos8 ~]# gpg
 +gpg: directory '/root/.gnupg' created
 +gpg: keybox '/root/.gnupg/pubring.kbx' created
 +gpg: WARNING: no command supplied.  Trying to guess what you mean ...
 +gpg: Go ahead and type your message ...
 +^C
 +gpg: signal Interrupt caught ... exiting
 +</code>
 +
 +Pour générer les clefs, saisissez la commande suivante :
 +
 +<code>
 +[root@centos8 ~]# gpg --full-generate-key
 +gpg (GnuPG) 2.2.20; Copyright (C) 2020 Free Software Foundation, Inc.
 +This is free software: you are free to change and redistribute it.
 +There is NO WARRANTY, to the extent permitted by law.
 +
 +Please select what kind of key you want:
 +   (1) RSA and RSA (default)
 +   (2) DSA and Elgamal
 +   (3) DSA (sign only)
 +   (4) RSA (sign only)
 +  (14) Existing key from card
 +Your selection? 1
 +RSA keys may be between 1024 and 4096 bits long.
 +What keysize do you want? (2048) 
 +Requested keysize is 2048 bits
 +Please specify how long the key should be valid.
 +         0 = key does not expire
 +      <n>  = key expires in n days
 +      <n>w = key expires in n weeks
 +      <n>m = key expires in n months
 +      <n>y = key expires in n years
 +Key is valid for? (0) 
 +Key does not expire at all
 +Is this correct? (y/N) y
 +
 +GnuPG needs to construct a user ID to identify your key.
 +
 +Real name: I2TCH
 +Email address: infos@i2tch.co.uk
 +Comment: Test Key
 +You selected this USER-ID:
 +    "I2TCH (Test Key) <infos@i2tch.co.uk>"
 +
 +Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O
 +We need to generate a lot of random bytes. It is a good idea to perform
 +some other action (type on the keyboard, move the mouse, utilize the
 +disks) during the prime generation; this gives the random number
 +generator a better chance to gain enough entropy.
 +We need to generate a lot of random bytes. It is a good idea to perform
 +some other action (type on the keyboard, move the mouse, utilize the
 +disks) during the prime generation; this gives the random number
 +generator a better chance to gain enough entropy.
 +gpg: /root/.gnupg/trustdb.gpg: trustdb created
 +gpg: key 8B4DEC5CC2B2AC5A marked as ultimately trusted
 +gpg: directory '/root/.gnupg/openpgp-revocs.d' created
 +gpg: revocation certificate stored as '/root/.gnupg/openpgp-revocs.d/9666229B8B43D80C1832BE0D8B4DEC5CC2B2AC5A.rev'
 +public and secret key created and signed.
 +
 +pub   rsa2048 2021-08-24 [SC]
 +      9666229B8B43D80C1832BE0D8B4DEC5CC2B2AC5A
 +uid                      I2TCH (Test Key) <infos@i2tch.co.uk>
 +sub   rsa2048 2021-08-24 [E]
 +</code>
 +
 +<WRAP center round important 60%>
 +**Important** - Lorsque le système vous la demande, entrez la passphrase **fenestros**.
 +</WRAP>
 +
 +La liste de clefs peut être visualisée avec la commande suivante :
 +
 +<code>
 +[root@centos8 ~]# gpg --list-keys
 +gpg: checking the trustdb
 +gpg: marginals needed: 3  completes needed: 1  trust model: pgp
 +gpg: depth: 0  valid:    signed:    trust: 0-, 0q, 0n, 0m, 0f, 1u
 +/root/.gnupg/pubring.kbx
 +------------------------
 +pub   rsa2048 2021-08-24 [SC]
 +      9666229B8B43D80C1832BE0D8B4DEC5CC2B2AC5A
 +uid           [ultimate] I2TCH (Test Key) <infos@i2tch.co.uk>
 +sub   rsa2048 2021-08-24 [E]
 +</code>
 +
 +<WRAP center round important 60%>
 +**Important** - Pour importer la clef d'un correspondant dans sa trousse de clefs il convient d'utiliser la commande suivante :
 +
 +  # gpg --import la-clef.asc
 +</WRAP>
 +
 +Pour exporter sa clef publique, il convient d'utiliser la commande suivante :
 +
 +<code>
 +[root@centos8 ~]# gpg --export --armor I2TCH > ~/I2TCH.asc
 +[root@centos8 ~]# cat I2TCH.asc
 +-----BEGIN PGP PUBLIC KEY BLOCK-----
 +
 +mQENBGElDSgBCACih8Jfs1nlSPiK/wGCygz2WSljsiXdXlnSHaklznxNldpY4Xrj
 +TPl145L95XJkHsMf++74MVMdGBn1TnG6m+J1iXkV2EbZzxw9rExA5u9W6rtzWIzP
 +a/90kuQNAfc/sCUoAM10MqOvpiuc+vSHoJNuqdh4Vv1K3wSg+yQKBXacStZ/7ZS3
 +0PFXXFCjP6IW4a7h761EcyCXPWhuDfc7qXqLiRjNJS9xKWj0/Hd/O+UYi20XgGB8
 +VnjMoHodvNvmmsLCvBM8bsxUxT4izFKRHk4xM2AaQurmiU9i1J8nOC51a2IinOtD
 +QT1WCryY1pnnNzO14BY8VjN2eFWIFh9R9UZhABEBAAG0JEkyVENIIChUZXN0IEtl
 +eSkgPGluZm9zQGkydGNoLmNvLnVrPokBTgQTAQgAOBYhBJZmIpuLQ9gMGDK+DYtN
 +7FzCsqxaBQJhJQ0oAhsDBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJEItN7FzC
 +sqxaFAkH/1ZQrtW6oNsATiG0i+X6obmWfMcRaKZiGcT5TNYdjEvXzDM/ND43nVzy
 +wBHJR6jZ45M4e+OeQAe01VrqBJGirrgZDOg0m8gXdXr0mygAFmUwQ6E+qYlawx7j
 +29p2al54zpaaRSy2r/y5+hD0KV/OQxzb9xUSm0qhqMFryh+hBBvJXqNVdBH0lk+j
 +ENK/8BvD5FtjgU6r3pvICWiA+hwSQ2bCT+l2O83twP5o19oRE3dTd+pX5/RI5Kgj
 ++YuD6jtVzCnA2hbjCJ4xVErEBubg/1f9D4IgnZp5QTaznpH6US2rZ1Xhz2P6Jo95
 +61kuoR4K4H7zvdyEOgbtZf3iDfrAc/i5AQ0EYSUNKAEIALidAGF/Ev18YfokQy5z
 +Xssxj2UuKRYwRO6xr731aBaYKgOym0/56Aj944WhWmJ0/RyIMpRz51p/yFLtHy1H
 +nWg0a3WnwGssQbL4UErEe1wUrNb3hLsvFXYDehZTWcr2adfl94Yv4yaOa9vYmb5p
 +Qu5tAoDQ1PUqZYsR83IjIQinF2ZgQh6+cK+MfojtwwarmwhHJnYAhbOux3WB0FVy
 +h6SbGxA4Sps/ANqpgR/TPFlXzXI1vVFN9x9QMhMNGjyO1oIs8dcYLYoixb970shx
 +9IucE6Yw7SBfVlJ5ezI+Q+CNEzCJgJ/kUXNST/QWdq/h7lSE2CNnhrcYAoOdEAaB
 +pNUAEQEAAYkBNgQYAQgAIBYhBJZmIpuLQ9gMGDK+DYtN7FzCsqxaBQJhJQ0oAhsM
 +AAoJEItN7FzCsqxadFgH/R3ncPLtfjlRE0bZM6MUbutnQxq4RbBp9JrbqYhFy97o
 +lWbhMrca8Ts9pCZE3/kFbsNhg3uoe7rbECYMvmCJ2Gi8RtM45SAyzezYyR45fa2W
 +825P+DaUdZ4ahX1jzaNEWgzMjKRt2P84ih1St7oW9OcOT/04kCYhmsGfLZPch9+R
 +W+S8kIoiBJ8ucL5KNy9TAOTTvk4fC7w9plovpU9fJRs7CMg0kKEnTrgkH06bVK65
 ++4aNWr0LPPNzJaalBMLAghbzcMzRVwsB79AuKciUP/6ZTjyEGXtH/cF5Xxup5qHT
 +WEhhheTEBxVhlpK40Gs0B6TMSkBGq8LjQ98V3hghYa4=
 +=0TAN
 +-----END PGP PUBLIC KEY BLOCK-----
 +</code>
 +
 +Cette clef peut ensuite être jointe à des messages électroniques ou bien être déposée sur un serveur de clefs tel que http://www.keyserver.net.
 +
 +===Signer un message===
 +
 +Créez maintenant un message à signer :
 +
 +<code>
 +[root@centos8 ~]# vi ~/message.txt
 +[root@centos8 ~]# cat ~/message.txt
 +This is a test message for gpg
 +</code>
 +
 +Pour signer ce message en format binaire, il convient d'utiliser la commande suivante :
 +
 +<code>
 +[root@centos8 ~]# gpg --default-key I2TCH --detach-sign message.txt
 +gpg: using "I2TCH" as default secret key for signing
 +[root@centos8 ~]# ls -l | grep message
 +-rw-r--r--. 1 root root   31 Aug 24 11:22 message.txt
 +-rw-r--r--. 1 root root  329 Aug 24 11:23 message.txt.sig
 +[root@centos8 ~]# cat message.txt.sig 
 +0!f"C
 +M\²Za%infos@i2tch.co.uk
 +        M\²ZT2oh@<E=n)\jED$kFvѧ`@ՂL/4XYO?49U*cje?sh
 +-p&̨Za2i?qUuQ悐                                     غ<![l
 +9٨B|RA?Rk#b2V65mt"vC,:n
 +/H4&                   krZ
 +a+ 6%6O%<z+(qsv[root@centos8 ~]# 
 +</code>
 +
 +Pour signer ce message en format ascii, il convient d'utiliser la commande suivante :
 +
 +<code>
 +[root@centos8 ~]# gpg --default-key I2TCH --armor --detach-sign message.txt
 +gpg: using "I2TCH" as default secret key for signing
 +[root@centos8 ~]# ls -l | grep message
 +-rw-r--r--. 1 root root   31 Aug 24 11:22 message.txt
 +-rw-r--r--. 1 root root  512 Aug 24 11:24 message.txt.asc
 +-rw-r--r--. 1 root root  329 Aug 24 11:23 message.txt.sig
 +[root@centos8 ~]# cat message.txt.asc
 +-----BEGIN PGP SIGNATURE-----
 +
 +iQFGBAABCAAwFiEElmYim4tD2AwYMr4Ni03sXMKyrFoFAmElDywSHGluZm9zQGky
 +dGNoLmNvLnVrAAoJEItN7FzCsqxac1YIAIohAPQ8x2G60HW8yhJKIJxCLrM+gvKz
 +GsTB/l+vPDEP6fToBnvMkvQwJqqQ7C0m7WkE4M2VWte6RxcpnUVcdwSlkpTKT4ww
 +Dbwlt7kgwX0MNPr4qOQfAG8azJB40UCRd9aq3nwstdZWmLiQ48zraR/h50WOFN/H
 +0muyB4khwk2lonE/z7T09BNb8kMajK0CC+ZTSb2eOHb4U2C1jfzUybfR2v2+ApmC
 +Dmj4vu2jM5YnElP5Kbz4me/JY5zZbYIFhTb8TMq7kVIuibaB4keERVdd+fk0FY1Z
 +WFggEvw1tSuoC3rZ0y1c0Rj59HoZ9QxaKX8n+wq5+A4k8slt6WzuAu8=
 +=//z2
 +-----END PGP SIGNATURE-----
 +</code>
 +
 +Pour vérifier la signature d'un message signé en mode ascii, il convient d'utiliser la commande :
 +
 +<code>
 +[root@centos8 ~]# gpg --verify message.txt.asc
 +gpg: assuming signed data in 'message.txt'
 +gpg: Signature made Tue 24 Aug 2021 11:24:28 EDT
 +gpg:                using RSA key 9666229B8B43D80C1832BE0D8B4DEC5CC2B2AC5A
 +gpg:                issuer "infos@i2tch.co.uk"
 +gpg: Good signature from "I2TCH (Test Key) <infos@i2tch.co.uk>" [ultimate]
 +</code>
 +
 +Pour vérifier la signature d'un message signé en mode ascii et produit en dehors du message lui-même, il convient d'utiliser la commande :
 +
 +<code>
 +[root@centos8 ~]# gpg --verify message.txt.asc message.txt
 +gpg: Signature made Tue 24 Aug 2021 11:24:28 EDT
 +gpg:                using RSA key 9666229B8B43D80C1832BE0D8B4DEC5CC2B2AC5A
 +gpg:                issuer "infos@i2tch.co.uk"
 +gpg: Good signature from "I2TCH (Test Key) <infos@i2tch.co.uk>" [ultimate]
 +</code>
 +
 +Pour signer ce message **dans le message lui-même** en format ascii, il convient d'utiliser la commande suivante :
 +
 +<code>
 +[root@centos8 ~]# gpg --default-key I2TCH --clearsign message.txt
 +gpg: using "I2TCH" as default secret key for signing
 +File 'message.txt.asc' exists. Overwrite? (y/N) y
 +[root@centos8 ~]# ls -l | grep message
 +-rw-r--r--. 1 root root   31 Aug 24 11:22 message.txt
 +-rw-r--r--. 1 root root  592 Aug 24 11:28 message.txt.asc
 +-rw-r--r--. 1 root root  329 Aug 24 11:23 message.txt.sig
 +[root@centos8 ~]# cat message.txt.asc
 +-----BEGIN PGP SIGNED MESSAGE-----
 +Hash: SHA256
 +
 +This is a test message for gpg
 +-----BEGIN PGP SIGNATURE-----
 +
 +iQFGBAEBCAAwFiEElmYim4tD2AwYMr4Ni03sXMKyrFoFAmElEBMSHGluZm9zQGky
 +dGNoLmNvLnVrAAoJEItN7FzCsqxaQa0H+gLxI8PTEJtbg6q+PmhlsQq2PkITRDFB
 +bC5vW8CQzXUNA08aqkBEOgA1OvX9gJG0Q/aJO7fPrQFWP9g7IYPax/GvmgHCmS7B
 +Hc5uULOawGvulctflk7xCmhgtaFndwCUN685xCPDOdhUMs0rX9Zqj8pKhbwh4Xpz
 +Q7vY5gPJTn2aj4PL5GkXN/ZzGclFTVN9o5BQuxYnTCB694WzZepf48dMPaIdlDxJ
 +l2yHf/jZGt2ZE2hoVllvjMN81LhjaqMxIoSTLwUAn+WBtrwNreQdERxtQv0waIA7
 +NNFzGPdi0HGdJhjYJ/v4eFbi5X4gvHVVazzOpY5p48yVgCRAwZHJh/0=
 +=C3OQ
 +-----END PGP SIGNATURE-----
 +</code>
 +
 +===Chiffrer un message===
 +
 +Pour chiffrer un message, il faut disposer de la clef publique du destinataire du message. Ce dernier utilisera ensuite sa clef privée pour déchiffrer le message. Il convient de préciser le destinataire du message, ou plus précisément la clef publique à utiliser, lors d'un chiffrement :
 +
 +    gpg --recipient <destinataire> --encrypt <message>
 +
 +  * //<destinataire>// représente toute information permettant de distinguer sans ambigüité une clef publique dans votre trousseau. Cette information peut-être le nom ou l'adresse email associé à la clef publique que vous voulez utiliser, 
 +  * //<message>// représente le message à chiffrer.
 +
 +Par exemple pour chiffrer un message en mode binaire, il convient de saisir la commande suivante :
 +
 +<code>
 +[root@centos8 ~]# gpg --recipient I2TCH --encrypt message.txt
 +[root@centos8 ~]# ls -l | grep message
 +-rw-r--r--. 1 root root   31 Aug 24 11:22 message.txt
 +-rw-r--r--. 1 root root  592 Aug 24 11:28 message.txt.asc
 +-rw-r--r--. 1 root root  367 Aug 24 11:30 message.txt.gpg
 +-rw-r--r--. 1 root root  329 Aug 24 11:23 message.txt.sig
 +[root@centos8 ~]# cat message.txt.gpg
 +
 +EeJ վ
 +
 +     pqa=w_wZI)0,G@"s"+i:(AVG;@GX)[㏤ba9hh%7
 +                                            Wg7X
 +                                                o#U>g̖ɉHEre8K\R*4u0n@"{SIlgt6gy]܄Z{t0'ҏ@k{%I~}puO-#făt^S)[Ŝ)Xq=#94t;fMҥC|UVoɜ,H|+.!4:DmZlO]bI{H[root@centos8 ~]#
 +</code>
 +
 +Et pour chiffrer un message en mode ascii, il convient de saisir la commande suivante :
 +
 +<code>
 +[root@centos8 ~]# gpg --recipient I2TCH --armor --encrypt message.txt
 +File 'message.txt.asc' exists. Overwrite? (y/N) y
 +[root@centos8 ~]# ls -l | grep message
 +-rw-r--r--. 1 root root   31 Aug 24 11:22 message.txt
 +-rw-r--r--. 1 root root  561 Aug 24 11:32 message.txt.asc
 +-rw-r--r--. 1 root root  367 Aug 24 11:30 message.txt.gpg
 +-rw-r--r--. 1 root root  329 Aug 24 11:23 message.txt.sig
 +[root@centos8 ~]# cat message.txt.asc 
 +-----BEGIN PGP MESSAGE-----
 +
 +hQEMA0XsZUog1b4LAQf7BgGL8LMcMbLdD4nSOwc45FLNyj9MXkr0ru01jBRb3UP/
 +MW6VxWekLrWOXRBvFo/dS1Y/KIAYiZ9kDVSYwbbrQxOql/F4sWBagWAOs/gzeWt6
 +MrKuOK6pgPdgO57AcImOeUjPL42RHh6enGRdud+GWiZNQKAvPiCNikfhJUza+o1Z
 +GyAcq5RMSuohOp2weai5CwcVqZddrTvKzjkoUrMCwnMxGKjdbNRC3+DKEI9B4L3j
 +7Dno9DseQcebD3NYEICSt2oJr+xazejiLj4X8nerBrCqV7nK9v7mvxTKCIL5iOBR
 +duBPFvgJuSVnSJZ+XzBeEQ8q24L3FLV9B5yJnF+e8tJeASweIXfqWaeWNObfAHC3
 +dkMtvNUNs6jkmFUGdONYosNlHW9jFWllpe2Q5Ra13kdZob3o1eevU2iGBAx0Gi0Z
 +yEB3HjqYFKxFj+lCj4KP59O55sEpePgAo2qhPhfeMw==
 +=UDxQ
 +-----END PGP MESSAGE-----
 +</code>
 +
 +Pour décrypter un message il convient d'utiliser la commande suivante :
 +
 +<code>
 +[root@centos8 ~]# gpg --decrypt message.txt.asc
 +gpg: encrypted with 2048-bit RSA key, ID 45EC654A20D5BE0B, created 2021-08-24
 +      "I2TCH (Test Key) <infos@i2tch.co.uk>"
 +This is a test message for gpg
 +</code>
 +
 +====PKI====
 +
 +On appelle **[[wpfr>Public_Key_Infrastructure|PKI]]** (Public Key Infrastucture, ou en français **infrastructure à clé publique (ICP)**, parfois **infrastructure de gestion de clés (IGC)**) l’ensemble des solutions techniques basées sur la cryptographie à clé publique.
 +
 +Les cryptosystèmes à clés publiques permettent de s'affranchir de la nécessité d'avoir recours systématiquement à un canal sécurisé pour s'échanger les clés. En revanche, la publication de la clé publique à grande échelle doit se faire en toute confiance pour assurer que :
 +
 +    * La clé publique est bien celle de son propriétaire ;
 +    * Le propriétaire de la clé est digne de confiance ;
 +    * La clé est toujours valide. 
 +
 +Ainsi, il est nécessaire d'associer au bi-clé (ensemble clé publique / clé privée) un certificat délivré par un **tiers de confiance** : l'infrastructure de gestion de clés.
 +
 +Le tiers de confiance est une entité appelée communément autorité de certification (ou en anglais Certification authority, abrégé CA) chargée d'assurer la véracité des informations contenues dans le certificat de clé publique et de sa validité.
 +
 +Pour ce faire, l'autorité signe le certificat de clé publique à l'aide de sa propre clé en utilisant le principe de signature numérique.
 +
 +Le rôle de l'infrastructure de clés publiques est multiple et couvre notamment les champs suivants :
 +
 +    * enregistrer des demandes de clés en vérifiant l'identité des demandeurs ;
 +    * générer les paires de clés (clé privée / clé publique) ;
 +    * garantir la confidentialité des clés privées correspondant aux clés publiques ;
 +    * certifier l'association entre chaque utilisateurs et sa clé publique ;
 +    * révoquer des clés (en cas de perte par son propriétaire, d'expiration de sa date de validité ou de compromission). 
 +
 +Une infrastructure à clé publique est en règle générale composée de trois entités distinctes :
 +
 +    * L'autorité d'enregistrement (AE ou RA pour Recording authority), chargée des formalité administratives telles que la vérification de l'identité des demandeurs, le suivi et la gestion des demandes, etc.) ;
 +    * L'autorité de certification (AC ou CA pour Certification Authority), chargée des tâches techniques de création de certificats. L'autorité de certification est ainsi chargée de la signature des demandes de certificat (CSR pour Certificate Signing Request, parfois appelées PKCS#10, nom du format correspondant). L'autorité de certification a également pour mission la signature des listes de révocations (CRL pour Certificate Revocation List) ;
 +    * L'Autorité de dépôt (Repository) dont la mission est de conserver en sécurité les certificats.
 +
 +===Certificats X509===
 +
 +Pour palier aux problèmes liés à des clefs publiques piratées, un système de certificats a été mis en place.
 +
 +Le certificat permet d’associer la clef publique à une entité ou une personne. Les certificats sont délivrés par des Organismes de Certification.
 +
 +Les certificats sont des fichiers divisés en deux parties : 
 +
 +  * La partie contenant les informations 
 +  * La partie contenant la signature de l'autorité de certification
 +
 +La structure des certificats est normalisée par le standard **[[wpfr>X.509|X.509]]** de l’**[[wpfr>UIT|Union internationale des télécommunications]]**. 
 +
 +Elle contient : 
 +
 +  * Le nom de l'autorité de certification 
 +  * Le nom du propriétaire du certificat 
 +  * La date de validité du certificat 
 +  * L'algorithme de chiffrement utilisé 
 +  * La clé publique du propriétaire 
 +
 +Le Certificat est signé par l'autorité de certification:
 +
 +{{:redhat:lx04:crypto8.gif|Cette image issue de Comment Ça Marche (www.commentcamarche.net) est mise à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de l'image, dans les conditions fixées par la licence, tant que cette note apparaît clairement.}}
 +
 +La vérification se passe ainsi:
 +
 +{{:redhat:lx04:crypto9.gif|Cette image issue de Comment Ça Marche (www.commentcamarche.net) est mise à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de l'image, dans les conditions fixées par la licence, tant que cette note apparaît clairement.}}
 +
  
 =====Comprendre IPv4===== =====Comprendre IPv4=====
Menu