Un protocole cryptographique définit un standard d'échanges sécurisés entre deux parties. Le protocole TLS est l'un de ces protocoles, mais il en existe d'autres tout aussi connus, comme SSH, IPsec, PGP, Kerberos ou S/MIME.

Les algorithmes symétriques reposent sur une clé unique, partagée entre l'expéditeur et le destinataire : c'est le principe de la scytale, que l'on retrouve aujourd'hui dans des standards comme AES (Advanced Encryption Standard). Ces algorithmes sont relativement simples à utiliser : l'expéditeur et le destinataire partagent le même secret (i.e. la même clé). Ce type de chiffrement est très efficace et peut être incassable si la clé est suffisamment robuste. Toutefois un problème demeure : comment transmettre la clé secrète au destinataire en toute sécurité ? C'est là qu'interviennent les algorithmes asymétriques.
Les algorithmes asymétriques utilisent une paire de clés : l'une publique (pour chiffrer) et l'autre privée (pour déchiffrer). Ce mécanisme, introduit dans les années 1970 avec RSA (Rivest Shamir Adleman), permet d'échanger des informations sécurisées sans avoir à partager préalablement une clé secrète.
Ces deux approches sont complémentaires et constituent le socle des protocoles modernes comme TLS.
Principe :
- l'expéditeur chiffre son message avec la clé publique du destinataire. Seul ce dernier, grâce à sa clé privée, peut le déchiffrer.
- l'expéditeur peut signer son message avec sa clé privée. Le destinataire ou n'importe quel tiers peut vérifier cette signature avec la clé publique correspondante. Cela garantit que le message provient bien de l'expéditeur (authenticité).
Les algorithmes asymétriques présentent un inconvénient : ils sont lents. C'est pourquoi on les utilise surtout pour échanger ou signer des clés puis on confie le chiffrement des données elles-mêmes à des algorithmes symétriques.
Le protocole TLS (Transport Layer Security) est le successeur du protocole SSL (Secure Sockets Layer), ce dernier ayant été banni en 2014 suite à une faille de sécurité. TLS combine deux approches :
- asymétrique : pour l'échange initial des clés et l'authentification du serveur (et parfois du client) ;
- symétrique : pour le chiffrement des données échangées.
TLS repose également sur un type particulier de sécurité : les certificats numériques qui s'appuient sur l'infrastructure à clés publiques. Ces certificats permettent de vérifier l'authenticité du serveur, sans quoi n'importe qui pourrait se faire passer pour lui (attaque de type man in the middle). Les certificats sont délivrés par une autorité de certification. Le certificat lui-même est un document électronique qui contient la clé publique du serveur ainsi que des informations d'identité (nom de domaine, organisation, ...).
Pour éviter que le client n'ait à interroger l'autorité de certification à chaque requête HTTPS, des certificats racine sont déjà présents dans le navigateur, permettant ainsi une vérification locale (dans Chrome : Paramètres > Confidentialité et sécurité > Sécurité > Gérer les certificats).