远程更改通讯密码的方法

文档序号:7909980阅读:308来源:国知局
专利名称:远程更改通讯密码的方法
技术领域
本发明涉及计算机通讯,具体而言,涉及为计算机通讯会话提供基于密码的安全性。
发明
背景技术
计算机网络正变得越来越大并且用来传输更为敏感的信息。为了安全,一个使用网络的计算设备通常向另一个设备证明自己的身份(“身份验证”)并且只和已通过身份验证的设备交换敏感信息。然而,大多数通过身份验证的通讯仍然容易受到安全攻击。有一种安全攻击的形式,攻击者伪装成一个合法的设备而错误地通过了身份验证。一旦通过验证,攻击者则可访问只能由合法通过身份验证的设备所访问的信息。第二种形式的攻击中,攻击者并没有通过身份验证,但偷听已通过身份验证的设备之间的通讯从而获得密码。拿到这些密码以后,偷听者就可以访问已通过身份验证的设备发送的敏感信息。这些安全攻击使通过无线技术通讯的设备尤其令人不安,因为很难甚至不可能限制对通讯的物理访问。
这两种形式的安全攻击涉及到通讯安全的两个主要方面。第一,身份验证技术正变得更加复杂来避免被非法的攻击者所利用。典型的通讯环境中包括一个身份验证服务器,由它和所有的计算设备(称为“身份验证客户机”)通讯来进行身份验证。为了通过身份验证,一个身份验证客户机通常必须提供一些身份验证信息。在一些应用中,身份验证信息包含一个在身份验证客户机和身份验证服务器之间共享的通讯密码。还有一些应用,其中的身份验证信息可能是基于成对的公钥/密钥和安全证书。所有的这些应用中,一旦身份验证客户机向身份验证服务器提供了身份验证信息就能通过身份验证。这个身份验证的过程往往是互相的,身份验证服务器同样要向身份验证客户机证明自己的身份。
通讯安全的第二个主要方面是再通过身份验证的计算设备之间传输的信息是被加密的。在典型的加密方法中,信息发送者和接收者首先确定加密方案。加密方案基于秘密的安全密钥,这些密钥通常但不总是共享与发送者和接收者之间。秘密的安全密钥可根据与用来进行身份验证一样的密码。发送者通过确定的加密方案对信息进行加密,然后将加密过的信息发给接收者。接收者收到加密信息以后使用确定的加密方案进行解密。虽然加密后的信息仍然可能被偷听,但偷听者在没有秘密的安全密钥的情况下无法获得原始信息。
然而,身份验证和加密并不总是能够提供足够的保护。例如,加密过的信息仍然会收到一些攻击,如统计分析攻击。在统计分析攻击中,偷听者分析一系列的加密信息来获取有关发送者和接收者使用的加密方案的一些模式。从这些模式中偷听者可能找出加密方案中使用的安全密钥并且用这些密钥来解密加密过的信息。
由于这种攻击方法的统计学特征,分析更多的加密信息将提高攻击的成功率。因此一种防止统计分析攻击的方法是限制在每一种加密方案下传输的信息量。为了达到这样的效果,可能会经常更换加密方案。在互相的身份验证过程中更换身份验证客户机和身份验证服务器使用的密钥。然而,身份验证并不改变这样一个事实新的安全密钥仍然基于不改变的通讯密码。随着时间推移,这个通讯密码可能被破译,因此它也得经常改变。这个过程并不象初看起来那么简单。为了能够使用,新密码(或者从它得到的信息)需要能够让身份验证客户机和身份验证服务器访问到。简单地在身份验证客户机上设一个密码然后通过一个通讯连接传给身份验证服务器并不是很安全。用来发送新密码的“连接外”方法(不使用计算机通讯连接的方法)虽然比较安全,但是太繁琐,尤其是身份验证服务器的物理位置离身份验证客户机很远的时候,因此经常改变密码很不方便。
问题在于需要一种不繁琐的方法,不通过通讯连接传输新密码而让身份验证客户机和身份验证服务器设置新的通讯密码。
身份验证客户机和身份验证服务器并行地通过它们各自的身份验证信息生成一组新的安全密钥。新的安全密钥被用来进行身份验证和加密直到再次重复这一过程,那时又将通过新的密码生成一组新的安全密钥。这个过程可以重复任意次,用来限制每一组安全密钥下传输的信息量从而限制了统计分析攻击者的有效性。
本发明的另外一方面是身份验证服务器决定什么时候更换当前的通讯密码,这个决定可以取决于使用当前密码的时间长短或者使用当前密码传输的信息量。
附图2是示意图,展示了一个支持本发明的计算机系统的例子。
附图3a到3c是数据流图,展示了本发明的一个实例中所述的当身份验证客户机和身份验证服务器互相进行身份验证并且设置新的通讯密码时传输的信息和进行的操作。
附图4是数据结构图,展示了在设置新的通讯密码时可能用到的信息。
在下面的说明中,除非特别指出,本发明的说明中引用到的动作和符号表示的操作是由一个或多个计算设备完成的。同样,这样的动作和操作有时被称作由计算机执行的,这包括计算设备的处理单元对以电子信号表示的结构化数据进行的处理。这样的处理转换数据或者将数据保留在计算设备的存储器里,从而以本领域的普通技术人员易于理解的方式处理重新配置计算设备或者更改计算设备的操作。维护数据的数据结构是存储器的物理位置,其特殊的属性由数据的格式来定义。然而,虽然本发明是在上述环境中加以说明的,并不意味着限制本领域的普通技术人员理解下文中提到的动作和操作也可以固化到硬件中。
在附图1中的网络环境100中,身份验证客户机102向身份验证服务器106证明它的身份(“身份验证”)。为了达到这样的效果,身份验证客户机102向身份验证服务器106证明它拥有假定只有特定身份的计算机才知道的秘密信息,这样身份验证客户机102声称它拥有该身份。这一秘密信息被称作身份验证客户机102的“身份验证信息”。
注意在一些网络环境100中,特别是在无线网络中,身份验证客户机102可以直接和本地访问服务器104通信。本地访问服务器104在身份验证客户机102和身份验证服务器106之间传递通讯信息,身份验证服务器106可以是远程的,并且服务多个(也许是成百个)网络环境100。可能存在本地访问服务器104并不影响本发明的情况,因此下文中将不再提及。
在成功的身份验证完成后,身份验证客户机102和身份验证服务器106生成一系列的安全密钥用来加密和验证它们之间传递的信息。安全密钥由身份验证客户机102的身份验证信息部分生成。加密和身份验证是必须的,因为在网络环境100中传递的所有消息都会被恶意的偷听者108截获。偷听者108截获到消息并且使用统计方法来尝试取得用来保护消息的安全密钥。由于这种攻击方法的统计学特征,分析更多的加密信息将提高攻击的成功率。为了阻止这种统计分析攻击,身份验证客户机102和身份验证服务器106需要在偷听者108截获足够的消息来取得安全密钥之前迅速地更改安全密钥。
已有一些方法用来更改安全密钥。例如,在每次身份验证中生成“即时”(liveness)信息,比如随机数或者时间戳。通过结合即时信息和身份验证信息来产生安全密钥,每次成功的身份验证将产生一组不同的安全密钥。如果这些身份验证信息被破译,那么安全密钥就很容易受到攻击。为了防止这样的情况,身份验证信息需要不时地更换,就像从身份验证信息生成的安全密钥也需要经常更换那样。
更改身份验证客户机102的身份验证信息并不象看起来那样简单。身份验证信息很容易在身份验证客户机102上更改,但为了让更改有效,身份验证信息的更改必须与身份验证服务器106保持一致。否则,身份验证服务器106将要求身份验证客户机102证明其知道的原来身份验证信息。(如下面所述,身份验证服务器106可以在不知道身份验证信息本身的情况下检验身份验证客户机102是否拥有身份验证信息。)一种让密码更改保持一致的简单方法是将身份验证信息通过通讯连接传送给身份验证服务器106。然而假设有偷听者108存在,这种方法会很不安全。其他现有的让密码更改保持一致的方法通常包括“连接外”通讯(不使用计算机通讯连接的方法)。虽然这种方法比较安全,但是它用起来太繁琐,尤其是身份验证服务器的物理位置离身份验证客户机很远的时候,因此经常改变身份验证信息很不方便。本发明提供一种安全但不繁琐的方法,让身份验证客户机102和身份验证服务器106设置新的身份验证信息。
图1中身份验证客户机102可以是任何结构。图2是一张方框图,展示一个支持本发明的计算机系统的例子。图2中的计算机系统只是适用环境中的一个例子,并不意味着限制本发明应用的范围和功能。也不应认为身份验证客户机102依赖于图2中展示的一个或多个组件。本发明可以用在很多其他的通用或专用计算环境或配置中。适用于本发明的常用计算系统,环境和配置的例子包括,但不仅限于个人电脑,服务器,手持设备或笔记本电脑,多处理器系统,基于多处理器的系统,机顶盒,可编程消费者电子产品,网络PC,小型机,大型机,以及包含上述任何系统或设备的分布式计算环境。身份验证客户机102在它的典型基本配置中一般包括至少一个处理器200和存储器202。存储器202可以是易失的(如RAM),不易失的(如ROM或闪存),或两者的组合。这种基本设置在图2中用虚线204标出。身份验证客户机102可能会有其他的特性和功能。例如,身份验证102可能会包含附加的存储器(可移动的和不可移动的),这些存储器包括但不仅限于磁盘,光盘和磁带。这样的附加存储在图2中用可移动存储206和不可移动存储208表示。计算机存储媒介包括易失的的和不易失的,可移动的和不可移动的媒介,这些媒介用任何方法或技术来实现,用以存储象计算机可读的指令,数据结构,程序模块,其他数据这样的信息。存储器202,可移动存储器206和不可移动存储器208都是计算机存储媒介的例子。计算机存储媒介包括但不仅限于RAM,ROM,EEPROM,闪存,其他存储技术,CD-ROM,数字通用盘,其他光学存储,盒式磁带,磁带,磁盘,其他磁媒介存储设备,以及其他任何可以用来存储相关信息并能被身份验证客户机102访问的媒介。任何这样的计算机存储媒介都可以作为身份验证客户机102的一部分。身份验证客户机102还可能包含用来和其他设备通讯的通讯通道210。通讯通道210是各种各样的通讯媒介。通讯媒介通常包含计算机可读的指令,数据结构,程序模块或其他调制过的数据信号,如载波或其他传输机制,还包括任何信息发送媒介。术语“调制过的数据信号”指一种信号,它的一个或多个特征被设置或改变用来对信息进行编码。作为一个例子,而不加限制,通讯媒介包括光学媒介,有线媒介,如有线网络或直接有线连接,以及无线媒介如声音,RF,红外线,其他无线媒介。这里所用的术语“计算机可读的媒介”包括存储媒介和通讯媒介。身份验证客户机还可能包含输入设备212,如键盘,鼠标,笔,语音输入设备,触摸输入设备等等,输出设备214,如显示器,音箱,和打印机。所有这些设备在技术中都是众所周知的,因此无需在这里详细叙述。
数据流图3a到3c展示了一个使用本发明的例子。步骤300到308做准备工作。在步骤300和302,身份验证客户机102和身份验证服务器106通过已有的身份验证技术互相验证身份。作为一种适合的身份验证技术,参照IETF RFC(因特网工程任务组因特网标准草案)2945,“SRP身份验证和密钥交换系统”,其中有对此完整的描述。虽然步骤300和302提到相互身份验证,但下文主要描述在一个方向的身份验证中更新身份验证信息。在下面的例子中,主要描述身份验证客户机102向身份验证服务器106进行身份验证。因为本发明所述的方法同样适用于身份验证服务器106向身份验证客户机102进行身份验证,这个方向的身份验证就不再赘述。
身份验证客户机102在步骤300中用到的身份验证信息包含一个密码。该密码的值可能不存储在身份验证客户机102上,而是由身份验证客户机102的用户输入,该用户还提供一个用户名,以期通过身份验证服务器106的身份验证。为安全起见,身份验证服务器106并不知道该密码的值。然而身份验证服务器106知道由该密码生成的一个“密码验证信息”的值。身份验证服务器106保存着密码验证信息和相关的用户名。(因为密码验证信息是和用户名而非身份验证客户机102的标识存储在一起,所以说该用户通过了身份验证比身份验证客户机102通过了身份验证更为恰当。例如,如果该用户移到了另外一台客户机并使用相同的用户名和密码,身份验证方法也将照常工作。然而,为了方便说明,本说明将继续使用身份验证客户机102向身份验证服务器106进行身份验证的说法。) 下面参照图3b的步骤316,用一个例子说明如何从密码生成密码验证信息。对这里的生成过程,只要知道它是“确定的”和“不可逆的”就可以了。确定是指在生成过程中没有随机性,亦即当生成过程的输入(包括密码和其他可能的值)已确定,那么输出(密码验证信息)是确定的。生成过程是不可逆的是指已知生成过程的输出不能得到生成过程的输入。更强的定义是指即使有人知道了密码验证信息和生成过程中除了密码之外的其他所有输入,他还是不能得到密码。这些属性意味着使用身份验证过程的方法时,只有知道密码本身才能够成功地以身份验证客户机102的身份通过身份验证。在身份验证的过程中,身份验证服务器106用它所知的密码验证信息来确定身份验证客户机102是否知道相应的密码。
从密码生成密码验证信息的其他输入在身份验证客户机102和身份验证服务器106之间共享。因为只知道这些输入信息但不知道密码并不足以得到密码验证信息。这些输入信息可以在身份验证过程开始之前公开化,甚至可以作为一个公共标准身份验证协议的参数。
作为身份验证过程的一个结果,身份验证客户机102在步骤304中,身份验证服务器106在步骤306中,都得到了一组安全密钥。身份验证客户机102从密码生成安全密钥,身份验证服务器106从密码验证信息生成安全密钥。成功的身份验证过程确保这两个设备生成的安全密钥是一样的。作为一个例子说明身份验证过程如何确保生成同样的安全密钥,安全密钥又是如何生成,请参考IETF RFC2246“TLS协议”,其中有对此完整的描述。
安全密钥的生成还包含共享于其中有对此完整的验证客户机102和其中有对此完整的验证服务器106之间的即时信息。在生成过程中使用共享的即时信息将在每次身份验证客户机102向身份验证服务器106进行身份验证时生成不同的安全密钥。不然,身份验证客户机102将在每次通过身份验证后使用相同的安全密钥。知道这一信息时,偷听者108可以在身份验证客户机102通过身份验证后继续它的统计分析攻击,把新截获的消息和在身份验证客户机102以前的会话中截获的消息一起用来进行分析。
安全密钥通常包括加密密钥(可能是共享的或一对单向密钥)和身份验证密钥。当身份验证客户机102和身份验证服务器106生成安全密钥后,它们就可以在步骤308中使用这些密钥来保护它们之间的通讯。使用安全密钥的例子参照图3b中的步骤312和步骤318加以说明。当然,当身份验证客户机102和身份验证服务器106在步骤308中开始用安全密钥进行通讯时,偷听者108也可以开始截获通讯中的消息并且用统计分析攻击来尝试取得安全密钥(没有标出)。
在步骤310中,身份验证服务器106决定设置一个新密码。作出这个决定的原因一般包括当前密码已经使用的时间长短,当前密码使用下的通讯信息量,以及网络环境100的内在安全性。无线网络通常对偷听者是开放的,因此无线网络中使用的密码需要定期更换。在这些情形中,一旦决定身份验证客户机102的密码需要更改,身份验证服务器106采取步骤312来发送一个请求。注意“请求”可能是这个语境下一种委婉的说法如果身份验证客户机102在改变它的密码时停止响应,身份验证服务器106可能会停用当前的密码,阻止身份验证客户机102通过身份验证。
如上述对身份验证过程的步骤300和302的说明,生成新密码验证信息可能使用除新密码本身以外的其他输入。身份验证服务器106可能在发送更改密码请求的同时发送新的值作为其他输入。使用新的其他输入并不是必须的,因为从新密码生成新的密码验证信息时可以使用上次密码更改时的其他输入。然而,同时更改至少一部分其他输入的值将能够提高安全性。步骤312中具体的其他输入例子(素数模数,生成器,独立终端(salt))参照步骤316在下面加以说明。为了得到额外的安全性,这些值可以用步骤306中生成的安全密钥来加密。如果一个更改密码的请求中包括任何的其他输入,那么一个有关新的其他输入的消息验证码也将被发送。消息验证码是其他输入的一个不可逆的散列函数,身份验证客户机102使用消息验证码来检验从身份验证服务器106发来的更改密码请求的内容是否原封不动地收到。用这样的方法来生成消息验证码的例子可以在IETF RFC2104,“HMAC用带密钥的哈希来进行消息验证”找到,其中有对此完整的描述。
身份验证客户机102收到更改密码请求和新的其他输入的值(如果有的话)。如果有新的其他输入,那么将校验消息验证码。如果校验失败,那么更改密码请求将被忽略。否则,新的其他输入值将被用同样的安全密钥来加密,并保存待将来使用。在步骤314中,身份验证客户机314要求它的用户输入一个新密码。例如,身份验证客户机314可以采取通用的步骤让用户先输入原来的密码验证身份,然后输入两次新密码来确认。在一些实例中,新密码在被接受前会被不同的原则来检验。这些原则可能包含熟悉的“至少8个字符长”,“必须包含字母和数字”,“必须不是标准字典里的词”,“不能是最近使用过的密码的一个排列”,“不要用配偶或宠物的名字”等等。
当用户通过了身份验证客户机102提出的检验原则创建了新的密码,身份验证客户机102在步骤316中从新密码生成新的密码验证信息。如上所述,生成的过程必须是确定的和不可逆的。IETF RFC2945提供了下面的生成方法来满足这两个要求密码验证信息=G^SHA(独立终端|SHA(用户名|“”|密码))%P这里SHA(安全哈希算法)是一个著名的散列函数;独立终端是一个随机数,和身份验证服务器106共享。
|是字符串拼接操作符;用户名和密码由身份验证客户机102上的用户输入;“”是包含冒号的一个字符串;^是指数操作符;%是取模(取整数余数)操作符;P是一个“素数模数”,为一个大素数(为安全起见,至少512比特),和身份验证服务器106共享;G是一个P的生成器,和身份验证服务器106共享。这是指对任意小于P的自然数A,总存在另一个数B使得G^B%P=A。
如果身份验证服务器106在步骤312中发送了新的值作为素数模数,生成器,或者独立终端,那么这些新的值将被用来生成密码验证信息。
身份验证客户机102将新的密码验证信息用步骤306中生成的安全密钥加密,加上消息验证码,然后在步骤318中发送给身份验证服务器106。当密码验证信息成功发送后,它在身份验证客户机102上已经没有意义,可以丢弃。身份验证服务器106校验消息验证码,用加密新的密码验证信息的同一个安全密钥解密得到它,然后把它和相关的用户名以及生成过程中用到的已经改变了的其他输入一起保存。在一些实例中,素数模数和生成器很少改变,但每次改变密码时都会生成新的独立终端。
如果过了一段时间身份验证服务器106没有收到更改密码请求的响应的话,它会再次发送更改密码请求。如上所述,几次更改密码的尝试失败后,身份验证服务器106会停用当前的密码。
让身份验证信息的更改保持一致的过程时完整的。为安全起见,建议身份验证客户机102立即使用新的身份验证信息重新通过步骤320向身份验证服务器106进行身份验证。如果重新身份验证得到通过,那么通过步骤324和326,并行的步骤304和306,身份验证客户机102和身份验证服务器106分别基于新的身份验证信息生成一组新的安全密钥。在步骤328中,新的安全密钥被用来保护通讯。新密码和新的密码验证信息将一直用作身份验证信息直到身份验证服务器106回到步骤310再次决定更改密码。
注意本发明使用的方法能够在不打断身份验证客户机102和身份验证服务器106之间的通讯的情况下更改身份验证信息。这两个设备一直使用原来的安全密钥直到新的一组安全密钥通过新的身份验证信息生成。
身份验证客户机102和身份验证服务器106之间使用的通讯协议决定实际上在步骤312和318中发送信息使用的格式。图4给出两种数据结构的例子,项400是更改密码请求的消息,项402是更改密码回应的消息。图4仅给出了例子信息中的数据元素使用的通讯协议可能会给数据元素加上头和尾。作为例子,这两种消息可以用两个EAP-SRP(可扩展身份验证协议-安全远程密码)消息来实现。EAP-SRP同时也定义了厂商相关的消息,这种消息可以用来传送这些数据元素。其他通讯协议也提供类似的功能。
考虑到本发明的原则可以应用到的很多可能的实例,应该认为这里通过


的实例仅用于说明,不应认为这些说明对本发明应用的范围有任何限制。本领域的普通技术人员应知道这里的一些实施细节,如数据元素的大小和消息格式,是由特定的环境里选择的协议来决定的,并且这些信息可以从公开的标准中找到。虽然本发明是用软件模块或组件的术语来说明的,一些处理,特别是加密方法,也可以用硬件组件来完成。因此,本发明试图试图涵盖所有符合下述权利要求特征和与其等价技术方案实例。
权利要求
1.一种在包含一个身份验证客户机和身份验证服务器的计算环境中,身份验证客户机已经向身份验证服务器通过身份验证,身份验证客户机进行身份验证基于一个身份验证客户机已知的密码、身份验证服务器已知的对应于该密码的码验证信息、身份验证客户机和身份验证服务器都已知的一个用户名、原来的素数模数、原来的素数模数生成器和原来的独立终端,设置新密码的方法,其特征在于,所述方法包括由身份验证服务器发起的请求,请求身份验证客户机更改它的密码;由身份验证服务器使新的独立终端能够被身份验证客户机访问到;身份验证客户机的一个用户在身份验证客户机上请求和接收一个新的密码;在身份验证客户机上计算新的密码验证信息,新的独立终端和用户名作为计算的输入;通过身份验证客户机使新的密码验证信息能够被身份验证服务器访问到;及将用户名,新的密码验证信息和新的独立终端保存在身份验证服务器。
2.照如权利要求1所述的方法,其特征在于,所述请求身份验证客户机更改它的密码包括发送一个EAP-SRP(可扩展身份验证协议-安全远程密码)服务器更改密码消息,所述身份验证客户机使新的密码验证信息能够被身份验证服务器访问到时,发送一个EAP-SRP客户机更改密码消息。
3.如权利要求1所述的方法,其特征在于,所述请求身份验证客户机更改它的密码包括发送一个厂商相关的EAP-SRP更改密码请求消息,所述身份验证客户机使新的密码验证信息能够被身份验证服务器访问到时,发送一个厂商相关的EAP-SRP更改密码响应消息。
4.如权利要求1所述的方法,其特征在于,所述新的独立终端和原来的独立终端一样并且所述身份验证服务器使新的独立终端能够被身份验证客户机访问到包括在要求身份验证客户机更改它的密码时先和身份验证客户机共享新的独立终端。
5.如权利要求1所述的方法,其特征在于,所述新的独立终端和原来的独立终端不一样并且所述身份验证服务器使新的独立终端能够被身份验证客户机访问到包括使用下面技术中的一种发一个包含新独立终端的消息给身份验证客户机;把新独立终端放在一个身份验证服务器和身份验证客户机都能访问到的地方;从而在要求身份验证客户机更改它的密码时先和身份验证客户机共享新的独立终端。
6.如权利要求5所述的方法,其特征在于,所述身份验证服务器使新的独立终端能够被身份验证客户机访问到,还包括由身份验证服务器计算出第一个包含新独立终端的消息验证码,第一个消息验证码基于身份验证客户机进行身份验证时生成的、身份验证客户机向身份验证服务器进行身份验证使用的密钥;由身份验证服务器使第一个消息验证码让身份验证客户机访问到;及由身份验证客户机生成第二个包含新独立终端的消息验证码,第二个消息验证码基于身份验证客户机向身份验证服务器进行身份验证使用的密钥;及所述请求和接收新密码和生成新的密码验证信息,使能新的密码验证信息够被访问到,而保存新的密码验证信息仅在第一个消息验证码和第二个消息验证码匹配时进行。
7.如权利要求1所述的方法,其特征在于,进一步包括用原来的素数模数和原来的素数模数生成器作为进一步计算的输入。
8.如权利要求7所述的方法,其特征在于,所述在身份验证客户机上计算一个新的密码验证信息,包括用一个散列函数的结果作为第一个中间结果值,这个散列函数的输入包含用户名和新密码;用一个散列函数的结果作为第二个中间结果值,这个散列函数的输入包含新独立终端和第一个中间结果值;用原来的生成器为底数第二个中间结果值为指数的幂作为第三个中间结果值;及用第三个中间结果值以原来的素数模数取模作为新的密码验证信息。
9.如权利要求1所述的方法,其特征在于,所述身份验证客户机使新的密码验证信息能够被身份验证服务器访问到,包括在身份验证客户机上用身份验证客户机进行身份验证时生成的身份验证服务器到身份验证客户机的密钥对新的密码验证信息加密;由身份验证客户机使加密过的密码验证信息能够被身份验证服务器访问到;及在身份验证服务器上用身份验证服务器对身份验证客户机的密钥对加密过的新的密码验证信息进行解密。
10.如权利要求9所述的方法,其特征在于,所述身份验证客户机使新的密码验证信息能够被身份验证服务器访问到包括在身份验证客户机上计算出包含加密过的新密码验证信息的第一个消息验证码,第一个消息验证码基于身份验证客户机进行身份验证时生成、身份验证服务器向身份验证客户机进行身份验证使用的密钥;由身份验证客户机使第一个消息验证码让身份验服务器访问到;及由身份验证服务器计算出第二个包含新的密码验证信息的第二个消息验证码,第二个消息验证码基于身份验证服务器向身份验证客户机进行身份验证使用的密钥;及所述保存用户名,新的密码验证信息和新的独立终端仅在第一个消息验证码和第二个消息验证码匹配时进行。
11.如权利要求1所述的方法,其特征在于,进一步包括在身份验证服务器上将一个定时器与让身份验证客户机更改它的密码的请求关联;及如果当到达定时器设定的过期时间,身份验证客户机没有让新的密码验证信息能够被访问到,那么在身份验证客户机服务器上再次请求身份验证客户机客户机更改它的密码。
12.如权利要求1所述的方法,其特征在于,进一步包括身份验证客户机第二次向身份验证服务器进行身份验证时,第二次身份验证基于身份验证客户机已知的新密码和身份验证服务器已知的新密码验证信息,身份验证客户机和身份验证服务器都知道的用户名,原来的素数模数,原来的素数模数生成器和新的独立终端。
13.如权利要求1所述的方法,其特征在于,进一步包括由身份验证服务器使新的素数模数和新的素数模数生成器能够被身份验证客户机访问到。
14.如权利要求13所述的方法,其特征在于,所述使新的独立终端,新的素数模数,和新的素数模数生成器能够被身份验证客户机访问到包括由身份验证服务器计算出第一个包含新的独立终端、新的素数模数、和新的素数模数生成器的消息验证码,基于身份验证客户机进行身份验证时生成的身份验证客户机向身份验证服务器进行身份验证使用密钥的第一个消息验证码;由身份验证服务器使第一个消息验证码能够被身份验证客户机访问到;及由身份验证客户机生成第二个包含新的独立终端,新的素数模数,和新的素数模数生成器的消息验证码,第二个消息验证码基于身份验证客户机向身份验证服务器进行身份验证使用的密钥;及所述请求和接收新密码和计算出新的密码验证信息,使能新的密码验证信息够被访问到,且保存新的密码验证信息仅在第一个消息验证码和第二个消息验证码匹配时进行。
15.如权利要求13所述的方法,其特征在于,进一步包括用新的素数模数和新的素数模数生成器作为进一步计算的输入。
16.如权利要求15所述的方法,其特征在于,所述在身份验证客户机上计算一个新的密码验证信息包括用一个散列函数的结果作为第一个中间结果值,这个散列函数的输入包含用户名和新密码;用一个散列函数的结果作为第二个中间结果值,这个散列函数的输入包含新独立终端和第一个中间结果值;用新的生成器为底数第二个中间结果值为指数的幂作为第三个中间结果值;及用第三个中间结果值以新的素数模数取模作为新的密码验证信息。
17.如权利要求13所述的方法,其特征在于,进一步包括身份验证客户机第二次向身份验证服务器进行身份验证时,第二次身份验证基于身份验证客户机知道的新密码,身份验证服务器知道的新密码验证信息,身份验证客户机和身份验证服务器都知道的用户名、新的素数模数、新的素数模数生成器和新的独立终端。
18.一种计算机可读的媒介,这种媒介包含实现一种设置新密码的方法的指令,身份验证客户机已经向身份验证服务器进行身份验证,身份验证客户机进行身份验证基于身份验证客户机知道原来的密码,身份验证服务器知道原来的密码验证信息,身份验证客户机和身份验证服务器都知道用户名,原来的素数模数,原来的素数生成器和原来的独立终端,其特征在于,所述方法包括由身份验证服务器发起的请求,请求身份验证客户机更改它的密码;由身份验证服务器使新的独立终端能够被身份验证客户机访问到;身份验证客户机的一个用户在身份验证客户机上请求和接收一个新的密码;在身份验证客户机上计算新的密码验证信息,新的独立终端和用户名作为计算的输入;由身份验证客户机使新的密码验证信息能够被身份验证服务器访问到;及将用户名,新的密码验证信息和新的独立终端保存在身份验证服务器。
19.一种在包含一个身份验证客户机和身份验证服务器的计算环境中,身份验证客户机已经向身份验证服务器通过身份验证,身份验证客户机进行身份验证基于一个身份验证客户机已知的密码、身份验证服务器已知的对应于该密码的码验证信息、身份验证客户机和身份验证服务器都已知的一个用户名、原来的素数模数、原来的素数模数生成器和原来的独立终端,由身份验证服务器使身份验证客户机设置新密码的方法,其特征在于,所述方法包括请求身份验证客户机更改它的密码;使新的独立终端能够被身份验证客户机访问到;从身份验证客户机接收新的密码验证信息;及保存用户名,新的密码验证信息和新的独立终端。
20.如权利要求19所述的方法,其特征在于,所述请求身份验证客户机更改它的密码包括发送一个EAP-SRP(可扩展身份验证协议-安全远程密码)服务器更改密码消息,所述从身份验证客户机接收新的密码验证信息包括接收一个EAP-SRP客户机更改密码消息。
21.如权利要求19所述的方法,其特征在于,所述请求身份验证客户机更改它的密码包括发送一个厂商相关的EAP-SRP更改密码请求消息,所述从身份验证客户机接收新的密码验证信息包括接收一个厂商相关的EAP-SRP更改密码响应消息。
22.如权利要求19所述的方法,其特征在于,所述新的独立终端和原来的独立终端一样并且所述使新的独立终端能够被身份验证客户机访问到包括在要求身份验证客户机更改它的密码时先和身份验证客户机共享新的独立终端。
23.如权利要求19所述的方法,其特征在于,所述新的独立终端和原来的独立终端不一样并且所述使新的独立终端能够被身份验证客户机访问到包括使用下面技术中的一种发一个包含新独立终端的消息给身份验证客户机;把新独立终端放在一个身份验证服务器和身份验证客户机都能访问到的地方;从而在要求身份验证客户机更改它的密码时先和身份验证客户机共享新的独立终端。
24.如权利要求23所述的方法,其特征在于,所述使新的独立终端能够被身份验证客户机访问到,进一步包括计算出一个包含新独立终端的消息验证码(MAC),这个消息验证码基于身份验证客户机进行身份验证时生成的身份验证客户机向身份验证服务器进行身份验证使用的密钥;及使这个消息验证码能够被身份验证客户机访问到。
25.如权利要求19所述的方法,其特征在于,所述从身份验证客户机接收新的密码验证信息包括从身份验证客户机接收加密过的密码验证信息;及用身份验证服务器对身份验证客户机的密钥对加密过的新的密码验证信息进行解密。
26.如权利要求25所述的方法,其特征在于,所述从身份验证客户机接收新的密码验证信息进一步包括从身份验证客户机接收一个消息验证码;及计算出一个包含新的密码验证信息的消息验证码,这个消息验证码基于身份验证客户机进行身份验证时生成的身份验证服务器对身份验证客户机进行身份验证使用的密钥;及所述保存用户名,新的密码验证信息和新的独立终端仅在收到的消息验证码和计算出的消息验证码匹配时进行。
27.如权利要求19所述的方法,其特征在于,进一步包括将一个定时器与让身份验证客户机更改它的密码的请求关联;及如果当到达定时器设定的过期时间,没有从身份验证客户机接收到新的密码验证信息,那么再次请求身份验证客户机客户机更改它的密码。
28.如权利要求19所述的方法,其特征在于,进一步包括身份验证客户机第二次向身份验证服务器进行身份验证时,第二次的身份验证基于身份验证客户机知道的新密码,身份验证服务器知道的新密码验证信息,身份验证客户机和身份验证服务器都知道的用户名、原来的素数模数、原来的素数模数生成器和新的独立终端。
29.如权利要求19所述的方法,其特征在于,进一步包括使新的素数模数和新的素数模数生成器能够被身份验证客户机访问到。
30.如权利要求29所述的方法,其特征在于,所述使新的独立终端,新的素数模数,和新的素数模数生成器能够被身份验证客户机访问到包括计算出一个包含新的独立终端,新的素数模数,和新的素数模数生成器的消息验证码,这个消息验证码基于身份验证客户机进行身份验证时生成的身份验证客户机向身份验证服务器进行身份验证使用的密钥;及使这个消息验证码能够被身份验证客户机访问到。
31.如权利要求29所述的方法,其特征在于,进一步包括身份验证客户机第二次向身份验证服务器进行身份验证使,第二次身份验证基于身份验证客户机知道的新密码,身份验证服务器知道的新密码验证信息,身份验证客户机和身份验证服务器都知道的用户名、新的素数模数、新的素数模数生成器和新的独立终端。
32.一种计算机可读的媒介,这种媒介包含实现一种由身份验证服务器使身份验证客户机设置新密码的方法的指令,身份验证客户机已经向身份验证服务器进行身份验证,身份验证客户机进行身份验证基于身份验证客户机知道原来的密码,身份验证服务器知道原来的密码验证信息,身份验证客户机和身份验证服务器都知道用户名,原来的素数模数,原来的素数生成器和原来的独立终端,其特征在于,所述方法包括请求身份验证客户机更改它的密码;使新的独立终端能够被身份验证客户机访问到;从身份验证客户机接收新的密码验证信息;及保存用户名,新的密码验证信息和新的独立终端。
33.一种在包含一个身份验证客户机和身份验证服务器的计算环境中,身份验证客户机已经向身份验证服务器通过身份验证,身份验证客户机进行身份验证基于一个身份验证客户机已知的密码、身份验证服务器已知的对应于该密码的码验证信息、身份验证客户机和身份验证服务器都已知的一个用户名、原来的素数模数、原来的素数模数生成器和原来的独立终端,由身份验证客户机设置新密码的方法,其特征在于,所述方法包括从身份验证服务器接收让身份验证客户机更改密码的请求;从身份验证服务器接收新的独立终端;从身份验证客户机的一个用户请求和接收一个新密码;计算新的密码验证信息,新的独立终端和用户名作为计算的输入;及使新的密码验证信息能够被身份验证服务器访问到。
34.如权利要求33所述的方法,其特征在于,所述从身份验证服务器接收让身份验证客户机更改密码的请求包括接收一个EAP-SRP服务器更改密码消息。所述使新的密码验证信息能够被身份验证服务器访问到包括发送一个EAP-SRP客户机更改密码消息。
35.如权利要求33所述的方法,其特征在于,所述从身份验证服务器接收让身份验证客户机更改密码的请求包括接收一个厂商相关的EAP-SRP更改密码请求消息。所述使新的密码验证信息能够被身份验证服务器访问到包括发送一个厂商相关的EAP-SRP更改密码响应消息。
36.如权利要求33所述的方法,其特征在于,所述新的独立终端和原来的独立终端一样并且所述从身份验证服务器接收新的独立终端包括要求身份验证客户机更改它的密码时先和身份验证客户机共享新的独立终端。
37.如权利要求33所述的方法,其特征在于,所述新的独立终端和原来的独立终端不一样并且所述从身份验证服务器接收新的独立终端包括使用下面技术中的一种发一个包含新独立终端的消息给身份验证客户机;把新独立终端放在一个身份验证服务器和身份验证客户机都能访问到的地方;从而在要求身份验证客户机更改它的密码时先和身份验证客户机共享新的独立终端。
38.如权利要求37所述的方法,其特征在于,所述从身份验证服务器接收新的独立终端进一步包括从身份验证服务器接收到一个消息验证码;及计算出一个包含新独立终端的消息验证码,这个消息验证码基于身份验证客户机向身份验证服务器进行身份验证使用的密钥;及所述计算新的密码验证信息和使新的密码验证信息能够被身份验证服务器访问到仅在收到的消息验证码和计算出的消息验证码匹配时进行。
39.如权利要求33所述的方法,其特征在于,进一步包括用原来的素数模数和原来的素数模数生成器作为进一步计算的输入。
40.如权利要求39所述的方法,其特征在于,所述计算新的密码验证信息包括用一个散列函数的结果作为第一个中间结果值,这个散列函数的输入包含用户名和新密码;用一个散列函数的结果作为第二个中间结果值,这个散列函数的输入包含新独立终端和第一个中间结果值;用原来的生成器为底数第二个中间结果值为指数的幂作为第三个中间结果值;及用第三个中间结果值以原来的素数模数取模作为新的密码验证信息。
41.如权利要求33所述的方法,其特征在于,所述使新的密码验证信息能够被身份验证服务器访问到包括用身份验证客户机进行身份验证时生成的身份验证服务器到身份验证客户机的密钥对新的密码验证信息加密;及使加密过的密码验证信息能够被身份验证服务器访问到。
42.如权利要求41所述的方法,其特征在于,所述使加密过的密码验证信息能够被身份验证服务器访问到进一步包括计算出包含加密过的新密码验证信息的消息验证码,这个消息验证码基于身份验证客户机进行身份验证时生成的身份验证服务器向身份验证客户机进行身份验证使用的密钥;及使这个消息验证码能够被身份验服务器访问到。
43.如权利要求33所述的方法,其特征在于,进一步包括身份验证客户机第二次向身份验证服务器进行身份验证时,第二次身份验证基于身份验证客户机知道的新密码,身份验证服务器知道的新的密码验证信息,身份验证客户机和身份验证服务器都知道的用户名、原来的素数模数、原来的素数模数生成器和新的独立终端。
44.如权利要求33所述的方法,其特征在于,进一步包括从身份验证服务器接收新的素数模数和新的素数模数生成器。
45.如权利要求44所述的方法,其特征在于,所述从身份验证服务器接收新的独立终端、新的素数模数和新的素数模数生成器包括从身份验证服务器接收一个消息验证码;及计算出包含新的独立终端,新的素数模数,和新的素数模数生成器的消息验证码,这个消息验证码基于身份验证客户机向身份验证服务器进行身份验证使用的密钥;及所述计算新的密码验证信息和使新的密码验证信息能够被身份验证服务器访问到仅在第收到的消息验证码和计算出的消息验证码匹配时进行。
46.如权利要求44所述的方法,其特征在于,进一步包括用新的素数模数和新的素数模数生成器作为进一步计算的输入。
47.如权利要求46所述的方法,其特征在于,所述计算新的密码验证信息包括用一个散列函数的结果作为第一个中间结果值,这个散列函数的输入包含用户名和新密码;用一个散列函数的结果作为第二个中间结果值,这个散列函数的输入包含新独立终端和第一个中间结果值;用新的生成器为底数第二个中间结果值为指数的幂作为第三个中间结果值;及用第三个中间结果值以新的素数模数取模作为新的密码验证信息。
48.如权利要求44所述的方法,其特征在于,进一步包括身份验证客户机第二次向身份验证服务器进行身份验证时,第二次身份验证基于身份验证客户机知道的新密码,身份验证服务器知道的新密码验证信息,身份验证客户机和身份验证服务器都知道的用户名、新的素数模数、新的素数模数生成器和新的独立终端。
49.一种计算机可读的媒介,这种媒介包含实现一种由身份验证客户机设置新密码的方法的指令,身份验证客户机已经向身份验证服务器进行身份验证,身份验证客户机进行身份验证基于身份验证客户机知道原来的密码,身份验证服务器知道原来的密码验证信息,身份验证客户机和身份验证服务器都知道用户名,原来的素数模数,原来的素数生成器和原来的独立终端,其特征在于,所述方法包括从身份验证服务器接收让身份验证客户机更改密码的请求;从身份验证服务器接收新的独立终端;从身份验证客户机的一个用户请求和接收一个新密码;计算新的密码验证信息,新的独立终端和用户名作为计算的输入;及使新的密码验证信息能够被身份验证服务器访问到。
50.一种计算机可读的媒介,在上面存储更改密码请求的数据结构,其特征在于,所述更改密码请求的数据结构包括第一个数据元素包含表示独立终端的数据;第二个数据元素包含表示素数模数的数据;第三个数据元素包含表示素数模数生成器的数据;及第四数据元素包含表示一个消息验证码,该消息验证码包含独立终端,素数模数和素数模数生成器。
51.如权利要求50的所述更改密码请求的数据结构,其特征在于,所述独立终端,素数模数,素数模数生成器和消息验证码格式化为下述一种消息的一部分EAP-SRP服务器更改密码消息和厂商相关的EAP-SRP更改密码请求消息。
52.一种计算机可读的媒介,在上面存储更改密码响应的数据结构,其特征在于,所述更改密码响应的数据结构包括第一个数据元素包含表示密码验证信息的数据;及第二个数据元素包含表示一个消息验证码,该消息验证码包含密码验证信息。
53.如权利要求52的所述更改密码响应的数据结构,其特征在于,所述密码验证信息和消息验证码格式化为下述一种消息的一部分EAP-SRP客户机更改密码消息和厂商相关的EAP-SRP更改密码响应消息。
全文摘要
对已经向身份验证服务器进行身份验证的身份验证客户机,利用已经进行身份验证的效果来设置新的通讯密码的方法。身份验证客户机从它的用户那里得到一个新密码。从新密码和身份验证服务器提供的信息,身份验证客户机生成“密码验证信息”,然后与身份验证服务器共享这一密码验证信息。新密码本身并不被发送给身份验证服务器,并且实质上不可能通过密码验证信息得到新密码。身份验证客户机从新密码,身份验证服务从密码验证信息各自生成一组新的身份验证和加密密钥。可以重复这个过程来限制在一组特定的安全密钥下发送的数据量,从而限制统计分析攻击者的有效性。
文档编号H04L29/06GK1455341SQ03124168
公开日2003年11月12日 申请日期2003年4月29日 优先权日2002年4月30日
发明者A·伊亚加里, K·甘诺甘帕蒂, D·R·西蒙, T·M·莫尔, P·巴尔 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1