Introduction à la notion de certificat électronique

securite3Les  algorithmes  de  chiffrement  asymétrique  sont  basés  sur  le  partage  entre  les  différents  utilisateurs  d’ une
clé  publique.  Généralement  le  partage  de  cette  clé  se  fait  au  travers  d’ un annuaire  électronique
(généralement au format LDAP) ou bien d’ un site web.

Toutefois  ce  mode  de  partage  a  une  grande  lacune  : rien  ne  garantit  que  la  clé  est  bien  celle  de
l’utilisateur  à  qui  elle  est  associée.  En  effet  un  pirate  peut  corrompre  la  clé  publique  présente  dans
l’annuaire  en  la  remplaçant  par  sa  clé  publique.  Ainsi,  le  pirate  sera  en  mesure  de  déchiffrer  tous  les
messages ayant été chiffrés avec la clé présente dans l’ annuaire.
Un  certificat  permet  d’ associer  une  clé  publique  à  une  entité  (une  personne,  une  machine,  …)  afin
d’ en assurer la validité. Le certificat est en quelque sorte la carte d’ identité de la clé publique, délivré par un
organisme appelé autorité de certification (souvent notée CA pour Certification Authority).
L’ autorité  de  certification  est  chargée  de  délivrer  les  certificats,  de  leur  assigner  une  date  de  validité
(équivalent à  la date  limite de péremption des produits alimentaires), ainsi que de  révoquer éventuellement
des certificats avant cette date en cas de compromission de la clé (ou du propriétaire).

Quelle est la structure d’un certificat ?

Les certificats sont des petits fichiers divisés en deux parties :

  • La partie contenant les informations
  • La partie contenant la signature de l’ autorité de certification

La  structure  des  certificats  est  normalisée  par  le  standard X.509  de  l’ UIT  (plus  exactement  X.509v3),  qui
définit les informations contenues dans le certificat :

  • securite6la version de X.509 à laquelle le certificat correspond ;
  • le numéro de série du certificat ;
  • l’ algorithme de chiffrement utilisé pour signer le certificat ;
  • le nom (DN, pour Distinguished Name) de l’ autorité de certification émettrice ;
  • la date de début de validité du certificat ;
  • la date de fin de validité du certificat ;
  • l’ objet de l’ utilisation de la clé publique ;
  • la clé publique du propriétaire du certificat ;
  • la signature de l’ émetteur du certificat (thumbprint).

L’ ensemble  de  ces  informations  (informations  +  clé  publique  du  demandeur)  est  signé  par  l’ autorité  de
certification,  cela  signifie  qu’ une fonction  de  hachage  crée  une  empreinte  de  ces  informations,  puis  ce
condensé  est  chiffré  à  l’ aide  de  la  clé  privée  de  l’ autorité  de  certification ;  la  clé  publique  ayant  été
préalablement  largement  diffusée  afin  de  permettre  aux  utilisateurs  de  vérifier  la  signature  avec  la  clé
publique de l’ autorité de certification.
Lorsqu’ un utilisateur désire communiquer avec une autre personne, il lui suffit de se procurer le certificat du
destinataire. Ce certificat contient le nom du destinataire, ainsi que sa clé publique, et est signé par l’ autorité
de certification. Il est donc possible de vérifier la validité du message en appliquant d’ une part la fonction de
hachage  aux  informations  contenues  dans  le  certificat,  en  déchiffrant  d’ autre  part  la  signature  de  l’ autorité
de certification avec la clé publique de cette dernière et en comparant ces deux résultats.

Les différents types de signatures de certificats

On distingue différents types de certificats selon le niveau de signature :

  • Les certificats auto-signés sont des certificats à usage interne : signés par un serveur local, ce type de certificat permet de garantir la confidentialité des échanges au sein d’ une organisation, par exemple pour le besoin d’ un intranet. Il est ainsi possible d’ effectuer une authentification des utilisateurs grâce à des certificats auto-signés.
  • Les certificats signés par un organisme de certification sont nécessaires lorsqu’il s’agit d’assurer la
    sécurité des échanges avec des utilisateurs anonymes, par exemple dans le cas d’ un site web sécurisé
    accessible au grand public. Le certificateur tiers permet alors d’assurer à l’utilisateur que le certificat
    appartient bien à l’organisation à laquelle il est déclaré appartenir.

Types d’usages

securite2Les certificats servent principalement dans trois types de contextes :

  • Le certificat client, stocké sur le poste de travail de l’ utilisateur ou embarqué dans un conteneur tel
    qu’ une carte à puce, permet d’ identifier un utilisateur et de lui associer des droits. Dans la plupart des
    scénarios il est transmis au serveur lors d’ une connexion, qui affecte des droits en fonction de
    l’ accréditation de l’ utilisateur. Il s’ agit d’ une véritable carte d’ identité numérique utilisant une paire de clé
    asymétrique d’ une longueur de 512 à 1024 bits.
  • Le certificat serveur installé sur un serveur web permet d’ assurer le lien entre le service et le
    propriétaire du service. Dans le cas d’ un site web, il permet de garantir que l’ URL et en particulier le
    domaine de la page web appartiennent bien à telle ou telle entreprise. Par ailleurs il permet de sécuriser
    les transactions avec les utilisateurs grâce au protocole SSL.
  • Enfin le certificat VPN est un type de certificat installé dans les équipement réseaux, permettant de chiffrer
    les flux de communication de bout en bout entre deux points (par exemple deux sites d’ une entreprise).
    Dans ce type de scénario, les utilisateurs possèdent un certificat client, les serveurs mettent en oeuvre
    un certificat serveur et les équipements de communication utilisent un certificat particulier
    (généralement un certificat IPSec).

Un certificat SSL est un des éléments permettant au protocole SSL de fonctionner.

C’est quoi déjà le SSL ?

Le Secure Socket Layer (SSL) permet de sécuriser l’échange de données entre une machine distante (le serveur) et un ordinateur, une tablette ou tout autre dispositif dit « client ». On peut notamment l’utiliser pour sécuriser l’accès à un site web via le protocole https, ou chiffrer les données transmises par FTP (SSH).

Que peut-on sécuriser avec SSL ?

securite4Une connexion sécurisée par SSL offre deux avantages :

  1. Elle garantit que le serveur est bien celui qu’il prétend être (authentification du propriétaire).
  2. Elle permet de chiffrer les données pendant leur transit, ce qui permet de se prémunir contre une interception des données « en clair » en cours de route.

Le premier point évite par exemple le “phishing”, une arnaque consistant à sous-tirer des informations confidentielles aux utilisateurs en se faisant passer pour un émetteur de confiance (par exemple votre banque). Le second permet de garder des données personnelles et/ou bancaires confidentielles lors d’un achat en ligne sur un site de e-commerce.

Comment savoir si une connexion est sécurisée ?

Dans le domaine de la navigation web

Tous les navigateurs web modernes comme Firefox, Internet Explorer, Safari ou encore Google Chrome prennent en charge nativement le SSL. Ils affichent dans la barre d’url les informations relatives à cette connexion sécurisée : Validation de la connexion SSL avec Firefox.

Les sites web sécurisés par un certificat SSL sont accessibles au travers d’une url préfixée par httpS et non http.

Attention cependant : le fait qu’un site web propose une connexion SSL valide ne doit pas faire oublier les règles élémentaires de prudence. Un marchand malhonnête peut tout à fait avoir un site sécurisé par SSL, et revendre vos coordonnées bancaires à des tiers ou ne pas fournir le produit attendu.


Fonctionnement et rôle d’un certificat SSL

Sans rentrer dans les détails techniques, le fonctionnement d’une authentification à l’aide d’un certificat SSL est le suivant :

  1. securite5Le serveur fournit au client (par exemple le navigateur) le certificat du site, qui contient les informations relatives à l’identification du site, ainsi qu’un code appelé clef publique, lisible en clair.
  2. Le navigateur s’assure auprès de l’émetteur du certificat SSL de la validité du certificat (on parle de tiers de confiance, l’émetteur étant un organisme reconnu comme tel par le navigateur web utilisé).
  3. Le client émet alors une clef aléatoire (appelée clef de session) qu’il utilisera pour crypter les données, et que seul le serveur pourra décoder avec sa clef privée (non lisible en clair, stockée sur le serveur).

Quand faut-il mettre en place SSL sur son site web ?

D’une manière générale, il est utile de proposer une connexion sécurisée sur :

  • Les pages permettant de se connecter au backoffice de son site web. Certes, des systèmes comme Worpress utilisent d’autres mécanismes d’identification qui permettent d’éviter que les données se baladent « en clair » (par exemple via les clefs SALT), mais deux précautions valent mieux qu’une.
  • Les pages où vos clients remplissent des formulaires comprenant des données personnelles. On peut même considérer que ça devrait être obligatoire, c’est d’ailleurs le sens des recommandations émises par Google pour le SEO (voir ci-dessous).
  • Les pages des systèmes (par exemple un Intranet) permettant d’échanger des documents professionnels ou confidentiels.
  • Les pages de paiement dans les sites e-commerce.

Installer SSL sur son site web

Les hébergeurs web proposent désormais des systèmes simplifiés pour mettre en place un certificat SSL sur son site web. Gandi offre par exemple la possibilité de mettre en place un certificat sur son offre d’entrée de gamme, Simple Hosting.

Les coûts ont également beaucoup baissé. Ils dépendent en grande majorité de la longueur des clefs de cryptage, de la rapidité de la réponse du serveur de certification et des garanties offertes.

Si vous avez un serveur dédié, vous devrez installer le certificat et la clef privée et configurer apache pour le faire fonctionner.

SSL, https et référencement naturel

Google a annoncé à l’été 2014 que désormais, les sites proposant le https seront « très légèrement » favorisés dans les résultats naturels. Il peut alors être tenant de mettre en place un certificat SSL à moindre coût pour améliorer son référencement. Il est néanmoins sain de se poser les questions suivantes avant de se lancer :

  • Ai-je la capacité technique de mettre en place le https sans allumer des warnings pour l’utilisateur (images et scripts non sécurisés déclenchant des alertes de sécurité, mauvaise configuration du certificat…)
  • Ai-je les moyens de m’offrir un certificat répondant aux spécifications de Google ? Le ROI en vaut-il la peine ?
  • Suis-je prêt à ralentir la vitesse de mon site (conséquence d’une mise en place « classique » du SSL sans optimisation ?)
  • Y a-t-il une autre bonne raison que le SEO pour mettre en place https sur mon site ?

Internet serait-il plus sûr avec le SSL ?

Incontestablement, la généralisation de SSL offrirait de nombreux avantages en terme de sécurité : identification des émetteurs, diminution drastique du vol de données… Cependant, cette généralisation rendrait le web beaucoup moins accessible aux amateurs compte tenu des coûts et de la technicité de la mise en place de SSL sur un site.