
Définition du SSL
Secure Sockets Layer (SSL) est un protocole réseau qui gère l'authentification des serveurs et des clients, ainsi que la communication chiffrée entre eux.
SSL combine le chiffrement par clé publique et par clé symétrique pour sécuriser une connexion entre deux machines, généralement un serveur Web ou un serveur de messagerie et une machine cliente, communiquant via Internet ou un réseau interne.
Utilisant le modèle de référence OSI, SSL s'exécute au-dessus du protocole TCP/IP, qui est chargé du transport et de l'acheminement des données sur un réseau, et au-dessous des protocoles plus généraux tels que HTTP et IMAP, qui chiffrent les données des connexions réseau dans la couche application de la suite IP (Internet Protocol). Le « sockets » du nom du protocole fait référence à la méthode de transmission bidirectionnelle de données par sockets entre un client et un programme serveur sur un réseau, ou entre couches de programme dans le même ordinateur.
Fonctionnement
Le protocole SSL comprend deux sous-protocoles : le protocole d'enregistrement et le protocole d'établissement de liaison (« handshake »). Ces protocoles permettent à un client d'authentifier un serveur et d'établir une connexion SSL chiffrée. Dans ce qu'on appelle la « procédure initiale d'établissement de liaison », un serveur prenant en charge SSL présente au client son certificat numérique, qui permet d'authentifier son identité. Les certificats de serveur respectent le format de certificat X.509 qui est défini par les normes du système cryptographique à clé publique (PKCS, Public-Key Cryptography Standards). Le processus d'authentification utilise le chiffrement par clé publique pour valider le certificat numérique et confirmer qu'un serveur est bien celui qu'il prétend être.
Une fois le serveur authentifié, le client et le serveur établissent des paramètres de chiffrement et une clé partagée servant à chiffrer les informations qu'ils vont échanger au cours de la session. Cela permet de garantir la confidentialité et l'intégrité des données. Tout ce processus reste invisible de l'utilisateur. Par exemple, si une page Web exige une connexion SSL, l'URL changera de HTTP en HTTPS, et une icône de cadenas apparaîtra dans le navigateur une fois le serveur authentifié.
L'établissement de liaison permet également au client de s'authentifier auprès du serveur. Dans ce cas, une fois l'authentification du serveur effectuée, le client doit présenter au serveur son propre certificat, qui authentifie son identité, avant que la session SSL chiffrée puisse être établie.