Maison / Maîtriser l'ordinateur / Connexion ssl bidirectionnelle avec le système de paiement. Assurer la sécurité des systèmes de paiement basés sur le protocole SSL. Connexion SSL sécurisée avec authentification bidirectionnelle

Connexion ssl bidirectionnelle avec le système de paiement. Assurer la sécurité des systèmes de paiement basés sur le protocole SSL. Connexion SSL sécurisée avec authentification bidirectionnelle

Configuration de l'accès Internet

Paramètres supplémentaires du serveur d'accès Web

Mise en place d'une connexion sécurisée (basée sur Secure Socket Layers, SSL)

Si nécessaire, vous pouvez configurer la protection de la connexionavec un serveur d'accès web DIRECTUM : Les informations transmises sur les canaux de communication seront cryptées. Pour pouvoir travailler avec des connexions sécurisées, procédez comme suit :

1. Modifiez le fichier de configuration du serveur d'accès Web :

· Étape 1 : Exécuter l'utilitaire de configuration du serveur d'accès Web C:\Program Files\DIRECTUM Company\WebAccessConfig\DirWebConfigurator.exe.

· Étape 2. La fenêtre "Sélectionner le site Web du serveur d'accès Web" DIRECTUM":

un) dans la liste déroulante, sélectionnez le site web du serveur d'accès web DIRECTUM . Par défaut, il s'appelle "Web Access Server". DIRECTUM" ;

b) cliquez sur le bouton D'ACCORD ;

· Étape 3. La fenêtre "Paramètres du serveur d'accès Web" DIRECTUM », onglet « Général » :

un) dans la liste déroulante "Connexion sécurisée", sélectionnez la valeur "Pour distant". Si vous devez établir une connexion sécurisée et pour les utilisateurs réseau local, puis sélectionnez la valeur "Pour distant et local" ;

b) cliquez sur le bouton D'ACCORD .

2. Configurez IIS pour qu'il fonctionne avec SSL -connexions en installant un certificat d'authentification de serveur. Pour ce faire, un certificat est généré dans le but "Fournit l'obtention d'une identification à partir d'un ordinateur distant" avec la possibilité d'exporter vers le service de certificat d'entreprise, à la suite duquel vous devez obtenir *. pfx -fichier de clé privée.

3. Si vous utilisez le service Web de certificat les fenêtres puis procédez comme suit :

un) Lors de la génération d'un certificat, spécifiez l'option d'une éventuelle exportation du certificat. Une fois le certificat installé sur le système local, il peut être visualisé à l'aide de Internet Explorer – élément de menu « Options Internet », onglet « Contenu », bouton Certificats . Pour exporter, utilisez le bouton Exporter , indiquer Oui, exporter la clé privée, et entrez un mot de passe.

b) Importez le certificat. Pour cela, dans l'onglet "Sécurité de l'annuaire" de la fiche des propriétés du site web, cliquez sur le bouton Certificats et suivez les instructions à l'écran pour importer le certificat à l'aide du mot de passe défini à l'étape précédente. Après réception du certificat, le port de connexion sécurisé 443 sera établi et fonctionnera via SSL deviendra possible.

4. Afin de prendre en charge les connexions ouvertes (non sécurisées), vous devez définir l'option Autoriser la prise en charge des connexions HTTP ouvertes dans l'onglet Site Web des propriétés du site Web.

5. Pour pouvoir installer un certificat d'autorité de certification en utilisant le lien de la page de connexion, vous avez besoin de l'utilisateur qui exécute le groupe d'applications " DIRECTUM », autorisez « Lire » et « Demander des certificats » dans le composant logiciel enfichable « Autorité de certification » dans les propriétés de l'autorité de certification souhaitée dans l'onglet « Sécurité ».

Voir également:

Nous avons publié un nouveau livre "Content Marketing in dans les réseaux sociaux: Comment entrer dans la tête des abonnés et tomber amoureux de votre marque.

Le monde est obsédé par la sécurité sur Internet. Si vous êtes à la mode et que vous correspondez exclusivement dans Telegram, lisez comment établir une connexion sécurisée sur le site. Cela vous sera utile dans tous les cas, et si vous êtes une boutique en ligne, vous ne pouvez pas du tout vous en passer. En cours de route, parlons des certificats : ce qu'ils sont et pourquoi ils sont nécessaires.

Qu'est-ce que HTTPS

Il s'agit d'un protocole de connexion sécurisé. Il crypte les informations échangées entre le serveur et le navigateur de l'utilisateur - cela aide à protéger les mots de passe, les numéros de carte de crédit et les adresses E-mail. L'utilisation de HTTPS est forte et le rend un peu plus attrayant pour les yeux moteurs de recherche Google classe les sites sécurisés plus haut que les sites non sécurisés. Pour activer HTTPS sur votre site, vous devez d'abord installer un certificat SSL sur le serveur.

Pourquoi avez-vous besoin d'un certificat SSL

Il forme une signature numérique unique du site, qui permet de sécuriser la connexion. Sans certificat SSL, vous ne pourrez pas obtenir le protocole HTTPS, quels que soient vos efforts. Il contient:

  • domaine du site ;
  • le nom légal complet de la société propriétaire ;
  • l'adresse physique de l'entreprise ;
  • période de validité du certificat;
  • Détails du développeur SSL.

Vous aurez également besoin d'un certificat pour vous connecter à n'importe quel système de paiement, tel que Yandex.Money. La logique est simple - personne ne vous laissera risquer l'argent des autres.

Comment choisir un certificat SSL

Ils sont divisés en deux types, selon le degré de protection et.

Validation de domaine SSL

L'option la plus simple. Cela fonctionnera une fois que vous aurez vérifié la propriété du domaine. Vous pouvez le faire de trois manières :

  • Par email. Vous recevrez un e-mail avec des instructions de vérification. Soit le courrier du domaine Whois, soit les boîtes aux lettres de l'administrateur ou du webmaster sont sélectionnés comme adresse d'envoi.
  • Via une entrée DNS. Si vous avez configuré un serveur de messagerie, créez une entrée DNS personnalisée. Selon celui-ci, le système confirmera que vous êtes bien le propriétaire du site. La méthode est automatisée et adaptée à ceux qui ont masqué le courrier Whois dans les paramètres.
  • Via le fichier de hachage. Placez un fichier .txt spécial sur votre serveur afin que l'autorité de certification puisse déterminer son existence.

Cette vérification convient si vous avez blog personnel ou une petite entreprise hors ligne, car elle ne vous permet pas de protéger des sous-domaines et d'effectuer des transactions financières. De plus, pour confirmer la pureté du domaine et vos pensées, vous n'avez rien de compliqué à faire et le certificat fini est fait rapidement.

Validation d'entreprise

Ce type de certificat SSL est plus sécurisé car vous confirmez que l'entreprise est connectée au site. Pour ce faire, vous devez envoyer plusieurs documents au centre de vérification et recevoir un appel au numéro d'entreprise. Les certificats de validation d'entreprise sont divisés en 3 types :

  • SSL à validation étendue. Ce sont des certificats à validation étendue. Ils sont nécessaires à tous ceux qui travaillent avec une grosse somme d'argent : banques, grands magasins en ligne, sociétés financières, systèmes de paiement.
  • SSL générique. Un tel certificat protège à la fois le site lui-même et ses sous-domaines. De plus, il peut y en avoir un nombre quelconque et ils peuvent être situés sur différents serveurs. Obligatoire si vous utilisez des sous-domaines avec différentes liaisons régionales ou différents projets.
  • SAN SSL. Le principal avantage de ce type de certificat est la prise en charge de noms de domaine alternatifs : à la fois externes et internes.
  • Signature de code SSL. Confirme le code et produits logiciels du site Web. Convient aux développeurs de toutes les applications.

Puis-je installer un certificat SSL gratuit sur mon site Web ?

Oui. La plupart de ces produits sont payants, mais il existe des options pour lesquelles vous n'avez pas à débourser d'argent. Ce sont des certificats de base validés par domaine. Ils ne vous permettront pas de lier une caisse enregistreuse en ligne à la ressource, mais ils pourront protéger la connexion de l'utilisateur au serveur. Ces SSL conviennent aux petits sites d'information ou aux entreprises hors ligne. Un exemple est le certificat StartSSL de base.

Installation d'un certificat SSL

Vous devez d'abord générer une demande CSR pour un certificat. Il contient toutes les informations sur le propriétaire du domaine et la clé publique. La plupart des fournisseurs SSL vous permettent de le faire dans le cadre du processus de commande de certificat, mais vous pouvez également générer une demande côté serveur Web.

Lors de la génération d'une clé CSR, vous devez spécifier :

  • Nom du serveur : "site.com" ou "*.site.com" si vous obtenez un certificat WIldcard. L'astérisque signifie n'importe quel nombre de caractères avant le point.
  • Code pays : RU, UA, KZ et ainsi de suite.
  • Région, par exemple, Région de Saratov.
  • Ville.
  • Le nom complet de l'organisation ou le nom du propriétaire du site.

La demande CSR est envoyée au centre de vérification. En conséquence, vous obtenez un certificat SSL et un fichier avec une clé privée qui ne peut pas être perdu et publié dans le domaine public.

Après cela, vous devez installer le certificat sur le serveur Web. Considérez les cas avec Apache et nginx.

apache

Pour ce faire, vous devez télécharger tous les certificats sur le serveur : à la fois principal et intermédiaire. Tout d'abord, vous avez besoin de ce dernier dans le répertoire /usr/local/ssl/crt (utilisé par défaut, dans votre cas cela peut différer). Tous les certificats y seront stockés.

Après cela, téléchargez le certificat principal, ouvrez-le dans n'importe quel éditeur de texte et copiez tout le contenu avec les lignes "BEGIN" et "END".

Dans le répertoire /ssl/crt/, créez un fichier nommé vashsite.crt et collez-y le contenu du certificat.

Déplacez le fichier de clé privée dans le répertoire /usr/local/ssl/private/

Dans le fichier VirtualHost, ajoutez les lignes :

Moteur SSL activé

SSLCertificateKeyFile /usr/local/ssl/private/private.key

SSLCertificateFile /usr/local/ssl/crt/votresite.crt

SSLCertificateChainFile /usr/local/ssl/crt/intermediate.crt

Vous devez spécifier des chemins d'accès valides aux fichiers. Enregistrez vos modifications et redémarrez le serveur.

nginx

Ici, le processus d'installation d'un certificat SSL est légèrement différent. Vous devez d'abord combiner les certificats racine, intermédiaire et SSL en un seul. Pour ce faire, créez un fichier appelé vashsite.crt et collez-y le contenu des certificats avec les lignes "BEGIN" et "END" (ordre : SSL, intermédiaire, racine). Il ne doit pas y avoir de lignes vides.

Presque la même chose doit être faite avec la clé privée - créez un fichier vashsite.key et transférez le contenu de la clé téléchargée depuis le site Web du fournisseur.

Placez les deux fichiers (votresite.crt et votresite.key) dans le répertoire /etc/ssl/ (c'est la valeur par défaut mais cela peut varier).

Dans le fichier de configuration, modifiez VirtualHost. Ajouter:

serveur(
écouter 443;
SSL activé ;

certificat_ssl /etc/ssl/votresite.crt
clé_certificat_ssl /etc/ssl/votresite.key ;
nom_serveur votresite.com ;

Si le répertoire contenant le certificat et la clé diffère de celui par défaut, modifiez-le.

Enregistrez maintenant vos modifications et redémarrez nginx.

Comment obtenir une connexion HTTPS fonctionnelle

Après l'installation des certificats SSL, le site sera disponible à deux adresses : http://votresite.com et https://votresite.com. Vous ne devez conserver que le dernier. Pour cela, configurez un fichier robots.txt et effectuez une redirection 301 depuis l'ancien site.

Dans "robots", vous devez mettre à jour l'hôte. Exemple : Hébergeur : https://votresite.com. Pour configurer une redirection, vous devez ajouter les lignes au fichier .htacsess :

RewriteCond %(SERVER_PORT) !^443$

RéécrireRègle ^(.*)$ https://votresite.com/$1 .

Il reste maintenant à informer les moteurs de recherche des changements. Dans le "Webmaster" de "Yandex", ajoutez une page avec https et spécifiez-la comme principale pour l'ancien site.

Résultats

Nous avons compris ce qu'est https, comment l'installer sur votre site et comment tout configurer correctement. Ce protocole est déjà devenu le standard de connexion et avec le temps tous les sites en direct y basculeront. Ce processus est encouragé par les moteurs de recherche - la présence d'un protocole de connexion sécurisé HTTPS établi est devenue l'un des facteurs de classement. Par conséquent, si vous voulez atteindre le sommet, vous devez l'installer.

Mise en place de systèmes de paiement

La mise en place des systèmes de paiement dépend en grande partie de la façon dont l'opérateur de système de paiement assure lui-même la communication avec ses terminaux. En règle générale, si des terminaux de paiement urbains sont utilisés, une connexion SSL sécurisée est utilisée et vous devez activer et configurer le serveur SSL WEB pour communiquer avec les terminaux comme indiqué ci-dessous. Si des sites Web sur Internet sont utilisés pour effectuer des paiements, à quelle fréquence dans de tels cas est-il nécessaire de configurer serveur http sur la facturation carbone. Assurez-vous d'abord de vérifier auprès de votre opérateur de système de paiement sur quel protocole de communication il assure la connexion à ses terminaux de paiement avant de mettre en place la facturation carbone.
Le serveur WEB SSL pour les paiements dispose de plusieurs paramètres dont les significations sont décrites ci-dessous.

Activer le serveur WEB SSL pour les paiements- Si l'opérateur du système de paiement travaille avec des terminaux de paiement via SSL, il est alors nécessaire d'activer le serveur WEB SSL.
Adresse IP pour la connexion HTTPS- adresse de connexion des bornes ou sites des systèmes de paiement pour effectuer un paiement à un client dans la base de données Carbon Billing.
Port pour la connexion HTTPS- le port 1443 est utilisé par défaut. S'il est nécessaire de changer ce port, alors, si possible, spécifiez des ports supérieurs à 1024.
Adresses client autorisées pour le serveur Web SSL
Domaine pour le certificat SSL du serveur- indiquez ici votre domaine public ou domaine enregistré séparément pour le serveur de paiement sur Carbon Billing. Cette option est facultative et permet de contacter le serveur SSL WEB en utilisant un nom de domaine au lieu d'une adresse IP.
Exiger et vérifier un certificat client- Assurez-vous de vérifier si vous configurez l'interface Web du caissier. Si vous configurez le travail avec Système de paiement, puis précisez la nécessité de vérifier certificat client de l'opérateur du système de paiement.
Créer un certificat client- Un certificat client sera créé, qui devra être fourni à l'opérateur du système de paiement. Le certificat avec le suffixe .pfx sera disponible sur le serveur dans le répertoire /var/lib/usrcert et aura un nom de fichier égal au nom CN que vous avez spécifié lors de la création du certificat. Vous pouvez télécharger le fichier de certificat à partir du serveur à l'aide du programme winscp.

En cas de mise en place d'un serveur HTTP WEB pour les paiements.

Activer le serveur HTTP pour les paiements- Si l'opérateur du système de paiement travaille avec des terminaux de paiement via une connexion http ouverte, activez le serveur HTTP.
Adresse IP pour la connexion HTTP- Adresse du serveur Web pour y connecter des terminaux ou des serveurs de paiement.
Port de connexion HTTP- le port 1444 est utilisé par défaut. S'il est nécessaire de changer ce port, alors, si possible, spécifiez des ports supérieurs à 1024.
Adresses client autorisées pour le serveur HTTP- si non spécifié, alors l'accès sera ouvert à tous.


Si vous utilisez les services des opérateurs de systèmes de paiement répertoriés ci-dessous dans cet onglet, activez les éléments de menu qui leur correspondent. À l'avenir, ces cases à cocher définiront les paramètres système spécifiques requis pour chacun des opérateurs que vous utilisez. Si votre opérateur ne fait pas partie de ceux listés ci-dessous, n'en incluez aucun.

Lors de la configuration du système de paiement Robokassa, n'oubliez pas de spécifier le mot de passe secret requis pour établir une connexion entre le terminal et le serveur.


Criticité du paramètre subjectAltName des certificats ssl

Lors de la génération de certificats SSL pour un serveur, par exemple, pour un serveur de paiement https, l'extension subjectAltName est utilisée. Historiquement, par défaut, cette extension dans le certificat est marquée comme critique, ce qui peut entraîner des problèmes lors de l'intégration de la facturation avec certains systèmes de paiement.

Lors de la génération de certificats client, subjectAltName n'est pas défini.

La criticité du paramètre est annulée par l'option dans la console locale "Configuration du serveur - Paramètres supplémentaires - Paramètres pour les développeurs - Ne pas rendre critique le paramètre SSL AltName".

Après avoir activé cette option, tous les certificats de serveur nouvellement générés seront générés avec une extension subjectAltName non critique. L'ancien certificat du serveur de paiement https devra être régénéré manuellement comme suit :

1. Remontez la partition contenant la config vers rw (le mode assistant à distance doit être activé pour cela) :

Monter -o rw, remonter /mnt/bk_disc/

2. Ouvrez le fichier /etc/ics/ics.conf avec un éditeur et commentez la ligne avec MHTTPD_F_CERT .

3. Redémarrez le serveur de paiement https :

/etc/init.d/mhttpd_F redémarrer

La modification du certificat sur le serveur de paiement https n'affecte pas les certificats client générés précédemment pour les caissiers ou les systèmes de paiement.

Configuration de l'acceptation des paiements via http sans cryptage

S'il est nécessaire d'accepter des paiements provenant de systèmes de paiement utilisant le protocole http non sécurisé, les paramètres suivants doivent être définis :

1) Activez le serveur http pour recevoir les paiements.


2) Spécifiez l'adresse IP sur laquelle les requêtes doivent être reçues. Cette adresse doit appartenir à l'une des interfaces Carbon Billing :


Spécifiez ensuite le port sur lequel le serveur recevra les requêtes.

3) Faites une liste d'adresses IP à partir desquelles les demandes seront acceptées. C'est très étape importante puisque http n'implique pas l'autorisation du système de paiement via un certificat :


Par défaut, les protocoles du système de paiement Robokassa et Unikassa peuvent fonctionner avec HTTP. S'il est nécessaire, par exemple, d'accepter des requêtes pour http en utilisant le protocole OSMP, alors vous devez faire ce qui suit :

1) Chargez le serveur dans ud. assistant et connectez-vous via ssh en tant que root.

2) Exécutez les commandes suivantes :

Monter -o rw,remonter /mnt/ro_disc chattr -i -R /var /www/fiscal/htdocs/http/ cp /var /www/fiscal/htdocs/osmp.php /var /www/fiscal/htdocs/http/ osmp.php chown mhttpd_F:mhttpd_F /var /www/fiscal/htdocs/http/osmp.php

Vous devez modifier la ligne dans le script :

Ligne Mcedit /var /www/fiscal/htdocs/http/osmp.php : inclure "../include/class_page.php" ; remplacer par : include "../../include/class_page.php" ;

Enregistrez le fichier et quittez l'éditeur.

Après un redémarrage en douceur, le module d'acceptation de paiement OSMP sera disponible à l'adresse http://1.1.1.1:1444/osmp.php à partir de l'adresse IP 2.2.2.2.

Accès avec un solde négatif

Peut être mis en œuvre de deux manières :

  • Par l'intermédiaire de l'éditeur de règles et réseaux tarifaires ;
  • À travers [fichier de paramètres supplémentaires ics_tune.sh]

CERTIFICATION NUMÉRIQUE DE LA CONNEXION SSL SÉCURISÉE

Pour le transfert de données sécurisé entre le navigateur et le serveur Web, le protocole de transfert de données https est utilisé, qui est basé sur une connexion SSL sécurisée.

Cet article raconte informations générales sur le chiffrement à clé publique, les certificats numériques, l'infrastructure à clé publique (PKI - Public Key Infrastructure), sur la création d'une autorité de certification, la configuration des conteneurs de servlets Apache Tomcat et JBoss pour établir une connexion sécurisée unidirectionnelle et bidirectionnelle, la génération d'un magasin de certificats et comment pour créer un certificat SSL à l'aide des utilitaires keytool. Vous apprendrez également comment vérifier les certificats révoqués en Java (listes CRL, protocole OCSP) et configurer le navigateur pour qu'il fonctionne avec les certificats.

Un moyen moderne de transmettre des messages en toute sécurité sur un réseau est la méthode de cryptage à clé publique. L'essence de la méthode est la présence d'une paire de clés : publique et privée. Les clés publique et privée sont des algorithmes permettant de convertir le message d'origine en message crypté et le message crypté en message d'origine.

La clé publique est disponible gratuitement et accessible à toute personne souhaitant envoyer un message crypté. L'expéditeur, ayant crypté le message, peut le transmettre en toute confiance sur un canal de communication non sécurisé et être sûr que seul le destinataire pourra lire ce message.

La clé privée est gardée strictement secrète par le propriétaire de la paire de clés. Lors de la réception d'un message chiffré avec la clé publique, le destinataire utilise la clé privée pour le déchiffrer. La clé privée n'étant connue que du destinataire du message, personne d'autre ne peut la lire, ce qui garantit le secret du message.

Un message chiffré avec la clé privée peut être déchiffré par toute personne disposant de la clé publique.

Sur la base de cet algorithme de cryptage, une connexion SSL sécurisée est créée.

Certificat numérique

Un certificat numérique est un document électronique qui identifie le propriétaire. Il contient des informations de base sur le propriétaire, la clé publique du propriétaire, les dates d'expiration, signature numériqueémetteur (éditeur) et autres informations nécessaires. Un certificat numérique comporte une section d'extensions (facultative) qui contient des points de distribution de liste de révocation, des informations sur l'éditeur, etc. Un certificat numérique vous permet d'organiser une Connexion SSL. La création d'un certificat SSL est décrite plus loin dans cet article.

Les principales caractéristiques des certificats ci-dessus sont :

Le certificat SSL de l'autorité de certification doit contenir le champ CA défini sur TRUE, ce qui permet d'émettre d'autres certificats, c'est-à-dire ce certificat n'est pas définitif dans la chaîne.

Les certificats SSL du serveur dans le champ CN (nom commun) doivent contenir Nom de domaine ou l'adresse IP à laquelle le serveur est accédé, sinon le certificat sera invalidé ;

Les certificats SSL du client contiennent l'adresse e-mail, le prénom et le nom du client. Contrairement au certificat de serveur, le champ CN n'est pas critique pour le contenu et peut contenir à la fois un prénom et un nom de famille, ainsi qu'une adresse e-mail.

Un certificat SSL numérique est considéré comme valide pendant la période de validité spécifiée dans ses champs. Ainsi, le certificat ne peut pas être utilisé avant la date de début, et après la date d'expiration, car. les systèmes qui entrent en contact avec lui rapporteront de la méfiance à son égard.

Il existe des situations où l'utilisateur ou l'émetteur d'un certificat doit le suspendre ou l'arrêter complètement. Supposons que la clé privée, qui doit être stockée en toute sécurité, a été perdue ou que des intrus y ont eu accès. Dans une telle situation, l'utilisateur doit contacter l'émetteur (publisher) du certificat afin que ce dernier annule sa validité. En outre, l'éditeur peut révoquer le certificat s'il s'avère que le client a fourni des informations falsifiées sur lui-même. À ces fins, une liste spéciale est créée, appelée liste de révocation de certificats (CRL). Cette liste contient le numéro de série du certificat, sa date d'expiration et le motif de la révocation. A partir du moment où le certificat entre dans la CRL, il est considéré comme invalide et l'éditeur n'est pas responsable du contenu d'un tel certificat. Une des méthodes de vérification de la liste CRL est le protocole OCSP, mais cela nécessite la présence d'un répondeur OCSP auprès de l'autorité de certification.

Infrastructure à clé publique (ICP)

La tâche principale de l'infrastructure à clé publique (PKI) est de définir la politique d'émission des certificats numériques.

Pour émettre et révoquer des certificats SSL, la génération de listes de révocation (CRL) nécessite des Logiciel(SUR). Un exemple d'un tel logiciel est Microsoft CA (partie de MS Windows Server 2000/2003/2008), OpenSSL (distribué aux systèmes d'exploitation de type Unix). Ce logiciel est hébergé sur les équipements du centre de certification.

L'autorité de certification (CA) est une organisation qui émet des certificats SSL numériques sur la base des données fournies par le client. L'autorité de certification est entièrement responsable de l'authenticité des données présentées dans le certificat SSL, ce qui signifie que le propriétaire du certificat est exactement celui qu'il prétend être.

Les autorités de certification les plus courantes dans le monde sont Verisign et Comodo. Ces certificats CA sont approuvés par 99 % des navigateurs et la plupart des logiciels de serveur. La création d'une autorité de certification est décrite ci-dessous.

Connexion SSL sécurisée avec authentification bidirectionnelle

La connexion SSL sécurisée est la plus couramment utilisée dans le commerce électronique. Prenons l'exemple de l'achat de biens dans une boutique électronique. Acheteur indiquant les chiffres et les codes cartes de crédit, veut être sûr qu'ils ne tomberont pas entre les mains d'un attaquant. Par conséquent, le serveur s'authentifie en fournissant un certificat au client. L'autorité de certification est le garant de cette authenticité. Les données du client seront cryptées avec la clé publique du serveur. Ces données ne peuvent être déchiffrées qu'avec la clé privée qui se trouve sur le serveur. Par conséquent, le client ne peut pas avoir peur qu'un attaquant intercepte ses données, il ne pourra toujours pas les décrypter.

Un certificat SSL client est utilisé dans les cas où le serveur a besoin de confirmation que le client est bien celui qu'il prétend être. Par exemple, une banque fournit un accès au réseau pour gérer un compte personnel. Il veut se protéger et être sûr d'être contacté par le propriétaire de ce compte, et non par un attaquant ayant obtenu un identifiant et un mot de passe. Dans cette situation, le client fournit sa clé publique au serveur, et toutes les données reçues du serveur ne peuvent être déchiffrées que par le client et personne d'autre, car il est le propriétaire de la clé privée.

La figure est un diagramme qui montre les étapes pour créer une connexion SSL sécurisée.

Fig 1 - Schéma de création d'une connexion SSL sécurisée avec authentification bidirectionnelle

Lorsqu'un client tente d'accéder à une ressource protégée, le serveur envoie son certificat numérique. Après avoir reçu le certificat, le client le vérifie. La vérification est la suivante : les dates de début et de fin de validité ne doivent pas être dépassées, l'émetteur du certificat doit être de confiance, le certificat ne doit pas être dans la CRL. Si la vérification échoue, le processus d'établissement de la connexion est interrompu. Si les conditions de validation sont remplies, alors le client envoie son certificat au serveur. Le serveur effectue une vérification similaire. Si la vérification échoue, le serveur refusera l'accès à ses ressources. Une fois la vérification réussie, une connexion sécurisée est établie et les données sont transmises sous forme cryptée.

Dans ce schéma, les données transmises sont doublement cryptées. Le client chiffre le message avec la clé publique du serveur puis avec sa propre clé privée. A réception du message, le serveur déchiffre le message avec la clé publique du client puis avec sa clé privée. Ainsi, le serveur et le client s'authentifient l'un auprès de l'autre, car eux seuls peuvent déchiffrer les données reçues.

Il est à noter que l'utilisation de cette technique réduit la vitesse d'échange des données, puisque les opérations de chiffrement/déchiffrement nécessitent un temps supplémentaire et la rapidité de leur exécution dépend de la puissance des ressources de calcul.

Création d'une autorité de certification

À des fins de test ou lorsqu'il n'est pas pratique d'acheter un certificat numérique, vous devez créer votre propre autorité de certification.

Une autorité de certification racine est une autorité de certification à laquelle tout le monde fait confiance. Il dispose d'un certificat SSL, qui est signé avec sa propre clé privée. Ces certificats SSL sont appelés auto-signés.

La clé privée de l'autorité de certification racine doit être conservée en toute sécurité, car s'il est perdu ou volé, la confiance dans tous les certificats SSL subordonnés est perdue.

L'autorité de certification subordonnée est une autorité de certification qui délivre des certificats SSL aux clients. Le certificat de l'autorité de certification subordonnée est signé avec la clé privée de l'autorité de certification supérieure. Centres de certification, serveurs Web, navigateurs Web, clients de messagerie, pour lequel des certificats du type requis sont générés. Les types de certificats sont déterminés par la politique de l'autorité de certification.

Il découle de ce qui précède qu'une chaîne de certificats est créée depuis l'autorité de certification racine jusqu'au certificat client final.

Fig 2 - Chaîne de certificats

Pour créer une autorité de certification, nous utiliserons un schéma à deux niveaux illustré à la figure 3. Ce schéma comprend une autorité de certification racine (Root CA) et une autorité de certification subordonnée (Issuing CA). L'autorité de certification racine signe son propre certificat SSL et les certificats SSL des autorités de certification subordonnées. Il convient de noter que plus il y a de niveaux utilisés, plus le schéma est sécurisé.

Dans les certificats de l'autorité de certification racine et subordonnée, les points de distribution CRL sont enregistrés dans l'extension. Le point de distribution CRL est une adresse réseau. À cette adresse, un fichier CRL généré par un logiciel spécial doit être téléchargé avec une fréquence donnée.

Fig 3 - Schéma à deux niveaux du centre de certification

Un exemple d'organisation d'un centre de certification sur basé sur Microsoft CA se trouve dans l'article "Déployer une chaîne d'autorités de certification basée sur Microsoft CA".

Obtention d'un certificat SSL de serveur auprès d'une autorité de certification et configuration d'un conteneur de servlet

Un certificat de serveur SSL numérique vous permet de créer une connexion SSL sécurisée qui vous permettra de transférer des données sous forme cryptée.

Pour obtenir un certificat qui sera utilisé par le conteneur de servlet, vous devez générer une demande de signature de certificat (CSR) auprès de l'autorité de certification. La demande contient des informations de base sur l'organisation et la clé publique.

Le champ principal qui doit être rempli correctement s'appelle le Nom Commun (CN). Dans ce champ, vous devez spécifier le nom de domaine ou l'adresse IP de l'hôte sur lequel se trouve le conteneur de servlet.

Pour générer une clé privée et publique et demander un certificat SSL, vous pouvez utiliser l'utilitaire keytool inclus dans le JDK (Java development kit).

À ligne de commande vous devez saisir la commande suivante :

$JAVA_HOME\bin> keytool -genkey -alias -keyalg -keystore

Fig 4 - Création d'un magasin de certificats SSL avec l'utilitaire keytool

Cette commande keytool crée un magasin de certificats nommé , qui stocke la clé privée et le certificat SSL auto-signé, chiffrés à l'aide de l'algorithme RSA. Vous pouvez accéder au certificat SSL par nom .

Lors de la création du référentiel, l'utilitaire keytool vous demandera d'entrer un mot de passe pour accéder au référentiel, des informations sur l'organisation et un mot de passe pour la clé secrète (privée). Lorsque vous répondez à la question clé "Quel est votre nom et prénom ?" vous devez entrer le nom de domaine ou l'adresse IP de l'hôte, car la valeur de réponse sera utilisée comme champ CN du certificat SSL.

Une fois le magasin de clés généré par l'utilitaire keytool, une demande doit être adressée à l'autorité de certification pour signer un certificat SSL. Cela se fait avec la commande :

$JAVA_HOME\bin> keytool -certreq -keyalg RSA -alias -dossier -keystore

Dans le fichier la demande de certificat est enregistrée. Après cela, un formulaire spécial est rempli sur le site Web du centre de certification et le contenu de ce fichier est copié dans l'un des champs.

Pour délivrer un certificat SSL à une organisation, le centre de certification peut exiger des documents constitutifs, un certificat d'enregistrement, etc. A réception d'une demande de certificat SSL, le centre de certification effectue une vérification en comparant les données de la demande de certificat et les documents envoyés , puis signe la demande. La demande signée est un certificat.

Fig 5 - Schéma d'obtention d'un certificat de serveur

Ayant reçu un certificat d'une autorité de certification, il doit être placé dans le magasin, après avoir ajouté les certificats SSL des autorités de certification racine et intermédiaire. Pour ajouter des certificats SSL au stockage, utilisez les commandes suivantes de l'utilitaire keytool :

1) ajouter le certificat de l'AC racine avec l'utilitaire keytool : $JAVA_HOME\bin> keytool -import -trustcacerts -alias rootca -file -keystore

2) ajouter un certificat CA intermédiaire avec l'utilitaire keytool : $JAVA_HOME\bin> keytool -import -trustcacerts -alias subca -file -keystore

3) remplacement d'un certificat auto-signé par un certificat signé dans une autorité de certification (on précise la valeur du paramètre alias, qui a été utilisé lors de la création du référentiel) : $JAVA_HOME\bin> keytool -import -trustcacerts -alias -dossier -keystore

Pour que les applications utilisent une connexion SSL sécurisée, le conteneur de servlet doit être configuré. Pour Apache Tomcat et JBoss, ajoutez le contenu suivant au fichier server.xml :

clientAuth="false" sslProtocol="TLS"

keystoreFile=" "

keystorePass=" "

keystoreType="JKS"

keyAlias=" "

Cette entrée permet au conteneur de servlet d'établir une connexion sécurisée à l'aide d'un certificat SSL numérique, qui se trouve dans le magasin Avec mot de passe par pseudonyme .

La configuration ci-dessus utilise une authentification unidirectionnelle, c'est-à-dire la fourniture d'un certificat SSL numérique n'est requise qu'à partir du serveur. Pour créer une authentification bidirectionnelle, c'est-à-dire lorsque le client fournit également un certificat SSL numérique, vous devez modifier la configuration du conteneur de servlet comme suit :

maxThreads="150" schema="https" secure="true"

clientAuth="true" sslProtocol="TLS"

keystoreFile="

keystorePass=" "

keystoreType="JKS"

keyAlias=" "

truststoreFile="

truststorePass=" "truststoreType="JKS"

Dans cette configuration, le paramètre clientAuth="true" est défini et le magasin de confiance est connecté. La création d'un magasin de certificats SSL de confiance est effectuée par l'utilitaire keytool de la même manière qu'un magasin ordinaire. Vous devez y ajouter des certificats d'autorités de certification qui émettent des certificats numériques, auxquels le conteneur de servlet doit faire confiance. Sinon, les certificats fournis par SSL seront rejetés par le conteneur de servlet lors de l'authentification. on ne leur fera pas confiance.

Vérification des certificats révoqués sur le serveur

Il existe 3 façons de valider un certificat pour révocation : la validation CRL statique, la validation CRL dynamique et la validation OCSP. Considérons ces méthodes plus en détail.

1) Vérification CRL statique

Lors de l'utilisation de ce type de vérification, l'administrateur du serveur doit spécifier dans la configuration le nom du fichier sur le disque local où se trouve la liste des certificats révoqués. Cette liste est téléchargée depuis la ressource réseau de l'autorité de certification.

Pour connecter la CRL dans les conteneurs de servlet Apache Tomcat et Jboss, ajoutez l'attribut suivant au connecteur ssl :

crlFichier="

L'inconvénient de cette méthode est la nécessité pour l'administrateur de surveiller en permanence la mise à jour du fichier CRL.

2) Vérification CRL dynamique

Cette méthode vous permet d'effectuer automatiquement la vérification CRL. Cela nécessite l'attribut CRLDistributionPoint dans la section extensions du certificat SSL fourni par le client, qui spécifie l'URL où se trouve la liste de révocation de certificats (CRL).

Pour que le certificat SSL client soit validé dans la CRL, deux paramètres doivent être configurés pour la machine virtuelle Java. Ces options peuvent être spécifiées dans le script de démarrage du conteneur de servlet. Pour Apache Tomcat et Jboss sous Windows, cela ressemble à ceci :

définir JAVA_OPTS=%JAVA_OPTS% -Dcom.sun.net.ssl.checkRevocation=true

Dcom.sun.security.enableCRLDP=true -Djava.security.debug=certpath

L'option java.security.debug=certpath vous permet d'observer l'authentification du certificat dans la console du conteneur en cours d'exécution.

Les inconvénients de cette méthode incluent le délai d'accès à une ressource protégée associé au téléchargement d'un fichier CRL volumineux.

3) Validation à l'aide du protocole OCSP

OCSP (Protocole d'état de certificat en ligne) a été développé comme une alternative à CRL. Cette vérification est supportée par la technologie JSSE (Java Secure Socket Extension) depuis JDK 5. OCSP fonctionne en conjonction avec CRL. La CRL est accessible lorsqu'une erreur se produit pendant la communication OCSP. Si OCSP a déterminé l'état du certificat SSL, la vérification CRL n'est pas effectuée. Un certificat peut avoir l'un des trois statuts suivants : révoqué, normal, inconnu.

Pour la validation OCSP, le certificat doit contenir un attribut AuthorityInfoAccess dans la section extension avec la valeur de l'URL du répondeur OCSP.

OCSP Responder est un logiciel situé sur une ressource réseau d'une autorité de certification qui traite les demandes pour déterminer l'état d'un certificat et émet des résultats de vérification.

Pour que la machine virtuelle Java vérifie par rapport à OCSP, vous devez définir la propriété ocsp.enable=true. Cette propriété est configurée dans le fichier JAVA_HOME\jre\lib\security\java.security. Dans ce fichier, vous pouvez spécifier l'adresse du répondeur OCSP dans la propriété ocsp.responderURL. Cette propriété sera utilisée s'il n'y a pas d'URL de répondeur dans le certificat SSL.

Obtention d'un certificat SSL client auprès d'une autorité de certification et configuration d'un navigateur Web

Il existe des situations où non seulement le serveur doit prouver qu'il est bien celui qu'il prétend être, mais aussi lorsque le serveur demande au client de prouver son identité avec un certificat numérique.

Vous pouvez obtenir un certificat SSL client sans générer de requête vous-même, en utilisant une autorité de certification. Pour ce faire, sur le site de l'AC, vous devez remplir un formulaire en indiquant le nom, prénom, adresse e-mail, etc. Sur la base de ces données, une demande sera générée. Dans cette situation, la génération d'une clé secrète est confiée à l'autorité de certification. Après vérification des données et signature de la demande, le client reçoit un fichier contenant la clé secrète et le certificat, ainsi que les fichiers des autorités de certification racine et intermédiaire.

Après avoir reçu les fichiers de certificat, vous devez configurer le logiciel qui établira des connexions sécurisées.

Fig 6 - Schéma d'obtention d'un certificat client SSL

Par exemple, installons un certificat SSL client dans un navigateur Web Microsoft Internet Explorer. Pour ce faire, sélectionnez Outils > Options Internet dans le menu. Dans l'onglet "Contenu", sélectionnez "Certificats ...".

Fig 7 - Gestion des certificats SSL dans MS Internet Explorer

Lancez l'assistant d'importation de certificat en cliquant sur le bouton "Importer...". Dans cet assistant, spécifiez le chemin d'accès au certificat de l'autorité de certification racine. Ensuite, sélectionnez le magasin Autorités de certification racines de confiance pour y ajouter le certificat.

De même, des certificats d'AC intermédiaires sont ajoutés au magasin "AC intermédiaires" et un certificat client au magasin "Personnel".

Fig 8 - Chaîne de certification

Pour afficher le contenu du certificat, sélectionnez le certificat SSL souhaité et cliquez sur le bouton "Afficher".

Si un certificat client est obtenu auprès d'une autorité de certification bien connue, alors, en règle générale, ses certificats SSL sont déjà contenus dans les magasins du navigateur Web et il n'est pas nécessaire de les ajouter. Il vous suffit d'ajouter le certificat client.

Si le serveur avec lequel l'interaction sera effectuée a reçu un certificat ne provenant pas d'une autorité de certification commune, le certificat du serveur doit être ajouté aux certificats de confiance afin que le navigateur Web n'affiche pas de message de méfiance à l'égard d'un tel certificat.

Vérification des certificats révoqués sur le client

Si le client utilise le navigateur Web MS Internet Explorer, il peut être configuré pour vérifier les certificats envoyés dans la CRL. Pour cela, rendez-vous dans l'onglet "Avancé" des Options Internet et cochez les deux attributs "Vérifier la révocation des certificats éditeur" et "Vérifier la révocation des certificats serveur".