利用包含在公共密钥证书中属性的访问控制 【发明背景】
【发明领域】
本发明涉及一种控制对受保护资源访问的方法,这一方法以包含在公共密钥证书中的用户属性和代理判定为基础。本发明还涉及一个带有软件的程序产品,它基于包含在公共密钥证书中的用户属性和代理判定来控制对受保护资源的访问。本发明进一步涉及一个计算机系统,这一系统基于包含在公共密钥证书中的用户属性和代理判定来控制对受保护资源的访问。
相关技术
在公共密钥基础结构(“PKI”)技术出现之前,发展了若干种技术来控制用户对受保护计算机资源的访问,例如公司服务器执行事务程序或者主机数据库。有一种保护方法是以物理方式来防止未经授权地访问受保护计算机系统。这些方法中最简单的就是限制访问与受保护计算机系统相连的终端。另一种方法是通过不允许在受保护计算机系统和公共计算机网络之间存在物理网络的连接来防止未经授权的访问。还有一种保护方法是对于每一个受保护计算机系统或受保护服务器提供自动化的访问控制系统。这些技术虽然有效,但是存在着重要缺陷,妨碍了有效利用计算机资源。在物理安全方法的情况下,就失去了利用对于公共网络——例如互联网——的使用,来访问受保护计算机系统的机会。类似地,在服务器水平上提供地自动访问控制系统仅对于特定的服务器适用。结果使得对访问控制特权的管理也许不得不在若干个服务器中间重复进行,而这又会导致错误、相互矛盾以及最重要的——增大的成本。
利用象互联网和企业内联网这样的公共网络,工业界已采用了安全服务器方法来提供安全措施。在受保护计算机资源和客户站之间插入安全服务器,以此作为资源与客户之间的唯一链路。客户可直接连接到这个安全服务器,也可通过一个或多个的通信路由器连接到这个安全服务器。此外安全服务器还可以保护单独一个或多个资源。在——并且仅在——用户被适当地鉴别后,安全服务器才会建立受保护资源和客户站之间的通信链路。在这种意义上,“安全服务器”一辞包括了安全服务器、防火墙、代理服务器和鉴别服务器。此外“受保护资源”一辞包括了——但是不仅限于——数据库服务器、应用程序服务器和事务处理服务器。
与安全服务器方法相配合的是公共秘钥基础结构技术。在PKI应用中,用一个密钥配对(公共密钥和专用密钥)来提供强鉴别和加密服务。通过使用包括了用户的公共密钥、以及与用户有关的属性的一个“证书”,而将这一密钥配对与用户联系在一起。安全服务器通过建立一个代理,而在一个客户站(或一个通信路由器)与一个受保护资源间建立一条链路。这一代理仅在客户站经过了适当鉴别时才启用。一般是基于提交正确的口令以便客户站存取其专用密钥,以及基于拥有有效专用密钥,来进行这一客户站鉴别。
发明概要
本发明涉及一种基于存储在公共密钥证书中的属性,在安全服务器中增加访问控制功能的方法。任何存储在公共密钥证书中的属性均可以经由一个安全服务器而用于控制对受保护资源的访问。
根据本发明,在属性值的基础上建立了一种通过安全服务器来准许或拒绝访问的新方法。本发明的方法是这样一种方法:基于属性值的条件直接和安全服务器中的代理联系在一起。在——并且仅在——请求者经过鉴别,而且与代理相关的属性条件得到满足的情况下,才会在一个客户站和一个受保护资源之间建立这个代理。
根据本发明,在与代理判定结合在一起的输入和输出地址的基础上建立了一种通过安全服务器来限制访问受保护资源的新方法。本发明的方法是这样一种方法:基于地址的条件能够限制仅对于某一特定资源的访问。
附图简要说明
图1,说明一个典型的计算机网络,这个网络使用一个安全服务器来限制从一个客户终端对于一个受保护资源的访问。
图2,说明一个更为复杂的计算机系统网络,该网络包括了通常见于大型多用户系统中的特点。
图3,说明了在用户和以这一特定用户所标识的公共密钥证书之间的相互关系。
图4,说明了在一个安全服务器和一个客户站之间,以公共密钥和专用密钥进行的典型的用户登录和鉴别步骤。
图5,说明了利用包含在一个公共密钥证书中的属性来控制对一个受保护资源的访问。
图6,说明了利用代理判断中的输入和输出属性来控制访问受保护资源。
优选实施例的详细描述
现在将描述本发明目前的优选实施例,首先涉及一个客户站从一个像企业内联网这样的内部网络访问受保护资源。其后,将就一个客户站从一个像互联网——或是其它这类公共网络——这样的外部网络访问受保护资源的的情况对本发明加以描述。这两个目前的优选实施例将用于展示和讲授,表明本发明不仅在两种特定的应用中,而且从其最广泛的意义上讲,对于各种各样其它环境也是适用的。
安全服务器方法
在图1中以非常简化的方式表示了安全服务器方法。参考编号100表示一个客户站。一个客户站100可理解为是运行于一个通用或者专用的计算机系统上的一个程序。作为一个程序,一个客户站100可代表一个用户,他希望完成一个关系到使用受保护资源的工作。
在图1中,参考编号101表示一个安全服务器,而参考编号102表示一个受保护资源。如图1所示,在客户站100和受保护资源102之间没有直接的通信链接。安全服务器101可理解为是运行于一个通用或者专用的计算机系统上的程序。类似地,受保护资源102可理解为是一个程序。
一个希望访问受保护资源102的用户必须从其客户站100经由安全服务器101来这样做。经授权访问受保护资源102的用户由安全服务器101来加以鉴别并从而被允许使用受保护资源102。安全服务器101防止未经授权的用户访问受保护资源102。
图2表示一个更为复杂的计算机网络,这也是在目前流行环境中更容易看到的计算机网络。一个客户站100有两条通道,客户站通过这两条通道到达受保护资源102。
最直接的通路涉及经由一个通信路由器112建立一个到安全服务器101的连接。在用户由安全服务器101加以恰当的鉴别后,即经由代理而被准许访问受保护资源102。通信路由器112的唯一作用就是便利客户站100和安全服务器101之间的连接。
另一通路涉及经由一个通信路由器111建立一个到防火墙113的连接。这个防火墙113支持通信链接,并以与安全服务器101同样的方式提供到企业内联网114的接入。这是当企业资源可从外部、也可从内部访问时,典型的现代作法。企业内联网114物理地连接到安全服务器101。如果用户成功地得到准许,访问企业内联网114,则安全服务器101防止对于受保护资源的非法侵入。如果用户为真并经过恰当鉴别,则经由代理,被准许访问受保护资源102。显然,图2并没有说明在现在的计算环境中所有可能的潜在网络组合。为便于参照,“客户站”一辞将不仅包括用户正在使用的计算机系统,而且包括插入在客户站100和安全服务器101之间的所有系统(例如通信路由器、防火墙、企业内联网)。
典型的情况是客户站100运行其中的这个计算机系统、安全服务器102以及受保护资源103全都运行在物理上不同的、而且间隔很远的计算机系统。虽然这种布置是典型的,但即使前述的这三个程序没有运行在物理上不同的计算机系统中,或者是没有运行在间隔很远的计算机系统中,这一安全服务器方法的概念同样适用。不过将会看到,本说明的大体内容是关于刚刚所描述的典型布置的。
对于计算机系统用以通信的方式,这里在高层次上加以处理,为简明起见而略去了细节。关于这种通信的更详细资料可参见“数据和计算机通信(Data and Computer Communications)”或者“局部网络(Local Networks)”,两份材料的作者均为William Stallings,两份材料的全部内容均由于其有用的背景资料而引以为参考资料。
实际上,程序(包括客户程序、安全服务器程序和应用程序服务器程序)是作为软件提供的,这个软件载于任何一种媒体上。而且软件实际上是以程序设计语言所写的语句或者是以这些语句为基础。这种程序设计语言语句在由一台计算机运行时,使得计算机根据语句中特定的内容而动作,由此使定义的程序以一种预定的方式运行。此外,软件可用若干种形式提供,包括——但是不限于——初始源代码,汇编代码,目标代码,机器语言,前述形式的压缩或者加密版本,以及任何一种或是全部的等值形式。
通晓计算机的人会理解,“媒体”或者“计算机可读媒体”——如这里所说的那样——可包括软盘,磁带,压缩磁盘,集成电路,盒式磁带,经由通信线路所作的远距离传输,或任何其它可由计算机使用的类似媒体。例如,为了提供带有一个程序的软件,供应者会提供一张软盘或者会以某种形式,经由卫星传输、经由直接的电话链接或经由互联网来传送这个软件。
虽然这样的软件指令可以是“写在”一张软盘上,“存储在”一个集成电路中,“传送于”一条通信线路上,但是可以理解,为了本处讨论的目的,这个计算机可用媒体将被称为“带有”这个软件。因此,“带有”一辞被用来包括了以上的和所有的等效方法,软件可以以这些方法与计算机可用媒体结合在一起。
因此,为了简单起见,此后用“程序产品”一辞来表示如上所说明的、带有任何一种形式的软件的一个计算机可用媒体。
代理
再参看图1,安全服务器101的输入地址与客户站100连接在一起。安全服务器101的输出地址与受保护资源102连接在一起。一个代理判定——它驻留在安全服务器101中——在安全服务器101的一个输出地址和安全服务器101的一个输入地址之间确定了一个严格的对应关系。这个代理判定中所含的信息决定输入地址通信数据如何路由到指定的输出地址。此外,嵌入在代理判定中的这一信息确保包含在代理规定中的所有成分都被考虑到。
代理判定可以有许多成分,它们涉及到秘密、安全和访问控制,例如:
1.符号代理名。
2.有关的协议,例如文件传送协议(FTP)或者超文本传送协议(HTTP)。
3.一个输入地址(例如传输控制协议/网际协议TCP/IP)过滤器,这个过滤器确定在连接中包含或排除的地址。
4.鉴别,指的是在客户和服务器之间的所有用户和/或数据传输业务要接受鉴别。
5.加密,指的是在客户和服务器之间所有的业务在信息源加密和在目的地解密。
6.压缩,指的是在客户和服务器之间所有的业务在信息源压缩和在目的地复原(解压缩)。
7.输入地址(服务器的客户站一侧的地址)。
8.输出地址(安全服务器的“受保护”一侧的地址,连接到受保护资源)
9.受保护资源地址(对于任何代理可有若干个)。
证书
表1列出一个X.509 Version 3公共密钥证书的成分。 证书版本号 证书系列号 发放人特异名属性 在日期/时间之前/之后有效 主体的特异名属性 主体的公共密钥位段 附加属性 发放人数字式签名位段
表1-X.509证书
包括证书发放人和主体(所有人)的特异名、有效数据和附加属性的属性类型、值的断言可由一个安全服务器用来控制路由选择通路,或是为单独的安全策略辖域制定规则。例如,一个假设的企业可有三个部门,每个部门都有其自己的受保护服务器:管理,生产和技术。对这些受保护服务器的访问要通过一个安全服务器。管理部门的职员只能访问管理和生产服务器以完成他们的管理工作。技术部门的职员则只能访问生产和技术服务器。生产部门的职员只能访问生产服务器。
标准的X.509“机构单位名”属性可用于表明在我们的假设企业中,一个雇员在何处工作。例如,在技术部门工作的约翰·多就有这样的特异名:普通名=约翰·多,机构单位名=技术,团体名=假设企业。在会计室工作的简·多就有这样的特异名:普通名=简·多,机构单位名=管理,团体名=假设企业。
在我们的假设企业中,这个安全服务器是分别地连接到每个受保护服务器的。安全服务器鉴别所有来自雇员的连接请求,而不论其起始点。安全服务器利用雇员的机构单位名属性值来决定这个用户的访问权限。例如,只有有着“技术”机构单位名属性值的雇员可得到允许,连接到技术服务器。
证书和属性的描述见于W.Ford和M.S.Baum所著的“安全电子商务(Secure Electronic Commerce)”。在证书中包含的属性包括了(但是不限于)普通名、地方名、州或省名、机构名、机构单位名、国家名和街道地址。
鉴别程序
图4说明了一个用于PKI系统的一个鉴别程序,简化到了高层次步骤。这是一个通用化的程序,用于向用户表明在鉴别程序中的何处会用到属性过滤器。
在第一步200,客户站100请求连接到安全服务器101的被公布的代理地址。为简明起见,从图4中略去了通信路由器111和112、防火墙113以及企业内联网114。如前所述,对安全服务器101的访问请求可通过多条通路进行。
在步骤201,安全服务器101接受来自客户站100的连接请求。在接受了连接请求之后,在步骤202,安全服务器向客户站100发送一个请求,要求登录标识和口令。
在步骤203,收到来自安全服务器101的登录标识请求,就要求客户站100确定是否用户为专用密钥的真正持有者。客户站100必须确认用户拥有专用密钥并且拥有正确使用这个专用密钥的必要知识。如果用户可以正确使用这个专用密钥,客户站100就通知安全服务器101,这个用户拥有一个专用密钥并掌握正确使用这个专用密钥的知识。
在步骤204,安全服务器101对照这个用户的公共密钥证书来鉴别该用户的登录信息。公共密钥证书存储在安全服务器101或是一个远程证书存储库中。如果公共密钥证书存储在一个远程证书存储库中,安全服务器101在进行鉴别程序之前先检索这个公共密钥证书。
在步骤205,安全服务器101确定是否应当使这个用户合法化。在步骤206,如果这个用户被合法化,则对于受保护资源的访问即得到准许。否则在步骤207,因为用户由于一个鉴别错误而未被合法化,来自客户站100的连接即被中断。
属性过滤器
在本发明中,在代理的判定中增加了被称为属性过滤器的另一个成分。属性过滤器的目的是基于包含在用户的公共密钥证书中的一个特定属性值来控制通过安全服务器100所作的访问。安全服务器100所使用的代理判定包括一组上面所述的成分,其中之一就是这个属性过滤器判定。属性过滤器判定包括一个过滤器名和一个“访问表达式”。属性过滤器名可以被硬编码进代理判定中,但这要以牺牲灵活性为代价。访问表达式是一个布尔表达式(写入这种表达式的一种表达法是“逆彼兰符号表示法(Reverse polish notation)”,如在互联网请求备注1960(Internet RFC 1960)中所定义的。其它符号表示法也是可能的)。
在连接请求时,如果在访问表达式中的布尔表达式取值为真,则准许通过安全服务器101,对于受保护资源102进行访问。对于一个属性过滤器,一个简单的布尔表达式的例子是“CN=凯莉”。在这一例子中,如果试图建立连接的申请者的普通名(CN)是“凯莉”,则准许访问受保护资源102。属性过滤器操作的访问表达式运算不限于求真取值,在访问表达式取值为真的情况下,对于受保护资源102的访问也可能被拒绝。
图5说明在对包含于一个公共密钥证书中的属性取值时,安全服务器101所要执行的高层步骤。在步骤301,当安全服务器101开始鉴别一个登录请求(参见图4的步骤204)时,它从存储器中检索这个公共密钥证书。在步骤302,安全服务器101确定这个公共密钥是存储于本地还是存储于一个远程存储单元。如果是远程存储,则执行步骤303,从远程存储器检索这个证书。
在步骤304,一旦检索到这个公共密钥证书,安全服务器101就对客户站100所请求的这个代理判定取值。对于所请求的这一特定的输入/输出寻址,安全服务器101必须确定所使用的代理判定所要求的是哪一个属性过滤器。如前所述,代理判定中包含了一个指针,指向对于一个特定的代理判定来说合适的属性过滤器。
在步骤305,在确定了由这个代理判定所指定的属性过滤器后,安全服务器101使用这个属性过滤器中的访问表达式来对于这个特定的公共密钥证书属性取值,这些属性列于这个属性过滤器中。访问表达式可以用几种不同的表达法写入,并不限于仅仅使用互联网请求备注1960(Internet RFC 1960)表达法。
在步骤306,如果访问表达式取值为真,则在步骤308中安全服务器101准许访问受保护资源102。否则,如果这个访问表达式取值为伪,则在步骤307中安全服务器101拒绝对于受保护资源102的访问。如前所述,当基于这个属性过滤器的初始设置,步骤306取值为真时,访问也可能被拒绝。
输入/输出地址
属性过滤器的使用的另一个实施例是与代理判定的输入地址成分或者输出地址成分相结合。这种结合可用于进一步限制对于一个受保护资源的访问。如果属性过滤器与输入地址(安全服务器101的客户一侧)相结合,并且访问表达式取值为真,则通过安全服务器对于处在输出地址(安全服务器101的受保护一侧)的任何受保护资源102的访问将被准许或拒绝。将属性过滤器与输出地址相结合则限制对于受保护资源102的访问。如果访问表达式取值为真,则通过安全服务器101,对于处在代理的输出一侧的某个特定的受保护服务器地址的这个特定的受保护资源102的访问将被准许或者拒绝。
图6上有为了实行这一访问控制所要进行的高层步骤。在步骤401,已检索了公共密钥证书后,对于这一特定的输入/输出寻址,安全服务器101确定所使用的代理判定所要求的是哪一个属性过滤器。
在步骤402,安全服务器101确定是否这个属性过滤器与输入地址有任何联系。在步骤403,如果安全服务器101发现有输入地址联系,则检查属性过滤器以确定是否它有一个访问表达式,这个表达式要求对于公共密钥证书属性进行取值。在步骤404,对这个访问表达式取值。在步骤406,因为这个访问表达式取值为真,所以安全服务器101准许对任何受保护资源102进行访问。否则即在步骤405,因为访问表达式取值为伪,安全服务器101拒绝访问。安全服务器101终止连接请求。
在步骤407,如果安全服务器101确定是否这个属性服务器与输出地址有联系,则在其后完成类似程序。访问被准许,但在准许访问时,只准许访问处在这一输出地址的一个特定的受保护资源102。
在步骤412,如果属性过滤器既没有与输入地址、也没有与输出地址的联系,则属性过滤器的处理如前面所描述的进行。
对于其它实施例的归纳
虽然以要执行或者完成的一定步骤和协议来描述了本发明,但要理解,本发明在于一个计算机系统,这个系统按照上面所概述的步骤运行,本发明还在于一个带有软件的程序产品,用于使一个计算机系统能够按照上面所概述的步骤运行。
在附图中,各步骤的特定顺序并非总是严格的,而且某些步骤可以与其它步骤平行地、或以某种不同的顺序来完成。
虽然详细描述了某些实施例,但不可解释为本发明局限于这些实施例,本发明仅受限于相应的后附权利要求书以及任何可将公共密钥证书属性用以获取利益的场合。参考资料1.Secure Electronic Commerce,W.Ford and M.S.Baum,Prentice Hall PTR,19972.Internet RFC 1960“A String Representation of LDAP Search Filters.”