HTTPS

Présentation
HTTPS (HyperText Transfer Protocol Secure) est la version sécurisée du protocole HTTP. Cela signifie que les échanges entre le client et le seveur sont chiffrés et donc non compréhensibles par une personne tierce. Il a été inventé par Netscape en 1994. Il était initialement réservé aux transactions financières mais il se généralise depuis les années 2010 à toutes les communications sur le Web. Depuis 2017 Chrome et Firefox ont commencé à signaler comme « à risque » les sites n'utilisant pas HTTPS. Cette démarche contribua à accélérer le déploiement du protocole sécurisé sur tout les sites.
Fonctionnement
Nous allons essayer d'établir ensemble le fonctionnement générale du protocole HTTPS. Pour cela, nous devons lister les attentes et ce dont on dispose :
- la communication doit être rapide, sécurisée et le serveur doit être authentifié ;
- le client et le serveur n'ont pas pu échanger une clé secrète auparavant ;
- le serveur dispose d'un certificat justifiant de son identité ;
- ce certificat est lié à un couple de clés privée et publique permettant un chiffrement asymétrique ;
- le client et le serveur sont capables d'utiliser un chiffrement symétrique.
1) À partir de la liste ci-dessus et de l'aide du professeur, établissez le fonctionnement général du protocole HTTPS.
Le client et le serveur vont devoir s'échanger une clé secrète symétrique en utilisant un chiffrement asymétrique :
- le client envoie une requête au serveur avec tous les protocoles de chiffrement qu'il connaît;
- le serveur répond en lui envoyant son certificat attestant de son identité et sa clé publique (avec les protocoles qu'il a choisi) ;
- le client génère une clé secrète de chiffrement symétrique qu'il chiffre avec la clé publique du serveur ;
- le client envoie cette clé chiffrée au serveur ;
- le serveur la reçoit et la déchiffre avec sa clé privée ;
- le client et le serveur peuvent maintenant échanger de manière sécurisée et rapide en utilisant un chiffrement symétrique.
Conclusion
HTTPS permet d'utiliser les avantages des protocoles symétriques et asymétriques pour garantir une comunication sécurisée entre un client et un serveur.