Alfresco中的数字签名工作流
摘要
实现无纸化办公室仍存在一些障碍,其中之一就是签名的收集,因为几乎一半的文档都会被打印出来,仅仅是为了获取签名。数字签名可以具备与手写签名同等的法律证据效力,前提是它们基于由经认证的认证机构颁发的证书,并且相关的私钥存储在防篡改令牌安全设备(如智能卡)上。本文提出了一种用于安全数字签名工作流管理的平台,该平台将基于安全令牌的数字签名与企业内容管理 Alfresco 相集成,每个用户均可将其账户关联一组智能卡。随后,文档可使用公民卡或其他具备数字签名功能的智能卡进行签名。我们实现了一个 Alfresco 模块,使我们能够探索多种工作流技术,以实现实际任务中的安全数字签名工作流,例如人们在各部门之间传递纸质文件进行签名的过程。由于所有用户均可查看文档在整个签署过程中的当前状态,因此保留了系统信任等重要的安全属性。我们还描述了一个外部验证Web服务,它为用户提供验证已签名文档的方式。该验证服务会向用户展示文档的重要安全属性,例如时间戳、证书属性,并突出显示文档在数字签名工作流中的完整性,这些数字签名由我们在 Alfresco 中定义的模块所收集。
关键词
数字签名 · Workflow management · 数字公民卡 · Business 流程管理 · Alfresco
1 引言
以印刷格式存在的文档已使用多年,例如书籍、纸质文件、表单、合同及任何相关材料[1]。如今,人们选择无纸化环境有许多理由,包括减少纸张消耗带来的环境危害以及纸张生产、打印、传输和存储的经济成本。数字环境摆脱纸质文件在位置和物理上的限制,更好地支持文档的更新、归档和搜索[2]。
随着信息技术和计算机系统的发展,文档已由基于计算机的文档管理系统进行管理。文档管理系统(DMS)可定义为一种计算机系统,用于在封闭的客户端/服务器架构网络上存储、管理和检索电子/数字文档[3]。然而,DMS最初主要关注文件以及存储/索引/检索机制,以便用户对文档进行分类和检索。它们最初仅关注文件作为容器的功能。但随着市场需求的变化,DMS的重点从文件管理转向了内容管理。例如,如果我们有一个网站,它由需要管理的 HTML、XML或ASP页面组成。因此,该系统的名称被更改为企业内容管理(ECM)[4]。
根据[5,6]的作者所述,无纸化办公很快就会注定失败。尽管已经做出了许多减少用纸的努力,企业仍然大量使用纸质文件。实现无纸化办公室存在一些障碍,例如:屏幕阅读对某些人来说较为困难,尤其是中年人,他们适应计算机和互联网并不容易,不喜欢在显示器上阅读,更倾向于阅读纸质文件;由于软件或硬件故障可能导致数据和文档丢失的风险;此外,尽管电子存储比纸质存储更安全,但一些人仍因不信任在线工具的真实性或安全性而心存顾虑。签名是迈向无纸化办公室的另一大障碍,根据[7]的作者指出,近一半的文档被打印仅仅是为了添加签名。因此,我们希望重点关注这一问题的解决方案。
将企业转变为无纸化办公室有两种方法。其中一种方法是通过自动化那些通常以纸质文件作为重要工具的流程来实现。实现这一目标的技术有多种:企业数据自动化软件,用于将表单和数据与处理它们的系统集成;表单技术,用于设计各种类型的表单;数据库设备,用于替代文件柜的功能,即将数据转化为数字形式并存储在具备足够安全技术的数据库中;数字签名,可在数字形式中提供签名凭证。纸质文件通常被用作商业凭证,在商业交易中需要生成具有法律约束力的协议,并借助工作流平台技术实现办公室的流程管理。通常,纸质文档用于将数据传递到其他部门,以便继续完成后续所需的操作(例如,一份文档被传递到另一个部门进行签名)。这种工作流程可以通过工作流平台以数字形式进行记录和传输。将企业转变为无纸化办公室的第二种方法是数据存储转换。在普通办公室中,数据通常存储并保护在文件柜中,但这最终导致办公室堆满无用的纸质文件。通过使用“无纸化办公室”技术,所有这些数据都可以非常容易地转换为数字形式。支持此过程的一些可用工具包括:扫描仪、书籍复印机、照片扫描仪、传真到便携式文档格式(PDF)转换器等。其中最重要的工具之一是ECM系统[8]。这两种将企业转变为无纸化办公室的方法引导我们找到一个能够整合这些技术的解决方案。
自动化通常使用纸质文件作为基本工具的流程,转而使用存储数字信息的工具,例如上述的ECM系统。
本文详细阐述的工作旨在为企业提供一种自动化流程签名的方法,以避免在部门之间传递打印数据。此类传递可能导致重要文件丢失,或通过纸质文件进行文件/签名伪造。我们希望企业能够在ECM系统中安全地让多人参与自动化签名流程。这样一来,企业还能受益于纸质文件的减少以及重要文件丢失风险的降低,因为文档将在线存储。我们将重点集成数字签名系统与ECM系统。这使得用户可以在文档管理器中对文档进行数字签名,从而实现文档的在线数字化保存。我们利用某些ECM系统所具备的工作流功能,为用户提供在ECM系统中创建工作流签名的方式。例如,多个用户可依次签署同一份文档,并且所有人都能查看文档的状态。我们通过智能卡(例如公民卡)为用户提供一种安全的文档签名方式。
本文的后续章节安排如下:相关工作、电子签名与数字签名、密码学概念、智能卡、Alfresco和工作流、实现和结论。
2 相关工作
在以下章节中,我们将介绍一系列系统的概览,并比较其功能。由于我们的目标是集成这两个系统,因此我们还将概述与此相关的方向,即与ECM系统集成的数字签名系统(无论是否带有工作流)以及功能概览。以比较所分析的不同 ECM系统并选择最佳的ECM系统
表1. 文档管理系统/企业内容管理系统比较 ‐ (企业版,社区版)
| Alfresco C A | lfresco E N | uxeo | DocuWare e | FileCabinet | |
|---|---|---|---|---|---|
| 开源 | LGPLv3 | - | LGPLv2.1 ‐ | - | |
| 附加组件 | |||||
| 工作流 | |||||
| PDF支持 | |||||
| 文本/二进制支持 | |||||
| 用户/群组支持 | |||||
| 数字签名 | - | - | - | - | - |
| 电子签名 | - | - | - | ||
| 记录管理 | - | - |
表1续. 文档管理系统/企业内容管理系统比较 ‐ (企业版,社区版)
| LogicalDOCC L | ogicalDOC E | |
|---|---|---|
| 开源 | LGPLv2.1 | - |
| 附加组件 | ||
| 工作流 | - | |
| PDF支持 | ||
| 文本/二进制支持 | ||
| 用户/群组支持 | ||
| 数字签名 | - | |
| 电子签名 | - | - |
| 记录管理 | - |
我们分析了一些最受欢迎的企业内容管理系统。我们对开源系统感兴趣,因为我们能够完全控制这些系统,能够创建免费的附加组件,并且通过查看系统代码获得安全性保障,同时还能根据我们的所有需求进行定制。[12]我们也分析了一些非开源系统,因为它们可能具备我们所需的功能,因此我们必须考虑自己是否正在为市场带来新的东西,或者该功能是否已经存在。在非开源系统中,我们重点考察那些支持签名或工作流的系统,因为这是我们主要关注的方向。为了选择开源的企业内容管理系统,我们寻找具有工作流功能的系统,因此LogicalDOC社区不在考虑范围内。在其他系统中,Alfresco社区和Nuxeo社区之间的选择较为复杂,但除了Alfresco拥有更多用户外,它还拥有更广泛的在线社区、更多的教程和帮助文档。
为了比较所分析的各个数字签名工作流系统,并查看可添加的功能以改进市场上已有的产品,我们决定制作一个包含某些功能的比较表(表2):了解此类软件是否支持物理技术(如USB令牌、智能卡或移动设备)非常重要。工作流有几种类型:个人工作流(仅一人)、顺序工作流(遵循定义的顺序)、并行工作流(允许任意顺序)或组工作流(系统允许创建注册用户的组)。所有签名的验证是系统的一项功能,可验证具有多个签名的文档并提供有关这些签名的信息。
在此表中,我们可以看到可集成到Alfresco中的独立系统以及Alfresco附加组件的主要功能。我们可以对比在我们的系统中所需的主要功能。独立系统与附加组件的区别在于,附加组件仅设计用于在Alfresco内部运行,而独立系统无需依赖Alfresco即可提供签名功能,并且可以集成到Alfresco中。
表2. 数字签名工作流系统的比较
| SecuredSigning S | igningHub | DocuSign | |
|---|---|---|---|
| 开源 | - | - | - |
| 密码学技术 | X.509 | X.509 | X.509 |
| 物理技术 | - | 智能卡和移动智能卡 | |
| 个人工作流 | |||
| 并行工作流 | |||
| 顺序工作流 | - | ||
| 组工作流 | - | - | - |
| 所有签名的验证 |
我们现在通过以下表格来比较这些系统3和 4: 通过本次调研,我们可以看到最受欢迎的独立系统/附加组件具备了我们感兴趣的大部功能,并且能够帮助我们
表3. 适用于 Alfresco 的独立数字签名系统
| CoSign D | ocuSign | |
|---|---|---|
| 开源 | - | - |
| 加密技术 | X.509 | X.509 |
| 心灵技术 | - | 智能卡 |
| 工作流就绪/独立 | ||
| 工作流 Alfresco | - | - |
| 单个签名 | ||
| 多个签名 | ||
| 验证 | - | - |
表 4. 附加组件 for Alfresco
| |Zylk|E.Roux工具包 Co|unterSign Si|nekarta D|ig.Legale|
| —|—|—|—|—|—|—|
| 开源|
X.509 X|
.509||||-|
| 加密技术|||X.509|X.509|X.509|X.509|
| 心灵技术||-|-|||-|
| 工作流签名 ‐|||-||-|-|
| 单个签名|||||||
| 多个签名||-|-||-||
| 验证||-|-|||-|
了解市场上可以改进的地方以及市场上尚未存在的内容,以便我们能够提出新的想法。
3 电子签名与数字签名对比
这两个概念通常会被大众混淆。然而,数字签名是一种电子签名,但反过来则不成立。电子签名易于实现,因为一个简单的键入姓名就可以作为电子签名。因此,这种类型的签名在维护文档的完整性和安全性方面存在许多问题,因为无法阻止一个人输入另一个人的姓名。由于这一现实情况,电子签名是一种不安全的文档签署方式。电子签名容易被复制和篡改,导致伪造变得简单。电子签名的一些示例包括:手写签名的扫描图像、使用数字笔的签名、键入的姓名、电子邮件底部的签名、生物特征手写签名、视频签名,或点击“我同意”复选框。关键在于,电子签名是个人为确认其对文档的审阅/批准而做出的任何“标记”[13]。
对于数字签名而言,这是一种用于证明文档真实性的数学方案。有效的数字签名使接收者有理由相信该消息是由已知发送者创建的,并且在传输过程中未被篡改。因此,发送者无法否认其已发送该消息,从而确保了认证、不可否认性和完整性。数字签名符合法律法规。这有助于组织确保签署者的真实性、数据完整性和已签名电子文档的可验证性。文档签名后所做的任何更改都会导致签名失效,从而防止签名伪造和信息篡改[14]。根据葡萄牙法律[15],,电子签名与手写签名具有相同的证据效力,前提是它们基于由经认证的认证机构颁发的证书。这类电子签名被称为数字签名。
然而,电子签名可以与数字签名结合使用,从而获得法律效力。如今,通过从人体生物特征中提取签名密钥来生成数字签名非常重要。生物识别技术是利用数字技术,基于个体独特的可测量生物学特征来识别个人的科学[16]。通过电子生物特征签名,用户可以在文档中看到自己的手写签名,这对可用性来说是一个重要特性。在签名系统中拥有这一补充功能非常重要,因为用户过去与纸质文件上的签名有联系,如果能在文档上看到自己常用的手写签名,他们会感到更加舒适。
因此,我们现在将介绍有关数字签名的一些部分:与数字签名相关的密码学概念、数字签名方案以及数字签名类型。
3.1 密码学概念
数字签名使用公钥和私钥对,这些密钥通常由发送方购买并由证书颁发机构(CA)签发。公钥和私钥对在数学上相关联,因为用私钥加密的消息只能通过对应的公钥解密。因此,发送方使用其私钥对文档进行签名,接收者则使用发送方的公钥和签名来验证文档的真实性。私钥由个人持有并严格保密,不得向私钥负责人以外的任何人分发。公钥可提供给任何人,并可通过访问CA公共数据库获取。CA 是一个可信第三方,负责验证申请密钥对人员的身份,并可通过公钥基础设施(PKI)建立。[17]根据[18],“公钥基础设施(PKI)是创建、管理、存储、分发和撤销基于公钥密码学的数字证书(也称为公钥证书)所需的硬件、软件、人员、政策和流程的集合。PKI 是一种通过证书颁发机构(CA)将公钥与其相应的用户身份绑定的机制”。
3.2 数字签名方案
数字签名方案提供了手写签名的密码学类比,能够提供更强的安全保证。在许多国家,数字签名是一种强有力的工具,并被法律认可为具有约束力。该方案由签名者和一组验证者使用。一个签名方案包括三个概率性多项式时间算法(Gen、Sign、 Vrfy)以及相关联的消息空间 M= Mk。签名者首先运行某个随机化的密钥生成算法 Gen,生成一对密钥(pk, sk),其中 pk 是签名者的公钥,sk 是签名者的私钥(也称为密钥)。安全参数 k 隐含在 pk 和 sk 中。对于安全参数 k,签名算法 Sign(可能是随机化的)以私钥 sk 和消息 m ∈ Mk 作为输入,输出一个签名 σ ← Signsk(m)。如果 m∉ Mk,签名算法输出 ⊥。对于安全参数 k,验证算法 Vrfy 接受一个公钥 pk、一条消息 m ∈ Mk 和一个签名 σ 作为输入。输出产生一位, b= 1 表示“接受”, b= 0 表示“拒绝”。这表示为 b:= Vrfypk(m, σ)。如果 m∉ Mk,验证算法返回“拒绝”[19]。
总之,数字签名由每个签名者的唯一数字证书、仅签名者可用于签名的私钥以及可供任何人验证签名的公钥组成。签名者可以在数字签名中包含例如其姓名、日期、时间戳、签名理由以及图形化签名。
3.3 数字签名的类型
公钥密码学标准(PKCS#7)是由RSA(Rivest‐Shamir‐Adleman密码系统)定义的一项标准,用于描述数据的通用语法可以应用密码学技术,例如数字签名。PKCS#7 支持多种内容类型:数据、已签名数据、封装数据、已签名并封装的数据、摘要数据以及加密数据。除了 PKCS#7 之外,还有其他用于编码加密消息的格式,这些格式被提出以提高安全性和互操作性[20]。存在多种数字签名类型。比较两种标准:XML高级电子签名(XAdES)和CMS高级电子签名(CAdES),它们旨在使用合格证书对任意类型的数据进行数字签名。这两种标准均允许存储一些属性,例如待签名数据的多用途互联网邮件扩展(MIME)类型、签名时间等[21]。XAdES 基于 CAdES,但要求使用可扩展标记语言(XML)语法。XAdES 引入了 DataObjectFormat 属性来描述已签名数据的编码格式。PDF高级电子签名(PAdES)是一种用于 PDF 文档中数字签名的专有格式,其中 PDF 可被视为包含两个部分:第一部分包含待签名的 PDF 文档,第二部分包含数字签名所需的信息,例如用户的证书、加密的摘要(支持数字签名算法(DSA)和 RSA)。在 PAdES 中,不仅可以对文档本身签名,还可以对可信服务器获取的时间戳、图形签名、系统以及用户所使用的软件应用进行签名。此类签名在抵御模糊呈现攻击方面具有一些显著优势[20]。
4 智能卡
仅基于软件的安全解决方案并不安全,且极易受到某些攻击。造成这种安全性不足的原因在于,用于存储证书和私钥的传统存储介质并不安全。
硬件安全模块(HSM)是现代计算机网络中的一个重要安全议题。其主要目的是提高整体系统安全性并加速密码函数的执行。智能卡可被视为一种 HSM的示例,在公钥基础设施(PKI)环境中,它提供了一种安全且便携的方式来管理加密密钥及相应的X.509数字证书。智能卡通过增加额外的认证层级(“你拥有的东西”)以及加密密钥在卡内生成后永不离开卡片的特性,增强了PKI的安全性。PKI智能卡能够提供现代信息系统中最主要的安全功能:认证(X.509数字证书)、机密性(基于非对称私钥)、数据完整性(数字签名)以及不可否认性(由在卡上生成并存储的非对称密钥进行的数字签名)[22]
5 Alfresco和工作流
一个开源ECM系统的示例是Alfresco。该系统集成了企业内容管理的主要应用:文档、图像、网页内容、记录以及数字资产管理。Alfresco系统在其管理内容和功能的服务与控制方面表现突出。该系统最重要的功能包括工作流、版本控制、元数据管理和搜索。
对于企业而言,该系统具备支持多种关键业务流程和用途的内容需求的最重要功能。文档管理工具支持办公工作、搜索与发现。企业还需要包含案例管理、审核与批准的工作流管理功能。协作应用支持内容和文档的创建与优化。可扩展的Web内容管理服务支持将企业内容交付并部署给客户。该系统最大的优势之一是记录管理能力,它提供了基于政府批准标准捕获和保存记录的经济有效的方式。基于标准的平台还提供对使用这些标准的应用程序的访问,例如发布、图像和电子邮件管理[9]。
对于开发者而言,该系统具有附加组件的优势。他们可以开发 Alfresco 附加组件来提升 Alfresco 产品的功能。开发者可以创建与外部系统的集成、打包自定义功能以及系统管理工具。
为了更高效、灵活和有效地完成企业任务,业务流程管理(BPM)为此提供了方法和技术[23]。企业内容管理(ECM)Alfresco最重要的功能之一是支持业务流程模型和符号(BPMN)以及工作流。BPMN 用于设计业务流程的建模符号,旨在表示业务工作流。BPMN解决方案是用于开发、部署、监控和优化多种类型流程自动化应用程序的框架,包括涉及系统和人员的工作流。
工作流可以被视为具有初始和最终状态的任务。工作流处理审批并优先处理文档呈现顺序。工作流的决策基于系统所有者开发的预定义规则[4]。
Alfresco中的数字签名工作流
6 实现
在本节中,我们描述了将数字签名与企业内容管理(ECM)系统(此处为 Alfresco)进行集成的技术实现。我们利用了该ECM系统对BPM和工作流的支持,从而在工作流中集成数字签名,使得人员可定义谁签署特定文档。
我们重点关注PDF文档中的签名。我们在这种类型的文档中实现签名,因为正如我们在数字签名类型小节中所看到的,这种签名具有更强的抗攻击能力。一个值得关注的特性是时间戳。时间戳服务是指安全记录文档的创建和修改时间的过程。一旦时间被记录,任何人都无法更改,包括文档的负责人。这样就保障了文档的完整性。时间戳来自受信任的外部服务器,以确保我们使用的服务不更改时间戳[24]。这可以类比为纸质文件上由公证人加盖的印章。
我们使用智能卡为用户提供了一种安全、快速且具有移动性的方式进行签名,如智能卡部分所述。
由于Alfresco支持附加组件,我们利用了这一特性,将文档签名的整个流程集成到一个模块/附加组件中,该模块可集成到Alfresco中。
在图1中,我们可以看到我们的工作流过程的一个示例:
在此图中,我们可以看到有一个圆形,表示业务流程的开始状态。然后是一个用户任务,当业务流程需要人工交互时使用,例如由人员填写或核实详细信息时。审核决策由排他网关表示,当我们需要从多个定义路径中选择一条路径继续时使用该网关。因此,我们可以将排他网关类比为编程概念中的if‐else 语句。在此审核决策中,我们可以定义一个条件,如果条件为真,则通过用户任务批准文档;否则,通过另一个用户任务拒绝文档。在这两种情况下,我们都将进入结束状态,表示业务流程的结束。
我们在相关工作部分中讨论了三种类型的工作流。其中一种工作流,用户可以并行签署,即可以按任意顺序签署。另一种工作流,用户必须按照特定顺序签署,例如,首先由员工X签署,只有当X签署后,员工Y才能签署,最后由公司主管接受该任务。最后一种工作流,一组用户可以并行签署。Alfresco 具有允许创建用户组的功能,因此,我们可以将一个组与工作流关联,而无需一次关联一个人。
此图表表示我们为此工作创建的BPMN。在初始状态下,我们有一个表单,可以在其中选择工作流的标题(bpm workflowDescription)、截止日期(bpm workflowDueDate)、优先级(bpm workflowPriority)、需要对特定文档(或多个文档 packageItems)进行签名的评审人(bpm assignees),以及所需审批百分比(wf requiredApprovePercent),即必须对文档签名才能使该工作流被负责人批准的人员百分比。我们可以向附加到该工作流的评审人发送邮件,邮件中包含用于审阅的任务链接以及附加到该工作流的文档链接(bpm sendEMailNotifications)。
启动工作流时,会在附加到工作流的文档中为每个附加的评审人创建一个签名字段。每个字段包含将对此字段进行签名的评审人的相应用户名。在初始状态之后,审核任务包括向每个附加到工作流的评审人发送任务,由评审人签名以接受该任务。如果用户拒绝该任务,则表示其不同意该文档,因此不会进行签名。为了审核任务,会向评审人显示一个表单,其中包含任务信息:标题/描述 (message)、负责人 (taskOwner)、优先级 (bpm priority)、截止日期 (bpm duedate) 和标识符 (bpm taskId);进度及任务状态 (bpm status):尚未开始、进行中、暂停、已取消或已完成;附加到任务的项目 (packageItems) 以及一条评论 (bpm comment),如果填写了评论,将被放入数字签名理由中。审核任务的结果由 wf reviewOutcome标识。签名通过公民卡完成。当用户点击“接受并签名”按钮时,会显示一个密码输入设备用于输入签名PIN。当签名被添加到文档中时,除了签名理由外,还会在同一字段中添加签署文档人员的姓名以及日期和时间。
此后,将根据审核决策测试条件 $ wf actualPercent >= wf requiredApprovePercent。其中,wf actualPercent 是签署并接受文档的评审人所占的百分比,而 wf requiredApprovePercent 是表单中填写的所需批准百分比,该表单已在本节前面部分描述。如果条件为真,则工作流所有者可以批准文档。
算法1。 统计批准该文档的评审人所占百分比
1: 如果 task.getVariableLocal(‘wf reviewOutcome’) == ‘Approve’ 那么
2: newApprovedCount := wf approveCount + 1;
3: newApprovedPercentage := (newApprovedCount / wf reviewerCount) * 100;
4: execution.setVariable(‘wf approveCount’, newApprovedCount);
5: execution.setVariable(‘wf actualPercent’, newApprovedPercentage);
6: 结束如果
每当用户批准任务时,都会调用算法1。之后,负责人通过表单结束工作流,无论任务被批准或拒绝,并且可以对工作流添加评论。该表单包含工作流的信息:标题/描述、负责人、优先级、截止日期和标识符;任务状态的进度信息:状态选择与任务审核表单相同;结果信息:评审人数、已批准的评审人、所需审批百分比和实际批准百分比;附加到任务的项目,以及负责人可在工作流中添加的评论。
由于签名是使用公民卡进行的,每位用户都必须将卡片与其用户档案进行关联。出于安全原因,系统会检查该卡片是否已属于其他用户的档案。如果用户档案中没有智能卡,当用户尝试通过工作流签署文件时,系统会要求将公民卡与其档案进行关联。为了方便服务的使用,我们提供了另一种将卡片与档案关联的方式。用户可以通过一个按钮在不离开当前工作流任务的情况下,直接将智能卡与其用户档案进行关联。
除了公民卡外,我们还决定为用户提供将其其他智能卡关联到个人档案的可能性,而不仅限于公民卡。如果用户在医院工作,他们可以将其医院卡档案进行关联。这样,例如,他们可以使用医院卡签署医院内部文件,使用公民卡签署人力资源文件。这使得个人可以选择用于签署文档的具体卡片。
我们系统另一个最重要的功能是提供有关每个文档的签名字段信息。通过调用外部Web服务的操作按钮(Alfresco的功能之一),我们为用户提供验证文档的功能,以及查看哪些字段已签名和签名为有效的能力。
我们决定创建一个外部Web服务来验证签名,因为例如,当我们有一个客户、Alfresco和验证服务时,该客户希望确保你的产品能够正确评估文件签名。为了确保验证正确执行,验证服务必须在响应中包含一个签名,以便客户可以验证该签名,并确保 Alfresco不会更改任何验证响应,从而保障安全性。
Web 服务返回的信息包括修订次数、字段数量、状态(空、部分或完整)以及已签名字段的数量。对于每个字段,信息包括字段名称及其是否已签名。如果已签名,则包含签名是否覆盖整个文档、是否已修订、日期、市民卡证书、签名完整性,以及 Web 服务给出的响应(有效或无效)。这些信息存储在验证变量中,然后在客户端再次测试条件并比较该变量,从而可以验证服务器返回的结果是否正确。
We can see in the Fig.4 我们可以看到用于向客户端显示信息的弹出窗口。当用户在特定文档上点击“验证文档”按钮时,如果自应用签名以来文档已被修改,第一个弹出窗口将显示签名是否有效。通过“More information”按钮,我们可以在第二个弹出窗口中看到所显示信息的示例。我们提供文档中存在的字段数量、已签名的字段数量、字段名称以及每个字段均已签名。对于已签名字段,我们显示其日期/时间和字段的完整性。
7 结论
当纸质文件在多个部门之间传递时,可能会被伪造或篡改。如前所述,通过该系统可以保留导入的安全属性,例如系统信任,因为在整个签署过程中,所有用户都可以查看正在签名的文档的当前状态,随时验证文档并实时查看修改情况。数字签名还保护了完整性、真实性和不可否认性等安全属性。这一切共同推动了无纸化技术的发展,因为签名不仅集成到工作流中,而且签名工作流还集成到企业内容管理系统中,在本例中即Alfresco。因此,每个人都可以随时随地访问文档。该系统将避免为签名而打印纸质文件,有助于环境保护。这不仅对减少纸张使用至关重要,还能防止使用笔对纸质文件造成损坏,同时避免使用打印机和扫描仪打印和扫描已签名的纸质文件。
8 未来工作
这项研究将能够在未来集成除智能卡之外的其他签名形式,例如使用带有证书的YubiKey进行签名。该系统目前仅允许在PDF文件中进行数字签名,因此作为未来工作,我们计划增加电子签名和生物特征签名,并为用户提供选择不同类型签名的选项。此外,还希望实现在其他类型的文档(不仅仅是PDF,例如XML)上的签名功能。
1114

被折叠的 条评论
为什么被折叠?



