Das Speichern von Schlüsseln auf Token und Smartcards bietet zusätzlichen Schutz vor externen und internen Eindringlingen, einschließlich solcher, die einen bestimmten Zugriff auf das Informationssystem und die Ausrüstung haben.
Heute werde ich Ihnen erklären, wie wir Verschlüsselungsschlüssel und elektronische Signaturen in unseren Informationssystemen schützen, und ich werde dies in einer detaillierten, gut illustrierten Anleitung zum Einrichten von SUSE Linux Enterprise Server 12 SP3 für die Arbeit mit dem Aladdin JaCarta PKI-Token und CryptoPro CSP KC2 4.0.9944 tun.
Es gab mehrere Gründe für die Veröffentlichung dieses Handbuchs:
Grund 1
Die offizielle Dokumentation zu
Aladdin-RD JaCarta ist besser für Astra Linux- und ALT Linux-Betriebssysteme geeignet, die vom Verteidigungsministerium, FSTEC und dem FSB als Mittel zum Schutz von Informationen zertifiziert wurden.
Grund 2
Die beste Anleitung zum Einrichten der Interaktion mit Hardwaremedien unter Linux stammt auch von
wiki.astralinux.ru - Arbeiten mit CryptoPro CSPGrund 3
UPD 16.04.2019: Bei der Einrichtung der Umgebung und der Ausrüstung stellte sich heraus, dass der zuerst verfügbare Netzbetreiber erwartungsgemäß überhaupt nicht JaCarta PKI Nano war, sondern ein Gerät, das im eToken PRO-Modus des SafeNet Authentication Client betrieben wird.
UPD 16.04.2019: Einmal brauchte die Bank ein Gerät, das in derselben Infrastruktur wie eToken PRO (Java) arbeiten konnte. Als solches Gerät hat die Firma "ZAO Aladdin R.D." bot einen JaCarta PRO-Token an, der von der Bank ausgewählt wurde. Bei der Erstellung des Artikels und der Versanddokumente hat ein Mitarbeiter des Unternehmens jedoch einen Fehler gemacht. Anstelle des JaCarta PRO-Modells wurde JaCarta PKI versehentlich in den Artikel und die Versanddokumente eingegeben.
UPD 16.04.2019: Ich danke der Firma Aladdin R.D. für ihre Hilfe bei der
Ermittlung und Feststellung der Wahrheit.
Dieser Fehler enthält keine politischen und versteckten Bedeutungen, sondern nur den technischen Fehler eines Mitarbeiters bei der Erstellung von Dokumenten. Token JaCarta PRO ist ein Produkt der Firma Aladdin R.D. Das Applet für den Funktionsteil wurde von der Firma „ZAO Aladdin R.D.“ entwickelt.
Dieser eToken PRO war für eine Party, die vor dem 1. Dezember 2017 veröffentlicht wurde.
Nach diesem Datum wurde die Firma "Aladdin R.D." Verkauf von eToken PRO (Java) -Geräten eingestellt.
Ich muss sagen, dass die Arbeit mit ihm über die entsprechenden Treiber konfiguriert wurde -
SafenetAuthenticationClient-10.0.32-0.x86_64 , die nur zur Unterstützung von Aladdin R.D. auf einer separaten Online-Bewerbung.
In CryptoPro CSP musste das
Paket cprocsp-rdr-emv-64 | installiert werden, um mit diesem Token arbeiten zu können
EMV / Gemalto-Unterstützungsmodul .
Dieses Token wurde ermittelt und beantwortet. Mit dem Dienstprogramm
SACTools aus dem Paket
SafenetAuthenticationClient konnte es initialisiert werden. Bei der Arbeit mit dem Schutz kryptografischer Informationen verhielt er sich jedoch äußerst seltsam und unvorhersehbar.
Auf dem Befehl wurde Folgendes angezeigt:
csptest -keyset -cont '\\.\Aladdin RD JaCarta [SCR Interface] (205D325E5842) 00 00\alfa_shark' -check
Die Antwort war, dass alles in Ordnung war:
[ErrorCode: 0x00000000]
Unmittelbar nach dem Versuch, die Tasten programmgesteuert zu lesen, führte dieselbe Überprüfung zu einem Fehler:
[ErrorCode: 0x8009001a]
Gemäß der Liste der Fehlercodes des Objektmodells der Komponenten von Microsoft
COM-Fehlercodes (Sicherheit und Einrichtung) NTE_KEYSET_ENTRY_BAD 0x8009001A Keyset as registered is invalid.
"Ungültiger Schlüsselsatz" - Der Grund für diese Meldung kann entweder im alten Gemalto-Chip, in der Firmware und im Applet oder in den Treibern für das Betriebssystem liegen, die die neuen ES-Generierungsstandards und Hash-Funktionen GOST R 34.10-2012 und GOST R 34.11- nicht unterstützen. 2012.
In diesem Zustand wurde das Token blockiert. Der kryptografische Informationsschutzindex zeigte den irrelevanten Zustand des Lesers und des Schlüsselcontainers an. Das Neustarten des
cprocsp- Dienstes
für kryptografische Anbieter, der
pcscd-Token- und Smartcard-
Dienste und des gesamten Betriebssystems hat nicht geholfen, sondern nur die Neuinitialisierung.
Fairerweise sollte beachtet werden, dass SafeNet eToken PRO mit den Schlüsseln GOST R 34.10-2001 unter Windows 7 und 10 ordnungsgemäß funktioniert hat.
Sie können versuchen, den
CryptoPro CSP 4.0 FCN (Gemalto) zu installieren. Ziel ist es jedoch, unsere ES- und Verschlüsselungsschlüssel mit von der JaCarta-Familie zertifizierten FSB- und FSTEC-Produkten zu schützen, die neue Standards unterstützen.
Das Problem wurde gelöst, indem der echte JaCarta PKI-Token in das (XL) reguläre Gehäuse gesteckt wurde.
Es wurde jedoch viel Zeit darauf verwendet, Safenet eToken PRO zum Laufen zu bringen. Ich wollte darauf aufmerksam machen und vielleicht jemanden davor schützen.
Grund 4
Manchmal müssen Sie selbst zu alten Artikeln und Anweisungen zurückkehren. Dies ist praktisch, wenn die Informationen in einer externen Quelle gespeichert werden. Also danke an Habr für die Gelegenheit.
Setup-Anleitung
Nach der Installation des JaCarta PKI-Tokens am USB-Anschluss des Servers und dem Starten des Systems überprüfen wir, ob das neue Gerät erkannt wurde und in der Liste angezeigt wird:
lsusb

In unserem Fall handelt es sich um das
Bus 004-Gerät 003: ID 24dc: 0101Zur Diagnose von Lesern können Sie das
Dienstprogramm pcsc-tools aus dem Projekt security: chipcard (software.opensuse.org) verwenden .
Es wird durch den Befehl gestartet:
pcsc_scan

Bis alle erforderlichen Pakete installiert sind, werden keine Informationen zum Token angezeigt.
Installation von Treibern und Software für die Arbeit mit JaCarta PKI
Auf der Support-Seite der Website "Aladdin R.D." Wir laden
Dokumentation und Software herunter
, um nur mit JaCarta PKI zu arbeitenGemäß dem JaCarta for Linux-Implementierungshandbuch, Abschnitt 4.2, besteht der erste Schritt darin,
pcsc-lite ,
ccid und
libusb zu installieren.
Damit das JaCarta-Verwaltungsdienstprogramm funktioniert, müssen die folgenden Komponenten installiert sein:
- PC / SC Lite - eine Zwischenschicht für den Zugriff auf Smartcards gemäß dem PC / SC-Standard, pcsc-lite-Paket.
- Ccid- und libusb-Bibliotheken für die Arbeit mit USB-Sticks, Smartcards und Smartcard-Lesegeräten.
Wir prüfen die Verfügbarkeit dieser Pakete und installieren:
zypper search pcsc-lite

zypper search libusb

zypper install pcsc-lite


zypper search CCID

zypper install pcsc-ccid

zypper search CCID

zypper install libusb

Infolgedessen wurde das pcsc-lite-Paket aktualisiert, CCID installiert, libusb keine Aktion erforderlich.
Die folgenden zwei Befehle installieren das Paket mit Treibern und Software direkt für die Arbeit mit JaCarta PKI:
zypper install idprotectclientlib-637.03-0.x86_64.rpm

zypper install idprotectclient-637.03-0.x86_64.rpm

Überprüfen Sie, ob die Treiber und die Software für JaCarta PKI installiert sind:
zypper search idprotectclient

Beim Versuch, SafeNet eToken PRO zum Laufen zu bringen, habe ich Informationen gefunden, dass das in SLES vorinstallierte Paket
openct - Library for Smart Card Readers möglicherweise mit der
PCSC Smart Cards Library von pcsc-lite in Konflikt
steht , für deren Installation Aladdin R.D.
zypper search openct

Deshalb entfernen wir das openct-Paket:
rpm -e openct
Jetzt sind alle notwendigen Treiber und Software für die Arbeit mit dem Token installiert.
Wir führen Diagnosen mit dem
Dienstprogramm pcsc-tools durch und stellen sicher, dass JaCarta im Betriebssystem erkannt wird:
pcsc_scan

Installieren von CryptoPro CSP-Paketen
Bei der standardmäßigen Installation von CryptoPro CSP fehlen die erforderlichen Pakete für die Arbeit mit Token und Smartcards.
zypper search cprocsp

Installieren der
JaCarta-Komponenten für die CryptoPro CSP- Unterstützungskomponente
im CSPzypper install cprocsp-rdr-jacarta-64-3.6.408.683-4.x86_64.rpm

Einige Komponenten haben Abhängigkeiten. Wenn Sie beispielsweise versuchen, das SafeNet eToken PRO-Supportpaket
cprocsp-rdr-emv-64-4.0.9944-5.x86_64.rpm - EMV / Gemalto-Supportmodul zu installieren, wird eine Meldung
angezeigt, dass zuerst die Basiskomponente des CSP-Reader-Support-
cprocsp installiert werden
muss -rdr-pcsc-64-4.0.9944-5.x86_64.rpm - PC / SC-Komponenten für CryptoPro CSP-Reader :
zypper install cprocsp-rdr-emv-64-4.0.9944-5.x86_64.rpm Loading repository data... Reading installed packages... Resolving package dependencies... Problem: nothing provides cprocsp-rdr-pcsc-64 >= 4.0 needed by cprocsp-rdr-emv-64-4.0.9944-5.x86_64 Solution 1: do not install cprocsp-rdr-emv-64-4.0.9944-5.x86_64 Solution 2: break cprocsp-rdr-emv-64-4.0.9944-5.x86_64 by ignoring some of its dependencies Choose from above solutions by number or cancel [1/2/c] (c): c
Installieren Sie die grundlegenden Support-Pakete für Leser und wichtige Medien:
zypper install cprocsp-rdr-pcsc-64-4.0.9944-5.x86_64.rpm

zypper install lsb-cprocsp-pkcs11-64-4.0.9944-5.x86_64.rpm
Jetzt können Sie Module für die Arbeit mit anderen Arten von Medien und GUI-Komponenten installieren:
zypper install cprocsp-rdr-emv-64-4.0.9944-5.x86_64.rpm

zypper install cprocsp-rdr-novacard-64-4.0.9944-5.x86_64.rpm zypper install cprocsp-rdr-mskey-64-4.0.9944-5.x86_64.rpm zypper install cprocsp-rdr-gui-gtk-64-4.0.9944-5.x86_64.rpm

Überprüfen Sie die endgültige Konfiguration von CryptoPro CSP:
zypper search cprocsp Loading repository data... Reading installed packages...
S | Name | Summary | Type
---+-----------------------------+----------------------------------------------------+--------
i+ | cprocsp-curl-64 | CryptoPro Curl shared library and binaris. Build 9944. | package
i+ | cprocsp-rdr-emv-64 | EMV/Gemalto support module | package
i+ | cprocsp-rdr-gui-gtk-64 | GUI components for CryptoPro CSP readers. Build 9944. | package
i+ | cprocsp-rdr-jacarta-64 | JaCarta components for CryptoPro CSP. Build 683. | package
i+ | cprocsp-rdr-mskey-64 | Mskey support module | package
i+ | cprocsp-rdr-novacard-64 | Novacard support module | package
i+ | cprocsp-rdr-pcsc-64 | PC/SC components for CryptoPro CSP readers. Build 9944.| package
i+ | lsb-cprocsp-base | CryptoPro CSP directories and scripts. Build 9944. | package
i+ | lsb-cprocsp-ca-certs | CA certificates. Build 9944. | package
i+ | lsb-cprocsp-capilite-64 | CryptoAPI lite. Build 9944. | package
i+ | lsb-cprocsp-kc2-64 | CryptoPro CSP KC2. Build 9944. | package
i+ | lsb-cprocsp-pkcs11-64 | CryptoPro PKCS11. Build 9944. | package
i+ | lsb-cprocsp-rdr-64 | CryptoPro CSP readers. Build 9944. | package

Um die Änderungen zu übernehmen, starten wir den Dienst für kryptografische Anbieter neu und überprüfen seinen Status:
/etc/init.d/cprocsp restart /etc/init.d/cprocsp status

Einrichtung und Diagnose von CryptoPro CSP
Überprüfen Sie mit den folgenden Befehlen, ob der kryptografische Anbieter unser Token und andere verfügbare Medientypen sieht:
/opt/cprocsp/bin/amd64/csptest -card -enum -v –v

/opt/cprocsp/bin/amd64/csptest -enum -info -type PP_ENUMREADERS | iconv -f cp1251

/opt/cprocsp/sbin/amd64/cpconfig -hardware reader -view -f cp1251
Aladdin RD JaCarta [SCR-Schnittstelle] (000000000000) 00 00 ist unser Medium.
Befolgen Sie die Anweisungen von
CryptoPro CSP für Linux. Konfigurieren Sie die Registrierung beim kryptografischen Anbieter:
/opt/cprocsp/sbin/amd64/cpconfig -hardware reader -add "Aladdin RD JaCarta [SCR Interface] (000000000000) 00 00"

Als Ergebnis der Ausführung in der Konfigurationsdatei
/etc/opt/cprocsp/config64.iniEin Eintrag wird zum Abschnitt [KeyDevices \ PCSC] hinzugefügt:
[KeyDevices\PCSC\"Aladdin RD JaCarta [SCR Interface] (000000000000) 00 00"\Default]
Um die Anforderungen des CryptoPro CSP-Formulars, der Nutzungsbedingungen und des Sicherheitsadministratorhandbuchs zu erfüllen:
Die Verwendung von CryptoPro CSP CIP Version 4.0 bei deaktiviertem erweiterten Schlüsselsteuerungsmodus ist nicht zulässig. Die Aufnahme dieses Modus ist in den Dokumenten ZHTYA.00087-01 91 02 beschrieben. Sicherheitsadministratorhandbuch.
Es ist erforderlich, eine verbesserte Kontrolle der Schlüsselverwendung zu ermöglichen:
/opt/cprocsp/sbin/amd64/cpconfig -ini '\config\parameters' -add long StrengthenedKeyUsageControl 1
Überprüfen Sie, ob der Modus aktiviert ist:
cat /etc/opt/cprocsp/config64.ini | grep StrengthenedKeyUsageControl

Wir starten den Dienst des kryptografischen Anbieters neu:
/etc/init.d/cprocsp restart /etc/init.d/cprocsp status
Nach dem Neustart prüfen wir, ob bei der Arbeit des Anbieters mit wichtigen Netzbetreibern keine Fehler vorliegen:
/opt/cprocsp/bin/amd64/csptest -keyset –verifycontext

/opt/cprocsp/bin/amd64/csptest -keyset -verifycontext -enum –unique
CSP (Type:80) v4.0.9017 KC2 Release Ver:4.0.9944 OS:Linux CPU:AMD64 FastCode:REA AcquireContext: OK. HCRYPTPROV: 16052291 alfa_shark1 |SCARD\JACARTA_4E3900154029304C\CC00\E9F6 OK. Total: SYS: 0.000 sec USR: 0.000 sec UTC: 4.560 sec [ErrorCode: 0x00000000]
Arbeiten Sie mit JaCarta PKI Token
Lassen Sie uns das Xming-Programm (X11-Weiterleitung) an unserer Station ausführen, damit wir die grafischen Schnittstellen der erforderlichen Dienstprogramme über SSH öffnen und damit arbeiten können.

Nach der Installation der
IDProtectClient - Software für die Arbeit mit JaCarta PKI wurden zwei Dateien auf dem Server im Ordner
/ usr / share / applications angezeigt:
Athena-IDProtectClient.desktop
Athena-IDProtectManager.desktop
Dies sind Verknüpfungen, in denen Sie die Startoptionen für die Dienstprogramme
Exec = / usr / bin / SACTools anzeigen könnenFühren Sie das Dienstprogramm
IDProtectPINTool aus .
Damit werden PIN-Zugangscodes für das Token festgelegt und geändert.
/usr/bin/IDProtectPINTool

Bei der erstmaligen Initialisierung des Tokens ist
standardmäßig ein Link hilfreich, der
PIN-Codes (Kennwörter) der wichtigsten Träger enthältMit
dem Programm
IDProtect_Manager können
Sie Informationen zum Token und Container mit Schlüsseln und Zertifikat anzeigen:
/usr/bin/IDProtect_Manager

Um mit den Schlüsseln auf den Container zuzugreifen, müssen Sie das Passwort eingeben:


Für die Arbeit mit
SafeNet Authentication Client eToken PRO gibt es ähnliche Programme -
SafeNet Authentication Client Monitor und
SafeNet Authentication Client Tools , die wie
folgt ausgeführt werden:
/usr/bin/SACMonitor /usr/bin/SACTools

Es ist bequemer, Vorgänge direkt mit Schlüsselcontainern in der Schnittstelle des Kryptografieanbieters CryptoPro JavaCSP auszuführen:
/jdk1.8.0_181/jre/bin/java ru.CryptoPro.JCP.ControlPane.MainControlPane

Um Informationen zum Inhalt des Containers mit den Schlüsseln anzuzeigen, können Sie den folgenden Befehl ausführen:
/opt/cprocsp/bin/amd64/csptest -keyset -cont '\\.\Aladdin RD JaCarta [SCR Interface] (000000000000) 00 00\alfa_shark1' -info
Verwenden Sie zur Diagnose des Containers denselben Befehl mit dem Schalter –check
/opt/cprocsp/bin/amd64/csptest -keyset -cont '\\.\Aladdin RD JaCarta [SCR Interface] (000000000000) 00 00\alfa_shark' –check
Sie müssen das Passwort für den Container eingeben:


Abrufen von Software-Schlüsseln
Im Allgemeinen lautet ein Beispiel für das Abrufen eines privaten Schlüssels und eines Zertifikats mit öffentlichem Schlüssel aus einem Container auf einem Token mithilfe von CryptoPro Java CSP wie folgt:
import ru.CryptoPro.JCP.KeyStore.JCPPrivateKeyEntry; import ru.CryptoPro.JCP.params.JCPProtectionParameter; KeyStore keyStore = KeyStore.getInstance("Aladdin RD JaCarta [SCR Interface] (000000000000) 00 00", "JCSP"); keyStore.load(null, null); JCPPrivateKeyEntry entry = null; X509Certificate certificate = null; PrivateKey privateKey = null; try { entry = (JCPPrivateKeyEntry) keyStore.getEntry(keyAlias, new JCPProtectionParameter(pwd)); certificate = (X509Certificate) entry.getCertificate(); privateKey = entry.getPrivateKey(); } catch (UnrecoverableEntryException | NullPointerException e) { LOGGER.log(Level.WARNING, PRIVATE_KEY_NOT_FOUND + keyAlias + ExceptionUtils.getFullStackTrace(e)); }
Wenn Sie so handeln:
Key key = keyStore.getKey(keyAlias, pwd);
Anschließend versucht der kryptografische Anbieter, eine Anforderung zur Eingabe des Kennworts für den Container über die Konsole oder das GUI-Fenster anzuzeigen.
Ergebnisse
Das Token-Key-Carrier-Token wird am internen USB-Anschluss des Servers installiert.
Die Serverhardware selbst ist versiegelt und befindet sich in einem Raum mit eingeschränktem Zugriff.
Solche Maßnahmen können den Schutz unserer Informationssysteme vor Diebstahl und Kompromittierung elektronischer Signaturen oder Verschlüsselungsschlüssel sowohl über das Netzwerk als auch physisch erhöhen.
Nützliche Links
- Aladdin-RD JaCarta Dokumentation
- wiki.astralinux.ru - Arbeiten Sie mit CryptoPro CSP
- Die Liste der Fehlercodes des Objektmodells der Komponenten von Microsoft COM-Fehlercodes (Sicherheit und Einrichtung)
- CryptoPro CSP 4.0 CSP 4.0 FCN (Gemalto)
- Pcsc-Tools Reader Diagnosedienstprogramm aus Sicherheit: Chipkartenprojekt (software.opensuse.org)
- CryptoPro CSP für Linux. Anpassung.
- Aladdin-RD-Standardschlüsselträger-PINs (Passwörter)