口令保护的制作方法

文档序号:7625978阅读:178来源:国知局
专利名称:口令保护的制作方法
技术领域
本发明涉及口令保护和认证。
背景技术
意识到安全问题的操作系统需要认证用户的能力。用户认证可以用多种方式实现。在其最简单的形式中,用户认证是基于用户认证码和用户身份的某种组合。用户认证码是从用户知道的某种唯一的东西导出的,诸如口令。更新近的且较复杂的、多因素认证机制也依赖于用户拥有的某种东西(通常是由某种形式的硬件表示的令牌)、用户是的某种东西(诸如指纹或虹膜等生物测定认证码)、或者这三者的某种组合。然而,即使在这样的多因素认证系统中,口令被用于特定操作,从而需要被管理并存储。对口令或者从口令导出的某种表示的存储是一个难题。
已经使用过各种技术来存储口令,但是由于针对存储的口令的攻击变得愈加复杂且对攻击者可用的计算机硬件变得愈加快速,这些技术都具有使得它们不合适的某些缺点。例如,用于存储口令的一个最简单的方案是只存储口令本身。然而,在这样的情形中,设法获取了口令列表的攻击者能够立即使用所有的口令。为对抗这样的不受阻碍的访问,系统试图使用简单的数学运算来混淆口令,诸如基于Rot-13或Base-64的那些口令。或者,使用固定的密钥来对口令加密。然而,这些技术是轻易可逆的,因为对存储的口令具有访问权限并知晓算法或固定密钥的任何人能够轻易地确定明文口令。
引入更复杂的单向加密函数(OWF)来解决上述弱点。OWF使用密码算法来混淆并存储口令。对存储的口令的最常见类型的攻击是硬算或某种类型的字典/硬算混合攻击,在这些攻击中攻击者必须猜测口令、使用正确的OWF对猜测的口令编码并将其与存储的值进行比较。如果两个值匹配,那么找到了正确的口令。不幸的是,现今某些OWF口令加密算法在密码上不是安全的,而其它OWF口令加密算法尽管现在被认为在密码上是安全的,但在不久的将来可能不再安全,尤其是面对分布式协定的攻击努力。
常规的OWF口令混淆技术基本上也由于其它原因在其安全存储口令的能力上有限制。最重要的问题是,存储的认证码(口令散列)与用来认证用户的是相同的值。换言之,唯一的秘密是认证码,即口令表示或散列,而不是它所表示的口令。为讨论的目的,术语“散列”用来指示存储的口令表示,而不论该口令是否已经被混淆。
可以探听和破解线上(on-wire)口令认证算法。网络上的认证序列可以被捕捉并被用来确定或破解口令。尽管由于所捕捉到的信息在口令表示本身上经受了另外的密码变换,这样的攻击是难以作恶的,然而可能使用密码上安全的存储算法,而仅让线上算法对存储的值的硬算是易受攻击的,这可以被用来代替如在上一段中所描述的明文口令。

发明内容
描述了用于口令保护的系统和方法。在一个方面,通过组合口令和其它数据,确定性地形成非对称的密钥对。该非对称密钥对的公钥被导出至外部设备。该非对称密钥的私钥用来实施对该外部设备的后续认证。


在附图中,组件参考标号的最左端的一位数字标识该组件第一次出现的特定附图。
图1示出了用于口令保护的示例性系统。
图2示出了用于口令保护的示例性过程。
图3示出了用于生成用于数字签名登录操作的公钥和私钥证书的示例性过程。
图4示出了可在其上完全或部分地实现口令保护的合适的计算环境的示例。
具体实施例方式
概述基本上所有的常规口令存储系统都会遭受简单攻击。例如,没有“加盐(salt)”的口令散列对预先计算的散列攻击是脆弱的,在这样的攻击中,攻击者预先计算对应于某些口令的一组口令散列。(“加盐”是在散列之前取一短值并将其添加给口令的过程。)然而,一旦突破安全性并获取口令数据库,就可以将所窃取的散列与预先计算的散列进行比较,以在几秒内获取底层口令。本质上,这是“破解一次,在任何地方使用”的攻击,而常规的口令攻击是基于在运行时猜测口令并计算散列的。
在某些情况下,攻击者不必对口令进行逆向工程设计来危害系统。这部分是由于现有的质询-响应协议,在该协议中,表示存储的口令的散列可以由攻击者直接使用。直接使用散列的口令攻击为被称为“通过散列”攻击。它们依赖于这样的基本事实在质询-响应认证系统中,唯一使用的秘密是散列。拥有该散列的攻击者可以将其使用在会正确地响应认证质询的工具中,并被认证为其口令由该散列表示的用户。实际上,所有的现代计算机认证系统都会遭受“通过散列”攻击;某些比其它更脆弱。“通过散列”攻击完全独立于执行超过获取散列所需的计算的的任何需求。这样,与口令存储系统与口令本身一样安全的传统假设相反,口令存储系统不像口令本身一样安全。如果攻击者具有对散列的访问权限,那么相比弱口令,强口令不会提供任何额外的安全性。如果这发生,所有的口令散列与它们表示的明文口令等效。
诸如Rainbow Crack等新兴工具通常用于突出现有口令存储算法中的弱点。Rainbow Crack是对于可以预先计算散列而不是在运行时计算所有散列来破解口令的老想法的优化的免费可用实现。在运行时,可以将窃取的散列与存储的散列进行比较,并用简单的查找来进行匹配。由于更多的人们开始研究口令是如何被存储和使用的,设想有更多的努力将致力于这种类型的攻击是合乎逻辑的。当前,面对能够访问散列的攻击者击败这样的口令攻击的唯一的已知方法是通过使用智能卡或基于令牌的认证系统。然而,构建智能卡实现的实现困难意味着在可预见的未来,智能卡不会完全替代口令。
下文用于口令保护的系统和方法解决了上文相对于常规口令存储技术(例如,通过使用密码上安全的公钥,以及通过确保为特定用户存储的数据不同于用来验证该用户的数据)所描述的每一弱点。现在将相对于图1到图4详细描述用于口令保护的系统和方法的这些和其它方面。
示例性系统图1示出了用于口令保护的示例性系统100。计算系统100包括计算设备102,它包括程序模块104和程序数据106。程序模块104包括,例如,口令保护模块108。口令保护模块108实现一种其中不需要信任机制的伪证书解决方案来从口令112生成存储的口令表示110。伪证书解决方案这样被命名,以将其与真正的公钥基础架构(PKI)区分开来。在PKI中,所有的证书是由证书服务器签发的,并由证书服务器签署来证实真实性和有效性。因为证书服务器证书本身可以由另一证书服务器签发,因此整个系统生成了采用树形式的信任分层结构。如果系统中的代理信任树中的特定节点,那么该代理也将信任其证书是由树中所信任的节点下的某一实体签发的任何节点。在系统100的伪证书实现中,证书不是从这样的中央授权机构中发出的,且它们不是由证书服务器签署的。尽管证书采用与在PKI中使用的相同形式,但这仅是包装一组公有或私有加密密钥的方便的方法。然而,通过将公钥和私钥对存储在证书中,可获得一个非凡的优点它允许系统生成为PKI设计的所有现有认证系统。证书是自签署的,这样它们对于在PKI中使用是完全有效的,只是它们不是信任分层结构的部分。
系统100实现被定义为诸如1024位、2048位、4096位安全性等的密钥长度的安全性级别。为了生成密钥,口令保护模块108将用户标识符(例如,用户主要名称(UPN)或与用户相关联的某些其它任意数据)与明文口令112相组合。该组合可以包括简单的串接或诸如将密码散列应用于该两项等任何数量的其它过程。为说明的目的,该操作的结果被示为“其它数据”114中的“组合的结果”。在一种实现中,(UPN),即电子邮件地址格式的系统用户名称被用作用户标识符。在另一实现中,用户标识符是表示系统用户的任一个任意值。该特定的值是无关紧要的,只要其用户在系统内是一致的,且该示例性系统虑及所有可能的值。用户标识符用来对口令“加盐”以防止两个用户拥有相同的存储的口令值,即使他们的口令是相同的。
口令保护模块108使用上述组合的结果来生成私钥和相关联的公钥。在一种实现中,口令保护模块108使用组合的结果作为秘密密钥x,并计算相关联的Diffie-Hellman公钥为y=gxmod p,其中g和p是对应于所使用的位安全性级别(例如,1024位、2048位等)的位长度的整数。该整数可以是预定或随机的。在一种实现中,该整数是公钥证书120的一部分,以允许在系统100上使用不同的密钥长度。也可以使用诸如RSA、DSA、椭圆曲线法等其它密钥生成技术。
在一种实现中,口令保护模块108使用任何所需公钥证书格式,使用y作为用户的公钥且可任选地包括了参数g和p,创建了公钥证书120。公钥证书是这样一种结构,它以指定格式包含非对称密钥对的公共部分(“公钥”),以及诸如人名/电子邮件地址/标题/电话号码/和/或其类似物等身份信息,以及与用户或实体相关联的数据的数字签名。公钥证书也被称为身份证书。公钥证书被存储在认证服务器上。一个示例性的这样的认证服务器被示为图4的远程计算机480。可以使用任何目录或用户标识系统来存储该公钥证书。口令保护模块108使用公钥证书120,根据系统中手边的已建立的基于证书的认证规则来认证用户/实体。一个示例性的这样的认证会话参考图2在下文描述。
示例性过程图2示出了用于口令保护的示例性过程。为示例性说明的目的,图2的操作是相对于图1的组件描述的。(在附图中,组件参考标号的最左端的一位数字标识该组件第一次出现的特定附图。)在框202处,口令保护模块108(图1)将用户标识符与明文口令112相组合。为说明的目的,该操作的结果被示为“其它数据”114中的“组合的结果”。用户标识符的使用用作“盐”,来确保拥有相同口令的两个用户获得不同的密钥。在框204处,口令保护模块108从该组合的结果中确定性地生成非对称密钥对118(公钥和私钥对),即,该过程可以用相同的方法重复,拥有相同的输入,并达到相同的输出。
更具体地,口令保护模块108从私钥中计算出诸如Diffie-Hellman公钥y=gxmod p等公钥。在其它实施例中,可以使用组合的数据来确定性地给予伪随机数生成器种子,作为该非对称密钥生成过程的一部分。
在框206处,口令保护模块108将非对称密钥对118的公钥导出到诸如由图4的远程计算机480表示的外部设备。在框208处,非对称密钥对的私钥被用来实施对该外部设备的后续认证。该认证是基于任一个任意类型的基于公钥的认证方案的。
例如,用于口令保护的系统和方法可以与Bellovin/Merritt加密密钥交换(EXE)协议一起使用。首先描述EKE协议的Diffie-Hellman形式及其达到的效果。假设客户机和服务器已经在公共素模p和公共生成器g上达成一致。客户机通过选择随机值A并生成生存期短暂的Diffie-Hellman值X=g^A mod p并将该X值发送给服务器开始。服务器生成随机值B并形成Y=g^B mod p,并以客户机可以解密的方式对其加密Z=E(Y)。服务器也计算强共享密钥K=X^B mod p。
服务器生成随机现时值B’,它是使用强对称密钥K来加密的,以形成U=K(B’)(记法的轻微滥用)。服务器向客户机发送Z和U。客户机对Z解密来获取Y并计算出相同的强共享密钥K为K=Y^A mod p。客户机然后生成随机现时值A’,并向服务器发送V=K(A’,B’)。服务器对V解密并检查B’是否正确。假设B’是正确的,那么服务器向客户机发送W=K(A’)。客户机对W解密并检查A’是否正确。假设A’是正确的,那么该强共享K现在已经被认证并且能够用于随后的通信。以其最简单的形式,前两段已经描述了Diffie-Hellman密钥交换来生成强共享密钥K。对EKE的常规使用是,当客户机和服务器仅共享弱口令,且一般利用使用该弱口令作为密钥的对称密码来完成加密(Z=E(Y))时。始终保持现时值,显然,EKE防止对该弱口令的离线攻击。
考虑到上述情况,且在一种实现中,口令112是弱口令,且系统100通过从弱口令112中生成非对称密钥对118来实现EKE。
图3示出了创建基于图1的非对称密钥对的公钥/私钥证书并使用其来执行基于证书的登录的示例性过程。为示例性说明的目的,图3的操作是相对于图1的组件而描述的。(在附图中,组件参考标号的最左端的一位数字标识该组件第一次出现的特定附图。)在框302处,口令保护模块108使用任何所需的公钥证书格式,使用y作为用户的公钥,创建公钥证书120。在框304处,口令保护模块108在认证服务器上存储公钥证书120。在框306处,并且在认证会话过程中,口令保护模块108通过执行操作202到206计算出公钥-私钥对118。在框308处,口令保护模块108执行与用于传统的数字证书相同的经认证的登录过程。这在技术上可以使用任何可用的基于证书的登录技术来执行。在一种实现中,该基于证书的登录技术是数字签名算法(DSA)机制。
示例性操作系统尽管并非必需的,但用于口令保护的系统和方法是在正由个人计算机执行的计算机可执行指令(程序模块)的通用语境中描述的。程序模块一般包括例程、程序、对象、组件、数据结构等,它们执行特定任务或实现特定抽象数据类型。尽管该系统和方法是在前述语境中描述的,但是之后描述的动作和操作也可以用硬件来实现。
图4示出了可完全或部分地实现口令保护的合适的计算环境的示例。示例性计算环境400仅是用于图1的示例性系统和图2和3的示例性操作的合适的计算环境的一个示例,且不旨在对此处所描述的系统和方法的使用范围和功能提出任何限制。也不应该将计算环境400解释为对于在示例性操作环境400所示的组件中的一个或其组合有任何依赖或要求。
此处描述的方法和系统可用众多其它通用或专用计算系统环境或配置来操作。适合在本发明中使用的公知的计算系统、环境和/或配置的示例包括,但不限于,个人计算机、服务器计算机、多处理器系统、基于微处理器的系统、网络PC、小型机、大型机、包含上述系统或设备中的任一个的分布式计算机环境等。该架构的压缩或子集形式也可以在资源有限的客户机中实现,诸如手持式计算机或其它计算机设备。本发明是在分布式计算环境中实现的,其中任务由通过通信网络连接的远程处理设备来执行。在分布式计算环境中,程序模块可以位于包括存储器存储设备在内的本地和远程计算机存储介质中。
参考图4,用于口令保护的示例性系统包括执行例如图1的系统100的计算机410形式的通用计算设备。下面所述的计算机410的各方面是图1的客户机计算设备102的示例性实现。计算机410的组件可以包括,但不限于,处理单元420、系统存储器430和将包括系统存储器在内的各种系统组件耦合至处理单元420的系统总线421。系统总线421可以是若干类型的总线结构中的任一种,包括存储器总线或存储器控制器、外围总线和使用多种总线体系结构中的任一种的局部总线。作为示例,而非限制,这样的体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线和外围部件互连(PCI)总线(也被称为Mezzanine总线)。
计算机410通常包括各种计算机可读介质。计算机可读介质可以是能够被计算机410访问到的任何可用介质,且包括易失性和非易失性介质、可移动和不可移动介质。作为示例,而非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以任何方法或技术实现的用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括,但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁带盒、磁带、磁盘存储或其它磁性存储设备、或能用于存储所需信息且可以由计算机100访问的任何其它介质。
通信介质通常具体化为诸如载波或其它传输机制等已调制数据信号中的计算机可读指令、数据结构、程序模块或其它数据,且包括任何信息传递介质。术语“已调制数据信号”指的是这样一种信号,其一个或多个特征以在信号中编码信息的方式被设定或更改。作为示例,而非限制,通信介质包括有线介质(诸如有线网络或直接线连接),和无线介质(诸如声学、RF、红外线和其它无线介质)。上述中任一个的组合也应包括在计算机可读介质范围之内。
系统存储器430包括易失性或非易失性存储器形式的计算机存储介质,诸如只读存储器(ROM)431和随机存取存储器(RAM)432。基本输入/输出系统433(BIOS)包含有助于诸如启动时在计算机410中的元件之间传递信息的基本例程,它通常存储在ROM 431中。RAM 432通常包含处理单元420可以立即访问和/或目前正在操作的数据和/或程序模块。作为示例,而非限制,图4示出了操作系统434、应用程序435、其它程序模块436和程序数据437。
计算机410也可以包括其它可移动/不可移动、易失性/非易失性计算机存储介质。仅作为示例,图4示出了从不可移动、非易失性磁介质中读取或向其写入的硬盘驱动器441,从可移动、非易失性磁盘452中读取或向其写入的磁盘驱动器451,和从诸如CD ROM或其它光学介质等可移动、非易失性光盘456中读取或向其写入的光盘驱动器455。可以在示例性操作环境中使用的其它可移动/不可移动、易失性/非易失性计算机存储介质包括,但不限于,盒式磁带、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等。硬盘驱动器441通常通过不可移动存储器接口,诸如接口440连接至系统总线421,磁盘驱动器451和光盘驱动器455通常通过可移动存储器接口,诸如接口450连接至系统总线421。
以上描述和在图4中示出的驱动器及其相关联的计算机存储介质为计算机410提供了对计算机可读指令、数据结构、程序模块和其它数据的存储。例如,在图4中,硬盘驱动器441被示为存储操作系统444、应用程序445、其它程序模块446和程序数据447。注意到这些组件可以与操作系统434、应用程序435、其它程序模块436和程序数据437相同或不同。应用程序435包括,例如图1中的程序模块104。程序数据437包括,例如图1中的程序数据106。操作系统444、应用程序445、其它程序模块446和程序数据447在这里被标注了不同的标号是为了说明至少它们是不同的副本。
在一种实现中,用户可以通过输入设备,诸如键盘462和定点设备461(通常指鼠标、跟踪球或触摸垫)向计算机410输入命令和信息。其它输入设备(未示出)可以包括麦克风、操纵杆、游戏垫、圆盘式卫星天线、扫描仪等。这些和其它输入设备通常通过耦合至系统总线的用户输入接口460连接至处理单元420,但也可以由其它接口或总线结构,诸如并行端口、游戏端口、1394/火线、加速图形端口或通用串行总线(USB)连接。
计算机410可使用至一个或多个远程计算机,诸如远程计算机480的逻辑连接在网络化环境中操作。远程计算机480可以是个人计算机、服务器、路由器、网络PC、移动计算设备、对等设备或其它常见网络节点,且根据其特定实现,可以包括上文相对于计算机410所描述的许多或所有元件,尽管在图4中仅示出存储器存储设备481。图4中所示的逻辑连接包括局域网(LAN)471和广域网(WAN)473,但也可以包括其它网络。这样的网络环境在办公室、企业范围计算机网络、内联网和因特网中是常见的。
当在LAN网络环境中使用时,计算机410通过网络接口或适配器470连接至LAN 471。当在WAN网络环境中使用时,计算机410通常包括调制解调器472或用于通过诸如因特网等WAN 473建立通信的其它装置。调制解调器472可以是内部的或外部的,它可以通过用户输入接口460或其它合适的机制连接至系统总线421。在网络化环境中,相对于计算机410所描述的程序模块或其部分可以存储在远程存储器存储设备中。作为示例,而非限制,图4示出了远程应用程序485驻留在存储器设备481上。可以理解,所示的网络连接是示例性的,且可以使用在计算机之间建立通信链路的其它手段。
结论尽管用于口令保护的系统和方法是以对结构特征和/或方法操作或动作专用的语言来描述的,但是可以理解,在所附权利要求中所定义的实现不必限于所述的具体特征或动作。从而,该具体特征和操作被揭示为实现所要求保护的主题的示例性形式。
权利要求
1.一种方法,包括通过口令和其它数据的组合确定性地形成非对称密钥对;将所述非对称密钥对的公钥导出到外部设备;以及使用所述非对称密钥对的私钥来实施对所述外部设备的后续认证。
2.如权利要求1所述的方法,其特征在于,所述非对称密钥对是基于Diffie-Hellman、RSA、DSA或用于生成非对称密钥对的任何其它合适算法的。
3.如权利要求1所述的方法,其特征在于,所述口令是明文口令。
4.如权利要求1所述的方法,其特征在于,所述口令是根据加密密钥交换协议而生成的弱口令。
5.如权利要求1所述的方法,其特征在于,所述其它数据是用户主要名称或实质上对用户唯一的其它值。
6.如权利要求1所述的方法,其特征在于,所述确定性地形成非对称密钥对还包括创建所述口令和其它数据;以及通过加密函数组合所述口令和其它数据。
7.如权利要求1所述的方法,其特征在于,所述确定性地形成非对称密钥对还包括将所述组合来用作伪随机数生成器的种子来生成所述非对称密钥对。
8.如权利要求1所述的方法,其特征在于,对于所述导出,所述公钥是在自签署的证书中或以加密的形式导出的。
9.如权利要求1所述的方法,其特征在于,所述外部设备是服务器。
10.如权利要求1所述的方法,其特征在于,还包括使用由与所述公钥和外部设备相关联的用户共享的公共秘密或口令来认证所述公钥。
11.如权利要求1所述的方法,其特征在于,还包括基于所述非对称密钥对的公钥来生成公钥证书。
12.如权利要求1所述的方法,其特征在于,所述非对称密钥对是第一非对称密钥对,且其中,所述方法还包括基于所述非对称密钥对公式化公钥证书;在认证服务器上存储所述公钥证书;以及响应于认证会话,通过使用用于生成所述第一非对称密钥对的操作以生成第二非对称密钥对,来执行数字签名登录过程。
13.一种包括可由处理器执行的计算机程序指令的计算机可读介质,所述计算机程序指令用于通过口令和其它数据的组合确定性地形成非对称密钥对;将所述非对称密钥对的公钥导出到外部设备;以及使用所述非对称密钥对的私钥来实施对所述外部设备的后续认证。
14.如权利要求13所述的计算机可读介质,其特征在于,所述非对称密钥对是基于Diffie-Hellman、RSA、DSA或用于生成非对称密钥对的任何其它合适算法的。
15.如权利要求13所述的计算机可读介质,其特征在于,所述口令是明文口令。
16.如权利要求13所述的计算机可读介质,其特征在于,所述口令是根据加密密钥交换协议而生成的弱口令。
17.如权利要求13所述的计算机可读介质,其特征在于,所述其它数据是用户主要名称或实质上对用户唯一的其它值。
18.如权利要求13所述的计算机可读介质,其特征在于,用于确定性地形成非对称密钥对的所述计算机程序指令还包括指令,用于串接所述口令和其它数据;以及通过加密函数组合所述口令和其它数据。
19.如权利要求13所述的计算机可读介质,其特征在于,用于确定性地形成非对称密钥对的所述计算机程序指令还包括用于将所述组合作为伪随机数生成器的种子来生成所述非对称密钥对的指令。
20.如权利要求13所述的计算机可读介质,其特征在于,用于导出的所述计算机程序指令还包括在自签署的证书中或以加密的形式导出所述公钥。
21.如权利要求13所述的计算机可读介质,其特征在于,所述外部设备是服务器。
22.如权利要求13所述的计算机可读介质,其特征在于,还包括用于使用由与所述公钥和外部设备相关联的用户共享的公共秘密或口令来认证所述公钥的计算机程序指令。
23.如权利要求13所述的计算机可读介质,其特征在于,还包括用于基于所述非对称密钥对的公钥生成公钥证书的计算机程序指令。
24.如权利要求13所述的计算机可读介质,其特征在于,所述非对称密钥对是第一非对称密钥对,且其中,所述计算机程序指令还包括指令,用于基于所述非对称密钥对公式化公钥证书;在认证服务器上存储所述公钥证书;以及响应于认证会话,通过使用用于生成所述第一非对称密钥对的操作以生成第二非对称密钥对,来执行数字签名登录过程。
25.一种计算设备,包括处理器;以及耦合至所述处理器的存储器,所述存储器包括可由处理器执行的计算机程序指令,用于通过口令和其它数据的组合确定性地形成非对称密钥对;所述非对称密钥对的公钥导出到外部设备;以及使用所述非对称的密钥对的私钥来实施对所述外部设备的后续认证。
26.如权利要求25所述的计算设备介质,其特征在于,所述非对称密钥对是基于Diffie-Hellman、RSA、DSA或用于生成非对称密钥对的任何其它合适算法的。
27.如权利要求25所述的计算设备介质,其特征在于,所述口令是明文口令。
28.如权利要求25所述的计算设备介质,其特征在于,所述口令是根据加密密钥交换协议而生成的弱口令。
29.如权利要求25所述的计算设备介质,其特征在于,所述其它数据是用户主要名称或实质上对用户唯一的其它值。
30.如权利要求25所述的计算设备介质,其特征在于,用于确定性地形成非对称密钥对的所述计算机程序指令还包括指令,用于串接所述口令和其它数据;以及通过加密函数组合所述口令和其它数据。
31.如权利要求25所述的计算设备介质,其特征在于,用于确定性地形成非对称密钥对的所述计算机程序指令还包括用于将所述组合作为伪随机数生成器的种子来生成所述非对称密钥对的指令。
32.如权利要求25所述的计算设备介质,其特征在于,用于导出的所述计算机程序指令还包括在自签署的证书中或以加密的形式导出所述公钥。
33.如权利要求25所述的计算设备介质,其特征在于,所述外部设备是服务器。
34.如权利要求25所述的计算设备介质,其特征在于,还包括用于使用由与所述公钥和外部设备相关联的用户共享的公共秘密或口令来认证所述公钥的计算机程序指令。
35.如权利要求25所述的计算设备介质,其特征在于,还包括用于基于所述非对称密钥对的公钥生成公钥证书的计算机程序指令。
36.如权利要求25所述的计算设备介质,其特征在于,所述非对称密钥对是第一非对称密钥对,且其中,所述计算机程序指令还包括指令,用于基于所述非对称密钥对公式化公钥证书;在认证服务器上存储所述公钥证书;以及响应于认证会话,通过使用用于生成所述第一非对称密钥对的操作以生成第二非对称密钥对,来执行数字签名登录过程。
37.一种计算设备,包括形成装置,用于通过口令和其它数据的组合来确定性地形成非对称密钥对;导出装置,用于将所述非对称密钥对的公钥导出到外部设备;以及认证装置,用于使用所述非对称密钥对的私钥来实施对所述外部设备的后续认证。
38.如权利要求37所述的计算设备介质,其特征在于,还包括生成装置,用于基于所述非对称密钥对的公钥创建公钥证书。
39.如权利要求37所述的计算设备介质,其特征在于,所述非对称密钥对是第一非对称密钥对,且其中,所述计算设备还包括公式化装置,用于基于所述非对称密钥对生成公钥证书;存储装置,用于在认证服务器上存储所述公钥证书;以及生成装置,用于响应于认证会话,使用用于生成所述第一非对称密钥对的操作来创建用于数字签名登录过程的第二非对称密钥对。
全文摘要
描述了用于口令保护的系统和方法。在一个方面,通过组合口令和其它数据来确定性地形成非对称密钥对。该非对称密钥对的公钥被导出到外部设备。该非对称密钥对的私钥被用来实施对该外部设备的后续认证。
文档编号H04L9/14GK1777096SQ200510113399
公开日2006年5月24日 申请日期2005年10月17日 优先权日2004年11月17日
发明者J·M·乔纳森, J·D·本纳龙 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1