Les certificats

L'utilité d'un certificat

Pour être sûr que la clé publique provient bien de celui que l'on croit, on utilise une autorité tierce (appelé le tiers de confiance). Cette autorité est celle qui va générer une clé publique certifiée par exemple pour un serveur Web, puis c'est ensuite elle qui garantira à tout demandeur (par exemple le client web) que la clé publique envoyée appartient bien à celui qui le prétend (au serveur Web).

La garantie qu'une clé publique provient bien de l'émetteur qu'il prétend être, s'effectue donc via un certificat d'authenticité émanant d'une autorité de certification (AC), le tiers de confiance.

Qu'est-ce qu'un certificat x509 ?

x509 définit la forme d'un certificat (simple fichier informatique) délivré par une autorité de certification qui contient :

  • la clé publique de son détenteur et des informations sur son identité ;

  • le nom distinctif de l'autorité de certification ;

  • la signature électronique (chiffrement de l'empreinte par clé privée) de l'autorité de certification.

Pour obtenir plus de précisions sur le certificat x509, vous pouvez consulter la page suivante http://interpki.sourceforge.net/index.php?/x509.html

Comment obtenir un certificat ?

On peut acheter un certificat SSL 128 bits à un prix raisonnable aux alentours de 100 EUR HT /an. (Voir par exemple à cette adresse http://www.netenligne.com/ecommerce/ssl1.asp et http://www.netenligne.com/ecommerce/ssl2.asp pour le tableau comparatif des prix).

Voilà ce que l'on peut lire en ligne : "Pour obtenir un certificat, il faut fournir des données d'identification. Tout propriétaire d'un nom de domaine et du site correspondant peut obtenir un certificat SSL, qu'il s'agisse d'une personne physique, d'une entreprise, d'une association ou d'une administration.

S'il n'y a pas de problème concernant l'identification du demandeur et son droit à obtenir un certificat SSL pour son site, le délai d'obtention est de 1 à 2 jours ouvrés"

Pour un usage interne, on peut se "fabriquer", avec quelques outils logiciels nos propres certificats. C'est d'ailleurs ce que l'on va faire dans le prochain TP.

Comment vérifier un certificat ?

C'est exactement la même méthode que celle utilisée lors de la vérification de la signature électronique d'un document.

La figure suivante illustre un exemple de certificat émis pour un serveur WEB.

Figure 23.5. Certificat

Certificat

Bien sûr, vous devez "détenir" le certificat contenant la clé publique de l'autorité de certification.

Lorsque vous devez vérifier le certificat d'un serveur WEB, c'est votre navigateur qui s'en charge ; Lors de l'installation d'un navigateur récent, un certain nombre de certificats d'AC sont chargés automatiquement. Si le certificat du site que vous consultez a été validé par une de ces AC, vous n'aurez pas de fenêtres d'alertes... (Voir le TP pour plus de précisions).

Des protocoles, utilisant ces techniques, ont été développés pour sécuriser des services (WEB, telnet, POP, SMTP, etc.).

En particulier, le protocole SSL (Secure Socket Layer), initialement proposé par la société Netscape est aujourd'hui adopté par l'ensemble de la communauté informatique pour l'authentification et le chiffrement des données entre clients et serveurs.

Il existe actuellement un nouveau standard basé sur SSL, TLS (Transaction Layer Security) normalisé par l'IETF (Internet Engineering Task Force).