Guten Tag! Lassen Sie uns mit diesem Thema weiterarbeiten ().
Heute widmen wir uns der praktischen Umsetzung. Wir beginnen mit der Einrichtung einer eigenen Zertifizierungsstelle auf Basis der vollwertigen Open-Source-Kryptografiebibliothek OpenSSL. Dieser Algorithmus wurde unter Windows 7 getestet.
Nach der Installation von OpenSSL können wir verschiedene kryptografische Operationen (z. B. das Erstellen von Schlüsseln und Zertifikaten) über die Eingabeaufforderung durchführen.
Der Ablauf ist wie folgt:
- Laden Sie das Installationspaket openssl-1.1.1g herunter.
Es gibt verschiedene Versionen von OpenSSL. In der Dokumentation von Rutoken wurde angegeben, dass mindestens OpenSSL Version 1.1.0 oder neuer erforderlich ist. Ich habe die Version openssl-1.1.1g verwendet. OpenSSL kann von der offiziellen Website heruntergeladen werden, aber für eine einfachere Installation sollten Sie die Installationsdatei für Windows im Internet suchen. Ich habe das für Sie erledigt:
Scrollen Sie auf der Seite nach unten und laden Sie Win64 OpenSSL v1.1.1g EXE 63MB Installer herunter. - Installieren Sie openssl-1.1.1g auf Ihrem Computer.
Die Installation sollte auf dem standardmäßigen Pfad erfolgen, der automatisch ins Verzeichnis C:Program Files angegeben wird. Die Software wird im Ordner OpenSSL-Win64 installiert. - Um openSSL nach Ihren Bedürfnissen zu konfigurieren, gibt es die Datei openssl.cfg. Diese Datei befindet sich im Verzeichnis C:Program FilesOpenSSL-Win64bin, sofern Sie openSSL wie im vorherigen Punkt beschrieben installiert haben. Navigieren Sie zum Ordner, in dem openssl.cfg gespeichert ist, und öffnen Sie diese Datei beispielsweise mit Notepad++.
- Sie haben sicherlich erraten, dass die Konfiguration der Zertifizierungsstelle durch Änderungen im Inhalt der Datei openssl.cfg erfolgen wird, und damit liegen Sie genau richtig. Dafür muss der Abschnitt [ ca ] konfiguriert werden. Im Datei openssl.cfg finden Sie den Abschnitt, den wir ändern werden, unter: [ ca ].
- Jetzt zeige ich ein Beispiel für die Konfiguration mit einer Beschreibung:
[ ca ] standard_ca = CA_default [ CA_default ] verzeichnis = /Users/benutzer/bin/openSSLca/demoCA zertifikate = $verzeichnis/certs crl_verzeichnis = $verzeichnis/crl datenbank = $verzeichnis/index.txt neue_zertifikate = $verzeichnis/newcerts zertifikat = $verzeichnis/ca.crt seriennummer = $verzeichnis/private/serial crlnummer = $verzeichnis/crlnumber crl = $verzeichnis/crl.pem privater_schlüssel = $verzeichnis/private/ca.key x509_erweiterungen = usr_certJetzt müssen Sie das Verzeichnis demoCA und die Unterverzeichnisse erstellen, wie im obigen Beispiel gezeigt. Platzieren Sie dieses Verzeichnis unter dem Pfad, der in dir angegeben ist (bei mir /Users/username/bin/openSSLca/demoCA).
Es ist äußerst wichtig, dir korrekt anzugeben – dies ist der Pfad zum Verzeichnis, in dem sich unsere Zertifizierungsstelle befinden wird. Dieses Verzeichnis muss sich unbedingt unter /Users befinden (also im Benutzerkonto eines beliebigen Nutzers). Wenn Sie dieses Verzeichnis beispielsweise in C:Program Files ablegen, erkennt das System die Datei mit den Einstellungen openssl.cfg nicht (zumindest war das bei mir so).
$dir – hier wird der Pfad angegeben, der in dir genannt ist.
Ein weiterer wichtiger Punkt ist, eine leere Datei index.txt zu erstellen. Ohne diese Datei funktionieren die Befehle „openSSL ca …“ nicht.
Sie benötigen außerdem die Datei serial, den privaten Schlüssel der Wurzel (ca.key) und das Wurzelzertifikat (ca.crt). Der Prozess zum Erhalt dieser Dateien wird später beschrieben.
- Wir integrieren die von Rutoken bereitgestellten Verschlüsselungsalgorithmen.
Diese Integration erfolgt in der Datei openssl.cfg.- Zuerst müssen die erforderlichen Algorithmen von Rutoken heruntergeladen werden. Dies sind die Dateien rtengine.dll, rtpkcs11ecp.dll.
Dafür laden wir das Rutoken SDK herunter: .Das RUTOKEN SDK bietet alles Notwendige für Entwickler, die RUTOKEN ausprobieren möchten. Es enthält neben einzelnen Beispielen für die Arbeit mit RUTOKEN in verschiedenen Programmiersprachen auch einige Bibliotheken. Unsere Bibliotheken rtengine.dll und rtpkcs11ecp.dll finden Sie im RUTOKEN SDK unter folgendem Pfad:
sdk/openssl/rtengine/bin/windows-x86_64/lib/rtengine.dll
sdk/pkcs11/lib/windows-x86_64/rtpkcs11ecp.dllEin sehr wichtiger Punkt: Die Bibliotheken rtengine.dll und rtpkcs11ecp.dll funktionieren nicht ohne den installierten Treiber für RUTOKEN. Außerdem muss RUTOKEN zwingend mit dem Computer verbunden sein. (Informationen zur Installation aller notwendigen Komponenten für RUTOKEN finden Sie im vorherigen Abschnitt des Artikels )
- Die Bibliotheken rtengine.dll und rtpkcs11ecp.dll können an beliebigen Stellen im Benutzerkonto gespeichert werden.
- Wir geben die Pfade zu diesen Bibliotheken in der openssl.cfg an. Öffnen Sie dazu die Datei openssl.cfg und fügen Sie die folgende Zeile am Anfang der Datei hinzu:
openssl_conf = openssl_defAm Ende der Datei muss Folgendes hinzugefügt werden:
[ openssl_def ] engines = engine_section [ engine_section ] rtengine = gost_section [ gost_section ] dynamic_path = /Users/username/bin/sdk-rutoken/openssl/rtengine/bin/windows-x86_64/lib/rtengine.dll MODULE_PATH = /Users/username/bin/sdk-rutoken/pkcs11/lib/windows-x86_64/rtpkcs11ecp.dll RAND_TOKEN = pkcs11:manufacturer=Aktiv%20Co.;model=Rutoken%20ECP default_algorithms = CIPHERS, DIGEST, PKEY, RANDdynamic_path – Bitte geben Sie Ihren Pfad zur Bibliothek rtengine.dll an.
MODULE_PATH — Bitte geben Sie Ihren Pfad zur Bibliothek rtpkcs11ecp.dll an.
- Zuerst müssen die erforderlichen Algorithmen von Rutoken heruntergeladen werden. Dies sind die Dateien rtengine.dll, rtpkcs11ecp.dll.
- Fügen Sie Umgebungsvariablen hinzu.
Es ist wichtig, eine Umgebungsvariable hinzuzufügen, die auf den Pfad zur Konfigurationsdatei openssl.cfg verweist. In meinem Fall wurde die Variable OPENSSL_CONF mit dem Pfad C:Program FilesOpenSSL-Win64binopenssl.cfg erstellt.
In die Variable path muss der Pfad zum Verzeichnis angegeben werden, in dem sich openssl.exe befindet, in meinem Fall ist das: C:Program FilesOpenSSL-Win64bin.
- Nun können wir zum Punkt 5 zurückkehren und die fehlenden Dateien für das Verzeichnis demoCA erstellen.
- Die erste wichtige Datei, ohne die nichts funktionieren wird, ist serial. Es handelt sich um eine dateilose Datei, deren Wert 01 sein muss. Sie können diese Datei selbst erstellen und 01 hineinschreiben. Sie können sie auch aus dem Rutoken SDK herunterladen unter dem Pfad sdk/openssl/rtengine/samples/tool/demoCA/.
Im Verzeichnis demoCA befindet sich die Datei serial, die wir benötigen. - Erstellen Sie den privaten Root-Schlüssel.
Hierzu verwenden wir den Befehl der OpenSSL-Bibliothek, den Sie direkt in der Eingabeaufforderung ausführen müssen:openssl genpkey -algorithm gost2012_256 -pkeyopt paramset:A -out ca.key - Wir erstellen das Wurzelzertifikat.
Dafür benutzen wir den folgenden Befehl der OpenSSL-Bibliothek:openssl req -utf8 -x509 -key ca.key -out ca.crtBitte beachten Sie, dass zur Erstellung des Wurzelzertifikats der Wurzelprivatschlüssel benötigt wird, der im vorherigen Schritt erstellt wurde. Daher muss die Eingabeaufforderung im selben Verzeichnis gestartet werden.
Jetzt sind alle fehlenden Dateien für die vollständige Konfiguration des demoCA-Verzeichnisses vorhanden. Platzieren Sie die erstellten Dateien in den in Punkt 5 angegebenen Verzeichnissen.
- Die erste wichtige Datei, ohne die nichts funktionieren wird, ist serial. Es handelt sich um eine dateilose Datei, deren Wert 01 sein muss. Sie können diese Datei selbst erstellen und 01 hineinschreiben. Sie können sie auch aus dem Rutoken SDK herunterladen unter dem Pfad sdk/openssl/rtengine/samples/tool/demoCA/.
Wir gehen davon aus, dass nach der Durchführung aller 8 Punkte unsere Zertifizierungsstelle vollständig konfiguriert ist.
Im nächsten Teil erläutere ich, wie wir mit der Zertifizierungsstelle arbeiten werden, um das, was im .
Quelle: habr.com
