CN100517355C - Web服务中的保密数据通信方法 - Google Patents

Web服务中的保密数据通信方法 Download PDF

Info

Publication number
CN100517355C
CN100517355C CNB2006800168059A CN200680016805A CN100517355C CN 100517355 C CN100517355 C CN 100517355C CN B2006800168059 A CNB2006800168059 A CN B2006800168059A CN 200680016805 A CN200680016805 A CN 200680016805A CN 100517355 C CN100517355 C CN 100517355C
Authority
CN
China
Prior art keywords
signature
request
web service
numerical value
requesting party
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.)
Expired - Fee Related
Application number
CNB2006800168059A
Other languages
English (en)
Other versions
CN101176101A (zh
Inventor
安东尼·J·纳达林
迈克尔·麦金托施
保拉·奥斯特尔
玛丽安·洪多
纳塔拉·纳加拉特纳姆
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN101176101A publication Critical patent/CN101176101A/zh
Application granted granted Critical
Publication of CN100517355C publication Critical patent/CN100517355C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/629Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Transfer Between Computers (AREA)
  • Telephonic Communication Services (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Communication Control (AREA)
  • Storage Device Security (AREA)

Abstract

公开了如下方法、系统和产品,其中,通常通过如下步骤来提供在web服务中的保密数据通信:在web服务中从客户机接收包含承载第一签名的元素的请求,该签名具有数值;签名第一签名的数值,由此创建第二签名;以及从web服务发送应答到客户机,该应答包括第二签名。请求方可以验证应答包括第二签名。请求可被加密,以及应答可被加密。第一签名可被加密,以及web服务可以加密第一签名的数值和在应答中包括第一签名的加密后的数值。web服务可以接收以SOAP编码的请求,以及可以发送以SOAP编码的应答。

Description

WEB服务中的保密数据通信方法
技术领域
本发明涉及数据处理领域,或更具体地,涉及用于web服务中保密数据通信的方法、系统和产品。
背景技术
术语“web服务”是指综合基于web的应用的标准化方法。典型地,web服务通过以被称为绑定的标准化格式的数据通信,提供根据请求的商业服务。绑定是数据编码方法的规范和数据通信协议。web服务所使用的最通用的绑定是按照SOAP协议的XML中的数据编码和使用HTTP的数据通信。SOAP(简单对象访问协议)是支持通过使用XML和扩展而传送结构化的和类型化的数据的请求/响应消息传送协议。
不像传统的客户机/服务器模型,诸如响应于来自浏览器客户机的请求提供HTML文档的HTTP服务器,web服务不涉及显示。web服务代之以在网络上通过编程接口共享商业逻辑、数据、和处理。web服务应用互相接口,而不与用户接口。因为按照标准化的绑定执行在web服务之间的所有数据通信,所以web服务不依赖于任何一个操作系统或编程语言。在WindowsTM平台上运行的Java客户机可以调用以Perl编写的和在Unix下运行的web服务操作。以C++编写的Windows应用可以调用在被实施为Java servlet的web服务中的操作。
web服务协议典型地是其中客户机或中间请求方发送请求消息到web服务以请求特定的服务的请求/响应协议,以及web服务以应答消息的形式提供响应。在某些消息交换模式中,交换的发起者希望确认它接收的消息确实是对于它发起的请求的应答。这样的确认用来建立在请求方与web服务之间的、关于提示相关应答的请求的内容的约定。这个确认有助于降低来自某些形式的攻击的风险。然而,现有技术没有为请求方提供一种确认它接收的消息确实是对于它发起的请求的应答的方法。
发明内容
公开了如下方法、系统和产品,其中,通常通过如下步骤来提供在web服务中的保密数据通信:在web服务中从客户机接收包含承载第一签名的元素的请求,该签名具有数值;签名第一签名的数值,由此创建第二签名;以及从web服务发送应答到客户机,该应答包括第二签名。请求方可以验证应答包括第二签名。请求可被加密,以及应答可被加密。第一签名可被加密,以及web服务可以加密第一签名的数值和在应答中包括第一签名的加密后的数值。web服务可以接收以SOAP编码的请求,以及可以发送以SOAP编码的应答。
签名第一签名的数值可以通过如下步骤来实现:创建签名确认元素,该签名确认元素具有数值;把签名确认元素的数值设置为第一签名的数值;签名该签名确认元素,由此创建第二签名;以及把签名确认元素和第二签名包括在应答中。当web服务接收到包含承载第一签名的多个元素的请求时,每个请求具有数值,然后在某些实施例中,web服务可以签名该第一签名的所有的数值,由此创建多个第二签名;以及web服务可以把包括多个第二签名的应答发送到请求方。
通过如在附图中显示的、本发明的示例性实施例的以下更具体的说明,将明白本发明的上述的和其它的目的、特性和优点,其中相同的标号代表本发明的相同部件。
附图说明
图1阐述显示用于按照本发明实施例的web服务中的保密数据通信的示例性系统的网络图。
图2A和2B阐述用于按照本发明实施例的web服务的示例性架构的线条图,在所述架构中可以实施保密数据通信。
图3阐述自动计算机器的框图,在所述自动计算机器中包括在按照本发明实施例的web服务中的保密数据通信中有用的示例性计算机。
图4阐述显示用于按照本发明实施例的web服务中的保密数据通信的示例性方法的流程图。
图5阐述显示用于按照本发明实施例的web服务中的保密数据通信的另一个示例性方法的流程图。
图6阐述显示用于按照本发明实施例的web服务中的保密数据通信的另一个示例性方法的流程图。
图7阐述显示用于按照本发明实施例的web服务中的保密数据通信的另一个示例性方法的流程图。
具体实施方式
现在参照从图1开始的附图描述用于按照本发明实施例的web服务中的保密数据通信的示例性方法、系统和产品。图1阐述显示用于按照本发明实施例的web服务中的保密数据通信的示例性系统的网络图。术语‘网络’在本技术说明书中用于指示在两个或多个计算机之间的数据通信的任何联网耦接(networked coupling)。网络数据通信典型地通过被称为路由器的专用计算机实施。网络典型地通过把计算机数据封装在消息中,然后把该消息从一个计算机路由到另一个计算机而实施数据通信。网络的公知例子是‘互联网’,一种按照在IETF的RFC791中描述的‘互联网协议(IP)’互相进行通信的、互连计算机系统。对于本发明的各种实施例有用的网络的其它例子包括内部网、外部网、局域网(LAN)、广域网(WAN)、和本领域技术人员想到的其它网络设置。支持web服务的、从请求方到web服务器的任何联网耦接的使用也是在本发明的范围内。
图1的系统包括数据通信网(100)。网络(100)提供在请求方(108,112,102,110,126)与web服务(106,128)之间的数据通信。web服务服务器(106)是计算机,被耦接来用于通过与网络(100)的有线连接(132)进行数据通信,web服务(303)被安装在该web服务服务器(106)上并运行。用于实现web服务(303)的功能的计算机程序指令被存储在web服务服务器(106)的计算机存储器中。客户机设备(‘请求方’)把对于服务的请求发送到服务器(106)。web服务(303)通过网络(100)接收请求,处理请求,并通过网络(100)发送应答。图1的系统包括几个能够发送对于web服务的请求到web服务(303)和接收应答的请求方。在图1的系统中的请求方包括:
·工作站(102),一种通过有线连接(122)耦接到网络(100)的计算机,
·个人计算机(108),通过有线连接(120)耦接到网络(100),
·个人数字助理(112),通过无线连接(114)耦接到网络(100),
·膝上电脑(126),通过无线连接(118)耦接到网络(100),以及
·移动电话(110),通过无线连接(116)耦接到网络(100)。
术语‘请求方’是指任何数据通信客户机设备,即,能够为了数据通信耦接到web服务、发送请求到web服务、和接收从web服务返回的应答的任何设备。请求方的例子是个人计算机、互联网使能(internet-enabled)的专用设备、互联网允许(internet-capable)的个人数据管理器、和本领域技术人员可以想到的其它设备。请求方的各种实施例能够有线和/或无线地耦接到web服务。能够通过网络接入web服务的任何客户机设备或装置用作为请求方也落在本发明的范围内。
图1还包括通过有线连接(130)耦接到网络(100)的web服务中间装置(128)。web服务中间装置(128)在其上安装和操作web服务(301)。web服务(301)提供中间web服务。web服务中间装置是web服务部件,在本例中,是位于web服务请求方与web服务之间的服务器。中间装置通常通过截获来自客户机的请求、提供中间服务、和然后把客户机请求转发到web服务提供商(有时称为‘目标服务’)来进行操作。同样地,来自web服务提供商(目标服务)的应答被截获、对其进行操作、和然后返回到原先的请求方。
由中间装置提供的服务包括,例如,对于目标服务的请求的源的鉴权、对于内容和形式的消息验证、以及用于检查目的的消息记录。中间装置可以提供管理报告服务、web服务命中数、由各个客户机使用的服务的数量和定时等等。中间装置可以通过存储经常改变的但经常请求的数据,诸如,例如新闻故事,而被用作为支持改进的性能的高速缓存器。中间装置可以在负荷平衡、存储来自几个客户的对于服务的请求以及在非高峰服务时间期间把它们转发到目标服务方面用于性能改进。中间装置可以积累服务,例如作为记帐中间装置,其接受对于帐户过账的请求,然后把它们转发,以便区分用于可支付帐户、可接收帐户、和总的分户帐服务的目标服务。
图1的系统总的用来通过在诸如web服务(303)那样的web服务中从请求方接收包含承载具有数值的第一签名的元素的请求而提供按照本发明实施例的web服务中的保密数据通信。web服务对第一签名的数值进行签名,由此创建第二签名,以及把来自web服务(303)的、包括第二签名的应答发送到请求方。正如下面更详细地说明的,发送承载第二签名的应答(第一签名的签名),鉴权给请求方的web服务的身份,以及验证消息完整性,应答是对于从请求方接收的正确请求的应答。
组成图1所示的示例性系统的客户机设备、服务器、网络、和其它设备的安排是用于说明,而不是限制。对于按照本发明的各种实施例的web服务中的保密数据通信有用的数据处理系统可包括其它服务器、路由器、其它设备、和点对点结构,图1上未示出,正如对于本领域技术人员将想到的。在这样的数据处理系统中的网络可以支持许多数据通信协议,例如包括TCP/IP、HTTP、WAP、HDTP和本领域技术人员将想到的其它协议。本发明的各种实施例可以在除了图1所示的那些以外的各种各样的硬件平台和网络结构上实施。
为了进一步说明,图2A阐述用于按照本发明实施例的web服务的示例性计算机架构的线条图,在所述架构中可以实施web服务中的保密数据通信。在图2A的架构中,web服务中间装置(301)耦接到请求方(102)和目标web服务(303),用于通过数据通信协议进行数据通信。web服务中间装置(301)和目标web服务(303)被安装在支持web服务的服务器上。在请求方(102)的位置处的web服务部件在本技术说明书中被总称为‘请求方’。同样地,在中间装置(301)的位置处的部件,特别当从请求方的观点来看时,可被称为‘web服务’。
客户机/服务器区别,以及‘请求方’命名,在web服务的情况下必须小心使用。特定的部件是请求方、客户机、服务器、还是服务,取决于在通信协议中请求/应答消息的交换中部件的作用。为了进一步说明,图2A阐述了用于按照本发明实施例的web服务的示例性计算机架构的线条图,在所述架构中可以实施web服务中的保密数据通信。在图2B的架构中,例如,在准备对于来自请求方(102)的请求的应答的处理过程中,目标服务(303)随后可以通过web服务中间装置(202)从目标web服务(204)请求web服务。在这样做时,目标web服务(303)用作为客户机和请求方。中间装置(202)在把请求转发到目标服务(303)过程中,用作为客户机和请求方,以及中间装置(202)在接收来自目标服务(303)的请求和准备与发送给目标服务(303)的应答时,用作为web服务。同样地,中间装置(301)在把请求转发到目标服务(303)的过程中,用作为客户机和请求方,以及中间装置(301)在接收来自请求方(102)的请求和准备与发送给请求方(102)的应答时,用作为web服务。因此,可以看到,特定的web服务部件被认为是客户机还是服务器、请求方还是服务,在任何特定的时间,取决于由该部件在该时间执行的特定功能。web服务部件在一个时刻可以是客户机或请求方,以及在另一个时刻可以是服务器或web服务。为了减小由于术语而导致混淆的风险,所以,web服务部件在本技术说明书中通常通过使用术语‘请求方’、‘中间装置’和‘web服务’,而不是‘客户机’或‘服务器’,进行描述。
按照本发明的web服务中的保密数据通信通常通过计算机,即,通过自动计算机器,而实施。在图1的系统中,例如,所有的节点、服务器和通信设备至少在某个程度上被实施为计算机。为了进一步说明,所以,图3阐述了在按照本发明实施例的web服务中的保密数据通信中有用的、包括示例性计算机(152)的自动计算机器的框图。图3的计算机(152)包括至少一个计算机处理器(156)或‘CPU’以及通过系统总线(160)连接到处理器(156)和计算机其它部件的随机存取存储器(168)(“RAM”)。
被存储在RAM(168)中的是web服务(303),用于按照本发明实施例的web服务中的保密数据通信的改进的一组计算机程序指令。还被存储在RAM(168)中的是对于服务的请求(304)。请求包含承载具有数值(308)的第一签名(306)的元素(310)。还被存储在RAM(168)中的是对于请求的应答(326)。应答承载第二签名(320)(第一签名的签名)。应答还承载第一签名的数值(308)。web服务(303)的计算机程序指令包括用于如下动作的指令:在web服务(303)中从请求方(182)接收请求(304),该请求(304)包含承载具有数值的第一签名(306)的元素,签名第一签名的数值,由此创建第二签名(320),以及从web服务(303)发送包括第二签名(320)的应答到请求方(182)。发送承载第二签名(第一签名的签名)的应答具有如下有用效果:向请求方鉴权web服务的身份和验证消息完整性,即验证应答是对于从请求方接收的正确的请求的应答。
还被存储在RAM(168)中的是操作系统(154)。在按照本发明的实施例的计算机中有用的操作系统包括UNIX、Linux、Microsoft NT、AIX、IBM的i5/OS,以及本领域技术人员将想到的其它操作系统(UNIX是在美国和其它国家中的Open Group的注册商标;Linux是在美国、其它国家或二者中Linux Torvalds的注册商标;Microsoft、Windows、WindowsNT、和Windows logo是在美国,其它国家或二者中MicrosoftCorporation的商标;AIX、IBM和i5/OS是IBM公司的注册商标)。在图3的例子中的操作系统(154)、web服务(303)、请求(304)、和应答(310)被显示在RAM(168)中,但这样的软件的许多部件典型地也被存储在非易失性存储器(166)中。
图3的计算机(152)包括通过系统总线(160)被耦接到处理器(156)和计算机(152)的其它部件的非易失性计算机存储器(166)。非易失性计算机存储器(166)可以被实施为硬盘驱动(170)、光盘驱动(172)、电可擦除可编程只读存储器(所谓的‘EEPROM’或‘闪速’存储器)(174)、RAM器件(未示出)、或本领域技术人员将想到的任何其它种类的计算机存储器。
图3的示例计算机包括一个或多个输入/输出接口适配器(178)。计算机中的输入/输出接口适配器通过例如软件驱动器和计算机硬件实施面向用户的输入/输出,用于控制到诸如计算机显示屏幕那样的显示设备(180)的输出以及从诸如键盘与鼠标那样的用户输入设备(181)的用户输入。
图3的示例计算机(152)包括通信适配器(167),用于实施与客户机、请求方(182)、web服务中间装置、其它web服务和其它计算机的数据通信连接(184)。这样的数据通信可以通过串行RS-232连接、通过诸如USB那样的外部总线、通过诸如IP网络那样的数据通信网、和本领域技术人员将想到的其它方式实行。通信适配器实施数据通信的硬件级别,通过它一个计算机直接或通过网络发送数据通信到另一个计算机。按照本发明实施例的、对于确定目的地的可得到性有用的通信适配器的例子包括用于有线拨号通信的调制解调器、用于有线网络通信的以太网(IEEE 802.3)适配器、以及用于有线网络通信的802.11b适配器。
为了进一步说明,图4阐述显示用于按照本发明实施例的在web服务中的保密数据通信的示例性方法的流程图,该方法包括在web服务(303)中接收(302)来自请求方(102)的请求(304)。在图4的例子中,请求(304)包含承载第一签名(306)的元素(310)。第一签名(306)具有数值(308)。请求(304)可以是在诸如,例如SOAP那样的web服务请求/应答协议中的消息。元素(310)是消息结构的实例。SOAP消息以XML表达,这样,在SOAP的例子中,元素(310)可被实施为XML元素,即,用XML标记实施的消息结构。
第一签名(306)例如可以通过散列元素(310)和用来自公共密钥基础结构的请求方的私钥加密该散列而被实施为对于元素(310)的数字签名。从元素创建数字签名的这个处理过程被称为‘签名’。第一签名(306)可以通过把加密的散列包括在请求中,而被合并到请求(304)中。在SOAP消息的例子中,可以通过创建其数值是加密的散列的数值的SOAP签名元素和把该SOAP签名元素包括在请求(304)中,而将签名合并到请求(304)中。
图4的方法还包括:签名(309)第一签名(306)的数值(308),由此创建第二签名(320)。web服务生成(324)对于请求(304)的应答(326)。对于请求(304),应答是在web服务请求/应答协议中的消息。应答(326)包括第二签名(320)。像第一签名(306)那样,第二签名(320)可以通过散列第一签名的数值(308)和用来自公共密钥基础结构的web服务的私钥加密该散列而实施。第二签名(320)可以通过把加密的散列包括在应答(326)中,而被合并到应答(326)中。在SOAP消息的例子中,可以通过创建其数值是加密的散列的数值的SOAP签名元素和把该SOAP签名元素包括在应答(326)中,而将签名合并到应答(326)中。应答(326)还可以包含第一签名(306)的数值(308)。图4的方法还包括把包括来自web服务(303)的第二签名的应答(326)发送(338)到请求方(102)。
在图4的方法中,请求方(102)验证(342)应答(326)包括第二签名(320),和第二签名是第一签名(306)的数值(308)的签名。在SOAP请求的情形下,例如,签名可被实施为SOAP签名元素。请求方(102)可以通过检查对于SOAP签名元素的消息而验证请求包含签名。
请求方(102)可以通过例如解密第二签名,产生第一签名的所声称的散列,而验证第二签名是第一签名的签名。请求方可以比较这样产生的散列与在这时从第一签名的存储的拷贝计算的第一签名的散列。替换地,请求方(102)可以在请求方创建第一签名时存储第一签名的散列,以及使用第一签名的所存储的散列的拷贝与来自应答消息的所声称的散列相比较。如果两个散列相等,则验证(342)第二签名是第一签名(306)的数值(308)的签名的事实。两个散列是相等的,也验证第二签名的解密。因为只能由web服务使用web服务的私钥加密第二签名,所以请求方用web服务的公共密钥解密第二签名来鉴权web服务的身份。验证过程向请求方(102)保证被嵌入在第二签名(320)中的第一签名(306)的数值(308)的完整性,即,第一签名从web服务不改变地被接收。
在图4的例子中,请求(304)包含两个元素(310,312),每个元素承载第一签名(306,314)。在请求(304)中的两个元素的说明并不限制本发明。数字2仅仅被使用来说明请求(304)可以包含多个承载第一签名(306,314)的元素(310,312),每个第一签名具有数值(308,316)。图4的方法还包括签名(309)第一签名的所有的数值(308,316),由此创建多个第二签名(320,322)。图4的方法还包括把来自web服务(303)的应答(326)发送(338)到请求方(102),应答(326)包括多个第二签名(320,322)。第一签名(306,314)的数值(308,316)还可被包括在应答(326)中。
为了进一步说明,图5阐述显示用于按照本发明实施例的在web服务中的保密数据通信的另一个示例性方法的流程图,其中接收的请求(304)可被加密。加密数据的过程涉及把算法应用到数据,以把数据变换成不易理解的形式。典型的加密算法可涉及被称为密钥的秘密的使用。某些算法使用在请求方与web服务之间共享的一个秘密密钥。其它的算法使用两个密钥,私钥和公共密钥。通常使用的加密算法包括3DES(数据加密标准)、CAST-128、Twofish和高级加密标准(AES)。
图5的示例性方法类似于图4的方法。即,图5的方法包括接收(302)承载具有数值(308)的第一签名(306)的加密的请求(304),签名第一签名(306)的数值(308),和发送(338)来自web服务(303)的应答(326),所有的步骤以与类似于图4的方法的方式操作。然而,图5的方法还包括确定(321)接收的请求(304)是否被加密。在SOAP请求的情形下,例如,消息保密标题可以包含描述请求或请求的元素是否被加密的信息,以及可以通过检查请求消息保密标题而实行确定(321)接收的请求是否被加密。在图5的例子中,如果请求被加密(327),方法包括加密(325)在web服务(303)中的应答(331)。如果请求没有被加密(329),则web服务发送(338)应答(326),而不用加密它。
为了进一步说明,图6阐述显示用于按照本发明实施例的web服务中的保密数据通信的示例性方法的流程图,其中第一签名被加密。图6的方法类似于图4的方法。即,图6的方法包括接收(302)承载具有数值(308)的加密的第一签名(306)的请求(304),签名第一签名(306)的数值(308),和发送来自web服务(303)的应答(326),所有的步骤以与类似于图4的方法的方式操作。然而,图6的方法还包括确定(354)第一签名是否被加密。在SOAP请求的情形下,例如,保密标题可以包含描述请求或请求的元素是否被加密的信息,以及可以通过检查这样的请求消息保密标题而进行确定(354)接收的请求的第一签名(306)是否被加密。
当第一签名(306)被加密时,加密在应答中的第一签名的数值(308)可以有助于保护被使用来产生第一签名的密钥。如果第一签名在请求(304)中被加密发送以及第一签名(306)的数值(308)在应答(326)中没有被加密,则有攻击者比较加密的和未加密的签名数值和得到有关由请求方(102)所使用的密钥的信息来产生在请求(304)中的签名的某些风险。在图6的例子中,所以,如果第一签名被加密(352),则该方法包括加密(350)在web服务(303)中第一签名的数值(308)和把加密的数值(358)包括在应答(326)中。如果第一签名的数值没有被加密(356),则web服务发送(338)应答(326),而不用加密第一签名的数值。
为了进一步说明,图7阐述了显示用于按照本发明实施例的web服务中的保密数据通信的另一个示例性方法的流程图,所述方法使用SOAP/HTTP绑定用于web服务。图7的方法类似于图4的方法。即,图7的方法包括接收(302)承载具有数值(308)的第一签名(306)的、以SOAP编码的请求(604),签名(309)第一签名(306)的数值(308),和发送来自web服务(303)的应答,所有的步骤以与类似于图4的方法的方式操作。图7的方法还包括接收(602)以SOAP编码的请求(604)和创建(408)签名确认元素(410),签名确认元素具有数值(406)。签名确认元素是包含数值字段的SOAP数据结构。web服务(303)设置(416)签名确认元素(410)的数值(406)为第一签名(306)的数值(308)。图7的方法还包括web服务(303)签名(412)签名确认元素(410),由此创建第二签名(320)。在本专利申请中,“签名”第一元素还将包括签名其数值是第一元素的签名确认元素。图7的方法还包括生成对于SOAP请求(604)的应答(326),它包括签名确认元素(410)和第二签名(320)。
在图7的例子中,SOAP请求(604)包含具有数值(308)的一个签名,以及应答(326)包含一个签名确认元素(410)。单个签名确认元素的说明不是对于本发明的限制。SOAP请求(604)可包含多个签名的元素,具有多个签名。在用于按照本发明各种实施例的web服务中的保密数据通信的某些方法中,SOAP应答(326)可包括对于在原先的请求中的每个签名的签名确认元素(410)。每个签名确认元素(410)包含相应的签名的数值(406)。在用于按照本发明各种实施例的web服务中的保密数据通信的某些方法中,SOAP应答(326)可包括其数值(406)是在原先的请求中的签名之一的数值的单个签名确认元素(410)。
下面是伪代码SOAP请求的例子:
      <S11:Envelope xmlns:S11=″...″xmlns:wsse=″...″xmlns:wsu=″...″xmlns:xenc=″...″
         xmlns:ds==″...″>
         <S11:Header>
             ...
              <wsse:Security>
                  ...
                   <ds:Signature>
                        ...
                       <ds:SignedInfo>
                       <ds:Reference URI=″#CreditCardInfo″>
                              ...
                        </ds:Reference>
                   </ds:SignedInfo>
                   <ds:SignatureValue>
                           kpRyejY4uxwT9I74FYv8nQ==
                   </ds:SignatureValue>
                   <ds:KeyInfo>
                        ...
                   </ds:KeyInfo>
              </ds:Signature>
         </wsse:Security>
              ...
    </S11:Header>
    <S11:Body>
         <CreditCardInfo wsu:Id=″CreditCardInfo″>
         </CreditCardInfo>
                      ...
     </S11:Body>
</S11:Envelope>
以‘伪代码’描述这个例子,这是因为它是以XML代码的一般形式呈现的说明,而不是请求的实际的工作模式。这个例子把SOAP<header>元素和SOAP<body>元素封装在SOAP<envelope>中。标题把保密数据包括在<security>元素中。本体包括请求数据。这个示例性SOAP请求包含承载被称为<ds:Signature>的签名的、被称为<wsse:Security>的元素。签名具有被称为<ds:SignatureValue>的数值。因此,在本例中显示的SOAP请求实施上面描述的和在图7的标号(604)处显示的那种请求。
签名的数值是“kpRyejY4uxwT9174FYv8nQ”。该数值是通过散列和然后加密被签名的元素而得到的。签名元素的<reference>元素表示由签名签名的元素的名称是“CreditCardInfo”。“CreditCardInfo”元素被包含在请求的本体中。CreditCardInfo的“Id”属性是CreditCardInfo,表示该元素可以用“CreditCardInfo”标记。因此,签名签名该CreditCardInfo元素。
下面是可以实施对于由以上的请求消息代表的web服务请求的应答的伪代码SOAP应答消息的例子:
<S11:Envelopexmlns:S11=″...″xmlns:wsse=″...″xmlns:wsu=″...″xmlns:xenc=″...″
     xmlns:ds=″...″xmlns:wsse11=″...″>
        <S11:Header>
         ...
          <wsse:Security>
        <wsse11:SignatureConfirmation wsu:Id=″SignatureConfirmation″
                 Value=“kpRyejY4uxwT9174FYv8nQ==”/>
                  ...
         <ds:Signature>
                          ...
               <ds:SignedInfo>
                                  ...
                      <ds:Reference URI=″#SignatureConfirmation″>
                                          <ds:DigestMethod
                              Algorithm=″http://www.w3.org/2000/xmldsig#shal″/>
                        <ds:DigestValue>
                             LyLsF0Pi4wPU...
                        </ds:Digest Value>
                               </ds:Reference>
               </ds:SignedInfo>
               <ds:SignatureValue>
                     MC0CFFrVLtR1k
               </ds:SignatureValue>
               <ds:KeyInfo>...</ds:KeyInfo>
          </ds:Signature>
                              ...
              </wsse:Security>
                              ...
       </S11:Header>
       <S11:Body>
              ...
       </S11:Body>
</S11:Envelope>
在本例中,SOAP应答包含具有等于在请求中的签名的数值的数值的签名确认元素。SOAP应答还包含签名该签名确认元素的签名。因此,在本例中描述的SOAP应答实施上面描述的和在图7的标号(326)处显示的那种应答。
类似于以上阐述的示例性SOAP请求,这个示例性SOAP应答包含在SOAP封装内的标题和本体。标题把所阐述的保密信息包含在被称为<wsse:Security>的元素中。在保密元素内的是<signatureConfirmation>元素,它在被称为“Value”的属性中传送来自相应的请求的第一签名的数值。在本例中的“Value”属性被设置为等于在请求中的签名的数值的“kpRyejY4uxwT9174FYv8nQ”。<signatureConfirmation>元素还具有其数值是“SignatureConfirmation”的、被称为“Id”的标识属性。
保密元素<wsse:Security>还包含被称为<ds:Signature>的签名元素。第二签名的数值,来自请求的第一签名的签名,在被称为<ds:SignatureValue>的、<ds:Signature>元素的元素中被阐述。在本例中的第二签名的数值被设置为“MC0CFFrVLtRlk”。签名元素的<ds:Reference>元素,由被设置为“#SignatureConfirmation”的它的“URI”属性标识被签名来创建第二签名的数据。在本例中,<ds:Reference>标识第一签名为签名的数据,即,在<wsse11:SignatureConfirmation>元素中的数值,“kpRyejY4uxwT9174FYv8nQ”。这个示例的SOAP应答因此包含第一签名、第二签名、和标识第一签名为被签名来创建第二签名的数据的URI。
在按照本发明各种实施例的、web服务中的保密数据通信中,请求方可以通过找出在应答中的签名确认元素和比较签名确认元素的数值与在相应的SOAP请求中的签名的数值而验证SOAP应答相应于特定的SOAP请求。当SOAP请求包含多个签名时,请求方可以找到被包含在应答中的所有的签名确认元素,以及检验签名确认元素的数值字段的数值与在原先的SOAP请求的签名的数值。
以上阐述的示例SOAP请求和示例SOAP应答的精确格式不是对于本发明的限制。以上的例子仅仅说明用于按照本发明的web服务中的保密数据通信的SOAP请求和SOAP应答的可能格式。当使用用于按照本发明各种实施例的web服务中的保密数据通信的SOAP消息结构或SOAP数据通信协议时,签名可以以本领域技术人员将想到的任何数据结构实施,以及所有的这样的结构也属于本发明的范围之内。
本发明的示例性实施例主要在用于web服务中的保密数据通信的完全功能计算机系统的情况下描述的。然而,本领域技术人员将会认识到,本发明也可以被实现在任何适当的数据处理系统使用的、被放置在信号承载媒体的计算机程序产品中。这样的信号承载媒体可以是传输媒体或用于机器可读的信息的可记录的媒体,包括磁媒体、光媒体、或其它适当的媒体。可记录的媒体的例子包括在硬盘驱动中的磁盘或软盘,用于光驱动的紧凑盘,磁带,和本领域技术人员将想到的其它媒体。传输媒体的例子包括用于语音通信的电话网和数字数据通信网,诸如,例如以太网和通过互联网协议通信的网络和3W网。本领域技术人员将会立即认识到,具有适当的编程装置的任何计算机系统能够执行如在程序产品中实现的本发明的方法的步骤。本领域技术人员将会立即认识到,虽然在本技术说明书中描述的某些示例性实施例面向所安装的和在计算机硬件上执行的软件,然而,作为固件或作为硬件被实施的可替换的实施例也属于本发明的范围之内。
将会看到,在本发明的各种实施例中可以作出修改和改变,而不背离本发明的范围。在本技术说明书中的描述仅仅用于说明,而不被看作为限制。本发明的范围仅仅由以下的权利要求的语言被限制。

Claims (14)

1.一种用于web服务中的保密数据通信的方法,所述方法包括:
在web服务中从请求方接收包含承载第一签名的元素的请求,该签名具有数值;
签名该第一签名的数值,从而创建第二签名;以及
从该web服务发送应答到该请求方,该应答包括该第二签名。
2.根据权利要求1的方法,还包括:由该请求方验证该应答是否包括该第二签名。
3.根据权利要求1或权利要求2的方法,其中:
接收请求的步骤还包括:接收加密的请求;以及
该方法还包括:加密在该web服务中的该应答。
4.根据权利要求1或权利要求2的方法,其中:
接收请求的步骤还包括:接收具有被加密的第一签名的请求;
该方法还包括:加密该第一签名的数值;以及
该应答还包括:该第一签名的加密的数值。
5.根据权利要求1或权利要求2的方法,其中:
接收请求的步骤还包括:接收以SOAP编码的请求;以及
发送应答的步骤还包括:发送以SOAP编码的应答。
6.根据权利要求5的方法,其中签名该第一签名的数值的步骤还包括:
创建签名确认元素,该签名确认元素具有数值;
设置该签名确认元素的数值为该第一签名的数值;
签名该签名确认元素,从而创建第二签名;
其中,该应答包括该签名确认元素和该第二签名。
7.根据权利要求1或权利要求2的方法,其中:
该请求还包括承载第一签名的多个元素,该第一签名具有数值;
签名该第一签名的数值的步骤还包括:签名所有该第一签名的数值,从而创建多个第二签名;以及
发送应答的步骤还包括:发送包括该多个第二签名的应答。
8.一种用于web服务中的保密数据通信的系统,该系统包括:
用于在web服务中从请求方接收包含承载第一签名的元素的请求的装置,该签名具有数值;
用于签名该第一签名的数值,从而创建第二签名的装置;以及
用于从该web服务发送应答到该请求方的装置,该应答包括该第二签名。
9.根据权利要求8的系统,还包括:
用于由请求方验证该应答包括第二签名的装置。
10.根据权利要求8或权利要求9的系统,其中:
用于在web服务中从请求方接收包含承载第一签名的元素的请求的装置还包括:
用于接收加密的请求的单元;以及
该系统还包括:
用于加密在web服务中的应答的装置。
11.根据权利要求8或权利要求9的系统,其中:
用于在web服务中从请求方接收包含承载第一签名的元素的请求的装置还包括:
用于接收具有被加密的第一签名的请求的单元;
该系统还包括:
用于加密第一签名的数值的装置;以及
应答还包括第一签名的加密的数值。
12.根据权利要求8或权利要求9的系统,其中:
用于在web服务中从请求方接收包含承载第一签名的元素的请求的装置还包括:
用于接收以SOAP编码的请求的单元;以及
用于从该web服务发送应答到该请求方的装置还包括:
用于发送以SOAP编码的应答的单元。
13.根据权利要求12的系统,其中用于签名该第一签名的数值,从而创建第二签名的装置还包括:
用于创建签名确认元素的单元,该签名确认元素具有数值;
用于设置该签名确认元素的数值为第一签名的数值的单元;以及
用于签名该签名确认元素,从而创建第二签名的单元;
其中该应答包括签名确认元素和第二签名。
14.根据权利要求8或权利要求9的系统,其中:
该请求还包括承载第一签名的多个元素,该第一签名具有数值;
用于签名该第一签名的数值,从而创建第二签名的装置还包括:
用于签名所有第一签名的数值,从而创建多个第二签名的单元;以及
用于从该web服务发送应答到该请求方的装置还包括:
用于发送包括多个第二签名的应答的单元。
CNB2006800168059A 2005-06-28 2006-06-06 Web服务中的保密数据通信方法 Expired - Fee Related CN100517355C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/168,716 2005-06-28
US11/168,716 US20060294383A1 (en) 2005-06-28 2005-06-28 Secure data communications in web services

Publications (2)

Publication Number Publication Date
CN101176101A CN101176101A (zh) 2008-05-07
CN100517355C true CN100517355C (zh) 2009-07-22

Family

ID=37308916

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2006800168059A Expired - Fee Related CN100517355C (zh) 2005-06-28 2006-06-06 Web服务中的保密数据通信方法

Country Status (8)

Country Link
US (1) US20060294383A1 (zh)
EP (1) EP1897325B1 (zh)
JP (2) JP2008544713A (zh)
CN (1) CN100517355C (zh)
AT (1) ATE429768T1 (zh)
DE (1) DE602006006448D1 (zh)
TW (1) TWI416923B (zh)
WO (1) WO2007000386A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1748366A1 (en) * 2005-07-28 2007-01-31 Sap Ag A data processing system and method
TW201011587A (en) * 2008-09-03 2010-03-16 Wayi Internat Digital Entertainment Co Ltd Computer tied-in system and its method
JP6023518B2 (ja) * 2012-09-06 2016-11-09 サターン ライセンシング エルエルシーSaturn Licensing LLC 情報処理装置、情報処理方法、プログラム、およびコンテンツ共有システム
WO2016114842A1 (en) 2014-10-31 2016-07-21 Convida Wireless, Llc End-to-end service layer authentication
CN104506890B (zh) * 2014-12-31 2018-06-05 成都东方盛行电子有限责任公司 一种基于pci-e标准的音视频数据传输方法
US9336092B1 (en) * 2015-01-01 2016-05-10 Emc Corporation Secure data deduplication
US10135904B2 (en) * 2015-01-27 2018-11-20 Stealth Security, Inc. Network attack detection on a mobile API of a web service
CN107534658B (zh) 2015-03-16 2020-11-17 康维达无线有限责任公司 使用公钥机制在服务层的端对端认证

Family Cites Families (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5841550A (en) * 1994-12-30 1998-11-24 International Business Machines Corporation Method and system for specifcation of time dependent acknowledgement transmission media
JP3446482B2 (ja) * 1996-06-28 2003-09-16 三菱電機株式会社 暗号化装置
US5956390A (en) * 1997-09-03 1999-09-21 Motorola, Inc. Method and apparatus for providing verified message receipt in a messaging system
US6477243B1 (en) * 1998-04-29 2002-11-05 Openwave Systems Inc. Method and apparatus for automated facsimile message confirmation
JP3932685B2 (ja) * 1998-08-11 2007-06-20 富士ゼロックス株式会社 ネットワーク上で遠隔手続き呼び出しを実行するための方法、及び、遠隔手続き呼び出しを実行可能なネットワーク・システム
JP3730498B2 (ja) * 2000-09-19 2006-01-05 株式会社東芝 署名用記憶媒体
JP2002207636A (ja) * 2001-01-11 2002-07-26 Fuji Xerox Co Ltd ネットワーク装置
US6694045B2 (en) * 2002-01-23 2004-02-17 Amerasia International Technology, Inc. Generation and verification of a digitized signature
US8817757B2 (en) * 2001-12-12 2014-08-26 At&T Intellectual Property Ii, L.P. Zero-configuration secure mobility networking technique with web-based authentication interface for large WLAN networks
JP2003249919A (ja) * 2001-12-17 2003-09-05 Fujitsu Ltd 双方向通信方法
US7603469B2 (en) * 2002-01-15 2009-10-13 International Business Machines Corporation Provisioning aggregated services in a distributed computing environment
JP4366040B2 (ja) * 2002-03-07 2009-11-18 インターナショナル・ビジネス・マシーンズ・コーポレーション ネットワークサービスシステム、サーバ及びプログラム
NO318842B1 (no) * 2002-03-18 2005-05-09 Telenor Asa Autentisering og tilgangskontroll
JP2003296192A (ja) * 2002-04-04 2003-10-17 Certrust Kk 電子署名・電子文書保管システム
AUPS169002A0 (en) * 2002-04-11 2002-05-16 Tune, Andrew Dominic An information storage system
JP2004023649A (ja) * 2002-06-19 2004-01-22 Hitachi Software Eng Co Ltd ディジタル署名方法
US7174021B2 (en) * 2002-06-28 2007-02-06 Microsoft Corporation Systems and methods for providing secure server key operations
CN1252598C (zh) * 2002-09-03 2006-04-19 国际商业机器公司 提供身份相关的信息和防止中间人的攻击的方法和系统
US7444522B1 (en) * 2002-09-18 2008-10-28 Open Invention Network, Llc Dynamic negotiation of security arrangements between web services
AU2003235490A1 (en) * 2002-10-15 2004-05-04 Samsung Electronics Co., Ltd. Method for managing metadata
JP4226887B2 (ja) * 2002-12-19 2009-02-18 日本電信電話株式会社 データ公証システム及びデータ公証方法並びに電子公証サーバ並びに電子公証プログラム及びその記録媒体
JP2004240596A (ja) * 2003-02-05 2004-08-26 Mitsubishi Electric Corp Webシステム
KR20060006770A (ko) * 2003-03-04 2006-01-19 인터내셔널 비지네스 머신즈 코포레이션 디지털 서명 방법, 컴퓨터 장치, 디지털 서명 시스템 및전자 문서 검증 방법
JP3969654B2 (ja) * 2003-03-07 2007-09-05 インターナショナル・ビジネス・マシーンズ・コーポレーション Soapメッセージ作成方法並びに処理方法、情報処理方法、情報処理装置及びプログラム
JP3896486B2 (ja) * 2003-04-03 2007-03-22 独立行政法人産業技術総合研究所 ウェブサイトの検査装置
US7342918B2 (en) * 2003-04-15 2008-03-11 American Express Travel Related Services Co., Inc. Transaction card information access web service
JP2004357204A (ja) * 2003-05-30 2004-12-16 Nippon Telegr & Teleph Corp <Ntt> 証拠情報収集システムおよび方法
JP4062206B2 (ja) * 2003-08-01 2008-03-19 日本電気株式会社 署名復号サービスシステム及びプログラム
JP4025268B2 (ja) * 2003-08-08 2007-12-19 株式会社東芝 クライアント/サーバシステム、クライアントモジュール及び暗号化通信プログラム
JP4583833B2 (ja) * 2003-09-12 2010-11-17 株式会社リコー 通信装置、通信システム、通信方法及びプログラム
US7519815B2 (en) * 2003-10-29 2009-04-14 Microsoft Corporation Challenge-based authentication without requiring knowledge of secret authentication data
JP2005142661A (ja) * 2003-11-04 2005-06-02 Ntt Docomo Inc 端末装置、サーバ、電子認証システム、及び、署名付電子文書生成方法
JP4064914B2 (ja) * 2003-12-02 2008-03-19 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報処理装置、サーバ装置、情報処理装置のための方法、サーバ装置のための方法および装置実行可能なプログラム
KR100576722B1 (ko) * 2003-12-26 2006-05-03 한국전자통신연구원 웹서비스에 대한 메시지 보안 처리 시스템 및 방법
US20050268326A1 (en) * 2004-05-04 2005-12-01 Microsoft Corporation Checking the security of web services configurations

Also Published As

Publication number Publication date
EP1897325B1 (en) 2009-04-22
EP1897325A1 (en) 2008-03-12
CN101176101A (zh) 2008-05-07
DE602006006448D1 (de) 2009-06-04
WO2007000386A1 (en) 2007-01-04
JP4775980B2 (ja) 2011-09-21
US20060294383A1 (en) 2006-12-28
JP2010288313A (ja) 2010-12-24
ATE429768T1 (de) 2009-05-15
JP2008544713A (ja) 2008-12-04
TWI416923B (zh) 2013-11-21
TW200721771A (en) 2007-06-01

Similar Documents

Publication Publication Date Title
CN100517355C (zh) Web服务中的保密数据通信方法
JP3629516B2 (ja) プロキシサーバ、電子署名システム、電子署名検証システム、ネットワークシステム、電子署名方法、電子署名検証方法及び記憶媒体
US8145898B2 (en) Encryption/decryption pay per use web service
US6952768B2 (en) Security protocol
JP4520840B2 (ja) 暗号化通信の中継方法、ゲートウェイサーバ装置、暗号化通信のプログラムおよび暗号化通信のプログラム記憶媒体
US7036010B2 (en) Method and apparatus for a secure communications session with a remote system via an access-controlling intermediate system
CN100479362C (zh) 传送来自于完成加密操作的证书的精简信息的系统和方法
EP1635502B1 (en) Session control server and communication system
US7657737B2 (en) Method for mapping an encrypted https network packet to a specific url name and other data without decryption outside of a secure web server
GB2357227A (en) Communication security protocol using attribute certificates to prove the attributes or authorisations of communicating parties
CN1906886A (zh) 在计算机系统之间建立用于传递消息的安全上下文
US7100045B2 (en) System, method, and program for ensuring originality
JPWO2003003329A1 (ja) データのオリジナリティ検証方法及びシステム
CN114868359B (zh) 多区块链间轻量通讯协定装置及方法
JP2007053569A (ja) 電子メールセキュリティ化装置及び該システム
JP2005209181A (ja) ファイル管理システム及び管理方法
EP3477531A1 (en) Integrity of user input in web pages
US9258125B2 (en) Generating evidence of web services transactions
JP4668099B2 (ja) トランザクション認証方法、ファイル送受信システム、クライアント装置、サーバ装置、および記録媒体
JP2001005746A (ja) ファイル転送システム
US8572383B2 (en) Key exchange device, key exchange processing system, key exchange method, and program
JP2008198190A (ja) 電子メールメッセージを安全に交換する方法及びシステム
JP2002007288A (ja) 否認防止情報管理方法、その装置及びプログラム記録媒体
WO2020083503A1 (en) Confidentiality and integrity of user input in web pages
JP2006253860A (ja) 暗号化情報共有システム、暗号化情報共有方法およびそれに用いる情報中継サーバ

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090722

CF01 Termination of patent right due to non-payment of annual fee