CN102447559B - 针对复合资源文档创建数字签名的方法和系统 - Google Patents
针对复合资源文档创建数字签名的方法和系统 Download PDFInfo
- Publication number
- CN102447559B CN102447559B CN201110216583.8A CN201110216583A CN102447559B CN 102447559 B CN102447559 B CN 102447559B CN 201110216583 A CN201110216583 A CN 201110216583A CN 102447559 B CN102447559 B CN 102447559B
- Authority
- CN
- China
- Prior art keywords
- signature
- resource
- reference listing
- resources
- generation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 239000002131 composite material Substances 0.000 claims abstract description 131
- 238000000034 method Methods 0.000 claims abstract description 130
- 238000004891 communication Methods 0.000 claims description 58
- 238000012360 testing method Methods 0.000 claims description 32
- 238000006243 chemical reaction Methods 0.000 claims description 25
- 230000004044 response Effects 0.000 claims description 22
- 230000015572 biosynthetic process Effects 0.000 claims description 9
- 238000012795 verification Methods 0.000 abstract description 5
- 230000008569 process Effects 0.000 description 102
- 150000001875 compounds Chemical class 0.000 description 23
- 238000010586 diagram Methods 0.000 description 20
- 230000002452 interceptive effect Effects 0.000 description 17
- 230000006870 function Effects 0.000 description 16
- 238000004590 computer program Methods 0.000 description 13
- 238000012545 processing Methods 0.000 description 11
- 230000008859 change Effects 0.000 description 8
- 238000013461 design Methods 0.000 description 8
- 238000001914 filtration Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 5
- 230000006399 behavior Effects 0.000 description 4
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000005291 magnetic effect Effects 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 230000003340 mental effect Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 230000000875 corresponding effect Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 230000002708 enhancing effect Effects 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000003550 marker Substances 0.000 description 2
- 230000013011 mating Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000005728 strengthening Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 229910000831 Steel Inorganic materials 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000003339 best practice Methods 0.000 description 1
- 230000008275 binding mechanism Effects 0.000 description 1
- 239000007795 chemical reaction product Substances 0.000 description 1
- 239000007799 cork Substances 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 210000003733 optic disk Anatomy 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 238000002203 pretreatment Methods 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000010959 steel Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N2201/00—Indexing scheme relating to scanning, transmission or reproduction of documents or the like, and to details thereof
- H04N2201/32—Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
- H04N2201/3201—Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title
- H04N2201/3225—Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title of data relating to an image, a page or a document
- H04N2201/3233—Display, printing, storage or transmission of additional information, e.g. ID code, date and time or title of data relating to an image, a page or a document of authentication information, e.g. digital signature, watermark
- H04N2201/3235—Checking or certification of the authentication information, e.g. by comparison with data stored independently
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Power Engineering (AREA)
- Storage Device Security (AREA)
- Document Processing Apparatus (AREA)
Abstract
本发明涉及一种针对复合资源文档创建数字签名的方法和系统。一种创建复合资源文档的数字签名的计算机实现的过程包括:接收包含至少一个资源的复合资源文档;获取更新后的清单资源,其中所述更新后的清单资源列出了复合资源文档中的所有资源;指示从更新后的清单资源中的资源列表减去零个、一个或多个资源以创建要签名的已标识资源的生成的签名引用列表;使用生成的签名引用列表中标识的资源生成散列令牌以形成签名散列令牌;以及使用密钥加密所述签名散列令牌。验证复合资源文档的数字签名进一步包括:接收复合资源文档;获取清单资源;使用生成的签名引用列表中标识的资源生成散列令牌;解密散列令牌以形成签名散列令牌;生成签名有效性结果。
Description
技术领域
本发明一般地涉及数据处理系统中的资源安全性,更具体地说,涉及数据处理系统中的协作业务过程内的复合资源文档的数字签名。
背景技术
“文档”可以是用于表示基于Web的商业交易或协作业务过程的实例的方便比喻。文档允许最终用户对最终用户与信息系统的交互以及这些交互的完整上下文的完整数字表示进行保存、通过电子邮件发送以及进行数字签名。文档也是Web应用开发人员的方便比喻,因为它为开发人员提供单一数字资产,这种资产可以在业务过程中转移、封装丰富交互式应用的完整用户体验定义,以及包含与业务过程事务相关的所有用户输入、附件以及数字签名。因此,通过文档比喻,可以轻松地为最终用户提供离线或脱机表格填写体验。
参考图3,其中示出了流经业务过程300的交互式文档的心理模型,所述心理模型在业务过程中被提供给诸如协作者312和协作者314之类的各个协作者,使得协作者能够使用内容储存库302和合同模板306将他们的输入提供到文档内以创建提出的合同308。提出的合同可以由审批者316审阅和批准,所述审批者通过诸如因特网318之类的网络使用支票信贷服务320和电子资金转移服务322通信以生成执行的合同310。执行的合同310可以存储在储存库304中。
参考图4,提供了交互式文档的逻辑布置。本质上,“交互式文档”表示Web应用以及特定用户或用户组对Web应用的体验。诸如执行的合同310之类的文档一般倾向于组织成若干逻辑层400,逻辑层400通常包括数据层、业务规则层、逻辑用户接口层以及呈现层。交互式文档400示出了表示协作业务过程内的交互式文档的各组件的逻辑分层方法。人工接口402是逻辑用户接口层和呈现层的一个实例,而业务逻辑和动态验证404表示业务规则层。
由数据访问和验证406表示的数据层表示基础数据,所述基础数据通常以可扩展标记语言(XML)格式编写,通过XML路径语言(XPath)寻址,并旨在遵循信息系统最终旨在推动的后端事务的XML模式418。应用的目标是数据层的“填写体验”。所述数据层可以包括由用户输入的诸如数据实例408之类的简单数据项,例如名称、日期、编号、数量以及文件附件和数字签名。在业务过程的关键点,数据可以与文档的其余部分分离并存储在数据库中和/或用于推动工作流程步骤或完成的交易。
业务规则、逻辑用户接口和呈现层与数据层相连以提供交互服务。例如,对于使用XML表单定义语言的业务规则,XForms模型416可以仅当用户为特定年龄时才使数据的特定部分相关,XForms逻辑用户接口414可以提供将数据和业务规则元数据连接到呈现层的绑定机制,并且呈现层可以使用XFDL 412将图形用户体验分为多个页面。可扩展表单描述语言(XFDL)是一类可扩展标记语言(XML),最初在万维网联盟(W3C)NOTE-XFDL-19980902中指定。到2010年8月为止,XFDL的当前规范可以从以下地址获取:http://publib.boulder.ibm.com/infocenter/forms/v3r5m1/topic/com.ibm.form.designer.xfdl.doc/XFDL%20Specification%207.7.pdf
此类文档上的数字签名保护用户提供的数据,同时还保护其他层,从而创建数据和用于收集数据的应用上下文之间的受保护绑定。典型地使用XML和XML签名420通过安全性、可审核性以及互操作性410支持数字签名。例如,当用户输入数据值“500”时,数字签名不仅保护数据值“500”,而且还保护数据值的含义,无论数据值表示“购买500根钢梁”还是“出售500份股份”。此应用要求遵循8.1节中的W3C XML签名标准(http://www.w3c.org/TR/2008/REC-xmldsig-core-20080610/),此标准有效地声明符合条件的应用应对用户“看到的”内容进行签名和验证,而不仅仅是所收集的基础数据。
在协作业务过程中,对于数字签名而言存在复杂的因素。简单的数字签名应用倾向于对作为完整、难懂的文件(通俗地说,“位桶(bucket ofbits)”)的文档进行签名。签名保护整个文件,并且如果在附加签名之后对文件做出任何修改,则数字签名将变为无效。但是,在协作业务过程中,经常存在在附加第一数字签名之后执行的工作流程步骤。这些工作流程步骤创建与完整事务相关的额外信息。由于文档是完全和完整的业务过程事务的表示,因此这些工作流程步骤必须修改文档,这必须在不使数字签名无效的情况下完成。
W3C XML签名标准以数字签名变换的形式提供了解决方案。在不使用变换的情况下,单个XML签名能够对任何数量的URI可寻址的资源进行签名。这些资源中的任何数量的资源都可以采取二进制,因此,XML签名可以对XML内容以及非XML内容进行签名。将每个资源的加密散列置于XML签名内,然后对一组资源散列进行散列计算并使用签名者的私钥对其进行加密。但是,W3C XML签名标准还允许首先变换每个资源,然后对其进行散列。具体地说,可以使用XPath Filter2(可从http://www.w3.org/TR/xmldsig-filter2/处获取)变换XML资源,XpathFilter2允许在计算散列之前减去XML资源的多个部分。
过滤变换也可以只列出要签名的内容,但是这具有较低的安全性值,因为任何未列出的内容都可以在不使签名无效的情况下被添加到资源。在协作业务过程中,已知的最佳实践是使用减法过滤器,因为有关减去内容的表达式也是在附加签名之后允许修改业务过程的哪些其余部分的特征描述。未由减法过滤表征的任何其他增加、更改或删除都具有使数字签名无效的预期效果。
随着应用作者创建具有越来越多的页面的应用,同时还要求每个服务器具有更高的表单吞吐量,单个XML文档可能在一段时间后变得不是无懈可击。已知的解决方案在对交互式文档进行数字签名方面具有缺陷,其中包括将文档表示为单个XML文件(这允许减法过滤,但是性能较差)、以及将文档表示为复合资源(这提供更佳的性能并允许在每个资源内进行减法过滤,但是不允许从复合资源来对整个资源进行减法过滤)。
发明内容
根据一个实施例,一种用于创建复合资源文档的数字签名的计算机实现的过程包括:接收包含至少一个资源的复合资源文档;获取更新后的清单资源,其中所述更新后的清单资源列出了所述复合资源文档中的所有资源;指示从所述更新后的清单资源中的资源列表减去零个、一个或多个资源以创建要签名的已标识资源的生成的签名引用列表;使用所述生成的签名引用列表中标识的资源生成散列令牌以形成签名散列令牌;以及使用密钥加密所述签名散列令牌。
根据一个实施例,一种验证复合资源文档的数字签名的计算机实现的过程包括:接收包含一个或多个资源且具有数字签名的复合资源文档;获取更新后的清单资源,其中所述更新后的清单资源列出了所述复合资源文档中的所有资源;使用所述数字签名中的生成的签名引用列表中标识的资源生成散列令牌以形成所生成的散列令牌;使用所获取的解密密钥来解密所述数字签名内包含的已加密散列令牌以形成签名散列令牌;以及至少响应于所生成的散列令牌和所述签名散列令牌的比较,生成签名有效性结果。
根据另一实施例,一种用于创建复合资源文档的数字签名的计算机程序产品包括存储有计算机可执行程序代码的计算机可记录型介质。所述计算机可执行程序代码包括:用于接收包含至少一个资源的复合资源文档的计算机可执行程序代码;用于获取更新后的清单资源的计算机可执行程序代码,其中所述更新后的清单资源列出了所述复合资源文档中的所有资源;用于指示从所述更新后的清单资源中的资源列表减去零个、一个或多个资源以创建要签名的已标识资源的生成的签名引用列表的计算机可执行程序代码;用于使用所述生成的签名引用列表中标识的资源生成散列令牌以形成签名散列令牌的计算机可执行程序代码;以及用于使用密钥加密所述签名散列令牌的计算机可执行程序代码。
在另一实施例中,一种用于验证复合资源文档的数字签名的计算机程序产品包括存储有计算机可执行程序代码的计算机可记录型介质。所述计算机可执行程序代码包括:用于接收包含一个或多个资源且具有数字签名的复合资源文档的计算机可执行程序代码;用于获取更新后的清单资源的计算机可执行程序代码,其中所述更新后的清单资源列出了所述复合资源文档中的所有资源;用于使用所述数字签名中的生成的签名引用列表中标识的资源生成散列令牌以形成所生成的散列令牌的计算机可执行程序代码;用于使用所获取的解密密钥来解密所述数字签名内包含的已加密散列令牌以形成签名散列令牌的计算机可执行程序代码;以及用于至少响应于所生成的散列令牌和所述签名散列令牌的比较,生成签名有效性结果的计算机可执行程序代码。
根据另一实施例,一种用于创建复合资源文档的数字签名的装置包括:通信结构;与所述通信结构相连的存储器,其中所述存储器包含计算机可执行程序代码;与所述通信结构相连的通信单元;与所述通信结构相连的输入/输出单元;与所述通信结构相连的显示器;以及与所述通信结构相连的处理器单元。所述处理器单元执行所述计算机可执行程序代码以引导所述装置执行以下操作:接收包含至少一个资源的复合资源文档;获取更新后的清单资源,其中所述更新后的清单资源列出了所述复合资源文档中的所有资源;指示从所述更新后的清单资源中的资源列表减去零个、一个或多个资源以创建要签名的已标识资源的生成的签名引用列表;使用所述生成的签名引用列表中标识的资源生成散列令牌以形成签名散列令牌;以及使用密钥加密所述签名散列令牌。
根据另一实施例,一种用于验证复合资源文档的数字签名的装置包括:通信结构;与所述通信结构相连的存储器,其中所述存储器包含计算机可执行程序代码;与所述通信结构相连的通信单元;与所述通信结构相连的输入/输出单元;与所述通信结构相连的显示器;以及与所述通信结构相连的处理器单元。所述处理器单元执行所述计算机可执行程序代码以引导所述装置执行以下操作:接收包含一个或多个资源且具有数字签名的复合资源文档;获取更新后的清单资源,其中所述更新后的清单资源列出了所述复合资源文档中的所有资源;使用所述数字签名中的生成的签名引用列表中标识的资源生成散列令牌以形成所生成的散列令牌;使用所获取的解密密钥来解密所述数字签名内包含的已加密散列令牌以形成签名散列令牌;以及至少响应于所生成的散列令牌和所述签名散列令牌的比较,生成签名有效性结果。
附图说明
为了更全面地了解本发明,现在参考下面结合附图的简要说明和详细说明,其中相似的标号表示相似的部件:
图1是可针对本发明的各种实施例操作的数据处理系统的示例性网络的方块图;
图2是可针对本发明的各种实施例操作的示例性数据处理系统的方块图;
图3是交互式文档流的心理模型的方块图;
图4是图3的交互式文档的分层布置的方块图;
图5是根据本发明的一个实施例的复合文档系统的方块图;
图6是根据本发明的一个实施例的从单一交互式文档到复合文档格式的逻辑转变的方块图;
图7是根据本发明的各实施例的复合文档、使复合文档在Web上可用的REST服务、Web应用层和最终用户交互层之间的关系的方块图;
图8是根据本发明的各实施例的与复合资源文档的组件相关的XML签名的逻辑位置的方块图;
图9是根据本发明的各实施例的清单的代码片段实例;
图10是根据本发明的各实施例的复合资源文档模板中的XML数据的代码片段实例;
图11是根据本发明的各实施例的图10的已填写复合资源文档中的XML数据的代码片段实例;
图12是根据本发明的各实施例的包含复合资源文档签名的代码片段实例;
图13是根据本发明的各实施例的示出引用列表生成的复合资源文档签名定义的另一代码片段实例;
图14是根据本发明的各实施例的具有多个签名者并示出指定已变换资源的手段的复合资源文档定义的代码片段实例;
图15是根据本发明的各实施例的指定控制引用生成的模式的代码片段实例;
图16是根据本发明的各实施例的从生成的签名引用列表过滤特定资源的代码片段实例;
图17是根据本发明的生成复合资源的数字签名的过程的流程图;
图18是根据本发明的各实施例的验证图17的复合资源的数字签名的过程的流程图;以及
图19是根据本发明的生成图18的签名有效性结果的过程的流程图。
具体实施方式
尽管下面提供了一个或多个实施例的示例性实施方式,但是所披露的系统和/或方法可以使用任意数量的技术实现。本发明决不限于下面所示的示例性实施方式、附图和技术(包括此处所示和描述的示意性设计和实施方式),而是可在所附权利要求的范围及其等同物的完整范围内进行修改。
本领域的技术人员将理解,本发明的各方面可以体现为系统、方法或计算机程序产品。因此,本发明的各方面可以采取完全硬件实施例、完全软件实施例(包括固件、驻留软件、微代码等)或组合了在此通常被称为“电路”、“模块”或“系统”的软件和硬件方面的实施例的形式。此外,本发明的各方面可以采取体现在一个或多个计算机可读介质(其中具有计算机可读程序代码)中的计算机程序产品的形式。
可以使用一个或多个计算机可读介质的任意组合。所述计算机可读介质可以是计算机可读信号介质或计算机可读存储介质。计算机可读存储介质例如可以是(但不限于)电、磁、光、电磁、红外线或半导体系统、装置或设备或它们的任何适当组合。计算机可读存储介质的更具体的实例(非穷举列表)可以包括以下项:具有一条或多条线的电连接、便携式计算机软盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦写可编程只读存储器(EPROM或闪存)、光纤、便携式光盘只读存储器(CDROM)、光存储设备、磁存储设备或它们的任何适当组合。在本文档的上下文中,计算机可读存储介质可以是任何能够包含或存储由指令执行系统、装置或设备使用或与所述指令执行系统、装置或设备结合的程序的有形介质。
计算机可读信号介质可以包括其中包含计算机可读程序代码(例如,在基带中或作为载波的一部分)的传播数据信号。此类传播信号可以采取多种形式,包括但不限于电磁、光或它们的任何适当组合。计算机可读信号介质可以是任何并非计算机可读存储介质以及可以传送、传播或传输由指令执行系统、装置或设备使用或与所述指令执行系统、装置或设备结合的程序的计算机可读介质。
可以使用任何适当的介质(包括但不限于无线、有线、光缆、RF等或它们的任何适当组合)来传输计算机可读介质中包含的程序代码。
用于执行本发明的各方面的操作的计算机程序代码可以使用一种或多种编程语言的任意组合来编写,所述编程语言包括诸如JavaTM、Smalltalk、C++或类似语言之类的面向对象的编程语言或者诸如“C”编程语言或类似的编程语言之类的常规过程编程语言。Java和所有基于Java的商标和徽标是Sun Microsystems,Inc.在美国和/或其他国家/地区的商标。所述程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为独立的软件包、部分地在用户计算机上并部分地在远程计算机上执行,或者完全地在远程计算机或服务器上执行。在后者的情况中,所述远程计算机可以通过包括局域网(LAN)或广域网(WAN)的任何类型网络与用户的计算机相连,也可以与外部计算机进行连接(例如,使用因特网服务提供商通过因特网连接)。
下面参考根据本发明的实施例的方法、装置(系统)和计算机程序产品的流程图和/或方块图描述了本发明的各方面。将理解,所述流程图和/或方块图的每个方块以及所述流程图和/或方块图中的方块的组合可以由计算机程序指令来实现。
这些计算机程序指令可以被提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器以产生机器,以便通过所述计算机或其他可编程数据处理装置的处理器执行的指令产生用于实现在一个或多个流程图和/或方块图方块中指定的功能/操作的装置。
这些计算机程序指令也可以被存储在可引导计算机或其他可编程数据处理装置以特定方式执行功能的计算机可读介质中,以便存储在所述计算机可读介质中的指令产生一件包括实现在所述一个或多个流程图和/或方块图方块中指定的功能/操作的指令的制品。
所述计算机程序指令还可被加载到计算机或其他可编程数据处理装置,以导致在所述计算机或其他可编程装置上执行一系列操作步骤以产生计算机实现的过程,从而在所述计算机或其他可编程装置上执行的指令提供用于实现在一个或多个流程图和/或方块图方块中指定的功能/操作的过程。
现在参考附图,具体地说,参考图1-2,提供了其中可以实现示例性实施例的数据处理环境的示意图。应该理解,图1-2只是示意性的,并非旨在断言或暗示对其中可实现不同实施例的环境的任何限制。可以对所示的环境做出许多修改。
图1示出了其中可以实现示例性实施例的数据处理系统网络的图形表示。网络数据处理系统100是其中可以实现示例性实施例的计算机网络。网络数据处理系统100包含网络102,网络102是提供网络数据处理系统100内连接在一起的各种设备和计算机之间的通信链路的介质。网络102可以包括诸如有线、无线通信链路或光缆之类的连接。
在所示实例中,服务器104和服务器106连同存储单元108一起与网络102相连。此外,客户机110、112和114也与网络102相连。客户机110、112和114可以例如是个人计算机或网络计算机。在所示实例中,服务器104将诸如引导文件、操作系统映像以及应用之类的数据提供给客户机110、112和114。客户机110、112和114在该实例中是服务器104的客户机。网络数据处理系统100可以包括其他服务器、客户机以及其他未示出的设备。
在所示实例中,网络数据处理系统100是因特网,且网络102代表全球范围内使用传输控制协议/网际协议(TCP/IP)协议集来相互通信的网络和网关的集合。在因特网的核心是主节点或主机之间的高速数据通信线路的主干,它包括数以万计的商业、政府、教育以及其他路由数据和消息的计算机系统。当然,网络数据处理系统100也可以被实现为许多不同类型的网络,例如企业内部网、局域网(LAN)或广域网(WAN)。图1旨在作为一个实例,并非旨在作为对不同示例性实施例的体系结构限制。
现在转到图2,图2示出了可针对本发明的各实施例操作的示意性数据处理系统的方块图。在该示例性实例中,数据处理系统200包括通信结构202,该通信结构提供处理器单元204、存储器206、永久性存储装置208、通信单元210、输入/输出(I/O)单元212以及显示器214之间的通信。
处理器单元204用于执行可以加载到存储器206中的软件的指令。处理器单元204可以是包含一个或多个处理器的一组处理器或者可以是多处理器核心,具体取决于特定的实施方式。此外,处理器单元204可以使用一个或多个异构处理器系统实现,在所述异构处理器系统中,单个芯片上的主处理器配备辅助处理器。作为另一示例性实例,处理器单元204可以是包含多个同一类型处理器的对称多处理器系统。
存储器206和永久性存储装置208是存储设备216的实例。存储设备是任何能够存储信息(例如但不限于数据、采取函数形式的程序代码和/或其他临时和/或永久的适当信息)的硬件。在这些实例中,存储器206可以例如是随机存取存储器或任何其他适当的易失性或非易失性存储设备。永久性存储装置208可以采取各种形式,具体取决于特定的实施方式。例如,永久性存储装置208可以包含一个或多个组件或设备。例如,永久性存储装置208可以是硬盘、闪存、可重写光盘、可重写磁带或上述设备的某种组合。永久性存储装置208所使用的介质也可以移动。例如,可移动硬盘驱动器可用于永久性存储装置208。
在这些实例中,通信单元210提供与其他数据处理系统或设备的通信。在这些实例中,通信单元210为网络接口卡。通信单元210可以使用物理通信链路和/或无线通信链路提供通信。
输入/输出单元212允许通过可以连接到数据处理系统200的其他设备输入和输出数据。例如,输入/输出单元212可以提供连接以便用户通过键盘、鼠标和/或某种其他适合的输入设备进行输入。此外,输入/输出单元212可以将输出发送到打印机。显示器214提供向用户显示信息的机制。
操作系统、应用和/或程序的指令可以位于通过通信结构202与处理器单元204通信的存储设备216中。在这些示例性实例中,指令以功能形式位于永久性存储装置208上。这些指令可以被加载到存储器206以便由处理器单元204执行。可以由处理器单元204使用计算机实现的指令(可以位于诸如存储器206之类的存储器中)来执行不同实施例的过程。
这些指令被称为可以由处理器单元204中的处理器读取和执行的程序代码、计算机可用程序代码、计算机可执行指令或计算机可读程序代码。不同实施例中的程序代码可以包含在诸如存储器206或永久性存储装置208之类的不同物理或有形计算机可读介质中。
程序代码218以功能形式位于计算机可读介质220(可以选择性地移除)中并可以被加载到或传输到数据处理系统200以便由处理器单元204执行。程序代码218和计算机可读介质220在这些实例中形成计算机程序产品222。在一个实例中,计算机可读介质220可以采取有形形式,例如,插入或置入驱动器或是永久性存储装置208的一部分的其他设备中的光盘或磁盘,以便传输到存储设备(例如是永久性存储装置208的一部分的硬盘驱动器)。在有形形式中,计算机可读介质200还可以采取包含永久性存储(例如连接到数据处理系统200的硬盘、闪盘或闪存)的存储介质的形式。计算机可读介质220的有形形式也称为计算机可记录存储介质。在某些情况下,计算机可读介质200是不可移动的。
备选地,程序代码218可以通过到通信单元210的通信链路和/或通过到输入/输出单元212的连接从计算机可读介质220传输到数据处理系统200。所述通信链路和/或连接在示例性实例中可以为物理或无线链路和/或连接。所述计算机可读介质还可以采取非有形介质的形式,例如包含程序代码的通信链路或无线传输。
在某些示例性实施例中,程序代码218可以通过网络从另一设备或数据处理系统下载到永久性存储装置208以便在数据处理系统200内使用。例如,服务器数据处理系统中的计算机可读存储介质内存储的程序代码可以通过网络从服务器下载到数据处理系统200。提供程序代码218的数据处理系统可以是服务器计算机、客户端计算机或其他某种能够存储和传输程序代码218的设备。
根据使用图2的数据处理系统200作为实例的一个示例性实施例,处理器单元204执行用于创建复合资源文档的数字签名的计算机实现的过程,所述过程从包括通信单元210、存储设备216或输入/输出单元212的源接收包含至少一个资源的复合资源文档。处理器单元204获取更新后的清单资源,其中所述更新后的清单资源列出了所述复合资源文档中的所有资源,并指示从所述更新后的清单资源中的资源列表减去零个、一个或多个资源以创建要签名的已标识资源的生成的签名引用列表。处理器单元204使用所述生成的签名引用列表中标识的资源生成散列令牌以形成签名散列令牌,并使用密钥加密所述签名散列令牌。
处理器单元204还处理所述计算机实现的过程以验证复合资源文档的数字签名。处理器单元204从包括通信单元210、存储设备216或输入/输出单元212的源接收包含一个或多个资源且具有数字签名的复合资源文档。处理器单元204获取更新后的清单资源,其中所述更新后的清单资源列出了所述复合资源文档中的所有资源。处理器单元204使用所述数字签名中的生成的签名引用列表中标识的资源生成散列令牌以形成所生成的散列令牌,并且使用所获取的解密密钥来解密所述数字签名内包含的已加密散列令牌以形成签名散列令牌。处理器单元204至少响应于所生成的散列令牌和所述签名散列令牌的比较,生成签名有效性结果。
在一个备选实施例中,图2的包含计算机实现的过程的程序代码218可以存储在计算机可读介质220中作为计算机程序产品222。在另一示例性实施例中,用于对复合资源文档进行数字签名的过程可以在一种装置中实现,所述装置包括通信结构、与所述通信结构相连的存储器(其中所述存储器包含计算机可执行程序代码)、与所述通信结构相连的通信单元、与所述通信结构相连的输入/输出单元、与所述通信结构相连的显示器以及与所述通信结构相连的处理器单元。所述装置的处理器单元执行所述计算机可执行程序代码以引导所述装置执行所述过程。
参考图5,图5提供了根据本发明的一个实施例的复合文档系统的方块图。复合文档系统500是一组组件的实例,所述组件包括对诸如图2的数据处理系统200之类的系统的典型基础操作系统服务的支持。
复合文档系统500包含多个相互关联的组件,所述组件包括增强签名生成器502、增强签名元数据504、清单资源506、URI解析器508、对象元素510以及复合文档结构512。
增强签名生成器502提供处理XML语句以生成遵循所使用的适合XML标准的数字签名的功能。签名生成器被增强以包含URI解析器508,解析器508定位在创建数字签名期间所需的资源。URI解析器508使用统一资源标识符获取复合文档中包括的指定资源。URI内在地定位所引用的资源。将解析器与签名生成器包括在一起允许典型商用XML签名处理器找到所需的资源项,无论资源是本地地位于复合资源文档内还是远程地位于Web服务器上。数字信号库函数的调用者将URI解析器提供给数字信号库。URI解析器通常是诸如Java之类的编程语言的一部分(或由编程语言提供)。
增强签名元数据504包含可包括为签名特性元素的额外项。所述额外项包括最终用户位置描述符、签名的本地日期和时间以及签名的UTC日期和时间。
清单资源506包括复合资源文档内包含的所有资源的列表。通常,复合资源文档的处理器在资源被添加到复合资源文档或从复合资源文档删除资源时随时更新清单资源506。但是,出于本发明的目的,清单资源506只需在生成数字签名和验证数字签名时反映复合资源文档中的资源。对象元素510是一组元素,其中包括一个或多个元素,所述元素包含作者在复合文档的签名元素内指定的特殊内容。在所述实例实施例中,对象元素510包含专门识别的声明一系列资源描述符的XML属性,所述资源描述符指示要从签名信息构造内生成的引用元素列表减去的资源。
复合文档结构512定义了包括表示交互式Web文档格式的复合资源文档的元素的相对位置的逻辑结构。典型的元素包括诸如MIME类型标识符之类的标头、包含向导页的资源、图像、表单页、数据实例、附件格式模型、交互控件和清单。图6示出了复合文档结构的一个实例。
参考图6,图6提供了根据本发明的一个实施例的从单一交互式文档到复合文档格式的逻辑转变的方块图。结构600表示随时间发展的逻辑转变。所述转变未示出处理期间发生的变换,而是描绘了不同模型的相似点和不同点。在附图中,W表示向导页,F表示表单页,D表示数据实例,M表示表单模型以及IC表示交互控制器。
结构602使用单一模型将文档表示为单个XML文件格式。结构604表示结构602的资源分解视图,其中添加了可选的交互控制器以帮助管理包括结构602内的交互式用户接口定义的向导页和表单页资源之间的转变。
结构606表示复合资源文档格式的压缩档案格式,其中使用开放文档格式(ODF)打包格式作为包含交互式文档所需的所有资源的压缩档案。结构606的文档格式内部地包含结构604以及因此结构602的各种组件作为单独资源。结构606还包含MIME类型608信息元素和清单610资源。
可经由允许添加、删除以及更改资源和目录,且能够获取资源和目录列表的内容的应用编程接口访问所述压缩档案格式。通常,在清单610资源的内容中反映此类对资源和目录的添加、删除以及更改。
参考图7,图7提供了根据本发明的各实施例的复合文档、使复合文档在Web上可用的REST服务、Web应用层和最终用户交互层之间的关系的方块图。在一个示例性实施例中,启用基于Web的最终用户与复合文档的交互使用文档的代表性状态转移(REST)架构式服务前端。此服务允许复制文档模板,并使文档模板成为协作业务过程实例的中央制品。通过业务过程传递实例化文档的REST接口的访问控制令牌,而不是通过业务过程传输整个文档。
关系700在业务过程702期间用于提供应用客户端层704与应用服务器层706、文档交互层708以及复合Web资源层710的关联。文档交互层708提供复合资源文档处理器、REST接口714以便与逻辑拆包的复合资源文档712交互。REST接口714中的两个端点提供生成复合资源文档中的指定XML数字签名,以及验证复合资源文档中的指定XML数字签名的能力。复合资源文档处理器、REST接口714为服务器716和客户端718逻辑层两者提供访问,以便与逻辑拆包的复合资源文档712交互以及修改逻辑拆包的复合资源文档712。
参考图8,图8提供了根据本发明的与复合资源文档的组件相关的XML签名的逻辑位置的方块图。一种实例实施方式使用Apache XML签名库(Apache是Apcahe Software Foundation的商标),尽管实施方式也可以使用Java中内置的XML签名工具。所述实例实施例中的复合资源文档802的逻辑关系800向XML签名生成器提供URI解析器以允许签名生成器查找复合资源文档的资源。复合资源文档802包括徽标804、具有数据实例810和数据实例812的表单页806和表单页808。数据实例812还包含XML签名814。
在生成XML签名814之前,在XForms实例的XML数据中显示签名的组成,形式如下:
在SigedInfo元素内,XML签名可以使用Reference元素列出一个或多个要签名或验证的资源。所述资源由URI指示,URI在所述实例实施方式中由本发明的URI解析器解析。逻辑关系800示出数据层内XML签名814的逻辑位置以及XML签名814相对引用复合资源文档802内的资源的能力(不考虑复合资源文档的存储位置)。一种实施方式可以使用REST服务中的get resource端点,但是使用URI解析器的实例实施方式直接访问复合资源文档,因为XML签名功能位于作为复合资源文档处理器714的一部分的REST接口714(REST接口的实施方式)之后。
XML签名生成器本身则提供使用Reference元素内的Transform元素进一步过滤每个资源的能力。最终,计算资源的散列(摘要)。在签名生成期间,所述散列存储在DigestValue元素内。在验证期间,将所计算的散列与DigestValue进行比较以判定资源是否已被修改(如果修改将会使签名无效)。当生成签名时,一旦已计算每个资源的DigestValue并将其存储在Reference元素内,便会计算整个包含SignedInfo元素(见上文)的散列、使用签名者的私钥加密所述散列、采用base 64进行编码并存储在SignatureValue元素内。在签名验证期间,将在验证时检查DigestValue值与所计算的资源散列是否相等,针对Reference元素指示的每个资源实现所提供的相等,然后在签名生成时获取并比较SignedInfo的散列是否与SignatureValue元素内存储的base 64编码解密后的散列值相等。如果在验证期间出现任何DigestValue或SignatureValue与所计算的散列不等,则产生无效结果。否则,核心验证报告成功的结果,并且应用可以执行诸如密钥过期、密钥撤销、颁发方有效性以及受信密钥列表成员之类的辅助检查。
除了自定义URI解析器之外,所披露的过程还通过将DigestValue计算与最终加密SignatureValue(这需要最终用户的私钥)分离而使得XML签名生成器的标准行为过载。所披露的过程中的XML签名生成器作为REST服务实施方式714的一部分位于服务器上。所披露的过程提供了一种dummy私钥以使XML签名生成器能够生成SignatureValue。所生成的SignedInfo被返回客户机。对SignedInfo进行散列计算,并使用用户的私钥加密散列。所披露的过程在REST接口714内提供了独立的REST端点,从而在数字签名内设置最终正确的SignatureValue。签名验证不需要类似的过载,因为验证只需要签名者的公钥。
标准的XML签名系统提供对多个资源进行签名,并且用于针对复合文档创建基本数字签名。但是,复合文档上的数字签名要求减法过滤机制是安全的。
使用默认配置,所披露的过程的一种实例实施方式执行构建指定数字签名的SignedInfo的引用元素列表的预处理步骤,从而使复合文档的数字签名生成步骤过载。在一个实例中,可按照如下方式创建引用列表:
对R的引用的预存在性条件测试(上面的第五行)可使数字签名标记表达对复合资源文档内的特定资源的变换。将所有未具体地由数字签名标记引用的资源添加到数字签名标记,从而整体进行签名。因此,在默认配置中,增加SigedInfo以对整个复合资源文档进行签名,除预存在的引用和相应的可能变换(可能是为了个别资源的安全性进行的减法变换)所指示的以外。
在一个实例实施例中,content.xml仅包含与管理页面导航和其他交互相关的控制结构,因此实例原型并不自动对content.xml资源进行签名,尽管数字签名标记的作者可以通过添加带有URI=”content.xml”的引用元素来对context.xml资源或其任意部分进行签名。还从所述实例实施例为之生成引用元素的资源删除包含数字签名标记的资源。必须作为生成数字签名的一部分而更改此资源,因此必须作为“封装”签名而专门处理所述资源。
复合资源文档中的一个资源为清单610。因此,如果任何资源在签名之后被添加到复合资源文档或从中删除,则清单610会改变,使得保护清单610的Reference的DigestValue不匹配,这会产生为无效的签名有效性结果。实际生成的签名确保不对签名时存在的资源做任何更改,除(签名后的)Reference元素中表达的任何转换允许以外。由于Reference元素已被签名,因此,允许对资源进行的仅有更改是生成签名时存在的ReferenceTransforms中的数字签名标记的作者表达的更改。
XML签名标准允许作者使用Object元素在签名元素中包括特定内容。实例设计使用该能力来提供对实例实施方式的默认行为的替代。在所述实例中,承载特别识别的XML属性的Object元素声明一系列资源描述符,所述描述符指示了从SignedInfo中的生成的Reference元素列表减去的资源。所述资源描述符允许通配符匹配模式,如下面实例所示:
<Object compdoc:resourceFilter=”true”xmlns:compdoc=”&compDocNS;”>
<compdoc:resourceDescripitorfilter=”subtract”>attachments/*</compdoc:resourceDescriptor>
</Object>
通过允许减去与给定资源描述符匹配的资源,所披露的机制可使数字签名标记的作者允许最终用户在附加签名之后将指定资源添加到复合资源文档或从复合资源文档删除指定资源。
在所述实例设计中,对象被自动添加到SignedInfo的Reference元素列表并受数字签名的保护。包含特定Object使过程自动将减法变换添加到Reference,以便清单610资源在不使在生成数字签名时针对清单610资源产生的散列值失效的情况下,能够添加和删除与资源描述符匹配的资源。
此外,所述实例设计在生成签名之前自动将额外信息写入和签入数字签名标记中。将添加另一对象元素以记录选定SignatureProperties元素中的基本签名元数据。所记录的特定元数据项通常包括最终用户(签名者)位置描述符、签名的本地日期和时间以及签名的UTC日期和时间。对该元数据对象的引用被自动添加到SignedInfo以通过数字签名保护元数据。示例性实施例还使用X509Data(包括X509SubjectName和X509Certificate元素)来使得KeyInfo元素完整,并且还将对KeyInfo元素的引用添加到SignedInfo。签名元数据和KeyInfo内容帮助满足XML高级电子签名(XAdES)指定的基本安全性要求。此外,由于示例性实施例的设计基于XML签名,因此内在地支持诸如将已认证时间戳添加到签名的(XAdES)要求。
参考图9,图9提供了根据本发明的清单的代码片段实例。就签名验证而言,实例实施例的设计的一个重要方面是使复合资源文档格式基于ODF打包,这意味着复合资源文档中的一个资源是列出所有资源的清单。清单900提供复合资源文档中的所有资源的列表。清单900中诸如loan1.xhtml、loan2.xhtml和loan3.xhtml之类的资源提供逐步用户接口来收集置于数据资源loanInstance.xml中的信息。诸如gendefault.css和format.js之类的其他文件帮助产生复合资源文档的用户接口外观和运行时行为。
参考图10,图10提供了根据本发明的各实施例的复合资源文档模板中的XML数据的代码片段实例。在所述实例中,当初次实例化文档模板以代表寻求贷款的用户推动特定业务过程时,图10的代码片段中示出了loanInstance.xml的初始内容。
在代码片段1000中,<ds:Signature>元素(元素1002)的初始配置不包括任何<Reference>元素。缺少Reference元素是因为所披露的设计将subtraction语义赋予XML签名Reference列表,这意味着将在生成签名时自动包括以及在验证时自动检查清单中列出的资源。
参考图11,图11提供了根据本发明的各实施例的图10的已填写复合资源文档中的XML数据的代码片段实例。一旦用户使用loan*.xhtml完成数据填写体验,数据便会看上去像代码片段1100。数据值现在填入之前为空的模板字段1102。
参考图12,图12提供了根据本发明的各实施例的包含复合资源文档签名的代码片段实例。代码片段1200表示具有使用图9、图10和图11的信息的一组引用、清单和数字签名的完整文档。
当用户调用图10的元素1002中提供的Sign操作时,所披露的过程添加loanInstance.xml(例如元素1202)的相同文档引用,其中URI=””允许从自身删除正在生成的签名,并添加清单中列出的所有其他资源(例如引用1204、引用1206和引用1208)的引用元素。还添加manifest.xml文件(清单1210)的引用。
还示出了元素1212的数字SignatureValue。元素1212示出核心数字签名生成操作(在所披露的过程生成Reference元素之后产生SignatureValue元素的内容)之前的复合资源文档定义的singed info部分的内容。
签名验证操作通过验证对manifest.xml的引用来确保不会发生不希望的添加或删除。假设ODF打包文档处理器在清单与实际档案内容之间存在冲突时不加载文档。备选实施方式可以仅在验证签名时检查引用和清单奇偶性。
在另一实例中,提供了授权应用,其中期望两个或更多授权申请者填写各自的个人信息、附加个人简历副本、对文档进行数字签名并使工作流程系统将文档发送到下一申请者以便填写。首位用户创建的数字签名必须减去与其他申请者对应的数据文件子树和其他申请者创建的附件。除了之前的两个例外以外,复合资源文档中的所有其他文件都描述用户接口、用户体验或签名用户的数据或附件,因此应被全部签名。
任意附加文件的能力允许将更多的XHTML页面、CSS文件、JS文件等置于复合文档资源内。此外,由于删除了content.xml文件(因为content.xml文件包含诸如“which xhtml page should be shown first(应首先显示哪个xhtml页面)”之类的控制结构),任何新添加的文件都可能添加针对首位签名者签名的内容做出虚假声明的新的替代用户体验。通过使减法过滤达到XML签名的Reference列表级别,可以防止做出虚假声明的可能性。
参考图13,图13提供了根据本发明的各实施例的示出引用列表生成的复合资源文档签名定义的代码片段实例。本发明的各种实施例提供的减法过滤的零情况是相对于现有技术的重要行为更改。默认情况下,XML签名要求应用设计者使用Reference元素列出要签名的资源。在复合资源文档中,应用设计者创建模板并通常决定包括数字签名特性。但是,在运行时,最终用户可能需要修改所创建的模板实例以推动业务过程。期望的最终用户操作将新文件附加到复合资源文档。因此,不可能在应用设计时将必须在签名生成的运行时刻签名的所有资源列出为Reference元素。相反,复合资源文档处理器的增强签名生成器有必要在生成数字签名时创建Reference元素列表。
因此,使用生成复合资源文档中的每个资源(包括清单)的Reference元素生成器的步骤扩展签名操作非常重要。这是从签名减去复合资源文档中的零个资源的情况。图10、图11和图12的代码片段示出了这种情况(其中减去零个文件)的实例。但是,文本仅示出了正好在签名生成过程之前和完整签名生成过程之后的标记。先前的实例未示出在生成Reference列表的数字签名扩展之后并在核心数字签名生成之前的时刻的中间标记。图13提供了额外的标记样例作为代码片段1300。元素1302定义Signature元素,元素1304定义由所披露的过程的各种实施例自动生成的Reference元素之一。
在SignedInfo中生成包括元素1304的一组引用元素,每个元素都具有空DigestValue元素。SignatureValue也为空。在上述签名扩展之后,可以在核心签名生成之前执行其他步骤,包括例如添加ds:Object以包含诸如签名时间和位置之类的基本签名属性以及另一要签名的引用的步骤。在另一实例中,将添加ds:keyInfo以存储签名者的数字签名证书和主题名称。也可以自动添加其他引用以对keyInfo进行签名。最后,调用核心数字签名生成器以产生DigestValue内容和SignatureValue内容。图12的代码片段1200的标记实例中示出了增强签名生成的最后结果的实例。
参考图14,图14提供了根据本发明的各实施例的具有多个签名者并示出指定已变换资源的手段的复合资源文档定义的代码片段实例。如上面针对图13所述,默认情况下,在将XML签名引用列表视为减去零个元素的减法过滤时存在一个值。例如,通过编程方式而不是事先由应用设计者(复合资源文档模板的创建者)生成Reference列表作为对签名操作的扩展。因此,在文档为复合资源文档,尤其是在最终用户能够将比原始文档模板中可提供的资源更多的资源添加到文档时,所披露的能力允许实现对整个文档进行签名的过程。
此外,所披露的过程将自动生成的引用添加到任何已经提供的引用元素,使得应用设计者(复合资源文档模板的创建者)能够选择以对所披露的过程生成的内容以外的信息进行签名。例如,应用逻辑可以在签名中的ds:Object内生成信息,然后使用引用配置签名以对ds:Object进行签名。
最重要的是,所披露的过程将自动生成的Reference元素列表与SignedInfo中的Reference元素列表进行合并,从而仅在SingedInfo中没有预先存在的Reference时才针对每个资源有效地添加Reference。当所披露的过程的实施方式添加Reference时,所述Reference将导致对整个资源进行签名,这样所披露的过程将对应用设计者应用于特定资源的任何变换或复合资源文档处理器的替代方面做出响应。
在一个实例中,上述“loan”应用旨在满足签名者-共同签名者场景。在代码片段1400中表示loanInstance.xml文件中的数据。提供了第一签名1402以及第二签名1404。第二签名者1404的签名在形式上与先前实例中的签名相同,但是第一签名者1402已经包含对URI=””的引用,它不仅减去本身(封装后的签名),而且还减去第二签名者的签名,所述第二签名者的签名必须在附加第一签名之后生成。因此,当所披露的过程针对第一签名者1402生成Reference元素时,不会生成URI=””Reference,因为它已存在。
参考图15,图15提供了根据本发明的各实施例的指定控制引用生成的模式的代码片段实例。上述实例代码片段中的材料描述了减法过滤的第一步,其中使用对任何可用内容进行签名的默认上下文,而不是仅对显式列出的内容进行签名。在复合资源文档级别处完全启用减法过滤允许应用设计者通过模式指定当使用所披露的过程时,不应生成哪些附加的Reference。
在先前的实例中,使用通配符正则表达式语法,但是也使用XPath表达式。在此实例中,附加一个签名以允许将文件后续添加到复合资源文档中,但是仅添加到诸如attachments目录之类的特定目录中。代码片段1500的标记提供了一个实例,其中元素1502指定资源减法的显式模式,所述模式在此实例中匹配“attachments”子目录(因此允许用户将资源附件添加到该目录或从该目录删除资源附件)中的所有资源。
参考图16,图16提供了根据本发明的各实施例的使用图15的对象从生成的签名引用列表过滤特定资源,从而抑制特定资源的引用生成的代码片段实例。响应于图15的代码片段1502内定义的对象,所披露的过程添加对特殊ds:Object的引用,以便签名对过滤器进行签名、修改manifest.xmlReference以减去与描述符匹配的文件项元素,并抑制与所提供的描述符匹配的资源的Reference元素的生成。
使用代码片段1600的另一实例由于元素1602的资源描述符而从style子目录过滤文件。
所生成的URI=””Reference元素接收元素1604、签名的减法变换以及资源描述符对象的并集。具有以style/开头的URI属性的Reference元素不出现在列表中。对manifest.xml的引用(元素1606)接收删除与描述匹配的文件项元素的减法过滤器。
参考图17,图17提供了根据本发明的生成复合资源的数字签名的过程的流程图。过程1700是使用图5的复合文档系统500的过程的实例。
过程1700开始(步骤1702)并接收包含至少一个资源的复合资源文档(步骤1704)。过程1700获取更新后的清单资源,其中所述清单资源列出了所述复合资源文档中的所有资源(步骤1706)。过程1700指示从所述更新后的清单资源中的资源列表减去零个、一个或多个资源以创建要签名的已标识资源的生成的签名引用列表(步骤1708)。标识现在指被签名的资源,而不包括被删除的资源。在一个示意性实施例中,生成生成的签名引用列表进一步包括包含指示对象的引用,其中所述对象声明了指示从所述资源列表减去一系列资源以创建引用列表的一系列资源描述。
过程1700使用所述生成的签名引用列表中标识的资源生成散列令牌以形成签名散列令牌(步骤1710)。在一个示意性实施例中,生成散列令牌包括选择所述引用列表中的一个或多个资源以形成选定的已变换资源,其中来自所述引用列表的其余资源形成未变换资源,以及将数字签名变换应用于所述选定的已变换资源,以与所述选定的已变换资源结合地使用所述未变换资源来生成所述散列令牌。具体地说,遵循当前W3C XML签名标准的一个示意性实施例分析Signature SignedInfo元素是否具有URI属性指示所述引用列表中的资源的预先存在的Reference元素,所述示意性实施例仅针对不与任何预先存在的Reference元素对应的引用列表资源生成Reference元素。因此,可能包含Transforms元素的每个预先存在的Reference元素替代否则将在步骤1708中针对资源生成的Reference元素,并且从此过程产生的Reference元素列表在步骤1710中用于生成所述签名散列令牌。
在一个示意性实施例中,生成签名散列令牌可以进一步包括以下操作中的至少一个:使用URI解析器获取所述引用列表中的一个或多个资源的内容;以及使用所述引用列表中的至少一个资源的摘要值生成所述散列令牌。具体地说,遵循当前W3C XML签名标准的一个示意性实施例根据摘要值(而非引用列表中所有资源的实际内容)来计算SignatureValue散列令牌。
过程1700使用密钥加密签名散列令牌以创建数字签名(步骤1712),并且随后过程结束(步骤1714)。
参考图18,图18提供了根据本发明的验证图17的复合资源的数字签名的过程的流程图。过程1800是使用图5的复合文档系统500的过程的实例。
过程1800开始(步骤1802)并接收包含一个或多个资源且具有数字签名的复合资源文档(步骤1804)。过程1800获取更新后的清单资源,其中所述更新后的清单资源列出了所述复合资源文档中的所有资源(步骤1806)。
过程1800使用所述数字签名中的生成的签名引用列表中标识的资源生成散列令牌以形成所生成的散列令牌(步骤1808)。过程1800使用所获取的解密密钥来解密所述数字签名内包含的已加密散列令牌以形成签名散列令牌(步骤1810)。至少响应于所生成的散列令牌和所述签名散列令牌的比较,过程1800生成签名有效性结果(步骤1812),随后过程结束(步骤1814)。
参考图19,图19提供了根据本发明的生成图18的签名有效性结果的过程的流程图。过程1900是图18的步骤1808内将所生成的资源散列令牌和已解密的数字签名散列令牌进行比较以及在步骤1812内生成签名有效性结果的过程的实例。
过程1900开始(步骤1902)并判定所生成的散列令牌是否等于签名散列令牌(步骤1904)。当判定所生成的散列令牌等于所述签名散列令牌时,将得到“是”结果。当判定所生成的散列令牌不等于已解密的数字签名散列令牌时,将得到“否”结果。当得到“否”结果时,过程1900生成为无效的签名有效性结果(步骤1906),随后过程结束(步骤1908)。所述判定进一步包括判定所述更新后的清单资源中的一系列资源是否不等于所述数字签名中的生成的签名引用列表中标识的一系列资源。在一个示意性实施例中,所述更新后的清单资源中的资源列表包括来自所述更新后的清单资源的一系列资源,其数量少于声明一系列资源描述(指示当形成生成的签名引用列表时减去的一系列资源)的对象所指示的资源。
当在步骤1904得到“是”结果时,过程1900判定解密密钥是否有效(步骤1910)。当判定解密密钥有效时,将得到“是”结果。当判定解密密钥无效时,将得到“否”结果。判定解密密钥是否有效包括使用包含密钥过期测试、密钥撤销测试、密钥颁发方证书测试和受信密钥列表测试中的零个、一个或多个测试来测试解密密钥的有效性。响应于解密密钥有效性测试失败,将生成为无效的签名有效性结果。
当在步骤1910中得到“是”时,过程1900响应于所生成的散列令牌等于所述签名散列令牌的总体判定并且解密密钥有效性测试未失败,生成为有效的签名有效性结果(步骤1912),随后过程结束(步骤1908)。所述判定进一步包括判定所述更新后的清单资源中的一系列资源是否等于所述数字签名中的生成的签名引用列表中标识的一系列资源。在一个示意性实施例中,所述更新后的清单资源中的资源列表包括来自所述更新后的清单资源的一系列资源,其数量少于声明一系列资源描述(指示当形成所述生成的签名引用列表时减去的一系列资源)的对象所指示的资源。当在步骤1910得到“否”结果时,过程1900生成为无效的签名有效性结果(步骤1906),随后过程如先前那样结束(步骤1908)。
因此,一个实施例中提供了用于创建复合资源文档的数字签名的计算机实现的过程,所述过程通过提供之前的数字签名多资源解决方案所缺乏的资源减法过滤功能,在复合资源文档的数字签名中提供了高安全性。所披露的计算机实现的过程包括:接收包含至少一个资源的复合资源文档;获取更新后的清单资源,其中所述更新后的清单资源列出了所述复合资源文档中的所有资源;指示从所述更新后的清单资源中的资源列表减去零个、一个或多个资源以创建要签名的已标识资源的生成的签名引用列表;使用所述生成的签名引用列表中标识的资源生成散列令牌以形成签名散列令牌以及使用密钥加密所述签名散列令牌。
生成所述散列令牌还可包括使用先前针对零个、一个或多个资源指定的引用元素形成引用列表,从而实现将数字签名变换附加到先前指定的引用元素所指示的资源处理的能力。
所述计算机实现的过程的示例性实施例进一步提供验证复合资源文档的数字签名的能力。所述计算机实现的过程进一步包括:接收包含一个或多个资源且具有数字签名的复合资源文档;获取更新后的清单资源,其中所述更新后的清单资源列出了所述复合资源文档中的所有资源;使用所述数字签名中的生成的签名引用列表中标识的资源生成散列令牌以形成所生成的散列令牌;使用所获取的解密密钥来解密所述数字签名内包含的已加密散列令牌以形成签名散列令牌;以及至少响应于所生成的散列令牌和所述签名散列令牌的比较,生成签名有效性结果。
因此,示例性实施例披露了使用压缩档案的复合资源文档,其中一个文档中的单独资源表示数据记录、附件、页面和附加元素。所述复合资源文档保留了单个文档架构的优点,同时无需对整个档案执行XML解析以获取提供逐页用户体验所需的片段。支持对万维网联盟(W3C)XML签名所提供的资源的多个引用允许将W3C XML签名与复合资源文档结合使用来实现数字签名功能。但是,所述减法过滤能力不限于处理单个XML资源。为了在更高级别上定义要同时签名的多个资源,W3C XML签名标准目前仅提供列表能力,具体地说,列出从Signature SingedInfo元素中的Reference列表获取的资源。
已知的现有解决方案在对交互式文档进行数字签名方面通常具有缺陷,其中包括将文档表示为单个XML文件(允许减法过滤,但是性能较差),将文档表示为复合资源(提供较佳的性能,但是不允许资源级减法过滤)。
所披露的过程将复合资源文档的概念与减法过滤相结合以在协作业务过程中的复合资源文档上实现相同级别的数字签名安全性,同时还在复合资源文档提供的性能方面实现了显著进步。
附图中的流程图和方块图示出了根据本发明的各实施例的系统、方法和计算机程序产品的可能实施方式的架构、功能和操作。在此方面,所述流程图或方块图中的每个方块都可以表示代码的模块、段或部分,所述代码包括用于实现指定的逻辑功能的一个或多个可执行指令。还应指出,在某些备选实施方式中,在方块中说明的功能可以不按图中说明的顺序发生。例如,示为连续的两个方块可以实际上被基本同时地执行,或者某些时候,取决于所涉及的功能,可以以相反的顺序执行所述方块。还应指出,所述方块图和/或流程图的每个方块以及所述方块图和/或流程图中的方块的组合可以由执行指定功能或操作的基于专用硬件的系统或专用硬件和计算机指令的组合来实现。
以下的权利要求中的对应结构、材料、操作以及所有功能性限定的装置或步骤的等同替换,旨在包括任何用于与在权利要求中具体指出的其它单元相组合地执行该功能的结构、材料或操作。所给出的对本发明的描述其目的在于示意和描述,并非是穷尽性的,也并非是要把本发明限定到所表述的形式。对于所属技术领域的普通技术人员来说,在不偏离本发明范围和精神的情况下,显然可以作出许多修改和变型。对实施例的选择和说明,是为了最好地解释本发明的原理和实际应用,使所属技术领域的普通技术人员能够明了,本发明可以有适合所要的特定用途的具有各种改变的各种实施方式。
本发明可以采取完全硬件实施例、完全软件实施例或同时包含硬件和软件元素的实施例的形式。在一个优选实施例中,本发明在软件中实现,所述软件包括但不限于固件、驻留软件、微代码以及本领域的技术人员将认识到的其他软件介质。
重要的是指出,虽然在完整功能的数据处理系统的上下文中说明了本发明,本领域的技术人员将理解,可以以指令的计算机可读介质的形式和各种形式来发布本发明的诸过程,并且本发明均可等同地适用而与实际用于执行发布的信号承载介质的特定类型无关。计算机可读介质的实例包括可记录型介质,诸如软盘、硬盘驱动器、RAM、CD-ROM、DVD-ROM以及传输型介质,诸如数字和模拟通信链路、使用诸如射频和光波传输之类的传输形式的有线或无线通信链路。所述计算机可读介质可以采取编码格式的形式,可以对其解码以便在特定的数据处理系统中实际使用。
适于存储和/或执行程序代码的数据处理系统将包括至少一个直接或通过系统总线间接连接到存储器元件的处理器。所述存储器元件可以包括在程序代码的实际执行期间采用的本地存储器、大容量存储装置以及提供至少某些程序代码的临时存储以减少必须在执行期间从大容量存储装置检索代码的次数的高速缓冲存储器。
输入/输出或I/O设备(包括但不限于键盘、显示器、指点设备等)可以直接或通过中间I/O控制器与系统相连。
网络适配器也可以被连接到系统以使所述数据处理系统能够通过中间专用或公共网络变得与其他数据处理系统或远程打印机或存储设备相连。调制解调器、电缆调制解调器和以太网卡只是几种当前可用的网络适配器类型。
出于说明和描述目的给出了对本发明的描述,并且所述描述并非旨在是穷举的或是将本发明限于所公开的形式。许多修改和变化对于本领域的技术人员来说都将是显而易见的。实施例的选择和描述是为了最佳地解释本发明的原理、实际应用,并且当适合于所构想的特定使用时,使得本领域的其他技术人员能够理解本发明的具有各种修改的各种实施例。
Claims (20)
1.一种用于创建复合资源文档的数字签名的计算机实现的方法,所述计算机实现的方法包括:
接收包含至少一个资源的复合资源文档;
获取更新后的清单资源,其中所述更新后的清单资源列出了所述复合资源文档中的所有资源;
指示从所述更新后的清单资源中的资源列表减去零个、一个或多个资源以创建要签名的已标识资源的生成的签名引用列表;
使用所述生成的签名引用列表中标识的资源生成散列令牌以形成签名散列令牌;以及
使用密钥加密所述签名散列令牌。
2.如权利要求1中所述的计算机实现的方法,其中使用所述生成的签名引用列表中标识的资源生成散列令牌进一步包括:
选择所述生成的签名引用列表中的一个或多个资源以形成选定的已变换资源,其中来自所述生成的签名引用列表的其余资源形成未变换资源;
将数字签名变换应用于所述选定的已变换资源;以及
与所述选定的已变换资源结合地使用所述未变换资源来生成所述散列令牌。
3.如权利要求1中所述的计算机实现的方法,其中使用所述生成的签名引用列表中标识的资源生成散列令牌进一步包括以下操作中的至少一个:
使用URI解析器获取所述生成的签名引用列表中标识的一个或多个资源的内容;以及
使用所述生成的签名引用列表中标识的至少一个资源的摘要值生成所述散列令牌。
4.如权利要求1中所述的计算机实现的方法,其中创建生成的签名引用列表进一步包括:
包括对对象的引用,其中所述对象声明了指示从所述生成的签名引用列表减去的一系列资源的一系列资源描述。
5.一种验证复合资源文档的数字签名的计算机实现的方法,所述计算机实现的方法包括:
接收包含一个或多个资源且具有数字签名的复合资源文档;
获取更新后的清单资源,其中所述更新后的清单资源列出了所述复合资源文档中的所有资源;
使用所述数字签名中的生成的签名引用列表中标识的资源生成散列令牌以形成所生成的散列令牌;
使用所获取的解密密钥来解密所述数字签名内包含的已加密散列令牌以形成签名散列令牌;以及
至少响应于所生成的散列令牌和所述签名散列令牌的比较,生成签名有效性结果。
6.如权利要求5中所述的计算机实现的方法,其中生成签名有效性结果进一步包括:
响应于判定所生成的散列令牌不等于所述签名散列令牌,生成为无效的签名有效性结果,其中所述判定进一步包括判定来自所述更新后的清单资源的一系列资源是否不等于所述数字签名中的所述生成的签名引用列表中标识的一系列资源;
使用包括密钥过期测试、密钥撤销测试、密钥颁发方证书测试以及受信密钥列表测试中的零个、一个或多个测试来测试所获取的解密密钥的有效性;
响应于解密密钥有效性测试失败,生成为无效的签名有效性结果;以及
响应于判定所生成的散列令牌等于所述签名散列令牌并且解密密钥有效性测试未失败,生成为有效的签名有效性结果,其中所述判定进一步包括判定来自所述更新后的清单资源的一系列资源是否等于所述数字签名中的所述生成的签名引用列表中标识的一系列资源。
7.如权利要求6中所述的计算机实现的方法,其中使用生成的签名引用列表中标识的资源生成散列令牌进一步包括以下操作中的至少一个:
使用URI解析器获取所述生成的签名引用列表中标识的一个或多个资源的内容;
针对所述生成的签名引用列表中标识的至少一个资源执行至少一次数字签名变换;以及
使用所述生成的签名引用列表中标识的至少一个资源的摘要值生成所述散列令牌。
8.一种用于创建复合资源文档的数字签名的系统,所述系统包括:
用于接收包含至少一个资源的复合资源文档的部件;
用于获取更新后的清单资源的部件,其中所述更新后的清单资源列出了所述复合资源文档中的所有资源;
用于指示从所述更新后的清单资源中的资源列表减去零个、一个或多个资源以创建要签名的已标识资源的生成的签名引用列表的部件;
用于使用所述生成的签名引用列表中标识的资源生成散列令牌以形成签名散列令牌的部件;以及
用于使用密钥加密所述签名散列令牌的部件。
9.如权利要求8中所述的系统,其中用于使用所述生成的签名引用列表中标识的资源形成签名散列令牌的部件进一步包括:
用于选择所述生成的签名引用列表中的一个或多个资源以形成选定的已变换资源的部件,其中来自所述生成的签名引用列表的其余资源形成未变换资源;
用于将数字签名变换应用于所述选定的已变换资源的部件;以及
用于与所述选定的已变换资源结合地使用所述未变换资源来生成所述散列令牌的部件。
10.如权利要求8中所述的系统,其中用于使用所述生成的签名引用列表中标识的资源生成散列令牌的部件进一步包括以下部件中的至少一个:
用于使用URI解析器获取所述生成的签名引用列表中标识的一个或多个资源的内容的部件;以及
用于使用所述生成的签名引用列表中标识的至少一个资源的摘要值生成所述散列令牌的部件。
11.如权利要求8中所述的系统,其中用于创建生成的签名引用列表的部件进一步包括:
用于包括对对象的引用的部件,其中所述对象声明了指示从所述生成的签名引用列表减去的一系列资源的一系列资源描述。
12.一种用于验证复合资源文档的数字签名的系统,所述系统包括:
用于接收包含一个或多个资源且具有数字签名的复合资源文档的部件;
用于获取更新后的清单资源的部件,其中所述更新后的清单资源列出了所述复合资源文档中的所有资源;
用于使用所述数字签名中的生成的签名引用列表中标识的资源生成散列令牌以形成所生成的散列令牌的部件;
用于使用所获取的解密密钥来解密所述数字签名内包含的已加密散列令牌以形成签名散列令牌的部件;以及
用于至少响应于所生成的散列令牌和所述签名散列令牌的比较,生成签名有效性结果的部件。
13.如权利要求12中所述的系统,其中用于生成签名有效性结果的部件进一步包括:
用于响应于判定所生成的散列令牌不等于所述签名散列令牌,生成为无效的签名有效性结果的部件,其中所述判定进一步包括判定来自所述更新后的清单资源的一系列资源是否不等于所述数字签名中的所述生成的签名引用列表中标识的一系列资源;
用于使用包括密钥过期测试、密钥撤销测试、密钥颁发方证书测试以及受信密钥列表测试中的零个、一个或多个测试来测试所获取的解密密钥的有效性的部件;
用于响应于解密密钥有效性测试失败,生成为无效的签名有效性结果的部件;以及
用于响应于判定所生成的散列令牌等于所述签名散列令牌并且解密密钥有效性测试未失败,生成为有效的签名有效性结果的部件,其中所述判定进一步包括判定来自所述更新后的清单资源的一系列资源是否等于所述数字签名中的所述生成的签名引用列表中标识的一系列资源。
14.如权利要求13中所述的系统,其中用于使用生成的签名引用列表中标识的资源生成散列令牌的部件进一步包括以下部件中的至少一个:
用于使用URI解析器获取所述生成的签名引用列表中标识的一个或多个资源的内容的部件;
用于针对所述生成的签名引用列表中标识的至少一个资源执行至少一次数字签名变换的部件;以及
用于使用所述生成的签名引用列表中标识的至少一个资源的摘要值生成所述散列令牌的部件。
15.一种用于创建复合资源文档的数字签名的装置,所述装置包括:
通信结构;
与所述通信结构相连的存储器;
与所述通信结构相连的通信单元;
与所述通信结构相连的输入/输出单元;
与所述通信结构相连的显示器;以及
与所述通信结构相连的处理器单元,其中所述处理器单元执行以下操作:
接收包含至少一个资源的复合资源文档;
获取更新后的清单资源,其中所述更新后的清单资源列出了所述复合资源文档中的所有资源;
指示从所述更新后的清单资源中的资源列表减去零个、一个或多个资源以创建要签名的已标识资源的生成的签名引用列表;
使用所述生成的签名引用列表中标识的资源生成散列令牌以形成签名散列令牌;以及
使用密钥加密所述签名散列令牌。
16.如权利要求15中所述的装置,其中所述处理器单元使用所述生成的签名引用列表中标识的资源生成散列令牌包括所述处理器单元进一步执行以下操作:
选择所述生成的签名引用列表中的一个或多个资源以形成选定的已变换资源,其中来自所述生成的签名引用列表的其余资源形成未变换资源;
将数字签名变换应用于所述选定的已变换资源;以及
与所述选定的已变换资源结合地使用所述未变换资源来生成所述散列令牌。
17.如权利要求15中所述的装置,其中所述处理器单元使用所述生成的签名引用列表中标识的资源生成散列令牌包括所述处理器单元进一步执行以下操作中的至少一个:
使用URI解析器获取所述生成的签名引用列表中标识的一个或多个资源的内容;以及
使用所述生成的签名引用列表中标识的至少一个资源的摘要值生成所述散列令牌。
18.如权利要求15中所述的装置,其中所述处理器单元创建生成的签名引用列表包括所述处理器单元进一步执行以下操作:
包括对对象的引用,其中所述对象声明了指示从所述生成的签名引用列表减去的一系列资源的一系列资源描述。
19.一种用于验证复合资源文档的数字签名的装置,所述装置包括:
通信结构;
与所述通信结构相连的存储器;
与所述通信结构相连的通信单元;
与所述通信结构相连的输入/输出单元;
与所述通信结构相连的显示器;以及
与所述通信结构相连的处理器单元,其中所述处理器单元执行以下操作:
接收包含一个或多个资源且具有数字签名的复合资源文档;
获取更新后的清单资源,其中所述更新后的清单资源列出了所述复合资源文档中的所有资源;
使用所述数字签名中的生成的签名引用列表中标识的资源生成散列令牌以形成所生成的散列令牌;
使用所获取的解密密钥来解密所述数字签名内包含的已加密散列令牌以形成签名散列令牌;以及
至少响应于所生成的散列令牌和所述签名散列令牌的比较,生成签名有效性结果。
20.如权利要求19中所述的装置,其中所述处理器单元进一步执行以下操作中的至少一个:
使用URI解析器获取所述生成的签名引用列表中标识的一个或多个资源的内容;
针对所述生成的签名引用列表中标识的至少一个资源执行至少一次数字签名变换;
使用所述生成的签名引用列表中标识的至少一个资源的摘要值生成所述散列令牌;以及
生成签名有效性结果,其中生成签名有效性结果进一步包括:
响应于判定所生成的散列令牌不等于所述签名散列令牌,生成为无效的签名有效性结果,其中所述判定进一步包括判定来自所述更新后的清单资源的一系列资源是否不等于所述数字签名中的所述生成的签名引用列表中标识的一系列资源;
使用包括密钥过期测试、密钥撤销测试、密钥颁发方证书测试以及受信密钥列表测试中的零个、一个或多个测试来测试所获取的解密密钥的有效性;
响应于解密密钥有效性测试失败,生成为无效的签名有效性结果;以及
响应于判定所生成的散列令牌等于所述签名散列令牌并且解密密钥有效性测试未失败,生成为有效的签名有效性结果,其中所述判定进一步包括判定来自所述更新后的清单资源的一系列资源是否等于所述数字签名中的所述生成的签名引用列表中标识的一系列资源。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CA2716982 | 2010-10-06 | ||
CA2716982A CA2716982C (en) | 2010-10-06 | 2010-10-06 | Digital signatures on composite resource documents |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102447559A CN102447559A (zh) | 2012-05-09 |
CN102447559B true CN102447559B (zh) | 2015-01-28 |
Family
ID=43379113
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110216583.8A Active CN102447559B (zh) | 2010-10-06 | 2011-07-29 | 针对复合资源文档创建数字签名的方法和系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8856532B2 (zh) |
JP (1) | JP5783630B2 (zh) |
CN (1) | CN102447559B (zh) |
CA (1) | CA2716982C (zh) |
Families Citing this family (37)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090238365A1 (en) * | 2008-03-20 | 2009-09-24 | Kinamik Data Integrity, S.L. | Method and system to provide fine granular integrity to digital data |
JP5761683B2 (ja) * | 2011-02-23 | 2015-08-12 | セイコーインスツル株式会社 | 情報処理装置、及び情報処理プログラム |
US8775555B2 (en) * | 2011-05-13 | 2014-07-08 | Sap Ag | Rest interface interaction with expectation management |
US8881006B2 (en) * | 2011-10-17 | 2014-11-04 | International Business Machines Corporation | Managing digital signatures |
US8997070B2 (en) * | 2011-12-15 | 2015-03-31 | Sap Se | Extension mechanism for scripting language compiler |
US9384012B2 (en) * | 2011-12-16 | 2016-07-05 | Sap Se | Standalone data entry for backend system |
US20140122897A1 (en) * | 2011-12-31 | 2014-05-01 | Rakesh Dodeja | Securing device environment for trust provisioning |
US9183393B2 (en) * | 2012-01-12 | 2015-11-10 | Facebook, Inc. | Multiple system images for over-the-air updates |
US8732481B2 (en) * | 2012-01-30 | 2014-05-20 | Hewlett-Packard Development Company, L.P. | Object with identity based encryption |
US20150188929A1 (en) * | 2012-08-21 | 2015-07-02 | Sony Corporation | Signature validation information transmission method, information processing apparatus, information processing method, and broadcast delivery apparatus |
US9621440B2 (en) * | 2012-08-31 | 2017-04-11 | Rackspace Us, Inc. | System and method for validating documentation of representational state transfer (REST) services |
US9607132B2 (en) | 2012-10-22 | 2017-03-28 | Koninklijke Kpn N.V. | Token-based validation method for segmented content delivery |
US20140359605A1 (en) * | 2013-05-30 | 2014-12-04 | Microsoft Corporation | Bundle package signing |
WO2015005922A1 (en) * | 2013-07-11 | 2015-01-15 | Hewlett-Packard Development Company, L.P. | Printing composite documents |
US9992026B2 (en) * | 2014-03-28 | 2018-06-05 | Mohammed Alawi E GEOFFREY | Electronic biometric (dynamic) signature references enrollment method |
WO2015199654A1 (en) * | 2014-06-24 | 2015-12-30 | Hewlett-Packard Development Company, L.P. | Composite document access |
US10205597B2 (en) * | 2014-06-30 | 2019-02-12 | Hewlett-Packard Development Company, L.P. | Composite document referenced resources |
CN105320900B (zh) * | 2014-07-24 | 2019-08-23 | 方正国际软件(北京)有限公司 | Pdf数字签名方法和系统以及pdf数字签名验证方法和系统 |
US9495648B1 (en) * | 2015-12-11 | 2016-11-15 | International Business Machines Corporation | Training a similar passage cognitive system using ground truth from a question answering cognitive system |
US10044701B2 (en) * | 2016-05-24 | 2018-08-07 | Vantiv, Llc | Technologies for token-based authentication and authorization of distributed computing resources |
US11064056B2 (en) | 2016-07-01 | 2021-07-13 | Intel Corporation | Methods and apparatus to improve interprocess communication |
SG10202107632SA (en) * | 2016-07-29 | 2021-08-30 | Nchain Holdings Ltd | Blockchain-implemented method and system |
CN106571928B (zh) * | 2016-11-09 | 2018-05-01 | 北京海泰方圆科技股份有限公司 | 一种浏览器管理的方法及装置 |
CN106789091B (zh) * | 2017-02-24 | 2020-02-21 | 中金金融认证中心有限公司 | 一种Open XML文档数字签名和验签的实现方法及装置 |
WO2018199963A1 (en) * | 2017-04-27 | 2018-11-01 | Hewlett-Packard Development Company, L.P | Regulating document access |
JP7100502B2 (ja) * | 2018-06-13 | 2022-07-13 | キヤノン株式会社 | 情報処理装置とその制御方法、及びプログラム |
CN109034805B (zh) * | 2018-08-09 | 2022-09-02 | 江苏先安科技有限公司 | 一种适用于区块链和嵌入式领域的时间戳签名验证方法 |
CN109309569B (zh) * | 2018-09-29 | 2021-10-01 | 北京信安世纪科技股份有限公司 | 基于sm2算法的协同签名的方法、装置及存储介质 |
US11184423B2 (en) * | 2018-10-24 | 2021-11-23 | Microsoft Technology Licensing, Llc | Offloading upload processing of a file in a distributed system using a key that includes a hash created using attribute(s) of a requestor and/or the file |
US10911243B1 (en) | 2018-12-14 | 2021-02-02 | Wells Fargo Bank, N.A. | Time-based digital signature |
US11233772B1 (en) * | 2019-11-27 | 2022-01-25 | Worldpay, Llc | Methods and systems for secure cross-platform token exchange |
CN111586170B (zh) * | 2020-05-07 | 2023-05-23 | 广州博冠信息科技有限公司 | 资源下载方法、装置、设备及计算机可读存储介质 |
US11687514B2 (en) | 2020-07-15 | 2023-06-27 | International Business Machines Corporation | Multimodal table encoding for information retrieval systems |
CN112597851A (zh) * | 2020-12-15 | 2021-04-02 | 泰康保险集团股份有限公司 | 签名的获取方法、装置、电子设备及存储介质 |
CN112732649B (zh) * | 2020-12-21 | 2024-03-12 | 航天信息股份有限公司 | Ofd文档签章方法、电子设备及介质 |
CN115455492B (zh) * | 2022-09-30 | 2024-02-13 | 百望股份有限公司 | 一种ofd文件的制作方法和装置 |
CN115361146B (zh) * | 2022-10-24 | 2023-03-10 | 中安网脉(北京)技术股份有限公司 | 一种兼容多种密码算法的电子印章系统及方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101072097A (zh) * | 2006-05-11 | 2007-11-14 | 美国博通公司 | 用于受信数据处理的方法和系统 |
CN101369889A (zh) * | 2007-08-13 | 2009-02-18 | 深圳兆日技术有限公司 | 一种对文档进行电子签名的系统和方法 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6961681B1 (en) * | 2000-09-12 | 2005-11-01 | Microsoft Corporation | System and method providing virtual applications architecture |
JP3730498B2 (ja) * | 2000-09-19 | 2006-01-05 | 株式会社東芝 | 署名用記憶媒体 |
US7340611B2 (en) | 2003-01-28 | 2008-03-04 | Microsoft Corporation | Template-driven XML digital signature |
US7703090B2 (en) * | 2004-08-31 | 2010-04-20 | Microsoft Corporation | Patch un-installation |
US20060112152A1 (en) * | 2004-11-22 | 2006-05-25 | Microsoft Corporation | Smart patching by targeting particular prior versions of a file |
JP4134094B2 (ja) * | 2005-04-27 | 2008-08-13 | 三菱電機株式会社 | 署名検証装置及び署名作成・検証システム及び署名検証方法 |
US7747642B2 (en) | 2005-05-09 | 2010-06-29 | Trend Micro Incorporated | Matching engine for querying relevant documents |
EP1927060B1 (en) * | 2005-08-09 | 2019-10-09 | Nexsan Technologies Canada Inc. | Data archiving method and system |
JP5108285B2 (ja) * | 2006-11-30 | 2012-12-26 | 株式会社日立製作所 | 署名方法、情報処理装置、および署名プログラム |
US9280337B2 (en) * | 2006-12-18 | 2016-03-08 | Adobe Systems Incorporated | Secured distribution of software updates |
CN101340427B (zh) * | 2007-07-04 | 2012-04-04 | 华为技术有限公司 | 内容分类和过滤的方法、装置及系统 |
US20100037062A1 (en) | 2008-08-11 | 2010-02-11 | Mark Carney | Signed digital documents |
-
2010
- 2010-10-06 CA CA2716982A patent/CA2716982C/en active Active
-
2011
- 2011-06-24 US US13/168,272 patent/US8856532B2/en active Active
- 2011-07-29 CN CN201110216583.8A patent/CN102447559B/zh active Active
- 2011-08-22 JP JP2011180340A patent/JP5783630B2/ja active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101072097A (zh) * | 2006-05-11 | 2007-11-14 | 美国博通公司 | 用于受信数据处理的方法和系统 |
CN101369889A (zh) * | 2007-08-13 | 2009-02-18 | 深圳兆日技术有限公司 | 一种对文档进行电子签名的系统和方法 |
Non-Patent Citations (2)
Title |
---|
John Boyer,Merlin Hughes,Joseph Reagle.XML-Signature XPath Filter 2.0.《http://www.w3.org/TR/2002/REC-xmldsig-filter2-20021108/》.2002,第1节,第3节. * |
Mark Bartel,John Boyer,Barb Fox,Brian LaMacchia,Ed Simon.XML-Signature Syntax and Processing.《http://www.w3.org/TR/2001/PR-xmldsig-core-20010820/》.2001,全文. * |
Also Published As
Publication number | Publication date |
---|---|
JP2012085276A (ja) | 2012-04-26 |
CN102447559A (zh) | 2012-05-09 |
CA2716982C (en) | 2016-07-19 |
US8856532B2 (en) | 2014-10-07 |
JP5783630B2 (ja) | 2015-09-24 |
US20120089841A1 (en) | 2012-04-12 |
CA2716982A1 (en) | 2010-12-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102447559B (zh) | 针对复合资源文档创建数字签名的方法和系统 | |
US7558759B2 (en) | Systems and methods for creating, manipulating and processing rights and contract expressions using tokenized templates | |
US8091015B2 (en) | Digital document management system, digital document management method, and digital document management program | |
CN1776701B (zh) | 定义、使用和操纵权限管理数据结构的技术 | |
EP3844637A1 (en) | System and method for improved blockchain-implemented smart contract | |
US9536058B2 (en) | Apparatus and method for managing digital copyright on EPUB-based content, and apparatus and method for providing EPUB-based content according to user's right | |
US8688992B2 (en) | System and method for generating agreements | |
EP1808795A2 (en) | Digital document management system, digital document management method, and digital document management program | |
US20040078577A1 (en) | Method and apparatus for providing xml document encryption | |
Hwang et al. | An operational model and language support for securing XML documents | |
CN112906067B (zh) | 一种基于电子邮件传递方式的区块链数据保全方法 | |
Kunis et al. | A new model for document management in e-Government systems based on hierarchical process folders | |
Ruiz et al. | Security knowledge representation artifacts for creating secure IT systems | |
Fotos | Specification and implementation of metadata for secure image provenance information | |
Meneklis et al. | Engineering and technology aspects of an e-government architecture based on Web services | |
Matzutt et al. | Illicit blockchain content: Its different shapes, consequences, and remedies | |
KR101558855B1 (ko) | 전자 출판 내에 저작권 정보의 표시가 가능한 장치 및 방법 | |
Phan | Web Application Programming Interface Design for a Customer Portal | |
Mannens et al. | Automated trust estimation in developing open news stories: combining memento & provenance | |
Sousa et al. | Digital signatures workflows in alfresco | |
Serrano et al. | Concepts and Design Innovations addressing the Digital Transformation of Data Spaces and Marketplaces: i3-MARKET Book Series-Part I: A Vision to the future of Data-Driven Economy | |
Länger et al. | HCI patterns for cryptographically equipped cloud services | |
Haque et al. | An Integrated Blockchain and IPFS Solution for Secure and Efficient Source Code Repository Hosting using Middleman Approach | |
KR20160077833A (ko) | 전자출판 저작물에 대한 연관저작물 관리 장치 및 방법 | |
CN114741739A (zh) | 一种基于区块链的确权流通方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |