专利名称:对可漫游凭证存储的安全且可用保护的制作方法
对可漫游凭证存储的安全且可用保护本申请是申请日为2009年9月3日申请号为第200980106633.8号发明名称为“对可漫游凭证存储的安全且可用保护”的中国专利申请的分案申请。背景对诸如网上银行、网上商店和虚拟专用网络等可在线访问的多个站点的安全数字访问在当今联机社会中是合乎需要的。用户认证反映人们用来在线访问这些站点的典型过程。一般而言,该过程开始于用户浏览到网站,确定需要安全访问,并设置对于该站点的用户名和口令/通行短语。在每一次用户想要访问该站点时,该用户浏览到该站点,输入其用户名和口令/通行短语,并在该站点匹配该用户名和口令/通行短语后获准进入该站点。当前作为对在每一次用户浏览到该在线站点时输入用户名和口令/通行短语的替换,该用户可允许将cookie存储在浏览器上以便由该设备上的浏览器记住所选信息。由此,在该在线站点处用户信息的安全性由其上存储cookie的计算设备和浏览器的安全性来管控。除了输入用户名和口令之外,用户名和口令/通行短语输入过程的各种变体利用了回答预定问题和标识预定图像。在任一种情况下,鉴于用户对口令/通行短语的安全对待(即,不重用口令/通行短语、不写下口令/通行短语、不将口令/通行短语存储在容易确定的位置),用户名和口令输入认证过程只是与用户所选口令/通行短语的强度一样安全(即高熵、不容易猜到、满足特定强度准则)。弱(即低熵)口令/通行短语容易受到字典和蛮力攻击。概述此处描述与可用性保持平衡的安全性方便用户利用可漫游凭证存储(RCS)来从多个计算设备安全地访问网站和其他在线位置。在至少一个实施例的一方面,RCS经由多阶段加密过程来方便受保护的统一凭证保险库(UCV),以使得通过使离线字典攻击对于攻击者变得极其昂贵而不使可用性相当地恶化来保护用户凭证。提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的一些概念。本概述并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。附图简述
图1示出了其中可操作对可漫游凭证存储的安全且可用保护的各实施例的示例性环境。图2示出了包括用于实现一个实施例的可漫游凭证存储的扩展的可漫游设备的示例性环境。图3示出了对可漫游凭证存储的安全且可用保护的一个实施例的示例性系统。图4示出了对可漫游凭证存储的安全且可用保护的一个实施例的示例性系统。图5是利用对可漫游凭证存储的安全且可用保护的一个实施例的将用户凭证存储在可漫游凭证存储上的统一凭证保险库中的示例性过程。图6是利用对可漫游凭证存储的安全且可用保护的一个实施例的经由将第一密钥存储在本地计算设备上来加速后续安全访问的示例性过程。图7是利用对可漫游凭证存储的安全且可用保护的一个实施例的经由访问存储在本地计算设备上的第一密钥来加速后续安全访问的示例性过程。贯穿本公开和各附图使用相同的附图标记来引用相同的组件和特征。详细描述术语表以下术语在本说明书中使用,并且除非另外指定或从上下文中显而易见,否则这些术语具有以下提供的含义。蛮力攻击一以试图通过提交几乎所有可能来确定口令/通行短语为特征的击败密码方案的尝试。不像字典攻击,蛮力攻击不基于被认为是更有可能匹配口令/通行短语的输入。成本一时间方面的值。例如,成本可相对于秒或毫秒来定义。凭证一加密输入,包括安全站点的标识、对应于安全站点的用户名、以及用于访问安全站点的口令/通行短语。字典攻击一以试图通过基于在字典中找到的最有可能匹配口令/通行短语的单词来提交大量可能性来确定口令/通行短语为特征的击败密码方案的尝试。昂贵一相对成本值。在时间方面,昂贵的操作比不昂贵的操作花费更长的时间(耗费更多)。例如,成本可相对于完成操作所必需的秒数或毫秒数来定义。密钥一密码密钥。锁一需要正确的密钥来获得访问权。离线攻击一当想要成为攻击者的人可访问受保护容器足够的时间来对凭证存储发起字典攻击以检索秘密时的对口令的密码攻击。概览可漫游凭证存储(RCS)使得能够经由多阶段加密来以可漫游格式安全地存储属于个人用户的多个凭证。在另一方面,RCS方便经由多阶段加密过程利用统一凭证保险库(UCV)来产生受保护的UCV,以使得通过使得离线字典攻击对于想要成为攻击者的人变得极其昂贵而不相当地增加可用性成本来保护用户凭证。在另一方面,RCS向用户提供多个计算设备上的增强的安全访问。在另一方面,RCS使得能够加速检索所选计算设备上的信息。在下文中首先阐述在其中这些工具可启用这些和其他技术的环境。额外的章节描述这些工具的各种发明技术和示例性实施例。这些章节描述了这些发明工具使得能够将属于个人的多个凭证安全地存储在可漫游的受保护UCV中的示例性方式。进一步的章节描述了经由多阶段加密来提供安全且可漫游的受保护UCV以使得通过动态地对想要成为攻击者的人增加离线字典攻击的成本同时保持用户可接受的执行时限来保护用户凭证的各个过程。还有一些其它章节描述了提供对所选设备上的信息的加速检索的各个过程,这些过程在多个计算设备上对于用户利用增强的安全访问,该增强的安全访问利用包括安全站点的标识、对应于安全站点的用户名、以及用于访问安全站点的口令/通行短语的输入来描述。产生受保护UCV包括从受保护UCV的口令导出密钥以保护该受保护UCV。受保护UCV可强制实施关于口令安全性的组安全策略,如本领域内已知的组安全策略。此外,受保护UCV可允许用户设置其自己相应的口令安全等级。不管用户口令的熵如何,受保护UCV在基于口令的密钥导出函数中通过将盐(即,随机位)用作输入之一来结合迭代散列以使得字典攻击对于想要成为攻击者的人变得更加困难。例如,基于口令的加密标准,诸如PKCS5应用迭代散列并且可被表示为K=pkcs5(n,s,p),其中n=迭代计数,S=盐,p= 口令,以使得K=导出的密钥。虽然将PKCS5用作示例,但构想在受保护UCV中使用利用迭代计数的其它基于口令的加密方案。迭代计数越高,执行成功的字典攻击对于想要成为攻击者的人就将越困难。这是因为当迭代计数非常高时,执行离线字典攻击在成本按时间来计算的情况下对于大多数攻击者而言都可能变得极其昂贵。例如,当密钥导出变得昂贵(在现代硬件上花费例如10秒)时,发起离线攻击是困难且昂贵的,即对于每一次口令猜测花费接近10秒来导出密钥。此外,例如当普通熵是40时,攻击者对于24°次口令尝试中的每一次将需要10秒,即超过348000年。假设攻击者对于所有口令可能性可以在1/2的时间内检索到正确的密钥,则该攻击者将仍然需要[(2~40)/2)*10]秒来猜到口令。假设攻击者利用人类创建的口令中的已知属性,例如经由彩虹表,则攻击者将仍然需要超过1000年来猜到口令。然而,用户在成本按照时间来计算的情况下也受到使用高迭代计数的密钥导出所导致的高可用性成本的不利影响。例如,用户不太可能接受在每一次他们必须键入用户名和口令以进入安全站点时等待接近10秒。在受保护UCV中,密钥导出可由保险库引擎来实现。在至少一个实施例中,其它合适的组件可实现该密钥导出。在至少一个实施例的一方面,密钥导出可被实现为多阶段加密过程。例如,在第一个阶段,可由作为可信计算基础的一部分的本地安全授权机构来生成第一密钥(K1X例如,该第一密钥(K1)可使用如上所述的具有大约1000万的迭代计数并导致大约9.6秒的示例性成本的PKCS5来导出(K1=Pkcd (H1, s,p))。在第二个阶段,可使用PKCS5的变体来导出第二密钥(K2)以使得K2=pkcs5(n2,s’ (p+Kj),其中(p+ig表示受保护UCV的所输入的口令与第一密钥的拼接。在至少一个实现的一方面,拼接包括将第一密钥附加到口令。在至少一个实现的一方面,拼接包括对第一密钥和口令求散列。例如,在第二个阶段,(K2)可以用大约100000的迭代计数和大约100毫秒的成本来导出。在至少一个实现的一方面,由n2表示的迭代计数比由Ii1表示的迭代计数小得多(n2〈〈ni)。在至少一个实现的一方面,由n2表示的迭代计数可以是由nl表示的迭代计数的计算出的推导。在至少一个实现的一方面,由n2和Ii1表示的迭代计数被设为默认值。在至少一个实现的一方面,由n2和/或H1表示的迭代计数通过用户输入来控制。在至少一个实现的一方面,由n2和/或Ii1表示的迭代计数由管理员来控制。在每一个实现中,应维持由H1表示的迭代计数以使得执行离线字典攻击在成本按照时间来计算的情况下对于大多数攻击者而言变得极其昂贵。一旦导出第二密钥,输入就可使用诸如高级加密标准(AES) 256等对称密码或另一联邦信息处理标准(FIPS)确认的密码等已知加密方案来用该第二密钥加密,并作为凭证被存储在受保护UCV中。可漫游凭证存储(RCS)提供了将第一密钥存储在本地计算设备上的用户简档中,以便于利用受保护UCV来加速对安全站点的后续访问(如以下详细描述的)。第二密钥不被存储在长期存储中。在至少一个实现的一方面,在加密包括安全站点的标识、对应于安全站点的用户名、以及用于访问安全站点的口令/通行短语的输入并将其作为凭证来存储后,破坏该第二密钥。在至少一个实现的一方面,该第二密钥可以在用户登出时被破坏。在至少一个实现的一方面,该第二密钥可响应于用户指示来被破坏。包含在可漫游设备上的其上存储有至少一个凭证的可漫游凭证存储(RCS)可用于方便加速访问那些相关联的凭证被存储在用户选择的其它计算设备处的可漫游设备上的安全站点。作为访问过程(如以下详细描述的)的一部分,计算设备访问可漫游设备并加载受保护UCV应用程序编程接口(API)。尽管根据至少一个环境的至少一个其它方面,受保护UCV API可被存储在计算设备上。在至少一个实施例的一方面,该受保护UCV API方便在后续访问安全站点时访问凭证以使得可加速对同一站点的稍后访问。在至少一个实施例的另一方面,还可增强与同一安全站点的其它交互。当用户将其包括RCS的可漫游设备耦合到另一计算设备,例如办公、学校或图书馆处的计算设备时,在至少一个实施例的一方面,可提示用户指示这是否是用户想要在其上存储信息以使得对安全站点的后续访问可以更快地进行的计算设备。在用户选择加速后续安全访问的情况下,用户输入受保护UCV的可从中导出第一密钥的口令。例如,导出第一密钥可花费大约9.6秒。当用户选择加速后续安全访问时,在导出第一密钥后,该密钥可被存储在该用户的简档或如由计算设备的操作系统定义的只可由该用户访问的其它位置中。换言之,第一密钥可被存储在本地计算设备上的安全位置中。基于该第一密钥和所输入的口令,可导出第二密钥。例如,在已经导出第一密钥后导出第二密钥可花费大约100毫秒。第一密钥可被安全地存储在具有只可由该特定用户访问的用于安全存储的位置的任何计算设备上。由此,可加速后续访问,因为将不需要在该设备上导出第一密钥,而是可访问该第一密钥以导出第二密钥。根据至少一个实施例,这一后续访问的可用性成本也可以是大致100毫秒。在至少一个实施例的一方面,在用户拒绝存储信息的情况下,可提示该用户针对该特定会话是否需要更快访问。在用户选择针对当前会话加速访问的情况下,仍可导出第一和第二密钥,如上所述,但这两个密钥都不会被存储在长期存储中。在至少一个实施例的一方面,在用户浏览到安全站点时,将不提示该用户输入相关联的用户名和口令,因为第一和第二密钥将被导出并且受保护UCV已解锁。在至少一个实施例的一方面,当第一密钥已被存储在本地计算设备上并且用户浏览到一安全站点(用于该安全站点的凭证被存储在耦合的可漫游设备上,已导出第二密钥)时,用户可以安全地登录到该站点而不必通过浏览器调用受保护UCV来输入相关联的用户名和口令。在至少一个实施例的一方面,任何合适的应用程序可调用受保护UCV,例如,安全应用程序。在至少一个实施例的一方面,当第一密钥已被存储在本地计算设备上并且用户浏览一安全站点(用于该安全站点的凭证被存储在耦合的可漫游设备上,但尚未在该浏览会话中导出第二密钥)时,将导出第二密钥。根据至少一个实施例,导出第二密钥的可用性成本可以是大致100毫秒。尽管用对结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于在此所述的具体特征或动作或结构邻近度或顺序。相反,所描述的具体特征和动作是作为实现该权利要求的示例性形式而公开的。示例性操作环境
在详细描述这些工具之前,提供示例性操作环境的以下讨论来帮助读者理解可采用这些工具的各发明性方面的至少一种方式。以下描述的环境仅构成一个示例且并非旨在将这些工具的应用限于任一个特定操作环境。可使用其它环境而不背离所要求保护的主题的精神和范围。图1在100处概括地示出了一个这样的操作环境,该操作环境至少包括具有一个或多个处理器(未示出)和计算机可读介质(未示出)的第一计算设备102。计算设备102的计算机可读介质可存储一个或多个密钥106。该一个或多个密钥106在操作上保护本发明的受保护的统一凭证保险库(UCV)。计算设备102可以是各种计算设备中的一种,诸如蜂窝电话、膝上型计算机、台式计算机、个人数字助理或服务器。每一个计算设备都具有能够访问和/或执行被包含在计算机可读介质上的指令的至少一个处理器。在至少一个实施例中,计算机可读介质包括或者能访问浏览器,该浏览器是能够与启用网络的实体交互的模块、程序、或其它实体。该计算设备还可包括可用于实现此处所描述的工具的一个或多个实施例的输入/输出设备,包括键盘、鼠标、话筒、打印机和扬声器(未示出)。操作环境100还包括至少一个可漫游设备104。可漫游设备104可以是任何数量的合适的可移动和/或便携式设备之一,诸如通用串行总线(USB)设备、PC卡、拇指型驱动器、通用闪存驱动器(UFD)、智能卡、实况驱动器(live drive)、移动电话、IEEE 1394高速串行总线设备、或启用生物测定的大容量设备。每一个可漫游设备104包括计算机可读介质并且能够与类似102的计算设备接口。每一个可漫游设备都具有如计算机可读介质那样的由一个或多个处理器访问的能力。可漫游设备104还在操作上耦合到其它计算设备,这些其它计算设备可以是与102相同类型的计算设备,或者可以是不同的计算设备。可经由对可漫游设备104的至少一部分启用锁108的多阶段加密来对可漫游设备104上的信息的至少一部分,诸如受保护UCV利用一个或多个密钥106。计算设备102和可漫游设备104中的每一个都经由本发明的受保护的统一凭证保险库(UCV)来交互。在至少一个实施例中,该交互经由将可漫游设备104耦合到计算设备102来进行。在另一实施例中,这一交互经由计算设备102和可漫游设备104的无线耦合来进行,例如经由无线协议,诸如无线USB、蓝牙、红外线(IR)、以及其它无线和射频(RF)通信协议。在另一实施例中,该交互经由计算设备102和可漫游设备104之间的网络110接入来进行。在某些实施例中,该操作环境还包括一个或多个网络110和包括web服务器112的服务器112。网络110使得能够在计算设备102与服务器112之间进行通信,并且可包括全球或本地有线或无线网络,诸如因特网、局域网(LAN)或内联网。计算设备102和/或可漫游设备104的计算机可读介质包括或者能访问浏览器,浏览器是能够与启用网络的实体交互的模块、程序、或其它实体。操作环境100还可至少包括类似于计算设备102的第二计算设备114,该第二计算设备具有一个或多个处理器和计算机可读介质。每一个计算设备114都包括类似于102的计算设备。计算设备114可以是与计算设备102相同的计算设备,或者可以是单独的或不同的计算设备。对经由多阶段加密过程被锁定108在可漫游设备104上的信息的恢复经由多种方法来提供。在至少一个实施例的一方面,至少部分地经由所存储的密钥106来提供访问。在至少一个实施例的另一方面,至少部分地经由新密钥106的导出来提供访问。在至少一个实施例的又一方面,经由所存储的密钥106和新导出的密钥106的组合来提供访问。在至少一个实施例的一方面,所呈现的每一种方法都经由多阶段加密和解密过程来提供提高的安全性和比相当恶化程度小的可用性,以便访问安全站点,诸如安全网站、安全文档、以及包括网上银行站点、网上商店站点和虚拟专用网络的安全企业连接。示例性操作以下讨论描述了这些工具通过方便用户利用可漫游凭证存储(RCS)来从多个计算设备安全地访问站点和位置来平衡安全性和可用性的示例性方式。RCS经由多阶段加密来方便受保护的统一凭证保险库(UCV),以使得通过使离线字典攻击对于攻击者变得极其昂贵而不使可用性相当地恶化来保护用户凭证。图2示出了可实现所述过程和技术及其变体的示例性扩展环境200。环境200包括至少一个计算设备,诸如图1所介绍的102。还示出了被锁定108的可漫游设备104。在操作中,可漫游设备104可以与计算设备102接口,并且计算设备102填充和访问存储在可漫游设备102的存储器204中的受保护UCV。存储器204通常包括可立即由微控制器212和/或计算设备102访问和/或当前正在操作的、用于实现所述过程的数据、程序模块和组件。多阶段加密过程保护可漫游存储器204中的信息的至少一部分,即受保护UCV 208。相应地,多阶段解密过程提供了将凭证210安全地存储在受保护UCV 208中以便于加速和/或增强在多个计算设备上对安全站点的访问。作为填充过程(下文中进一步描述)的一部分,计算设备102访问可漫游设备104上的存储器204并将受保护UCV应用程序编程接口(API )206加载到存储器204。在至少一个环境的另一方面,受保护UCV API无需被存储在可漫游设备104上。在至少一个实施例的一方面,该受保护UCV API206方便在访问安全站点时存储凭证210以使得可加速对同一站点的将来访问。在至少一个实施例的另一方面,可增强与同一安全站点的其它交互。凭证210被定义为包括安全站点的标识、对应于安全站点的用户名、以及用于访问安全站点的口令/通行短语的加密输入。例如,该输入可使用诸如像高级加密标准(AES)256等对称密码或另一联邦信息处理标准(FIPS)确认的密码来用特定密钥(以下描述)加密。构想用于受保护UCV的其它加密方案。填充过程还包括在可漫游设备104上创建受保护UCV 208。创建受保护UCV包括从用于受保护UCV的口令导出密钥以便使用如上所述的迭代散列来保护受保护UCV。包含在可漫游设备104上的其上存储有至少一个凭证的可漫游凭证存储(RCS)可用于方便加速访问那些相关联的凭证被存储在诸如计算设备114等用户选择的其它计算设备处的可漫游设备104上的安全站点。作为该访问过程(下文中进一步描述)的一部分,计算设备102访问可漫游设备104上的存储器204并加载受保护UCV应用程序编程接口(API)206。尽管根据至少一个环境的至少一个其它方面,受保护UCV API可被存储在计算设备102上。在至少一个实施例的一方面,该受保护UCV API206方便在后续访问安全站点时访问凭证210以使得可加速对同一站点的稍后访问。在至少一个实施例的另一方面,还可增强与同一安全站点的其它交互。在至少一个实施例的一方面,当用户将其包括RCS的可漫游设备104耦合到另一计算设备114时,将提示该用户这是否是该用户想要在其上存储信息以使得对安全站点的后续访问可以更快地进行的计算设备。在用户选择加速后续安全访问的情况下,该用户可输入用于受保护UCV的口令,然后第一密钥被导出并存储在本地计算设备上的安全位置中。基于该第一密钥和所输入的口令,然后可导出第二密钥。第一密钥可被安全地存储在具有可由该特定用户访问的用于安全存储的位置的任何计算设备上。由此,将加速后续访问,因为将不需要在该设备上导出第一密钥,而是可访问该第一密钥以导出第二密钥。在至少一个实施例的一方面,当第一密钥已被存储在本地计算设备114上并且用户浏览到一安全站点(其中,对于该安全站点凭证210被存储在耦合的可漫游设备上,已导出第二密钥)时,用户可以安全地登录到该站点而不必通过浏览器调用受保护UCV (例如,安全应用程序)来输入相关联的用户名和口令。在至少一个实施例的一方面,另一合适的应用程序可调用受保护UCV。在至少一个实施例的一方面,当第一密钥已被存储在本地计算设备114上并且用户浏览一安全站点(对于该安全站点凭证210被存储在耦合的可漫游设备104上,尚未导出第二密钥)时,将导出该第二密钥。示例性系统图3在300处概括地示出了可用于实现此处所讨论的各种示例性方法中的部分或全部的示例性环境。对环境300的描述可包括对图1和图2的环境的引用。图3所示的计算设备只是计算设备的一个示例,且并非旨在对计算设备和网络体系结构的使用范围或功能提出任何限制。该计算设备环境也不应被解释成对于诸如计算设备102和计算设备114等在示例计算设备环境中所示出的任一组件或其组合有任何依赖或要求。计算设备102包括一个或多个处理器304以及一个或多个存储器306。取决于计算设备的确切配置和类型,存储器306可包括除了可漫游设备104之外的各种计算机可读介质。计算机可读介质可以是能由诸如计算设备102等计算设备访问的任何可用介质,包含易失性和非易失性介质、可移动和不可移动介质。作为示例而非限制,计算机可读介质包括计算机存储介质。“计算机存储介质”包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括但不限于,RAM、ROM、EEPR0M、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁存储设备、或能用于存储所需信息且可以由诸如计算设备102等计算设备访问的任何其他介质。存储器306通常包括操作系统308、一个或多个程序模块310,并且可包括程序数据312和集成存储314。该基本配置在图3中由虚线302内的组件示出。操作系统308可包括基于组件的框架326,该框架支持组件(包括属性和事件)、对象、继承、多态性、反射,并且提供面向对象的基于组件的应用程序编程接口(API)。由华盛顿州雷蒙德市的微软公司生产的.NET 框架是这一框架的示例,但该示例绝不是限制性示例。计算设备102还可具有附加特征或功能。例如,计算设备102还可包括如上所述的附加数据存储设备(可移动和/或不可移动)。这样的附加存储在图3中由可移动存储306和不可移动存储308例示。计算机存储介质可包括如上所述的计算机可读介质。存储器306、可移动存储316和不可移动存储318都是计算机可读介质的示例。任何这样的计算机存储介质都可以是参考图1示出和描述的计算设备102的一部分。计算设备102还可具有输入设备320,诸如键盘、鼠标、笔、语音输入设备(例如,话筒)、触摸输入设备、视频输入(例如,照相机、摄像机)等,以及诸如显示器、扬声器、打印机等输出设备322。计算设备102还可包含允许该设备诸如通过有线或无线网络来与其它计算设备114进行通信的通信连接324。该环境还可包括一个或多个存储单元(未示出)。或者,可组合一个或多个存储单元。在至少一个实施例中,这些存储单元中的每一个都可位于与计算设备102分开的位置并可经由网络来访问。对环境300的描述可包括对图2的环境的引用。图4在400处概括地示出了可用于实现此处所讨论的各种示例性方法中的部分或全部的示例性保险库环境。对保险库环境400的描述可包括对图2的环境的引用。作为示例而非限制,该环境可包括包含保险库API404和保险库引擎406的一个或多个保险库402。在至少一个实施例的一方面,用户应用程序408经由保险库API404与保险库402接口以获取和设置凭证210。在至少一个实施例的另一方面,保险库管理用户接口 410与保险库402接口以管理和更新凭证210。在至少一个实施例的另一方面,用户接口提供安全计算机上的凭证收集412,该凭证收集经由提供保险库密钥用户接口的保险库引擎406与保险库402接口。在至少一个实施例的另一方面,同步中心414经由保险库API404来设置与保险库402的同步伙伴关系。在至少一个实施例的另一方面,保险库引擎406提供对保险库存储420的保险库存储接口。在至少一个实施例的另一方面,保险库引擎406提供对可漫游存储418的接口以使得能够直接从可漫游存储418读取凭证210。在至少一个实施例中,该环境还可包括一个或多个存储单元,包括可漫游设备104上的存储器204、可漫游存储418和保险库存储420。或者,可组合这些存储单元中的一个或多个。在至少一个实施例中,这些存储单元中的每一个都可位于与可漫游凭证存储(RCS)分开的位置并可经由网络来访问。在至少一个实施例的另一方面,可漫游存储418与保险库处理器416接口以访问凭证210。在至少一个实施例的另一方面,保险库引擎使用抽象存储(未示出)来提交保险库数据以便长期存储在保险库存储420中。保险库引擎提交给该存储的数据由通过受保护UCV的用户口令导出的密钥来保护。示例性过程操作的示例性动作此处参考图5-7来描述。如同此处所描述的所有过程,在对应的附图中描述和描绘动作的次序本身是示例性的并且不应被解释为限制动作发生的次序。图5是描述将用户凭证存储在可漫游凭证存储上的统一凭证保险库中的至少一个实施例的示例性过程500。该实施例被示为表示诸如计算设备102等图1的操作环境100的元件所执行的各个操作或动作的一系列框。对过程500的描述可包括对图2的环境的引用。过程500可结合或可以是RCS的实现。框502表示在耦合可漫游设备104后将受保护UCV应用程序编程接口(API) 206加载到存储器204。在加载受保护UCV应用程序编程接口(API)206后,在框504,经由输入受保护UCV的口令来在可漫游设备104上创建受保护UCV208。在框506,可将计算设备102上的浏览器定向到安全在线站点。在框508,输入站点用户名和口令。在判定框510,确定是否需要对该站点的可漫游访问。当未指示可漫游访问时,在框512对该站点的安全访问继续。当指示可漫游访问时,在框514开始对包括安全站点的标识、对应于安全站点的用户名、以及用于访问安全站点的口令/通行短语的输入的加密。在框516,应用使用高计数迭代散列的口令加密方案以创建第一密钥。在框518,应用使用具有较低计数的迭代散列和第一密钥的口令加密方案以创建第二密钥。在框520,使用第二密钥来加密输入以创建凭证210。在框522,将凭证210存储在受保护UCV208中。已存储凭证210 (诸如在框522)的用户现在可漫游到诸如114等其它计算设备。图6示出了描述经由将诸如密钥106等第一密钥存储在本地计算设备上来加速后续安全访问的至少一个实施例的示例性过程600。该实施例被示为表示诸如计算设备102或114等图1的操作环境100的元件所执行的各个操作或动作的一系列框。过程600可结合或可以是RCS的实现。框602表示将根据本申请的RCS耦合到诸如计算设备102等计算设备。框604表示访问安全站点,如参考图5所讨论的。判定框606表示提示加速对当前访问的安全站点的后续访问。当未指示加速的后续安全访问时,在框608对该站点的安全访问继续。当指示加速的后续安全访问时,在框610将第一密钥(如在图5的框516中导出的)存储在例如本地用户简档中。由此,可加速后续访问,因为将无需在该设备上导出第一密钥,相反可访问该第一密钥以导出第二密钥以使得后续访问的可用性成本相比于初始访问的可用性成本显著降低。图7示出了描述经由将诸如密钥106等第一密钥存储在本地计算设备上来加速后续安全访问的至少一个实施例的示例性过程700。该实施例被示为表示诸如计算设备102或114等图1的操作环境100的元件所执行的各个操作或动作的一系列框。过程700可结合或可以是RCS的实现。框712表示在已经本地地存储第一密钥(如在图6中的框610中)时对安全站点的后续访问。在框714,以可忽略的可用性成本从本地简档访问第一密钥。在框716,利用提供加速的后续访问的所存储的第一密钥来导出第二密钥。在至少一个实施例的一方面,过程700在图6的过程600后立即发生。在至少一个实施例的另一方面,过程700在用户稍后访问诸如计算设备102或计算设备114等计算设备时发生。结论上述系统和方法(“工具”)使得能够平衡安全性和可用性以便于用户利用可漫游凭证存储(RCS)来从多个计算设备安全地访问站点和位置。此处所描述的这些和其它技术可提供优于当前现有技术的显著改进,可能提供在多个计算设备上对多个安全站点的更安全的访问,并且可能通过降低这一安全访问的可用性成本来提供更佳的用户体验。虽然已经用结构特征和/或方法动作指定的语言描述了该系统和方法,但是应该理解在所附权利要求中定义的该系统和方法不必限于所述的特定特征或动作。相反地,具体特征和动作是作为实现所要求保护的系统和方法的示例性形式来公开的。
权利要求
1.一种包括可漫游凭证存储RCS (418)的系统,所述系统包括: 统一凭证保险库UCV (208),其中所述UCV经由处理器(304)利用所述RCS (418)来方便所述RCS (418)对可用性造成最小影响,所述UCV (208)包括: 至少一个保险库API (404);以及 保险库引擎(406); 保险库管理用户接口(410),其中凭证(210)经由所述保险库管理用户接口(410)来管理和更新; 用户应用程序(408),通过所述用户应用程序凭证(210)经由所述至少一个保险库API(404)来被设置和访问; 安全计算设备(412),所述安全计算设备方便对于所述保险库引擎(406)的保险库密钥用户接口; 保险库存储(420),所述保险库存储具有连接到所述保险库引擎(406)的保险库存储接口 ; 可漫游设备,所述可漫游设备存储凭证(104)以使得所述保险库引擎(406)从所述可漫游设备(104)读取凭证(210); 保险库处理器(416),其中所述保险库处理器(416)从所述可漫游设备(104)接收凭证(210);以及 同步中心(414),其中所述同步中心(414)设置与所述至少一个保险库API (404)的同步伙伴关系。
2.如权利要求1所述的系统,其特征在于,还包括: 处理器; 耦合到所述处理器的可移动存储器, 所述UCV被包含在所述可移动存储器上并能由所述处理器操作。
3.如权利要求1所述的系统,其特征在于,多个凭证中的至少一个是加密的。
4.如权利要求3所述的系统,其特征在于,所述多个加密凭证中的至少一个被存储。
全文摘要
提供了一种方便平衡安全性和可用性的工具,该工具使用户能够利用对离线攻击具有高度抵抗力的可漫游凭证存储(RCS)来从若干计算设备安全地访问多个安全站点和位置。RCS经由多阶段加密过程来方便受保护的统一凭证保险库(UCV),以使得通过使离线字典攻击对于攻击者变得极其昂贵而不使可用性相当地恶化来保护用户凭证。
文档编号G06F21/34GK103198249SQ20131005800
公开日2013年7月10日 申请日期2009年1月21日 优先权日2008年2月25日
发明者R·梅尔帕尼 申请人:微软公司