针对计算设备保护用户证书的制作方法

文档序号:6533033阅读:103来源:国知局
针对计算设备保护用户证书的制作方法
【专利摘要】针对计算设备保护用户证书包括在计算设备和标识提供方(例如,Web服务)之间建立安全会话。该安全会话的参数被传输至证书服务,其重新协商或恢复该安全会话以在证书服务和标识提供方之间建立新的安全会话。用户证书经由该新的安全会话从证书服务传递至标识提供方,但是该计算设备并没有新的安全会话的参数并且因此无权访问所传递的用户证书。该证书服务随后再次重新协商或恢复该安全会话以在证书服务和标识提供方之间建立附加安全会话。该附加安全会话的参数被传输至计算设备以允许该计算设备继续与标识提供方安全通信。
【专利说明】针对计算设备保护用户证书

【背景技术】
[0001] 随着计算机已经变得日益普及,用户期望从各种不同的计算机对万维网(也被简 称为Web)上的资源或其它服务进行访问。这些资源或其它服务经常要求用户提供诸如用 户名和密码之类的用户证书以便对该资源或服务进行访问。用户经常期望从多个不同计算 机访问这些资源,而其中的许多计算机由于它们并不属于用户而并不被用户所信任。此外, 即使可能被用户所信任的计算机可会被恶意程序所感染。用户所输入的用户证书因此由于 被恶意程序所窃取而暴露于一定程度的风险之中,这降低了这样的资源或其它服务以及整 体Web的安全性。


【发明内容】

[0002] 提供该
【发明内容】
而以随后在【具体实施方式】中进一步描述的简化形式引入概念的 选集。该
【发明内容】
并非意在标示出所请求保护主题的关键特征或必要特征,也并非意在被 用来限制所请求保护主题的范围。
[0003] 依据一个或多个方面,(例如,由证书服务)从计算设备接收用于将与该计算设备 的用户相关联的用户证书提供至标识提供方的请求。还接收该计算设备和标识提供方之间 的第一安全会话的安全会话参数。从证书服务重新协商或恢复该第一安全会话,这导致证 书服务和标识提供方之间的第二安全会话。与用户相关联的用户证书经由该第二安全会话 被提供至标识提供方。
[0004] 依据一个或多个方面,从标识提供方接收针对计算设备的用户的用户证书的请 求。还接收针对要由证书服务所提供的与标识提供方相关联的用户证书的用户请求。响应 于该用户请求,计算设备和标识提供方之间的第一安全会话的安全会话参数被提供至证书 服务。从证书服务所接收的用户证书经由证书服务和标识提供方之间的第二安全会话传输 至标识提供方。

【专利附图】

【附图说明】
[0005] 贯穿附图使用相同的附图标记来指代同样的特征。
[0006] 图1图示了依据一个或多个实施例的针对计算设备保护用户证书的示例系统。
[0007] 图2图示了依据一个或多个实施例的针对计算设备保护用户证书的另一个示例 系统。
[0008] 图3图示了依据一个或多个实施例的针对计算设备保护用户证书的另一个示例 系统。
[0009] 图4图示了依据一个或多个实施例的示例证书服务。
[0010] 图5是图示依据一个或多个实施例的用于针对计算设备保护用户证书的示例处 理的流程图。
[0011] 图6是图示依据一个或多个实施例的用于针对计算设备保护用户证书的另一个 示例处理的流程图。
[0012] 图7是图示依据一个或多个实施例的用于针对计算设备保护用户证书的另一个 示例处理的流程图。
[0013] 图8图示了依据一个或多个实施例的能够被配置为实施针对计算设备保护用户 证书的示例计算设备。

【具体实施方式】
[0014] 本文对针对计算设备保护用户证书进行了讨论。用户可以是任意的各种不同安全 当事人。在计算设备和标识提供方(例如,Web服务)之间建立安全会话。该安全会话的诸 如一个或多个密钥之类的参数被传输至证书服务,这允许证书服务安全地与标识提供方进 行通信。证书服务在证书服务和标识提供方之间建立新的安全会话,并且用户证书经由该 新的安全会话从证书服务传递至标识提供方。计算设备并没有新的安全会话的参数并且因 此不能访问所传递的用户证书。该证书服务随后在证书服务和标识提供方之间建立附加安 全会话。该附加安全会话的诸如一个或多个密钥的参数被传输至计算设备。因此,即使用 户证书在计算设备并不了解该用户证书的情况下被提供至标识提供方,该计算设备也能够 继续(经由该附加安全会话)与标识提供方安全通信。
[0015] 图1图示了依据一个或多个实施例的针对计算设备保护用户证书的示例系统 100。系统100包括计算设备102、标识提供方104、证书服务106和信赖方108,它们中的每 一个由一个或多个各种不同类型的计算设备所实施。例如,计算设备102、标识提供方104、 证书服务106和信赖方108中的每一个可以由台式计算机、服务器计算机、计算集群(例如, 网络或云服务)、移动站点、娱乐电器、通信耦合至显示设备的机顶盒、电视机、膝上或上网 本电脑、记事板或平板电脑、蜂窝或其它无线电话、游戏机、汽车用电脑等来实施。虽然系统 100被图示为具有一个计算设备102、一个标识提供方104、一个证书服务106和一个信赖方 108,但是系统100可以包括任意数量的计算设备102、任意数量的标识提供方104、任意数 量的证书服务106和任意数量的信赖方108。
[0016] 计算设备102接收来自计算设备102的用户的用户输入。用户(也被称作安全当 事人)经常是人类,但是可替换地可以是一种或多种的各种其它形式,诸如计算机(例如,计 算设备102自身)、耦合至计算设备102或与之通信的另一设备、汇集(例如,多个用户和/ 或多个设备),等等。用户输入可以以各种不同方式来提供,诸如通过按压设备102的小键 盘或键盘的一个或多个键,按压设备102的控制器(例如,遥控器、鼠标、轨迹板等)的一个或 多个键,在设备102的触摸板或触摸屏上做出特定手势,和/或在设备102的控制器(例如, 遥控器、鼠标、轨迹板等)上做出特定手势。用户输入还可以经由其它物理反馈输入提供至 设备102,诸如敲击设备102的任意部分,能够被设备102的运动检测组件所识别的动作(诸 如摇动设备102、旋转设备102等),弯曲或折叠设备102,等等。用户输入还可以以其它方 式来提供,诸如经由针对麦克风的语音或其它可听输入,经由图像捕捉设备所观察到的手 部或其它身体部分的运动,等等。
[0017] 计算设备102、标识提供方104、证书服务106和信赖方108能够经由各种不同网 络互相通信,该网络诸如互联网、局域网(LAN)、电话网络、企业内部网、其它公众和/或私 有网络、它们的组合,等等。计算设备102、标识提供方104、证书服务106和信赖方108中的 一个或多个还能够使用不同协议或技术互相通信,诸如通用串行总线(USB)连接、无线USB 连接、红外连接、蓝牙连接等。
[0018] 信赖方108可以是计算设备102或(例如,计算设备102的)用户可能期望访问的 任意的各种不同服务或资源。标识提供方104为信赖方108提供认证功能。例如,信赖方 108可以是提供信息或其它信赖方服务的Web服务,上述信赖方服务诸如社交网络Web服 务、电子邮件Web服务、经销商Web服务、银行或其它金融机构Web服务,等等。作为另一个 示例,信赖方108能够提供对其它功能或网络的访问,诸如对公司网络的访问,对银行账户 的访问,等等。信赖方108还可以是计算设备102或者计算设备102的用户可能期望访问 的资源或资源接口,诸如文件共享、打印机或其它输出设备、相机或其它输入设备,等等。
[0019] 为了访问信赖方108的至少一些功能,用户证书被提供至标识提供方104。在作为 汇集(例如,多个用户和/或多个设备)的用户的情况下,汇集的用户证书能够将该汇集作为 一个单元进行引用和/或由其成员的证书所组成。这些用户证书可以是标识提供方104的 用户名(也被称作用户ID)和密码。可替换地,这些用户证书可以是其它类型的用户证书, 诸如生物计量数据(例如,指纹扫描、视网膜扫描、脸部扫描等)、数字证书和/或从用户的智 能卡所获得的其它识别数据、其它标识符、证书或令牌,等等。这些用户证书向标识提供方 104认证计算设备102的用户的身份和/或角色。使用哪个用书证书可以基于实施标识提 供方104的方式和/或用户的期望而有所变化。例如,如果用户偏向于不使用生物计量数 据作为用户证书,则用户可以选择使用其它用户证书和/或选择不访问标识提供方104。
[0020] 通常,计算设备102的用户在证书服务106上具有相关联的用户账户,其在本文中 也被称作证书服务用户账户。证书服务106针对每个证书服务用户账户保存与标识提供方 104相关联的用户账户的用户证书,并且可选地保存与一个或多个另外的标识提供方相关 联的用户账户。在一个或多个实施例中,当用户证书要被提供至标识提供方104时,在标识 提供方104和计算设备102之间建立安全会话。计算设备102向证书服务106提供安全会 话的安全会话参数。证书服务106对该安全会话进行重新协商,经由计算设备102而在标 识提供方104和证书服务106之间形成新的安全会话。该新的安全会话具有计算设备102 所未知的新的安全会话参数。证书服务106经由该新的安全会话向标识提供方104提供与 标识提供方104相关联的用户证书,并且随后再次重新协商该安全会话。该附加安全会话 的安全会话参数被提供至计算设备102,这允许计算设备102按照需要与标识提供方104进 行通信,其中计算设备102的用户已经利用与标识提供方104相关联的用户证书而针对标 识提供方104进行了认证。
[0021] 可替换地,不同于重新协商安全会话,证书服务106能够恢复其安全会话参数被 计算设备102提供给证书服务106的先前的安全会话。安全会话恢复与安全会话重新协商 的差别在于,安全会话参数中所包括的所有密钥(和/或安全会话参数中所包括的密钥来 自于其的密钥)都随着安全会话重新协商而重新生成。然而,随着安全会话恢复,安全会话 参数中所包括的一个或多个密钥(和/或安全会话参数中所包括的密钥来自于其的密钥)被 再次使用而无需由证书服务106和/或标识提供方104重新生成。此外,由于安全会话重 新协商,证书服务106和标识提供方104能够(但无需如此)与作为中间方进行操作的计算 设备102进行通信,而随着安全会话恢复,证书服务106和标识提供方104能够绕开计算设 备102互相通信。
[0022] 还应当注意的是,能够执行安全会话恢复和安全会话重新协商的各种组合。例如, 证书服务106可以首先恢复会话,并且随后重新协商该会话。应当进一步注意的是,能够使 用安全会话协商和/或安全会话恢复以外的其它技术。证书服务106能够使用允许计算 设备102向证书服务106提供安全会话参数的任意技术,并且允许证书服务106以某种方 式对那些安全会话参数进行利用而将用户证书从证书服务106安全地传送至标识提供方 104,而无需计算设备102能够看到或了解该用户证书。
[0023] 虽然本文主要参考用户证书进行讨论,但是应当注意的是,如以下更为详细讨论 的,证书服务106可替换地(除了用户证书之外或者作为其替代)能够与提供用户证书类似 地向标识提供方104提供附加用户特定信息。该附加用户特定信息可以包括有关计算设备 102的用户和/或与标识提供方104相关联的用户账户的各种信息,诸如收货地址、账单地 址、联系电话号码、信用卡号码等。在一个或多个实施例中,这样的附加用户特定信息仅在 计算设备102的用户进行请求的情况下才由证书服务106进行保存并提供。例如,附加用 户特定信息可以由用户提供(或者具有来自其的授权),并且因此仅在用户提供或授权该信 息的保存时才能给进行保存。此外,在一个或多个实施例中,如以下更为详细讨论的,与向 标识提供方14提供用户证书类似,附加用户特定信息仅响应于指示用户想要令附加用户 特定信息提供给标识提供方104的用户输入(例如,选择菜单选项、按钮、图标、链接等)才由 证书服务106提供给标识提供方104。
[0024] 图2图示了依据一个或多个实施例的针对计算设备保护用户证书的示例系统 200。系统200与图1的系统100类似,包括计算设备202、多个(x)Web服务204和证书服 务206。计算设备102是图1的计算设备102的示例,Web服务204是图1的标识提供方 104的每个示例(或者图1的标识提供方104和信赖方108的组合),而证书服务206是图1 的证书服务106的示例。虽然图2参考Web服务对示例系统加以讨论,但是应当注意的是, 参考图2所讨论的技术也能够随其它标识提供方(例如,图1的标识提供方104)使用。
[0025] 每个Web服务204托管一个或多个网页212,使得这些网页可被计算设备202所使 用。计算设备202包括从Web服务204接收网页212的Web浏览器214,其通常在计算设备 202显示或以其它方式呈现所接收的网页。在一个或多个实施例中,Web浏览器214自动检 测在计算设备202所接收的网页何时请求用户证书。
[0026] 系统200图示了请求用户证书的示例网页216。网页216是从Web服务204所接 收并且被Web浏览器214进行显示的网页212。如所图示的,网页216请求作为用户ID和 密码的用户证书。网页216包括提示和数据输入字段,其供计算设备202的用户输入用户 的ABC公司或服务的账户的用户ID和密码。
[0027] Web浏览器214能够以不同方式自动检测在计算设备202所接收的网页正在请求 用户证书。在一个或多个实施例中,Web浏览器214对所接收的网页进行分析并且识别包括 用于用户证书的提示和/或数据输入字段的网页,诸如用于用户ID、用户标识符、用户电子 邮件地址、密码、个人标识号码(PIN)数值等的提示和/或数据输入字段。该分析和识别能 够以不同方式来执行,诸如通过针对包括"用户ID"、"用户标识符"、"密码"等的标签而分析 网页的源描述(例如,HTML (超文本标记语言)或其它标记语言),通过针对文本"用户ID"、 "用户标识符"、"密码"等分析所显示的网页。可替换地,网页可以包括向Web浏览器214指 示该网页正在请求用户证书的标签或数值。可替换地,Web服务204可以独立于网页而提 供该网页正在请求用户证书的指示(例如,Web服务204可以提供一个指示从Web服务204 所接收的下一个网页将请求用户证书的网页或其它信号)。可替换地,Web浏览器214能够 被配置以Web服务204请求用户证书的方式或以其它方式对其加以了解。
[0028] 响应于检测到请求用户证书的网页,Web浏览器214提示计算设备202的用户该用 户证书能够由证书服务206所提供。例如,能够显示指示用户证书能够由证书服务206所 提供的菜单选项、按钮、图标、链接等,并且计算设备202的用户能够选择菜单选项、按钮、 图标、链接等来指示其期望用户证书由证书服务206所提供。可替换地,响应于检测到请求 用户证书的网页,Web浏览器214能够自动向证书服务206指示证书服务206要提供用户 证书。
[0029] 不同于Web浏览器214自动检测网页正在请求用户证书,可替换地,计算设备202 的用户能够指示网页正在请求用户证书。该指示可以以各种方式来提供。例如,Web浏览器 214能够将特定用户输入(例如,特定菜单选项的选择,执行特定手势等)认为是使得证书服 务206为该用户提供用户证书的用户请求。响应于这样的用户输入,Web浏览器214能够 确定网页正在请求用户证书,并且能够向证书服务206指示证书服务206要提供用户证书。
[0030] 虽然在图2中参考网页进行了讨论,但是应当注意的是,证书服务206能够类似地 自动检测来自标识提供方(例如,图1的标识提供方104)的页面或其它请求正在请求用户 证书,或者接收这样的用户指示。
[0031] 证书服务206保存web服务204的Web服务用户证书218。Web服务用户证书218 能够包括任意数量的计算设备202的任意数量的用户(任意数量的证书服务用户账户)的 用户证书和任意数量的web服务204。计算设备202的用户在证书服务206上具有证书服 务用户账户,并且为了登录到其证书服务用户账户,计算设备202的用户向证书服务206认 证其自己。该认证可以在接收网页216之前和/或接收网页216之后执行。用户能够以各 种不同方式向证书服务206认证其自己,诸如通过向证书服务206证明用户拥有有效证书, 诸如秘密短语(例如,密码或个人标识号码(PIN))、特定特征(例如,指纹)、对应于证书的私 钥(例如,基于智能卡或信任平台模块(TPM)的认证(例如,基于可从Trusted Computing Group获得的2011年3月的TPM主要规范1. 2修订本116))、临时秘密(例如,一次性密码), 等等。用户向证书服务206认证其自己的方式可以基于证书服务206所实施的方式和/或 用户的期望而变化。例如,如果用户偏向于不使用指纹来认证用户,则该用户能够选择向证 书服务206认证其自己的其它方式和/或选择不使用证书服务206。
[0032] 证书服务206将计算设备202的用户的一个或多个用户证书集合(通过其证书服 务用户账户)与特定Web服务204相关联。用户证书最初被计算设备202的用户提供给证 书服务206,或者可替换地由另一设备或服务(例如,具有来自计算设备202的用户的许可) 所提供,或者能够由证书服务206所生成并且被其进行保存。用户能够仅提供一次其特定 Web服务204的用户证书,因为用户证书被证书服务206所保存。当在计算设备202接收到 请求用户证书的网页,并且证书服务206要提供用户证书时,证书服务206识别与计算设备 202的用户相关联的用户证书以及要从其接收网页的Web服务204。从其接收网页的Web 服务204能够以不同方式来识别,诸如被包括为统一资源定位符(URL)或其它网页标识符 的一部分,被包括为网页的源描述(例如,HTML或其它标记语言)中的标签或其它标识符,等 等。
[0033] 证书服务206自动为网页216输入计算设备202的用户的用户证书。可替换地,如 果证书服务206为用户保存了与Web服务204相关联的多个用户证书集合,则用户能够被 给予针对用户的多个用户证书集合中的哪一个的选择(或者集合之一能够被证书服务206 所选择,诸如基于配置设置或者用户之前提供给证书服务206的输入)。证书服务206所输 入的特定用户证书可以取决于网页所请求的用户证书。例如,在网页216上针对计算设备 202的用户输入用户ID和密码。如以下更为详细讨论的,用户证书在无需计算设备202 了 解用户证书的情况下由证书服务206在网页216上输入并且经由计算设备202提供至Web 服务204。
[0034] 图3图示了依据一个或多个实施例的针对计算设备保护用户证书的示例系统 300。系统300类似于图1的系统100和图2的系统200,包括计算设备302、标识提供方 304和证书服务306。计算设备302是图1的计算设备102和/或图2的计算设备202的 示例,标识提供方304是图1的标识提供方104和/或图2的web服务204的示例,并且证 书服务306是图1的证书服务106和/或图2的证书服务206的示例。
[0035] 安全会话是指两个实体之间的安全连接,诸如实体提供方304和计算设备302之 间,实体提供方304和证书服务306之间,等等。安全会话被保护而防止(在其间建立该安 全会话的两个实体以外的)其它实体看到或篡改经由该安全会话传送的数据。安全会话能 够以各种不同方式中的任意方式来实施,通常使用一个或多个安全密钥对经由安全会话传 输的数据进行加密和/或解密。在一个或多个实施例中,安全会话使用安全套接字层(SSL) 或传输层安全(TLS)而被实施为传输工具,但是可替换地也能够使用其它安全通信技术。因 此,虽然其它各方能够看到加密数据,但是其它各方并不知道会话密钥并且因此无法看到 或修改数据。
[0036] 安全会话具有一个或多个相关联的安全会话参数。这些安全会话参数可以包括一 个或多个密钥(例如,一个或多个SSL密钥)、一个或多个cookie、一个或多个证书,等等。这 些参数与安全会话相关联并且因此也被称作安全会话参数,但是并非这些参数中的全部都 需要被保护(例如,SSL密钥通常被保持安全,而cookie则通常并不需要如此)。与安全会 话相关联的特定安全会话参数包括足以实施该安全会话的参数,并且可选地可以包括一个 或多个另外的参数。例如,对于安全超文本传输协议(HTTPS)连接而言,安全会话参数包括 一个或多个SSL或TLS密钥以及一个或多个cookie。使用SSL密钥所实施的安全会话的安 全会话参数通常包括单个主密钥,从该单个主密钥所得出的四个会话密钥(用于每个方向 的加密和签名),并非安全敏感(并且无需保护)的状态(序列号),以及信道绑定令牌(来自重 新协商的先前会话的TLS "完成"消息)。
[0037] 当用户证书要被提供至标识提供方304时,在标识提供方304和计算设备302之 间建立安全会话。该安全会话在图3中被图示为安全会话#1(312)。计算设备302向证书 服务306提供安全会话参数314。安全会话参数314是与安全会话#1相关联的安全会话 参数。计算设备302还可以像证书服务306提供各种附加信息以便促进证书服务306向标 识提供方304提供用户证书。所提供的特定附加信息能够根据用户证书被请求和/或提供 至标识提供方304的方式而有所变化。例如,如果用户证书由网页(例如,图2的网页216) 所请求,则附加信息可以包括各种网页状态,诸如JavaScript状态、cookie、文档对象模块 (D0M)存储、闪存等。
[0038] 利用与安全会话#1相关联的安全会话参数的知识,证书服务306能够读取标识提 供方304经由安全会话#1所发送的数据并且还经由安全会话#1向标识提供方304发送数 据。证书服务306能够使用计算设备302作为中介经由安全会话#1与标识提供方304进 行通信,这在图3中被图示为安全会话#1(316)。使用计算设备302作为中介,来自标识提 供方304的数据经由安全会话#1被传输至计算设备302,并且随后经由安全会话#1从计算 设备302传输至证书服务306,并且来自证书服务306的数据经由安全会话#1被传输至计 算设备302并且随后经由安全会话#1从计算设备302被传输至标识提供方304。作为中介 的计算设备302是指将从标识提供方304所接收的数据经由安全会话简单地传递至证书服 务306,并且将从证书服务306所接收的数据经由安全会话传递至标识提供方304的计算设 备 302。
[0039] 利用作为标识提供方304和证书服务306之间的中介进行操作的计算设备302,标 识提供方304向计算设备302发送数据并从其接收数据。标识提供方304无需了解(但是 可替换地可以对其有所了解)证书服务306和/或由证书服务306提供给标识提供方304 的数据,因为该数据是由标识提供方304从计算设备302所接收。类似地,标识提供方304 无需了解从标识提供方304提供给计算设备302的数据被传递至证书服务306 (但是可替 换地可以对其有所了解)。因此,标识提供方304实际上相信标识提供方304是在与计算设 备302而不是证书服务306进行通信。
[0040] 证书服务306随后重新协商安全会话#1。该重新协商导致在标识提供方304和 证书服务306之间建立新的安全会话,并且在图3中被图示为安全会话#2 (318)。重新协 商安全会话是指为安全会话生成一个或多个新的安全会话参数(例如,一个或多个安全密 钥)。重新协商安全会话可以使用所涉及各方(例如,证书服务306和标识提供方304)所公 知的各种技术以各种方式来执行。例如,安全会话重新协商能够使用SSL重新协商或者如 2010年2月 Internet engineering Task Force RFC 5746的''Transport Layer Security (TLS) Renegotiation Extension"中所讨论的重新协商来执行。
[0041] 安全会话的重新协商利用计算设备302作为中介而在标识提供方304和证书服务 306之间完成。因此,虽然重新识别在标识提供方304和证书服务306之间执行,但是标识 提供方304继续与计算设备302进行通信而无需了解到安全会话#2是与证书服务306而 不是计算设备302所建立。然而,由于安全会话的重新协商在标识提供方304和证书服务 306之间完成并且计算设备302作为中介,所以计算设备302并不了解与安全会话#2相关 联的安全会话参数。
[0042] 证书服务306经由安全会话#2向标识提供方304提供所请求的用户证书。用户 证书能够以任意的各种不同方式来提供,诸如使用HTTPS Post请求、使用超文本传输协议 (HTTP) Put请求、使用JavaScript Submit方法、使用基本认证方案、使用摘要认证方案等 提供。可替换地,用户证书能够基于用户证书自身的属性而以其它方式来提供(例如,针对 数字认证证书,安全会话自身的建立能够提供用户证书)。标识提供方304因此就像用户证 书由计算设备302所提供那样而接收用户证书,但是计算设备302并不了解该用户证书。
[0043] 证书服务306随后重新协商安全会话#2。该重新协商导致了在标识提供方304 和证书服务306之间建立新的安全会话,并且其在图3中被图示为安全会话#3 (320)。安 全会话的重新协商利用计算设备302作为中介而在标识提供方304和证书服务306之间完 成。因此,虽然重新协商在标识提供方304和证书服务306之间执行,但是标识提供方继续 与计算设备302进行通信并且无需了解到安全会话#3是与证书服务306而不是计算设备 302所建立。然而,由于安全会话的重新建立是在标识提供方304和证书服务306之间完成 并且计算设备302作为中介,所以计算设备302并不了解与安全会话#3相关联的安全会话 参数。
[0044] 证书服务306向计算设备302提供安全会话参数322。安全会话参数322是与安 全会话#3相关联的安全会话参数。利用对与安全会话#3相关联的安全会话参数的知识, 计算设备302能够读取标识提供方304经由安全会话#3所发送的数据并且还经由安全会 话#3向标识提供方304发送数据。计算设备302能够经由安全会话3与标识提供方304 进行通信,其在图3中被图示为安全会话#3(324)。因此,计算设备302能够继续经由安全 会话与标识提供方304进行通信,并且用户证书由证书服务306利用计算设备302而经由 安全连接提供给标识提供方304,尽管计算设备302并不了解该用户证书。
[0045] 参考重新协商安全会话而对系统300进行讨论。可替换地,不同于使用安全会话 重新协商,证书服务306能够使用安全会话恢复。如果使用安全会话恢复,则与安全会话#1 相关联的安全会话参数中所包括的一个或多个密钥(和/或安全会话参数中所包括的密钥 所属的密钥)被重新使用并且无需由证书服务306和/或标识提供方304重新生成。因此, 不同于重新协商安全会话#1以建立安全会话#2,安全会话#1能够被恢复以建立安全会话 #2。类似地,不同于重新协商安全会话#2以建立安全会话#3,安全会话#1能够被恢复以建 立安全会话#3。还应当注意的是,如果使用了安全会话恢复,则证书服务306和标识提供方 304之间的通信并不通过计算设备302 ;证书服务306和标识提供方304之间的通信绕过计 算设备302,以使得计算设备302并不操作为证书服务306和标识提供方304之间的中介。
[0046] 恢复安全会话恢复能够使用所涉及各方(例如,证书服务306和标识提供方304) 所知的各种技术以各种方式来执行。例如,安全会话能够使用SSL恢复来执行,或者使用 2008 年 1 月的 Network Working Group RFC 5077 "Transport Layer Security (TLS) Session Resumption without Server-Side State" 中所讨论的恢复来执行。
[0047] 应当注意的是,虽然在图3中并未图示,但是计算设备302能够重新协商安全会话 #3,这使得在标识提供方304和计算设备302之间建立了新的安全会话#4。与安全会话#4 相关联的安全会话参数将不会被证书服务306所知,因此这将无法读取经由安全会话#4所 发送的数据并且无法经由安全会话#4发送数据。
[0048] 还应当注意的是,当安全会话参数从计算设备302传输至证书服务306,或者从证 书服务306传输至计算设备302时,安全会话参数以安全的方式进行传输以防止任何干涉 设备获得安全会话参数。安全会话参数(以及在计算设备302和证书服务306之间传输的 其它数据)能够以各种不同的安全方式进行传输,诸如计算设备302利用证书服务306的公 /私钥配对中的公钥或者计算设备302和证书服务306双方所知的密钥对安全会话参数进 行加密,证书服务306利用计算设备302的公/私钥配对中的公钥或者计算设备302和证 书服务306双方所知的密钥对安全会话参数进行加密,等等。
[0049] 此外,在一个或多个实施例中,安全会话参数(或至少安全密钥)被计算设备302和 证书服务306以安全方式进行保存。例如,安全会话参数能够被保存在计算设备302的信 任计算库或信任平台模块中,并且从计算设备302的信任计算库或信任平台模块而不是计 算设备302的Web浏览器传输至证书服务306。类似地,安全会话参数能够被保存在证书服 务306的设备的信任计算库或信任平台模块中,并且从证书服务306的信任计算库或信任 平台模块而不是证书服务306的其它组件或模块被传输至计算设备302。
[0050] 应当注意的是,如以上所讨论的,证书服务306能够经由其中计算设备302作为中 介的安全会话与标识提供方304进行通信,在这种情况下,标识提供方304实际上相信标识 提供方304正在与计算设备302而不是证书服务306进行通信。因此,在这样的情况下,无 需对标识提供方304进行改变以支持本文中所讨论的针对计算设备保护用户证书的技术。 标识提供方304在没有针对其的任何修改的情况下继续与计算设备302进行通信,这允许 标识提供方304不会注意到其从证书服务306接收用户证书的事实。
[0051] 还应当注意的是,虽然图3中图示了三个安全会话,但是安全会话能够被重新协 商或恢复任意次数。例如,安全会话能够在建立安全会话#1之后以及建立安全会话#2之 前被重新协商或恢复任意次数。作为另一个示例,安全会话能够在建立安全会话#2之后以 及建立安全会话#3之前被重新协商或恢复任意次数。
[0052] 返回图2,本文包括关于计算设备202和证书服务206之间的各种数据或信息的通 信(例如,用户证书的至少一部分、特定数值等)的讨论。这样的数据或信息能够以各种不同 的安全方式进行通信,诸如计算设备202利用证书服务206的公/私钥配对中的公钥或者 计算设备202和证书服务206双方所知的密钥对该数据或信息进行加密,证书服务306利 用计算设备202的公/私钥配对中的公钥或者计算设备202和证书服务206双方所知的密 钥对该数据或信息进行加密,等等。
[0053] 在一个或多个实施例中,Web浏览器214向计算设备202的用户提示用户证书能够 由证书服务206所提供,并且用户输入请求证书服务206提供能够被接收的用户证书。针 对用户的提示无需指定任何部分的用户证书。可替换地,Web浏览器214能够在提示中显 示或者以其它方式呈现至少一部分用户证书。例如,能够出现用户具有与相同Web服务204 相关联的多个不同用户证书的情形。在这样的情况下,Web浏览器214能够与证书服务206 进行通信以获得与提供请求用户证书的网页的Web服务204相关联的用户证书的至少一部 分(例如,用户名但没有密码)。Web浏览器214能够在提示中显示所获得的用户证书的各个 不同部分(例如,各个用户名)并且接收用户对用户证书之一的选择(例如,经由菜单选项、 按钮、图标、链接等的选择)。如以上所讨论的,Web浏览器214将所选择的用户证书之一的 指示传输至证书服务206,后者继续将所选择的用户证书之一(例如,用户名和密码)提供给 Web 服务 204。
[0054] 作为另一个示例,Web浏览器214能够与证书服务206进行通信以获得与提供请 求用户证书的网页的Web服务204相关联的用户证书的至少一部分(例如,用户名但没有密 码)。Web浏览器214能够在提示中显示所获得的用户证书的部分。例如,如果与Web服务 214相关联的用户名是"AliceTheGreat",则Web浏览器214能够显示引用"单击此处作为 AliceTheGreat签到"的菜单选项、按钮或链接。如以上所讨论的,如果被提供至Web服务 204的请求该用户证书的用户输入被接收,则Web浏览器214将该用户请求的指示传输给证 书服务206,后者继续进行以将所选择的用户证书之一(例如,用户名和密码)提供给Web服 务 204。
[0055] 此外,在一个或多个实施例中,多个用户能够在证书服务206上共享相同的证书 服务用户账户,但是在Web服务204上具有不同的相关联用户账户。这些多个用户能够以 相同方式向证书服务206认证他们自己,并且依赖于计算设备202 (例如,Web浏览器214) 执行附加认证以在与不同用户相关联的Web服务204的用户证书之间进行区分。所要执行 的附加认证能够以不同方式进行识别,诸如由证书服务206所保存(例如,如以下更为详细 讨论的,与Web服务204的用户证书相关联的策略),由计算设备202所保存,等等。例如, 两个用户可以在证书服务206上具有证书服务用户账户,他们针对上述证书服务用户账户 而使用相同用户名(例如,"JackAndJill")和密码对该证书服务206认证他们自己,但是 他们具有与相同Web服务204相关联的不同用户账户。每个用户使用相同用户名(例如, "JackAndJill")向证书服务206认证其自己,并且向计算设备202提供附加认证信息(例 如,指纹扫描、PIN等)以单独地向与Web服务204相关联的特定用户账户认证他们自己。计 算设备202向与Web服务204相关联的特定用户账户认证用户(例如,一个用户利用用户名 "Jack"向Web服务204上的用户账户进行认证,而其它用户则利用用户名"Jill"向Web服 务204上的用户账户进行认证),并且向证书服务206提供该特定用户账户的指示。用户证 书(例如,用户名)的至少一部分能够在计算设备202向用户进行显示以允许该用户选择其 正在向与Web服务204相关联的哪个用户账户进行认证,或者可替换地,计算设备202能够 基于附加认证而自动选择与Web服务204相关联的用户账户(例如,自动选择对应于用户所 提供的指纹或PIN的用户账户)。
[0056] 如以上参考图3所讨论的,证书服务206能够以各种方式向Web服务204提供用 户证书,诸如使用HTTPS Post请求或HTTP Put请求。在一个或多个实施例中,Web浏览器 214生成HTTPS Post或HTTP Put请求并且将所生成的HTTPS Post或HTTP Put请求提供 给证书服务206。证书服务206将用户证书添加至所接收的HTTPS Post请求或HTTP Put 请求,并且随后经由适当的安全会话将该HTTPS Post请求或HTTP Put请求提供给Web服 务204。在Web浏览器214 了解用户证书的至少一部分(例如,用户名)的情况下,则Web浏 览器214所生成的HTTPS Post请求或HTTP Put请求能够包括Web浏览器214所知道的用 户证书部分,并且证书服务206能够添加 Web浏览器214所不知道的用户证书部分。
[0057] 图4图示了依据一个或多个实施例的示例证书服务400。证书服务400例如可以 是图1的证书服务106、图2的证书服务206和/或图3的证书服务306。证书服务400包 括输入/输出(1/0)模块402、通信模块404、用户证书管理模块406、用户认证模块408和 用户证书存储410。所要意识到的是,证书服务400还可以包括用于提供证书服务400的 各种功能的一个或多个附加组件或模块。模块402、404、406和408能够以软件、固件、硬件 或者其组合来实施。当以软件或固件实施时,模块402、404、406和408中的每一个包括由 处理器或控制器所执行的一个或多个指令。模块402、404、406和408可以被实施为操作系 统的一部分,或者能够独立于操作系统来实施。虽然被图示为分离的模块402、404、406和 408,但是应当注意的是,一个或多个模块402、404、406和408的功能能够被划分为多个模 块,和/或一个或多个模块402、404、406和408中的至少一些功能能够被组合为单个模块。
[0058] 1/0模块402从证书服务400的用户接收用户输入。这些用户输入通常从另一个 设备(例如,图1的计算设备102、图2的计算设备202和/或图3的计算设备302)所接收 并且被传输至证书服务400。1/0模块402还生成、管理和/或输出用于证书服务400的用 户界面。该用户界面向证书服务400的用户显示或以其它方式呈现各种信息,诸如提示输 入与Web服务相关联的用户证书,提示选择要提供至Web服务的用户输入证书,等等。该用 户界面通常被传输到在另一设备(例如,图1的计算设备102、图2的计算设备202和/或图 3的计算设备302)处的用户并且向其进行显示或以其它方式呈现。
[0059] 通信模块404管理从其它组件或服务接收的通信以及向其它组件或服务发送通 信,上述其它组件或服务诸如图1的计算设备102、图2的计算设备202和/或图3的计算 设备302。通信模块404能够支持用于经由各种不同网络或者其它连接或耦合而进行通信 的各种不同技术和协议,包括无线和/或有线技术和协议。
[0060] 用户证书管理模块406管理保存在用户证书存储410中的用户证书,包括获取用 户证书、增加用户证书、改变用户证书和/或删除用户证书。用户证书存储410能够以各种 不同方式来实施,诸如使用数据库、表格或其它记录。用户证书存储410通常保存在诸如闪 存、磁盘等的非易失性存储器中,但并非需要如此。虽然用户证书存储410被图示为证书服 务400的一部分,但是可替换地,用户证书存储能够保存在可由证书服务400所访问的另一 个组件或设备中。
[0061] 在图4的示例中,用户证书存储410包括多个(X)用户证书412,其中每一个与特 定标识提供方标识符414以及多个证书服务用户账户中的每一个的策略416相关联。用户 证书能够通过经由I/O模块402所接收的用户输入直接输入到证书服务400,或者可替换 地,以其它方式进行输入(例如,从另一个设备上的用户证书存储进行输入)。例如,用户能 够向另一个计算设备输入用户证书,并且使得那些用户证书被传输到证书服务400。如以上 所讨论的,不同类型的用户证书能够被不同Web服务所使用,从而不同用户证书412能够是 不同类型的用户证书。在一个或多个实施例中,除了用户证书412之外,如以上所讨论的与 特定标识提供方相关联的附加用户具体信息能够被保存在与用户证书412类似的用户证 书存储中。
[0062] 每个用户证书412与一个或多个标识提供方标识符414相关联。与特定用户证书 412相关联的标识提供方标识符414是特定用户证书能够被用来针对其认证用户的特定标 识提供方的标识符(例如,URL、IP地址、文件共享名称等)。虽然用户证书412利用与标识 提供方标识符414的一对一关联进行图示,但是可替换地,特定用户证书412能够与多个标 识提供方标识符414相关联,和/或特定标识提供方标识符414能够与多个用户证书412 相关联。
[0063] 特定用户证书412与特定标识提供方标识符414的关联通常在用户证书被添加至 用户证书存储410时被识别。与特定用户证书412相关联的特定标识提供方标识符414的 识别通常从与用户证书相同的来源所接收(例如,证书服务400的用户、另一个计算设备、 智能卡等)。可替换地,与特定用户证书412相关联的特定标识提供方标识符414的识别能 够在不同时间和/或从不同来源接收。例如,用户证书管理模块406能够经由I/O模块402 接收用户输入以将标识提供方标识符414添加为与之前存储在用户证书存储410中的特定 用户证书412相关联,或者将之前存储在用户证书存储410中的标识提供方标识符414改 变为与特定用户证书412相关联。
[0064] 应当注意的是,用户能够在用户所期望的各种时间提供输入以改变用户证书412。 改变用户证书的用户输入能够从各种计算设备接收,并且在一个或多个实施例中,用户证 书管理模块406仅在用于改变的用户输入来自已知设备(如在以下更为详细讨论的已知设 备)的情况下允许改变用户证书。用户证书管理模块406可选地能够允许仅对来自特定的 一个或多个设备的用户证书进行改变(例如,已经针对证书服务400被识别为小区或其它 无线电话的已知设备),和/或仅在使用特定的一种或多种类型的通信(例如,短消息服务 (SMS)消息、多媒体消息传递服务(丽S)消息等)时允许改变用户证书。因此,例如,在用户 已经使用未知设备向证书服务400认证其自己之后,其能够使用已知设备改变与特定标识 提供方相关联的用户证书,并且使得那些经改变的用户证书经由利用未知设备作为中介的 安全会话而被提供至标识提供方。用户自己能够提供针对用户证书的改变,或者可替换地, 请求另一设备或服务(例如,证书服务400)提供改变(例如,生成新的密码)。
[0065] 应当注意的是,针对用户证书的请求还可以包括用于改变用户证书的请求。例如, 图2的网页212可以是用于改变密码的请求,其请求用户证书被输入并且还请求输入新的 密码(以替换用户证书中之前的密码)。证书服务400能够自动生成新的密码并且在网页上 输入新的密码,这允许新的用户证书被生成并且被证书服务400所保存而无需用户知道新 的用户证书。证书服务400还能够被指示而以使用网页以外的方式改变用户的密码,诸如 使用任意的各种密码改变协议(例如,Kerberos网络认证协议的密码改变扩展)。
[0066] 当接收到针对用户证书的请求时,用户认证模块408识别用户证书以提供给标识 提供方。在一个或多个实施例中,该请求包括用户期望访问的标识提供方的指示。如以上 所讨论的,针对向证书服务400进行认证的用户,用户认证模块408从用户证书存储410提 取与所识别的标识提供方相关联的用户证书412 (与识别所指示的Web服务的标识提供方 标识符414相关联的用户证书),并且将所提取的用户证书412传输至Web服务。
[0067] 还会出现多个用户证书412与相同的标识提供方标识符414相关联的情形。在这 样的情形中,用户能够被提示(例如,经由I/O模块402所提供的用户界面)选择多个用户证 书之一。如以上所讨论的,当接收到用户对多个证书之一的选择时,用户所选择的用户证书 被传输至Web服务。
[0068] 在一个或多个实施例中,多个不同用户能够使用证书服务400。不同用户证书412 和相关联的标识提供方标识符414能够针对这些不同用户进行保存并与之相关联,诸如在 不同用户证书存储410中或用户证书存储410的不同部分中。要针对其提取用户证书412 的特定用户是具有证书服务用户账户的用户(或者与之相关联的用户),针对该证书服务用 户账户,用户向证书服务400认证其自己。
[0069] 应当注意的是,用户能够随时间而改变其如何向证书服务400认证其自己,诸如 改版秘密短语、改变对应于证书的密钥,等等。用户向证书服务400认证其自己的方式能 够以不同方式进行改变。在一个或多个实施例中,一旦从计算设备(例如,图1的计算设备 102、图2的计算设备202和/或图3的计算设备302)向认证服务400进行了认证,用户就 能够访问I/O模块402所提供的密码或认证改变画面或网页,其能够在那里提供各种输入 以标示出其要向证书服务400认证其自己的新的方式(例如,用户能够提供新的密码)。可替 换地,不同于经由这样的计算设备提供标示其要向证书服务400认证其自己的新的方式的 输入,证书服务400能够向与用户的证书服务用户账户相关联的附加设备(例如,如以下更 为详细讨论的已知设备)发送通信以获得其向证书服务400认证其自己的新的方式。用户 向该附加设备提供各种用户输入以标示出其要向证书服务400认证其自己的新的方式(例 如,用户能够提供新的密码),并且该设备进而将该用户输入提供至证书服务400。
[0070] 用户证书412还与策略416相关联。不同的用户证书412可以与不同策略416相 关联,或者可替换地,多个用户证书412能够与相同策略416相关联。与特定用户证书412 相关联的策略416指示有待满足以便证书服务400向标识提供方提供那些用户证书412的 条件或标准。在一些情况下,策略416可以不包括条件或者可以不存在,这指示用户证书始 终都能够被提供给标识提供方。各种不同条件或标准能够包括在策略416中。例如,条件 或标准可以包括哪个计算机是用户的已知设备(例如,如以下更为详细讨论的已知设备)的 指示,计算设备要解密的数值的指示(如以下更为详细讨论的),计算设备要向证书服务400 证明该计算设备没有已知恶意软件的指示(例如,计算设备要证明其是被信任的),有关用 户证书能够被使用的次数的限制,有关用户证书能够在特定时间范围内被使用的次数的限 制,有关用户证书能够被使用的天数的限制,有关用户位置(例如,计算设备的地理位置)的 限制,等等。
[0071] 在一个或多个实施例中,用户证书412以安全方式进行保存,诸如使用证书服务 400的密钥(例如,仅被其所知的密钥)进行加密。证书服务400基于该密钥对用户证书412 进行解密以经由如以上所讨论的安全会话提供至Web服务或其它标识提供方。
[0072] 证书服务400可替换地能够基于证书服务400的密钥和用户的计算设备的密钥对 用户证书进行加密。在一个或多个实施例中,使用证书服务的密钥和计算设备的密钥对数 值(例如,用来对用户证书进行加密和/或解密的主密钥,用户证书自身,等等)进行加密。 例如,用户证书(或者用来解密用户证书的密钥)能够使用证书服务的密钥以及使用计算设 备的密钥加密的结果进行加密,用户证书(或者用来解密用户证书的密钥)能够使用计算设 备的密钥以及使用证书服务的密钥加密的结果进行加密,等等。
[0073] 在一个或多个实施例中,为了对数值(例如,用来对用户证书进行加密和/或解密 的主密钥,用户证书自身,等等)进行加密,证书服务400使用证书服务400的密钥对该数值 进行加密并且将加密数值传输至计算设备,该计算设备进而使用计算设备的密钥对所接收 的(已经使用证书服务400的密钥进行过加密的)数值进行加密并且将加密数值返回至证书 服务400。为了对该数值进行解密,证书服务400向计算设备传输加密数值。用户能够被 提示(例如,被计算设备自身)以确认(通过提供任何各种用户输入)其想要令证书服务400 向标识提供方提供用户证书。如果用户并未确认其想要令证书服务400向标识提供方提供 用户证书,则计算设备并不对加密数值进行解密。然而,如果用户确认了其想要令证书服务 400向标识提供方提供用户证书,则计算设备使用计算设备的密钥对加密数值进行解密。计 算设备将解密数值传输至证书服务400,后者进一步使用证书服务400的密钥对所接收数 值进行解密。
[0074] 因此,在用户证书至少部分基于从用户的计算设备所获得的密钥加密保存的情况 下,用户得以被保护而免于受到针对证书服务400的恶意攻击的影响。如果攻击方要危害 到证书服务400,则攻击方将仍然无法获得证书服务的各用户的用户证书,因为攻击方将无 权访问来自那些各用户的计算设备的密钥。
[0075] 在证书服务400基于证书服务400的密钥和用户的计算设备的密钥对用户证书进 行加密的情况下,计算设备的密钥能够以各种方式被置于计算设备上。在一个或多个实施 例中,计算设备密钥由诸如信任平台模块的硬件安全模块(HSM)、一个计算设备(例如,响应 于请求该计算设备被用来授权证书服务向标识提供方提供用户的用户证书的用户输入)所 创建并保存。HSM保护计算设备密钥,并且将计算设备密钥提供给用户所请求的其它计算设 备。HSM对计算设备密钥进行加密并且将经加密的计算设备密钥提供给一个或多个其它计 算设备(按照用户的请求),这允许那些一个或多个其它计算设备能够访问相同的计算设备 密钥并且因此允许相同的计算设备密钥成为证书服务400对用户证书进行加密的基础。可 替换地,不同计算设备能够具有不同的计算设备密钥,并且证书服务400能够保存以多种 不同方式所加密的用户证书(例如,针对不同计算设备密钥中的每一个的一组经加密的用 户证书)。
[0076] HSM对计算设备密钥进行加密(例如,使用另一个计算设备的公/私钥配对的公 钥)并且仅在被授权的情况下将经加密的计算设备密钥提供给其它计算设备。可替换地,证 书服务400的HSM能够保存计算设备密钥,并且证书服务400的HSM能够对计算设备密钥 进行加密(例如,使用另一个计算设备的公/私钥配对的公钥)并且仅在被授权的情况下将 经加密的计算设备密钥提供给其它计算设备。无论哪个HSM提供经加密的计算设备密钥, 都能够以各种方式来确定HSM是否被授权向计算设备提供计算设备密钥。例如,HSM能够 要求用户提供各种证明其身份的信息(例如,其出生日期、宠物名字、其母亲未婚时的姓名、 PIN等)以便被授权向计算设备提供计算设备密钥。作为另一个示例,HSM能够要求来自现 有已知(或信任)计算设备的证书被提供以便被授权向计算设备提供计算设备密钥。作为又 另一个示例,HSM能够要求附加密钥(例如,注册密钥)被提供至HSM以便被授权向计算设备 提供计算设备密钥。
[0077] 返回图1,如以上所讨论的,除了用户证书之外或者作为其替代,证书服务106还 能够向标识提供方104提供用户特定信息。例如,除了用户id和密码之外,诸如配送地址 和信用卡号之类的用户特定信息也能够被证书服务106提供至标识提供方104。
[0078] 此外,在一个或多个实施例中,用户特定信息能够由证书服务106从一个或多个 另外的标识提供方(未示出)所获取并且被证书服务106提供给标识提供方104。类似于以 上所讨论的,用户特定信息在计算设备102不了解用户特定信息的情况下由证书服务106 经由与另外标识提供方的一个或多个安全会话所获得。
[0079] 例如,参考图2,假设Web服务A和Web服务B是不同的Web服务204,并且Web服 务A是在线购物Web服务而Web服务B是金融Web服务。来自Web服务A的网页212可以 是请求信用卡号以购买用户已经选择的物品的结算页面。用户请求可以被接收(例如,对菜 单项、按钮、图标、链接等的选择)以使得证书服务206向Web服务A提供信用卡号。响应 于这样的用户请求,证书服务206从Web服务B获得与用户相关联的信用卡号,并且将该信 用卡号提供给在线购物Web服务204。该信用卡号随后能够被用来从Web服务A购买所选 择的物品。用于使得证书服务206向Web服务A提供信用卡号的用户请求以及由证书服务 206向Web服务A提供信用卡号与以上所讨论的使得证书服务206提供用户证书的用户请 求以及通过证书服务206提供用户证书相类似。然而,不同于由证书服务206所保存的信 用卡号(因为用户证书被保存),证书服务206从其它服务获得该信用卡号。
[0080] Web服务B能够以不同方式进行识别。在一个或多个实施例中,Web服务用户证书 218包括与Web服务B相关联的计算设备202的用户的用户证书。如果与多个金融Web服 务相关联的用户证书被包括在该用户的Web服务用户证书218中,则该用户能够被提示选 择多种金融Web服务之一(例如,通过用户对菜单项、按钮、图标、链接等的选择)。响应于使 得证书服务206向Web服务A提供信用卡号的用户请求,Web浏览器214与Web服务B建立 安全会话并且将安全会话参数提供给证书服务206,与以上所讨论的相同,这允许证书服务 206重新协商或恢复安全会话并且与Web服务B进行通信。证书服务206向Web服务B提 供该用户的与Web服务B相关联的用户证书并且请求该用户的信用卡号。Web服务B提取 并生成用户的信用卡号并且将该信用卡号返回至证书服务206。与以上关于证书服务206 提供用户证书所讨论的相类似,证书服务206随后能够将从Web服务B所接收的信用卡号 经由安全会话提供给Web服务A。
[0081] 从Web服务B所获得的信用卡号可以是Web服务B所存储的该用户的信用卡号, 或者可替换地是临时或一次性信用卡号。临时或一次性信用卡号是在特定时间量内可用的 信用卡号。该特定时间量可以有所变化,但是通常相对很短(例如,24小时或更短)。临时或 一次性信用卡号可以具有有限数量的使用(例如,Web服务B能够仅允许该信用卡号被使用 一次),可以具有额度限制和/或可以与特定商家或服务相关联。例如,临时或一次性信用 卡号能够被限制为使用一次,限制为Web服务A处的特定钱数的上限。与信用卡号相关联 的钱数以及商家或服务可以由证书服务206提供给Web服务B。例如,响应于使得证书服务 206向Web服务A提供信用卡号的用户请求,Web浏览器214与Web服务B建立安全会话并 且向证书服务206提供Web服务A的指示以及钱数(例如,用于Web服务A的结算页面上的 总数)。证书服务206能够将Web服务A的指示以及钱数提供给Web服务B。Web服务B能 够将该钱数的记录以及Web服务A的指示保存为与该信用卡号相关联,并且仅在购买量少 于(和/或等于)该钱数并且商家或服务是Web服务A的情况下才验证该信用卡号能够被用 于购买的商家或服务。
[0082] 可替换地,应当注意的是,信用卡号可以被证书服务206保存为与用户相关联的 用户特定信息。在这样的情况下,证书服务206能够从证书服务206的存储(例如,图4的 用户证书存储410)提取与用户相关联的信用卡号,并且与以上所讨论的用户证书相类似, 将该信用卡号提供给Web服务204。
[0083] 返回图1,证书服务106能够与多个计算设备102进行通信。不同用户能够使用相 同和/或不同的计算设备102,并且在一个或多个实施例中,证书服务106针对每个用户账 户保存已知计算设备102的记录。该记录能够以各种方式进行保存,诸如保存在用户证书 存储(例如,图4的存储410,诸如作为策略416的一部分)中,保存在另一个存储中,等等。 计算设备102在用户已经向证书服务106指示其信任该计算设备的情况下被称作该用户的 已知计算设备。用户能够以各种方式指示其信任计算设备,诸如使用该计算设备建立其在 证书服务106的用户账户,在向证书服务106认证其自己并且登录到其在证书服务106的 账户之后选择"这是已知设备"选项(例如,菜单项、按钮、图标、链接等),等等。
[0084] 计算设备能够以各种不同方式进行识别。允许计算设备互相进行区分的任意技术 都能够被用来识别计算设备。例如,计算设备102的信任平台模块的签注密钥(EK)和证明 标识密钥(AIK)能够被用作计算设备的标识符。作为另一个示例,计算设备102用来与证 书服务106进行通信的网络适配器可以具有能够用来识别该计算设备的标识符(例如,媒 体访问控制(MAC)地址)。作为另一个示例,计算设备102的硬盘或其它存储设备可以具有 能够被用来识别该计算设备的标识符。作为另一个示例,硬件标识符(例如,计算设备的其 它硬件的MAC地址或标识符)与(如被用来登录计算设备自身上的特定账户的)用户名的组 合(例如,连结)能够被用作计算设备的标识符。
[0085] 在一个或多个实施例中,用户基于其是否使用已知设备而以不同方式向证书服务 106认证其自己。通常,如果用户正在使用已知设备,则与用户并未使用已知设备的情形相 比使用较少的信息来认证用户。在用户并未使用已知设备的情况下使用更多信息允许针对 一些用户信息可能被窃取(例如证书服务106的其证书服务用户账户的用户名或密码)的 情形进行保护一使用附加信息有助于防止其它人使用该用户的用户名和密码访问该用户 的账户。例如,如果用户正在使用已知设备,则用户名和密码可以足以向证书服务106认证 该用户,但是在用户并未使用已知设备的情况下,除了用户名和密码之外可能还需要其它 信息。该其它信息可以是经由计算设备自身所提供的信息(例如,输入用户母亲未婚时的姓 名,输入发送至另一设备上的用户的字母数字代码(例如,由证书服务106发送至用户手机 的文本消息),等等),或者是经由另一设备所提供的信息(例如,来自用户手机的针对由证 书服务106发送至用户手机的文本消息的响应)。
[0086] 可替换地,无论用户是否在使用已知设备,用户最初都能够以相同方式向证书服 务106认证其自己,但是随后向证书服务106提供附加信息以认证其自己以便证书服务106 向标识提供方提供用户证书。例如,如果用户正在使用已知设备并且使用某认证协议(例 如,证书服务106选择提供的任意认证协议)向证书服务106认证其自己,则证书服务106 响应于由证书服务106向标识提供方104提供用户证书的后续用户请求而向标识提供方 104提供用户证书。然而,如果用户并非在使用已知设备并且使用该认证协议向证书服务 106认证其自己,则证书服务106响应于由证书服务106向标识提供方104提供用户证书 的后续用户请求而从用户请求附加信息。该附加信息可以是经由计算设备自身所提供的信 息(例如,输入用户母亲未婚时的姓名,输入发送至另一设备上的用户的字母数字代码(例 如,由证书服务106发送至用户手机的文本消息),等等),或者是经由另一设备所提供的信 息(例如,来自用户手机的针对由证书服务106发送至用户手机的文本消息的响应)。如果 接收到认证用户的附加信息,则证书服务106向标识提供方104提供用户证书,而如果没有 接收到认证用户的附加信息,则证书服务106并不向标识提供方提供用户证书。
[0087] 此外,用户能够撤销计算设备的已知状态。用户能够以各种方式这样做,诸如通过 从已知计算设备(或者可替换地从任意计算设备)向证书服务106认证其自己,并且向证书 服务16提供标示不再为已知的特定计算设备的用户输入。例如,证书服务106能够向用户 显示或以其它方式呈现已知计算设备的列表,并且用户能够选择一个或多个不再为已知的 计算设备。因此,如果用户将不再使用特定计算设备,或者计算设备丢失或被窃,或者计算 设备被病毒感染,则用户设备能够撤销该计算设备的已知状态。
[0088] 本文中所讨论的针对计算设备保护用户证书支持各种不同的使用场景。例如,用 户能够针对多种不同Web服务或其它标识提供方中的每一个建立不同密码,但是无需记住 所有的密码。相反,其能够使得密码被证书服务保存为与不同Web服务或其它标识提供方 相关联的用户证书。此外,用户能够从各种不同的计算设备访问那些不同Web服务或其它 标识提供方而无需担心密码被保存在该计算设备上,因为证书服务以防止计算设备看到密 码的方式向Web服务或其它标识提供方提供该密码。
[0089] 图5是图示依据一个或多个实施例的用于针对计算设备保护用户证书的示例处 理500的流程图。处理500由证书服务所执行,诸如图1的证书服务106、图2的证书服务 206、图3的证书服务306和/或图4的证书服务400,并且能够以软件、固件、硬件或者其组 合来实施。处理500被示为动作的集合而并不局限于为了执行各种动作的操作而示出的顺 序。处理500是用于针对计算设备保护用户证书的示例处理;本文参考不同附图而包括对 于针对计算设备保护用户证书的另外讨论。
[0090] 在处理500中,从计算设备接收用于向标识提供方提供用户证书的请求(动作 502)。如以上所讨论的,用户证书与计算设备的用户和标识提供方相关联。
[0091] 还从计算设备接收第一安全会话的安全会话参数(动作504)。第一安全会话是计 算设备和标识提供方之间的安全会话,并且安全会话参数可以包括如以上所讨论的各种参 数(例如,一个或多个密钥、cookie等)。
[0092] 关于是否满足与用户证书相关联的策略而进行检查(动作506)。如以上所讨论的, 各种不同策略能够与用户证书相关联。
[0093] 如果与用户证书相关联的策略并未被满足,则用户证书不被提供给标识提供方 (动作508)。然而,如果与用户证书相关联的策略被满足,则证书服务重新协商或恢复第一 安全会话以创建第二安全会话(动作510)。如以上所讨论的,第二安全会话是证书服务与标 识提供方之间的安全会话,并且计算设备可以是证书服务和标识提供方之间的中介。安全 会话参数可以包括如以上所讨论的各种参数(例如,一个或多个密钥、cookie等)。
[0094] 证书服务向标识提供方提供用户证书(动作512)。用户证书能够以不同方式被提 供给标识提供方,诸如使用如以上所讨论的HTTPS Post请求。可选地,如以上所讨论的,能 够使用各种策略来确定证书服务是否向标识提供方提供用户证书。可选地,如以上所讨论 的,在向证书提供方提供用户证书之前还能够从用户获取附加信息(例如,如果用户并未使 用已知设备)。
[0095] 证书服务重新协商或恢复第二安全会话(动作514)。如以上所讨论的,如果证书服 务重新协商第二安全会话,则该重新协商建立第三安全会话,这是证书服务与标识提供方 之间的安全会话,并且计算设备可以是证书服务与标识提供方之间的中介。安全会话参数 能够包括如以上所讨论的各种参数(例如,一个或多个密钥、cookie等)。
[0096] 证书服务向计算设备提供安全会话参数(动作516)。安全会话参数能够包括如以 上所讨论的各种参数(例如,一个或多个密钥、cookie等)。如果证书服务在动作514中重 新协商第二安全会话,则动作516中的安全会话参数是第三安全会话的参数。然而,如果证 书服务在动作514中恢复第二安全会话,则动作516中的安全会话参数是第二安全会话的 参数。
[0097] 图6是图示依据一个或多个实施例的针对计算设备保护用户证书的示例处理600 的流程图。处理600由计算设备所执行,诸如图1的计算设备102、图2的计算设备202和 /或图3的计算设备302,并且能够以软件、固件、硬件或者其组合来实施。处理600被示为 动作的集合而并不局限于为了执行各种动作的操作而示出的顺序。处理600是用于针对计 算设备保护用户证书的示例处理;本文参考不同附图而包括对于针对计算设备保护用户证 书的另外讨论。
[0098] 在处理600中,从标识提供方接收针对用户证书的请求(动作602)。如以上所讨论 的,用户证书与计算设备的用户和标识提供方相关联。
[0099] 接收针对要由证书服务所提供的用户证书的用户请求(动作604)。如以上所讨论 的,该用户请求可以经由各种不同用户输入来提供。
[0100] 第一安全会话的安全会话参数被提供给证书服务(动作606)。第一安全会话是计 算设备和标识提供方之间的安全会话,并且安全会话参数能够包括如以上所讨论的各种参 数(例如,一个或多个密钥、cookie等)。
[0101] 计算设备经由第二安全会话将从证书服务所接收的用户证书传输至标识提供方 (动作608)。如以上所讨论的,第二安全会话是证书服务和标识提供方之间的安全会话,其 通过重新协商或恢复第一安全会话而创建。第二安全会话的安全会话参数并不被计算设备 所知,并且因此虽然计算设备并不了解用户证书,但是该用户证书被计算设备提供给标识 提供方。
[0102] 图7是图示依据一个或多个实施例的用于针对计算设备保护用户证书的示例处 理700的流程图。处理700由证书服务所执行,诸如图1的证书服务106、图2的证书服务 206、图3的证书服务306和/或图4的证书服务400,并且能够以软件、固件、硬件或者其组 合来实施。处理700被示为动作的集合而并不局限于为了执行各种动作的操作而示出的顺 序。处理700是用于针对计算设备保护用户证书的示例处理;本文参考不同附图而包括对 于针对计算设备保护证书的另外讨论。
[0103] 在处理700中,从计算设备接收向标识提供方提供用户证书的请求(动作702)。如 以上所讨论的,用户证书与计算设备的用户和标识提供方相关联。
[0104] 还从计算设备接收第一安全会话的安全会话参数(动作704)。第一安全会话是计 算设备和标识提供方之间的安全会话,并且安全会话参数能够包括如以上所讨论的各种参 数(例如,一个或多个密钥、cookie等)。
[0105] 还从计算设备接收由计算设备基于计算设备密钥所解密的数值(动作706)。如以 上所讨论的,计算设备所解密的数值可以是被证书服务提供给计算设备的加密数值。如以 上所讨论的,计算设备密钥例如可以是对称密钥。
[0106] 证书服务重新协商或恢复第一安全会话以创建第二安全会话(动作708)。如以上 所讨论的,第二安全会话是证书服务和标识提供方之间的安全会话,并且计算设备可以是 证书服务和标识提供方之间的中介。安全会话参数可以包括如以上所讨论的各种参数(例 如,一个或多个密钥、cookie等)。
[0107] 用户证书被加密保存,并且证书服务对用户证书进行解密(动作710)。如以上所讨 论的,用户证书基于在动作706从计算设备所接收的数值以及证书服务的密钥而被解密。
[0108] 证书服务向标识提供方提供用户证书(动作712)。用户证书能够以不同方式被提 供给标识提供方,诸如使用如以上所讨论的HTTPS Post请求。如以上所讨论的,可选地能 够使用各种策略来确定证书服务是否向标识提供方提供用户证书。如以上所讨论的,在向 标识提供方提供用户证书之前,可选地还可以从用户获得附加信息(例如,如果用户并未使 用已知设备)。
[0109] 证书服务重新协商或恢复第二安全会话(动作714)。如以上所讨论的,如果证书 服务重新协商第二安全会话,则该重新协商在证书服务和标识提供方之间建立第三安全会 话,并且计算设备可以是证书服务和标识提供方之间的中介。安全会话参数可以包括如以 上所讨论的各种参数(例如,一个或多个密钥、cookie等)。
[0110] 证书服务向计算设备提供安全会话参数(动作716)。安全会话参数可以包括如以 上所讨论的各种参数(例如,一个或多个密钥、cookie等)。如果证书服务在动作714重新协 商第二安全会话,则动作716中的安全会话参数是第三安全会话的参数。然而,如果证书服 务在动作714恢复第二安全会话,则动作716中的安全会话参数是第二安全会话的参数。
[0111] 图8图示了依据一个或多个实施例的能够被配置为实施针对计算设备保护用户 证书的示例计算设备800。计算设备800例如可以是图1的计算设备102、图2的计算设 备202和/或图3的计算设备302,和/或能够实施图1的标识提供方104、图1的证书服 务106、图2的Web服务204、图2的证书服务206、图3的标识提供方304、图3的证书服务 306和/或图4的证书服务400的至少一部分。
[0112] 计算设备800包括一个或多个处理器或处理单元802、能够包括一个或多个存储 器和/或存储组件806的一个或多个计算机可读媒体804、一个或多个输入/输出(I/O)设 备808、硬件安全模块(HSM) 812以及允许各个组件和设备互相通信的总线812。计算机可 读媒体804和/或一个或多个I/O设备808能够被包括为计算设备800的一部分,或者可 替换地可以耦合至计算设备800。处理器802、计算机可读媒体804、一个或多个设备808、 HSM 810和/或总线812可选地可以被实施为单个组件或芯片(例如,片上系统)。总线812 代表若干种类型的总线结构中的一种或多种,包括使用各种不同总线架构的存储器总线或 存储器控制器、外部总线、加速图形端口、处理器或局部总线等。总线812可以包括有线和 /或无线总线。
[0113] 存储器/存储组件806代表一个或多个计算机存储媒体。组件806可以包括易失 性媒体(诸如随机访问存储器(RAM))和/或非易失性媒体(诸如只读存储器(ROM)、闪存、光 盘、磁盘等)。组件806可以包括固定媒体(例如RAM,R0M,固定硬盘驱动器等)以及可移除 媒体(例如,闪存驱动器、可移除硬盘驱动器、光盘等)。
[0114] 本文所讨论的技术能够以软件来实施,其中指令由一个或多个处理单元802和/ 或HSM 810的组件(例如,处理器)所执行。需要意识到的是,不同指令能够存储在计算设备 800的不同组件中,诸如存储在处理单元802中、处理单元802的各种高速缓存存储器中、设 备800的其它高速缓存存储器(未示出)中、HSM 810中、其他计算机可读媒体上,等等。此 夕卜,需要意识到的是,指令在计算设备800中存储的位置能够随时间发生变化。
[0115] 一个或多个输入/输出设备808允许用户向计算设备800输入命令和信息,并且 还允许信息被呈现给设备的用户和/或其它组件。输入设备的示例包括键盘、光标控制 设备(例如,鼠标)、麦克风、扫描仪等。输出设备的示例包括显示设备(例如,监视器或投影 仪)、扬声器、打印机、网卡等。
[0116] HSM 810例如可以是如以上所讨论的信任平台模块。HSM 810保存密钥(或者加密 和/或解密密钥)并且执行计算设备800的各种基于密钥的操作(例如,密钥的生成、基于密 钥加密数据或数值、基于密钥解密数据或数值,等等)。
[0117] 各种技术在本文中可以以软件或程序模块的总体背景进行描述。通常,软件包括 执行特定任务或实施特定抽象数据类型的例程、程序、应用、对象、组件、数据结构等。这些 模块和技术的实施方式可以存储在一些形式的计算机可读媒体上或者跨它们进行传送。计 算机可读媒体可以是能够被计算设备所访问的任意可用介质或媒体。作为示例而非限制, 计算机可读媒体可以包括"计算机存储媒体"和"通信媒体"。
[0118] "计算机存储媒体"包括以用于存储诸如计算机可读指令、数据结构、程序模块或 其它数据的信息的任意方法或技术所实施的易失性和非易失性、可移除和不可移除媒体。 计算机存储媒体包括而并不局限于RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字 多功能盘(DVD)或其它光学存储、磁性卡盒、磁带、磁盘存储或其它磁性存储设备,或者能够 被用来存储所期望信息并且能够被计算机所访问的任意其它介质。与仅是信号传输、载波 或信号本身相比,计算机存储媒体是指用于存储信息的媒体。因此,计算机存储媒体是指非 信号承载媒体,而并非是通信媒体。
[0119] "通信媒体"通常以诸如载波或其它传输机制的经调制的数据信号体现计算机可 读指令、数据结构、程序模块或其它数据。通信媒体还可以包括任意信息传递媒体。术语"调 制数据信号"意味着其具有一个或多个特征集合或者以对信号中的信息进行编码的方式发 生变化的信号。作为示例而非限制,通信媒体包括诸如有线网络或直接线路连接的有线媒 体,以及诸如声学、RF、红外和其它无线媒体的无线媒体。以上任意的组合也包括在计算机 可读媒体的范围之内。
[0120] 通常,本文中所描述的任意功能或技术能够使用软件、固件、硬件(例如,固定逻辑 电路)、人工处理或者这些实施方式的组合来实施。如这里所使用的术语"模块"和"组件" 通常表示软件、固件、硬件或其组合。在软件实施方式的情况下,模块或组件表示在处理器 (例如,一个或多个CPU)上执行时实施所指定任务的程序代码。程序代码能够被存储在一 个或多个计算机可读存储器设备中,其进一步的描述可以参考图8而找到。在硬件实施方 式的情况下,模块或组件表示执行所特定任务的功能模块或其它硬件。例如,在硬件实施方 式中,模块或组件可以是专用集成电路(ASIC)、现场可编程门阵列(FPGA)、复杂可编程逻 辑设备(CPLD)等。本文所描述的针对计算设备保护用户证书的技术的特征是独立于平台 的,这意味着该技术可以在具有各种处理器的各种商业计算平台上得以实施。
[0121] 虽然已经以特定于结构特征和/或方法学动作的语言对主题进行了描述,但是所 要理解的是,所附权利要求中所限定的主题并非必然局限于以上所描述的具体特征或动 作。相反,以上所描述的具体特征和动作是作为实施权利要求的示例形式所公开。
【权利要求】
1. 一种由证书服务所实施的方法,该方法包括: 从计算设备接收将与该计算设备的用户相关联的用户证书提供至标识提供方的请 求; 从该计算设备接收该计算设备和标识提供方之间的第一安全会话的安全会话参数; 从证书服务重新协商或恢复该第一安全会话,这导致证书服务和标识提供方之间的第 二安全会话;并且 经由该第二安全会话将与用户相关联的用户证书提供至标识提供方。
2. 根据权利要求1的方法,该标识提供方是多个标识提供方之一,该方法进一步包括: 保存与用户相关联的多个不同用户证书,多个不同用户证书中的每一个与多个标识提 供方中不同的一个相关联;并且 基于该标识提供方识别多个不同用户证书中的哪一个要作为用户证书而提供。
3. 根据权利要求1的方法,进一步包括: 保存被加密的用户证书; 从计算设备接收基于该计算设备的密钥所解密的数值;并且 在向标识提供方提供用户证书之前,基于证书服务的密钥和基于计算设备的密钥所解 密的数值对用户证书进行解密。
4. 根据权利要求1的方法,进一步包括: 响应于针对临时信用卡号码的用户请求而从另外的标识提供方获得与该标识提供方 相关联的临时信用卡号;并且 在计算设备不了解该临时信用卡号的情况下将该临时信用卡号提供给标识提供方。
5. 根据权利要求1的方法,进一步包括从计算设备接收向证书服务认证该用户以便 用户证书被提供给标识提供方的信息,其中与计算设备是已知设备的情况相比,在计算设 备是未知设备的情况下用来认证的信息数量更大。
6. 根据权利要求1的方法,进一步包括: 与用户证书相关联地保存策略,该策略指示要被满足以便用户证书被提供给标识提供 方的一个或多个条件;并且 仅在该一个或多个条件得以满足的情况下才将用户证书提供给标识提供方。
7. -种计算设备,包括: 处理器;和 一个或多个具有存储于其上的多个指令的计算机可读媒体,当被一个或多个处理器所 执行时,该指令使得该一个或多个处理器: 从标识提供方接收针对计算设备的用户的用户证书的请求; 接收针对要由证书服务所提供的与标识提供方相关联的用户证书的用户请求; 响应于该用户请求,向证书服务提供计算设备和标识提供方之间的第一安全会话的安 全会话参数;并且 将从证书服务所接收的用户证书经由证书服务和标识提供方之间的第二安全会话传 输至标识提供方。
8. 根据权利要求7的计算设备,该指令使得该一个或多个处理器接收针对用户证书 的请求并且接收包括在计算设备的Web浏览器中的用户请求。
9. 根据权利要求7的计算设备,该多个指令进一步使得该一个或多个处理器: 从证书服务接收与用户和标识提供方相关联的多个用户证书中的每一个的至少一部 分的指示; 显示与用户和标识提供方相关联的多个用户证书中的每一个的至少一部分;并且 作为用户请求而接收用户对与用户和标识提供方相关联的多个用户证书中的每一个 的至少一部分之一的选择。
10. 根据权利要求7的计算设备,该计算设备是第二安全会话中的中介,其并不了解 第二安全会话的安全会话参数。
【文档编号】G06F21/31GK104094270SQ201380008804
【公开日】2014年10月8日 申请日期:2013年1月23日 优先权日:2012年2月8日
【发明者】M.F.诺瓦克, A.J.莱曼 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1