数字化契约如何守护?密码学数字签名共性解析
来源:微众银行区块链微信公众号
原文:https://mp.weixin.qq.com/s/To4HBNGUtfme1X7gZhXyfA
数字签名有哪些形式?相比其他签名形式,密码学数字签名优势几何?具备哪些独有功能?使用过程中又潜藏何等风险?
签名生效的契约是保障商业活动有序进行的核心手段之一。通过承诺的形式对预期在未来发生的商业行为进行约定,约定双方将履行约定看作是一种义务,任意一方违背承诺,都可以通过法律手段进行追诉,以此保障约定的行为最终得到履行。除开商业活动,契约保障对于涉及多方之间价值交换的其他活动同样至关重要。承载价值的各类权益,在实际交换过程中,一般都有先后顺序,需要通过契约来保证相关的交换流程都能如期完成,防止先得到权益的一方恶意中断流程,致使其他参与方未能得到约定权益,造成不必要的损失。
在上述过程中,签名机制是确保契约合法性和有效性的关键。
在信息化时代,如何借助技术手段实现有效的签名机制,那就不得不提以密码学数字签名为代表的数字签名技术。本文作为数字签名系列的开篇,对密码学数字签名中的共性特征进行逐一解析。
1. 密码学数字签名的优势
-
防仿冒:如果不是签名主体,无法仿冒签名主体进行签名。 -
防篡改:如果契约内容被篡改,原有的签名便会失效。 - 可验证:签名的有效性可以通过技术手段进行验证。
《史记》中就有“青泥封书”的记载。早在战国时期,古人将竹简捆扎之后,使用黏土封住绳结,并盖上印章,防止私拆和篡改,史称竹简封。基于类似技术,后续还出现了木牍封、棉纸封、火漆封等。尤其是使用红色封蜡的火漆封,在中西文明中有过辉煌的历史,被用于机要信件的身份鉴别和防篡改,并由此派生出各式各样的印章文化。
直至今日,印章依旧在契约制定中起着关键作用。在各类合同中,对纸质文件加盖印章(简称用印)是合同生效的必要条件。用印是一个十分严肃的过程,往往需要对于合同中每一处关键信息,都盖上印章确保其不被篡改。对于多页合同,往往还需要加盖骑缝章,保证合同内容的连续性。
即便如此,哪怕花费了大量人工,在纸面上盖满了印章,也很难保证所有信息都能受到印章保护。因此,以印章为代表的传统签名机制在处理包含大量信息的契约时,面临显著的效率和有效性问题。
这些问题恰恰也是数字签名设计中需要攻克的要点。
如果简单地将传统签名进行数字化处理,使用其数字化影像来直接用作数字签名,能不能解决以上问题呢?
显然答案是否定的。尤其对于防仿冒和防篡改,任何人一旦获得到一份签名的数字化影像,都可以无限复制并应用到任意契约内容上,这可能会为签名主体带来难以估量的损失。
为了防止攻击者轻易生成伪造的数字签名,签名的生成过程需要引入只有签名主体才知道的秘密参数,由此便可构造密码学数字签名,对应的秘密参数就是密码学签名算法中的密钥。
-
防抵赖:除了签名主体,其他人无法生成有效的签名,所以签名主体无法抵赖,对应的签名可以具备法律效力。 - 公开可验证:签名主体无需公开自己用于签名的私钥,第三方通过对应的公钥即可完成签名有效性的验证。
2. 密码学数字签名分类
在现实业务中,对于契约可以有很多形式,因此也对数字签名产生了非常多样化的功能需求。
限于篇幅,这里仅对主要的密码学数字签名算法类别进行列举,具体技术细节将在本系列的后续文章中展开。对于传统签名机制难以实现的效果,如隐匿签名主体身份、隐匿契约内容、快速验证海量签名,密码学数字签名都可以在保持签名机制防仿冒、防篡改、可验证基本特性的前提下,提供有效的技术方案,也可以进一步扩展,支持其他非常规效果,如提供定向签名验证的变色龙签名等。
由此可见,相比传统签名机制,密码学数字签名可以满足更加丰富的业务需求。
3. 密码学数字签名认证体系
-
数据摘要算法:将任意长度的数据缩减成签名算法能够处理的数据长度,生成与原数据内容强绑定的数据摘要,常用的有各类单向哈希算法(参见 第9论),如国密SM3,SHA-3等。 -
签名算法:使用签名主体的私钥,对数据摘要进行运算,生成数字签名,并提供基于公钥的数字签名验证,常用的有国密SM2、ECDSA、RSA签名等。 - PKI(Public Key Infrastructure)公钥证书服务:提供安全的公钥分发服务,确保用于验证签名的公钥确实属于签名主体,常用的有X.509公钥证书服务。
值得注意的是,尽管破解密码学数字签名比攻击传统签名(如私刻萝卜章)的技术难度会高很多,但随着软硬件技术的发展,还是有可能对现有技术进行成功攻击的,为此有必要充分了解相关安全风险。
如果数据摘要算法出现安全问题
攻击者就可以在保持原有签名不变的前提下,任意替换契约内容。2017年,Google演示了首例对SHA-1单向哈希算法碰撞攻击SHAttered,以单GPU运算110年的代价(任何大型云平台服务商都具备的计算能力)为精心篡改过的PDF文件生成了与原文件完全一样的SHA-1哈希值。因此,使用过时或已知不安全的数据摘要算法会极大影响数字签名的 防篡改性。如果签名算法出现安全问题
攻击者可以结合数字签名和原文件提取出签名所用的私钥,并使用该私钥仿冒签名主体,对未授权的契约进行签名。例如,目前基于椭圆曲线的签名算法设计都不具备抗量子特性,一旦量子计算实用化,就会对现有数字签名的 防仿冒性产生巨大冲击。如果PKI公钥证书服务出现安全问题
攻击者可以使用恶意软件、木马、病毒等非密码学攻击手段侵入PKI公钥证书服务,使用自己的公钥证书,来替换签名主体的公钥证书,随后便可任意使用自己的私钥对未授权的契约进行签名。另一类相关攻击是攻击者通过某些手段窃取了签名主体的私钥,签名主体已经完成了公钥证书的挂失,但PKI公钥证书服务未能对公钥证书的黑名单进行及时更新。在这些攻击的影响下,第三方可能无法通过PKI公钥证书服务来有效辨识签名所用的公钥是否真正属于签名主体,所以会对最终签名结果的可验证性造成显著影响。
尽管风险点不少,但作为全行业普遍使用且广泛认可的一类密码学技术,密码学数字签名还是一个非常有效的契约认证体系。企业务必需要遵循各类国家和行业相关技术规范,使用行业内标准化的技术实现,对数字签名系统进行及时更新和升级,最小化相关技术风险。
正是:数字契约一诺值千金,密码技术一签抵九鼎!
密码学数字签名作为现代商业中保障契约有效性的核心技术,对于完成经济数字化转型、业务在线化、产业数字化升级都至关重要。基于不同的业务需求,密码学数字签名可以提供不同的技术方案,满足传统签名机制难以满足的特性,在保障契约效力的前提下,支持更加多样化的业务创新。
在密码学数字签名诸多高级特性中,最常提及的便是隐匿签名主体的身份,技术上究竟如何实现,欲知详情,敬请关注下文分解。