使用Rutoken技术在系统中注册和授权用户的经验(第3部分)

美好的一天!

在前一部分 我们已经成功创建了自己的认证中心。它对我们的目的有何用处?

使用本地证书颁发机构,我们可以颁发证书并验证这些证书上的签名。

向用户颁发证书时,证书颁发机构使用特殊请求来颁发 Pkcs#10 证书,该证书的文件格式为“.csr”。该请求包含认证机构知道如何正确解析的编码序列。该请求包含用户的公钥和用于创建证书的数据(包含用户数据的关联数组)。

我们将在下一篇文章中讨论如何接收证书请求,在本文中我想给出证书颁发机构的主要命令,这些命令将帮助我们完成后端的任务。

所以首先我们必须创建一个证书。为此,我们使用以下命令:

openssl ca -batch -in user.csr -out user.crt

ca 是与证书颁发机构相关的 openSSL 命令,
-batch - 生成证书时取消确认请求。
user.csr — 创建证书的请求(.csr 格式的文件)。
user.crt - 证书(命令的结果)。

为了使该命令起作用,必须完全按照描述配置证书颁发机构 在文章的前一部分。否则,您必须另外指定证书颁发机构的根证书的位置。

证书验证命令:

openssl cms -verify -in authenticate.cms -inform PEM -CAfile /Users/……/demoCA/ca.crt -out data.file

cms 是一个 openSSL 命令,用于使用 openSSL 进行签名、验证、加密数据和其他加密操作。

-verify - 在这种情况下,我们验证证书。

authenticate.cms - 包含使用上一个命令颁发的证书签名的数据的文件。

-通知 PEM - 使用 PEM 格式。

-CAfile /Users/……/demoCA/ca.crt - 根证书的路径。 (没有这个命令对我不起作用,尽管 ca.crt 的路径写在 openssl.cfg 文件中)

-out data.file — 我将解密的数据发送到文件 data.file。

后端使用证书颁发机构的算法如下:

  • 用户注册:
    1. 我们收到创建证书并将其保存到 user.csr 文件的请求。
    2. 我们将本文的第一个命令保存到扩展名为 .bat 或 .cmd 的文件中。我们通过代码运行此文件,之前已将创建证书的请求保存到 user.csr 文件中。我们收到一个带有 user.crt 证书的文件。
    3. 我们读取 user.crt 文件并将其发送给客户端。

  • 用户授权:
    1. 我们从客户端接收签名数据并将其保存到authenticate.cms 文件中。
    2. 将本文的第二个命令保存到扩展名为 .bat 或 .cmd 的文件中。我们从代码运行此文件,之前已将来自服务器的签名数据保存在authenticate.cms 中。我们收到一个包含解密数据 data.file 的文件。
    3. 我们读取 data.file 并检查该数据的有效性。描述了具体要检查的内容 在第一篇文章中。如果数据有效,则认为用户授权成功。

要实现这些算法,您可以使用任何用于编写后端的编程语言。

在下一篇文章中,我们将了解如何使用 Retoken 插件。

谢谢你!

来源: habr.com

添加评论