计算机系统的有效的和安全的认证的制作方法

文档序号:7616681阅读:92来源:国知局
专利名称:计算机系统的有效的和安全的认证的制作方法
技术领域
本发明涉及可扩展的认证和凭证提供。具体地说,本发明涉及认证机制的自动协商和可用来提供附加凭证的有限用途(limited-use)凭证。
2.背景和相关技术计算机系统和相关技术影响了社会的很多方面。的确,计算机系统处理信息的能力已经转变了我们生活和工作的方式。现在计算机系统普遍地履行了许多在计算机系统出现之前由人工实施的任务(如,文字处理、调度和数据库管理)。最近,计算机系统已被相互耦合形成计算机网络,通过它计算机系统可电子化通信从而共享数据。结果,许多在计算机系统进行的任务(如,收发电子邮件和网络浏览),包括了经由计算机网络(例如,因特网)与一个或多个其它计算机系统的电子化通信。
为了使一个计算机系统能与其它计算机系统电子化通信,计算机系统,以及相应的计算机系统用户,可能需要与其它计算机系统(或授权访问其它计算机系统的计算机系统)进行认证(如,证明其身份)。视环境而定,可使用例如,克贝罗斯(Kerberos)、安全套接层(“SSL”),NT局域网管理程序(“NTLM”),和/或摘要认证(Digest authentication)许多种不同计算机认证机制中的任何一种,。
一些认证机制包括交互式登录。例如,在一个计算机系统可在因特网上电子化通信前,该计算机系统的用户常被要求与可授权访问互联网的因特网服务供应商(下文中用“ISP”表示)进行接入。与ISP的注册通常包括将用户凭证(如,用户名和口令)从计算机系统提交到ISP。一旦接收到凭证后,ISP将凭证与凭证数据库比较,如果凭证是正确的,计算机系统被授权与因特网通信。
不幸的是,总是有一些非授权用户获得授权用户的凭证并使用这些凭证扮演授权用户的风险。由于授权用户的凭证从根本上允许对特定系统上的所有的授权用户资源(如,文件、电子消息、个人和金融数据、等等)的完全访问,所以凭证中的任何内容可提供非授权用户复制和破坏授权用户的资源的能力。特别是,口令易遭受假想的攻击,例如,受到来自顺序地提交词典中每一个词作为口令(通常被成为“词典攻击”)的程序的攻击。
其它认证机制不包括交互式登录,这样就不存在可被获取的用户凭证。例如,网络服务器可使用SSL对网络客户机证明其身份。当网络客户机接通网络服务器上一个安全的网页(例如,以“https”开头的网页)时,网络服务器应答,自动地发送一个认证网络服务器的数字证书。网络客户机生成一个独一无二的会话密钥对与网络服务器的所有通信加密。网络客户机用网络服务器的公开密钥(如,在证书中指出)对会话加密,因此只有网络服务器可以阅读会话密钥。这样,不需要任何用户的操作就建立了安全会话。
尽管已经描述了交互式认证和非交互式认证机制的示例,应该理解交互式认证和非交互式认证的实现可在网络和计算机系统之间变化。例如,一个网络可被配置使用克贝罗斯认证,而另一个网络则被配置使用一些其它交互式认证机制。此外,特定的认证机制可具有不同的配置选择,导致认证机制不同地运作。例如,当建立安全会话时,一些SSL的实现允许选择不同的加密算法。
不幸的是,确定计算机系统或网络已经采用的认证机制和/或配置选择是困难或甚至是不可能的。因此,一个计算机系统可能试图使用其它计算机系统未采用的认证机制和/或配置选择与其它计算机系统进行认证。结果,认证会失败并阻止计算机系统的通信。
在分布式系统中试图使用未采用的认证机制认证的尝试的潜在可能性特别高。分布式系统常包括许多互联的计算机系统和网络,其中分布式系统的不同部分在不同实体的控制之下。这些不同的实体可能各自采用不同的认证机制,并可能不一定告知或公布所采用的认证机制的指示。因此,因为第一个部件不知道(可能无法确定)第二个部件所采用的认证机制,分布式计算机系统的第一个部件可能会被阻止与分布式系统的第二个部件认证。
其它认证问题可发生在无线环境中。例如,为使一个设备与混合的有线/无线网络进行无线认证,此设备可能被要求具有与所述网络相应的证书。然而,该网络可能被配置为只允许经认证的设备访问证书。因此,此设备可能会被要求开头经由有线连接连接到网络。要求有线连接来访问证书会加重用户的负担(如,用户可能需要查找网络分接口),并且在一些环境中可能是困难的(如,网络分接口可能处在限制的访问区域中)或甚至是不可能的(例如,一些设备不是为有线访问配置的)。因而,即使是授权的用户也可能被阻止无线地访问网络。
因此,自动协商的认证方法和更安全的凭证提供将是有益的。
发明的简述通过针对更有效和安全地认证的计算机系统的本发明原理,解决了现有技术存在的上述问题。在一些实施例中,客户机计算系统收到有限用途的凭证。在客户机计算系统和服务器计算系统相互之间建立安全的链路。客户机计算系统在已建立的安全链路上将有限用途的凭证提交到服务器计算系统。
服务器计算系统在已建立的安全链路上接收来自客户机计算系统的有限用途凭证。服务器计算系统基于接收到的限制性用户凭证,为客户机计算系统提供一个附加的凭证。服务器计算系统在已建立的安全链路上将附加凭证发送到客户机计算系统。客户机计算系统从服务器计算系统接收附加的凭证。随后客户机服务器系统可随意地使用收到的附加凭证与服务器计算系统进行认证。
在其它实施例中,服务器发送至少包括服务器计算系统采用的认证机制的第一个请求。客户机接收此第一个请求,并发送至少包括客户机计算系统采用的认证机制的第一个应答。客户机和服务器确定一个可被用于加密客户机计算系统和服务器计算系统之间传递的内容的隧道密钥(tunnel key)。
服务器发送包括加密的认证内容(用隧道密钥加密)的第二个请求,指出相互采用的认证机制。客户机接收第二个请求,并用隧道密钥对加密的认证内容进行解密以揭示未加密的认证内容。未加密的认证内容指出相互采用的认证机制。客户机发送第二个应答,包括应答未加密的认证内容的加密的应答数据。加密的应答数据包含按照相互采用的认证机制与服务器进行认证的信息。服务器接收第二个应答,它包括加密的、包含按照相互采用的认证机制与服务器进行认证的信息的应答数据。
本发明的其它特点和优点将在下面的描述中阐明,从描述中部分将是显而易见的,或需通过本发明的实施才能了解。通过在所附的权利要求中特别指出的手段和组合,可实现和获得本发明的特点和优点。本发明的这些或其它的特点将通过下面的描述和所附的权利要求变得更清楚,或通过下文阐述的本发明的实施得以了解。
附图的简述为了描述可获取本发明上述的和其它优点和特点的方式,将通过对附图中例示的本发明的特定实施例的说明,更具体描述以上简述的本发明。应理解这些附图仅描述了本发明的典型实施例,而不应因此被认为限制其范围,将通过使用附图更具体和详细地描述和解释本发明,其中

图1说明了根据本发明的、有助于使计算机系统更有效和安全地进行认证的计算机体系结构示例。
图2说明了一个根据本发明的提供凭证的示例方法的流程图。
图3说明了一个自动协商认证方法的消息交换过程。
图4说明了一个实现本发明原理的适合的操作环境。
较佳实施例的详细描述本发明的原理涉及为了更有效和安全地进行计算机系统认证的系统,方法,和计算机程序产品。本发明范围内的实施例包括,用于承载或具有其上存储着计算机可执行的指令或数据结构的计算机可读介质。所述计算机可读介质可以是任何可被通用的或专用的计算机系统存取的可用介质。作为例子,但不作为限制,所述计算机可读介质可包括物理存储介质,诸如RAM,ROM,EPROM,CD-ROM或其它光盘存储器,磁盘存储器或其它磁存储设备,或任何其它可用于承载或保存所需的以计算机可执行指令,计算机可读指令,或数据结构等形式存在的程序代码方法,并可被通用或专用计算机系统访问的介质。
在本描述和下列权利要求中,“网络”被定义为能使计算机系统和/或模块之间进行电子数据传输的一个或多个数据链路。当信息通过网络或其它通信连接(或是有线的,无线的,或是有线和无线的组合)被传输或提供到计算机系统时,该连接完全可被看作计算机可读的介质。因而,任何这种连接完全可被定义为计算机可读介质。上述连接的组合也应被包括在计算机可读介质的范围内。计算机可执行指令包括例如,使通用计算机系统或专用计算机系统能实现某种功能或功能群的指令和数据。计算机可执行指令可以是例如,二进制的,中间格式的指令,诸如汇编语言,或甚至是源代码等。
在本描述和下列权利要求中,“计算机系统”被定义为一个或多个软件模块,一个或多个硬件模块,或它们的组合,它们共同工作实现对电子数据的操作。例如,计算机系统的定义包括,个人电脑的硬件部件,以及诸如个人电脑的操作系统等软件模块。模块的物理布局是不重要的。计算机系统可包括通过网络耦合的一台或多台计算机。同样地,计算机系统可包括单独的物理设备(诸如移动电话或个人数字助理“PDA”),其中内部模块(诸如存储器和处理器)共同工作以实现对电子数据的操作。
术语“模块”或“部件”用在这里可以指在计算机系统中执行的软件目标或例行程序。这里描述的不同的部件,模块,引擎,和服务器可被作为计算机系统中(例如,作为独立的线程)执行的目标或进程来实现。尽管在这里描述的系统和方法中,最好在软件中实现,但在软件和硬件中,或硬件中实现也是可行的和可以考虑的。
本领域的熟练技术人员可通过许多类型的计算机系统配置,包括,个人计算机,便携式计算机,掌上设备,多处理器系统,基于微处理器或可编程的消费电子产品,网络PC机,微型计算机,大型计算机,移动电话,PDA,寻呼机,以及相关设备,将本发明实施于网络计算机环境中。本发明也可实施于分布式系统环境,其中通过网络链路(或通过有线数据链路,无线数据链路,或通过有线和无线数据链路的组合)的本地和远程计算机系统共同完成任务。在分布式系统环境中,程序模块可位于或本地或远程记忆存储设备中。
图1说明了根据本发明的有助于更有效和安全地进行计算机系统认证的示例计算机体系结构100。如计算机体系结构100中所述,客户机计算系统101包括密钥对103。密钥对103包括公开密钥104和对应的私有密钥106,例如,一组Diffie-Hellman密钥对。服务器计算系统111包括凭证提供模块112和密钥对113。凭证提供模块112被配置为接收第一种类型的凭证,例如,有限用途的凭证,和基于第一种类型的凭证,提供第二种类型的凭证,例如,一个更永久的凭证。与密钥对103类似,密钥对113包括公开密钥114和对应的私有密钥116,例如,一组Diffie-Hellman密钥对。
图2说明了根据本发明用于提供凭证的一种示例方法200的流程图。将根据计算机体系结构100中的计算机系统和模块描述方法200。方法200包括一个接收有限用途凭证的动作(动作201)。例如,客户机计算系统101可接收有限用途凭证102。
有限用途凭证的使用可被限制在任何数量的方法中。例如,有限用途的凭证可对特定使用次数,特定时间段,或直到特定事件的发生有效。基于所采用的安全策略,有限用途凭证可被限定为任何有效使用的次数(如,三次使用)。对认证有效只有一次的有限用途凭证可称为“单次使用凭证”。在特定次数的使用后,此有限用途凭证不再作为有效的凭证被接受。
基于所采用的安全策略,有限用途凭证可被限定于任何特定时间段使用(如,五分钟)。在特定的时间段过去后,此有限用途凭证不再作为有效的凭证被接受。基于所采用的安全策略,任何特定事件可限制有限用途凭证的使用。例如,在提供更永久的凭证后,有限用途凭证可被驳回。
有限用途凭证可经由诸如电话通信或邮件等通信方法,被非常规地(out-of-band)接收。作为代替,也可使用可信的电脑化通信方法接受有限用途凭证(如,将在电子邮件消息中加密有限用途凭证)。
方法200包括客户机方建立安全链路(动作202)和服务器方建立安全链路(动作205)的动作。例如,客户机计算系统101和服务器计算系统111可建立安全链路122。建立安全链路可包括客户机计算系统101和服务器计算系统111交换公开密钥以建立会话密钥。例如,公开密钥104和公开密钥114可被交换,建立会话密钥131。在一些实施例中,会话密钥的建立可足以进行随后的认证,例如,当客户机计算系统101和服务器计算系统111用静态Diffie-Hellman密钥配置。
作为代替,可获得其它密钥提供其它证明。例如,在应答来自服务器计算系统的查问时,客户机计算系统可使用从Diffie-Hellman会话密钥和口令获得的加密密钥加密一个口令,并将加密密钥发送到服务器计算系统。因此,当服务器计算系统接收到这个加密的口令后,服务器计算系统可将口令解密,并将口令与凭证数据库比较以确定口令是否有效。
类似地,客户机计算系统可使用从共享密文和Diffie-Hellman会话密钥获得的加密密钥加密一个信任锚(trust anchor),并将该信任锚传送到服务器计算系统。因此,当服务器计算系统接收到这个加密的信任锚后,服务器计算系统可对该信任锚进行解密和验证。信任锚包括认证相关的数据,例如,证书、(如,X.509证书)、安全令牌(如,WS安全令牌)、证书的散列(hash)(如,SHA-1)和统一资源标识符(“URI”)(如,统一资源定位器(“URL”)),或安全令牌的散列和URI。
同样地,客户机计算系统可发送一个用包括用先前建立的信任锚的摘要签名或包括先前建立的信任锚的摘要的新信任锚。因而,服务器计算系统可基于先前建立的信任锚的签名或散列验证新信任锚。
回到图2,方法200包括在已建立的安全链路上提交有限用途凭证的动作(动作203)。例如,客户机计算系统101可在安全链路122上将有限用途凭证102提交到服务器计算系统111。如上所述,从Diffie-Hellman会话密钥和口令中获得的加密密钥可用来加密口令。这样,有限用途凭证102就可能是使用从会话密钥131和有限用途凭证102中获得的加密密钥进行加密。
方法200包括在已建立的安全链路上接收有限用途凭证的动作(动作206)。例如,服务器计算系统111可在安全链路122上从客户机计算系统101接收有限用途凭证102。同样,作为对先前请求的应答,服务器计算系统111也可从客户机计算系统101接收加密密钥(如,用来加密有限用途凭证102的)。
方法200包括基于接收到的有限用途凭证,为客户机提供附加凭证的动作(动作207)。例如,凭证提供模块121可基于有限用途凭证102为客户机计算系统101提供一个更永久的凭证(或多个凭证)。条件适当时,服务器计算系统111可使用先前接收到的加密密钥对有限用途凭证102进行解密。
凭证提供模块112可将有限用途凭证102与凭证数据库进行比较,以确定有限用途凭证102是否有效。当有限用途凭证102无效时,服务器计算系统111可终止有限用途凭证102的进程。取决于安全策略,服务器计算系统111可通报或不通报客户机计算系统101有限用途凭证102的进程被终止。另一方面,当有限用途凭证有效时,客户机计算系统101身份的可靠性增加了。因而,服务器计算系统可为客户机计算系统101生成一个更永久的凭证(或多个凭证)。例如,凭证提供模块112可生成附加凭证117。
附加凭证117可与有限用途凭证是相同类型的凭证。例如,在应答接收到合适的单次使用口令时,服务器计算系统111可发布更永久的口令。作为代替,附加的凭证117可以是不同类型的凭证。例如,在应答接收到合适的单次使用口令时,服务器计算系统111可发布一个证书,一个令牌(如,WS-安全令牌或Kerberos令牌),一个证书的散列和URI,或一个令牌的散列和URI。
其它凭证支持的数据,例如,证书链,证书撤销表,在线证书状态协议应答,WS-安全令牌,和与交换相关的元数据,也可被识别。被识别的元数据可包括可扩展标记语言(eXtensible Mark-up Language)(“XML”)指令。
方法200包括一个发送附加凭证的动作(动作208)。例如,服务器计算系统111可向客户机计算系统101发送附加凭证117。方法200包括接收附加凭证的动作(动作204)。例如,客户机计算系统101可从服务器计算系统111接收附加凭证117。
因而,本发明的实施例可有助于实现对网络的访问,否则访问可能会被阻止。例如,无线计算机系统可利用有限用途(或单次使用)凭证帮助实现对用于无线访问网络的证书的访问。并且,有限用途凭证可减少计算机系统对词典攻击的脆弱性。例如,在一个恶意用户最终破解有限用途凭证时,有限用途凭证可能不再有效。特别地,既然单次使用的凭证在这一次使用之后变为无效,单次使用的凭证可显著减少词典攻击的脆弱性。
图3说明了用于协商认证机制的消息交换300。应该理解消息交换300可在认证期间其它消息交换之前或之后发生。例如,客户机计算系统和服务器计算系统可交换一个或多个可扩展认证协议(Extensible Authentication Protocol)(“EAP”)的请求/应答对,后者对客户机计算系统和服务器计算系统相互之间进行初步的识别。
消息交换300中所述的请求和应答可以是认证协议的消息。每条消息可包括认证协议的版本号(如,代表受支持的净荷载的类型),消息体,和部分消息体的散列消息认证代码(Hashed Message Authentication Code)(“HMAC”)。HMAC可使用任何加密的散列功能生成,例如,MD5,SHA-1,等。认证协议的消息可被嵌入EAP消息中。
服务器方360可发送服务器请求301到客户机方305。服务器请求301包括前次的数据包ID 302,不重性(nonce)303,和认证方法304。前次的数据包ID302可指示对应于在客户机方350和服务器方360之间被交换的(如,在前次的请求/应答交换中的数据包的数据包ID)最后数据包的数据包ID。不重性(nonce)303可以是服务器方360生成的随机数据。认证方法305可包括在服务器360方支持的推荐的认证机制。服务器方可支持任何数量的不同的认证机制(如,如前所述的查问和应答、MS-CHAP v2、用MD5的认证、用属性令牌卡(Generic Token Card)的认证、用Kerberos的认证、用X.509的认证和用WS-安全认证)。
在应答服务器请求301时,客户机方350可发送客户机应答306到服务器方306。客户机应答306可包括前次的数据包ID307、不重性(nonce)308、安全协议(security association(s))309、公开密钥311和认证方法312。前次的数据包ID307可指示对应服务器请求301的数据包ID。不重性(nonce)308可以是在客户机方360生成的随机数据。安全协议309可包括在客户机方350支持的推荐的安全协议。表1指出了一些可被支持的安全协议。
表1公开密钥311可包括一个或多个公开密钥。公开密钥311可包括一个对每个支持的安全协议来说具有适当长度(如,1024位,2048位等)的密钥。公开密钥311可以是一个或多个Diffie-Hellman公开密钥,包括,例如公开密钥104。认证方法312可包括在客户机方350受支持的认证机制,并选自认证方法304中包括的认证机制。
在应答客户机应答306时,服务器方360可发送服务器请求313。服务器请求313可包括前次的数据包ID314,安全协议316,公开密钥317,和其它基于该认证方法的认证数据。前次的数据包ID314可指示对应于客户机应答306的数据包ID。安全协议316可指示在服务器方360支持的安全协议,并选自安全协议309包括的认证方法。公开密钥317可以是一个对安全协议316中所指示的安全协议来说具有适当长度的密钥。公开密钥317可以是一个Diffie-Hellman公开密钥,例如公开密钥114。
因而,基于来自公开密钥311和公开密钥317的、长度适当的密钥,可在客户机方350和服务器方360之间建立一个安全链路。
通常,在客户机方350和服务器方360之间发送的加密的数据是使用隧道密钥加密的。隧道密钥可通过将Diffie-Hellman共享的机密(如,会话密钥131)与客户机和服务器的不重性(nonce)重组经散列后获得。例如,可按照以下公式获得隧道密钥隧道密钥=HASH[DHss+Nc+Ns]隧道密钥是一个对称的密钥。这就是说隧道密钥可用来对使用隧道密钥加密的加密数据进行解密。因而,客户机方350可用隧道密钥对将要发送到服务器方360的数据加密,并可用隧道密钥对从服务器方360接收的内容进行解密。类似地,服务器方360可用隧道密钥对将要发送到客户机方350的数据加密,并可用隧道密钥对从客户机方350接收的内容进行解密。
当客户机方350和服务器方360进行协商时,服务器请求313可包括协商加密的内容318。协商加密的内容318可包括查问319,认证方法321,和信任锚322。查问319可以是先前数据包ID(如,前次的数据包ID314)使用共享密码(如,会话密钥131)的一个HMAC。例如,查问319可按照以下公式设置查问=HMACss[PPid]服务器方360可对查问维持适当的应答。例如,一个适当的应答可以是查问使用共享密码的HMAC。一个适当的应答可按照以下公式设置应答s=HMACss[查问]认证方法321可指出客户机方350和服务器方360相互支持的认证方法。信任锚322可以是如前所述的信任锚。
当客户机方350与服务器方再认证时(如,协商后若干时间的认证),服务器请求313可转而包括再认证加密的328。加密的再认证内容可包括认证签名329和身份证书331。认证签名329可包括签名ID类型(如,SHA-1(密钥ID长度=20字节)或SHA256(密钥ID长度=32字节)),签名密钥ID,和签名类型(如,HMAC,RSA PKCS#1,RSA PSS,或DSA)。身份证书331可包括,例如,X.509证书、Kerberos令牌、WS-安全令牌、原始公开密钥(RawPublic Key)、X.509证书的散列和URL、WS-安全令牌的散列和URL、原始公开密钥(Raw Public Key)的散列和URL。
应该理解,服务器请求313中可交替地包括其它类型的加密的认证内容(代替协商加密的内容318或再认证加密的内容328)。例如,当使用存在的用户名和口令引导一台客户机时,服务器请求313可能已经加密了包括认证签名、身份证书和认证方法等内容。
当用X.509证书引导一台新的客户机时,服务器请求313可能已经加密了包括查问,信任锚,认证方法,和注册请求等内容。注册请求可包括请求类型(如,Kerberos TGT请求、Kerberos AS请求、PCKS#10请求、或CMC请求)、密钥类型(如,RSA签名,DSA,ECDSA,或DH+ECDH)、密钥子类型(如,PSA签名密钥或DH+ECDH密钥)和密钥大小(如,1024位)。当用X.509证书认证时,请求313可能已经加密了包括认证签名、认可的证书、和认证方法等内容。
当用Kerberos权证(ticket)引导一台新的客户机时,服务器请求313可能已经加密了包括查问和注册请求等内容。
应答服务器请求313时,客户机方350可发送客户机应答332。客户机应答332可包括前次的数据包ID333和应答包含在服务器请求313中的加密内容的数据。前次的数据包ID333可指示对应服务器请求3 13的数据包ID。当客户机方350和服务器方360进行协商时,客户机应答332可包括加密的应答334(用隧道密钥加密)。加密的应答334可以是查问319的应答。
客户机方350可对查问319生成适当的应答。例如,适当的应答可以是查问119使用共享密码的HMAC。一个适当的应答可按照以下公式设置应答c=HMACss[查问]当客户机方350与服务器方360再认证时,客户机应答332可包括认证签名336。
应该理解应答加密认证内容(代替加密的应答334或认证签名336)的其它类型的数据,可交替地包括在客户机应答332中。例如,当使用存在的用户名和口令引导一台客户机时,客户机应答332可能已经加密了应答数据,包括查问、终端用户身份的净荷载和域身份的净荷载。终端用户身份的净荷载和域身份的净荷载可包括一个称名类型(如,完全资格的DNS名称、e-mail地址、Ipv4地址、Ipv6地址、DER编码的X.500识别名称或区域名称)。
当用X.509证书引导新客户机时,客户机应答332可能已经加密了包括应答和证书请求等应答数据。当用X.509证书认证时,客户机应答332可能已经加密了包括认证签名和认可的证书等应答数据。当用Kerberos权证引导新客户机时,客户机应答332可能已经加密了包括应答和证书请求的应答数据。
本发明的实施例有助于从许多不同的认证机制中实现协商性的认证机制。客户机计算系统和服务器计算系统可识别相互支持的认证机制,并将识别的机制用于认证。自动化的协商将用户从必须了解可能被网络采用的认证机制中解放出来。因而,可更有效地进行认证。
图4和以下论述旨在对可实现本发明的合适的计算机环境作简要、概括的描述。尽管未被要求,本发明将在计算机可执行指令的一般环境中描述,例如正在被计算机系统执行的程序模块。通常,程序模块包括例行程序,程序,对象,组件,数据结构,以及类似模块,它们实施特定任务或实现特定抽象数据类型。计算机可执行指令,相关的数据结构,和程序模块代表程序代码方法的示例,用来执行这里揭示的方法的动作。
如图4所示,一个实现本发明的示例系统,包括以计算机系统420为形式的通用计算机设备,包括处理单元421,系统存储器422,和系统总线423,后者将包括系统存储器的各种系统部件耦合到处理单元421。处理单元421可执行用来实现计算机系统420的特点(包括本发明的特点)而设计的计算机可执行指令。系统总线423可任选自多种类型的总线结构,包括存储总线或存储控制器、外围设备总线和使用多种总线体系结构中的一种局部总线。系统存储器包括只读存储器(“ROM”)424和随机存取存储器(“RAM”)425。基本输入/输出系统(“BIOS”)426,包含在诸如启动时帮助在计算机系统420的元件之间传递信息的基本例行程序,可储存在ROM 424中。
计算机系统420也可包括用来从硬磁盘439读出和写入的硬磁盘驱动器427,用来从可移动磁盘429读出和写入的磁盘驱动器428,和用来从可移动光盘,例如,CD-ROM或其它光介质431读出和写入的光盘驱动器430。硬磁盘驱动器427,磁盘驱动器428,和光盘驱动器430分别通过硬磁盘驱动器接口432,磁盘驱动器接口433和光驱动器接口434连接到系统总线423。这些驱动器和它们相关的计算机可读介质,提供了计算机可执行指令,数据结构,程序模块,和用于计算机系统420的其它数据的非易失的存储。尽管此处描述的示例环境采用了硬磁盘439,可移动磁盘429和可移动光盘431,也可使用其它类型用于存储数据的计算机可读介质,包括盒式磁带、闪存卡、数字多用光盘、伯努力磁带(Bernoulli cartridges)、RAMs、ROMs等。存储器132可以是所述类型的计算机可读介质的一部分。
程序代码方法包含可储存在硬盘439,磁盘429,光盘431,ROM 424或RAM425中的一个或多个程序模块,包括操作系统435,一个或多个应用程序436,其它程序模块437,和程序数据438。用户可通过键盘440、指示设备442、或其输入设备(未显示),例如,话筒、游戏操纵杆、游戏板、扫描仪等将命令和信息输入计算机系统420。这些和其它输入设备可通过耦合到系统总线423的输入/输出接口446连接到处理单元421。输入/输出接口446逻辑上代表任何多种可能的接口,例如,串行端口接口,PS/2接口,并行端口接口,通用串行总线(“USB”)接口,或电气和电子工程师协会(“IEEE”)1394接口(即防火线(Fire Wire),或甚至在逻辑上可代表不同接口的组合。
监视器447或其它显示设备也经由视频接口448被连接到系统总线423。监视器447可显示单色和/或彩色图形对象,包括计算机系统420生成的文本。其它外围设备(未显示),例如,扬声器,打印机,和扫描仪,也可被连接到计算机系统420。连接到计算机系统447的打印机可打印单色和/或彩色图形对象,包括计算机系统420生成的文本。
计算机系统420可连接到各种网络,例如,办公室或企业范围的计算机网络,家庭网络,内联网,和/或因特网。计算机系统420可通过这些网络与例如,远程计算机系统,远程应用,和/或远程数据库的外部资源交换数据。
计算机系统420包括网络接口453,通过它计算机系统420从外部资源接收数据和/或传输数据到外部资源。如图4所述,网络接口453有助于实现经由链路451与远程计算机系统483的数据交换。网络接口453逻辑上可代表一个或多个软件和/或硬件模块,例如,网络接口卡和对应的网络驱动器接口规范(“NDIS”)栈。链路451代表网络的一部分(如,以太网分段),远程计算机系统483代表网络的一个结点。
同样地,计算机系统420包括输入/输出接口446,通过它们计算机系统420从外部资源接收数据和/或传输数据到外部资源。输入/输出接口446被耦合到调制解调器454(如,标准调制解调器,电缆调制解调器,或数字用户线(“DSL”)调制解调器),通过它们计算机系统420从外部资源接收数据和/或传输数据到外部资源。如图4所述,输入/输出接口446和调制解调器454有助于实现经由链路452与远程计算机系统493的数据交换。链路452代表网络的一部分,远程计算机系统493代表网络的一个结点。
尽管图4代表了本发明一个合适的操作环境,但本发明的原理可被任何可实现本发明的原理的系统采用,如有必要可适当地修改。图4说明的环境仅是说明性的,决不代表大量的可实现本发明原理的环境中的哪怕是一小部分。
按照本发明,例如凭证提供模块112的模块,以及相关的程序数据,例如,有限用途凭证102,密钥对103和113,服务器请求301和313,和客户机应答306和332,可在与任何计算机系统420相关的计算机可读介质中存储和被访问。例如,部分这种模块和部分相关程序数据可包括在存储在系统存储器422中的操作系统435、应用程序436、程序模块437和/或程序数据438中。
当一个大容量存储设备,例如硬磁盘439被耦合到计算机系统420时,这种模块和相关程序数据也可存储在此大容量存储设备中。在网络化环境中,所述的涉及计算机系统420的程序模块,或其一部分,可存储在远程记忆存储设备中,例如,系统存储器和/或与远程计算机系统483和/或远程计算机系统493相关的大容量存储设备。这种模块的执行可在分布式环境中实施。
在不背离精神或本质特征的情况下,本发明可以其它特定形式中实施。所述实施例在任何方面将仅是说明性的,而非限制性的。所以本发明的范围由所附的权利要求,而不是以上的描述给出。所有等价于权利要求的含义和范围内的改变,都将被归入权利要求的范围内。
权利要求
1.在客户机计算系统中,一种接收可被用作与服务器计算系统认证的凭证方法,其特征在于,所述方法包括接收有限用途凭证的动作;在客户机计算系统和服务器计算系统之间建立安全链路的动作;在已建立的安全链路上提交有限用途凭证到服务器计算系统的动作;以及接收可用于随后与服务器计算系统认证的附加凭证的动作,所述附加凭证基于有限用途凭证在服务器计算系统处被提供。
2.如权利要求1所述的方法,其特征在于,所述有限用途凭证是单次使用的口令。
3.如权利要求1所述的方法,其特征在于,在客户机计算系统和服务器计算系统之间建立安全链路,包括基于客户机计算系统和服务器计算系统的Diffie-Hellman公开密钥生成会话密钥。
4.如权利要求1所述的方法,其特征在于,一个接收可用于随后与服务器计算系统认证的附加凭证的动作,包括接收可用于访问无线网络的证书的动作。
5.在服务器计算系统中,一种向客户机计算系统提供凭证的方法,其特征在于,所述方法包括在服务器计算系统和客户机计算系统之间建立安全链路的动作;在已建立的安全链路上从客户机计算系统接收有限用途凭证的动作,该有限用途凭证认证客户机计算系统;基于接收到的有限用途凭证为客户机计算系统提供附加凭证的动作,该附加凭证认证客户机计算系统;以及在已建立的安全链路上向客户机计算系统发送附加凭证的动作。
6.如权利要求5所述的方法,其特征在于,在服务器计算系统和客户机计算系统之间建立安全链路,包括基于服务器计算系统和客户机计算系统的Diffie-Hellman公开密钥生成会话密钥。
7.如权利要求5所述的方法,其特征在于,所述有限用途凭证是单次使用的口令。
8.如权利要求5所述的方法,其特征在于,基于接收到的有限用途凭证为客户机计算系统提供附加凭证的动作,包括提供可用于访问无线网络的证书。
9.在客户机计算系统中,一种参与与服务器计算系统认证的方法,其特征在于,所述方法包括接收至少包括服务器计算系统采用的认证机制的第一个服务器请求的动作;发送至少包括客户机计算系统采用的认证机制的第一个应答的动作;识别可用于加密在客户机计算系统和服务器计算系统之间传送内容的隧道密钥的动作;接收包括加密的认证内容的第二个服务器请求的动作,加密的认证内容用隧道密钥加密;用隧道密钥将加密的认证内容解密以显示未加密的认证内容的动作,未加密的认证内容指出相互采用的认证机制;以及发送第二个应答的动作,第二个应答包括应答未加密的认证内容的加密的应答数据,所述加密的应答数据按照相互采用的认证机制用来与服务器计算系统认证。
10.如权利要求9所述的方法,其特征在于,所述第一个服务器请求包括服务器计算系统采用的认证机制,前次的数据包ID和不重性。
11.如权利要求9所述的方法,其特征在于,所述服务器计算系统采用的认证机制包括选自MS-CHAP v2、用MD5的认证、用属性令牌卡的认证、用Kerberos的认证、用X.509的认证和用WS-安全的认证中的一个或多个认证机制。
12.如权利要求9所述的方法,其特征在于,所述客户机计算系统采用的认证机制包括选自MS-CHAP v2、用MD5的认证、用属性令牌卡的认证、用Kerberos的认证、用X.509的认证和用WS-安全的认证中的一个或多个认证机制。
13.如权利要求9所述的方法,其特征在于,所述第一个应答包括客户机计算系统采用的认证机制、前次的数据包ID、不重性、一个或多个安全协议和一个或多个公开密钥。
14.如权利要求9所述的方法,其特征在于,识别隧道密钥的动作包括基于共享的机密、客户机方不重性和服务器方不重性,获得隧道密钥。
15.如权利要求9所述的方法,其特征在于,接收第二个服务器请求的动作包括接收对应于认证方法的加密的认证内容,所述认证方法选自协商认证方法、再认证、用存在的用户名和口令引导客户机、用X.509证书引导客户机、用X.509证书认证和用Kerberos令牌引导新客户机。
16.如权利要求9所述的方法,其特征在于,所述第二个服务器应答包括加密的认证内容、前次的数据包ID、安全协议和公开密钥。
17.如权利要求9所述的方法,其特征在于,发送第二个应答的动作,包括发送用于认证方法的加密的应答数据,该认证方法选自协商认证方法、再认证、用存在的用户名和口令引导客户机、用X.509证书引导客户机、用X.509证书认证和用Kerberos令牌引导新客户机。
18.如权利要求9所述的方法,其特征在于,所述第二个服务器应答包括加密的应答数据和前次的数据包ID。
19.在服务器计算系统中,一种用于参与和客户机计算系统认证的方法,其特征在于,所述方法包括发送至少包括服务器计算系统采用的认证机制的第一个请求的动作;接收至少包括客户机计算系统采用的认证机制的第一个客户机应答的动作;识别可用于加密在客户机计算系统和服务器计算系统之间传送内容的隧道密钥的动作;发送包括加密的认证内容的第二个应答的动作,所述加密的认证内容用隧道密钥加密,指示相互采用的认证机制;以及接收第二个客户机应答的动作,第二个客户机应答包括应答加密的认证内容的加密的应答数据,所述加密的应答数据按照相互采用的认证机制用来与服务器计算系统认证。
20.如权利要求19所述的方法,其特征在于,所述第一个服务器请求包括服务器计算系统采用的认证机制,前次的数据包ID和不重性。
21.如权利要求19所述的方法,其特征在于,所述服务器计算系统采用的认证机制包括选自MS-CHAP v2、用MD5的认证、用属性令牌卡的认证、用Kerberos的认证、用X.509的认证和用WS-安全的认证中的一个或多个认证机制。
22.如权利要求9所述的方法,其特征在于,所述客户机计算系统采用的认证机制,包括选自MS-CHAP v2、用MD5的认证、用属性令牌卡的认证、用Kerberos的认证、用X.509的认证、和用WS-安全的认证中的一个或多个认证机制。
23.如权利要求19所述的方法,其特征在于,所述第一个客户机应答,包括客户机计算系统采用的认证机制,前次的数据包ID,不重性,一个或多个安全协议,和一个或多个公开密钥。
24.如权利要求19所述的方法,其特征在于,识别隧道密钥的动作包括基于共享的机密、客户机方不重性和服务器方不重性获得隧道密钥。
25.如权利要求19所述的方法,其特征在于,发送第二个服务器请求的动作包括发送对应于认证方法的加密的认证内容,所述认证方法选自协商认证方法、再认证、用存在的用户名和口令引导客户机、用X.509证书引导客户机、用X.509证书认证和用Kerberos令牌引导新客户机。
26.如权利要求19所述的方法,其特征在于,所述第二个请求包括加密的认证内容、前次的数据包ID、安全协议和公开密钥。
27.如权利要求19所述的方法,其特征在于,接收第二个客户机应答包括为一种认证方法接收加密的应答数据,该认证方法选自协商认证方法、再认证、用存在的用户名和口令引导客户机、用X.509证书引导客户机、用X.509证书认证,和用Kerberos令牌引导新客户机。
28.如权利要求19所述的方法,其特征在于,所述第二个客户机应答包括加密的应答数据和前次的数据包ID。
全文摘要
本发明的原理涉及更有效地和安全地认证计算机系统的系统、方法和计算机程序产品。在一些实施例中,有限用途凭证被用于提供更永久的凭证。客户机接收有限用途(如,单次使用)凭证并将此有限用途凭证从安全链路上提交到服务器。服务器提供附加的凭证(用于随后的认证)并将附加的凭证从安全链路发送到客户机。在另一些实施例中,计算机系统使用可扩展的协议自动地协商认证方法。选择相互采用的认证方法,并通过用来加密(以及随后的解密)在客户机和服务器之间传送认证内容的隧道密钥实施安全认证。隧道密钥从共享的机密(如,会话密钥)和不重性中获得。
文档编号H04L29/06GK1722658SQ20051005922
公开日2006年1月18日 申请日期2005年3月18日 优先权日2004年3月19日
发明者B·D·阿博巴, D·R·西蒙, T·M·穆尔, T·W·弗里曼 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1