将受信任输入会话绑定到受信任输出会话的制作方法

文档序号:13809671阅读:174来源:国知局
将受信任输入会话绑定到受信任输出会话的制作方法

本公开涉及数据安全。



背景技术:

软件保护扩展或“sgx”是一种对存储到存储器的受保护区域的数据进行加密的硬件强制式安全系统。存储在这样的存储器中的数据在刚好要被处理之前由处理器中的资源进行解密。sgx提供了对抗软件和硬件攻击这两者的保护。更具体而言,sgx提供为驻留在受架构化保护的存储器位置中的数据(“飞地数据”)提供了机密性、完整性和重放保护,而同时所述数据仍然驻留在平台存储器中。片上边界形成自然的安全边界,在该处数据和代码以明文被存储并被假定是安全的。虽然sgx定义了保护在cpu上的应用的计算及其相关联的数据在驻留在平台存储器中之时的安全的架构,但对于许多用例来说,应用要求用户交互以接收输入,处理所接收的输入,并生成输出。因此,为了提供端对端的安全性,输入和输出会话必须随计算一起被保护。

附图简述

随着以下具体实施方式继续,并且在参考附图之后,要求保护的主题的各实施例的特征和优点将变得明显,在附图中相似的标号指定相似的部件,并且其中:

图1示出根据本公开的至少一个实施例的能够将受信任输入会话绑定到受信任输出会话的示例系统;

图2示出根据本公开的至少一个实施例的将受信任输入会话绑定到受信任输出会话的示例方法;

图3示出根据本公开的至少一个实施例的将受信任输入会话绑定到受信任输出会话的另一示例方法;

图4a示出根据本公开的至少一个实施例的设立边界受信任i/o会话的示例方法;

图4b示出根据本公开的至少一个实施例的如图4a中所描绘的设立边界受信任i/o会话的示例方法的示例示意图;

图5a示出根据本公开的至少一个实施例的拆卸边界受信任i/o会话的示例方法;以及

图5b示出根据本公开的至少一个实施例的如图5a中所描绘的拆卸边界受信任i/o会话的示例方法的示例示意图;

虽然下列具体实施方式摂将参考说明性实施例来进行,但是,许多替代方案、修改以及变体对本领域技术人员将是显而易见的。

详细描述

执行在飞地或类似的受架构化保护的存储器内的应用的处理器可以设立并维护安全输入通道以将输入提供给飞地应用,以及安全输出通道以提供用于飞地应用所生成的输出数据的呈现的路径。通过安全输入,处理器在输入设备与飞地应用之间建立了受信任输入通道,这确保了给飞地应用的输入对于诸如设备操作系统之类的可能被损害的、恶意的或有漏洞的更高级别软件来说是不可见的。通过安全输出,处理器在输出设备与飞地应用之间建立了受信任输出通道。飞地应用生成并加密输出,诸如位图,它们被安全地与输出引擎例如显示引擎共享。输出引擎读取经加密的输出、解密该输出,并将经解密输出提供给输出设备。虽然受信任输入和受信任输出会话通常彼此独立,但大多数用例要求受信任输入和受信任输出会话这两者同时处于活跃,即同期发生。

通过说明性示例,自动柜员机(“atm”)经常要求受信任输出会话安全地显示用户界面屏幕(在该用户界面屏幕上atm的用户可以输入他们的口令)以及受信任的输入会话以安全地接收并保护由atm用户所输入的口令。许多这样的用例类似地要求包括受信任输入会话和受信任输出会话这两者的受信任i/o会话以维持由系统或设备用户所提供的信息的完整性和安全性。本质上,受信任输出会话必须与受信任输入会话共存,并且在受信任输入会话关闭之际,受信任输出会话也必须被关闭。

本公开旨在将受信任输入会话绑定到受信任输出会话以限制对用户信息的未经授权的访问。这样的未经授权的访问可以例如通过关闭受信任输入会话并将受信任输出会话维持在打开状态来完成。在这样的实例中,受信任输出会话可以在响应于所显示的受信任输出(例如用户id、口令等等)所提供任何输入在不受信任(例如,环0)输入通道上传达的同时继续显示受信任输出。在不安全或不受信任的输入通道上传达输入造成了对由用户提供的输入数据的窃取或挪用的可能性。这样的攻击(其中与受信任输出会话相关联的受信任输入会话被允许在该受信任输出会话保持打开的同时关闭)可以被称为“未绑定攻击”,因为未能在受信任输入会话被关闭时关闭受信任输出会话促进了该攻击。这种未绑定攻击的概率可以通过将受信任输入会话的关闭逻辑地绑定或链接到受信任输出会话的关闭以使得在受信任输入会话的关闭之际受信任输出会话也被关闭而被最小化或甚至消除。将受信任输入会话绑定到受信任输出会话有效地排除了对由飞地应用在先前受信任输出会话期间所生成的经加密输出的重用。

在一个实现中,在受架构化保护的存储器位置(即“飞地”)中执行的应用可以向受信任实体发送发起受信任i/o会话的请求,所述受信任实体为例如会聚式安全引擎(“cse”),诸如在公司(加利福尼亚州圣克拉拉市)所制造的处理器中所找到的那些。响应于所述请求,受信任实体生成与相应的受信任i/o会话逻辑上相关联的唯一性会话标识符并将所述唯一性会话标识符传送给请求该受信任i/o会话的飞地应用和将存储所述唯一性会话标识符的密码模块(“cm”)。受信任实体还可以将cm中的受信任i/o会话指示符设置为第一状态。飞地应用生成被用于生成由该飞地应用所提供的部分或所有输出的加密密钥。飞地应用加密或“包裹(wrap)”加密密钥并将经包裹的加密密钥与该唯一性会话id组合以形成“密钥blob”,其在被加密时可以通过不安全的环0通信通道被传达给cm。在接收到密钥blob之际,cm对照存储着的唯一性会话id来验证该密钥blob中的唯一性会话id。在成功验证该唯一性会话id并确认受信任i/o会话指示符是在第一状态之际,cm解密该加密密钥并将该加密密钥写入到可由输出引擎访问的加密密钥寄存器。此刻,受信任i/o会话已经被设立,并且飞地应用可以将经加密位图通过不受信任通道(例如环0通道)发送到输出引擎。使用存储在加密密钥寄存器中的加密密钥,输出引擎解密位图以供呈现给用户。

在受信任i/o会话结束之际,飞地应用将通过向受信任实体发送请求来请求拆卸受信任i/o会话。在从飞地应用接收到拆卸请求之际,受信任实体将cm中的受信任i/o会话指示符设定为第二状态。响应于将cm中的受信任i/o会话指示符设定为第二状态,cm覆写加密密钥寄存器,以从输出引擎删除该加密密钥。

由受信任实体在受信任i/o会话发起之际生成唯一性会话标识符以及受信任i/o会话指示符的使用一起相佐地工作以通过将特定的受信任输入会话与特定的受信任输出会话链接或“绑定”来改善系统安全性。这种绑定有效地防止了未绑定攻击以及重放攻击,其中在先前受信任输出会话期间偷偷获得的经加密输出被用于哄骗用户通过不安全或不受信任的输入通道提供输入,输入数据的全部或一部分从该不安全或不受信任的输入通道被暴露以供盗窃或挪用。聚焦于受信任输出会话的关闭至少部分是归因于输出会话设立和拆卸请求的脆弱性,所述拆卸请求经常由不受信任软件处置,该不受信任软件可能丢弃要设立/丢弃该会话的请求并伪造返回给飞地应用的响应。

设置受信任i/o会话指示符为第二状态有效地排除了对由飞地在先前受信任i/o会话期间生成的经加密输出的偷偷的使用。例如,如果来自先前受信任输出会话的经加密输出位图已经被偷偷获得,则由于在加密密钥寄存器中的加密密钥已经被覆写,输出引擎将不能解密该位图并将因此提供无意义或不能理解的输出。

在另一个示例中,如果新的受信任i/o会话被请求显示在先前受信任输出会话期间获得的经加密输出数据,则该受信任实体生成与所请求的受信任i/o会话逻辑上相关联的新的唯一性会话标识符。在这样的实例中,将避免对经加密输出的解密和显示,因为新发布的唯一性会话标识符将不匹配随经加密输出所包括的唯一性会话标识符。

图1示出根据本公开的至少一个实施例的能够将受信任输入会话122绑定180到受信任输出会话124的示例系统100。系统100可包括具有任何数量的处理核104a-104n(统称为“处理核104”)的处理器102。通信链路112将处理核104通信地耦合到数个设备或模块,诸如存储器控制器120、密码模块130以及受信任实体140。尽管存储器控制器120、密码模块130以及受信任实体140被描述为由处理器102承载或板载,但是应该理解,存储器控制器120、密码模块130以及受信任实体140中的一些或全部可以被整体地或部分地布置在处理器102的外部。出于清楚和理解的目的,后续讨论描述了单个示例受信任i/o会话的实现。将理解,系统100可以提供任何数目的这样同期发生或部分重叠的受信任i/o会话。

在各实施例中,受信任实体140可包括硬件、软件、或其组合。在受信任实体140执行固件的实例中,固件表示受信任组件。在各实施例中,受信任实体140可以包括但不限于设备(诸如会聚式安全引擎或“cse”)或类似的安全结构。在至少一些实例中,会聚式安全引擎包括嵌入在安全引擎中的身份提供(idp)逻辑,并在半导体设备(诸如处理器102、芯片组和类似设备)中提供受信任执行环境(tee)。

在各实施例中,加密模块130可包括硬件、软件、或其任何组合。密码模块130可以包括能够生成、存储或分发诸如在此所述的加密密钥之类的安全凭证的任何系统、设备或其组合。

至少一个链路122直接或间接地(即,通过一个或多个居间设备、模块和/或中介通信链路)将处理器102通信地耦合到存储器150。存储器150包括在“飞地”或其它受架构化保护的存储器位置152内执行的飞地应用154。处理核104可以包括被配置为通过执行并与驻留在受架构化保护的存储器152上的飞地应用154交换数据,而同时防止对驻留在受架构化保护的存储器152上的应用或数据的未经授权访问来建立或以其他方式实现安全飞地或类似受信任执行环境的逻辑。有时,安全飞地可以被划分成经加密的部分(该部分可以驻留在受保护或未受保护的存储器中)以及未经加密或“明文”部分(该部分仅驻留在受架构化保护的存储器152的界限内)。对在受架构化保护的存储器152内的飞地应用154的访问可以被保护以免受在受架构化保护的存储器152外部的软件实体所作的修改。另外,未经授权方通常不能通过直接的硬件攻击来读取或修改受架构化保护的存储器152内的明文数据。受架构化保护的存储器152可以被定位在存储器150的物理地址空间内,但通常仅可使用特许或非特许指令来访问,所述指令被用于构建并启用、输入和退出以及管理受架构化保护的存储器152并执行在受架构化保护的存储器152内的其它操作。

至少一个链路162直接或间接地将处理器102可通信地耦合到输入设备160。根据本公开的至少一个实现,有时,链路162可以在输入设备160与在受架构化保护的存储器152中执行的飞地应用154之间提供受信任输入会话122的全部或一部分。在受信任输入会话中(而不是通过不安全的环0软件176(例如,操作系统软件)被路由),来自输入设备160的输入可以通过受信任实体140被发送给在受架构化保护的存储器152中执行的飞地应用154。在输入设备160与受信任实体140之间的受信任输入会话122在来自输入设备160的输入与飞地应用154之间提供了受信任且安全的链路,藉此防止了不受信任的软件丢弃受信任输入会话请求并偷偷获得对由用户在受信任输入会话122期间提供的数据的访问。

在受架构化保护的存储器152中飞地应用154的执行期间生成的输出可以通过受信任输出通道被提供给输出设备170。根据本公开的至少一个实现,飞地应用154有时可以生成输出或经加密输出(例如,经加密位图、音频文件、触觉反馈文件及类似输出等),所述输出能够引起对现实世界用户的可察觉反馈(例如,图像、声音、振动和类似反馈等)。在这些时候,飞地应用154生成加密密钥178、用密钥包裹用密钥来包裹加密密钥178并将经包裹的加密密钥传达给密码模块130。在成功验证了受信任输入/输出(i/o)会话126之后,密码模块130解包裹所述加密密钥并将加密密钥178写入到可由输出引擎172访问的加密密钥寄存器174。有时,应用154使用在不安全环176(例如,环0)中执行的不安全内核模式驱动器来将经加密输出传送给输出引擎172。在将加密密钥178写到加密密钥寄存器174之后,输出引擎172解密由飞地应用154提供的经加密输出并通过输出设备170将未加密输出呈现给用户。

根据本公开的至少一个实现,处理器102执行使得受信任输入会话122与受信任输出会话124绑定180以形成受信任i/o会话126的指令。在受信任i/o会话126中,来自飞地应用154的拆卸请求引起受信任输入会话122和受信任输出会话124两者的拆卸,这是因为处理器102将受信任输入会话122与受信任输出会话124的绑定180。在各实施例中,处理器102以排除或防止使用在先前受信任输出会话124期间生成的经加密输出的方式将受信任输入会话122绑定180到受信任输出会话124。在各实施例中,处理器102以使得在先前受信任输出会话124期间生成的经加密输出成为对系统用户而言不可理解的方式将受信任输入会话122绑定180到受信任输出会话124。

处理器102通过至少使得受信任实体140为飞地应用154所请求的每个新的受信任i/o会话126生成唯一性会话标识符来将受信任输入会话122绑定180到受信任输出会话124。在一些实例中,唯一性会话标识符132可以使用针对飞地应用154所请求的每个受信任i/o会话126递增的单调计数器来生成。在其它实例中,该唯一性会话标识符132可以使用伪随机数生成器来生成,所述伪随机数生成器创建足够大的数以使得重复值(例如,128位或更大的随机数)的生成最小化。唯一性会话标识符132被提供给密码模块130并被存储在密码模块130中。唯一性会话标识符132还被提供给飞地应用154并被存储在可由飞地应用154访问的受架构化保护的存储器位置中。

另外,处理器102通过至少使得受信任实体140将在密码模块130中的或对密码模块130可访问的受信任i/o会话指示符134设置成第一状态来将受信任输入会话122绑定180到受信任输出会话124。第一状态指示当前受信任i/o会话126的打开或存在。当受信任i/o会话指示符134在第一状态时,密码模块130将加密密钥178写入到加密密钥寄存器174。加密密钥寄存器174是在对输出引擎172可访问的位置中。当加密密钥178被存储在加密密钥寄存器174中时,输出引擎172对由飞地应用154产生的经加密输出进行解密。当飞地应用154请求受信任i/o会话126的拆卸时,处理器102将受信任i/o会话指示符134设定为第二状态。在将受信任i/o会话指示符134置于第二状态之际,密码模块130从加密密钥寄存器174中擦除或删除该加密密钥178,例如通过执行对加密密钥寄存器174的数次边带写入来覆写加密密钥178。

图2描绘了根据本公开的一个或多个方面将受信任输入会话122绑定180到受信任输出会话124以提供受信任i/o会话126的示例方法200的高级逻辑流程图。在一些实施例中,唯一性会话标识符132和受信任i/o指示符134被用于将受信任输入会话122绑定180到受信任输出会话124,这样,在受信任输入会话122关闭之际,受信任输出会话124也被关闭。将受信任输出会话124的关闭绑定到受信任输入会话122的关闭排除了对由飞地应用154在先前受信任输出会话期间所生成的经加密输出的重用。方法200开始于202。

在204,处理器102生成唯一性会话标识符132。处理器102将该唯一性会话标识符132写入到密码模块130。处理器102还将唯一性会话标识符132写入到可由飞地应用154访问的受架构化保护的存储器152。在各实施例中,处理器102可以使用片上或片下受信任实体140来生成唯一性会话标识符132。有时,受信任实体140使用针对每个新的受信任i/o会话126被递增的单调计数器来生成该唯一性会话标识符132。在其它时候,受信任实体140使用伪随机数生成器生成唯一性会话标识符132,所述伪随机数生成器具有足够数目的位(例如,128位)以使重复的唯一性会话标识符132的似然性降低到可接受水平。

在206,处理器102将包括经加密密钥和存储在受架构化保护的存储器152中的唯一性会话标识符132的消息传达给密码模块130。在各实施例中,飞地应用154生成或以其他方式获得被用于加密由飞地应用154所生成的输出的加密密钥178。飞地应用154加密此加密密钥178以安全地将加密密钥178传达到密码模块130。有时,飞地应用154使用密钥包裹用密钥来加密加密密钥178——在这样的实现中,经加密的加密密钥可以被称为“经包裹密钥”。飞地应用154将经包裹密钥与存储在第二存储器位置中的唯一性会话标识符132组合。组合了的经包裹密钥和唯一性会话标识符132可以有时被称为“密钥blob”。在各实施例中,飞地应用将经包裹密钥以及唯一性会话标识符132(即,密钥blob)传送给密码模块130。

在208,处理器102对照写入到密码模块130中的唯一性会话标识符132来验证在206处被包括在密钥blob或消息中的唯一性会话标识符132。如果处理器102对照写到密码模块130中的唯一性会话标识符132不能验证在密钥blob中的会话标识符132,则密码模块130不解密被包括在该密钥blob中的经包裹密钥,并且方法200终止。

在210,响应于被包括在密钥blob中的唯一性会话标识符132对照存储在第一存储器位置中的唯一性会话标识符132的成功验证,处理器102解密经加密的加密密钥并将经解密的加密密钥178存储在输出引擎172可访问的寄存器174中。在各实施例中,密码模块130可以解密密钥blob中的经包裹密钥并将经解密的加密密钥178存储在输出引擎172可访问的加密密钥寄存器174中。输出引擎172使用存储的加密密钥178来解密从飞地应用154接收到的输出。

在212,响应于收到受信任i/o会话拆卸请求,处理器102将受信任i/o会话指示符134从第一状态转换为第二状态。在各实施例中,飞地应用154将拆卸受信任i/o会话126的请求传送给受信任实体130。响应于接收所述请求,受信任实体130将受信任i/o会话指示符134设定为第二状态。

在214,响应于将受信任i/o会话指示符134转换到第二状态,处理器102从可由输出引擎172访问的寄存器中擦除或删除该经解密的加密密钥。在各实施例中,密码模块130检测受信任i/o会话指示符134到第二状态的转换。响应于检测到受信任i/o会话指示符134的这样的转换,密码模块130从加密密钥寄存器174中擦除或删除该加密密钥178。有时,密钥模块130可以通过执行对加密密钥寄存器174的数次边带写入藉此删除加密密钥178来从加密密钥寄存器174中擦除、删除、抹去或以其它方式移除加密密钥178或使之无用。

在从寄存器中擦除加密密钥178之后,输出引擎172不能解密经加密输出。这样的经加密输出可以由飞地应用154(这可能性很低,因为飞地应用154先前已在212处请求了关闭受信任i/o会话126)生成,或(更可能是)被偷偷引入到输出引擎172以冒充先前的受信任输出以尝试从系统用户提取个人数据或其它信息。在各实施例中,密码模块130删除、抹去或覆写存储在加密密钥寄存器174中的加密密钥178以排除输出引擎172对该密钥的使用。

通过删除加密密钥178,输出引擎172无法对由飞地应用154在先前受信任输出会话124期间生成的经加密输出进行解密。这有效地防止了未绑定攻击,在该攻击中,在受信任i/o会话126关闭之后,某一方将由飞地应用154在先前受信任输出会话124期间生成的经加密输出的副本(例如pin输入屏幕)发送给显示引擎172并收集响应于冒充的受信任输出所提供的用户输入(例如,用户的pin)。方法200在216结束。

图3描绘了根据本公开的一个或多个方面将受信任输入会话122绑定到受信任输出会话124以提供受信任i/o会话126的示例方法300的高级逻辑流程图。受信任i/o会话126将特定受信任输入会话122的同期存在绑定到或链接180到特定受信任输出会话124的存在。通过使用由受信任实体140所生成的唯一性会话标识符132和由受信任实体140设置的受信任会话指示符134,排除了对由飞地应用154在其它(即,先前)受信任i/o会话126期间生成的经加密输出的重用或向用户的呈现。方法300开始于302。

在304,在受架构化保护的存储器152中执行的飞地应用154请求受信任i/o会话126的设立。在各实施例中,飞地应用154将受信任i/o会话请求传达给受信任实体140。

在306,受信任实体140建立提供安全输入通道162的受信任输入会话122,该安全输入通道162将飞地应用154与至少一个输入设备160通信耦合。受信任实体140进一步建立提供安全或经加密输出通道156的受信任输出会话124,该安全或经加密输出通道156将飞地应用154与至少一个输出引擎172可通信地耦合。

在建立了安全输入会话122的情况下,输入数据被改为直接发送到在受架构化保护的存储器152中执行的飞地应用154,而不是跨可能被危及的不安全的环(例如,环0)来传达输入数据。受信任输入通道162保护输入数据抵御恶意软件的观察,防止针对输入数据的数据修改攻击,并且确保了对抗重放攻击的保护。例如,受信任输入通道162安全地将来自输入设备160(诸如触摸屏显示器)的触摸输入坐标路由到受信任实体140,受信任实体140将该触摸输入坐标位置路由给飞地应用154。受信任输入会话122仅涉及受信任实体,并且由此确保了正当的输入会话设立和终止,因为不受信任软件不能丢弃这些请求。

在308,受信任实体140生成唯一性会话标识符132。在一些实例中,唯一性会话标识符132可以是使用针对每个新的受信任i/o会话126进行递增的单调计数器所确定的值。在一些实例中,唯一性会话标识符132可以是伪随机生成的值。为了避免当使用伪随机值时单个唯一性会话标识符132的重复,所述值应该包含足够大数目的位(例如,128位)。

在各实施例中,受信任实体140还可以使得密码模块130将受信任会话指示符134设定为第一状态。在其它实施例中,受信任实体140直接将在对密码模块130可访问的位置中的受信任会话指示符134设定为第一状态。当设定为第一状态时,受信任会话指示符134提供飞地应用154在304处对建立受信任i/o会话126的请求的指示。

在310,受信任实体140将在308处生成的唯一性会话标识符132传达给密码模块130和飞地应用154。受信任会话指示符134和唯一性会话标识符132可以以单个消息或分组或以不同的消息或分组的形式由受信任实体140传达。被写到密码模块130的唯一性会话标识符132可以被存储在可由密码模块130访问的或在密码模块130自身的硬件内的位置中。被提供给飞地应用154的唯一性会话标识符132可以被存储在可由飞地应用154访问的受架构化保护的存储器152内的位置中。

在312,飞地应用154生成或以其他方式获取加密密钥178。飞地应用154用密钥包裹用密钥来加密此加密密钥178以产生“经包裹密钥”。

在314,飞地应用154将经包裹密钥与由受信任实体140在308处提供的唯一性会话标识符132组合在一起。除了组合经包裹密钥和唯一性会话标识符132之外,飞地应用154可以添加指示对受信任i/o会话126的请求的受信任会话指示符位。飞地应用154还可以添加一个或多个任选显示策略标志或位以将输出数据的呈现限制到一个或多个类型的输出设备。结果所得到的数据结构(至少包含经包裹密钥、唯一性会话标识符132以及受信任会话指示符位)形成被称为“密钥blob”的数据结构。飞地应用154通过受信任通道或通过不安全的环176将密钥blob传达给密码模块130。

在316,密码模块130对照由受信任实体140在310处写到密码模块130的唯一性会话标识符132来验证被包括在密钥blob中的唯一性会话标识符132。

在318,如果对照所存储的唯一性会话标识符132对被包括在由飞地应用154所发送的密钥blob中的唯一性会话标识符132的验证不成功,则密码模块130不解密由飞地应用154所提供的加密密钥并且方法300在320处终止。如果密码模块130成功验证唯一性会话标识符132,则方法300前进至322。

在322,响应于在318处对被包括在由飞地应用154发送的密钥blob中的唯一性会话标识符132对照存储着的唯一性会话标识符132的成功验证,密码模块130解密经包裹的加密密钥并将该加密密钥178存储在存储器位置(诸如输出引擎172可访问的加密密钥寄存器174之类)中。

在324,密码模块130确认由受信任实体140在308处设定的受信任i/o指示符134处于第一状态。如果受信任i/o指示符134不处于第一状态,则在326,密码模块130删除或覆写存储在加密密钥寄存器174中的加密密钥178。例如,密码模块130可以通过发出被定址到加密密钥寄存器174的一系列边带写入命令来覆写所存储的加密密钥178。在覆写或删除存储在加密密钥寄存器174中的加密密钥178之后,方法300在328处结束。

如果在324处,密码模块130确认受信任i/o指示符134处于第一状态,则方法300在330处继续。

在330处,使用存储在加密密钥寄存器174中的加密密钥178,输出引擎172对由飞地应用154提供的经加密输出进行解密。任何由飞地应用154生成的后续经加密输出可以通过安全通道或不安全的环176被传达到输出引擎172。

在332,受信任实体140确定是否接收到拆卸受信任i/o会话126的指令,例如由飞地应用154作出的拆卸当前受信任i/o会话126的请求。如果还没有接收到拆卸指令,则方法300返回到324,直到此类已经接收到拆卸指令的时候。在这样的实例中,输出引擎172继续解密并输出由飞地应用154所生成的经加密输出。

如果拆卸指令已经由受信任实体140在332处接收,则方法行进至334。

在334,受信任实体140通过关闭受信任输入会话122和受信任输出会话124来拆卸受信任i/o会话126。

在336,受信任实体140将密码模块130中的受信任会话指示符134设定为指示当前受信任i/o会话126的拆卸或关闭的第二状态。在设定受信任会话指示符134为第二状态之际,方法300返回到324。在324,由于受信任i/o指示符134已经被设定为第二状态,因此密码模块130将删除或覆写(在326处)存储在加密密钥寄存器174中的加密密钥178,并且方法300在328处结束。

图4a描绘了根据本公开的一个或多个方面的解说受信任i/o会话126设立的至少一个具体实现的示例方法400的高级逻辑流程图。图4b描绘了根据本公开的一个或多个方面的解说受信任i/o会话126设立的至少一个具体实现的所述示例方法400的示意流程图。在图4a中提供的示例实现包括在由公司(加利福尼亚州圣克拉拉市)所生产的处理器中找到的设备、系统、模块和组件,但不应该被解读为排除由其它制造商所提供的处理器和系统中找到的也落入本公开的范围内的类似的或相当的设备、系统和组件。方法400开始于402。

在404,处理核104为受架构化保护的存储器152的建立分配系统存储器150的各部分,这些部分可被称为“飞地”。飞地152提供了保护性和受保护的环境,在其中应用154可以以明文被执行,因为在飞地和外部设备、组件或系统之间的交互仅通过一个或多个受信任组件或通过与在该飞地外部的设备的经加密通信来发生,藉此保护了在飞地152中执行的应用154的完整性。

在406处,飞地应用154在受架构化保护的存储器152内执行。例如,由自动柜员机执行以为客户提供现金提取服务的飞地应用154可以在被耦合到atm系统处理器100的受架构化保护的存储器152内执行。

在408,飞地应用154请求设立受信任i/o会话126。从系统100内的飞地应用154到受信任实体140的受信任i/o会话请求的传达在图4b中图解描绘。在该实例中,发起受信任i/o会话126的请求被用作系统100的受信任实体140的会聚式安全引擎或“cse”接收。

从406继续atm示例,飞地应用154响应于客户输入,例如将客户的atm卡插入到atm读卡器中,而生成受信任i/o会话请求。

在410处,应飞地应用154的请求,cse/受信任实体140打开受信任输入会话122并生成藉由系统100在逻辑上与当前受信任i/o会话126相关联的唯一性会话标识符132。在受信任输入会话122期间输入的客户数据可以有时通过一个或多个安全或受信任的通信通道传达给cse/受信任实体140。cse/受信任实体140将所接收的输入转发给飞地应用154。

在412处,飞地应用154打开受信任输出会话124。有时,使用一个或多个不受信任通道,例如环0软件,来设立受信任输出通道。一旦建立,由飞地应用154生成的输出数据就可以被加密并通过一个或多个安全或受信任通道被安全地传达到或者替换地可以通过一个或多个不安全或不受信任通道(例如,环0操作系统通道176)被传达到输出引擎172。

唯一性会话标识符132可以使用能够提供具有极低的后续重复概率的唯一性数字或字母数字标识符的一个或多个设备或系统来生成。在一些实施例中,cse/受信任实体140可以生成供用作唯一性会话标识符132的一系列值,例如,使用针对由cse/受信任实体140接收的每个新的受信任i/o会话请求递增的单调计数器来生成。在其它实施例中,cse/受信任实体140可以生成伪随机数字或字母数字值以供用作唯一性会话标识符132。在这样的实例中,伪随机值应该包括足够数目的位(例如,128位)以减少重复的似然性。

在414处,cse/受信任实体140将唯一性会话标识符132转发给系统100内的飞地应用154以及密码模块130。在这个实例中,cse将唯一性会话标识符132写入硬件设备,诸如用作系统100的密码模块130的密钥分发引擎或“kde”。有时,飞地应用154将唯一性会话标识符132存储在受架构化保护的存储器152中的可由飞地应用154访问的位置中。唯一性会话标识符132到受架构化保护的存储器152以及到kde/密码模块130的传送在图4b中被图解描绘。

在416处,cse/受信任实体140将至少可由kde/密码模块130读取的受信任i/o会话标识符154设定为第一状态(例如,指示“真”状态逻辑“1”)。在各实施例中,受信任i/o会话标识符154在当前受信任i/o会话126的历时期间保持在第一状态。将受信任会话指示符134设置为第一状态在图4b中图解示出。

在418,飞地应用154生成或以其他方式获得供用于加密在当前受信任输出会话124期间生成的输出的加密密钥178。在一些实施例中,飞地应用154可以生成加密密钥178。在其它实施例中,飞地应用154可以从一个或多个外部系统设备或组件(例如,科通信耦合到系统100的安全服务器)获得加密密钥178。

在420,飞地应用154加密或以其它方式生成或以其他方式模糊加密密钥178。飞地应用154将经包裹的加密密钥与至少该唯一性会话标识符132组合以形成可以被称为“密钥blob”的数据结构。图4b描绘了一个示例的密钥blob450的逻辑结构。在一些实施例中,密钥blob450还包含指示受信任i/o会话126的存在的一个或多个位452。在一些实施例中,密钥blob450可以附加地包含一个或多个输入策略位454,这些位被用于限制或约束在其上由飞地应用154提供的经加密输出可以被提供给用户的输出设备170的类型或类。从飞地应用154到kde/密码模块130的密钥blob的传送在图4b中被图解示出。

在422处,kde/密码模块130接收由飞地应用154传送的密钥blob。kde/密码模块130在412对照被包括在由飞地应用154生成的密钥blob中的未经加密的唯一性会话标识符132来验证存储在可由kde/密码模块130访问的第一存储器位置中的唯一性会话标识符132。在一些实施例中,kde/密码模块130还确认被包括在由飞地应用154生成的密钥blob中的受信任i/o会话指示符134的状态。

在424处,如果kde/密码模块130对照被包括在密钥blob中的唯一性会话标识符132不能验证所存储的唯一性会话标识符132,则方法400在426处结束。替换地,如果kde/密码模块130能够对照被包括在密钥blob中的唯一性会话标识符132成功验证所存储的唯一性会话标识符132,则方法400行进至428。

在428,响应于由密钥blob承载的唯一性会话标识符132的成功验证,kde/密码模块130通过解包裹或解密被包括在从飞地应用154接收的密钥blob中的经包裹的密钥来获得加密密钥178。在解包裹了加密密钥178之后,kde/密码模块130将经解密的加密密钥178传送给输出引擎172。加密密钥178从kde/密码模块130到输出引擎172的传送在图4b中被图解示出。

在430处,输出引擎172将加密密钥178存储在由输出引擎172可访问的加密密钥寄存器174中。此刻,输出引擎172能够使用所存储的加密密钥178来解密由飞地应用154生成的使用该加密密钥178加密的任何输出并将其呈现给用户。为显示引擎172提供解密来自飞地应用154的输出的能力完成了此设立并建立了飞地应用在408处所请求的受信任i/o会话126。

在432处,飞地应用154将使用加密密钥178加密的输出传送给显示引擎172。经加密的输出的传送可以使用安全或受信任连接、不安全或不受信任连接176、或其任何组合来发生。通过不受信任的环0连接176将由飞地应用154生成的经加密输出传送给输出引擎172在图4b中图解示出。

继续先前示例atm,使用受信任输出会话124,飞地应用154生成包含个人标识号(pin)输入屏幕的经加密输出位图。输出位图使用加密密钥178加密并作为密钥blob传达以随唯一性会话标识符132一起由cse/受信任实体140提供给飞地应用154。经加密pin输入屏幕被传达给输出引擎172,该输出引擎172使用存储在加密密钥寄存器174中的加密密钥178来解密pin输入屏幕。经解密输出屏幕通过在atm上的触摸屏显示器被显示给客户。客户在触摸屏显示器上输入他们的pin,并且这些输入的坐标通过受信任输入通道162被传达给飞地应用154。

图5a描绘了根据本公开的一个或多个方面的解说对在方法400中设立的且在图4a中描绘的受信任i/o会话126的拆卸的至少一个具体实现的示例方法500的高级逻辑流程图。图5b描绘了根据本公开的一个或多个方面的解说对在方法400中设立的且在图4b中描述的受信任i/o会话126的拆卸的至少一个具体实现的示例方法500的示意流程图。方法500开始于502。

在504处,飞地应用154将当前受信任i/o会话126的拆卸请求传达给cse/受信任实体140。飞地应用154将受信任i/o会话拆卸请求传送到cse/受信任实体140在图5b中图解示出。

在506处,cse/受信任实体140关闭受信任输入会话122。由cse/受信任实体140关闭受信任输入会话122在图5b中图解示出。有时,受信任输入会话122的关闭是透明的,并且在没有给系统用户的明显警告或注意的情况下发生。

在508处,飞地应用154关闭受信任输出会话124。有时,受信任输出会话124的关闭是在整体上或部分地使用不受信任软件完成的。

在510处,cse/受信任实体140将受信任i/o会话指示符134设置为第二状态(例如,指示“假”状态的逻辑“0”)。在各实施例中,受信任i/o会话指示符154一直保持第二状态,直到飞地应用请求新的受信任i/o会话的设置,此时,cse/受信任实体140将受信任i/o会话指示符134设置为第一状态。在一些实施例中,受信任i/o会话指示符154默认保持在第二状态中。换句话说,受信任i/o会话指示符154可以在系统故障、会话超时或类似事件之后返回到第二状态。将受信任会话指示符134设置为第二状态在图4b中图解示出。

在512处,响应于受信任会话指示符134被设置为第二状态,kde/密码模块130擦除、清除、删除或覆写存储在加密密钥寄存器174中的加密密钥178。在至少一些实施例中,kde/密码模块130通过执行对加密密钥寄存器174的数次边带写入来覆写加密密钥178。对在加密密钥寄存器174中的加密密钥178的覆写在图4b中图解示出。覆写加密密钥178通过使得提供给输出引擎172的任何后续经加密输出成为不可理解的来有效地关闭受信任输出会话124。

cse/受信任实体140将受信任i/o会话标识符134设置为第二状态以及后续由kde/密码模块130从加密密钥寄存器174删除加密密钥178将受信任输入会话122绑定到受信任输出会话124,并确保了不当地获得的输出密钥blob不能被重用以使用如下所述的未绑定攻击或blob重放攻击来欺骗性地获得用户信息。

在未绑定攻击中,飞地应用154将请求由cse/受信任实体140拆卸受信任i/o会话。不受信任的软件栈可以引起对关闭至少该受信任输出会话124的请求的拒绝服务。在这样的实例中,受信任输入会话122被允许关闭,但不受信任的软件栈保持受信任输出会话124活跃。在这样的一个实例中,提供给系统100的任何用户输入(例如由用户响应于系统100所显示的冒充输出所提供的输入)不通过受信任输入会话122来传送,而是代之以通过不受信任的软件栈来传送——藉此暴露出用户提供的数据以供拦截、捕捉和潜在的滥用。

继续上述atm示例,在未绑定攻击中,受信任输入会话122关闭,并且受信任输出会话124保持打开并显示pin输入屏幕,如在430处所述。已经输入了他们的pin一次并继续看见空白pin输入屏幕的客户重新第二次输入他们的pin。在不为客户所知的情况下,在受信任输入会话122已经关闭之后做出了第二pin输入,并且输入的pin信息被代之以通过不受信任的通道(诸如环0软件176)路由,而不是通过受信任输入会话122中的安全通道162被路由。通过这样的不受信任通道路由的客户信息面临拦截、捕捉和潜在的滥用。

这样的未绑定攻击由在此所述的系统和方法来避免。回想下,在cse/受信任实体140关闭受信任输入会话之后,cse/受信任实体140将受信任i/o会话指示符134设定为第二状态。响应于将受信任i/o会话指示符134设定为第二状态,kde/密码模块130从加密密钥寄存器174中抹去加密密钥178。这样,即使受信任输出会话124被偷偷维护在打开状态,在无权访问加密密钥178的情况下,输出引擎172不再能解密由飞地应用所提供的经加密输出。这样,在受信任输出会话124被关闭之后,任何提供给输出引擎172的经加密输出将是不可理解的。

继续上述atm示例,如果受信任输出会话124被保持打开,并且加密密钥178已经被覆写且不可用,冒充的经加密pin输入屏幕位图将不能被解密,并且将在atm显示器上被显示为无意义的或混乱的图像。这样的输出应该警告客户在atm内部发生了重大系统错误,并且与该atm的进一步交互应该被避免。

在重放攻击中,新的受信任i/o会话126被请求。cse/受信任实体140按照请求打开新的受信任输入会话122以及新的受信任输出会话124,并生成新的唯一性会话标识符132。在受信任i/o会话被发起之后,先前获得的包含经加密图像和唯一性会话标识符132的密钥blob被提供给kde/密码模块130。

这样的重放攻击也由在此所述的系统和方法来避免。回想下,cse/受信任实体140生成对于每个受信任i/o会话126都是唯一性的并被kde/密码模块130用于验证在当前受信任i/o会话126期间生成的密钥blob的内容的会话标识符140。如果包含不匹配的唯一性会话标识符132的密钥blob(例如从先前受信任i/o会话126获取的密钥blob)被提供给kde/密码模块130,则kde/密码模块130对照在当前受信任i/o会话126期间生成的新唯一性会话标识符132不能成功验证被包括在该密钥blob中的该旧的唯一性会话标识符132。在这样的实例中,kde/密码模块130不解包裹来自密钥blob的加密密钥178,并且不将包含在该密钥blob中的经加密输出转发到输出引擎172。

以下示例关于进一步的实施例。本公开的下面的示例可以包括主题素材,诸如设备、方法、用于存储指令的至少一种机器可读介质(当执行所述指令时,所述指令使机器基于方法来执行动作)、用于基于方法来执行动作的装置,和/或用于将受信任输入会话绑定到受信任输出会话以防止从先前受信任输出会话中获得的经加密数据的重用的系统。

根据示例1,提供了一种通过将受信任输出会话绑定到受信任输入会话来提供受信任输入/输出会话的方法。所述方法可以包括生成与受信任输入/输出会话逻辑上相关联的唯一性会话标识符并将该唯一性会话标识符写入到密码模块。所述方法包括将该唯一性会话标识符存储在受架构化保护的存储器中。所述方法还包括由飞地应用将经加密的加密密钥和受架构化保护的存储器中的唯一性会话标识符传送给密码模块。所述方法还包括由密码模块对照由飞地应用传达的唯一性会话标识符来验证被写到密码模块的唯一性会话标识符。所述方法还包括响应于成功验证,解密该加密密钥并将其存储在可由输出引擎访问的加密密钥寄存器中。所述方法还包括响应于飞地应用请求对受信任i/o会话的拆卸,将受信任i/o会话指示符从第一状态转换为第二状态。所述方法附加地包括响应于将受信任i/o会话指示符转换为第二状态,由密码模块从加密密钥寄存器中擦除所述加密密钥。

示例2可以包括示例1的各元素,在其中由飞地应用将经加密的加密密钥和存储在受架构化保护的存储器中的唯一性会话标识符传达给密码模块包括:由飞地应用将经加密的加密密钥和存储在受架构化保护的存储器中的唯一性会话标识符传达给密码模块

示例3可以包括示例1的元素,其中响应于应用请求对受信任i/o会话的拆卸将受信任i/o会话指示符从第一状态转换为第二状态可以包括:响应于来自飞地应用的要打开受信任i/o会话的请求,将受信任i/o会话指示符设置为第一状态;并且响应于来自飞地应用的对关闭受信任i/o会话的请求,将受信任i/o会话指示符设置为第二状态。

示例4可以包括示例1到3的任何示例的元素,其中由密码模块响应于将受信任i/o会话指示符转换为第二状态从加密密钥寄存器中擦除加密密钥可以包括:通过使得密码模块执行对加密密钥寄存器的一系列边带写入来覆写加密密钥。

示例5可以包括示例1的元素,其中生成与受信任输入/输出会话逻辑上相关联的唯一性会话标识符可以包括:响应于飞地应用要打开受信任输入/输出会话的请求,生成与受信任输入/输出会话逻辑上相关联的唯一性会话标识符。

示例6可以包括示例5的元素,其中响应于飞地应用对打开受信任输入/输出会话的请求生成与受信任输入/输出会话逻辑上相关联的唯一性会话标识符包括:由受信任实体生成与受信任输入/输出会话逻辑上相关联的唯一性会话标识符。

示例7可以包括示例6的元素,其中由受信任实体生成与受信任输入/输出会话逻辑上相关联的唯一性会话标识符可以包括:由受信任实体通过针对飞地应用的要构建受信任输入/输出会话的每个请求来递增的单调计数器来生成唯一性会话标识符。

示例8可以包括示例6的元素,其中由可通信耦合到密码模块的受信任实体生成与受信任输入/输出会话逻辑上相关联的唯一性会话标识符包括:由受信任实体通过针对飞地应用的要构建受信任输入/输出会话的每个请求生成至少128位的随机数来生成唯一性会话标识符。

示例9可以包括示例6的元素,并且还可以包括由受信任实体构建将飞地应用可通信地耦合到至少一个输入设备的受信任输入会话。

示例10可以包括示例6-9中任一示例的元素,其中响应于应用请求对受信任i/o会话的拆卸,将受信任i/o会话指示符从第一状态转换到第二状态可以包括:由受信任实体引起受信任i/o会话指示符的从第一状态到第二状态的转换。

示例11可以包括示例1-3中任一示例的元素,其中由飞地应用将经加密的加密密钥和存储在受架构化保护的存储器中的唯一性会话标识符传送给密码模块可以包括由飞地应用生成加密密钥;用密钥包裹用密钥来包裹所生成的加密密钥以提供经包裹密钥;以及将经包裹密钥与唯一性会话标识符组合以提供密钥blob。

示例12可以包括示例11的元素,并且所述方法还可以包括由飞地应用设置密钥blob中的受信任输入/输出会话指示符以指示对受信任输入/输出会话的请求。

示例13可以包括示例1-3中任一示例的元素,其中所述方法还可以包括由飞地应用生成使用加密密钥加密的输出;将经加密的输出传达给输出引擎;由输出引擎使用在加密密钥寄存器中的加密密钥解密经加密的输出;以及以人类可感知的格式输出经解密的输出。

根据示例14,提供了一种将受信任输出会话绑定到受信任输入会话来提供受信任输入/输出会话的系统。所述系统包括处理器,以在受架构化保护的存储器中执行飞地应用;以及形成受信任实体的至少一个逻辑单元。响应于从飞地应用接收到的对打开受信任i/o会话的请求,该受信任实体:生成与受信任i/o会话逻辑上相关联的唯一性会话标识符;将唯一性会话标识符存储在可由飞地应用访问的受架构化保护的存储器中的地址处;以及将受信任i/o会话指示符设置为第一状态。所述系统还包括形成密码模块的至少一个逻辑单元。响应于从飞地应用接收到对打开受信任i/o会话的请求,所述密码模块:接收来自受信任实体的唯一性会话标识符;从飞地应用接收经加密的加密密钥和被写入受架构化保护的存储器的唯一性会话标识符;对照从飞地应用接收的唯一性会话标识符来验证从受信任实体接收的唯一性会话标识符;以及响应于成功验证,解密加密密钥并将经解密的加密密钥保存在可由输出引擎访问的加密密钥寄存器中。

示例15可以包括示例14的元素,其中响应于飞地应用请求对受信任i/o会话的拆卸,受信任实体使得受信任i/o会话指示符从第一状态转换为第二状态,并且其中响应于受信任i/o会话指示符从第一状态转换为第二状态,密码模块从加密密钥寄存器中删除加密密钥。

示例16可以包括示例15的元素,并且还可以包括形成输出引擎的至少一个逻辑电路,所述输出引擎使用在加密密钥寄存器中的加密密钥对由飞地应用提供的经加密输出进行解密。所述处理器还可以使得飞地应用使用加密密钥提供经加密的输出;并且将经加密输出传达给输出引擎。

示例17可以包括示例14的元素,其中所述处理器还使得飞地应用生成加密密钥、用密钥包裹用密钥来包裹加密密钥以提供经加密的加密密钥;以及将经加密的加密密钥与存储在受架构化保护的存储器中的唯一性会话标识符进行组合。

示例18可以包括示例17的元素,并且所述机器可执行指令还使得飞地应用将密钥blob中的受信任输入/输出会话指示符设置为第一状态以指示对受信任输入/输出会话的请求。

示例19可以包括示例14-18中任一示例的元素,其中受信任实体还通过针对飞地应用所作出的打开新的受信任i/o会话的每个请求递增单调计数器来提供唯一性会话标识符。

示例20可以包括示例14-18中任一示例的元素,其中受信任实体还通过针对飞地应用所作出的打开新的受信任i/o会话的每个请求生成至少128位随机数来提供唯一性会话标识符。

根据示例21,提供了一种在其上个体地或组合地存储有用于将受信任输入会话绑定到受信任输出会话的机器可读指令的机器可读存储介质,所述指令在由至少一个处理器执行时导致所述至少一个处理器:执行在受架构化保护的存储器中的飞地应用。所述指令还使得所述至少一个存储器生成与受信任输入/输出会话逻辑上相关联的唯一性会话标识符;将唯一性会话标识符写到可由密码模块访问的硬件地址,并且将所生成的唯一性会话标识符存储在可由飞地应用访问的位置处的受架构化保护的存储器中。所述指令还使得所述至少一个存储器促使飞地应用将经加密的加密密钥和在受架构化保护的存储器中的唯一性会话标识符传达给密码模块。所述指令还使得所述至少一个存储器对照由该应用传达的唯一性会话标识符来验证写到密码模块的唯一性会话标识符,并响应于成功验证,解密加密密钥并将其保存在可由输出引擎访问的加密密钥寄存器中。所述指令还使得所述至少一个存储器响应于飞地应用所作出的要关闭受信任i/o会话的请求,引起受信任i/o会话指示符从第一状态转换到第二状态,并且响应于将受信任i/o会话指示符转换为第二状态,从加密密钥寄存器中删除所述加密密钥。

示例22可以包括示例21的元素,其中机器可读指令进一步使得所述至少一个处理器促使飞地应用生成使用加密密钥加密了的输出;促使飞地应用将经加密的输出传达给输出引擎;促使输出引擎使用在加密密钥寄存器中的加密密钥来解密经加密的输出;以及促使输出引擎以人类可感知的格式输出经解密的输出。

示例23可以包括示例22的元素,其中机器可读指令进一步使得所述至少一个处理器促使受信任实体将飞地应用可通信地耦合到至少一个输入设备以打开受信任输入会话。

示例24可以包括示例23的元素,其中使得所述至少一个处理器响应于飞地应用请求拆卸受信任i/o会话引起受信任i/o会话指示符从第一状态转换到第二状态的机器可读指令还使得所述至少一个处理器促使受信任实体将受信任i/o会话指示符从第一状态转换到第二状态。

根据示例25,提供了一种提供安全输入/输出(i/o)会话的系统。所述系统包括形成受信任实体的至少一个逻辑单元,所述受信任实体响应于由在受架构化保护的存储器中执行的飞地应用所作出的要打开受信任i/o会话的请求:生成对于相应的受信任i/o会话而言是唯一性的会话标识符;将唯一性会话标识符存储在可由飞地应用访问的受架构化保护的存储器中的位置处;并将受信任i/o会话指示符设置为第一状态。所述系统还包括形成密码模块的至少一个逻辑单元,该密码模块响应于飞地应用作出的要打开受信任i/o会话的请求:从受信任实体接收唯一性会话标识符;将唯一性会话标识符存储在密码模块中的硬件地址处;从飞地应用接收经加密的加密密钥以及存储在第二位置中的唯一性会话标识符;以及

响应于对照存储在第一位置中的唯一性会话标识符对从飞地应用接收到的唯一性会话标识符的验证,将经解密的加密密钥写到可由输出引擎访问的寄存器。所述系统还包括可通信地耦合到受信任实体和密码模块的至少一个处理器。

示例26可以包括示例25的元素,其中响应于来自飞地应用要关闭受信任i/o会话的请求,该至少一个受信任实体还终止受信任输入会话;并将受信任i/o会话指示符设置为第二状态。其中,响应于将受信任i/o会话指示符设定为第二状态,密码模块还从加密密钥寄存器中删除加密密钥。

示例27可以包括示例25或26中的任何示例的元素,其中密码模块进一步从飞地应用接收包括经加密的加密密钥以及存储在受架构化保护的存储器中的唯一性会话标识符的密钥blob,其中所述经加密的加密密钥包括通过用密钥包裹用密钥来包裹加密密钥生成的经包裹的密钥。

示例28可以包括示例27的元素,其中响应于将受信任i/o会话指示符设定为第二状态,密码模块还执行对加密密钥寄存器的至少一次边带写入以删除加密密钥。

示例29可以包括示例25到28任何示例的元素,并且还可以包括可通信耦合到输出引擎的至少一个输出设备。

根据示例30,提供了一种将受信任输入会话绑定到受信任输出会话的方法,所述方法包括响应于由处理器在受架构化保护的存储器中执行的飞地应用作出的要打开受信任输入/输出(i/o)会话的请求:由处理器打开受信任输入会话;由飞地应用打开受信任输出会话;由处理器将受信任i/o会话指示符设置为第一状态;并且由飞地应用生成包括经加密输出以及表示与受信任i/o会话逻辑上关联的唯一性会话标识符的数据的密钥blob。所述方法还包括,响应于对被包括在密钥blob中的唯一性会话标识符的成功验证以及验证受信任i/o会话指示符处于第一状态:由处理器将加密密钥写到可由可通信耦合到处理器的输出引擎访问的加密密钥寄存器,并由输出引擎解密由飞地应用生成的经加密输出。所述方法还包括,响应于飞地应用对终止受信任i/o会话的请求,由处理器关闭受信任输入会话;由处理器将受信任i/o会话指示符设置为第二状态;并响应于将受信任i/o会话指示符设置为第二状态,由处理器从加密密钥寄存器中删除加密密钥。

示例31可以包括示例30的元素,其中由飞地应用生成包括经加密输出以及表示与受信任i/o会话逻辑上关联的唯一性会话标识符的数据的密钥blob可以包括:响应于从飞地应用接收到要发起相应的受信任i/o会话的请求,由处理器生成与受信任i/o会话逻辑上相关联的唯一性会话标识符;由处理器将该唯一性会话标识符写入到指定硬件地址;以及由处理器将该唯一性会话标识符写到可由飞地应用访问的受架构化保护的存储器中的位置。

示例32可以包括示例31的元素,其中响应于从飞地应用接收到要发起相应的受信任i/o会话的请求由处理器生成与受信任i/o会话逻辑上相关联的唯一性会话标识符可以包括下述之一:由处理器针对每个新的受信任i/o会话来递增单调计数器以提供唯一性会话指示符;或由处理器为每个新的受信任i/o会话生成128位伪随机数以提供唯一性会话指示符。

示例33可以包括示例30的元素,其中由飞地应用生成包括经加密输出以及表示与受信任i/o会话逻辑上关联的唯一性会话标识符的数据的密钥blob可以包括:通过不受信任连接将该密钥blob从飞地应用传达到与处理器可通信耦合的密码模块。

示例34可以包括示例30到33中任何示例的元素,其中由处理器打开受信任输入会话可以包括:将用户输入设备可通信地耦合到与处理器可通信耦合的受信任实体;以及将受信任实体可通信耦合到飞地应用以将所接收的输入数据通过受信任连接转发给飞地应用。

示例35可以包括示例30到33中任何示例的元素,并还可以包括由飞地应用通过密钥blob将表示至少一个显示策略的数据传达给处理器。

示例36可以包括示例30到33中任何示例的元素,其中响应于将受信任i/o会话指示符设置为第二状态由处理器从加密密钥寄存器删除加密密钥可以包括:响应于将受信任i/o会话指示符设置为第二状态,由处理器将至少一个边带写传送到加密密钥寄存器。

根据示例37,提供了一种在其上个体地或组合地存储有用于将受信任输入会话绑定到受信任输出会话的机器可读指令的机器可读存储介质,所述指令在由处理器执行时,响应于由处理器执行的在受架构化保护的存储器中的飞地应用作出的要发起受信任输入/输出(i/o)会话的请求,使得所述处理器:打开受信任输入会话;使得在受架构化保护的存储器中执行的飞地应用打开受信任输出会话;将受信任i/o会话指示符设置为第一状态;并使得飞地应用生成包括经加密输出以及表示与受信任i/o会话逻辑上关联的唯一性会话标识符的数据的密钥blob。所述指令还使得处理器响应于对被包括在密钥blob中的唯一性会话标识符的成功验证以及验证受信任i/o会话指示符处于第一状态:将加密密钥写到可由可通信耦合到处理器的输出引擎访问的加密密钥寄存器,并使得输出引擎解密由飞地应用生成的经加密输出。所述指令还使得处理器响应于飞地应用所作出的要终止受信任i/o会话的请求,关闭受信任输入会话;将受信任i/o会话指示符设置为第二状态;并且响应于将受信任i/o会话指示符设置为第二状态,从加密密钥寄存器中删除加密密钥。

示例38可以包括示例37的元素,其中使得处理器促使飞地应用生成包括经加密输出以及表示与受信任i/o会话逻辑上关联的唯一性会话标识符的数据的密钥blob的机器可读指令进一步使得处理器:响应于从飞地应用接收到要发起相应受信任i/o会话的请求,生成与受信任i/o会话逻辑上关联的唯一性会话标识符;将唯一性会话标识符写到可通行地耦合到处理器的密码模块中的指定硬件地址;以及将唯一性会话标识符写到可由飞地应用访问的受架构化保护的存储器中的位置。

示例39包括示例37或38中任何示例的元素,其中使得处理器生成与受信任i/o会话逻辑上关联的唯一性会话标识符的机器可读指令还使得处理器:针对每个新的受信任i/o会话来递增单调计数器以提供唯一性会话指示符;或为每个新的受信任i/o会话生成128位伪随机数以提供唯一性会话指示符。

示例40包括示例37或38中任何示例的元素,其中使得处理器促使飞地应用生成包括经加密输出以及表示与受信任i/o会话逻辑上关联的唯一性会话标识符的数据的密钥blob的机器可读指令进一步使得处理器:促使飞地应用通过不受信任连接将密钥blob传送到密码模块。

示例41包括示例37或38中任何示例的元素,其中使得处理器打开受信任输入会话的机器可读指令进一步使得处理器:将用户输入设备可通信地耦合到与处理器可通信耦合的受信任实体;以及将受信任实体可通信耦合到飞地应用以将所接收的输入数据通过受信任连接转发给飞地应用。

示例42包括示例37或38中任何示例的元素,其中机器可读指令还使得处理器促使应用将表示至少一个显示策略的数据传达给输出引擎。

示例43包括示例37到38中任一示例的元素,其中使得处理器响应于将受信任i/o会话指示符设置为到第二状态从加密密钥寄存器删除加密密钥的机器可读指令还可以使得处理器响应于将受信任i/o会话指示符设置为第二状态将至少一个边带写入传送到加密密钥寄存器。

根据示例44,提供了一种提供受信任输入/输出会话的系统,在其中受信任输出会话被绑定到受信任输入会话,所述系统包括:用于响应于接收到在受架构化保护的存储器中执行的飞地应用所作出的要打开受信任输入/输出(i/o)会话的请求生成与受信任i/o会话逻辑上关联的唯一性会话标识符的装置;用于将所生成的唯一性会话标识符写到密码模块中的硬件地址的装置;用于将所生成的唯一性会话标识符存储在受架构化保护的存储器中的装置;用于将经加密的加密密钥和在第二存储器位置中的唯一性会话标识符传达给密码模块的装置;用于对照由所述应用传达的唯一性会话标识符来验证存储在第一存储器位置中的唯一性会话标识符的装置;用于响应于成功的验证来解码加密密钥并将其存储在可由输出引擎访问的寄存器中的装置;用于响应于从飞地应用接收到要关闭受信任i/o会话的请求将受信任i/o会话指示符从第一状态转换为第二状态的装置;以及用于响应于将受信任i/o会话指示符转换到第二状态从寄存器删除加密密钥的装置。

示例45包括示例44的元素,并且还包括用于生成使用加密密钥加密了的输出的装置,用于将经加密的输出传达到输出引擎的装置,用于由输出引擎使用在输出引擎可访问的寄存器中的加密密钥来解密经加密的输出的装置;以及用于以人类可感知的格式输出经解密的输出的装置。

根据示例46,提供了一种将受信任输入会话绑定到受信任输出会话的系统,所述系统被布置为执行示例1到13中任何示例的方法。

根据示例47,提供了一种芯片组,所述芯片组布置成执行上述示例1到13中的任何示例的方法。

根据示例48,提供至少一种机器可读介质,该机器可读介质包括多条指令,所述多条指令响应于在计算设备上被执行,使得所述计算设备执行根据示例1到13中的任何示例的方法。

根据示例49,提供了一种被配置用于将受信任输入会话绑定到受信任输出会话的设备,所述设备被布置为执行示例1到13中的任何示例的方法。

已在本文中采用的术语和表达是用作描述的术语而非限制的术语,并且在使用此类术语和表达时,不旨在排除所示出的和所描述的特征的任何等效方案(或其部分),应当认识到,在权利要求书的范围内,各种修改都是可能的。相应地,权利要求书旨在涵盖所有此类等效方案。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1