Kryptografische Workstation basierend auf PKCS # 11-Token. Elektronische Signatur. Teil 2

Im ersten Teil unserer Geschichte haben wir gezeigt, wie wir mit einem kryptografischen Token mit Unterstützung für die russische Kryptografie eine Anforderung für ein Zertifikat erstellen, ein Zertifikat für ein Token erhalten und installieren, die elektronische Signatur des Zertifikats und seine Gültigkeit anhand der Liste der widerrufenen Zertifikate (CRL) überprüfen und das Zertifikat aus löschen können Token, Etiketten ändern usw. Nachdem wir eine Zertifikatanforderung erstellt (ein Schlüsselpaar generiert), ein Zertifikat in der Zertifizierungsstelle erhalten und auf ein Token festgelegt haben, hindert uns nichts daran, jetzt ein persönliches Zertifikat (Zertifikat mit einem Schlüsselpaar) für die elektronische Signatur von Dokumenten zu verwenden. Fangen wir an. Denken Sie zunächst daran, wo sich das Dienstprogramm cryptoarmp11 befindet.


Führen Sie als Nächstes das Dienstprogramm aus und klicken Sie auf die Schaltfläche "1. Dokument signieren":



Wir wählen die Datei mit dem Dokument aus, das wir signieren möchten, und entscheiden, in welchem ​​Verzeichnis wir die Datei mit der Signatur speichern möchten (das Ende des Namens dieser Datei lautet .p7s). Wir entscheiden, ob das signierte Dokument selbst im Signaturtext gespeichert wird oder nicht (angehängte / getrennte Signatur). Und am wichtigsten ist, dass wir das Format der Signatur bestimmen. Meiner Meinung nach können Sie die folgenden Regeln einhalten. Wenn es sich um einen internen Unternehmensdokumentenfluss handelt, bei dem eine strikte Kontrolle über Computer durchgeführt wird, reicht es aus, das CAdes- BES-Signaturformat zu verwenden, das zusätzlich zur mathematischen Signatur gemäß GOST R 34.10-2012 und der Signaturgenerierungszeit (Feld Aktuelle Zeit) enthält. Wenn es keine strikte Kontrolle über Computer gibt (jeder kann jederzeit auf seinem Computer einstellen) und das Datum der Unterzeichnung des Dokuments wichtig ist, müssen Sie das CAdes-T- oder CAdes-XLT1-Format verwenden. Bei Verwendung der Formate CAdes-T und CAdes-XLT1 ist die externe Seite beteiligt (ähnlich wie beim Anziehen eines Natarius) - ein Zeitstempelserver. Beim CAdes-T-Format wird die Antwort des Zeitstempelservers mit elektronischer Signatur zur Datei hinzugefügt (siehe Feld "TSP-Server"). Mit dieser Antwort (und dies ist auch ein Dokument im PKCS # 7-Format, das vom TSP-Server signiert wurde) können Sie bestimmen, zu welchem ​​Zeitpunkt das Dokument signiert wurde. Es ist zu beachten, dass häufig nur eine mathematische Signatur überprüft wird und die Gültigkeit der Signatur selbst durch Zeitstempel weggelassen wird. Um die Gültigkeit der Unterschrift zu überprüfen, ist natürlich eine Überprüfung der Gültigkeit der Zertifikate erforderlich. Um diese Arbeit zu vereinfachen, impliziert das CAdes-XLT1-Signaturformat die Aufnahme aller Nachweise für die Gültigkeit der Signatur zum Zeitpunkt ihrer Erstellung in die Signaturdatei. Hierbei handelt es sich um Zertifikate, einschließlich CA-Zertifikate, Zeitstempelserver, OCSP-Server sowie Listen mit widerrufenen Zertifikaten und Antworten von OCSP-Servern. Wir werden nicht weiter darauf eingehen. Wer will die passende Literatur finden.

Also haben wir uns für das Format der Signatur entschieden und auf die Schaltfläche „Signieren des Dokuments“ geklickt. Als nächstes müssen wir einen anderen PIN-Code für das Token eingeben, dann erscheint eine Warnung über den Beginn der Bildung der Signatur und die Notwendigkeit, geduldig zu sein, und schließlich wird die Signatur erstellt:



Was braucht es, um eine Signatur zu erstellen? Dies sind natürlich die mathematischen Berechnungen selbst und die Erfassung verschiedener Daten (Zertifikate, CRLs, OCSP-Serverantworten, Zeitstempel). Alles, die Signatur wird erstellt. Stellen Sie nach Erhalt des Zertifikats in der Zertifizierungsstelle sicher, dass Sie die Adresse des Zeitstempelservers Ihrer Zertifizierungsstelle herausfinden. Wenn aus den Zertifikaten Links zu Zertifikaten von Zertifizierungsstellen (Zertifikatskette), zu Listen widerrufener Zertifikate sowie zum OCSP-Server entnommen werden, muss die Adresse des Zeitstempelservers manuell eingegeben werden (Feld "TSP-Server").

So stellen Sie sicher, dass die Signatur korrekt erstellt wurde und das Dokument in den Fall übertragen werden kann. Im Internet finden Sie verschiedene Websites, um die Signatur zu überprüfen. Einige von ihnen überprüfen nur die getrennte Signatur, andere überprüfen alles und informieren gut:



In beiden Fällen garantiert dies jedoch nicht, dass Ihre Unterschrift bei der Organisation akzeptiert wird, bei der Sie das unterschriebene Dokument präsentieren, z. B. auf der Website des State Service. Dies liegt daran, dass auf unterschiedliche Weise Nachweise für die Gültigkeit der Signatur im XLT1-Format gespeichert und überprüft werden können. So ist es beispielsweise auf der Website des Staatsdienstes erforderlich, dass der Nachweis der Gültigkeit des Zertifikats des Zeitstempelservers in der vom Server empfangenen Signatur gespeichert wird. Und wenn sie nicht da sind, wird die Unterschrift auf der Website der staatlichen Dienste ungültig, obwohl sie möglicherweise in der Unterschrift des Dokuments enthalten sind. Mit unserer Unterschrift ist alles in Ordnung:



Wir gehen zur Seite „2. Arbeiten mit ES (PKCS7)“ und wählen sofort die Datei mit der erstellten Signatur aus:



Beim Laden einer Signatur füllt das Dienstprogramm die entsprechenden Felder im Hauptfenster aus. Der Screenshot zeigt dies gut. Es zeigt an, wann die Signatur auf dem Computer des Benutzers generiert wurde (Feld „Signaturdatum:“), wann dieses Datum auf dem Zeitstempelserver überprüft wurde (Feld „Datum des Eingangs des Zeitstempels“) und wann alle Gültigkeitsnachweise gesammelt wurden (Feld „Datum der Genehmigung des Etiketts“). Zeit ”).

Es ist auch klar, welche Operationen an einer Signatur ausgeführt werden können. Von größtem Interesse ist hier das Hinzufügen einer Unterschrift zu einem zuvor unterzeichneten Dokument. Wählen Sie dazu einfach ein Zertifikat aus, um eine neue Signatur hinzuzufügen (analog zum Anzeigen von Dokumenten), und vergessen Sie nicht, einen TSP-Server auszuwählen:



Und wenn Sie sich ansehen, wer das Dokument unterschrieben hat, dann gibt es jetzt zwei Unterzeichner. Beide Unterschriften wurden auf der Website des öffentlichen Dienstes erfolgreich überprüft:



Meiner Meinung nach entspricht das Dienstprogramm den Bestrebungen , ein Dienstprogramm zum Signieren von Dokumenten zu haben und "Zertifikate auf Token mit einem nicht wiederherstellbaren Schlüssel zur Hand zu haben, mit denen sie alles selbst lesen können".

Wir haben uns jedoch entschlossen, noch weiter zu gehen und in dieses Dienstprogramm eine Seite für die Arbeit mit dem PKCS # 12- Container aufzunehmen, der immer beliebter wird. Und wenn Sie jetzt zum Signieren eines Dokuments das PKCS # 11-Token und eine Bibliothek dafür benötigen, benötigen Sie bei Verwendung von PKCS # 12 nur den Container selbst. Und natürlich das Dienstprogramm, über das wir heute gesprochen haben. Dieses Dienstprogramm ist jedoch absolut autark und patcht im Gegensatz zu verschiedenen CSPs keinen Kernel und funktioniert auf keiner Plattform. Deshalb fahren wir mit dem dritten Teil fort .

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


All Articles