基于微服务和区块链的数字签章系统的设计与实现

2023-04-13 17:06郑响萍伏金娣蔡海军
计算机时代 2023年4期
关键词:微服务区块链分布式

郑响萍 伏金娣 蔡海军

摘  要: 在推进全面社会无纸化办公的工作中,遇到多方、远程签署的信任问题,当发生纠纷无法举证等困难,无纸化处理会很难落实。本文通过分布式微服务技术架构,结合区块链防篡改技术、声纹技术、人脸识别技术、数字签章等,实现便捷和可信任的电子签章系统,确保无纸化处理司法举证材料完整和权威,实现无纸化办公需求。

关键词: 无纸化办公; 区块链; 分布式; 微服务; 数字签章

中图分类号:TP311          文献标识码:A     文章编号:1006-8228(2023)04-91-06

Abstract: In the process of promoting paperless office work in an all-round society, we have encountered the trust problem of multi-party and remote signing. When disputes occurred, we could not provide evidence, which make it difficult to implement paperless handling. In this paper, through the distributed microservice technology architecture, combined with technologies such as blockchain tamper-proof, voice-print, face recognition, and digital signature, a convenient and trusted electronic signature system is realized. It ensures the integrity and authority of paperless processing of judicial evidential materials, and realizes paperless business requirements.

Key words: paperless office; blockchain; distributed; microservice; digital signature

0 引言

2005年《中华人民共和国电子签名法》颁布,该法案规定了电子签名的四个要素:真实身份、真实意愿、原文未改、签名未改,为在线电子文档的协作提供了可行方案。以此来认定电子签名具有法律保障。

2018年《最高人民法院关于互联网法院审理案件若干问题的规定》中明确,“当事人提交的电子数据,通过电子签名、可信时间戳、哈希值校验、区块链等证据收集、固定和防篡改的技术手段或者通过电子取证存证平台认证,能够证明其真实性的,互联网法院应当确认”。之后,2019年、2020年陆续有《国务院关于在线政务服务的若干规定》、《区块链司法存证应用白皮书》、《关于加强公证行业党的领导优化公证法律服务的意见》发布,随着各项政策的落地,数字签章在更多领域逐步实施,体现出了巨大的价值。

中国电子工业标准化技术协会于2020年底正式发布了《区块链数字签章参考架构》,为区块链的去中心化、分布式存储的技术能力和防篡改的特性,对原文未改、签名未改、真实身份等签章要求提供了保障[1]。

本系统的设计方案根据《中华人民共和国电子签名法》、《国务院关于在线政务服务的若干规定》、《区块链数字签章参考架构》等要求,结合区块链技术,数字签章、时间戳、哈希散列算法、人脸和声纹技术等开发。本系统的应用可以有效提升协作效率,真实记录协作对象,协作过程和协作内容,且具备法律效力。

1 系统方案介绍

本方案采用微服务架构,设计核心业务服务中台,整合三方CA服务和区块链技术,确保签署过程的有据可依和可信任性。

服务中台包括签章服务、文件服务、流程审批服务、权限及用户服务,区块链服务等,具体架构如图1所示。

1.1 CA服务

CA服务用于确保数字签章具备法律效应。在对文档进行数字签章前,须通过传输主体的真实信息,获取国家认可的三方CA认证服务机构签发的数字签章,通过签署文档,获取文档内容摘要,并将内容摘要、个人信息、人脸、声纹和操作时间戳等形成文本,同时提供给CA机构存档。CA认证机构与司法机构合作,将内容按司法需求进行存储保管,当签署产生纠纷时,可将其作为法律依据,数字签章司法鉴定流程如图2所示。

目前,中國商用密码算法标准,包括SM2,SM3和SM4等,是面向商业应用的密码算法规范,称为国密算法。本设计采用SM2国密加密算法和SM3哈希算法进行数据处理。

通过CA机构创建完数字证书后,提取SM2公私钥,当需要签章时,通过计算获得当前时间戳,在文档中盖上企业或个人电子签名信息,提取需签署文档的SM3哈希值后,将SM3哈希值与时间戳进行字符串拼接,通过私钥加密,生成签名,将签名、时间戳、文档内容等记录存档,这样就完成了对文档的数字签章,具体流程如图3所示。

1.2 区块链

虽有电子签名信息,但仅凭此很难完全满足司法举证条件,合同文档签署后的信息修改、删除等行为,签章数据的丢失行为都可能发生,这种依赖三方数字签章系统的中心化系统方案,存在较大的安全风险。利用区块链技术将区块链技术的不可篡改、多处备份等特性,与电子存证技术结合,有效提升了电子证据质量和存证可信度,降低了举证成本[2]。

区块链技术具有不可篡改,多方参与等特性,《区块链司法存证应用白皮书》中将区块链定义为“一种由多方共同维护,使用密码学保证传输与访问安全,能够实现数据一致存储、难以篡改、防止抵赖的记账技术,也称分布式账本技术。”。区块链技术运用了分布式存储、共识机制、点到点网络、加密算法等,以去中心化和不信任的理念,允许公共网络范围内,任意有能力的节点成为区块链网络的成员之一,共同对区块链内的节点以某种约定规则进行读写操作,平等地维护区块链运行,区块链中的所有节点,通过共识机制等同步彼此的数据,最终保证区块链网络数据的一致性、可靠性和安全性[3-4]。

随着区块链技术的发展,区块链演变出公有链、私有链、联盟链。公有链最符合区块链技术的去中心化和不信任特性,但计算速度慢,而私有链权威性比较低。联盟链在去中心化、计算能力及权威性之间做了平衡,根据《区块链司法存证应用白皮书》建议,本设计选择司法机构节点、政务节点、企业节点和其他节点共同组成,具有权威可信度,且计算速度更快的联盟链[5]。

数字签章过程中,重要操作节点都将在区块链中记录,结合时间戳信息构建线性化数据链[6],举证时可按时间轴还原签章过程的细节信息,为司法举证提供有力证据,如图4所示。

1.3 微服务

该设计方案需支持大并发量签署和按需水平扩容,故采用分布式微服务架构。微服务设计采用Spring Cloud技术架构,Spring Cloud提供了微服务工具集合,如服务发现、服务注册、负载均衡、服务调用、API网关等[7],采用Docker容器化方案,通过DevOps系列工具[8],自动交付部署,满足按需水平扩容需求。其整体架构如图5所示。

2 系统功能实现

数字签章系统包括用户中心、文件中心、签章服务、区块链服务和基础服务等基础中台,以及基于中台实现的签章业务系统。系统通过Spring Cloud构建微服务架构,通过Eureka注册各服务中心的接口,业务系统和服务之间通过Feign进行服务调用[9-10]。

2.1 用户中心

用户中心功能包括用户注册、用户注销、用户个人认证、用户企业认证等。在创建签章前需要提供认证信息,在构建三方CA签章时,需提供给CA机构,如图6所示。

用户经过实名认证后,个人信息将被加密并保存到关系型数据库中,后续创建CA证书时,查询并解密后提交给三方CA机构。

为确保签署过程真实有效且为操作人本人,个人认证时,除需录入身份证等个人信息外,须同步录入人脸和声纹信息。系统在每次签署时,将通过人脸识别和声纹识别技术,确保为本人操作。

2.2 文件中心

文件中心提供文档上传、删除等管理功能,为避免文件原件丢失,采用分布式文件系统保存多份备份文件,尽量将其分布存储在多台服务器和多机房中,减少意外导致文件丢失。

签章文件存在容量大、数量多等特点,因此非常符合分布式文件系统的特性。分布式文件系统最早由Google在2003年发表的《The Google File System》定义,起初设计目的是为解决快速增长的大量文件的存储及成本问题,提供以大小固定的块为存储单位的存储方式,用普通服务器,通过强大的多备份和容错能力,来实现安全且低成本的存储方案。

Hadoop体系中的HDFS,为开源的分布式文件系统,其参照GFS及其论文实现,符合大量文件高访问量等情况,故本设计采用HDFS作为签章文档的存储系统。HDFS包括一个中心节点NameNode,用于存储和检索文件数据,多个数据节点DataNode作为文件块数据存储节点。文件中心通过HDFS存取API实现文件管理服务,将上传的文件存储多份备份,提供文件访问、文件下载、文件修改等功能[11-12]。文件中心实现了文件权限管理功能,只有用户本人或授权用户才能具备文档读写权限。文件服务如图7所示。

2.3 签章服务

签章服务提供签章创建和管理、文件签章等服务。

在用户认证完成后,系统会为用户创建其惟一的SM2公私钥,并将公私钥加密存储到数据库中,同时使用公私钥向三方CA机构申请数字证书,确保公私钥具备公信力。

本设计考虑签章的可视化,设计了图形章,图像章采用Java的Awt等技术实现。绘制图形章首先通过Awt为用户绘制章图案,并存储于数据库中,在需要签章时,通过IText等工具,将该图形章绘制到文档的指定位置上,完成对文档的盖章动作,系统将原文件和完成图形签章的文件存储到文件中心法完成图形章盖章流程。

此后系统会计算完成图形签章文件的Hash值,将Hash值和时间戳拼接后,通过私钥加密形成签名,将签名信息、文件内容、时间戳等信息存储到数据库中,同时创建区块链节点保存签名信息,确保内容的准确性和不可篡改性[13],如图8所示。为确保数据存储安全,数据库和文件采用多节点备份存储。

文档签章过程通常涉及到多方,为确保签章过程可追溯,系统将各方签署的完整过程都以日志的形式记录,并保存到时序数据库和区块链节点中。

2.4 业务系统及其他

业务系统服务通过Spring Cloud 的Feign服务,调用文件中心、用户中心、签章服务等接口,实现签署业务场景流程。

签署流程需具备工作流、基础权限中心等基础功能,实现签署流程、签署人员以及权限设定等功能。

工作流功能将为业务系统的个性化流程提供支持,通过图形化流程配置界面,完成流程的设定和管理。国内外已有不少开源的工作流工具,如Activiti,Flowable和JFlow等,均支持BPMN规范。我们采用开源Activiti,其提供了与Spring Cloud整合的方案,通过图形界面可以快速实现工作流节点配置[14]。

权限中心通过Apache Shrio实现RBAC模型,提供页面权限、操作权限和数据权限等,将工作流、权限等封装为服务接口,注册到Eureka中,再将业务系统整合为业务流程。

3 应用部署

系统采用容器化部署,搭建DockerHub镜像管理服务,每个Spring Cloud微服务创建DockerFile文件,通过Jenkins编译构建代码后创建Docker镜像并上传到Hub中,Jenkins通過脚本,使容器节点快速完成部署和扩容[15]。

系统部署共需五台服务器,包括一台二核4G低配服务器,四台二核8G高配服务器。其中低配服务器部署Jenkins和DockerHub等环境。二台高配服务器搭建文件中心、用户中心、签章服务和区块链服务,每个服务分别部署二个节点。其余二台高配服务器部署业务系统和日志系统等。当签章中心等中台服务遇到瓶颈,可随时通过增加服务器扩容节点,通过Jenkins获取对应服务的镜像文件,并部署到Docker节点[16]。

4 结论

该电子签章系统是基于分布式微服务和区块链技术,能确保签署的内容真实、主体明确、不可篡改和可追溯,保证签署过程符合法规条例,为司法过程提供完备证据。系统采用分布式微服务架构,能安全稳定运行,可实现快速动态扩容,并支持弹性高并发量。系统若能结合便携式硬件设备、AR技术等,将能适用于更多场景,使用更加便捷。

参考文献(References):

[1] 孙梦龙.司法区块链自证功能研究[D].硕士,黑龙江:黑龙江大学,2021

[2] 冒小乐,陈鼎洁,孙国梓.基于区块链的电子数据存证的设计与实现[J].中兴通讯技术,2018,24(6):28-34

[3] 杨保华,陈昌.区块链原理、设计与应用(第2版)[M].北京:机械工业出版社,2020

[4] 洛恩·兰茨著.沈寅,易维利,译.精通区块链[M].北京:中国电力出版社,2022

[5] 荆兆星.面向公检法司链上存证的安全存储技术研究[D].硕士,海南:海南大学,2021

[6] 候义斌,梁勋,占小瑜.基于区块链的电子证据系统架构模型[J].计算机科学,2018,45(S1):348-351

[7] 翟永超.Spring Cloud微服务实战[M].北京:电子工业出版社,2017

[8] 杰夫·尼克罗夫,斯蒂芬·库恩斯利著.耿苏宁,译.Docker实战(第2版)[M].北京:清华大学出版社,2021.

[9] 欧创新,邓頔.中台架构与实现:基于DDD和微服务[M].北京:机械工业出版社,2022

[10] 潘志伟.架构演变实战:从单体到微服务再到中台[M].北京:电子工业出版社,2022

[11] 蔡斌,陈湘萍.Hadoop技术内幕:深入解析Hadoop Common和HDFS架构设计[M].北京:机械工业出版社,2013

[12] 文艾,王磊.高可用性的HDFS Hadoop分布式文件系统深度实践[M].北京:清华大学出版社,2012

[13] 邹均,张海宁,唐屹,等.区块链技术指南[M].北京:机械工业出版社,2016

[14] 杨恩雄.疯狂工作流讲义:基于Activiti 6.x的应用开发[M].北京:电子工业出版社,2017

[15] 周立.Spring Cloud与Docker微服务架构实战[M].北京:电子工业出版社,2018

[16] 布伦特·莱斯特著.郝树伟,石雪峰,雷涛,译.Jenkins 2权威指南[M].北京:电子工业出版社,2019

*基金項目:浙江理工大学科技与艺术学院院设科研项目(KY2022002)

作者简介:郑响萍(1982-),女,浙江杭州人,硕士,工程师,主要研究方向:教育信息化管理、大数据、软件开发和信息服务等。

猜你喜欢
微服务区块链分布式
微信公众平台在医院图书馆的应用现状调查
基于微信企业号的校园移动服务
微服务视角下高职图书馆数字资源使用分析
区块链技术的应用价值分析
“区块链”的苟且、诗和远方
从单一模式系统架构往微服务架构迁移转化技术研究
基于区块链技术的数字货币与传统货币辨析
用“区块链”助推中企走出去
基于DDS的分布式三维协同仿真研究
西门子 分布式I/O Simatic ET 200AL