微众银行区块链:数字化契约如何守护?密码学数字签名共性解析
2020-07-01 22:51 文章来自:IFTNews 收藏(0) 阅读(391) 评论(0)

数字签名有哪些形式?相比其他签名形式,密码学数字签名优势几何?具备哪些独有功能?使用过程中又潜藏何等风险?

签名生效的契约是保障商业活动有序进行的核心手段之一。通过承诺的形式对预期在未来发生的商业行为进行约定,约定双方将履行约定看作是一种义务,任意一方违背承诺,都可以通过法律手段进行追诉,以此保障约定的行为最终得到履行。

除开商业活动,契约保障对于涉及多方之间价值交换的其他活动同样至关重要。承载价值的各类权益,在实际交换过程中,一般都有先后顺序,需要通过契约来保证相关的交换流程都能如期完成,防止先得到权益的一方恶意中断流程,致使其他参与方未能得到约定权益,造成不必要的损失。

在上述过程中,签名机制是确保契约合法性和有效性的关键。

在信息化时代,如何借助技术手段实现有效的签名机制,那就不得不提以密码学数字签名为代表的数字签名技术。本文作为数字签名系列的开篇,对密码学数字签名中的共性特征进行逐一解析。

一、密码学数字签名的优势

 

本质上,签名机制是对“谁认同了什么”的一个约束,这一约束将签名主体和契约内容通过签名关联了起来,并同时满足以下基本特性:
  • 防仿冒:如果不是签名主体,无法仿冒签名主体进行签名。
  • 防篡改:如果契约内容被篡改,原有的签名便会失效。
  • 可验证:签名的有效性可以通过技术手段进行验证。

人类历史发展的不同阶段,曾经为不同契约载体引入过不同的签名机制。在信息化时代到来之前,契约主要记载在物理介质上,如羊皮、纸、竹简等。除了手写签名之外,最常见的签名机制就是印章。

《史记》中就有“青泥封书”的记载。早在战国时期,古人将竹简捆扎之后,使用黏土封住绳结,并盖上印章,防止私拆和篡改,史称竹简封。基于类似技术,后续还出现了木牍封、棉纸封、火漆封等。尤其是使用红色封蜡的火漆封,在中西文明中有过辉煌的历史,被用于机要信件的身份鉴别和防篡改,并由此派生出各式各样的印章文化。

直至今日,印章依旧在契约制定中起着关键作用。在各类合同中,对纸质文件加盖印章(简称用印)是合同生效的必要条件。用印是一个十分严肃的过程,往往需要对于合同中每一处关键信息,都盖上印章确保其不被篡改。对于多页合同,往往还需要加盖骑缝章,保证合同内容的连续性。

即便如此,哪怕花费了大量人工,在纸面上盖满了印章,也很难保证所有信息都能受到印章保护。因此,以印章为代表的传统签名机制在处理包含大量信息的契约时,面临显著的效率和有效性问题。

这些问题恰恰也是数字签名设计中需要攻克的要点。

如果简单地将传统签名进行数字化处理,使用其数字化影像来直接用作数字签名,能不能解决以上问题呢?

显然答案是否定的。尤其对于防仿冒和防篡改,任何人一旦获得到一份签名的数字化影像,都可以无限复制并应用到任意契约内容上,这可能会为签名主体带来难以估量的损失。

为了防止攻击者轻易生成伪造的数字签名,签名的生成过程需要引入只有签名主体才知道的秘密参数,由此便可构造密码学数字签名,对应的秘密参数就是密码学签名算法中的密钥。


一般而言,密码学数字签名在满足以上基本特性之外,可以选择性地引入更丰富的特性,例如:
  • 防抵赖:除了签名主体,其他人无法生成有效的签名,所以签名主体无法抵赖,对应的签名可以具备法律效力。
  • 公开可验证:签名主体无需公开自己用于签名的私钥,第三方通过对应的公钥即可完成签名有效性的验证。


这些特性可以用来支持数字化经济中各式各样的数字化契约,对于需要进行多方协商的约定,在现行的法律框架下,一般都可以采用对应的密码学数字签名进行有效地保障。

 二、密码学数字签名分类

 

在现实业务中,对于契约可以有很多形式,因此也对数字签名产生了非常多样化的功能需求。

限于篇幅,这里仅对主要的密码学数字签名算法类别进行列举,具体技术细节将在本系列的后续文章中展开。

对于传统签名机制难以实现的效果,如隐匿签名主体身份、隐匿契约内容、快速验证海量签名,密码学数字签名都可以在保持签名机制防仿冒、防篡改、可验证基本特性的前提下,提供有效的技术方案,也可以进一步扩展,支持其他非常规效果,如提供定向签名验证的变色龙签名等。

由此可见,相比传统签名机制,密码学数字签名可以满足更加丰富的业务需求。


三、密码学数字签名认证体系

尽管具体密码学数字签名算法各有差异,构建一个有效的密码学签名认证体系一般都会用到一系列共性技术。以基于公钥密码学算法的数字签名为例,常见的共性技术如下:
  • 数据摘要算法:将任意长度的数据缩减成签名算法能够处理的数据长度,生成与原数据内容强绑定的数据摘要,常用的有各类单向哈希算法(参见第9论),如国密SM3,SHA-3等。
  • 签名算法:使用签名主体的私钥,对数据摘要进行运算,生成数字签名,并提供基于公钥的数字签名验证,常用的有国密SM2、ECDSA、RSA签名等。
  • PKI(Public Key Infrastructure)公钥证书服务:提供安全的公钥分发服务,确保用于验证签名的公钥确实属于签名主体,常用的有X.509公钥证书服务。

对照传统签名技术,数据摘要算法相当于捆扎文件的封条,签名算法相当于封条上盖的代表身份的印章,PKI公钥证书服务相当于识别印章有效性的官方图鉴,这三类技术缺一不可。

值得注意的是,尽管破解密码学数字签名比攻击传统签名(如私刻萝卜章)的技术难度会高很多,但随着软硬件技术的发展,还是有可能对现有技术进行成功攻击的,为此有必要充分了解相关安全风险。

如果数据摘要算法出现安全问题

攻击者就可以在保持原有签名不变的前提下,任意替换契约内容。2017年,Google演示了首例对SHA-1单向哈希算法碰撞攻击SHAttered,以单GPU运算110年的代价(任何大型云平台服务商都具备的计算能力)为精心篡改过的PDF文件生成了与原文件完全一样的SHA-1哈希值。因此,使用过时或已知不安全的数据摘要算法会极大影响数字签名的防篡改性。

如果签名算法出现安全问题

攻击者可以结合数字签名和原文件提取出签名所用的私钥,并使用该私钥仿冒签名主体,对未授权的契约进行签名。例如,目前基于椭圆曲线的签名算法设计都不具备抗量子特性,一旦量子计算实用化,就会对现有数字签名的防仿冒性产生巨大冲击。

如果PKI公钥证书服务出现安全问题

攻击者可以使用恶意软件、木马、病毒等非密码学攻击手段侵入PKI公钥证书服务,使用自己的公钥证书,来替换签名主体的公钥证书,随后便可任意使用自己的私钥对未授权的契约进行签名。

另一类相关攻击是攻击者通过某些手段窃取了签名主体的私钥,签名主体已经完成了公钥证书的挂失,但PKI公钥证书服务未能对公钥证书的黑名单进行及时更新。在这些攻击的影响下,第三方可能无法通过PKI公钥证书服务来有效辨识签名所用的公钥是否真正属于签名主体,所以会对最终签名结果的可验证性造成显著影响。

尽管风险点不少,但作为全行业普遍使用且广泛认可的一类密码学技术,密码学数字签名还是一个非常有效的契约认证体系。企业务必需要遵循各类国家和行业相关技术规范,使用行业内标准化的技术实现,对数字签名系统进行及时更新和升级,最小化相关技术风险。


正是:数字契约一诺值千金,密码技术一签抵九鼎!

密码学数字签名作为现代商业中保障契约有效性的核心技术,对于完成经济数字化转型、业务在线化、产业数字化升级都至关重要。基于不同的业务需求,密码学数字签名可以提供不同的技术方案,满足传统签名机制难以满足的特性,在保障契约效力的前提下,支持更加多样化的业务创新。

在密码学数字签名诸多高级特性中,最常提及的便是隐匿签名主体的身份,技术上究竟如何实现,欲知详情,敬请关注下文分解。

作者:严强  微众银行区块链