PKCS#11加密云服务:从神话到现实

图片 2016年,发表了文章“ PKCS#11云令牌-神话还是现实?” 。 。 六个月后,现在在互联网上出现了一个云(云服务),任何人都可以得到支持俄罗斯密码的个人PKCS#11云令牌。

前言


回想一下,PKCS#11(Cryptoki)是由RSA实验室开发的标准,用于使用通过库实现的统一软件接口与加密令牌,智能卡和其他类似设备进行程序交互。

加密令牌提供了证书和密钥对(公用和专用密钥)的存储,以及根据PKCS#11标准的加密操作。

图片 因此,在互联网上出现了云服务LS11CLOUD,它是PKCS#11标准v.2.40的云实现,并根据标准化技术委员会( TC 26 )开发的规范``加密信息保护''对俄罗斯加密算法的支持进行了补充。 LS11CLOUD云服务支持算法GOST R 34.10-2012,GOST R 34.11-2012,GOST R 34.12-2015和GOST R 34.13-2015以及TC 26的管理文档定义的相关算法和参数。

云令牌的毋庸置疑的优势在于,现在用户无需携带令牌/智能卡,就可以确保其安全性。 用户将私有令牌存储在云中后,便可以从其家用计算机,笔记本电脑和移动设备访问它。

使用TC 26建议的SESPAKE (安全性经过评估的标准密码验证的密钥交换)验证协议,可以确保通过加密的网络通道与受保护的加密对象的个人容器(令牌)进行安全的远程交互。

在用户方面,具有标准pkcs#11编程接口的ls11cloud动态库提供了基本功能。 要接收个人云令牌,用户必须在LS11CLOUD云服务上注册,然后在云服务上初始化和配置个人令牌。

用户在云服务上的注册


首先,我们注意到LS11CLOUD云令牌位于pkcs11.ru,并接受对端口4444的请求。

如前所述,服务器上的用户注册和帐户维护由ls11cloud_config实用程序执行:

$ ./ls11cloud_config LS11CLOUD User Utility Usage: ls11cloud_config <command> [-p <password>] [-n <new password>] NB: Use -n <new password> with change_pswd command only! Commands: register <host> <port> <id> - register new user on the server duplicate <host> <port> <id> - duplicate user account on other computer change_pswd - change SESPAKE authentication password status - display current configuration data log - display server log file recreate - re-create token to initial empty state unregister - remove all user files from the server NB: Don't use non-latin letters to avoid encoding problems! $ 

在用户注册期间,指示了云服务的位置(“主机”字段),与外界进行通信的端口(“端口”字段)以及用户的昵称(“ id”字段):

  bash-4.3$ ls11cloud_config register pkcs11.ru 4444 HABRAHABR 

为了从Linux,Windows和OS X(macOS)平台进行注册,有一个带有实用程序的图形实用程序,带有直观的guils11cloud_conf界面:

图片

用户可以获取分配
因此,让我们开始测试PKCS#11云令牌中俄罗斯加密的实现。
下载后,必须运行guils11cloud_conf图形实用程序并遵循其说明:

图片

如果您尚未从该工作站向云令牌注册,则会提示您创建令牌或连接到先前创建的令牌(请参见屏幕截图)。 要在云中进行初始注册,请单击“在云中注册”按钮:

图片

“用户登录名”是用于在云中注册用户的登录名。
需要使用密码来创建从用户的应用程序到云中他的个人令牌的安全通道(SESPAKE协议)。 用户每次访问云中的令牌时都将要求输入密码,除非用户在云中成功注册后立即将其保存:

图片

成功注册用户后,将为他创建一个带有SO-PIN 87654321的新令牌:

图片

令牌初始化


单击“确定”按钮后,将出现一个表格,其中有必要指示令牌标签(默认情况下,它与用户在云中的登录名匹配)以及用户可以访问云令牌的PIN码:

图片

单击“完成”按钮后,云令牌即可开始工作:

图片

将来, p11conf实用程序将用于配置云令牌,就像配置其他任何PKCS#11令牌/智能卡一样:

图片

如果您想在另一台计算机上使用创建的云令牌,那么您要做的就是运行图形实用程序guils11cloud_config并单击“重复令牌”按钮:

图片

之后,请记住您在云中进行注册的登录名和用于访问的密码。 通过单击“完成”按钮,您将可以访问令牌:

图片

在云令牌中安装第一个个人证书


现在我们已经在云中注册并在其中创建了自己的个人云令牌,我们可以开始使用它了。 为了进行测试,让我们以基于Mozilla Firefox和Mozilla Thunderbird的Redfox-52浏览器和Redfoxmail-52电子邮件客户端为例 ,它们在PKCS#11令牌/智能卡上支持俄语加密。

我们将在WIN32平台上进行测试。

首先,您需要下载并安装Redfox-52。 要安装Redfox浏览器,您需要下载存档并解压缩。

将解压缩的Mozilla Firefox文件夹移动到方便的位置。 然后为firefox.exe可执行文件(位于Mozilla Firefox文件夹内)创建快捷方式,并将其放在任何方便的位置。

启动浏览器后,您需要通过将ls11cloud.dll库添加到设备来连接创建的云令牌:

图片

请注意,MS Windows的浏览器发行版是为Win32平台构建的。 因此,ls11cloud.dll库也应用于Win32平台。

在将浏览器使用的加密设备中包含云令牌之后,我们可以开始对其进行测试。 在第一阶段,您必须至少获得一个个人证书。 为此,我们使用测试CA之一的服务:

图片

当您单击继续按钮时,CA将提供验证应用程序数据的信息,然后选择一个加密设备(令牌/智能卡)来生成密钥对并存储个人证书:

图片

自然地,选择了一个云令牌,然后单击“继续”按钮后,将不仅提供该令牌以接收您的应用程序生成的个人证书,而且还可以安装/保存CA根证书:

图片

您可以通过查看浏览器证书存储来验证证书安装:

图片

测试HTTPS和PKCS#12


因此,云令牌机制起作用。 现在,让我们检查在俄语加密的授权https模式下云令牌的运行情况:

图片

为了在CryptoPro测试页测试云令牌的运行,我们将使用先前在CryptoPro测试中心获得并上传到PKCS#12容器的测试证书。 首先,您需要下载PKCS#12格式证书并将其安装在云令牌上(PKCS#12容器的密码是01234567):

图片

作为存储设备,您必须选择一个云令牌:

图片

然后,您将需要输入PIN来访问令牌,即PKCS#12的密码。 结果,证书将在令牌上:

图片

同时,不要忘记在CryptoPro CA的根证书中设置信任级别:

图片

现在,您可以安全地转到CryptoPro测试页,例如,在这里

图片

使用云令牌组织安全的电子邮件通信


现在,让我们看看云令牌在Redfoxmail / Thunderbird邮件客户端中如何工作。
要在WIN32平台上安装Mozilla Thunderbird邮件客户端,您需要下载thunderbird-52.0-gost存档并将其解压缩。 将解压缩的Mozilla Thunderbird文件夹移动到方便的位置。

然后为thunderbird.exe可执行文件(位于Mozilla Thunderbird文件夹中)创建快捷方式,并将其放在任何方便的位置。 启动邮件客户端后,我们连接云令牌,类似于对Redfox浏览器的操作:

图片

连接云令牌后,存储在其中的证书将变为可用。 但是,这可能还不够-必须安装颁发个人证书的CA根证书。 这就是为什么我们在发布期间保存了根证书的原因:

图片

现在,在帐户设置中,您需要安装将用于签名和加密字母的证书:

图片

现在,您可以安全地签名消息了:

图片

任何支持俄语加密的电子邮件客户端都可以接受此消息,例如KMail

图片

结论


因此,我们可以说神话正在变成现实。 LS11CLOUD云令牌的主要范围可以是内部文档管理,安全邮件和银行业务。
带有云令牌的云服务LS11CLOUD对于使用PKCS#11令牌/智能卡的应用程序开发人员而言非常有用。

图片 附言:我将个人证书放在云令牌中,将其连接到公共服务插件,并通过GOSUSLOG门户支付了税款。 OC-Linux。

Source: https://habr.com/ru/post/zh-CN403563/


All Articles