百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程网 > 正文

密码应用安全性评估要点之数字签名技术

yuyutoo 2024-10-13 00:32 1 浏览 0 评论

数字签名技术是现代密码算法中非对称密码算法和消息摘要算法相结合的十分优秀的解决方案,应用面广泛,涉及到的知识点很多,本文将从概念、技术实现、合规性分析等方面逐一进行讲解。

1.数字签名的含义和目标

1.1 什么是数字签名

数字签名(digital signature)是公钥密码算法的一类典型应用,常见应用场景为:发送方使用其私钥对消息进行处理得到签名值,接收方使用发送方的公钥对消息和签名值进行验证,简称“私钥加签,公钥验签”(相对应的使用公钥密码算法进行加密的流程为:“公钥加密,私钥解密”)。在此过程中可能使用到的主要密码算法有:非对称密码算法(又称公钥密码算法)、哈希算法(又称消息摘要算法、杂凑算法等)。

1.2 为什么要使用数字签名

数字签名可以视为传统意义上的签名在网络虚拟环境中的映射,用来确保通信网络中用户身份的真实性、所发送消息的完整性,以及消息发送行为的不可否认性。本文重点讨论数字签名技术如何实现对真实性和不可否认性的保护。
真实性(Authenticity)需要解决的问题是:如何证明你是你(对这个问题的讨论已经上升到了哲学命题的高度)。常见的基于密码学技术的实现方式有:动态口令机制、基于对称密码算法或密码杂凑算法的消息鉴别码机制、基于公钥密码算法的数字签名机制等。有兴趣的读者可以去GB/T 15843《信息技术 安全技术 实体鉴别》中详细了解。
不可否认性(Non-Repudiation)需要解决的问题是:避免用户对自身发起的行为的抵赖,又称抗抵赖。常见的基于密码学技术的实现方式为基于公钥密码算法的数字签名机制。



2.数字证书及PKI体系

上文中提到,数字签名的过程是使用用户私钥对消息进行处理进而得到签名值的过程,而提到公私钥对就不得不了解作为基础技术支撑的数字证书及其背后的PKI体系了。

2.1 数字证书格式

数字证书以ASN.1编码规范来进行描述。符合X.509 v3 版本的数字证书结构如下:
证书
版本号
序列号
签名算法
颁发者
证书有效期
此日期前无效
此日期后无效
主题
主题公钥信息
公钥算法
主题公钥
颁发者唯一身份信息(可选项)
主题唯一身份信息(可选项)
扩展信息(可选项)
...
证书签名算法
数字签名
以下就是一个典型的SSL站点证书。

主流的数字证书格式有der、pem、pfx、p7b等,文件后缀有cer、crt、p12等,区别主要在于编码格式是二进制还是ASCII码,不同操作系统的支持情况也不一样。

关于数字证书的基础知识我们就介绍到这里,读者暂时只需要知道如何从数字证书中提取出公钥即可。以上图为例,此站点SSL证书中的公钥字段里面的以04e8开头的值就是这张证书的公钥,是公开给所有需要访问该站点的用户或终端的,通过使用这张证书,客户端可以实现对服务端的身份鉴别,同时可以为后续建立的SSL加密链路提供基础保证。

2.2 PKI体系

了解了数字证书的结构和作用以后,可能有读者会问那么数字证书是如何生成和注销的?这就需要依赖于一套完整的PKI体系了。
PKI全称为Public Key Infrastructure公钥基础设施,该体系解决了证书生命周期相关的认证和管理问题,而这些功能主要依托于CA、RA等模块来实现。
CA(Certification Authority)负责证书的颁发和吊销,接收来自 RA 的请求。
RA(Registration Authority)对用户身份进行验证,校验数据合法性,审核通过以后将请求转发给 CA。
证书资料库用来存储已签发的数字证书和公钥以及相关证书目录。
证书吊销列表CRL/OSCP用来管理数字证书的注销等事宜。
由于数字证书是由CA签发的,因此CA的权威性直接影响到数字证书的可信程度,一般来说由世界公认的顶级CA签发的证书都是被认为相对可信的,这也是为什么同样是HTTPS站点,浏览器提示有的站点的连接是安全的,有的是不安全的。原因就在于大部分浏览器和操作系统都内置了顶级CA的证书,通过对站点证书进行证书链验证以后,如果颁发该站点证书的CA机构在“受信任的根证书颁发机构”内,就会提示“连接是安全的”,如果不在,就会提示风险。


3.数字签名的原理及常见算法

下面介绍两种典型的数字签名算法实现原理,一种是国际通用算法中比较常见的RSA算法,另一种是我国商用密码算法体系中的SM2算法。

3.1 RSA算法数字签名流程

RSA是基于大素数分解难题的非对称密码算法,目前是世界通用的公钥密码算法之一。

签名过程

随机选择两个不相等的素数p和q,并计算n=p*q
计算n的欧拉函数φ(n)=(p-1)(q-1)
随机选择一个整数e(在1和r中间且与r互质)
计算e对于φ(n)的模反元素d,满足e*d = 1 mod φ(n)
将n和e封装成公钥,n和d封装成私钥
计算消息m的消息摘要,记为 h(m)
使用私钥(n,d)对h(m)加密,生成签名s = (h(m))^d mod n

验签过程

计算消息m的消息摘要,记为h(m)
使用A的公钥(n,e) 和收到的s来计算H(m) = s^e mod n
比较H(m)与h(m),相同则说明签名验证通过

3.2 SM2算法数字签名流程

SM2是我国密码商用密码算法体系中基于ECC椭圆曲线的公钥密码算法,在GB/T 32918.2-2016《信息安全技术 SM2椭圆曲线公钥密码算法 第2部分:数字签名算法》中详细介绍了SM2算法签名及验签过程的实现。

签名过程

G为选定椭圆曲线上的基点,选取dA为私钥,pA为公钥,pA=dA*G
签名者用户A具有长度为entlenA比特的可辨别标识IDA,若没有特殊指定则一般默认为0x31323334353637383132333435363738
ENTLA是由整数entlenA转换而成的两个字节
待签名的消息为M
ZA=H256(ENTLA || IDA || a || b || xG || yG|| xA || yA),a、b为Fq中的元素,用来定义椭圆曲线,对于SM2算法而言一般来说是固定的,xG、yG和xA、yA分别为G点和pA点的横、纵坐标,ZA经过杂凑函数运算后长度为256位的杂凑值
e=H(ZA||M),H为输出长度为固定位数的杂凑函数
选取随机数k,计算(x1,y1)=k?G
计算r=(e+x1) mod n
计算s=(k?r?dA)/(1+dA) mod n
(r,s)即为签名值

验签过程

首先验证r和s是否在(1,n-1)集合中,若不在则验证失败
随后计算t=(r+s) mod n ,如果t=0则验证失败然后通过t与s计算曲线上的点(x1,y1)=s?G+t?PA
再计算R=(x1+e) mod n ,然后验证R与r是否相等,如果相等则表明验签通过。

可以看到,无论是RSA算法还是SM2算法,在对数据进行签名之前都会先进行哈希运算,实际上被签的数据并不是明文的消息值,而是经过各种处理后的消息摘要值,这也是数字签名技术无法用来保证数据机密性的原因。

3.3 攻击方法

RSA算法和SM2算法作为现代公钥密码算法的代表自身强度是经过时间考验的,然而这并不意味着绝对的安全,在配置失误的时候还是可能存在被攻击的风险的。由于在非对称密码算法中公钥是公开的,因此对私钥的保护要慎之又慎,私钥被破解也就意味着攻击者可以进行身份伪装、数据解密等操作。
基于大素数分解难题的公钥密码算法中的n=p*q,若选取过小,可能导致过于简单的大数分解,进而破解出用户私钥,此类问题也是CTF中的Cryto类的重点考察对象。

而对基于ECC算法的公钥密码算法而言,随机数k如果固定,在获取两个不同用户的签名值的前提下可推导出私钥。这个漏洞最出名的安全事件是2010年Sony的PS3事件。

除了RSA和SM2算法以外,还有DSA/ECDSA等算法可用作数字签名,而这些公钥密码算法除了可做数字签名以外还可以用来进行数据加解密、密钥协商等。出于摩尔定律和安全性的考量,目前密钥长度在2048位以下的RSA算法以及同等强度的密码算法已经被认为不再安全。

在基于椭圆曲线上离散对数难题的密码算法实现中,算法的强度很大程度取决于选取的椭圆曲线。对于某些因曲线参数选取不当导致的弱曲线,则存在特殊的算法来显著降低计算复杂度,从而高效地求解离散对数问题,即可能存在后门漏洞。
因此基于椭圆曲线密码算法实现过程中,建议使用我国商用密码体系的SM2算法以及GB/T 32918.5-2017《信息安全技术 SM2椭圆曲线公钥密码算法 第5部分:参数定义》标准定义的椭圆曲线参数。



4.数字签名格式解析及验证

4.1 常见数字签名格式

PKCS#1

又称裸签(Raw Sign),即签名值中只有签名信息,不包含消息值、用户证书等信息的数字签名格式。

PKCS#7

即签名中可以附带其他信息,如:签名证书信息、签名原文信息等。值得一提的是PKCS#7不仅仅可作为数字签名的格式规范,也可以用于封装证书、数字信封等。P7格式的数字签名又可以细分为以下两种。
attached模式,又称P7A,即签名值中包含被签名的原文,但明文必须经过ASN.1编码。这样处理的话在通信过程中就无需重复传递原文,但会增加签名值的长度。
detached模式,又称P7D,格式中不包含被签名原文信息。因此在对端进行验签操作的时候,还需要额外传递消息值才可进行验证。
值得一提的是不管是P7A还是P7D格式的签名,被签名的原文可能都经过预处理,当验签不通过,而签名值、公钥都没问题的话,就需要考虑签名原文的格式是否正确了,需要具体情况具体分析。

4.2 数字签名的验证方法

a.密码产品实际运维过程中的身份鉴别实例

某密码厂商的KMS(密钥管理系统)产品在设备运维过程中使用”账户名”+“口令”以及Ukey+Pin码进行登录,这是一个非常典型的基于挑战响应机制的SM2算法签名验签来保证运维用户身份真实性的案例。整个身份鉴别过程的具体步骤如下:
1、首次打开设备运维页面时服务端向客户端传递一个随机数,也就是身份鉴别过程中所谓的challenge“挑战”。使用代理工具进行截包,可以看到服务端返回了一个base64格式编码的random随机数字段。

2、客户端将该随机数传递给本地端口提交签名请求,智能密码钥匙进行运算得出签名值并返回。

3、客户端通过浏览器将签名值及其他登录的必要参数传给服务端,由服务端进行验签,通过后完成对客户端的身份鉴别及授权。

下面我们从交互的数据包中提取必要的元素进行数字签名的验证:
通过对签名字段进行分析,发现是一个PKCS#7Attached格式的签名,签名数据中了包含了验签所需要的三要素:签名值、公钥、原文。
使用ASN.1分析工具可以看到签名值中包含了服务器发回的随机数字段。

从客户端用户的数字证书中提取SM2算法公钥:

从签名字段中找到messageDigest并进行提取(消息值经过预处理的中间原文),以及最下方的签名值r+s格式:

将签名值、公钥及原文代入算法验证工具后签名成功通过验证。

b.使用数字签名技术保证电子签章的不可否认性

某公文流转系统中需调用ukey对上传的PDF版报告进行电子签章,此过程中使用了RSA算法保证签名的不可否认性。
具体流程如下:
1、客户端上传报告后,服务端向客户端返回对应的消息摘要值:

2、客户端向服务端发送客户端证书及文件id等信息:

3、客户端向服务端提交由RSA格式数字签名完成电子签章行为:

下面尝试使用openssl工具对此过程中进行的RSA数字签名操作进行验签。
从第一步中把服务端返回的文件摘要值base64解码后保存为验签所需的的原文的文件。

从第2步的数据包中提取用户证书。

使用openssl工具进行RSA签名验证前需要先从cer格式的数字证书中导出pem格式的公钥文件。


将pem格式公钥文件进行base64解码并借用ASN.1分析工具可以看到,文件头中添加了RSA的算法标识符字段。

将第3步中客户端提交的签名值字段同样base64解码后另存为签名文件。

使用openssl工具进行RSA验签,指定数字证书文件、签名文件、原文、消息摘要算法,成功通过签名验证。



5.数字签名技术在密评及等保中的合规性判定

上文中提到,数字签名技术主要用来保护信息系统的真实性和不可否认性,而在我国的等保和密评合规体系的技术维度中也分别对相关的技术实现提出了保护要求,二者的测评要求和判定准则都是有区别的。
前者主要依据的标准是GB/T 22239《信息安全技术 网络安全等级保护基本要求》;
后者主要依据的标准是GB/T 39786《信息安全技术 信息系统密码应用基本要求》;
就测评要求而言,密评考察的更加细致,技术层面的测评指标分为DAK三个维度进行量化打分。

5.1 真实性

等保三级系统中涉及到真实性的测评项主要有:
8.1.4.1安全计算环境-身份鉴别d)应采用口令、密码技术、生物技术等两种或两种以上组合的鉴别技术对用户进行身份鉴别,且其中一种鉴别技术至少应使用密码技术来实现。

密评三级系统中涉及到真实性的测评项主要有:
8.1 物理和环境安全
a) 宜采用密码技术进行物理访问身份鉴别,保证重要区域进入人员身份的真实性
8.2 网络和通信安全
a) 应采用密码技术对通信实体进行身份鉴别,保证通信实体身份的真实性
e) 可采用密码技术对从外部连接到内部网络的设备进行接入认证,确保接入的设备身份真实性
8.3 设备和计算安全
a) 应采用密码技术对登录设备的用户进行身份鉴别,保证用户身份的真实性
f) 宜采用密码技术对重要可执行程序进行完整性保护,并对其来源进行真实性验证
8.4 应用和数据安全
a) 应采用密码技术对登录用户进行身份鉴别,保证应用系统用户身份的真实性

以上文4.2.a为例,密码产品的运维在等保测评中属于安全计算环境层面,在密评中属于设备和计算安全层面。
本案例中,在密码产品的运维过程中使用了基于“挑战”-“响应”机制的SM2算法数字签名技术,辅助账户名+口令进行身份鉴别。

*从等保的角度来考察,案例中对密码产品的运维采用的是账户名口令以及智能密码钥匙的双因素认证,智能密码钥匙使用过程中进行的数字签名是密码技术的一种,因此是满足等级保护中安全计算环境-身份鉴别测评项相关要求的。

*从密评的角度来考察,还需要进一步分析身份鉴别过程中的算法及密钥合规性处理,用于进行密码运算智能密码钥匙和密钥管理系统都是取得了国家密码管理局商用密码产品认证证书的合规的密码产品,因此D、A、K三项都是符合的,也是满足设备和计算层面身份鉴别测评项相关要求的。

5.2 不可否认性

等保2.0中在四级及以上系统中提出了抗抵赖的要求:
9.1.4.7安全计算环境-数据完整性c)在可能涉及法律责任认定的应用中,应采用密码技术提供数据原发证据和数据接收证据,实现数据原发行为的抗抵赖和数据接收行为的抗抵赖

密评三级系统中涉及到不可否认性的测评项主要有以下:
8.4 应用和数据安全-不可否认性
h)在可能涉及法律责任认定的应用中,宜采用密码技术提供数据原发证据和数据接收证据,实现数据原发行为的不可否认性和数据接收行为的不可否认性

以上文中的4.2.b为例,电子签章发生在应用层面公文流转的业务流程中,因此属于等保测评的安全计算环境层面,密评的应用和数据层面。

*从等保的角度来考察,使用了基于RSA算法的数字签名技术实现了电子签章的不可否认性。

*从密评的角度来考察,使用了非合规的RSA算法,D项可判符合,A项应判为不符合,由于参与RSA签名验签运算的智能密码钥匙和电子签章服务器均为合规的商用密码产品,因此K项应判为符合。应用和数据层面的不可否认性测评项最终综合得分为0.5分,部分符合。



6.数字签名的新技术和新应用

6.1 新兴技术

为了避免医患之间因为治疗产生的医疗纠纷事件,治疗方案可采用群签名或环签名技术,既有医生的签名,同时也不透露签名医生信息,在一定程度上可避免医患之间的纠纷。又如在:机密信息的批露、领导人的选举、电子商务、重要新闻发布、无线传感器网络等场景中,环签名都可发挥重要作用。
在群签名方案中,群成员可以匿名代表整个群对消息签名,同时具备不可伪造性、可追踪性、不关联性和防陷害性等特征。在一个群签名方案中,群体中的成员都可以生成群签名,外界可以验证其合法性,但无法确定到底是哪一个成员,即匿名性。若外界对群签名存在争议,此时群管理员只需“打开”争议的签名,揭示真正的签名者,即追踪性。

6.2 区块链&Web3

比特币之父中本聪选用了基于secp256k1椭圆曲线的ECDSA算法来进行数字签名,这就是数字签名在区块链中的核心应用。区块链通过使用基于共识机制来检测交易的有效性,使用分布式数据库来保存数据记录,人们可以在一个共享账本中储存数据、交换价值并记录交易活动,而其中的每一笔交易的背后都有数字签名技术的支撑。
区块链技术同时也是Web3的支柱,提供了安全的执行层,可以在其中创建、发行并交易加密资产,并且开发可编程的智能合约。

相关推荐

《亲爱的》特效真厉害,一块绿布贯彻全集,不得不佩服李现的演技

说起《亲爱的热爱的》这部电视剧,相信很多人并不陌生,这部电视剧让男演员李现因此爆红,其实李现是一个非常有潜力的男演员,他的表现也非常的精彩。但是大家都知道,在每一部电视剧中都有特效的存在,这部电视剧也...

充分运用AI特效,京剧电影《大唐贵妃》正式开机

“当唱到‘在天愿为比翼鸟,在地愿为连理枝’的时候,会从演员身后飞起一只巨大无比的比翼鸟,鸟在空中盘旋,刮起的风甚至会吹过角色的脸……”11月10日,电影《大唐贵妃》在上海车墩影视基地正式开机,这是第一...

工业光魔:没有PS的年代,特效怎么做?

大家好,我是戴着眼镜拿着话筒的阿拉斯加,片片。昨天,我给大家简单介绍了传奇特效公司——工业光魔的起源。...

价值13亿的“爽片”上映,每一帧都是钱砸出来的特效,却无缘国内

在七月二号的时候;美国在网络上面上映了一部大制作的“爽片”《明日之战》。...

影视特效是怎么制作出来的?来,一起体验吧!

电影是人们生活中不可缺少的一部分,是视觉与听觉相结合的现代艺术。悲剧、喜剧、亲情、友情、爱情都是它所能展现的内容。影视艺术有哪些独有的特征?什么是蒙太奇?全息影片又是什么意思?最近,少儿频道的一档节目...

ps五分钟学会自己制作“特效”

嗨,欢迎观看本期的摄影后期教学。那就是教大家一个特别炫酷,特别实用的ps“特效”光!有同学会问,“啊,特效光是不是特别难,我一点ps都不会!”咳咳不要着急,karry的教学都是针对ps零基础的同学的,...

抖音这个特效太扎心,无数网友看着看着就哭了……

2078年的你,会是什么样子?最近,抖音上一款特效火了。它可以让你看到自己从现在到2078年的容貌变化,你可以一点点看着皱纹爬上眼角,白发布满双鬓。看着看着,很多网友就哭了。有人说,一辈子很长却也很短...

《爱情公寓》的特效有多好?这集花了300万,网友看不出来特效

对于有些电视剧来说,特效那可是相当重要的一个部分了。尤其是对那些科幻片和一些玄幻类的电视剧就更加了。一部剧或者是影片特效的好坏,直接就影响了这个作品的质量。首先就让我们来看一下电视剧孤芳不自赏吧!里面...

窗花剪纸、鸭头滤镜、潜艇王者…… 揭秘抖音特效那些事儿

更多往期「Byte漫来了」系列漫画,可点击阅读:...

原来影视剧中的“光头”全是这样弄的 观众被骗了许多年

不管是电影还是电视剧,都会有光头因为是剧情的需要,那么她们的光头会是怎么弄的呢?一直都以为那些演员都是要真的剃光头,看到这些照片后,才知道深深的被骗了许多年。在影视中,常常看到演员有光头的戏,她在外出...

这些特效给几分?春晚舞台显示技术盘点

[中关村在线投影机频道原创]从1983年开始,春晚成为国人大年三十晚上最期待的一场精神盛宴。直播式节目播出方式,各类表演大师云集舞台,相声小品歌舞欢聚一堂,这是很多家庭一年中最欢乐的时刻,而春晚,则是...

11 款六元秒杀特效对比,哪个赢了不知道,貂蝉一眼输了

已经上线了11款六元秒杀皮肤,其中部分是升级后的“伴生皮”,也就是英雄的首款皮肤,首周六元之后恢复原价488点券。无论是何种形式的六元皮肤,不得不说他们的质量都非常好,这11款皮肤的特效对...

《半条命2 RTX》上架Steam 光追特效+4K效果

《半条命2RTX》现已在Steam平台正式上架,这款屡获殊荣的游戏以其沉浸式的故事、惊险的战斗和令人费解的物理特性吸引了全球数百万玩家,游戏现已经新增全面光追、物理纹理以及增强的多边形效果进行了彻底...

微信又有新玩法?多种好看特效可选择,赶快安排上

今日分享:手机特效适用系统:安卓今天小雷又发现了一个好玩的东西,就是手机加上特效也太好看了吧!早上上班的时候发现同事打开微信后,微信页面居然下起了樱花雨。看了同事的微信页面小雷我真的觉得太好玩太好看了...

判若两人!揭秘好莱坞的特效化妆过程

好莱坞的特效化妆牛到什么程度呢?可以把美人化妆成丑八怪,把黑人化妆成白人,把年轻人化妆成老人,把女人化妆成男人,把男人化妆成女人,把普通人化妆成怪物、外星人甚至异鬼……来见识一下这些神奇化妆术的“变...

取消回复欢迎 发表评论: