0% ont trouvé ce document utile (0 vote)
2 vues12 pages

TP OpenSSL Commandes

Le document présente un TP sur OpenSSL, abordant le chiffrement, la signature et les certificats numériques. Il détaille les protocoles SSL/TLS, les méthodes de chiffrement symétrique et asymétrique, ainsi que les techniques de hachage et de signature numérique. Des exemples de commandes OpenSSL sont fournis pour illustrer chaque concept traité.

Transféré par

ahmedkhouna44
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
2 vues12 pages

TP OpenSSL Commandes

Le document présente un TP sur OpenSSL, abordant le chiffrement, la signature et les certificats numériques. Il détaille les protocoles SSL/TLS, les méthodes de chiffrement symétrique et asymétrique, ainsi que les techniques de hachage et de signature numérique. Des exemples de commandes OpenSSL sont fournis pour illustrer chaque concept traité.

Transféré par

ahmedkhouna44
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Université Cheikh Anta DIOP de Dakar

Faculté des Sciences et Techniques


(F. S. T.)
Département de Mathématiques et Informatique
(D. M. I.)
Laboratoire d'Algèbre de Cryptologie de Géométrie Algèbrique et Applications
(L. A. C. G. A. A.)

TITRE :

TP OpenSSL
Chirement, Signature et Certicat

Prof Demba SOW


Maitre de Conférences LACGAA/FST/UCAD

Enseignant-chercheur en Mathématiques et Cryptologie

Email : [Link]@[Link]

Année académique 2025-2026

1
Table des matières
1 OpenSSL : Présentation 3
1.1 Le protocole SSL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 OpenSSL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

2 Chirement de données 4
2.1 Chirement Symétrique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.2 Chirement Asymétrique : . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

3 Hachage 6
3.1 Hachage sans clé (MD, SHA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.2 Hachage avec clé (MAC) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3.3 Hachage avec sortie extensible (SHAKE : SHAKE128 ou SHAKE256) . . . . . . . . . 7

4 Signature Numérique 7
4.1 Signature Numérique : RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
4.2 Signature Numérique : DSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
4.3 Signature Numérique : ECDSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

5 Certicat Numérique 11
5.1 Certicat Numérique : RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
5.2 Certicat Auto-signé : RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
5.3 Certicat Auto-signé : DSA et ECDSA . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2
1 OpenSSL : Présentation
1.1 Le protocole SSL
■ Le protocoleSSL (Secure Socket Layer) a été développé par la société Netscape Com-
munications Corporation pour permettre aux applications client/serveur de communiquer
de façon sécurisée.
■ TLS (Transport Layer Security) est une évolution de SSL réalisée par l'IETF.
■ La version 3 de SSL est utilisée par les navigateurs tels Netscape et Microsoft Internet
Explorer depuis leur version 4.
■ SSL est un protocole qui s'intercale entre TCP/IP et les applications qui s'appuient sur
TCP. Une session SSL se déroule en deux temps
♦ une phase de poignée de mains (handshake) durant laquelle le client et le serveur s'iden-
tient, conviennent du système de chirement et d'une clé qu'ils utiliseront par la suite.

♦ la phase de communication proprement dite durant laquelle les données échangées sont
compressées, chirées et signées.
⋆ L'identication durant la poignée de mains est assurée à l'aide de certicats X509.

1.2 OpenSSL
■ OpenSSL est une boîte à outils cryptographiques implémentant les protocoles SSL et TLS
qui ore :
♦ une bibliothèque de programmation en C permettant de réaliser des applications client/serveur
sécurisées s'appuyant sur SSL/TLS.
♦ une commande en ligne (openssl) permettant :
▶ la création de clés RSA, DSA (signature)
▶ la création de certicats X509
▶ le calcul d'empreintes (MD5, SHA, RIPEMD160, ...)
▶ le chirement et déchirement (AES, DES, IDEA, RC2, RC4, Blowsh, ...)
▶ la réalisation de tests de clients et serveurs SSL/TLS
▶ la signature et le chirement de courriers (S/MIME)
♦ Pour connaître toutes les fonctionnalités de openSSL : openssl -help ou man openssl.
♦ La syntaxe générale de la commande openssl est :
Syntaxe
openssl <commande> <options>

3
2 Chirement de données
2.1 Chirement Symétrique
■ Avec un mot de passe =⇒ PBE : Password Based Encryption
♦ Chirement :

Syntaxe
openssl enc <-algo> -md <hash> -pbkdf2 -iter <nb> -salt -in <entree> -out
<sortie>

♦ Déchirement :

Syntaxe
openssl enc <-algo> -d -md <hash> -pbkdf2 -iter <nb> -salt -in < entree >
-out < sortie >

■ Avec une clé générée =⇒ CSPRNG : Cryptographilly Secure Pseudo-Random Number


Generator
♦ Générer un nombre dans un chier :
Syntaxe
openssl rand -out <chier> < nombre de bits >

♦ Chirement :
Syntaxe
openssl enc <algo> -md <hash> -pbkdf2 -iter <nb> -salt -in <entree> -out
<sortie> -e -k <cle>

♦ Déchirement :
Syntaxe
openssl enc <algo> -md <hash> -pbkdf2 -iter <nb> -salt -in <entree> -out
<sortie> -d -k <cle>

4
2.2 Chirement Asymétrique :
■ Création du chier de paire de clés (privée et publique)
♦ Générer d'une paire de clés :
Syntaxe
openssl genrsa -out <chier> < taille de cle >

♦ Visualisation du chier de clés :


Syntaxe
openssl rsa -in <chier> -text -noout

♦ Protection du chier de clés :


Syntaxe
openssl rsa -in <chier> <-algo> -out < chier >

■ Création du chier de clé publique


♦ Exportation de la clé publique :

Syntaxe
openssl rsa -in <chier> -pubout -out < chier>

♦ Visualisation du chier de clé publique :

Syntaxe
openssl rsa -in <chier> -pubin -text -noout

■ Chirement/ déchirement de données


♦ Chirement :
Syntaxe : pkeyutl ou rsautl
openssl pkeyutl -encrypt -in <entree> -inkey <cle> -out < sortie>

5
NB : Pour le chirement, si le chier de clés ne contient que la clé publique alors
ajouter l'option -pubin dans la commande après la clé.

♦ Déchirement :
Syntaxe : pbkeyutl ou rsautl
openssl pkeyutl -decrypt -in <entree> -inkey <cle> -out < sortie>

3 Hachage
3.1 Hachage sans clé (MD, SHA)
■ Lister les algorithmes de hachage et de MAC pris en charge
Syntaxe
openssl dgst -list -digest-commands

■ Hachage sans clé (Intégrité) : MD ou SHA


♦ Création d'une empreinte : hachage de données
Syntaxe
openssl dgst <-algo> -binary -out <empreinte> <chier>

3.2 Hachage avec clé (MAC)


■ Hachage avec clé (Authenticité : MAC) : HMAC ou CMAC
♦ Syntaxe de base
Syntaxe
openssl dgst <algorithme− de− hachage> -mac <type− mac> -macopt
hexkey :<cle− secrete> -out <hache> <chier>

Générer une clé secrète


openssl rand -hex -out chier taille

♦ Exemple avec HMAC-SHA256

6
Calculer le HMAC
openssl dgst -sha256 -mac hmac -macopt hexkey :cle-en-hex -out [Link]
[Link]

♦ Exemple avec CMAC-AES :


Calculer le CMAC
openssl dgst -mac cmac -sha256 -macopt cipher :aes-128-cbc -macopt
hexkey :cle-en-hex -out hash chier

3.3 Hachage avec sortie extensible (SHAKE : SHAKE128 ou SHAKE256)

■ Syntaxe de base
Syntaxe
openssl dgst -shake<taille> -xoen <taille-sortie> <input>

■ Syntaxe de base
Syntaxe
openssl dgst -shake<taille> -out <output> -xoen <taille-sortie> <input>

4 Signature Numérique
4.1 Signature Numérique : RSA
■ Signature et vérication de données
♦ Signature numérique avec hachage (Méthode 1) :

Syntaxe : pbkeyutl ou rsautl


openssl dgst <algo-hash> -sign <cle-privee> -out <signature> <message>

♦ Vérication de signature :
Syntaxe : pbkeyutl ou rsautl
openssl dgst <algo-hash> -verify <cle-publique> -signature <signature>
<message>

7
♦ Signature numérique avec hachage (Méthode 2) : pas à pas
Syntaxe : pbkeyutl ou rsautl
openssl pkeyutl -sign -in <empreinte> -inkey <cle> -out <signature>

♦ Vérication de signature :
Syntaxe : pbkeyutl ou rsautl
openssl pkeyutl -verify -in <empreinte> -sigle <signature> -inkey <cle>

♦ Signature numérique sans hachage :


Syntaxe : pbkeyutl ou rsautl
openssl pkeyutl -sign -in <message> -inkey <cle> -out <signature>

♦ Vérication avec recouvert du message :


Syntaxe : pbkeyutl ou rsautl
openssl pkeyutl -verifyrecover -in <signature> -inkey <cle> -pubin

NB : Pour la vérication, si le chier de clés ne contient que la clé publique alors


ajouter l'option -pubin dans la commande, avant ou après la clé.

4.2 Signature Numérique : DSA


■ Génération d'une paire de clés DSA
Syntaxe : Paramètres DSA
openssl dsaparam -out [Link] 1024

Syntaxe : Paire de clés DSA


openssl gendsa -out [Link] [Link]

■ Visualiser le chier de clés DSA


Syntaxe
openssl dsa -in [Link] -text -noout

■ Exporter une clé publique DSA

8
Syntaxe
openssl dsa -in [Link] -pubout -out [Link]

■ Visualiser une clé publique DSA


Syntaxe
openssl dsa -in [Link] -pubin -text -noout

■ Signature et Vérication DSA avec hachage


Syntaxe : SIGNATURE
openssl dgst -sha256 -sign [Link] -out [Link] [Link]

Syntaxe : Acher la signature DSA


openssl asn1parse -in [Link] -inform der

Syntaxe : VERIFICATION
openssl dgst -sha256 -verify [Link] -signature [Link] [Link]

9
4.3 Signature Numérique : ECDSA
■ Génération d'une paire de clés ECDSA
Syntaxe : Lister les Courbes ECDSA
openssl ecparam -list− curves

Syntaxe : Courbe ECDSA : secp384r1 ou prime256v1


openssl ecparam -name secp384r1 -genkey -noout -out [Link]

■ Visualiser le chier de clés ECDSA


Syntaxe
openssl ec -in [Link] -text -noout

■ Exporter une clé publique ECDSA


Syntaxe
openssl ec -in [Link] -pubout -out [Link]

■ Visualiser une clé publique ECDSA


Syntaxe
openssl ec -in [Link] -pubin -text -noout

■ Signature et Vérication ECDSA sans hachage


Syntaxe : SIGNATURE
openssl pkeyutl -sign -inkey [Link] -in [Link] -out [Link]

Syntaxe : Acher la signature ECDSA


openssl asn1parse -in [Link] -inform der

Syntaxe : VERIFICATION
openssl pkeyutl -in [Link] -inkey [Link] -pubin -verify -sigle [Link]

10
■ Signature et Vérication ECDSA avec hachage
Syntaxe : HACHAGE
openssl dgst -sha256 -binary -out [Link] [Link]

Syntaxe : SIGNATURE
openssl pkeyutl -sign -inkey [Link] -in [Link] -out [Link]

Syntaxe : Acher la signature ECDSA


openssl asn1parse -in [Link] -inform der

Syntaxe : VERIFICATION
openssl pkeyutl -in [Link] -inkey [Link] -pubin -verify -sigle [Link]

5 Certicat Numérique
5.1 Certicat Numérique : RSA
■ Création d'un certicat numérique
♦ Création d'une requète de certicat

Syntaxe
openssl req -cong [Link] -new -key <cle> -out <requete>

♦ Visualisation du chier de requète :


Syntaxe
openssl req -cong [Link] -in <requete> -text -noout

♦ Génération du certicat :
Syntaxe
openssl x509 -days <jours> -CAserial <numero-serie> -CA <certif-CA> -CAkey
<cle-CA> -in <requete> -req -out <certicat>

11
♦ Visualisation du certicat :
Syntaxe
openssl x509 -in <certicat> -text -noout

5.2 Certicat Auto-signé : RSA


■ Création d'un certicat numérique auto-signé
♦ Création d'une paire de clés
Syntaxe
openssl genrsa -out <cle> <taille>

♦ Avec la clé privée, création d'un chier de demande de signature de certicat


(CSR Certicate Signing Request) :
Syntaxe
openssl req -new -key <cle> -out <requete>

♦ Auto-signature d'un certicat :


Syntaxe
openssl x509 -req -days <jours> -in <requete> -signkey <cle> -out <certicat>

5.3 Certicat Auto-signé : DSA et ECDSA


■ Création d'un certicat numérique auto-signé : DSA
Syntaxe
openssl req -x509 -new -key [Link] -out [Link]

■ Création d'un certicat numérique auto-signé : ECDSA


Syntaxe
openssl req -x509 -new -key [Link] -out [Link]

12

Vous aimerez peut-être aussi