Vous êtes sur la page 1sur 10

ANNEXE – Certificat Electronique / OpenSSL

1. Sécurité d’un échange sur le Web :

Un site web dont la connexion est sécurisée peut être vérifié à deux niveaux : le protocole
utilisé est https (s pour sécurisé), un cadenas fermé s'affiche dans la barre basse du navigateur.
Les sites sont sécurisés pour éviter que les données qui transitent sur le réseau soit clairement
lisibles, les données sont alors cryptées avec un protocole puissant.

Exemple de sites web sécurisés: un webmail, un site extranet, un site de e-commerce, un site de
services en ligne (banque ...).

2. TLS/SSL :

Transport Layer Security (TLS), et son prédécesseur Secure Sockets Layer (SSL), sont des
protocoles de sécurisation des échanges sur Internet, développés à l'origine par Netscape (SSL
version 2 et SSL version 3). Il a été renommé en Transport Layer Security (TLS) par l'IETF à la
suite du rachat du brevet de Netscape par l'IETF en 2001. Le groupe de travail correspondant à
l'IETF a permis la création des RFC 2246 pour le TLS et RFC 4347 pour son équivalent en mode
datagramme, le DTLS. Depuis son rapatriement par l'IETF, le protocole TLS a vécu deux
révisions subséquentes : TLSv1.1 décrite dans la RFC 4346 et publiée en 2006 et TLSv1.2,
décrite par la RFC 5246 et publiée en 2008.

1
Malgré le peu de différences entre SSL version 3 et TLS version 1 (qui correspond à la
version 3.1 du mécanisme SSL), les deux protocoles ne sont pas interopérables. TLS a tout de
même mis en place un mécanisme de compatibilité ascendante avec SSL. En outre, TLS diffère de
SSL pour la génération des clés symétriques. Cette génération est plus sécurisée dans TLS que
dans SSLv3 dans la mesure où aucune étape de l'algorithme ne repose uniquement sur MD5 pour
lequel sont apparues des faiblesses en cryptanalyse.

Par abus de langage, on parle de SSL pour désigner indifféremment SSL ou TLS. TLS
fonctionne suivant un mode client-serveur. Il fournit les objectifs de sécurité suivants :

 l'authentification du serveur ;
 la confidentialité des données échangées (ou session chiffrée) ;
 l'intégrité des données échangées ;
 de manière optionnelle, l'authentification ou l'authentification forte du client avec
l'utilisation d'un certificat numérique ;
 la spontanéité, c'est-à-dire qu'un client peut se connecter de façon transparente à un
serveur auquel il se connecte pour la première fois ;
 la transparence, qui a contribué certainement à sa popularité : les protocoles de la couche
d'application n'ont pas à être modifiés pour utiliser une connexion sécurisée par TLS. Par
exemple, le protocole HTTP est identique, que l'on se connecte à un schème http ou
https.

Dans la majorité des cas, l'utilisateur authentifie le serveur TLS sur lequel il se connecte.
Cette authentification est réalisée par l'utilisation d'un certificat numérique X.509 délivré par
une autorité de certification (AC). Mais de plus en plus d'applications web utilisent maintenant
l'authentification du poste client en exploitant TLS. Il est alors possible d'offrir une
authentification mutuelle entre le client et le serveur. Le certificat client peut être stocké au
format logiciel sur le poste client ou au format matériel (carte à puce, token USB) pour
augmenter la sécurité du lien TLS. Cette solution permet d'offrir des mécanismes
d'authentification forte.

2
Le cryptage protège les données lors de la transmission. En effet, les serveurs Web et les
navigateurs Web font appel au protocole Secure Sockets Layer (SSL) pour créer un canal crypté
de manière unique et dédié aux communications privées sur les pages Internet publiques. Chaque
certificat SSL consiste en une clé publique et une clé privée. La clé publique est utilisée pour le
cryptage des informations et la clé privée est utilisée pour les décrypter. Lorsqu'un navigateur
Web se connecte à un domaine sécurisé, le niveau de cryptage établi dépend du type de
certificat SSL, du navigateur Web et du système d'exploitation du client, ainsi que des capacités
du serveur hôte. C'est pourquoi les certificats SSL sont associés à différentes plages de
cryptage (par ex. « de 40 à 256 bits »).

3. La signature numérique

La signature permet d’identifier de manière " sûre " l’émetteur d’un message reçu et de
garantir l’intégrité du message. Cela permet donc de reproduire sur Internet l’environnement
de confiance des échanges physiques, puisque lors, il devient impossible de répudier un
document électronique (un bon de commande, une offre de bourse, ...).
L’envoi d’un message signé suit les étapes décrites dans le schéma ci-dessous :

3
1. Une fonction de hachage (MD5 ou SHA-1) va calculer l’empreinte du message, qui est un
condensé du message.
2. L’empreinte du message est ensuite chiffrée ; l’empreinte chiffrée constitue la signature
numérique du message.
3. Alice enverra à Bob : <le message, la signature numérique, sa clé publique>
Une fonction de hachage (MD5 Message Digest v5 ou SHA-1 Secure Hash Algorithm v1) est
une fonction qui calcule le condensé d’un message. Le résultat est unique : si un bit du message
est modifié, le résultat n’est pas le même. Cette fonction est non-inversible. Par exemple, MD5
utilise des opérateurs bits à bits et de décalage de bits.
Ainsi, lorsque Bob recevra le message d’Alice voici les procédures qui vont suivre :

1. Bob déchiffre la signature avec la clé publique d’Alice


2. Bob calcule l’empreinte du message soi-disant d’Alice (avec la même fonction de hachage
que celle employée par Alice)
3. Bob compare les 2 empreintes : si elles sont identiques, cela signifierait que l’auteur du
message est bien Alice.
En réalité, Bob ne peut pas être sûr que le message provient bien d’Alice. Tout ce dont il est
certain, c’est qu’à la clé publique jointe au message correspond bien la clé privée qui a servi à
signer le message. En effet, le nom d’Alice ne figure nulle part. C’est pourquoi, il est nécessaire
d’introduire les certificats numériques. Nous allons voir comment ces derniers vont permettre
d’instaurer un état de confiance ; c’est-à-dire en prouvant l’identité de l’expéditeur.
4
4. Certificat électronique (ou numérique)

Un certificat numérique est une pièce d'identité électronique. Le certificat est indissociable
des fonctions de signature électronique (identification de l'émetteur, intégrité du message,
garantissant ainsi la non-répudiation) et de chiffrement (confidentialité d'un message). Le
certificat numérique peut également servir pour l'authentification lors de besoins de contrôle
d'accès. L'objet de la certification électronique est d'identifier une entité physique ou non-
physique. Le certificat électronique est un lien entre l'entité physique et l'entité numérique
(Virtuel). L'autorité de certification (CA) fait foi de tiers de confiance et atteste du lien entre
l'identité physique et l'entité numérique. Le standard le plus utilisé pour la création des
certificats numériques est le X.509. 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étrique :

Problèmes majeurs :
 Transfert de la clé secrète
 Nombre important de clés à gérer.
Clés asymétrique :

Il existe trois types de certificats :


 Certificat Serveur : certificat hébergé sur un serveur, lié à une adresse Internet.
 Certificat Personnel : certificat hébergé sur un ordinateur ou une carte à puce, lié à une
personne physique (et éventuellement lié aussi à son entreprise, à sa banque, à son ISP)
 Certificat IPSEC : certificat hébergé sur un routeur (et éventuellement sur un ordinateur
isolé) pour permettre le chiffrement de l'ensemble des flux qui transitent entre deux points
(Réseau Privé Virtuel, protocole IPSEC).

5
Le type de certificat à utiliser dépend du besoin :
 Besoin de contrôle d'accès : un serveur nécessitant d'authentifier l'utilisateur qui se
connecte à lui le reconnaîtra grâce à son certificat personnel (exemple : le serveur d'une
banque et ses clients qui veulent consulter leur compte). L'utilisateur a besoin d'un Certificat
Personnel.

 Besoin de signature électronique : les messageries internes aux entreprises, ou partagées


avec des partenaires (Intranet ou Extranet) ont besoin d'un espace de confiance pour
dialoguer efficacement : l'échange d'un bon de commande de façon électronique permet
d'économiser les saisies multiples dans les systèmes d'information de l'entreprise et de son
fournisseur; cet échange doit donc se faire dans des conditions aussi bonnes que l'échange sur
papier : la signature électronique répond à cette exigence, puisque les risques d'usurpation
d'identité et de répudiation disparaissent avec les infrastructures à clés publiques et l'usage
des certificats. Les collaborateurs de l'entreprise (et de ses partenaires) ont chacun besoin
d'un Certificat Personnel.

 Besoin de confidentialité : là encore, la confidentialité est quotidienne dans le monde


physique et les besoins sont les mêmes dans les environnements intranet, extranet ou internet
: le centre de recherche d'une entreprise envoie le process de fabrication d'un nouveau
produit à son usine au Brésil par sa messagerie interne à condition qu'elle puisse chiffrer ces
informations confidentielles ; de même, un achat de livre sur Internet nécessite de chiffrer
les informations relatives à votre carte bancaire qui transitent sur Internet. Enfin, une
entreprise multi-sites souhaitant établir un Réseau Privé Virtuel (Virtual Private Network ou
VPN) équipera ses routeurs d'extrémité (et ses postes isolés) de certificats IPSEC
permettant ainsi le chiffrement de toutes les informations transitant entre ses sites. Les
collaborateurs de l'entreprise (et de ses partenaires) ont chacun besoin d'un Certificat
Personnel, le serveur web a besoin d'un Certificat Serveur, le routeur a besoin d'un
Certificat IPSEC.

5. Autorité de Certification (Certification Autority, ou CA)

Une CA définit et fait appliquer une politique de délivrance, révocation et renouvellement de


certificats numériques. Tous les certificats numériques émis par une CA sont signés avec la clé
privée de cette CA afin d'assurer l'authenticité du certificat (la clé privée de la CA est une
sorte de "tampon électronique" qui valide la pièce d'identité électronique).
La crédibilité d'une carte d'identité électronique dépend donc de la CA qui l'a émise, et des
procédures mises en œuvre pour établir avec certitude l'identité du demandeur : le "tampon
électronique" doit en effet être celui d'une autorité reconnue, et doit être utilisé et protégé
dans des conditions de sécurité et de contrôle extrêmes, pour empêcher la création de faux
certificats.
Exemples d’ autorités de certification :
 La CA Tunisienne est la ANCE (Agence Nationale de Certification Electronique)
https://www.certification.tn.
 La Poste et Sagem se sont associées pour créer le service CertiPost.
 CertPlus réunit France Télécom, Gemplus, Matra Hautes Technologies et Verisign.
 Thawte devenue récemment filiale de Verisign.

6
6. Obtention d’un certificat
Le processus de certification fait intervenir 3 acteurs : l’autorité de certification CA,
l’autorité d’enregistrement et l’opérateur de certification. Il est représenté par le schéma
suivant :

Pour expliquer l’intervention de ces 3 autorités, on fera un parallèle avec l’obtention d’une carte
de crédit. En premier lieu, le siège social de la banque a défini des critères qui vont permettre
l’attribution d’une carte de crédit. Dans l’infrastructure à clé publique, il s’agit de l’autorité de
certification ; cette autorité définit le profil requis pour obtenir un certificat numérique.
En pratique, le porteur d‘une carte de crédit n’a vu que son agence bancaire, qui s’est chargé de
recueillir sa demande, de vérifier son identité et d’évaluer les critères d’attribution déterminés
par le siège social. Puis elle a donné son attribution. Dans l’infrastructure à clé publique, ce rôle
est dévolu à l’autorité d’enregistrement.
Enfin, l’agence bancaire a demandé à un troisième acteur, le consortium de cartes de crédit, la
fabrication de la carte. Dans l’infrastructure à clé publique, l’autorité d’enregistrement donne
l’identité et la clé publique de l’individu à l’opérateur de certification qui génère un certificat.

6.1. Exemple d’une demande d’un certificat de la CA Selso (http://www.selso.com/):


On peut demander un certificat personnel pour le cryptage et la signature de mails (gratuit).
1. On remplit un formulaire ; Selso demande des informations personnelles dont certaines
vont figurer dans le certificat.
2. On choisit un login, mot de passe pour accéder à notre futur clé privée. La création d’une
paire de clé s’effectue localement. Notre clé publique chiffrée avec la clé publique de
Selso est ensuite transmise à Selso.
3. Selso nous envoie par mail un code PIN.
4. Enfin, on se connecte au site et on récupère notre certificat avec le code PIN.
Toutes les transactions sont sécurisées avec le protocole SSL.
Le certificat personnel est public et doit être diffusée à nos correspondants.

6.2. Composition d’un certificat personnel


On rappelle que la forme standard d’un certificat est définie selon la norme X.509.

7
Le certificat contient des informations relatives :
 au certificat : son format, son numéro de série, la spécification de l’algorithme de
chiffrement utilisé pour la signature et sa date de validité.
 au porteur : son nom, un identifiant unique, sa clé publique et l’algorithme de
chiffrement associé à sa clé publique.
 à l’autorité de certification : le nom de l’autorité, son identifiant unique et la signature
numérique de l’autorité de certification. Cette signature peut être vue comme un cachet
(ou un tampon) apposé par l’autorité de certification qui prouve sa validité. Une fonction
de hachage (MD5 ou SHA-1) est appliquée sur les informations contenue dans le
certificat. Le résultat est alors chiffré avec la clé privée de l’autorité de certification.
On obtient ainsi la signature numérique de l’autorité de certification qui est concaténé
aux informations. Le tout constitue le certificat.

6.3. Utilisation d’un certificat numérique personnel


Avec un certificat personnel, on peut envoyer des mails signés. Si l’on désire, en plus,
chiffrer ses mails, il faut posséder le certificat du destinataire. La figure suivante décrit le
mécanisme d’échange de mails signés et aussi de mails signés et chiffrés. Dans cette figure,
Alice envoie à Bob un mail signé et chiffré. Le mécanisme lié au chiffrement est mis en bleu.

Remarque : Si Alice veut chiffrer son mail, il faut qu’elle possède le certificat de Bob. Bob lui
aura, par exemple, auparavant envoyé un mail signé (son certificat étant joint). Netscape se
charge alors de stocker le certificat dans un annuaire.

8
Description :
A.- Alice envoie un mail signé et chiffré :
 Alice compose le message.
 Une fonction de hachage va calculer l’empreinte du message [1]
 Cette empreinte va être chiffrée avec la clé privée d’Alice [2] ; cette empreinte chiffrée
correspond à la signature numérique du message.
 Alice génère une clé symétrique ; son message est chiffrée avec cette clé [3]
 La clé symétrique est chiffrée avec la clé publique de Bob [4]
 Alice enverra à Bob : <le message chiffré, la signature numérique, son certificat, la clé
symétrique chiffrée> [5]

B.- Bob réceptionne le mail soi-disant d’Alice :

 La validité du certificat va être vérifiée (mécanisme décrit page suivante) [6]


 Il obtient alors la clé publique d’Alice qui est contenu dans le certificat ; on est sûr
désormais que la clé publique est bien celle d’Alice.
 Il déchiffre la signature numérique à l’aide de la clé publique d’Alice et obtient la soi-
disant empreinte du message d’Alice [7]
 Parallèlement, il va déchiffrer la clé symétrique avec sa clé privée [8]
 Il déchiffre le message avec la clé symétrique [9]
 Il va calculer l’empreinte du message en clair avec une fonction de hachage [10]
 Enfin, il compare les 2 empreintes obtenues [11] : si elles sont identiques, le message est
reconnu comme authentique.
Ainsi, grâce aux certificats numériques, on peut assurer les 4 besoins :
 l’intégrité,
 l’authentification,
 la non-répudiation (grâce à la signature électronique)
 la confidentialité (grâce au chiffrement).
En pratique, il suffira à Alice de cocher les cases Encrypted et Signed pour envoyer un mail
signé et crypté ; celle-ci possédant un certificat et celui de son correspondant.

6.4. Comment le certificat est-il vérifié ?


Le navigateur va vérifier l’intégrité du certificat, celui-ci étant signé par une autorité de
certification (CA). Le navigateur va déchiffrer la signature présente dans le certificat avec la
9
clé publique de la CA et parallèlement, il va calculer l’empreinte des données contenues dans le
certificat. S’il obtient le même résultat, cela signifiera que le certificat est valide.
On peut également y insérer des certificats d’autres CAs dont on a confiance ; par exemple,
dans le cas d’une entreprise qui crée sa propre CA pour que les échanges de données puissent
être authentifiés et sécurisés.

7. OpenSSL :
OpenSSL est une boîte à outils de chiffrement comportant deux bibliothèques (libcrypto
fournit les algorithmes cryptographiques, libssl implémente le protocole SSL) et une interface en
ligne de commande (openssl).
Les bibliothèques, écrites en langage C, implémentent les fonctions basiques de cryptographie et
fournissent un certain nombre de fonctions utiles. Grâce aux wrappers (design pattern), il est
possible de les utiliser dans une grande variété de langages informatiques.

Les paramètres de l'outil en ligne de commande openssl sont très nombreux ; ils permettent
entre autres de choisir l'un des nombreux types de chiffrement (Blowfish, DES ou Triple DES,
DSA, RC4, RC5, RSA…), d'encodage (base64…) ou de hachage (MD5, SHA-1…).

Cet utilitaire et les bibliothèques associées sont disponibles pour la plupart des Unix dont Linux
et Mac OS X, mais aussi pour Microsoft Windows, DOS et OpenVMS. Le support des cartes
accélératrices câblées est intégré à la branche principale depuis la version 0.9.7.

OpenSSL, qui est basé sur SSLeay de Eric Young et Tim Hudson, est distribué selon les termes
d'une double licence de type BSD.

Webographie

 http://php.developpez.com/cours/apacheopensslphpwindows/
 http://fr.wikipedia.org/wiki/Openssl
 http://fr.wikipedia.org/wiki/Transport_Layer_Security
 http://www.openssl.org/
 https://www.certification.tn/
 http://www.selso.com/

10

Vous aimerez peut-être aussi