存储认证证书的方法和系统的制作方法

文档序号:7653257阅读:110来源:国知局
专利名称:存储认证证书的方法和系统的制作方法
技术领域
本发明涉及数据处理领域,并且特别涉及一种存储认证证书的方法和系统。
背景技术
万维网是因特网的多媒体信息获取系统。在Web(网络)环境中,客户端机器使用超文本传输协议(HTTP)来与Web服务器进行通信。Web服务器向用户提供对资源以及对诸如网络服务之类的应用的访问,其中资源可以是可被存储在文件中并被呈现给用户的任何类型的内容,诸如程序文件、媒体文件、文本、图形、图像、声音、视频等等。
在服务器提供所请求的访问之前,客户端应用和/或终端用户必须被认证。这通常通过使用HTTP基本认证协议来完成。如果服务器系统希望保护它的资源,则它可以向客户端系统发出询问,要求该客户端应用提供相关的证书(诸如用户ID和密码)。当该客户端应用是在真人控制之下的网络浏览器时,这能较好地起作用,因为该浏览器可以交互地提示人员提供证书。但是,当该客户端应用是诸如网络服务客户应用之类的纯软件应用而没有在场人员时,该客户端应用可能需要在无人干预下自动地供给证书。虽然可以将证书存储在目录中,但是确保安全地存储证书数据使得它不能被未授权的人员或应用访问是困难的。
本发明目的在于克服这个问题并提供一种用于存储可在无人干预下由客户端程序访问的认证证书的方法和系统。

发明内容
根据本发明的第一方面,提供了一种控制对客户端应用访问主机计算机系统所需的主机访问证书的访问的方法。该方法包括在访问受限的目录中存储该主机访问证书,从该客户端应用处接收目录访问证书,并认证所接收的目录访问证书。接着,当从该经认证的客户端应用处接收对该主机访问证书的请求时,做出关于该经认证的客户端应用是否被授权以访问所请求的主机访问证书的判断,以及如果被授权,则将该主机访问证书提供给该客户端应用。
在本发明的一个优选的实施例中,该客户端的主机访问证书被存储在轻量级目录访问协议(LDAP)储藏库(repository)的专用区域中。该客户端证书只被分发给其身份已经被认证并且被确定具有访问该证书的授权的LDAP客户端。
使用认证协议,LDAP储藏库被设计成包含安全数据,并且该储藏库内的各区域可以被配置成由访问控制列表来保护。因此,LDAP包含一种用于包含诸如证书之类的敏感数据的理想基础结构。当对该系统进行配置时,管理员针对某个客户端程序以及/或者针对客户端程序的某个用户建立许可,以允许其访问对远端服务器(例如,HTTP服务器)上的资源进行访问时所需的证书。一旦被许可的客户端程序已经被该LDAP服务器所认证,它们可以接着自动地从该LDAP服务器获取必要的证书。
本发明的第二方面提供了一种用于控制对运行在客户端计算机系统上的进程访问主机计算机系统上的资源所需的主机访问证书的访问的数据处理装置,该主机访问证书被存储在目录的访问受限区域中。该数据处理装置包括接收部件,其用于从该客户端进程接收消息;认证部件,其用于使用从客户端进程接收的目录访问证书来认证客户端进程;以及查询部件,其用于响应于来自经认证的客户端进程的对主机访问证书的请求而在目录中查询所请求的主机访问证书,其中该请求标识该客户端计算机系统的用户,用于判断该经认证的客户端进程的用户是否被授权以访问存储在该目录中的主机访问证书,以及用于在确定该客户端计算机系统的用户被授权访问该主机访问证书的条件下,提供该主机访问证书。


参考附图,现在将仅作为示例来描述本发明的各优选实施例,其中图1是在其中可以实现本发明的计算机网络的框图;图2是包括主机、客户端和目录服务器的计算机系统的示意图,其说明根据本发明的优选实施例的交互;图3a示出根据本发明的示例性实施例的消息流;图3b示出根据本发明的一个实施例的在用HTTP服务器进行的认证中涉及的步骤;以及图4示出适合于实现本发明的一个方面的数据处理装置的部件。
具体实施例方式
图1示出在其中可以实现本发明的公知的因特网计算机网络10的概念图。该因特网10建立在客户端服务器模型的基础上并且包括可被多个客户端14通过通信网16进行访问的多个服务器12。
图2示出计算机网络25,其包括主机计算机系统、通过通信网16连接到客户端14的Web服务器12。Web服务器12和客户端14的硬件部件被更详细地示出。该Web服务器12主管对Web服务的访问,该Web服务提供被打包成单个实体且向网络发行以供其他程序使用的功能集合,因此支持了在该网络上的能共同操作的机器到机器的交互。该Web服务具有以诸如Web服务定义语言(WSDL)之类的机器可处理的格式来描述的接口。其它系统使用消息以其接口所规定的方式来与该Web服务进行交互。通常使用HTTP来传送这些消息,并且这些消息一般包括与其他Web相关的标准相结合的可扩展的标记语言(XML)。
服务器12包括诸如处理器20、存储器22(例如RAM)、耦合该处理器20和存储器22的总线24、通过I/O控制器28耦合到该处理器20和存储器22的大容量存储设备26(例如磁盘或光盘)、以及网络接口29(诸如常规的调制解调器)之类的常规部件。服务器12通常包括连接到通信网16(例如因特网、内部网或其它网络)的服务器计算机并且在其上安装了网络服务提供者应用40。
客户端14可以是个人计算机或其他数据处理设备,其能够运行诸如服务请求器15之类的网络服务客户应用。服务请求器15可以是人员驱动的浏览器,但是在优选的实施例中其是没有用户接口的程序,诸如另一个Web服务,并且其将被称为客户应用。通常,该网络客户端包括处理器30、存储器32(例如RAM)、耦合该处理器30与存储器32的总线34、通过I/O控制器38耦合到该处理器30和存储器的大容量存储设备36(例如磁硬盘或者光存储盘)、以及网络接口39(例如常规的调制解调器)。存储器32支持许多诸如兼容HTTP的客户应用15之类的因特网访问工具。
客户端14经由LDAP服务器21连接到LDAP目录23(尽管在图2中示出为直接连接的,但是客户端14和LDAP服务器21可以经由通信网来耦合)。
该LDAP服务器21是一种用于控制对LDAP目录区域的访问的数据处理装置。该LDAP服务器21可以包括如在图4中示出的接收部件40、认证部件42以及查询部件44,该LDAP服务器21被配置为使得执行本发明的优选实施例的方法。
根据本发明的优选实施例,访问远端HTTP服务器12上的网络服务所必需的证书被存储在LDAP储藏库17的安全区域中。存储在LDAP内的数据可被保护并且仅对使用特定的LDAP证书绑定到它的用户是可用的。这些证书与使得客户端应用能够访问主机上的资源所需的客户端主机访问证书(例如HTTP证书)不同。
LDAP目录23是这样的目录,其中条目(一般被称为对象)被存储在分层级的目录结构中。LDAP是一种用于查询并修改运行在TCP/IP上的目录服务的网络协议。基于条目的识别名(DN),将条目组织在类似树的结构中。一个DN是明确地标识单个条目的唯一的名称。DN由一系列相对识别名(RDN)组成。一个DN包括一系列由逗号分隔开的RDN,诸如cn=John Smith,ou=Development,o=IBM,c=GB。
每个对象属于至少一个对象类,并且可以包含属性,其被存储在目录中并且与识别名相关联。对象类描述对象的内容和目的。它还包含属性列表,诸如电话号码或姓氏,其可以被定义在那个类的对象中。通常,属性名是帮助记忆的字符串,像“cn”用于通用名、“c”用于国家、“o”用于组织、“ou”用于组织单元。用基于模式语言来描述这种严格分层级命名结构和可与每个对象相关联的属性,并且将这些模式自身存储在该储藏库中。属性可被分配安全属性和访问控制列表,使得某些属性只能被授权的人员或进程提取。该LDAP协议包含用于搜索该储藏库以及提取符合搜索标准的对象属性的服务。
下面,表1列出了一些通用模式(对象类以及它们所需的属性)。在许多情况下,条目可以包括多于一个的对象类。

现有的公布的LDAP模式定义了分别具有属性uid(用户ID)和userPassword(用户密码)的对象类account和simpleAuthObject,并且其可被用于LDAP认证,而且通过定义包含具有这些属性的对象的识别名结构,其还可用于存储HTTP证书。
有助于构建用于存储HTTP证书的结构的另一个对象类是具有属性labeledURI的labeledURIobject,其可包含目标HTTP系统的URL(统一资源定位符)。
现在参考图3a和3b,将描述一种根据本发明的优选实施例的用网络服务17认证服务请求器客户端应用15的方法。在所示例子中,该服务请求器15首先向该驻留在HTTP服务器12上的主机服务发送300请求〔1〕,HTTP服务器12以关于该客户端应用的HTTP证书的询问〔2〕进行应答302。
询问〔2〕以具有附带WWW-认证头的HTTP 401错误响应的形式到来。该WWW-认证头包含安全领域的名称,该安全领域是其中所请求的证书为有效的上下文。(原则上,服务器可包含其中不同的证书集合可以为有效的若干不同领域,并且安全领域的名称提示该客户端所期望的是哪些证书。)该客户端应用接着必须获取所请求的HTTP证书(用户ID和密码),该证书被安全地存储在该LDAP目录23内。
为了获取对这些的访问,该客户端应用15必须首先建立与该LDAP服务器21的会话,也被称为绑定到该LDAP服务器。该LDAP服务器侦听位于该客户端应用向之提出其请求的特定的主机名/IP地址以及TCP/IP端口号处的流量。该客户端应用通过消息〔3〕的方式向该LDAP服务器标识其自身,该消息〔3〕包括被它发送304给该LDAP服务器的它的LDAP证书,即DN和密码。该DN的例子可以是cn=clientapplication。如果该客户端应用所发送的DN和密码与存储在该目录中的针对那个DN的密码相匹配,则该LDAP服务器认为该客户端应用经过了认证,也就是该LDAP服务器通过针对所命名的对象中的用户密码属性检查所接收的密码来认证所接收的LDAP证书。如果这些相匹配,则该LDAP服务器发送306通信〔4〕给该客户端应用,指示会话已被建立。否则,发送308失败消息。
一旦该会话已被建立,则该客户端应用可以向该LDAP服务器查询〔5〕312该HTTP证书。通过使用访问控制列表(ACL)来保证这些操作的安全,并且该LDAP服务器将通过检查来明确该经认证的客户端应用是否被授权访问所请求的区域。ACL了描述目录的用户和包含在该目录里面的对象之间的关系,并且控制该用户是否可以读或写该目录内的对象。因此,ACL被用于确保只有已利用已知目录访问证书(例如LDAP证书)绑定到该LDAP服务器上的用户将被给予对包含在该LDAP服务器内的主机访问(例如,HTTP)证书的访问。
用于访问该LDAP服务器的LDAP证书与要从该LDAP服务器中提取的HTTP证书不同。该LDAP证书通常包括InetOrgPerson对象的识别名和相关联的密码。从该目录中提取的HTTP证书是simpleAuthObject的uid和userPassword属性,其通过以上技术中的任何一种来标识。
在系统配置期间,LDAP管理员将已经定义了一个或多个ACL,其允许该HTTP客户端系统的管理员将HTTP证书写入该LDAP目录,并且其允许该HTTP客户端系统的用户(或应用)从该LDAP目录读取HTTP证书。这些ACL被定义为使得没有其他用户能够读取该HTTP证书。
如果该LDAP服务器确定314该客户端应用被授权以访问该HTTP证书,则将这些HTTP证书返回〔6〕316给该客户端应用。否则,返回318失败消息。
该客户端接着在HTTP认证头中将该HTTP证书发送〔7〕320给该HTTP服务器12。该主机服务器接着认证322所接收的HTTP证书,并且如果发现这些是真实的则该主机服务器将所请求的服务或者资源提供〔8〕324给该客户端应用。否则,返回326失败消息。
如图3a中所示,该主机服务器12可以位于防火墙的后面以获得附加的安全。优选地,该LDAP服务器位于与该客户端计算机系统相同的安全域内,以允许由该客户端应用对该LDAP服务器进行直接访问。
通常,该客户端计算机系统可以被任何数量的用户使用,这些用户必须首先登录到该计算机的操作系统,以便获取对可以运行在该客户端计算机系统上的进程和应用的访问。该客户端进程一般是在该客户端计算机系统的这种已授权用户的控制下建立的,该已授权用户接着可以让该计算机系统独自执行所请求的任务/进程而不加干涉。该客户端进程所提供的该目录访问证书由此可以是该客户端计算机系统的用户的那些证书,或者可以是专用于该客户端进程自身的证书。
该储藏库可以包含客户端进程可被授权访问的多个主机访问证书,并且这些主机访问证书可以每个都与不同用户相关联以及/或者可以用于对不同资源的访问。因此,从经认证的客户端应用对该LDAP服务器的查询可能需要包括标识所需的特定证书的信息(例如涉及哪个用户/服务)。该查询采用DN的形式,DN命名了包含所需的证书的对象。在上面所描述的关于图3a和3b的情形中,其中客户端系统已尝试连接到HTTP服务器并且已经被要求提供与特定领域相关联的证书,则可以使用识别名realm=realm-name,labeledURI=target-URL,cn=Basicauth来定位该证书。
下面的其他情形可以应用1)当经认证的客户端应用想发送主动提供的证书给目标主机服务器而不考虑该服务器的安全领域或该客户端应用的当前身份时,可以使用识别名labeledURI=target-URL,cn=Basicauth来定位该证书。
2)当经认证的客户端应用想发送主动提供的证书给目标系统,但是可能想基于执行该客户端应用的用户的当前身份来发送不同的证书时,可以使用识别名cn=client-identity,labeledURI=target-URL,cn=Basicauth来定位该证书。
3)当经认证的客户端应用已经尝试连接到HTTP服务器并且已经被要求提供与特定领域相关联的证书,并且该客户端想基于执行该客户端应用的用户的当前身份来发送证书时,可以使用识别名cn=client-identity,realm=realm-name,labeledURI=target-URL,cn=Basicauth来定位证书。
在所有这些情形中,在其中将所需的HTTP证书存储在该LDAP目录中的对象具有属性uid和userPassword。一旦该HTTP客户端已经绑定到具有恰当的LDAP证书的LDAP服务器,它基于它已经获得的搜索参数,使用以上形式之一的识别名来完成LDAP搜索操作。所返回的uid和userPassword接着被用于组成所需的HTTP授权头,其与下一个HTTP请求一起被发送给该主机服务器。
至此所描述的本发明的实施例可以至少部分地使用诸如微处理器、数字信号处理器或其他处理设备、数据处理装置或系统之类的软件控制的可编程处理设备来实现,应该理解一种用于配置可编程设备、装置或系统以实现前述方法的计算机程序被认为是本发明的一个方面。例如,该计算机程序可以具体体现为源代码或经过编译以便在处理设备、装置或系统上实现,或者可具体体现为目标代码。
合适地,该计算机程序以机器或设备可读取的形式存储在载体介质上,例如固态存储器、诸如磁盘或磁带之类的磁存储器、诸如光盘或数字多功能盘之类的光或磁光可读存储器等等,并且该处理设备利用该程序或该程序一部分来对它进行配置以便操作。该计算机程序可以具体体现在诸如电子信号、射频载波或光载波之类的通信介质中从远端源来提供。这种载体介质也被认为是本发明的一个方面。
本领域的普通技术人员将理解,尽管已经针对前面的示例性实施例描述了本发明,但是本发明并不受限于此并且在本发明的范围内可以做许多变型和修改。
所公开的范围包括任何新颖特征或特征的组合。因此,在进行本申请或者从其导出的任何这种进一步的申请期间,申请人注意到,对于这种特征或者特征的组合可阐述成新的权利要求。特别地,参考所附权利要求书,来自从属权利要求的特征可以与独立权利要求的特征进行组合,以及来自各独立权利要求的特征可以以任何恰当的方式进行组合而不仅仅是在权利要求书中所列举出的特定组合。
为了避免造成疑惑,在整个说明书和权利要求书中所使用的术语“包括”不应该解释为“仅包括”的意思。
权利要求
1.一种控制对客户端计算机系统上运行的进程访问主机计算机系统上的资源所需的主机访问证书的访问的方法,所述方法包括步骤在访问受限的目录中存储所述主机访问证书;从所述客户端进程接收目录访问证书;认证所述接收的目录访问证书;从所述经认证的客户端进程接收对所述主机访问证书的请求,所述请求标识所述客户端计算机系统的用户;判断所述客户端计算机系统的用户是否被授权访问存储在所述目录中的所述主机访问证书;以及响应于确定所述客户端计算机系统的用户被授权访问所述主机访问证书,将所述请求的主机访问证书提供给所述经认证的客户端进程。
2.根据权利要求1所述的方法,其中所述在访问受限目录中存储所述主机访问证书的步骤包括从目录管理员处接收目录访问证书;认证所述接收的目录管理员证书;从所述经认证的目录管理员处接收所述主机访问证书和相关联的访问控制列表;将所述主机访问证书存储在所述目录中,并存储所述相关联的访问控制列表。
3.根据权利要求1所述的方法,其中所述判断所述客户端计算机系统的用户是否被授权访问所述主机访问证书的步骤包括将所述用户的身份与访问控制列表进行比较。
4.根据权利要求2或3所述的方法,其中所述访问控制列表定义被授权访问所述主机访问证书的用户的列表。
5.根据前述任意一项权利要求所述的方法,包括响应于来自所述主机计算机系统对所述主机访问证书的询问,请求来自所述目录的所述主机访问证书。
6.根据前述任意一项权利要求所述的方法,还包括将所述主机访问证书发送给所述主机计算机系统。
7.根据前述任意一项权利要求所述的方法,其中所述客户端计算机系统的用户是所述经认证的客户端进程。
8.根据前述任意一项权利要求所述的方法,还包括发送请求以认证所述客户端进程,所述请求标识所述储藏库内的条目和密码。
9.根据权利要求8所述的方法,其中所述认证所述客户端进程的步骤包括判断所述接收的密码是否与存储为所述被标识的储藏库条目的属性的密码相匹配。
10.一种用于控制对客户端计算机系统上运行的进程访问主机计算机系统上的资源所需的主机访问证书的访问的数据处理装置,所述主机访问证书被存储在访问受限的目录区域中,所述数据处理装置包括接收部件,其用于从所述客户端进程接收消息;认证部件,其用于使用从客户端进程接收的目录访问证书来认证客户端进程;以及查询部件,其用于响应于来自经认证的客户端进程的对所述主机访问证书的请求而在所述目录中查询所请求的主机访问证书,其中所述请求标识所述客户端计算机系统的用户,用于判断所述经认证的客户端进程的用户是否被授权访问存储在所述目录中的主机访问证书,以及用于在确定所述客户端计算机系统的用户被授权访问所述主机访问证书的条件下,提供所述主机访问证书。
11.根据权利要求10所述的数据处理装置,其被配置为从目录管理员处接收目录访问证书;认证所述接收的目录管理员证书;从所述经认证的目录管理员处接收主机访问证书和相关联的访问控制列表;以及将所述主机访问证书存储在所述目录中,并存储所述相关联的访问控制列表。
12.一种控制对客户端计算机系统上运行的进程在访问主机计算机系统上的资源所需的主机访问证书的访问的计算机程序产品,所述计算机程序产品包括其上具有用于执行根据权利要求1至9中任意一项所述的方法的计算机可执行指令的计算机可用介质。
全文摘要
本发明提供了一种用于控制对客户端应用访问主机计算机系统所需的主机访问证书的访问的方法、装置和计算机程序产品。在访问受限的目录中存储该主机访问证书。该方法包括认证从客户端应用接收的目录访问证书。接着,经认证的客户端应用请求该主机访问证书,并且判断该经认证的客户端进程是否被授权访问所请求的主机访问证书,以及如果被授权,则将该主机访问证书提供给该客户端应用。
文档编号H04L9/32GK101076033SQ20071010470
公开日2007年11月21日 申请日期2007年4月24日 优先权日2006年5月20日
发明者P·E·哈弗坎 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1