Station de travail cryptographique basée sur les jetons PKCS # 11. Signature électronique. 2e partie

Dans la première partie de notre histoire, nous avons montré comment, ayant entre nos mains un jeton cryptographique prenant en charge la cryptographie russe, créer une demande de certificat, obtenir et installer un certificat pour un jeton, vérifier la signature électronique du certificat et sa validité par rapport à la liste des certificats révoqués (CRL), supprimer le certificat de jeton, changer les étiquettes, etc. Après avoir créé une demande de certificat (avoir généré une paire de clés), reçu un certificat dans l'autorité de certification et l'avoir défini sur un jeton, rien n'empêche désormais d'utiliser un certificat personnel (certificat avec une paire de clés) pour la signature électronique des documents. Commençons. Tout d'abord, rappelez-vous où se trouve l'utilitaire cryptoarmp11.


Ensuite, exécutez l'utilitaire et cliquez sur le bouton "1. Signer le document":



Nous sélectionnons le fichier avec le document que nous voulons signer et décidons du répertoire où nous enregistrerons le fichier avec la signature (la fin du nom de ce fichier sera .p7s). Nous décidons si le document signé lui-même sera stocké dans le corps de la signature ou non (signature attachée / déconnectée). Et le plus important, nous déterminons le format de la signature. À mon avis, vous pouvez respecter les règles suivantes. S'il s'agit d'un flux de documents d'entreprise interne, où un contrôle strict des ordinateurs est effectué, il suffit d'utiliser le format de signature CAdes -BES, qui comprend, en plus de la signature mathématique, conformément à GOST R 34.10-2012 et le temps de génération de signature (champ Heure actuelle). S'il n'y a pas de contrôle strict sur les ordinateurs (tout le monde peut définir à tout moment sur leur ordinateur) et que la date de signature du document est importante, vous devez utiliser le format CAdes-T ou CAdes-XLT1. Lors de l'utilisation des formats CAdes-T et CAdes-XLT1, le côté externe est impliqué (semblable à attirer un natarius) - un serveur d'horodatage. Avec le format CAdes-T, la réponse du serveur d'horodatage est ajoutée au fichier avec signature électronique (voir le champ "Serveur TSP"). Cette réponse (et c'est également un document au format PKCS # 7, signé par le serveur TSP) vous permet de déterminer à quel moment le document a été signé. Il convient de garder à l'esprit que, souvent, seule une signature mathématique est vérifiée et la validité de la signature elle-même par des horodatages est omise. Pour vérifier la validité de la signature, il est bien sûr nécessaire de vérifier la validité des certificats. Et donc, pour simplifier ce travail, le format de signature CAdes-XLT1 implique l'inclusion dans le fichier de signature de toute preuve de validité de signature au moment de sa création. Ce sont des certificats, y compris des certificats de CA, des serveurs d'horodatage, des serveurs ocsp, ainsi que des listes de certificats révoqués et des réponses de serveurs OCSP. Nous ne nous attarderons pas là-dessus. Qui veut trouver la littérature appropriée.

Nous avons donc décidé du format de la signature et cliqué sur le bouton «Signer le document». Ensuite, nous devons entrer un autre code PIN pour le jeton, puis un avertissement apparaît sur le début de la formation de la signature et la nécessité d'être patient et, enfin, la signature sera créée:



Que faut-il pour créer une signature? Il s'agit, bien sûr, des calculs mathématiques eux-mêmes et de la collecte de diverses données (certificats, CRL, réponses du serveur OCSP, horodatages). Tout, la signature est créée. Dès réception du certificat dans l'AC, assurez-vous de connaître l'adresse du serveur d'horodatage de votre AC. Si des liens vers des certificats d'autorités de certification ( chaîne de certificats), vers des listes de certificats révoqués, ainsi que vers le serveur OCSP sont tirés des certificats, alors l'adresse du serveur d'horodatage devra être saisie manuellement (champ "Serveur TSP").

Comment vous assurer que la signature est créée correctement et que le document peut être transféré dans le boîtier. Sur Internet, vous pouvez trouver différents sites pour vérifier la signature. Certains vérifient uniquement la signature déconnectée, d'autres vérifient tout et informent bien:



Mais dans les deux cas, cela ne vous garantit pas que votre signature sera acceptée dans l'organisation où vous présentez le document signé, par exemple, sur le site Web du Service d'État. Cela est dû au fait que, de différentes manières, la preuve de la validité de la signature au format XLT1 peut être stockée et vérifiée. Ainsi, par exemple, sur le site Web du Service d'État, il est nécessaire que la preuve de la validité du certificat du serveur d'horodatage soit stockée dans la signature reçue du serveur. Et s'ils ne sont pas là, alors, malgré le fait qu'ils puissent être présents dans la signature du document, la signature sur le site Internet des Services de l'Etat sera invalidée. Tout va bien avec notre signature:



Nous allons à la page "2. Travailler avec ES (PKCS7)" et sélectionnons immédiatement le fichier avec la signature créée:



Lors du chargement d'une signature, l'utilitaire remplit les champs appropriés de la fenêtre principale. La capture d'écran le montre bien. Il indique quand la signature a été générée sur l'ordinateur de l'utilisateur (champ «Date de signature:»), quand cette date a été vérifiée sur le serveur d'horodatage (champ «Date de réception de l'horodatage») et quand toutes les preuves de validité ont été collectées (champ «Date d'approbation de l'étiquette) temps »).

Les opérations pouvant être effectuées sur une signature sont également claires. Le plus grand intérêt ici est l'ajout d'une signature à un document précédemment signé. Pour ce faire, il vous suffit de sélectionner un certificat pour ajouter une nouvelle signature (analogue de la visualisation de document) et n'oubliez pas de choisir un serveur TSP:



Et si vous regardez qui a signé le document, il y a maintenant deux signataires. Et les deux signatures ont été vérifiées avec succès sur le site Web des services publics:



À mon avis, l'utilitaire correspond aux aspirations d' avoir un utilitaire pour signer des documents, d'avoir sous la main "des certificats sur des jetons avec une clé irrécupérable qu'ils peuvent tout lire eux-mêmes".

Cependant, nous avons décidé d'aller plus loin et d'inclure dans cet utilitaire une page pour travailler avec le conteneur PKCS # 12 , qui devient de plus en plus populaire. Et si pour signer un document, vous avez besoin du jeton PKCS # 11 et d'une bibliothèque, alors lorsque vous utilisez PKCS # 12, vous n'aurez besoin que du conteneur lui-même. Et bien sûr, l'utilité dont nous avons parlé aujourd'hui. Mais cet utilitaire est absolument autosuffisant et, contrairement à divers CSP, ne corrige aucun noyau et fonctionne sur n'importe quelle plate-forme. Par conséquent, nous passons à la troisième partie .

Source: https://habr.com/ru/post/fr457288/


All Articles