Académique Documents
Professionnel Documents
Culture Documents
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 :
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 :
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.
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.
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.
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]
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