Certificat électronique

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Page d'aide sur l'homonymie Pour les articles homonymes, voir Certification.

Un certificat électronique (aussi appelé certificat numérique ou certificat de clé publique) peut être vu comme une carte d'identité numérique. Il est utilisé principalement pour identifier une entité physique ou morale, mais aussi pour chiffrer des échanges.

Il est signé par un tiers de confiance qui atteste du lien entre l'identité physique et l'entité numérique (Virtuel).

Le standard le plus utilisé pour la création des certificats numériques est le X.509.

Rappels sur le chiffrement[modifier | modifier le code]

Le principe de fonctionnement des certificats électroniques est basé sur le chiffrement d'informations et sur la confiance. Pour cela, il existe deux méthodes de chiffrement :

Clés symétriques[modifier | modifier le code]

Cette méthode est la plus simple à comprendre : si Anne (A) veut envoyer un message chiffré à Bob (B) elle doit lui communiquer un mot de passe (Clé). Comme l'algorithme de chiffrement est symétrique, on a la relation suivante :

TexteChiffré = Chiffrement (clé, texte)

Cles symetriques.png

Ainsi, Anne peut aussi déchiffrer un message en provenance de Bob avec la même clé. Mais il faut au préalable trouver un moyen sûr de transmettre la clé à l'abri des regards. La situation peut cependant devenir complexe, si Anne doit envoyer un message chiffré à Bob et à Charlie mais qu'elle ne souhaite pas donner la même clé à Charlie. Plus le nombre de personnes est grand, plus il est difficile de gérer les clés symétriques. D'autant qu'il faut au préalable trouver un moyen sûr de transmettre la clé à l'abri des regards.

Clés asymétriques[modifier | modifier le code]

La propriété des algorithmes asymétriques est qu'un message chiffré par une clé publique n'est lisible que par le propriétaire de la clé privée correspondante. À l'inverse, un message chiffré par la clé privée sera lisible par tous ceux qui possèdent la clé publique.

Ainsi avec sa clé privée, Anne :

  • signe ses messages[1].
  • lit (déchiffre) les messages qui lui sont adressés.

Assymetrie - signature vs chiffrement.png

La problématique des clés publiques[modifier | modifier le code]

En se référant au précédent paragraphe nous voyons rapidement que, lorsqu'une entité (entreprise, association, individu, service public...) veut sécuriser ses communications (entrantes et sortantes) auprès d'un large public, le chiffrement le plus simple est l'asymétrique à clé publique : l'entité n'a qu'à diffuser sa clé publique à l'ensemble de son audience.

Le problème vient de la transmission de la clé publique. Si celle-ci n'est pas sécurisée, un attaquant peut se positionner entre l'entité et son public en diffusant de fausses clés publiques (par le biais d'un faux site internet par exemple) puis intercepter toutes les communications, lui permettant d'usurper l'identité du diffuseur de clés publique et de créer une attaque de l'homme du milieu.

Dans un cadre fermé et relativement restreint (entreprise, service public…) la diffusion de clés sécurisées est relativement simple et peut prendre de nombreuses formes, mais quand le diffuseur souhaite s'adresser à un public plus large avec lequel il n'a pas eu de contact préalable (grand public, public international) elle nécessite un cadre normalisé.

Les certificats résolvent le problème du canal sécurisé grâce à la signature de tiers de confiance.

Présentation du principe[modifier | modifier le code]

Définition[modifier | modifier le code]

Un certificat électronique est un ensemble de données contenant :

  • au moins une clé publique ;
  • des informations d'identification, par exemple : noms, localisation, E-mails ;
  • au moins une signature ; de fait quand il n'y en a qu'une, l'entité signataire est la seule autorité permettant de prêter confiance (ou non) à l'exactitude des informations du certificat.

Les certificats électroniques et leurs cycles de vie (cf. Certificate Revocation List, Protocole de vérification en ligne de certificat) peuvent-être gérés au sein d'infrastructures à clés publiques.

Certificat utilisateur de contenu

Différents types[modifier | modifier le code]

Les certificats électroniques respectent des standards spécifiant leur contenu de façon rigoureuse. Les deux formats les plus utilisés aujourd'hui sont :

La différence notable entre ces deux formats est qu'un certificat X509 ne peut contenir qu'un seul identifiant, que cet identifiant doit contenir de nombreux champs prédéfinis, et ne peut être signé que par une seule autorité de certification. Un certificat OpenPGP peut contenir plusieurs identifiants, lesquels autorisent une certaine souplesse sur leur contenu, et peuvent être signés par une multitude d'autres certificats OpenPGP. Ce qui permet alors de construire des toiles de confiance.

Utilité[modifier | modifier le code]

Les certificats électroniques sont utilisés dans différentes applications informatiques dans le cadre de la sécurité des systèmes d'information pour garantir :

Exemple d'utilisation[modifier | modifier le code]

Les autorités de certification[modifier | modifier le code]

Article détaillé : autorité de certification.

Les autorités de certification sont des organismes enregistrés et certifiés auprès d'autorités publiques ou de gouvernance de l'internet qui établissent leur viabilité comme intermédiaire fiable. Ces organismes diffusent leurs propres clés publiques. Étant certifiées fiables ces autorités sont en contact direct avec les principaux producteurs de système d'exploitation et de navigateurs internet (tels que Mozilla Firefox, Internet Explorer, Google Chrome...) qui incluent nativement les listes de clés des autorités de certification[3]. C'est cette relation qui est à la base de la chaine de confiance. Ces clés sont appelées clés publiques racines ou clé root, elles sont utilisées pour identifier les clés publiques d'autres organismes.

Serveur de clés[modifier | modifier le code]

Certificat électronique.svg

Les certificats peuvent être stockés par des serveurs de clés, qui peuvent aussi faire office d'autorité d'enregistrement et de certification (repère A).

Ils recensent et contrôlent les certificats. Ils possèdent souvent une liste (repère B) des certificats révoqués.

L'interopérabilité[modifier | modifier le code]

Dans certains cas, le certificat peut être associé à l'élément « identifiant » des registres de métadonnées (10e élément dans le Dublin Core) pour l'interopérabilité [4].

Certificats et navigation Internet[modifier | modifier le code]

Les certificats sont très largement utilisés sur les sites de e-commerce, webmails ou autres sites sensibles (banques, impôts, etc.) Plusieurs niveaux de chiffrement existent et plusieurs fonctionnalités associées rendent la compréhension des certificats complexe.

Certificats X.509 standards[modifier | modifier le code]

Ce sont les certificats classiques, qui existent depuis plusieurs années. Le chiffrement varie entre 40 bits et 256 bits. Cela est dû en partie à la capacité des navigateurs et à la législation en vigueur. Généralement, les sociétés éditrices de certificats proposent 40 bits ou 128 bits garantis.

Certificats X.509 étendus[modifier | modifier le code]

Ce sont les certificats qui sont pris en charge dans les navigateurs récents et qui permettent l'affichage d'un fond vert (indiquant ainsi un site de confiance garantie). L'abréviation EV signifie Extended Validation (en).

Certificats X.509 omnidomaines[modifier | modifier le code]

Un certificat omnidomaine ou "wildcard" permet de rendre générique une partie du nom de domaine certifié :

*.societe.fr → www.societe.fr, toto.societe.fr, titi.societe.fr (mais ni "societe.fr", ni "www.toto.societe.fr". Cf RFC 2818[5])

Certificats X.509 multisites[modifier | modifier le code]

Ces certificats contiennent une liste de noms. Cette solution se base sur le champ subjectAltName.

Dans le cas des serveurs web, ces certificats sont utiles pour fournir plusieurs sites HTTPS sur une seule adresse IP. En effet, en HTTPS, l'échange du certificat se fait avant que le navigateur client n'ait transmis le nom de domaine qui l'intéresse. Or, si le certificat fourni par le serveur ne contenait pas le nom requis par le client, celui-ci déclencherait une alerte de sécurité.

Cf Server Name Indication pour une autre possibilité technique.

Certificats OpenPGP[modifier | modifier le code]

Alors que les premiers sites web "sécurisés" ne pouvaient utiliser que des certificats X.509, l'exploitation de la RFC 6091[6] permet désormais d'utiliser des certificats OpenPGP afin de faire du HTTPS.

Certificats et courriels[modifier | modifier le code]

L'utilisation des certificats pour chiffrer, ou signer des courriels se fait en utilisant le standard S/MIME qui permet l'encapsulation des données cryptographiques dans le format MIME des courriels.

Lorsqu'un utilisateur est certifié, une icône permet généralement de le savoir :

Certificat Mail.jpg

Leur utilisation est controversée, car la signature est ajoutée comme élément supplémentaire au contenu du courriel. Par conséquent, l'utilisation de certificats sur des listes de diffusions peut résulter en l'invalidation de la signature, du fait des modifications effectuées par le moteur traitant la liste.

De plus, de nombreuses messageries en ligne (ou « webmails ») et clients de messagerie ne gèrent pas le format S/MIME, ce qui perturbe parfois les utilisateurs voyant une pièce jointe « smime.p7m » apparaître dans leurs messages.

Dans le cadre des messageries en ligne, une problématique supplémentaire est en cause, celle de la confiance dans l'opérateur. En effet, utiliser son certificat sur un webmail implique obligatoirement que le fournisseur de ce service partage les éléments secrets du certificat (clé privée et mot de passe), sans quoi il ne peut réaliser la signature, ou le chiffrement. Et cela implique qu'il doive aussi fournir un moteur de cryptographie.


Fonctionnement type pour un certificat X.509[modifier | modifier le code]

Article détaillé : X.509.

Création d'un certificat[modifier | modifier le code]

Lorsqu'un diffuseur d'information veut diffuser une clé publique, il contacte une autorité de certification. Celle-ci va recevoir la clé publique et l'identité du diffuseur. Après avoir vérifié l'identité du demandeur par des moyens conventionnels, l'autorité de certification place l'identité et la clé publique fournie dans un conteneur qu'elle signe en utilisant sa clé privée. Le fichier résultant est le certificat. Il est rendu au diffuseur.

Utilisation du certificat[modifier | modifier le code]

Le diffuseur utilise le certificat pour ses communications (par exemple sur son site internet): un utilisateur reçoit le certificat, il le vérifie avec la clé racine publique de l'organisme de certification incluse dans son navigateur. Le déchiffrement authentifie le contenu du certificat et prouve que la clé publique et l’identité contenus dans le certificat sont certifiés liés par l'autorité de certification. L'utilisateur sait donc qu'il pourra récupérer les informations envoyées en utilisant la clé publique et qu'elles ne seront pas interceptées par un tiers.

Chaîne de confiance[modifier | modifier le code]

En pratique, la certification peut s'effectuer en cascade : un certificat peut permettre d'authentifier d'autres certificats jusqu'au certificat qui sera utilisé pour la communication.

Vulnérabilités[modifier | modifier le code]

Le système de certificats ne présente pas de vulnérabilité technique théorique sous réserve que toutes ses étapes soient correctement implémentées.

Le principal risque peut provenir de la compromission des gestionnaires du système (autorités de certification et gestionnaire de clés).

  • Le contrôle des demandeurs de certification peut être insuffisant ou compromis, permettant à des attaquants de faire certifier des clés publiques frauduleuses.
  • Des clés privées peuvent être volées chez le diffuseur final ou chez les autorités de certification.

Les attaques des diffuseurs ou autorités de certification peuvent être électroniques ou conventionnelles (intrusion physique, corruption...).

Des experts de la sécurité informatique ont mis en garde contre l'insuffisance de la sécurité et des contrôles de nombreuses autorités de certifications[7]. Le virus Stuxnet utilisé contre le programme nucléaire iranien exploitait plusieurs certificats volés [8]


Références[modifier | modifier le code]

  1. http://www.securite-informatique.gouv.fr/autoformations/signature_elec/co/mod01_chap01_scha01_cu05.html
  2. (en) Request for comments no 4880.
  3. A titre d'exemple, la liste des certificats reconnu par un navigateur Firefox consultable en suivant l'arborescence suivante Outils>Option>Avancé>Chiffrement>Afficher les certificats, pour Windows (et par extension Explorer) elle est consultable en lançant l'instruction "certmgr.msc" dans l'invite de commande
  4. Voir Dictionnaire de métadonnées pour le référentiel des publications CNRS.
  5. (en) Request for comments no 2818.
  6. (en) Request for comments no 6091.
  7. Carl Ellison et Bruce Schneier, Ten Risks of PKI
  8. Stuxnet and fake certificates dominate the Q3 malware landscape, infosecurity-magazine.com, 22 décembre 2010, consulté le 9 août 2013

Voir aussi[modifier | modifier le code]

Articles connexes[modifier | modifier le code]

Liens externes[modifier | modifier le code]