CN101465848B - 安全数字签名*** - Google Patents
安全数字签名*** Download PDFInfo
- Publication number
- CN101465848B CN101465848B CN2008101663779A CN200810166377A CN101465848B CN 101465848 B CN101465848 B CN 101465848B CN 2008101663779 A CN2008101663779 A CN 2008101663779A CN 200810166377 A CN200810166377 A CN 200810166377A CN 101465848 B CN101465848 B CN 101465848B
- Authority
- CN
- China
- Prior art keywords
- digital signature
- document
- client
- response
- signer
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0823—Network architectures or network communication protocols for network security for authentication of entities using certificates
-
- 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
-
- 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/3271—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 using challenge-response
- H04L9/3273—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 using challenge-response for mutual authentication
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Information Transfer Between Computers (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开一种安全数字签名***。示意性实施例提供计算机实现的方法、设备和计算机程序产品,用于从客户端接收实例化电子文档的请求。在成功完成网络应用服务器和客户端之间的相互验证以后,网络应用服务器向客户端提供电子文档。然后,网络应用服务器可以接收与电子文档关联的一组修改,以形成修改的文档。在从客户端接收为修改文档生成数字签名的请求后,网络应用服务器利用网络应用服务器的私钥和与客户端关联的终端用户标识生成数字签名。然后,网络应用服务器利用数字签名对修改文档进行签名。
Description
技术领域
本发明总体涉及数据处理***,具体涉及数字签名。更为具体地,本发明针对用于在丰富网络应用内容上生成安全数字签名的计算机实现的方法、设备和计算机可用程序代码。
背景技术
公钥密码***是一种使用公钥和私钥对的密码***的形式。私钥保密并且只有私钥持有人知道。与私钥配对的公钥在数学上与私钥相关,并且可以公共分发。数字签名是一种使用私钥创建签名的密码***类型。那么,具有公钥的任何用户都可以验证签名。
因此,数字签名是密码安全方式,用于保护消息防止被篡改以及防止将个人标识与消息内容进行关联。消息是任何类型的信息或通信,例如但不限于,电子邮件消息,表示商业事务、合同的可扩展标记语言(XML)的电子形式或任何其他有限长度字节序列。表格是具备数据收集和传送的特别能力的通用应用程序。数字签名的签名者是影响事务或合同的用户,例如,表格表示的事务或合同。
数字签名通常包括消息验证令牌和签名者验证令牌。消息验证令牌应当是密码安全的。类似地,签名者的验证令牌应当以密码安全的方式与消息绑定。需要这些措施来确保在不使数字签名无效的情况下在计算上不能对消息进行篡改,或者在不使数字签名无效的情况下不能将签名者验证令牌与修改的消息进行关联。此外,应当能够通过签名者证书期满或被撤销来使签名无效。
签名标识由私钥和公钥证书组成。签名者私钥资料必须用于帮助生成数字签名,以将签名者标识与签名的消息内容进行关联。对包括签名者私钥操作的访问只授权于终端用户计算机上的受信应用程序。对于限制客户端可执行代码的配置而不限制客户端网络浏览器的配置的网络应用,这是个有问题的要求。此外,难以对完全表示用户的丰富网络应用程序经历的内容进行数字签名,因为包括完全网络应用的大量内容是由服务器来维护的。
现有技术中,通过客户端软件来提供丰富内容文档的数字签名。但是,这种方案要求用户安装或升级客户端软件,使得能够对丰富内容文档服务器提供的丰富内容文档进行数字签名。
在另一个现有技术中,由不能够保证数字签名安全的零占用空间(zero footprint)网络应用服务器产品来提供丰富内容文档。零占用空间网络应用服务器是提供对网络应用的访问而不在客户端上下载或安装与应用程序关联的软件的服务器。但是,该方案在文档的安全性和可靠性之间进行折衷,因为数字签名安全性对用户不可用。
发明内容
示意性实施例提供计算机实现的方法、设备和计算机程序产品,用于从客户端接收实例化电子文档的请求。在成功完成网络应用服务器和客户端之间的相互验证以后,网络应用服务器向客户端提供电子文档。然后,网络应用服务器可以接收与电子文档关联的一组修改,以形成修改的文档。在从客户端接收关于要为修改文档生成的数字签名的请求后,网络应用服务器利用网络应用服务器的私钥和与客户端关联的终端用户标识生成数字签名。然后,网络应用服务器利用数字签名对修改的文档进行签名。
在另一个实施例中,在文档被数字签名至少一次以后,增加用于对来自客户端的对电子文档进行实例化的进一步请求作出响应的过程。根据网络应用服务器的公钥证书以及签名者的公钥证书或公共标识以及任何其他元数据,对与文档关联的任何数字签名进行验证。
附图说明
本发明可信的新特征在所附的权利要求的中列出。当结合附图阅读时,参考下文对示意性的实施例的详细描述,将更好地理解本发明自身以及使用的优选模式、其他目的及其优点,其中:
图1示出了其中可以实现示意性实施例的数据处理***网络的图形表示;
图2是其中可以实现示意性实施例的数据处理***的框图;
图3是示出根据示意性实施例的生成数字签名时的数据流的框图;
图4是示出了根据示意性实施例的用于在丰富内容文档上创建数字签名的过程的流程图;
图5示出了根据示意性实施例的用于由网络应用服务器生成数字签名的过程的流程图;以及
图6是示出了根据示意性实施例的用于验证数字签名的过程的流程图。
具体实施方式
现在参考附图,尤其参考附图1-2,提供了其中可以实现示意性实施例的数据处理环境的示例性示意图。应当理解,图1-2只是示例性的,并不意在声称或暗示对其中可以实现不同的实施例的环境进行任何限制。可以对所示环境的进行多种修改。
图1示出了其中可以实现示意性实施例的数据处理***网络的图形表示。网络数据处理***100是可以实现示意性实施例的计算机网络。网络数据处理***100包括网络102,其中,网络102用于作为在网络数据处理***100内连接在一起的各种装置和计算机之间提供通信链路的媒介。网络102可以包括连接,例如有线、无线通信链路或光纤电缆。
在所示例子中,服务器104和服务器106与存储单元108一起连接到网络102。在该例中,服务器104是零占用空间网络应用服务器,并且服务器106是标准网络应用服务器。零占用空间网络应用服务器是通过网络102将软件应用程序传送给客户端110、112和114,而不在客户端110、112和114上安装丰富内容网络应用软件的软件引擎。服务器104包括签名验证器和签名生成器。服务器104是可以实现示意性实施例的服务器的例子。在另一个例子中,服务器106还可以包括签名验证器和签名生成器。
此外,客户端110、112和114连接到网络102。客户端110、112和114可以是,例如,个人计算机或网络计算机。在所示的例子中,服务器106向客户端110、112和114提供数据,例如,启动文件、操作***镜像,以及应用程序。在该例中,客户端110、112和114是服务器104和106的客户端。在图1中,客户端110包括用于完成与服务器104或106的相互验证过程的用户私钥。相互验证指的是客户端或用户向服务器提供它们自身的验证,并且该服务器也向用户提供它们自身的验证,双方以这种方式都确信对方的标识。网络数据处理***100包括附加服务器、客户端以及未示出的其他装置。
在所示例子中,网络数据处理***100是具有网络102的因特网,所述因特网表示使用传输控制协议/因特网协议(TCP/IP)等一整套协议进行相互通信的世界范围的网络和网关的集合。在因特网的中心是在主节点或主机之间的高速数据通信线路的主干,所述主节点和主机包括数以千计的商业、政府、教育的计算机***和路由数据及消息的其他计算机***。当然,网络数据处理***100也可以实现为多种不同类型的网络,例如,内部网、局域网(LAN)或广域网(WAN)。图1仅仅是一个例子,并不意味对不同示意性实施例的结构限制。
现在参考图2,示出了其中可以实现示意性实施例的数据处理***框图。数据处理***200是计算机的一个例子,如图1的服务器104或客户端110,其中,在示意性实施例中具有实现过程的计算机可用程序代码或指令。在该示意性例子中,数据处理***200包括通信结构202,其提供在处理器单元204、存储器206、永久性存储器208、通信单元210、输入/输出(I/O)单元212和显示器214之间的通信。
处理器单元204用于为可以加载到存储器206中的软件执行指令。处理器单元204可以是一个或多个处理器的集合或者可以是多处理器内核,这取决于特定实现方式。此外,处理器204可以利用一个或多个异构处理器***来实现,其中,在单个芯片上出现主处理器和辅助处理器。在另一个示意性例子中,处理器单元204可以是包括多个相同类型的处理器的对称多处理器***。
在这些例子中,存储器206可以是例如随机存取存储器或任何其他适当的易失性或非易失性存储装置。永久性存储器208可以根据具体实施方式采取各种形式。例如,永久性存储器208可以包括一个或多个组件或装置。例如,永久性存储器208可以是硬盘、闪存、可重写光盘、可重写磁带或上述一些的组合。永久性存储器208使用的介质也可以是可移除的。例如,可移除硬盘驱动器可用于永久性存储器208。
在这些例子中,通信单元210提供与其他数据处理***或装置的通信。在这些例子中,通信单元210是网络接口卡。通信单元210可以通过利用物理和无线通信链路的其中一种或两种来提供通信。
输入/输出单元212允许利用可以连接到数据处理***200的其他装置输入和输出数据。例如,输入/输出单元212可以提供连接用于通过键盘或鼠标进行用户输入。此外,输入/输出单元212可以向打印机发送输出。显示器214向用户提供显示信息的机制。
操作***和应用程序或程序的指令位于永久性存储器208上。这些指令可以加载到存储器206中用于处理器单元204执行。可以由处理器单元204利用可以位于例如存储器206的存储器中的计算机实现的指令,执行不同实施例的过程。这些指令被称为处理器单元204中的处理器可读并执行的程序代码、计算机可用程序代码或者计算机可读程序代码。不同实施例中的程序代码可以实现在不同的物理或有形计算机可读介质上,例如,存储器206或永久性存储器208。
计算机可用程序代码216以功能的形式位于可以选择性地移除的计算机可读介质218上,并且可以加载到或传输到数据处理***200,用于由处理器单元204执行。在这些例子中,计算机可用程序代码216和计算机可读介质218形成计算机程序产品220。在一个例子中,计算机可读介质218可以是有形形式的,例如,***或放入驱动器或其他作为永久性存储器208的一部分的装置中的光盘或磁盘,用于传输到例如作为永久性存储器208的一部分的硬盘的存储装置上。对于有形形式,计算机可读介质218也可以采取永久性存储器的形式,例如,连接到数据处理***200的硬盘、拇指驱动器或闪存。计算机可读介质x18的有形形式也可以指计算机可记录存储介质。在某些情况下,计算机可记录介质218可以不是可移除的。
可替换地,计算机可用程序代码216可以通过到通信单元210的通信链路和/或通过到输入/输出单元212的连接从计算机可读介质218传输到数据处理***200。在示意性例子中,通信链路和/或连接可以是物理的或无线的。计算机可读介质也可以采取非有形介质的形式,例如,包括程序代码的通信链路或无线传输。
为数据处理***200示出的不同组件并不意味着对不同实施例可以实现的方式进行结构上的限制。不同的示意性实施例可以在数据处理***中实现,所述数据处理***包括除了数据处理***200中示出的这些组件之外的组件,或者包括替代数据处理***200中示出的这些组件的组件。在图2中示出的其他组件可以不同于示出的示意性例子。
如一个例子所示,数据处理***200中的存储装置是可以存储数据的任何硬件装置。存储器206、永久性存储器208以及计算机可读介质218是有形形式的存储装置的例子。
在另一个例子中,总线***可用于实现通信结构202,并可以包括一个或多个总线,例如,***总线或输入/输出总线。当然,总线***可以利用任何适当类型的结构来实现,所述结构提供在连接到总线***的不同组件或装置之间的数据传输。此外,通信单元可以包括一个或多个用于发送和接收数据的装置,例如,调制解调器或网络适配器。此外,存储器可以是例如存储器206或者如在可以在通信结构202中出现的接口和存储器控制器集线器中找到的高速缓存。
示意性实施例认识到需要一种***,能够在丰富网络应用内容上创建密码安全数字签名,其满足如下要求:在没有使数字签名无效的情况下,不能篡改消息;在没有使数字签名无效的情况下,不能将签名者验证令牌与修改消息进行关联;并且还要能够确保可以由于签名者证书的期满或被撤销而使签名无效。
因此,示意性实施例提供了计算机实现的方法、设备和计算机程序产品,用于从应用服务器接收请求对电子文档进行实例化。在应用服务器和客户端之间成功完成相互验证之后,应用服务器向客户端提供电子文档。接着,网络应用服务器接收对电子文档的一组修改,用于形成修改的文档。从客户端接收关于要为修改文档生成的数字签名的请求之后,网络应用服务器利用网络应用服务器的私钥和与客户端关联的终端用户的标识生成数字签名。然后,网络应用服务器用数字签名对修改的文档进行签名。
图3是示出了根据本示意性实施例的生成数字签名时的数据流的框图。可以利用任何类型的计算设备,包括但不限于,个人计算机、膝上型计算机、个人数字助理、服务器或任何其他图1和图2中示出的计算设备,来实现网络数据处理***300。
网络应用服务器302可以是现有技术已知的用于通过网络向客户端提供应用程序的任何类型的服务器。例如,网络应用服务器302可以是标准网络应用服务器或者零占用空间网络应用服务器。零占用空间应用服务器只配置网络浏览器,不配置其他类型的客户端可执行代码。
在这个例子中,网络应用服务器302包括文档到HTML转换器304、文档运行器(runner)306、访问控制器308、签名生成器310、签名验证器312、文档模板或部分完成文档库314、数据存储装置316以及运行文档库318。但是,网络应用服务器302还可以在不背离示意性实施例的范围的情况下,包括图3中未示出的附加特征和组件。
文档到HTML转换器304是一种软件组件,用于为终端用户在特定时间必须与其进行交互的丰富网络应用文档的部分创建超文本标记语言(HTML)和JavaScript/AJAX内容。文档运行器306生成和监视网络应用服务器302内的状态迁移和完成的子任务。在一个例子中,文档运行器306代表终端用户执行文档,或者针对设计用于从文档提取信息并根据该信息返回最终商业过程的自定义小服务程序和门户小服务程序的请求执行文档。在另一个例子中,文档运行器306在文档被第一次加载时对文档中的现有签名进行验证,并根据请求再次验证特定签名。
访问控制器308包括与在服务器和终端用户之间进行相互验证相关的所受信息,包括服务器私钥。签名生成器310和签名验证器312利用存储在访问控制器308中的信息,响应于来自终端用户的请求生成并验证签名。文档模板和部分完成文档库314包括空的丰富网络应用文档和能够由***实例化的部分完成文档。例如,文档模块或部分完成文档库314可以包括丰富网络应用文档、导向访谈阶段(stage ofguided interview)或处理向导。如在本文中使用的那样,文档模板包括但不限于,表格、部分完成文档或已由一个或多个用户签名但仍需要一个或多个附加签名来完成的部分完成文档。文档模板例如可以是商业事务或合同。数据存储装置316包括运行文档库318。在该例子中,运行文档库318包括已经为终端用户创建的当前处于成为完成事务记录过程中的文档模板和部分完成文档的实例。
网络浏览器客户端320包括超文本传输协议(HTTP)提交引擎322、异步JavaScript和XML(AJAX)以及JavaScript引擎324、安全套接字协议层(SSL)模块326、超文本标记语言(HTML)呈现器(renderer)328、用户私钥330以及超文本标记语言(HTML)文档332。在该实施例中,网络浏览器客户端320的组件是完全操作超文本标记语言(HTML)文档所需的常见组件的例子。网络浏览器客户端320是访问用户私钥资料用于安全套接字协议层(SSL)验证的受信应用程序。在该实施例中,只能由与由网络应用服务器302动态传送给客户端的超文本标记语言(HTML)文档结合的这些先存的受信组件来管理用户经验。因为该***没有要求其他客户端软件,可以从该***中获取的应用程序行为的一个例子是零占用空间应用程序的行为。零占用空间应用程序是完全存储在服务器中的并且不配置客户端可执行代码的终端用户应用程序。
因此,在该实施例中,网络浏览器客户端320向网络应用服务器302发送文档请求334。请求334是向文档模板或部分完成文档库314请求实例化文档模板或部分完成文档的请求。HTTP提交引擎322是用于向网络应用服务器302传输或传送请求334的请求/响应协议。
响应于从网络浏览器客户端320接收文档实例化的请求334,网络应用服务器302向网络浏览器客户端320发送相互验证请求336,并开始相互验证。为了成功完成相互验证,必须使用正确的用户私钥资料。可以使用现有技术已知的任何方法来实现相互验证,包括但不限于,通过SSL相互验证的单方签名、HTTP基本验证或其他非公钥基础结构(non-PKI)验证方法。正确的私钥用于成功地完成验证。网络浏览器客户端320向网络应用服务器302发送相互验证完成338。如果验证是成功的,那么网络应用服务器302使公钥或与网络浏览器客户端320关联的其他公共标识可用于包括文档运行器306的应用程序上下文。
接着,网络应用服务器302实例化请求的文档模板或部分完成文档,并将文档转换为在网络浏览器客户端320上可用的运行时格式。文档到HTML转换器304将文档转换为适当的运行时格式。例如,在该实施例中,服务器使用文档到HTML转换器304,将文档转换为HTML以及JavaScript/AJAX并通过文档传送340将文档传送给图3中的网络浏览器客户端320。
HTML呈现器328为了在网络浏览器客户端320上向用户进行显示而对文档进行呈现。AJAX和JavaScript引擎324与网络应用服务器302交换数据,以反映用户在网络浏览器客户端320上对文档所作的修改。可以通过SSL模块326安全地进行数据传送,该模块使用安全套接字协议层协议来保护通过网络向网络应用服务器302传输的消息的安全。网络浏览器客户端320接着发送关于要为文档生成的数字签名的签名生成请求342。
在网络应用服务器302接收用来填写或改变文档并且如果文档是多页文档则改变页时任何终端用户输入,以及关于要为文档生成的数字签名的签名生成请求342之后,网络应用服务器302根据终端用户标识对文档进行签名。网络应用服务器302在相互验证过程中获取终端用户标识。接着,网络应用服务器302向网络浏览器客户端320发送签名完成通知344,告知终端用户文档已经利用数字签名进行签名。网络应用服务器302接着接收文档提交请求346,以提交用于处理的签名文档。这种处理可以包括在文档模板或部分完成文档库314中进行存储,以允许进一步交互、设置修改以及其他客户端在文档上进行签名。
图4是示出了根据示意性实施例的用于响应于终端用户请求完成事务的过程的流程图。由例如图3中的网络应用服务器302的网络应用服务器实现图4中的过程。
通过接收文档模板或文档实例化的请求以开始或继续事务过程(步骤402),过程开始。接着,服务器开始相互验证(步骤404)并接收终端用户完成相互验证(步骤406)。
服务器接着实例化请求的文档模板或文档,并将文档转换为可用于客户机端网络浏览器***的运行时格式(步骤408)。服务器利用转换器,例如,图3中的文档到HTML转换器304,来转换文档。
接着,服务器从终端用户接收一组修改,以形成修改的文档,并且如果文档是多页文档时改变页(步骤410)。在本文中定义的一组修改包括没有修改、单个修改和两个或两个以上的修改。在本文中定义的修改文档包括没有修改的文档、单个修改的文档以及两个或两个以上修改的文档。服务器接着接收关于要为修改文档生成的数字签名的请求(步骤412)。服务器根据在相互验证过程中获取的终端用户标识,对修改文档进行签名(步骤414)。数字签名和在签名生成期间建立的文档之间的关系可以基于现有技术的任何方法,包括但不限于,enveloped签名(其中,数字签名附于或出现在文档内容中)、enveloping签名(其中,文档内容出现在签名中),或独立签名(其中,签名独立存储并指向使用URI或其他外部资源指针的文档)。接着,服务器向网络浏览器客户端发送通知,告知终端用户对修改的文档进行了签名(步骤416)。服务器接着接收处理完成的和签名的文档的请求(步骤418),过程在其后结束。
图5是示出根据示意性实施例用于生成签名的过程的流程图。图5中的过程由网络应用服务器实现,例如,图3中的网络应用服务器302。
当服务器接收数字签名请求时(步骤502),过程开始。服务器将任何要求的元数据添加到签名属性中(步骤504)。例如,元数据可以是时间戳或格式数据。服务器将公钥证书和/或终端用户(签名者)的公共标识添加到签名属性中(步骤506)。例如,服务器可以将公钥证书添加到SSL验证中。在其他例子中,服务器可以在非公钥基础结构验证方法中添加公共标识。接着,服务器添加对签名属性的引用(步骤508)。引用指示添加到签名的要求的元数据,并可用于以后的签名验证。服务器利用网络应用服务器的私钥,在修改的文档内容、相关资源以及签名属性上生成数字签名(步骤510),修改过程在其后结束。
图6是示出根据示意性实施例用于验证签名的过程的流程图。图6中的过程由网络应用服务器实现,例如,图3中的网络应用服务器302。
在成功地相互验证以后服务器准备用于传送的文档时(步骤601),过程开始。服务器获取用于受保护资源的存储的哈希值,并根据需要利用公钥解密对网络应用服务器凭证的签名(步骤602)。接着,服务器为所有受保护的资源重新计算密码哈希值,并与存储值比较是否相等(步骤604)。当存储的哈希值和重新计算的哈希值相等时,核心验证成功。如果哈希值不相等,核心验证失败。
服务器根据对于所有哈希值的对应对的成功的相等比较,确定核心验证是否成功(步骤606)。如果核心验证不成功,那么服务器报告签名验证失败(步骤608)。如果核心验证成功,那么服务器接着获取服务器的公钥证书(步骤610),并运行另一个有效性检验,以确定证书的有效性、期限和撤销检验是否成功(步骤612)。如果检验是不成功的,服务器报告签名验证失败(步骤608)。
如果检验成功,服务器接着从数字签名中获取签名者的公钥证书(步骤614)。如果签名者的标识被提供以公钥证书,那么,服务器确定证书有效性、期限和撤销检验是否成功(步骤616)。如果检验是不成功的,服务器报告签名验证失败(步骤608)。如果检验是成功的,服务器运行签名元数据暗示的任何其他有效性检验以确定验证(步骤618)。如果最终检验不成功,服务器报告签名验证失败(步骤608)。如果最终检验成功,那么,文档上的数字签名是有效的(步骤620),过程其后结束。当零个或更多的数字签名被验证时,文档被转换成能够在客户机端上处理的格式,并接着被传送到客户端终端用户。
在所述不同实施例中的流程图和框图示出了设备、方法和计算机程序产品的一些可能的实现方式的结构、功能和操作。关于这点,流程图或框图中的每个框可以表示包括一个或多个用于实现特定功能的可执行指令的计算机可用或可读程序代码的模块、片断或部分。在一些可替代实施方式中,框中提到的功能可以不以图中提到的顺序实现。例如,在一些情况下,连续显示的两个框可以基本同时执行,或者有时框可以以相反的顺序执行,这取决于所涉及的功能。
因此,不同的实施例提供计算机实现方法、设备和计算机程序产品,用于对电子文档进行数字签名并对数字签名进行验证,尤其是除了能够相互验证的网络浏览器以外,不在客户端设备上配置或安装额外的计算机代码。
利用网络应用服务器的私钥生成数字签名,但是签名元数据至少包括在相互验证期间获取的终端用户(签名者)的公共标识符。在一个实施例中,终端用户的公钥证书提供公共标识,因为其只能通过网络应用服务器在涉及客户端上的终端用户私钥的成功的相互验证以后获取。
数字签名验证包括利用网络应用服务器公钥证书的核心验证以及至少包括签名者的公共标识验证的用于签名元数据的验证步骤。
本发明能够采取完全的硬件实施例、完全的软件实施例或包括硬件和软件元素的实施例的形式。在优选实施例中,本发明以软件实施,包括但不限于固件、常驻软件、微代码等。
此外,本发明采取可以从计算机可用或计算机可读介质访问的计算机程序产品的形式,所述介质提供计算机或任何指令执行***使用或结合计算机或任何指令执行***使用的程序代码。为了便于说明,计算机可用或计算机可读介质可以是任何有形设备,其能够包括、存储、发送、传播或传送由指令执行***、设备或装置使用或结合指令执行***、设备或装置使用的程序。
介质可以是电子、磁、光、电磁、红外或半导体***(或设备或装置)或传播介质。计算机可读介质的例子包括半导体或固态存储器、磁带、可移除计算机软盘、随机存取存储器(RAM)、只读存储器(ROM)、硬磁盘和光盘。光盘的当前例子包括压缩盘-只读存储器(CD-ROM)、压缩盘-可读/写(CD-R/W)和DVD。
适于存储和/或执行程序代码的数据处理***将至少包括通过***总线直接或间接耦接到存储器元件的一个处理器。存储器元件可以包括在程序代码的实际执行期间采用的本地存储器、大容量存储器以及高速缓存存储器,所述高速缓存存储器提供至少一些程序代码的临时存储,以减少在执行期间必须从大容量存储器检索代码的次数。
输入/输出或I/O装置(包括但不限于键盘、显示器、定位装置等)能够直接或通过***I/O控制器耦接到***。
网络适配器也可以耦接到***,使得数据处理***通过接入专用或公共网络与其他数据处理***或远程打印机或存储装置耦接。调制解调器、电缆调制解调器以及以太网卡都只是几个当前可用的网络适配器类型。
为了进行解释和描述,对本发明进行了说明,但并不意在将本发明穷尽或限制在所公开的形式中。对本领域技术人员来说,许多修改和变化都是显而易见的。选择和描述实施例的目的在于更好地解释本发明的原理和实际应用,使得本领域技术人员能够以适于特定用途的各种修改的各种实施例来理解本发明。
Claims (11)
1.一种用于在丰富内容文档上生成数字签名的计算机实现的方法,所述计算机实现的方法包括:
接收由客户端发出的实例化电子文档的请求;
响应于在网络应用服务器和所述客户端之间成功完成相互验证,向所述客户端提供所述电子文档;
接收与所述电子文档关联的一组修改,以形成修改的文档;
响应于从所述客户端接收的为所述修改文档生成数字签名的请求,利用所述网络应用服务器的私钥和与所述客户端关联的终端用户标识生成所述数字签名;以及
利用所述数字签名对所述修改文档进行签名。
2.根据权利要求1的计算机实现的方法,其中,
所述网络应用服务器是零占用空间服务器。
3.根据权利要求1的计算机实现的方法,还包括:
响应于接收为所述修改文档生成数字签名的请求,将元数据和引用添加到所述数字签名属性中,以形成所述数字签名,其中,所述元数据包括与所述客户端关联的公钥证书或公共标识,所述引用描述添加到所述数字签名属性的所述元数据。
4.根据权利要求1的计算机实现的方法,还包括对所述数字签名进行验证,该步骤包括:
为多个受保护的资源获取存储的哈希值;
利用所述网络应用服务器的公钥,对在数字签名生成期间利用所述网络应用服务器的所述私钥进行加密的任何存储的哈希值进行解密;
为所述多个受保护的资源重新计算密码哈希值;以及
将所述密码哈希值与所述存储的哈希值进行比较。
5.根据权利要求4的计算机实现的方法,还包括:
响应于所述密码哈希值等于所述存储的哈希值,指示核心验证成功;以及
响应于所述密码哈希值不等于所述存储的哈希值,指示核心验证失败。
6.根据权利要求5的计算机实现的方法,还包括:
响应于所述核心验证成功,检验所述数字签名中的所述网络应用服务器的公钥证书是否至少是如下情况之一:无效、期满和被撤销;
响应于所述网络应用服务器的所述公钥证书无效、期满或被撤销,指示服务器证书验证失败;以及
响应于确定所述网络应用服务器的所述公钥证书有效、未期满并且未被撤销,指示服务器证书验证成功。
7.根据权利要求6的计算机实现的方法,还包括:
响应于所述服务器证书验证成功,获取签名者的公钥证书,其中,所述签名者是与所述客户端关联的所述终端用户;
检验所述签名者的所述公钥证书是否至少是如下情况之一:无效、期满和被撤销;
响应于所述签名者的所述公钥证书无效、期满或被撤销,指示签名者标识验证失败;以及
响应于确定所述签名者的所述公钥证书是有效的、未期满的并且未被撤销,指示签名者标识验证成功。
8.根据权利要求6的计算机实现的方法,还包括:
响应于所述服务器证书验证成功,获取所述签名者的公共标识,其中,所述签名者是与所述客户端关联的所述终端用户;
检验所述签名者的所述公共标识是否至少是如下情况之一:无效、期满和被撤销;
响应于所述签名者的所述公共标识无效、期满或被撤销,指示签名者标识验证失败;以及
响应于确定所述签名者的所述公共标识有效、未期满并且未被撤销,指示签名者标识验证成功。
9.根据权利要求8的计算机实现的方法,还包括:
响应于所述签名者标识验证成功,执行数字签名元数据暗示的有效性检验;
响应于所述数字签名元数据暗示的至少一个有效性检验的失败,指示元数据验证失败;以及
响应于所述数字签名元数据暗示所有有效性检验成功,指示元数据验证成功。
10.根据权利要求9的计算机实现的方法,还包括:
响应于核心签名验证失败,服务器证书验证失败,签名者标识验证失败,或元数据验证失败,向终端用户报告签名验证失败;以及
响应于核心签名验证成功,服务器证书验证成功,签名者标识验证成功,以及元数据验证成功,向所述终端用户报告签名验证成功。
11.一种用于在丰富内容文档上生成数字签名的计算机实现的***,所述计算机实现的***包括:
用于接收由客户端发出的实例化电子文档的请求的装置;
用于响应于在网络应用服务器和所述客户端之间成功完成相互验证,向所述客户端提供所述电子文档的装置;
用于接收与所述电子文档关联的一组修改,以形成修改的文档的装置;
用于响应于从所述客户端接收的为所述修改文档生成数字签名的请求,利用所述网络应用服务器的私钥和与所述客户端关联的终端用户标识生成所述数字签名的装置;以及
用于利用所述数字签名对所述修改文档进行签名的装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/957,882 US9363258B2 (en) | 2007-12-17 | 2007-12-17 | Secure digital signature system |
US11/957,882 | 2007-12-17 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101465848A CN101465848A (zh) | 2009-06-24 |
CN101465848B true CN101465848B (zh) | 2012-09-05 |
Family
ID=40754849
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008101663779A Active CN101465848B (zh) | 2007-12-17 | 2008-09-26 | 安全数字签名*** |
Country Status (5)
Country | Link |
---|---|
US (1) | US9363258B2 (zh) |
JP (1) | JP5284758B2 (zh) |
CN (1) | CN101465848B (zh) |
AU (1) | AU2008252037B2 (zh) |
TW (1) | TWI449395B (zh) |
Families Citing this family (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9363258B2 (en) | 2007-12-17 | 2016-06-07 | International Business Machines Corporation | Secure digital signature system |
US8112633B1 (en) * | 2008-06-30 | 2012-02-07 | Symantec Corporation | Server side verification of digital signatures in streaming environments |
TWI405449B (zh) * | 2009-12-29 | 2013-08-11 | Univ Vanung | Group signature method |
US9251131B2 (en) | 2010-05-04 | 2016-02-02 | Docusign, Inc. | Systems and methods for distributed electronic signature documents including version control |
US9356991B2 (en) * | 2010-05-10 | 2016-05-31 | Litera Technology Llc | Systems and methods for a bidirectional multi-function communication module |
US8650481B1 (en) * | 2010-05-18 | 2014-02-11 | Google Inc. | Stable and secure use of content scripts in browser extensions |
US8504480B2 (en) * | 2011-02-03 | 2013-08-06 | Ricoh Co., Ltd | Creation of signatures for authenticating applications |
KR20120100046A (ko) * | 2011-03-02 | 2012-09-12 | 삼성전자주식회사 | 분산 환경 네트워크에서 컨텐츠의 접근 제어를 위한 장치 및 방법 |
WO2012123833A1 (en) * | 2011-03-16 | 2012-09-20 | International Business Machines Corporation | System for enabling digital signature auditing |
EP2713295A4 (en) * | 2011-05-19 | 2015-04-22 | Japan Broadcasting Corp | COOPERATIVE RADIO COMMUNICATION RECEIVER, RESOURCE ACCESS CONTROL PROGRAM AND COOPERATIVE RADIO COMMUNICATION SYSTEM |
TWI467408B (zh) * | 2011-11-15 | 2015-01-01 | Mstar Semiconductor Inc | 嵌入式元件與控制方法 |
US20130124870A1 (en) * | 2011-11-16 | 2013-05-16 | Certicom Corp. | Cryptographic document processing in a network |
PL2632096T3 (pl) * | 2012-02-21 | 2017-08-31 | Lleidanetworks Serveis Telemàtics S.A. | Sposób certyfikacji dostarczania wiadomości elektronicznych |
US20150067347A1 (en) * | 2012-12-06 | 2015-03-05 | Communication Intelligence Corp. | Signature system portal for signing electronic documents |
US20150317643A1 (en) * | 2012-12-06 | 2015-11-05 | Shoaib Aftab MIAN | System and method for signing electronic documents |
US9503268B2 (en) * | 2013-01-22 | 2016-11-22 | Amazon Technologies, Inc. | Securing results of privileged computing operations |
US10063380B2 (en) * | 2013-01-22 | 2018-08-28 | Amazon Technologies, Inc. | Secure interface for invoking privileged operations |
CN103259665A (zh) * | 2013-05-28 | 2013-08-21 | 福建伊时代信息科技股份有限公司 | 电子签章方法及*** |
US9819661B2 (en) * | 2013-09-12 | 2017-11-14 | The Boeing Company | Method of authorizing an operation to be performed on a targeted computing device |
US10177933B2 (en) | 2014-02-05 | 2019-01-08 | Apple Inc. | Controller networks for an accessory management system |
US10454783B2 (en) | 2014-02-05 | 2019-10-22 | Apple Inc. | Accessory management system using environment model |
CN104717641B (zh) * | 2013-12-13 | 2019-01-08 | ***通信集团公司 | 一种基于sim卡的数字签名生成方法以及sim卡 |
AU2015214079C1 (en) | 2014-02-05 | 2017-01-19 | Apple Inc. | Uniform communication protocols for communication between controllers and accessories |
CN104574119B (zh) * | 2015-01-20 | 2017-12-08 | 中城智慧科技有限公司 | 一种商品鉴真溯源的方法 |
US10206170B2 (en) | 2015-02-05 | 2019-02-12 | Apple Inc. | Dynamic connection path detection and selection for wireless controllers and accessories |
TWI581599B (zh) * | 2015-04-30 | 2017-05-01 | 鴻海精密工業股份有限公司 | 金鑰生成系統、資料簽章與加密系統和方法 |
US11677809B2 (en) * | 2015-10-15 | 2023-06-13 | Usablenet Inc. | Methods for transforming a server side template into a client side template and devices thereof |
CN106921497A (zh) * | 2015-12-25 | 2017-07-04 | 北京握奇智能科技有限公司 | 一种电子签名方法及装置 |
WO2017117357A1 (en) * | 2015-12-30 | 2017-07-06 | Xiaolin Zhang | System and method for data security |
CN113726518B (zh) * | 2016-11-24 | 2023-06-30 | 创新先进技术有限公司 | 在网络中发布作品的方法和装置 |
CN108153746B (zh) * | 2016-12-02 | 2023-11-17 | 中科星图股份有限公司 | 一种提供文档服务的方法 |
CN107016542A (zh) | 2016-12-06 | 2017-08-04 | 阿里巴巴集团控股有限公司 | 一种业务数据处理方法、验证方法、装置及*** |
US10496508B2 (en) | 2017-06-02 | 2019-12-03 | Apple Inc. | Accessory communication control |
EP3461073A1 (en) * | 2017-09-21 | 2019-03-27 | Lleidanetworks Serveis Telemàtics S.A. | Platform and method of certification of an electronic notice for electronic identification and trust services (eidas) |
MX2020004254A (es) * | 2017-10-23 | 2020-10-16 | Notarize Inc | Sistema y método para recuperación de reunión de notarización en línea automatizada. |
US10595073B2 (en) | 2018-06-03 | 2020-03-17 | Apple Inc. | Techniques for authorizing controller devices |
US11805009B2 (en) | 2018-06-03 | 2023-10-31 | Apple Inc. | Configuring accessory network connections |
US20200242251A1 (en) * | 2019-01-24 | 2020-07-30 | Citrix Systems, Inc. | Providing application security, validation and profiling to an application |
US11522717B2 (en) | 2019-07-23 | 2022-12-06 | Signa Tech Llc | Signature token system |
CN110990827A (zh) * | 2019-10-28 | 2020-04-10 | 上海隔镜信息科技有限公司 | 一种身份信息验证方法、服务器及存储介质 |
TR202018609A2 (tr) * | 2020-11-19 | 2021-03-22 | Cloudpeer Global Teknoloji Anonim Sirketi | Elektroni̇k i̇mza si̇stemi̇ |
CN114928456B (zh) * | 2022-07-21 | 2022-10-04 | 飞天诚信科技股份有限公司 | 一种基于用户端本地证书实现数据流通的方法及*** |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3260524B2 (ja) * | 1992-12-03 | 2002-02-25 | 株式会社日立製作所 | ディジタル署名の生成方法 |
JPH1125048A (ja) * | 1997-06-30 | 1999-01-29 | Hitachi Ltd | ネットワークシステムのセキュリティ管理方法 |
US6601172B1 (en) | 1997-12-31 | 2003-07-29 | Philips Electronics North America Corp. | Transmitting revisions with digital signatures |
US6959382B1 (en) * | 1999-08-16 | 2005-10-25 | Accela, Inc. | Digital signature service |
US7069440B2 (en) | 2000-06-09 | 2006-06-27 | Northrop Grumman Corporation | Technique for obtaining a single sign-on certificate from a foreign PKI system using an existing strong authentication PKI system |
US20020083124A1 (en) * | 2000-10-04 | 2002-06-27 | Knox Christopher R. | Systems and methods for supporting the delivery of streamed content |
US20020184507A1 (en) | 2001-05-31 | 2002-12-05 | Proact Technologies Corp. | Centralized single sign-on method and system for a client-server environment |
US20020194228A1 (en) | 2001-06-18 | 2002-12-19 | Lainye Reich | System and method for automated rendering to print to a file |
US20030105876A1 (en) * | 2001-11-30 | 2003-06-05 | Angelo Michael F. | Automatic generation of verifiable customer certificates |
US20030217264A1 (en) * | 2002-05-14 | 2003-11-20 | Signitas Corporation | System and method for providing a secure environment during the use of electronic documents and data |
US20030221109A1 (en) | 2002-05-24 | 2003-11-27 | Pure Edge Solutions, Inc. | Method of and apparatus for digital signatures |
ATE270800T1 (de) * | 2002-05-24 | 2004-07-15 | Swisscom Mobile Ag | Vorrichtungen und verfahren zur zertifizierung von digitalen unterschriften |
JP4027725B2 (ja) | 2002-06-14 | 2007-12-26 | 株式会社日立製作所 | 電子署名付与方法 |
JP4304362B2 (ja) | 2002-06-25 | 2009-07-29 | 日本電気株式会社 | Pki対応の証明書確認処理方法及びその装置、並びにpki対応の証明書確認処理プログラム |
US7725730B2 (en) | 2002-08-09 | 2010-05-25 | Emc Corporation | Cryptographic methods and apparatus for secure authentication |
JP2004336315A (ja) | 2003-05-07 | 2004-11-25 | Hitachi Ltd | 電子文書配送システムにおける電子文書配送サーバ装置連携方法 |
KR101292982B1 (ko) | 2003-05-16 | 2013-08-02 | 마이크로소프트 코포레이션 | Clr 객체의 계층 구조 결정 방법, 컴퓨터 판독가능 매체, 객체를 선언적으로 정의하는 방법, clr 객체의 계층 구조 결정 메카니즘, 및 clr 객체를 선언적으로 정의하는 장치 |
FR2855691B1 (fr) * | 2003-06-02 | 2005-11-11 | Canon Kk | Securisation de la distribution de documents numeriques dans un reseau pair a pair |
US20050182684A1 (en) | 2004-02-12 | 2005-08-18 | International Business Machines Corporation | Method and system for economical e-commerce shopping token for validation of online transactions |
JP4589144B2 (ja) | 2005-02-21 | 2010-12-01 | 株式会社ショーワ | 電動舵取装置 |
US7716243B2 (en) * | 2005-02-25 | 2010-05-11 | Microsoft Corporation | Provisions for validating content using a content registration authority |
US20060224895A1 (en) * | 2005-03-31 | 2006-10-05 | Xerox Corporation | System and methods for electronically notarizing scanned documents |
US20070061567A1 (en) | 2005-09-10 | 2007-03-15 | Glen Day | Digital information protection system |
US8184811B1 (en) * | 2005-10-12 | 2012-05-22 | Sprint Spectrum L.P. | Mobile telephony content protection |
US7904725B2 (en) * | 2006-03-02 | 2011-03-08 | Microsoft Corporation | Verification of electronic signatures |
US8627403B1 (en) * | 2007-07-31 | 2014-01-07 | Hewlett-Packard Development Company, L.P. | Policy applicability determination |
US9363258B2 (en) | 2007-12-17 | 2016-06-07 | International Business Machines Corporation | Secure digital signature system |
GB2472098B (en) | 2009-07-24 | 2014-05-28 | Dyson Technology Ltd | An electrostatic filter |
-
2007
- 2007-12-17 US US11/957,882 patent/US9363258B2/en active Active
-
2008
- 2008-09-26 CN CN2008101663779A patent/CN101465848B/zh active Active
- 2008-11-12 JP JP2008289708A patent/JP5284758B2/ja active Active
- 2008-12-02 TW TW097146742A patent/TWI449395B/zh not_active IP Right Cessation
- 2008-12-02 AU AU2008252037A patent/AU2008252037B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2009147919A (ja) | 2009-07-02 |
TW200937931A (en) | 2009-09-01 |
US20090158043A1 (en) | 2009-06-18 |
JP5284758B2 (ja) | 2013-09-11 |
CN101465848A (zh) | 2009-06-24 |
TWI449395B (zh) | 2014-08-11 |
US9363258B2 (en) | 2016-06-07 |
AU2008252037A1 (en) | 2009-07-02 |
AU2008252037B2 (en) | 2012-03-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101465848B (zh) | 安全数字签名*** | |
CN111095327B (zh) | 用于验证可验证声明的***和方法 | |
CN111095865B (zh) | 用于发布可验证声明的***和方法 | |
US11296865B1 (en) | Cryptographic algorithm status transition | |
US20200322132A1 (en) | System and method for authenticating off-chain data based on proof verification | |
JP2020517200A (ja) | Utxo基盤プロトコルを利用したブロックチェーン基盤の文書管理方法及びこれを利用した文書管理サーバ{method for managing document on basis of blockchain by using utxo−based protocol,and document management server using same} | |
US20150095657A1 (en) | Processing Extensible Markup Language Security Messages Using Delta Parsing Technology | |
US9401911B2 (en) | One-time password certificate renewal | |
EP1698100A1 (en) | System and method for generating a digital certificate | |
CN112199721A (zh) | 认证信息处理方法、装置、设备及存储介质 | |
US11711221B1 (en) | Systems and methods for trusted chain code system | |
US11354660B1 (en) | Encapsulation of payment information | |
US20230299975A1 (en) | Time-based digital signature | |
CN113918899A (zh) | 一种身份认证方法以及凭证持有***和验证*** | |
CN112311779A (zh) | 应用于区块链***的数据访问控制方法及装置 | |
CN113129008A (zh) | 数据处理方法、装置、计算机可读介质及电子设备 | |
CN112994882B (zh) | 基于区块链的鉴权方法、装置、介质及设备 | |
CN111212037B (zh) | 一种广告数据的处理方法及装置 | |
CN112541199A (zh) | 基于区块链的电子存证完整性验证方法和电子设备 | |
US8166306B2 (en) | Semantic digital signatures | |
Phan | Web Application Programming Interface Design for a Customer Portal | |
Marian et al. | A Cloud-Based Service for Digitally Certifying Online Content | |
KR20230133098A (ko) | 인증 기관과 독립적으로 인증서 내의 인증 정보를 관리하기 위한 방법 | |
CN113378242A (zh) | 一种数据验证的方法和*** | |
CN118233520A (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 |