| | Home | Certificats | Astuces | Documentation | Stats : cacti - mrtg | | 04 Jul 2008 | |
| ||
|
Comprendre la PKI De nouveaux besoins liés à la sécurité des communications sont apparus avec le développement de l'Internet et en particulier celui du commerce électronique. En effet, son développement dépend de létablissement de relations de confiance entre les parties de léchange. Le manque de sécurité est souvent indiqué par les médias comme le principal obstacle au développement du commerce électronique. De fait, les données circulant sur le réseau Internet peuvent être interceptées. La confiance des utilisateurs passe donc par la sécurisation des transactions, par exemple au moyen dune procédure de certification, et la reconnaissance des signatures électroniques. Les composantes de la sécurité des échanges de données sont les suivantes :
Dans ce document, je présenterai les certificats numériques et la façon dont, associés à une infrastructure à clés publiques, ils peuvent répondre aux conditions de sécurité des échanges énumérées ci-dessus. Je rappellerai, tout dabord, les principes de la cryptographie symétrique et de la cryptographie asymétrique ainsi que le mécanisme de la signature numérique.
Chiffrement et signature électronique Dans le chiffrement à clé symétrique ou clé secrète, c'est la même clé qui sert à la fois à chiffrer et à déchiffrer un message. C'est exactement le même principe qu'une clé de porte : c'est la même qui sert à ouvrir et à fermer une serrure. La difficulté est donc de transmettre cette clé secrète à la personne avec laquelle on désire établir des communications confidentielles. En effet : Lorsque Alice souhaite envoyer des messages confidentiels à Bob, elle va suivre les étapes suivantes :
Une seule clé est donc utilisée pour chiffrer et déchiffrer tous les messages entre Bob et Alice. Cette méthode a de nombreux inconvénients :
La cryptographie à clé publique est une méthode utilisée pour transmettre et échanger des messages de façon sécurisée (authentification de l'émetteur, garantie d'intégrité et garantie de confidentialité). Cette technique repose sur le principe de "paire de clés asymétriques". Chaque individu engagé dans une transaction est muni d'une "clé privée" et d'une "clé publique". La clé privée ne doit être communiquée à personne, tandis que la clé publique est transmise à tous nos interlocuteurs, sans aucune restriction. Les principes généraux de la cryptographie à clé publique sont les suivants :
La signature permet didentifier de manière " sûre " lémetteur dun message reçu et de garantir lintégrité du message. Cela permet donc de reproduire sur Internet lenvironnement de confiance des échanges physiques, puisque lors, il devient impossible de répudier un document électronique (un bon de commande, une offre de bourse, ...). Lenvoi dun message signé suit les étapes décrites dans le schéma ci-dessous :
Une fonction de hachage (MD5 Message Digest v5 ou SHA-1 Secure Hash Algorithm v1) est une fonction qui calcule le condensé dun message. Le résultat est unique : si un bit du message est modifié, le résultat nest 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 dAlice voici les procédures qui vont suivre :
En réalité, Bob ne peut pas être sûr que le message provient bien dAlice. Tout ce dont il est certain, cest quà la clé publique jointe au message correspond bien la clé privée qui a servi à signer le message. En effet, le nom dAlice ne figure nulle part. Cest pourquoi, il est nécessaire dintroduire les certificats numériques. Nous allons voir comment ces derniers vont permettre dinstaurer un état de confiance ; cest-à-dire en prouvant lidentité de lexpéditeur.
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. Les certificats numériques permettent détablir un environnement de confiance entre deux entités distantes (deux personnes physiques, une personne et un serveur web,...) qui ont besoins de communiquer entre elles, et de séchanger des informations non répudiables (nécessité de signature électronique) et des informations confidentielles (application de chiffrement). Les notions de signature et de confidentialité sont omniprésentes dans les échanges d'information sur support physique (courrier notamment) : une lettre confidentielle est mise sous enveloppe, une signature manuscrite est apposée au bas d'un document important. La logique est la même pour les échanges électroniques, et les besoins de certificats numériques concernent donc de larges populations : individus devant s'identifier sur des services en ligne, collaborateurs d'une entreprise (ou d'un groupe d'entreprises partenaires) échangeant des informations critiques, serveur web échangeant de l'information confidentielle avec la population qui s'y connecte (serveur marchand, par exemple), etc. Il existe trois types de certificats :
Le type de certificat à utiliser dépend du besoin :
Une Autorité de Certification (Certification Autority, ou 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. Quelques autorités de certification
Le processus de certification fait intervenir 3 acteurs : lautorité de certification, lautorité denregistrement et lopérateur de certification. Il est représenté par le schéma suivant.
Pour expliquer lintervention de ces 3 autorités, je ferai un parallèle avec lobtention dune carte de crédit. En premier lieu, le siège social de la banque a défini des critères qui vont permettre lattribution dune carte de crédit. Dans linfrastructure à clé publique, il sagit de lautorité de certification ; cette autorité définit le profil requis pour obtenir un certificat numérique. En pratique, le porteur dune carte de crédit na vu que son agence bancaire, qui sest chargé de recueillir sa demande, de vérifier son identité et dévaluer les critères dattribution déterminés par le siège social. Puis elle a donné son attribution. Dans linfrastructure à clé publique, ce rôle est dévolu à lautorité denregistrement. Enfin, lagence bancaire a demandé à un troisième acteur, le consortium de cartes de crédit, la fabrication de la carte. Dans linfrastructure à clé publique, lautorité denregistrement donne lidentité et la clé publique de lindividu à lopérateur de certification qui génère un certificat. Exemple dune demande dun certificat de la CA Selso Jai demandé un certificat personnel pour le cryptage et la signature de mails (gratuit).
La forme standard dun certificat est définie selon la norme X.509. ![]() Le certificat contient des informations relatives au certificat : son format, son numéro de série, la spécification de lalgorithme de chiffrement utilisé pour la signature et sa date de validité. Mais aussi, des informations relatives au porteur : son nom, un identifiant unique, sa clé publique et lalgorithme de chiffrement associé à sa clé publique. Et enfin, des informations relatives à lautorité de certification : le nom de lautorité, son identifiant unique et la signature numérique de lautorité de certification. Cette signature peut être vue comme un cachet (ou un tampon) apposé par lautorité 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 lautorité de certification. On obtient ainsi la signature numérique de lautorité de certification qui est concaténé aux informations. Le tout constitue le certificat. Avec un certificat personnel, on peut envoyer des mails signés. Si lon 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 quelle 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 du schéma précédent : Alice envoie à Bob un mail signé et chiffré : A.- Alice envoie un mail signé et chiffré :
B.- Bob réceptionne le mail soi-disant dAlice :
Ainsi, grâce aux certificats numériques, on peut assurer les 4 besoins : lintégrité, la lauthentification, la non-répudiation (grâce à la signature électronique) et 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.
En cliquant sur licône " security " de la fenêtre principale de Netscape, on accède à une fenêtre qui permet la gestion des certificats : les nôtres, ceux des autres personnes, ceux des sites webs et ceux des CAs auxquelles on fait confiance (cest-à-dire que lon acceptera les certificats quils auront signés).
Pour insérer le certificat dun correspondant dans la base, il suffit que celui-ci nous envoie un mail signé. Si le certificat est valide, Netscape linsérera automatiquement. Comment le certificat est-il vérifié ? Le navigateur va vérifier linté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 lempreinte des données contenues dans le certificat. Sil obtient le même résultat, cela signifiera que le certificat est valide. On peut également y insérer des certificats dautres CAs dont on a confiance ; par exemple, dans le cas dune entreprise qui crée sa propre CA pour que les échanges de données puissent être authentifiés et sécurisés.
Le certificat numérique d'un serveur qui héberge une page web est le passeport électronique de cette page web : il permet d'établir avec certitude le lien entre la page web hébergée (un nom de domaine, ou URL) et son propriétaire (une entreprise, un marchand, un individu), d'authentifier ce serveur, et de sécuriser les échanges électroniques entre ce serveur et les individus qui s'y connectent via Internet. Le Certificat Serveur contient les informations suivantes :
Sa structure est semblable à celle dun Certificat Personnel. Le Certificat Serveur permet d'instaurer la confiance en authentifiant le site et en chiffrant l'ensemble des informations (personnelles, bancaires, etc.) entre ce site et la personne qui s'y connecte, afin de garantir la confidentialité des échanges. Les personnes venant visiter ce site Internet pourront formellement lauthentifier et laisser en toute sécurité et confiance leur numéro de carte bancaire ainsi que des informations personnelles. En effet, le Certificat Serveur permet de prouver lidentité du site aux utilisateurs qui sy connectent, et ainsi dempêcher un site malveillant d'usurper lidentité du site certifié et de détourner des clients. Ce Certificat Serveur permet également de sécuriser les transactions en ligne : on peut être sûr que les informations données par le client ne peuvent être interceptées, détournées ou déchiffrées par une autre personne. Il permet dinstaurer la confiance. La sécurité et la confiance que des clients peuvent attendre sont en plus garantis par létablissement dun canal sécurisé reposant sur la technologie SSL (Secure Sockets Layer). Un Certificat serveur apportera donc les assurances suivantes : La preuve de lidentité du site certifié : en authentifiant le site vis-à-vis des clients, en permettant le chiffrement Une forte sécurité : en reposant sur le modèle de chiffrement à "clé publique" : la technologie de chiffrement SSL. Les Certificats serveurs sont déjà utilisé principalement pour les sites de commerce électronique qui font de la vente sécurisée sur Internet, les banques qui offrent à leurs clients un accès sécurisé à leur compte bancaire, etc. Techniquement, les Certificats Serveur servent à :
Ce protocole utilise le certificat serveur. Le schéma suivant illustre les transactions nécessaires à létablissement dune session SSL. En vérifiant le certificat serveur, le client est sûr quil communique avec le site authentique. De plus, toutes les échanges qui suivront seront chiffrés avec la clé de session.
Une entreprise peut désirer mettre en place une infrastructure de certificats de sorte que les besoins nécessaires à la sécurité déchanges de données (authentification, intégrité, non-répudiation, confidentialité) soient satisfaits. Mais comment va-t-elle gérer lémission de certificats pour ses employés ou bien encore comment s'assurer que les certificats auront une valeur reconnue à l'intérieur comme à l'extérieur de l'entreprise ? Voici les différentes solutions pour l'entreprise :
Les études de marchés montrent que les grandes entreprises, plus particulièrement celles qui exigent un niveau de sécurité important et une nécessité d'émettre des certificats en grand nombre, préfèrent administrer leur propre autorité de certification interne. Exemple : l'usage des certificats peut intéresser les universités qui veulent fournir un certificat à chaque étudiant La démarche habituelle de l'entreprise sera de sélectionner ou d'acheter un matériel de gestion de clés cryptographiques (boîte noire). Elle choisira également un logiciel de gestion de CA. Ces technologies permettront à l'entreprise d'émettre des certificats contenant des informations personnalisées et correspondant au niveau de sécurité recherché. Cependant, les logiciels standards ne reconnaîtront pas automatiquement de tels certificats. Chacun des logiciels qui sera amené à utiliser ces certificats devront être modifiés de façon à contenir le clé racine de l'autorité interne qui les a produit. Cela signifie qu'il faudra rajouter la clé racine du CA de l'entreprise dans chaque copie de Netscape Communicator, Microsoft Outlook ou encore Outlook Express. Il est clair que dans un environnement restreint, ce problème ne se pose pas. Mais, dans une grande entreprise ou organisation (environnement hétérogène), il est probable que l'entité qui contrôle le CA interne ne pourra pas modifier tous les logiciels. C'est pourquoi, il est commode d'utiliser un chaînage de Cas. Le chaînage de CAs permet de certifier l'autorité interne de l'organisation, et ainsi, de lui conférer la confiance associée au CA d'une autorité mondialement reconnue. Tous les logiciels qui font confiance à ce CA reconnaîtront immédiatement les certificats émis par les CAs chaînées. La norme X509 intègre le mécanisme de chaînage de certificats. Quand un premier CA signe les clés d'un second CA, les certificats générés par ce dernier héritent de la confiance apportées par les 2 CAs. Tous les logiciels qui supportent les certificats personnels supportent ce mécanisme de chaînage. Le service de chaînage de CAs signifie que les certificats émis par une autorité interne seront reconnus si une CA reconnue mondialement accepte de certifier ses clés racines, leur apportant la même confiance quà leurs clés racines.
Lusage de certificats numériques permet de répondre aux 4 besoins de sécurité pour léchange dinformations qui sont :
Les certificats associés à une infrastructure à clé publique permettent dinstaurer des relations de confiance et ainsi favoriser le développement du commerce électronique.
|