常用业务场景下的密码技术应用参考流程

admin 2024年2月9日01:29:48评论9 views字数 2476阅读8分15秒阅读模式


1、用户身份鉴别

用户登录系统过程中的身份鉴别可使用数字证书签名验证的方式。即在鉴别过程中,客户端使用证书进行数字签名并将签名结果发送至服务器,服务器对数字签名进行验证。推荐使用的签名算法为RSA(2048密钥长度)/SM2,摘要算法为SHA256/SM3算法。系统用户身份鉴别过程如下:

1、用户在登录端提出登录请求;

2、服务器得到请求,发送一个随机数给登录端,并在后台缓存此随机数;

3、登录端对随机数进行摘要运算,得到摘要值;

4、登录端使用登录用户证书私钥对摘要值进行非对称加密,此过程中,如果证书使用了口令保护,则需要用户输入证书私钥保护口令(密文形式),以完成数字签名。

5、登录端将签名结果、用户证书和用户ID合并得到鉴别信息,发送给系统后台;

6、服务器得到鉴别信息后,分离得到数字签名、用户证书和用户ID

7、服务器验证用户证书有效性,如果无效,则鉴别未通过,鉴别过程结束;

8、服务器得到用户证书公钥,用公钥对数字签名进行非对称解密。如果解密失败,返回失败信息给登录端,鉴别过程失败并结束。否则得到解密后摘要值;

9、服务器对缓存的随机数进行摘要运算,得到摘要值;

10、服务器比较两个摘要值,如果不同则返回失败信息给登录端。鉴别过程失败并结束;

11、服务器根据用户ID及用户证书在数据库用户表查询,如果没有记录,鉴别失败,否则鉴别成功;

12、返回鉴别结果至登录端,鉴别过程结束。


2.业务数据进行数字签名及验证

对业务数据进行数字签名及验证,推荐使用的签名算法为RSA(2048密钥长度)/SM2,摘要算法为SHA256/SM3算法。

数字签名时,系统对业务数据进行摘要运算生成摘要信息,然后获取用户的私钥进行加密,因为私钥只有盖章用户本人可以使用,从而保证签名行为的不可抵赖性。此签名过程在硬件中进行,具体步骤如下:

1、使用摘要算法对所签名文档与印章信息的组合进行运算,得到摘要值;

2、使用私钥对摘要值进行非对称加密,得到数字签名数据;

3、将业务数据、数字签名及证书公钥发送给验证方数字签名的验证过程如下:

4、系统用证书公钥对数字签名进行非对称解密运算,如果解密失败,则验证失败;否则得到待验证摘要数据;

5、系统对业务数据进行摘要运算,得到一个摘要。

6、将两个摘要值进行比较,如果相同,则验证通过;否则验证未通过,业务数据被篡改。


3.业务数据对称加密传输

用户在业务系统向服务器提交及下载数据时采用对称加密传输,推荐加解密算法为SM4/AES/3DES,数据加解密过程中的对称密钥是随机生成的做到了一次一密,具体规则(以SM4为例)如下:

加密过程:

1、客户端提交文档时,首先生成一个16字节的随机数;

2、客户端将参与当前用户ID组合,取前96字节,如果不够96字节按实际长度取得;

3、客户端将用户ID组合与随机数合并,并进行摘要运算,得出摘要值;

4、取其摘要值后16字节作为对称密钥值;

5、使用密钥对要提交的数据进行SM4加密;

6、用户输入登录系统的口令,客户端对口令进行摘要运算,得到摘要;

7、客户端使用口令摘要的后16个字节对第一步生成的随机数进行SM4加密;

8、客户端将密文,加密随机数及用户ID组合提交至服务器保存。

解密过程:

1、用户在客户端向服务器发出对数据的下载请求;

2、服务器根据请求用户ID取得用户口令的摘要值;

3、服务器使用提交用户口令摘要的后16个字节对加密随机数进行SM4解密,得到随机数;

4、服务器根据请求请求用户ID取得请求用户口令的摘要值;

5、服务器使用请求用户口令摘要的后16个字节对随机数进行SM4加密;

6、服务器将密文,加密随机数及用户ID组合发送给请求用户客户端;

7、请求用户输入登录系统的口令,客户端对口令进行摘要运算,得到摘要;

8、客户端使用口令摘要的后16个字节对加密随机数进行SM4解密。得到随机数明文;

9、客户端将用户ID组合与随机数合并,并进行摘要运算,得出摘要值;

10、取其摘要值后16字节作为SM4密钥;

11、使用SM4密钥对得到的密文文档进行解密;

12、客户端得到明文。

注意:在解密过程中,服务器对于存储的加密随机数的操作流程是先解密、再加密,然后把加密后的随机数发送给客户端,而不是直接把加密随机数发送给客户端。这样做是为了确保数据是按指定的方式加解密,防止被中间人截获攻击。


4.业务数据非对称加密传输

用户在业务系统向服务器提交及下载数据时采用非对称加密传输,推荐非对称加解密算法为RSA(2048密钥长度)/SM2,摘要算法为SHA256/SM3算法,对称加解密算法为AES/SM4,具体规则(对称算法以SM4为例)如下:

加密过程:

1、客户端提交数据时,生成一个16字节的随机数作为对称密钥值;

2、使用对称密钥对要提交的数据进行SM4加密;

3、客户端查询返回数据接收方的证书(公钥)集合;

4、客户端使用接收方和自己(如果需要)的证书(公钥)分别加密对称密钥,生成加密对称密钥集合;

5、客户端将密文及对称密钥集合组合提交至服务器保存。

解密过程:

1、接收用户在客户端向服务器发出对数据的下载请求;

2、服务器将密文及加密对称密钥集合组合发送给用户客户端;

3、客户端根据加密对称密钥集合在本机查找对应的证书私钥并解密;

4、将解密后的数据作为SM4密钥;

5、使用SM4密钥对得到的密文文档进行解密;

6、客户端得到明文。

5.用户口令设定及验证

系统管理员或用户可以对用户口令进行设置,设置的口令以摘要值形式存储,过程如下:

1、管理员为某一用户或用户为自己设置口令;

2、系统对口令进行摘要运算;

3、将运算生成的摘要值存储在数据库,并与相应的用户ID对应。相应的。用户登录系统验证口令时。过程如下:

4、用户输入口令;

5、客户端对口令进行摘要运算,并发送到服务器;

6、服务器进行口令摘要值对比验证,并返回结果。

文章来源

https://blog.csdn.net/weixin_45303938/article/details/107523306

原文始发于微信公众号(极道安全):常用业务场景下的密码技术应用参考流程

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年2月9日01:29:48
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   常用业务场景下的密码技术应用参考流程http://cn-sec.com/archives/2473324.html

发表评论

匿名网友 填写信息