SSL est un système de chiffrement utilisé sur les serveurs pour garantir la confidentialité des informations transmises sur le World Wide Web. Les serveurs utilisant SSL chiffrent les données sensibles avant de les transmettre aux clients, empêchant ainsi toute tierce personne de lire ces données même si elles sont interceptées en cours de route. Les clients recevant ces données les déchiffrent afin de les rendre lisibles. L'utilisation du protocole SSL sur un serveur Web contribue à garantir la confidentialité des informations transmises entre un client (par exemple, un navigateur Web) et le serveur Web. Elle permet en outre aux clients de s'assurer de l'identité du serveur.
Pour qu'un serveur et un client puissent communiquer de manière sécurisée au moyen du protocole SSL, le serveur doit posséder une paire de clés publique-privée (également appelée "bi-clé") et un certificat. Le serveur utilise sa clé privée pour signer les messages qu'il adresse aux clients. Il envoie sa clé publique aux clients afin qu'ils puissent vérifier que les messages signés émanent bien de ce serveur. La clé publique leur sert également à chiffrer les messages qu'ils transmettent au serveur, lequel les déchiffre au moyen de sa clé privée.
Pour transmettre sa clé publique aux clients, le serveur a besoin d'un certificat délivré par une autorité d'accréditation, également appelée autorité de certification (CA). Ce certificat contient la clé publique du serveur, le nom distinctif (DN) associé au certificat, le numéro de série ou la date de délivrance du certificat et sa date d'expiration.
Une autorité d'accréditation est un tiers digne de confiance (ou une entité interne désignée) chargé de délivrer les certificats. Elle vérifie l'identité du serveur et signe numériquement le certificat au moyen de sa clé privée. Sa clé publique peut être utilisée pour s'assurer de la validité du certificat. Un certificat signé établit le lien entre l'identité du serveur et une paire de clés électroniques qui peuvent être utilisées pour chiffrer et signer des informations numériques. Le certificat lui-même est signé avec la clé privée de l'autorité d'accréditation pour confirmer que le serveur est bien ce qu'il prétend être.
Pour exploiter un serveur Web en mode SSL sécurisé, vous devez d'abord obtenir d'une autorité d'accréditation un certificat signé pour votre système. VeriSign, Inc. est l'une des sociétés agissant en tant qu'autorité d'accréditation. Cependant, vous pouvez utiliser un certificat délivré par n'importe quelle autre autorité d'accréditation, pour autant qu'il soit dans le format approprié.
Lorsque vous configurez des connexions sécurisées, votre clé publique doit être associée à un certificat signé électroniquement, émanant d'une autorité d'accréditation qui, sur votre serveur, est désignée comme autorité d'accréditation digne de confiance.
Mise en oeuvre de connexions sécurisées
Pour en savoir plus sur les certificats : http://digitalid.verisign.com/
Cette section présente les concepts de sécurité dans leurs grandes lignes.
Le développement rapide du commerce électronique sur Internet a conduit à une demande croissante en matière de sécurisation des communications réseau. Même à l'intérieur des entreprises, les données circulant sur les réseaux privés sont souvent confidentielles et ont besoin d'être protégées.
Une communication réseau sécurisée doit posséder les caractéristiques suivantes :
Les ressources peuvent être protégées et rendues accessibles uniquement aux personnes autorisées. Le contrôle d'accès peut être basé sur les mots de passe, les adresses IP, les noms d'hôtes ou une authentification du client via SSL.
Vous savez à quelle personne vous avez affaire et vous pouvez lui accorder votre confiance. L'authentification de l'interlocuteur est réalisée au moyen de signatures et de certificats numériques.
Les messages ne sont pas altérés lors de leur transmission. Sans cette garantie, les messages reçus à l'autre bout peuvent très bien ne pas correspondre à ceux que vous envoyez. L'intégrité des informations est assurée par leur signature numérique.
Les informations échangées entre les deux parties au cours d'une transaction demeurent confidentielles et ne peuvent pas être lues même si elles tombent entre de mauvaises mains. La préservation de la vie privée et la confidentialité sont assurées par le chiffrement.
Dans sa forme la plus simple, le chiffrement consiste à brouiller un message de manière à le rendre illisible jusqu'à ce qu'il soit décodé par son destinataire. L'émetteur utilise un modèle algorithmique (ou clé) pour brouiller (ou chiffrer) le message. Le récepteur (destinataire) possède la clé de déchiffrement. La confidentialité des transmissions via Internet est assurée par le chiffrement.
Deux types de clés peuvent servir au chiffrement :
Il s'agit d'une paire de clés que vous créez. L'une d'elles est la clé publique, l'autre la clé privée. Les deux clés sont différentes l'une de l'autre. La clé privée contient une plus grande part de l'algorithme de chiffrement secret. Pour cette raison, votre clé privée ne doit jamais être communiquée à des tiers.
Le serveur utilise sa clé privée pour signer les messages qu'il adresse aux clients. Il envoie sa clé publique aux clients afin qu'ils puissent de leur côté chiffrer les messages qu'ils transmettent au serveur, lequel les déchiffre au moyen de sa clé privée. Comme vous êtes le seul détenteur de la clé privée, vous êtes le seul à pouvoir déchiffrer un message ayant été chiffré avec votre clé publique. Les paires de clés sont conservées dans une base de données de clés qui est protégée par un mot de passe.
Les clés symétriques s'appuient sur un modèle de chiffrement précédent, dans lequel l'émetteur et le récepteur partagent le même algorithme. Cet algorithme est utilisé par l'émetteur pour chiffrer le message, et par le récepteur pour le déchiffrer.
L'inconvénient (et le risque) lié à l'utilisation de clés symétriques est que vous devez trouver un moyen sûr de transmettre votre clé secrète au personnes avec lesquelles sous souhaitez communiquer.
Le protocole SSL (Secure Sockets Layer) utilise des échanges de clés asymétriques et symétriques. Les clés asymétriques sont utilisées lors de la prise de contact (handshake) visant à établir la liaison SSL. Lors de cette prise de contact, la clé maîtresse, chiffrée avec la clé publique du récepteur, est transmise du client au serveur. A partir de cette clé maîtresse, le client et le serveur créent chacun leur propre clé de session. Ces clés de session sont ensuite utilisées pour chiffrer et déchiffrer les données échangées au cours du reste de la session. L'échange de clés symétriques a lieu dans le cadre de la négociation de la spécification de chiffrement à utiliser.
Pour envoyer sa clé publique aux clients, le serveur a besoin d'un certificat numérique. Celui-ci est délivré par une autorité d'accréditation, également appelée autorité de certification (CA), qui vérifie l'identité du serveur.
Informations connexes :
L'authentification est le procédé qui consiste à vérifier l'identité des autres parties, donc à s'assurer qu'elles sont bien qui elles prétendent être. Le serveur utilise l'authentification de deux manières :
Il s'agit d'une signature unique, calculée mathématiquement, qui garantit ou engage la responsabilité de celui qui la produit. On peut la comparer à une carte de crédit sur laquelle figurerait la photo de son détenteur. Pour contrôler l'identité de la personne qui vous envoie un message, vous consultez son certificat numérique.
Pour comprendre ce que représente un certificat numérique (ou ID numérique), imaginez une carte de crédit sur laquelle figurerait une photo de vous en compagnie du président de la banque émettrice de la carte. Nul doute qu'un commerçant vous accorderait sa confiance, car non seulement vous ressemblez à la photo sur la carte de crédit, mais en plus vous avez la confiance du président de la banque.
Le principe est donc de baser la confiance que vous accordez à l'émetteur sur celle que vous accordez à la tierce partie (personne ou société) qui a certifié ou accrédité cet émetteur. Cette tierce partie, qui délivre les certificats numériques, est appelée autorité d'accréditation ou de certification (CA), ou encore signataire de certificats.
Un certificat numérique contient :
Vous indiquez votre nom distinctif lorsque vous faites une demande de certificat. Le certificat signé numériquement contiendra non seulement votre propre nom distinctif, mais aussi celui de l'autorité d'accréditation qui l'a délivré.
Vous pouvez demander l'un des certificats suivants :
Les autorités d'accréditation diffusent leur clé publique et leur nom distinctif dans un même certificat. Les utilisateurs peuvent ainsi l'ajouter à leurs serveurs et navigateurs Web en tant que certificat d'autorité de certification digne de confiance. Dès lors que vous déclarez dignes de confiance la clé publique et le certificat d'une autorité de certification, votre serveur accorde sa confiance à quiconque possède un certificat émanant de cette autorité. Bien sûr, vous n'êtes pas limité à une seule autorité et votre serveur peut en recenser une multitude. HTTP Server comprend, par défaut, plusieurs certificats émanant d'autorités d'accréditation dignes de confiance. Vous pouvez en ajouter ou en supprimer à votre gré en recourant à l'utilitaire IBM Key Management livré avec le serveur.
Pour communiquer en toute sécurité, le récepteur d'une transmission doit faire confiance à l'autorité d'accréditation qui a délivré le certificat de l'émetteur. Cette règle est valable pour tout type de récepteur, qu'il s'agisse d'un serveur Web ou d'un navigateur. Lorsque l'émetteur signe un message, le récepteur doit, pour l'accepter, posséder la clé publique et le certificat correspondants, ce dernier devant être répertorié comme certificat émanant d'une autorité digne de confiance.
Informations connexes :
Une infrastructure PKI (Public Key Infrastructure) est un système de certificats numériques, d'autorités d'accréditation, d'autorités d'enregistrement, de services de gestion de certificats et d'annuaires X.500 qui, ensemble, vérifient l'identité et les droits de chaque partie impliquée dans une transaction sur Internet. Ces transactions peuvent être financières, mais il peut aussi s'agir d'opérations exigeant un contrôle d'identité, telles que la confirmation de l'origine d'une offre ou l'identification de l'auteur d'un courrier électronique.
Une infrastructure PKI est fondée en partie sur l'utilisation de listes de retrait de certificats (CRL). Les listes CRL répertorient les certificats qui ont été révoqués. Elles offrent une méthode plus globale d'authentification des clients par certificat et peuvent également servir à contrôler la validité des certificats des autorités d'accréditation déclarées dignes de confiance.
Les listes CRL et les certificats d'autorités dignes de confiance sont conservés sur un serveur d'annuaire X.500. Les protocoles utilisés à la fois pour stocker et extraire des informations sur un serveur d'annuaire X.500 sont DAP (Directory Access Protocol) et LDAP (Lightweight Directory Access Protocol). HTTP Server admet le protocole LDAP.
Les informations gérées peuvent être réparties sur plusieurs serveurs d'annuaire disséminés sur Internet et dans les intranets. Les organisations peuvent donc librement gérer leurs certificats, leurs règles de confiance et leurs listes CRL à partir d'un site central ou, au contraire, de façon décentralisée. Les règles de confiance sont de ce fait plus dynamiques, car les autorités d'accréditation réputées digne de confiance peuvent être à tout moment ajoutées à un réseau de serveurs sécurisés ou supprimées de celui-ci sans qu'il soit nécessaire de reconfigurer à chaque fois les serveurs HTTP clients de ce réseau.
Informations connexes :
Développé par Netscape Communications Corporation, le protocole Secure Sockets Layer (SSL) assure la préservation de la confidentialité des données transférées entre un client et un serveur. Il permet au client d'authentifier le serveur, c'est-à-dire de s'assurer de son identité. L'authentification du client exige l'emploi de la version 3 de SSL.
Dès lors que votre serveur possède un certificat numérique, les navigateurs compatibles SSL tels que Netscape Navigator et Microsoft Internet Explorer peuvent communiquer avec lui en toute sécurité par le biais d'une connexion SSL. SSL permet d'établir facilement un site Web sécurisé sur Internet ou au sein d'un intranet privé. Un navigateur n'admettant pas HTTP sur SSL ne peut pas demander d'URL via HTTPS. De même, les navigateurs non compatibles SSL ne peuvent pas valider les formulaires dont la soumission doit être sécurisée.
Dans le protocole SSL, la prise de contact (handshake) servant à l'établissement d'une connexion sécurisée entre le client et le serveur est elle-même sécurisée. Lors de cette prise de contact, client et serveur se mettent d'accord sur les clés de sécurité qu'ils utiliseront pour la session ainsi que sur les algorithmes qui serviront au chiffrement. Le client authentifie le serveur, ce dernier pouvant éventuellement demander au client son certificat. Après la prise de contact, SSL est mis en oeuvre pour chiffrer et déchiffrer toutes les informations contenues à la fois dans les demandes https et dans les réponses du serveur, à savoir :
HTTPS est un protocole unique qui combine SSL et HTTP. Dans les documents HTML que vous créez, vous devez spécifier le préfixe https:// pour chaque lien que vous établissez vers un document protégé par SSL. L'utilisateur d'un navigateur client peut aussi spécifier ce préfixe dans l'URL qu'il saisit pour demander l'accès à un document protégé par SSL.
Comme HTTPS (HTTP + SSL) et HTTP sont deux protocoles distincts qui utilisent chacun un port différent (443 et 80, respectivement), des demandes SSL et non-SSL peuvent être émises et traitées simultanément. Vous pouvez ainsi choisir de servir une catégorie particulière d'informations à tous les utilisateurs qui n'emploient pas de connexion sécurisée, et d'autres informations spécifiques à ceux qui émettent des demandes sécurisées. C'est ainsi qu'une société de vente par correspondance sur Internet peut autoriser tous les utilisateurs à parcourir librement son catalogue sans sécurité particulière, mais les forcer à utiliser une connexion sécurisée dès lors qu'ils remplissent un formulaire de commande et transmettent leur numéro de carte de crédit.
Informations connexes :