HTTPS et TLS 1.3
Sécuriser les communications sur Internet
Notions théoriques
Pourquoi HTTPS est-il essentiel ?
Lorsqu’un utilisateur navigue sur un site Web, les données échangées entre son navigateur et le serveur peuvent être interceptées. En utilisant un protocole sécurisé comme HTTPS, ces échanges sont chiffrés, garantissant :
- La confidentialité : Empêcher un attaquant d’écouter les communications.
- L’intégrité : Assurer que les données ne sont pas modifiées en transit.
- L’authenticité : Vérifier que le site visité est bien celui qu’il prétend être.
Différence entre HTTP et HTTPS
- HTTP (HyperText Transfer Protocol) : Protocole non sécurisé, les données circulent en clair.
- HTTPS (HTTP Secure) : Version sécurisée d’HTTP qui utilise TLS pour chiffrer les communications.
Le rôle de TLS 1.3
TLS (Transport Layer Security) est le protocole de chiffrement utilisé par HTTPS. La version TLS 1.3 apporte plusieurs améliorations :
- Un chiffrement plus rapide et plus sécurisé en supprimant les anciens algorithmes vulnérables.
- Un handshake plus court : Moins d’échanges entre le client et le serveur, ce qui accélère la connexion.
- Une meilleure confidentialité : Les informations sensibles (comme l’identité du serveur) sont mieux protégées.
Comment fonctionne une connexion HTTPS avec TLS 1.3 ?
- Le client (navigateur) envoie une requête au serveur pour établir une connexion sécurisée.
- Le serveur répond avec son certificat SSL/TLS, qui contient sa clé publique.
- Le client vérifie le certificat pour s’assurer de l’identité du serveur.
- Un échange de clés sécurisé a lieu pour établir un chiffrement de session.
- Les données sont ensuite échangées de manière chiffrée entre le client et le serveur.
Les certificats SSL/TLS
Un site HTTPS possède un certificat SSL/TLS délivré par une autorité de certification (CA). Ce certificat garantit que le site est authentique.
Il existe plusieurs types de certificats :
- DV (Domain Validation) : Vérifie uniquement que le propriétaire possède le domaine.
- OV (Organization Validation) : Vérifie l’identité de l’organisation.
- EV (Extended Validation) : Niveau de validation le plus strict, affichant un indicateur de sécurité renforcé dans le navigateur.
Exemple pratique
Il est possible de configurer un serveur Web pour utiliser HTTPS avec TLS 1.3 en générant un certificat SSL avec Let's Encrypt et en configurant Apache ou Nginx.
1. Installer Certbot pour obtenir un certificat SSL
Certbot est un outil permettant d’obtenir un certificat SSL gratuitement avec Let's Encrypt.
sudo apt update
sudo apt install certbot python3-certbot-apache
2. Générer un certificat SSL
sudo certbot --apache -d monsite.com -d www.monsite.com
Certbot va :
- Vérifier que le domaine appartient bien à l’utilisateur.
- Générer un certificat SSL valide.
- Configurer automatiquement Apache pour utiliser HTTPS.
3. Vérifier que TLS 1.3 est activé
Dans la configuration d’Apache (/etc/apache2/mods-available/ssl.conf), s’assurer que TLS 1.3 est bien activé :
SSLProtocol -all +TLSv1.3
4. Redémarrer Apache
sudo systemctl restart apache2
Le site est maintenant accessible en HTTPS avec TLS 1.3.