Dans la continuité du précèdent article sur les nouveautés autour de SSL/TLS, j’aborde cette fois-ci la fonctionnalité d’estampillage OCSP nouvellement prise en charge dans la version TMOS 11.6.

Petit rappel sur OCSP 

OCSP (Online Certificate Status Protocol) est un protocole qui permet de vérifier en ligne (auprès d'une Autorité de Validation) la validité d’un certificat numérique et ce, sans recourir aux listes de révocation de certificats (CRL).

Pour un navigateur web qui se connecte à un serveur web en SSL/TLS, cette vérification s’effectue durant la phase de handshake SSL en établissant une connexion auprès de l’Autorité de Validation (répondeur OCSP) qui a émis le certificat serveur.

OCSP : des plus, des moins

Comparé au mécanisme de vérification basé sur des CRL, l’OCSP apporte plus de sécurité (les statuts de révocations sont mis à jour plus fréquemment) et fait que le client consomme moins de bande passante et de ressources pour télécharger et parser des fichiers CRLs qui peuvent avoir une taille conséquente.

En revanche, du fait de cette centralisation sur le répondeur OSCP, ce protocole ralentit les nouvelles connexions. En effet, lorsque le navigateur web s’adresse à un serveur web dont le certificat n’est pas connu, le navigateur contacte le ou les serveurs OCSP afin de vérifier la validité du certificat serveur ainsi que le certificat de l’Autorité de Certification émettrice. Cela ajoute de la latence dans le processus du handshake SSL.

Cela passe par une ou plusieus requêtes en résolution de nom ainsi que l’établissement de connexions TCP au répondeurs OCSP des Autorité de Certification présentes dans la chaine de certificat.

 

Le fait que l’Autorité de Validation ait connaissance des sites HTTPS auxquels accède le navigateur est un autre inconvénient d’OCSP car pouvant porter atteinte au respect de la vie privée.

 

L’estampillage OCSP améliore OCSP

L’estampillage OCSP (ou agrafage OCSP) est une extension à TLS 1.2 et gomme les inconvénients cités plus haut en introduisant un modèle dans lequel c’est le serveur Web – et non plus le navigateur- qui récupère et envoie la réponse OCSP.

Ainsi, lors du SSL handshake, le serveur web -en plus d’envoyer son certificat serveur- attache aussi une réponse OCSP signée et horodatée par l’Autorité de Validation.

Le bénéfice immédiat de l’estampillage OCSP est le gain en temps de latence et la disponibilité des réponses OCSP puisque le BIG-IP proxifie et cache les réponses OCSP.

Grâce à ce mécanisme, l’autorité de validation reçoit désormais les requêtes OCSP directement du serveur Web pour qui elle a émis le certificat et non plus des navigateurs, respectant ainsi la vie privée des utilisateurs.

Cinématique de fonctionnement de l’estampillage OCSP avec BIG-IP

  1. BIG-IP requête le répondeur OCSP à intervalles réguliers pour avoir un statut de révocation pour le certificat TLS utilisé par le Virtual Server
  2. Le répondeur OCSP signe et horodate une réponse OCSP et la renvoie au BIG-IP
  3. Le client (navigateur web) effectue une connexion au Virtual Server et initie un SSL handshake en utilisant l’extension Certificate Status Request dans le message ClientHello
  4. Pour le Virtual Server en question, BIG-IP envoie au client le certificat serveur ainsi que la réponse OCSP horodatée et signée par le répondeur OCSP
  5. Le client vérifie la signature de la réponse OCSP et termine le handshake SSL
  6. La connexion HTTPS est établie entre BIG-IP et le navigateur web
  7. BIG-IP maintient dans un cache le statut de révocation du certificat TLS pour pouvoir servir d'autres clients

 

Est ce que l’estampillage OCSP est pris en charge par tous ?

Ce mécanisme en est à ses début et commence à être de plus en plus supporté par les serveurs web (Apache 2.3.3, Nginx, IIS) et les navigateurs web (FireFox, Opéra, Chrome, IE sur Windows Vista)

F5 BIG-IP est le seul ADC du marché (à date) à prendre en charge l’estampillage OCSP.

 

Comment cela se configure dans BIG-IP ?

La configuration se fait assez simplement en définissant d’abord un profil OCSP stapling puis en assignant ce profil au profil Client SSL.

Vous trouverez plus de détail ici.