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

).

site de e-commerce, un site de services en ligne (banque ). 2. TLS/SSL : Transport Layer

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.

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.

que l'on se connecte à un schème http ou https. Dans la majorité des cas, l'utilisateur

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.

Le cryptage protège les données lors de la transmission. En effet, les serveurs Web et

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 »).

plages de cryptage (par ex. « de 40 à 256 bits »). 3. La signature numérique

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 :

).

1. Une fonction de hachage (MD5 ou SHA- 1) va calculer l’empreinte du message, qui

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 :

message d’Alice voici les procédures qui vont suivre : 1. Bob déchiffre la signature avec la

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. 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 :

existe deux méthodes de chiffrement : Clés symétrique : Problèmes majeurs :  Transfert de la

Problèmes majeurs :

Transfert de la clé secrète

Nombre important de clés à gérer. Clés asymétrique :

Nombre important de clés à gérer. Clés asymétrique : Il existe trois types de certificats :

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).

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. 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 :

certification. Il est r eprésenté par le schéma suivant : Pour expliquer l’intervention de ces 3

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.

Le certificat contient des informations relatives :  au certificat : son format, son numéro

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.

Le mécanisme lié au chiffrement est mis en bleu . Remarque : Si Alice veut chiffrer

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.

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 :

[5] B.- Bob réceptionne le mail soi- disant d’Alice :  La validité du certificat va

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

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/