documentation/outils/protocoles/tls.md

2.1 KiB

TLS

TLS (Transport Layer Security) est un protocole cryptographique permettant une communication sécurisée sur un réseau.

TLS 1.3

La dernière version de TLS est TLS 1.3 spécifiée dans la RFC 8446.

OpenSSL

OpenSSL est une bibliothèque implémentant le protocole TLS elle vient avec un binaire openssl permettant notamment de gérer les certificats TLS et d'effectuer des connexions chiffrées.

s_client

Le binaire openssl lancé avec la sous-commande s_client permet d'effectuer une connexion TLS à la manière de netcat. Voici un exemple :

openssl s_client -connect irc.crans.org:6697

Ceci permet de se connecter sur le port 6697 du serveur identifié par le nom de domaine irc.crans.org.

Il est également possible d'utiliser des protocoles utilisant STARTTLS (c'est à dire passant d'une connexion en clair à une connexion chiffrée a l'aide d'une commande) :

openssl s_client -starttls smtp -connect redisdead.crans.org:25

genpkey

La sous-commande genpkey permet de générer une clef privée, par exemple (pour générer une clef privée ED25519) :

openssl genpkey -algorithm ED25519 -out key.pem

Voici les valeurs notables possible de l'option -algorithm et les valeurs associées de l'option -pkeyopt permettant d'ajuster les paramètres de la clef privée:

  • ED25519 (pas d'options)

  • ED448 (pas d'options)

  • RSA

    • rsa_keygen_bits: le nombre de bits de la clef privée

    • EC

    • ec_paramgen_curve: le nom de la courbe de la clef privée

x509

La sous-commande x509 permet d'afficher des informations sur un certificat et d'effectuer des opérations de signature.

On peut par exemple l'utiliser pour afficher la clef publique d'un certificat :

openssl x509 -pubkey -in cert.pem -noout

Ou encore signer un certificat avec une autorité :

openssl x509 -req -in cert.csr -CA ca_cert.pem -CAkey ca_key.pem -CAcreateserial -out cert.pem -days 3650

Le certificat cert.pem est délivrée par l'autorité ca_cert.pem pour 10 ans (3650 jours).