将令牌存储在令牌和智能卡上可提供针对外部和内部入侵者的额外保护,其中包括对信息系统和设备具有一定访问权限的那些入侵者。
今天,我将告诉您我们如何保护信息系统中的加密密钥和电子签名,并且将在详细,说明充分的指南中进行此操作,以设置SUSE Linux Enterprise Server 12 SP3以与Aladdin JaCarta PKI令牌和CryptoPro CSP KC2 4.0.9944一起使用。
发布本指南的原因有很多:
原因1
有关
Aladdin-RD JaCarta的官方文档更适用于Astra Linux和ALT Linux操作系统,并获得了国防部,FSTEC和FSB的认证,可以作为保护信息的手段。
原因2
找到的关于在Linux中配置与硬件媒体交互的最佳说明,也来自
wiki.astralinux.ru-使用CryptoPro CSP原因3
UPD 04/16/2019:在设置环境和设备的过程中,事实证明,与预期的一样,最早可用的载体根本不是JaCarta PKI Nano,而是在SafeNet Authentication Client eToken PRO模式下运行的设备。
UPD 04/16/2019:一旦银行需要一种可以在与eToken PRO(Java)相同的基础架构中运行的设备。 作为这种设备,“ ZAO Aladdin R.D.”公司 提供了由银行选择的JaCarta PRO令牌。 但是,在形成商品和运输单据的阶段,公司的一名员工犯了一个错误。 代替JaCarta PRO模型,JaCarta PKI意外地输入到商品和运输文件中。
UPD 04/16/2019:我感谢Aladdin R.D.公司帮助我们弄清并确立了真相。
此错误没有任何政治和隐藏的含义,只有员工在准备文档时的技术错误。 Token JaCarta PRO是Aladdin R.D.公司的产品。 执行功能部分的小程序由“ ZAO Aladdin R.D.”公司开发。
该eToken PRO适用于2017年12月1日之前发布的聚会。
此日期之后,公司为“ Aladdin R.D.” 停止销售eToken PRO(Java)设备。
向前走一点,我必须说与他的合作是通过适当的驱动程序
-SafenetAuthenticationClient-10.0.32-0.x86_64配置的 ,只有在支持Aladdin R.D的情况下才能获得。 在单独的在线应用程序上。
在CryptoPro CSP中,要使用此令牌,需要安装
cprocsp-rdr-emv-64软件包
| EMV / Gemalto支持模块 。
该令牌已确定并得到响应。 使用
SafenetAuthenticationClient软件包中的
SACTools实用程序,可以对其进行初始化。 但是,在使用密码信息保护时,他的行为极其奇怪且不可预测。
在命令上显示如下:
csptest -keyset -cont '\\.\Aladdin RD JaCarta [SCR Interface] (205D325E5842) 00 00\alfa_shark' -check
答案是一切都很好:
[ErrorCode: 0x00000000]
但是在尝试以编程方式读取密钥之后,相同的检查立即开始产生错误:
[ErrorCode: 0x8009001a]
根据Microsoft
COM错误代码(安全性和安装程序)的组件的对象模型的错误代码列表
NTE_KEYSET_ENTRY_BAD 0x8009001A Keyset as registered is invalid.
“无效的密钥集”-产生此消息的原因可能是由于旧的Gemalto芯片,固件和小程序,或者是其操作系统的驱动程序不支持新的ES生成标准和哈希函数GOST R 34.10-2012和GOST R 34.11- 2012。
在这种状态下,令牌被阻止。 密码信息保护指数开始显示读取器和密钥容器的无关状态。 重新启动
cprocspractor提供程序
cprocsp服务,
pcscd令牌和智能卡
服务以及整个操作系统都没有帮助,仅重新初始化即可。
公平地说,应该注意的是,SafeNet eToken PRO在Windows 7和10 OS中与GOST R 34.10-2001密钥一起正常工作。
您可以尝试安装
CryptoPro CSP 4.0 FCN(Gemalto) ,但是目标是使用支持新标准的JaCarta系列认证的FSB和FSTEC产品保护我们的ES和加密密钥。
通过在(XL)常规外壳中使用真正的JaCarta PKI令牌解决了该问题。
但是花了很多时间试图使Safenet eToken PRO正常工作。 我想提请大家注意,也许可以保护某人免受此侵害。
原因4
有时您自己需要返回到旧文章和说明。 当信息放置在外部源中时,这很方便。 因此,感谢Habr的机会。
设定指南
在服务器的USB端口中安装JaCarta PKI令牌并启动系统后,我们验证是否检测到新设备并出现在列表中:
lsusb

在本例中,它是
总线004设备003:ID 24dc:0101要诊断读者,可以使用
安全性:Chipcard项目(software.opensuse.org)中的
pcsc-tools实用程序。
它由以下命令启动:
pcsc_scan

在安装所有必需的软件包之前,将不会显示有关令牌的信息。
安装驱动程序和软件以使用JaCarta PKI
在网站“ Aladdin R.D.”的“支持”页面上 我们下载的
文档和软件仅适用于JaCarta PKI根据《 JaCarta for Linux实施指南》第4.2节,第一步是安装
pcsc-lite ,
ccid和
libusb 。
为了使JaCarta管理实用程序正常工作,必须安装以下组件:
- PC / SC Lite-中间层,用于根据PC / SC标准pcsc-lite软件包提供对智能卡的访问。
- Ccid和libusb库,用于使用USB密钥,智能卡和智能卡读取器。
我们检查这些软件包的可用性并安装:
zypper search pcsc-lite

zypper search libusb

zypper install pcsc-lite


zypper search CCID

zypper install pcsc-ccid

zypper search CCID

zypper install libusb

结果,更新了pcsc-lite软件包,安装了CCID,无需执行libusb。
以下两个命令可直接使用JaCarta PKI安装带有驱动程序和软件的软件包:
zypper install idprotectclientlib-637.03-0.x86_64.rpm

zypper install idprotectclient-637.03-0.x86_64.rpm

检查是否已安装JaCarta PKI的驱动程序和软件:
zypper search idprotectclient

当尝试使SafeNet eToken PRO正常工作时,我发现以下信息:SLES中预装的
openct-智能卡读卡器程序包可能与
pcsc-lite-PCSC智能卡程序库冲突,该程序的安装需要AladdinR.D。
zypper search openct

因此,我们删除了openct软件包:
rpm -e openct
现在,已安装了使用令牌的所有必需驱动程序和软件。
我们使用
pcsc-tools实用程序
执行诊断,并确保在操作系统中检测到JaCarta:
pcsc_scan

安装CryptoPro CSP软件包
默认情况下安装CryptoPro CSP时,缺少用于令牌和智能卡的必要软件包。
zypper search cprocsp

在
CSP中安装
用于CryptoPro CSP支持
组件的
JaCarta组件zypper install cprocsp-rdr-jacarta-64-3.6.408.683-4.x86_64.rpm

一些组件具有依赖性。 因此,例如,如果您尝试安装SafeNet eToken PRO支持包
cprocsp-rdr-emv-64-4.0.9944-5.x86_64.rpm-EMV / Gemalto支持模块 ,我们将收到一条消息,提示您需要首先安装CSP阅读器支持
cprocsp的基本组件
-rdr-pcsc-64-4.0.9944-5.x86_64.rpm-用于CryptoPro CSP读取器的PC / SC组件 :
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
为读者和关键媒体安装基本支持包:
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
现在,您可以安装用于与其他类型的媒体和GUI组件一起使用的模块:
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

检查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

要应用更改,我们重新启动加密提供程序服务并检查其状态:
/etc/init.d/cprocsp restart /etc/init.d/cprocsp status

CryptoPro CSP设置和诊断
使用以下命令检查密码提供程序是否看到我们的令牌和其他可用媒体类型:
/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
阿拉丁RD JaCarta [SCR接口](000000000000)00 00是我们的媒介。
遵循
CryptoPro CSP for Linux的说明。 配置 ,在密码提供者中执行其注册:
/opt/cprocsp/sbin/amd64/cpconfig -hardware reader -add "Aladdin RD JaCarta [SCR Interface] (000000000000) 00 00"

由于在配置文件
/etc/opt/cprocsp/config64.ini中执行
条目将添加到[KeyDevices \ PCSC]部分:
[KeyDevices\PCSC\"Aladdin RD JaCarta [SCR Interface] (000000000000) 00 00"\Default]
为了符合CryptoPro CSP表格的要求,《使用条款和安全性管理员指南》:
禁止在关闭了增强密钥控制模式的情况下使用CryptoPro CSP CIP版本4.0。 ZHTYA.00087-01 91 02.安全管理员指南中介绍了此模式的包含。
有必要启用对密钥用法的增强控制:
/opt/cprocsp/sbin/amd64/cpconfig -ini '\config\parameters' -add long StrengthenedKeyUsageControl 1
检查是否启用了该模式:
cat /etc/opt/cprocsp/config64.ini | grep StrengthenedKeyUsageControl

我们重新启动加密提供程序服务:
/etc/init.d/cprocsp restart /etc/init.d/cprocsp status
重新启动后,我们检查提供商与主要承运人的合作中是否没有错误:
/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]
使用JaCarta PKI令牌
让我们在工作站上运行Xming(X11转发)程序,以便我们可以通过SSH打开并使用必要实用程序的图形界面。

安装
IDProtectClient-用于JaCarta PKI的软件后,服务器上的
/ usr / share / applications文件夹中出现了两个文件:
雅典娜IDProtectClient.desktop
雅典娜IDProtectManager.desktop
这些是可以查看实用程序
Exec = / usr / bin / SACTools的启动选项的快捷方式
运行
IDProtectPINTool实用程序。
使用它,可以设置和更改令牌的PIN访问代码。
/usr/bin/IDProtectPINTool

首次初始化令牌时,
默认情况下包含
密钥载体的PIN码(密码)的链接将非常有用
IDProtect_Manager程序允许
您查看有关带有密钥和证书的令牌和容器的信息:
/usr/bin/IDProtect_Manager

要使用密钥访问容器,您需要输入密码:


要使用
SafeNet身份验证客户端eToken PRO ,可以使用类似的程序
-SafeNet身份验证客户端监视器和
SafeNet身份验证客户端工具 ,其运行方式如下:
/usr/bin/SACMonitor /usr/bin/SACTools

在密码提供程序CryptoPro JavaCSP的接口中直接使用密钥容器执行操作更加方便:
/jdk1.8.0_181/jre/bin/java ru.CryptoPro.JCP.ControlPane.MainControlPane

要使用键显示有关容器内容的信息,可以运行以下命令:
/opt/cprocsp/bin/amd64/csptest -keyset -cont '\\.\Aladdin RD JaCarta [SCR Interface] (000000000000) 00 00\alfa_shark1' -info
要诊断容器,请使用与–check开关相同的命令
/opt/cprocsp/bin/amd64/csptest -keyset -cont '\\.\Aladdin RD JaCarta [SCR Interface] (000000000000) 00 00\alfa_shark' –check
您将需要输入容器的密码:


软件密钥检索
通常,使用CryptoPro Java CSP从令牌上的容器中检索私钥和公钥证书的示例如下:
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)); }
如果您这样操作:
Key key = keyStore.getKey(keyAlias, pwd);
然后密码提供者将尝试显示请求,以通过控制台或GUI窗口向容器输入密码。
结果
令牌密钥载体令牌已安装在服务器的内部USB端口中。
服务器硬件本身被密封并放置在访问受限的房间中。
这样的措施可以提高我们的信息系统的保护水平,以防在网络上和物理上被盗和破坏电子签名或加密密钥。
有用的链接
- Aladdin-RD JaCarta文档
- wiki.astralinux.ru-使用CryptoPro CSP
- Microsoft COM错误代码(安全性和安装程序)的组件的对象模型的错误代码列表
- CryptoPro CSP 4.0 CSP 4.0 FCN(金雅拓)
- 来自安全性的PCSC工具读取器诊断实用程序:芯片卡项目(software.opensuse.org)
- 适用于Linux的CryptoPro CSP。 定制化。
- Aladdin-RD默认密钥载体PIN(密码)