无钥签名基础设施及档案领域应用介绍
2020-04-23沈渊飞金雷杨映辉谈建姜莹波
沈渊飞 金雷 杨映辉 谈建 姜莹波
(1.浙江省宁波市档案馆 浙江省宁波市 315000 2.浙江省慈溪市档案馆 浙江省慈溪市 315300)
(3.浙江爱立示信息科技有限公司 浙江省慈溪市 315300)
1 无钥签名介绍
无钥签名是传统公钥基础设施(Public Key Infrastructure, PKI)的替代解决方案。“无钥”一词并不意味着在签名创建期间不使用密钥,密钥仍然是进行身份验证所必需的,但是不需要依赖密钥的保密性,签名就可以可靠地验证。无钥签名不易受到密钥泄露的影响,从而为数字签名的长期有效性问题提供了一种解决方案。传统的PKI 签名可能受到时间戳的保护,但只要时间戳技术本身是基于PKI 的,密钥泄露问题仍然没有得到解决。
在无钥签名系统中,签名者的身份认证功能和证据的完整性保护功能是分开的,并由适合这些功能的加密工具完成。例如,签名者的身份认证仍然可以通过使用非对称加密来完成,但是签名的完整性可以通过使用无钥签名来保护。所谓的单向无冲突哈希函数,是公开、标准化且不涉及任何密钥的数据转换模式。
无钥签名可以实现同一时间签名多份文件。签名过程包括以下几个步骤:
(1)哈希:对要签名的文档进行哈希运算,哈希值代表该文档用于之后的流程;
(2)聚合:每次签名创建一个全球的临时哈希树,代表本次签名的所有文档。每次持续时间可能不同,在实际中,它被固定为一秒钟;
(3)发布:每次聚合树的前3 个哈希值被收集到永久哈希树(所谓的日历哈希链)中,并且该树的顶部哈希值作为信任锚发布。
要在实际中使用此类签名,需要一个完善的无钥签名基础设施(KSI),类似于传统签名解决方案中的PKI。这样的基础设施由多层级的聚合服务组成,并由这些服务生成每秒全球哈希树。第一层聚合服务——无钥签名网关,负责直接从客户端收集请求。每层聚合服务接收来自较低层级服务的请求,生成哈希树并将每层顶部的哈希值作为请求发送到较高层级服务。然后,等待更高层级服务的响应,并通过将接收到的响应与自身哈希树中对应的哈希链相结合,为每个更低层级的服务创建和传递响应。
本文讨论了可能出现的一些服务质量和可用性问题,并形成了解决方案。该方案避免了单点故障,并保证了服务的合理和稳定。爱立示(Aletheia)运行KSI 基础设施已经8年了——通过在实际应用中获得的经验教训总结了关于可用性和可伸缩性的一些结论。本文描述了KSI 基础设施的主要原理和操作原则,并简要概述了最小化安全风险的设计方案。
2 哈希树和日历哈希链
哈希树(Hash Trees):哈希树时间戳使用单向哈希函数将一系列文档转换为与时间相关联的固定长度摘要。用户将文档的哈希值发送给服务器并接收签名文件,证明该文档数据在某个时间存在并通过特定访问点接收请求。所有接收到的请求都被聚合到一个大型哈希树中,树的顶部哈希值每秒钟被固定和保留(图1)。
图1:哈希树的计算
图2:基于二叉哈希树的时间戳
图3:系统架构和聚合网络
日历哈希链:每秒的顶部哈希值在一个全球唯一的哈希树(称为日历哈希链)中链接在一起,这样新一秒的顶部哈希值只添加到哈希树的一侧。时间值被编码为日历的形状,其他用户可以显而易见地看到它的修改,因为日历哈希链的哈希根植会定期在广泛见证的公共媒体上发布。
3 服务架构
3.1 设计原则
底层数据结构保证了即使在恶意客户端和恶意服务提供者合作的情况下,也不可能发布伪造的、过期的或误导性的签名文件。哈希根植被提交到全球唯一的公共日历哈希链,使得对系统的篡改,尤其是对时间的篡改,对所有用户而言都是高度可见的。该系统的安全性不依赖于私钥的长期保密性,因为无法证明密钥实际上没有被泄漏。
3.2 形成哈希树
在每个聚合周期内,聚合树的顶部数据存储在日历数据库中。为了不可撤销地提交日历数据库中序列化的值,它们被链接到一个二叉哈希树中,这样新叶只被添加到一侧,就像时间线上的标记一样(参见图2 中的t)。这个数据库是全球唯一且公共的,向所有第三方开放以提供审计、存档和验证。
图2 显示出了系统如何依次(t,t+1,t+2,…)运行,即每次产生一个聚合树。系统的容量(N)由最大树大小N=2l确定,其中l 表示聚合树的深度。
4 基础设施概述
系统架构如图3 所示。文件的哈希运算发生在形成签名(或时间戳)请求的应用程序中,有软件工具可供使用。请求被发送到网关,网关是向最终用户提供服务的系统组件。网关对在其聚合周期中接收到的请求执行初始聚合,然后将其聚合请求发送到上层聚合。请求通过多层聚合服务进行聚合,核心层选择一个全球唯一的哈希根值,同时该响应立即通过聚合网络返回。
每个聚合周期的哈希根值都储存在“日历数据库”中,并通过“日历缓存”分发到扩展服务(该服务通常与网关主机位于同一位置),客户端应用程序使用扩展服务进行验证。
5 可用性
5.1 聚合网络的可用性
为了提高服务的可用性,必须避免单点故障,我们在系统中的所有位置都采用冗余设计。每个聚合服务器都由在地理上分散分布的、并行工作的聚合服务器集群所替代,以便较低级别的服务器向集群的每个成员发送请求,并使用第一个接收到的服务器作为有效答复。如果假设单个聚合服务器的可用系数为0.99(即大约每年停机3.5 天),那么在假设停机事件完全独立的情况下,具有两个服务器的集群的可用性大约为0.9999。同时,集群可以在不停机的情况下进行扩展和重新配置。
5.2 核心网络的可用性
顶层聚合步骤也由具有冗余设计的服务器集群执行。为确保全球哈希日历的唯一性,最上层集群(称为核心集群)的服务器之间必须存在某种协议。可能需要处理的情况包括:
(1)一些请求可能无法到达核心服务器的所有服务器;
(2)核心服务器可能以不同的顺序接收请求;
(3)一些站点可能被断开连接、关闭、维护等。
总体上,可能所有核心服务器都有不同的哈希根值。该问题的解决方案是,服务器使用多方协议将其哈希根值发送到所有核心节点,在每个可能重叠的回合结束时,多数核心服务器具有相同的哈希根值,并且具有不同哈希根值的服务器将知道它们不属于多数。只有属于多数的核心服务器才能根据它们同意的哈希根值填写日历数据库中的值,并响应它们的请求。只要仲裁服务器可以相互通信,协议就可以工作。由于网络连接问题或本地托管问题而从核心服务集群中断的服务器将自动恢复。
核心网络中,平均达成共识协议的时间是连接的核心服务器之间往返时间的1.5 倍。之所以能够做到这一点,是因为我们不采用恶意的安全模型,也不需解决完整的拜占庭协议(Byzantine Agreement)问题。在全网状连接模型中,每条消息都使用不同的路由进行广播。
图4:无钥签名区块链技术对数字档案的完整性验证展示效果图
6 无钥签名在档案领域应用案例介绍
随着国家信息化建设的发展和浙江省“互联网+政务服务”的广泛应用、“最多跑一次”改革的深入推进要求,近年来,档案部门加快推行“最多跑一次”事项电子化归档,建立数字化档案资源在线归档、保存、移交和利用长效机制,极大便利了群众查档需求,促进了档案资源社会化功能的发挥。
然而由于数字档案其虚拟性,具有易篡改、易损毁、环境依赖性强等特点,对数字档案资源全生命周期内的安全性、原始性、可靠性提出了新的挑战。
慈溪市档案馆、宁波市档案馆以服务“最多跑一次”改革为抓手,从如何确保电子文件归档安全、数字档案存储安全的角度,进行研究和探索应用。并率先应用无钥签名区块链技术,通过对数字档案文件添加“可信任标签”,提取数字指纹,保证数字档案在形成之初、办理流转、共享利用、长久储存等各个环节的完整性和可靠性,从而确保电子文件和数据在各环节不被篡改,实现电子化归档全生命周期安全管理和数字档案的溯源管理。
区块链技术在档案领域的成功应用也将为政务数据的开放共享、安全管理提供新的解决思路。无钥签名区块链技术对数字档案的完整性验证展示效果图如图4 所示。