安全主机交互的制作方法

文档序号:11161010阅读:489来源:国知局
安全主机交互的制造方法与工艺

本公开涉及可信计算、安全私人用户信息(例如用于主机交互的安全用户信息)、用户之间的安全通信以及建立安全系统事件日志,以管理与该主机相关联的事件日志条目。



背景技术:

由于除了计算机用户和制造商的控制之外的多种因素,传统的计算机系统——包括移动计算系统——对私人数据所有权关系非常怀有敌意。例如,连接至网络的任何计算设备都可能具有允许未授权个体获得对用户私人信息的访问的弱点。例如,未授权个体可能发现计算机系统的弱点,通常通过在主人未知的情况下安装危险的恶意软件来窃取、改变或破坏信息。然后,该计算机的主人处在各种欺诈动作的风险下,包括身份窃取和财务损失。同样,如果未授权个体访问用户的移动设备,则未授权的个体可能拦截用户的通信。然后,未授权个体能够使用所拦截的会话的内容——在用户未知的情况下——欺骗该用户或其它人。

在一些情况下,未授权个体可能尝试消除未授权个体的入侵证据。例如,如果未授权个体已经在用户的计算系统上安装了恶意软件,在与用户的计算机系统相关联的系统事件日志可以产生关于该安装的事件日志条目。然而,机智的未授权个体能够删除或改变与用户的计算机系统相关联的系统事件日志条目,从而消除未授权个体的入侵证据。因而,在一些情况下,未授权个体掩盖他或她的痕迹,使得即使是老练的用户仍意识不到未授权个体的入侵。这样,并且由于与传统计算系统相关的严重弱点,传统的计算系统通常被视为用户私人信息的有敌意且不可信任的主机。



技术实现要素:

在本文所述的特定示例性方面,提供了一种可信计算设备。例如,在一些实施例中,可信计算设备是一种microSD形状因素(form factor)的设备,这种设备包括隔离环境、microSD主机接口、安全接口、用于可信计算的计算机程序产品,以及可选的绕过主机系统的带外通信信道。该隔离环境包括隔离环境处理器、存储器和辅助处理器。

存储器被完全分配给安全分区,或者被划分为安全分区和非安全分区,并且为了数据通信而与隔离环境处理器连接。辅助处理器为了数据通信而连接至隔离环境处理器和存储器。该存储器和辅助处理器两者都仅通过隔离环境处理器而与主机进行数据通信。主机接口和安全接口两者都为了数据通信而连接至隔离环境处理器。

计算机程序产品包括具有在其上实施的计算机可执行程序指令的非暂态计算机可读介质。这些指令在当由可信计算设备执行时使得该可信计算设备执行可信计算。特别地,该计算机程序产品包括通过安全接口向可信计算设备提供加密操作的程序指令。另外的程序指令使得该可信计算设备通过所述隔离环境处理器在主机接口处产生第一文件分配表(FAT)文件系统。第一FAT文件系统分区包括主机写文件和主机读文件。如果未仅配置成用于安全分区,则进一步的程序指令使得可信计算设备通过所述隔离环境处理器在主机接口产生具有对存储器的非安全分区的访问的非安全第二FAT文件系统分区。

可信计算设备计算机程序产品的程序指令使得该可信计算设备经由主机写文件来接收在隔离环境中执行可信计算的请求。该可信计算包括下列中的一个或多个:产生随机数、仅增日志、单调计数、流加密和解密、批量加密和解密、访问密码原语和隔离存储器。进一步的程序指令使得该可信计算设备使用所述隔离环境处理器、存储器安全分区和辅助处理器中的至少一个来执行所请求的可信计算,然后将可信计算的结果写入主机读文件。

在本文所述的特定示例性方面,提供了一种用于安全主机交互的计算机实施方法。例如,与主机计算设备相关联的可信计算设备接收受限信息。例如,可信计算设备被预配置成包括隔离环境和主机接口,该主机接口包括写文件和读文件。例如,该隔离环境不能直接访问主机计算设备。例如,该可信计算设备在隔离环境的安全存储设备中存储所接收的受限信息。

在接收到受限信息之后,可信计算设备的写文件从主机计算设备接收写文件条目。例如,该写文件条目包括对该写文件条目做出响应的受限信息的指示。然后,可信计算设备在该可信计算设备的隔离环境下处理写文件条目。为了处理写文件条目,可信计算设备识别——基于对该写文件条目做出响应的受限信息的指示——对该写文件条目做出响应的受限信息的至少一部分。然后,该可信计算设备向该可信计算设备的读文件产生一个输出,例如安全输出。然后,所产生的输出(例如所产生的安全输出)可由主机计算设备在可信计算设备的读文件中获得。

在本文所述的特定示例性方面,还提供了一种用于安全通信(例如两个或更多个主机计算设备之间的通信)的方法。例如,与第一主机计算设备相关联的第一可信计算设备从第一用户接收第一通信。安全接口接收该第一通信,该第一安全接口与第一可信计算设备的主机接口是隔离的。例如,该安全接口与将该安全接口隔离的隔离环境相关联。

在接收到第一通信之后,第一可信计算设备在第一可信计算设备的第一隔离环境中对第一通信加密。例如,第一隔离环境不能由第一主机设备直接访问。然后,第一可信计算设备将加密后的第一通信发送至第一可信计算设备的主机接口的第一读文件。然后,该加密的第一通信可由第一主机计算设备在第一可信计算设备的第一读文件中获得。然后,第一主机计算设备将加密后的第一通信发送至第二主机计算设备,该第二主机计算设备与第一主机计算设备是分离的。

在将加密的第一通信发送至第二主机计算设备之后,与第二主机计算设备相关联的第二可信计算设备接收该加密的第一通信。例如,第二主机计算设备将该加密的第一通信发送至与第二主机计算设备相关联的第二可信计算设备,并且第二可信计算设备的主机接口的写文件接收到该加密的第一通信。第二可信计算设备在第二可信计算设备的第二隔离环境中对第一用户的该加密的第一通信解密,该第二隔离环境不能由第二主机设备直接访问。

在对该加密的第一通信解密后,第二可信计算设备将解密后的第一通信发送至第二用户。例如,第二可信计算设备通过第二可信计算设备的第二安全接口将解密后的第一通信发送至第二用户,第二安全接口与第二可信计算设备的主机接口是隔离的。然后,第二用户接收到解密后的第一通信。

在本文所述的特定示例性方面,还提供了一种用于安全事件日志管理的方法。例如,与主机计算设备相关联的可信计算设备将写文件条目接收到可信计算设备的主机计算设备接口的写文件中。响应于接收到该写文件条目,可信计算设备确定与写文件条目相关联的日志数据。基于所确定的日志数据,可信计算设备——在不能被主机计算设备直接访问的可信计算设备的隔离环境中——建立事件日志条目。然后,可信计算设备在该隔离环境的安全存储设备中记录该事件日志条目。如果某个授权用户请求访问该事件日志条目,例如,可信计算设备则通过安全接口或通过可信计算设备的读文件而向用户提供该事件日志条目。

在本文所述的特定的示例性方面,在向读文件产生诸如加密通信、事件日志条目的输出、或诸如安全输出的其它输出之前,可信计算设备通过可信计算设备的安全接口向用户发送请求,以授权对写文件条目的处理。响应于用户请求授权对写文件条目的处理,可信计算设备将用户输入接收到可信计算设备的安全接口中。例如,用户输入起到授权该可信计算设备处理该写文件条目的作用。因而,可信计算设备处理该写文件条目。

当考虑针对所示出的示例性实施例的以下详细说明,本领域技术人员将明白上述示例性实施例的这些和其它方面、目标、特征和优点。

附图说明

图1是示出了根据特定的示例性实施例的、用于安全存储和管理受限信息的系统100的框图。

图2是示出了根据特定的示例性实施例的可信计算设备的框图。

图3是示出了根据特定的示例性实施例的、用于可信计算的系统的框图。

图4是示出了根据特定的示例性实施例的、用于通过隔离环境进行安全主机交互的方法的方框流程图。

图5是示出了根据特定的示例性实施例的、用于处理来自不可信主机设备的写文件条目的方法的方框流程图。

图6是示出了根据特定的示例性实施例的、用于授权将输出发送至可信设备的读文件的方法的方框流程图。

图7是示出了根据特定的示例性实施例的、用于在两个或更多个主机计算设备之间安全通信的系统的方框图。

图8是示出了根据特定的示例性实施例的、用于在不可信主机设备之间安全通信的方法的方框流程图。

图9是示出了根据特定的示例性实施例的、用于通过第二可信设备接收加密通信的方法的方框流程图。

图10是示出了根据特定的示例性实施例的、用于安全事件日志管理的方法的方框流程图。

图11是示出了根据特定的示例性实施例的、用于将事件日志条目传达给授权用户的并行方法的方框流程图。

图12是示出了根据特定的示例性实施例的、计算机器和模块的方框图。

具体实施方式

综述

如本文所公开的,可信设备在隔离环境下保护信息,因而将信息从与该可信计算设备相关联的不可信主机设备隔离开。例如,该可信计算设备在隔离环境的安全存储设备中存储受限信息,例如私人用户信息、加密数据或主机的事件日志条目。然后,该隔离环境中的隔离环境处理器允许可信计算设备起到私人信息的网关守卫的作用。例如,可信计算设备接收属于受限信息的请求,并产生该主机设备可获得的安全输出以用于另外的处理。在特定的示例中,可信计算设备使用所存储的受限信息对用户通信加密。然后,第二可信设备使用类似地存储的受限信息对通信解密并将该通信提供给第二用户。在其它示例中,可信设备在该可信设备的安全存储设备中存储事件日志条目,从而不能修改这些日志条目。然后,可信设备将事件日志条目提供给授权用户。

在一些实施例中,可信计算设备是一种microSD形状因素的设备,这种设备包括隔离环境、microSD主机接口、安全接口和用于可信计算的计算机程序产品。该隔离环境包括隔离环境处理器、存储器和辅助处理器。

该存储器被划分为安全分区和非安全分区,并且为了数据通信而与隔离环境处理器连接。该辅助处理器为了数据通信而连接至所述隔离环境处理器和存储器。该存储器和辅助处理器二者都仅通过所述隔离环境处理器而与主机进行数据通信。主机接口和安全接口二者都为了数据通信而连接至隔离环境处理器。

该计算机程序产品包括具有在其上实施的计算机可执行程序指令的非暂时性计算机可读介质。该指令在由可信计算设备执行时使得该可信计算设备执行可信计算。特别地,该计算机程序产品包括通过安全接口向可信计算设备提供加密操作的指令。另外,程序指令使得该可信计算设备通过隔离环境处理器在主机接口处产生第一文件分配表(FAT)文件系统。第一FAT文件系统分区包括主机写文件和主机只读文件。进一步的程序指令使得该可信计算设备通过隔离环境处理器在主机接口处产生带有对存储器非安全分区的访问的非安全第二FAT文件系统分区。

可信计算设备的计算机程序产品的程序指令使得该可信计算设备通过主机写文件接收用于在隔离环境中执行可信计算的请求。该可信计算包括以下项中的一个或多个:产生随机数、仅增日志记录(append-only logging)、单调计数、流加密和解密、批量加密和解密、访问密码原语和隔离存储器。进一步的程序指令使得该可信计算设备使用隔离环境处理器、存储器安全分区和辅助处理器中的至少一个来执行所请求的可信计算,然后将可信计算结果写入主机读文件。

还公开了用于使用该可信设备的系统和方法。在特定示例中,该可信设备从可信来源(例如可信的第二方计算系统)接收受限信息。该受限信息可以是任何类型的私人信息,例如用户的机密信息、第二方计算系统的机密信息、和/或对机密数据传输进行加密/解密所需的密码数据。例如,用户的银行可以通过经可信设备的安全接口在可信设备上安装用户的私人银行账户信息来提供可信设备。银行也可以通过安全接口将密码数据发送至可信设备。可信设备接收受限信息,例如用户的银行账户信息和密码数据,并将受限信息存储在可信设备的安全存储设备内。

在第二方计算系统提供可信设备之后,例如,用户将可信设备连接至不可信主机设备,例如用户的家用计算机或移动电话。该可信设备和不可信主机然后能够交互,以利用可信设备上的受限信息而不将该受限信息公开给不可信主机。例如,用户可以使用不可信主机设备和可信设备完成财务交易,例如使用用户的银行账户信息进行现金转账或提款。例如,不可信主机设备可以将现金转账金额以及完成交易的请求传达给可信设备的写文件。所述隔离环境接收包括交易额和交易请求的写文件条目。

一旦可信设备的隔离环境接收到该写文件条目,该隔离环境内的隔离处理器就例如通过读取所述写文件条目的内容并识别对该写文件条目的内容做出响应的受限信息来处理所述写文件条目。例如,如果该受限信息包括用户的银行信息,则可信设备可以使用该银行信息来处理现金转账或提款。例如,该隔离处理器能够从可信设备的安全存储设备中检索用户的私人财务账户信息,并向所述读文件产生输出以授权该现金转账——这些都在隔离环境下进行。例如,主机设备不能直接访问该隔离环境。而是,主机设备通过包括读文件和写文件的主机接口来间接地访问该隔离环境。在特定示例中,在产生所述输出之前,可信计算设备能够例如通过使用任何先前接收到的密码数据来保护该输出。该安全输出例如可以包括用户的加密账户信息和加密转账授权。

在将该安全输出发送至可信设备的读文件之后,不可信主机设备能够获取该安全输出并完成关于该安全输出的任何进一步处理。例如,如果该安全输出包括用户的加密账户信息和加密转账授权,则不可信主机设备可以从可信设备的读文件中获取该安全输出。然后,不可信主机设备能够通过将该安全输出发送至通信应用来处理该安全输出,此通信应用然后将该安全输出发送至用户的银行。然后,银行能够对该安全输出解密,之后完成用户的现金转账或提款。

在特定示例中,可使用两个或更多个可信设备以在多个用户之间提供安全通信。例如,该可信设备可以附接至或集成到与不可信主机设备(例如用户的手机)连接的用户的耳麦中。两个用户能够将耳麦的这两个可信设备配对,使得所配对的每个可信设备都接收相应的密码数据。然后,每个可信计算机设备都能够将密码数据(例如相应的密钥)存储在该可信设备的安全存储设备中。另外或替代地,在特定示例中,第二方计算系统可以通过经由每个可信设备的安全接口向配对的可信设备提供密码数据而向可信设备提供密码数据。

例如,一旦两个设备被配对,则一个位置处的第一用户能够与不同位置处的第二用户安全通信。例如,第一用户例如通过对与可信设备相关联的耳麦中的麦克风说话而向该可信设备的安全接口提供通信。然后,隔离环境通过该安全接口接收用户的通信。隔离环境中的处理器对该通信加密,然后将该通信作为安全输出发送至可信设备的读文件。与该可信设备相关联的不可信主机设备(例如第一用户的移动电话)然后能够从可信设备的读文件接收该加密通信。例如,如果该可信设备被附接至或集成在耳麦中,则耳麦可以将该加密通信无线地发送至第一用户的移动电话(本实例中的不可信设备)。第一用户的移动电话然后能够通过网络将该加密通信发送至第二不可信主机设备,例如第二用户的移动电话。

在接收到该加密通信之后,第二不可信主机设备将该加密通信写入与第二用户相关联的第二可信设备的写文件。例如,第二用户的移动设备可以通过网络接收该加密通信,然后将该加密通信无线地发送至被附接或集成到第二用户的耳麦中的第二可信设备的写文件。隔离环境从该写文件接收该加密通信,并且,隔离环境内的隔离处理器对该加密通信解密。例如,该处理器从隔离环境的安全存储设备中检索密码数据,然后根据该密码数据对所述通信解密。然后,可信设备通过第二可信设备的安全接口向第二用户提供解密通信。例如,第二可信设备通过与第二可信设备的安全接口连接的扬声器将该解密通信直接提供给用户。然后,第二用户接收该解密通信。在这种通信期间,不可信主机设备在任何时候都不能访问该解密通信或密码密钥材料。

在特定示例中,例如在两个用户之间的双向或两方向通信中,第二用户可以通过将本文所述的安全通信方法颠倒过来而向第一用户提供安全通信。例如,第二用户可以向与第二可信设备的安全接口相关联的麦克风说话。第二可信设备通过该安全接口接收通信,并且,隔离环境的处理器对第二用户的该通信加密。然后,该处理器将该加密通信发送至第二可信设备的读文件。作为不可信主机设备的第二用户的移动电话接收该加密通信,并将该加密通信发送至第一不可信主机设备,例如第一用户的移动电话。第一不可信主机设备将该加密通信发送至与第一不可信主机相关联的不可信主机设备的写文件,并且隔离环境中的处理器使用密码数据对通信解密。然后,该可信设备通过第一可信设备的安全接口向第一用户提供来自第二用户的解密通信。

除了上述方法和系统之外,本文还提供了一种用于建立安全系统日志的方法和系统。例如,用户可能希望使用可信设备来记录用户的主机设备的系统日志事件条目,例如尝试访问和/或使用用户的设备。另外或可替代地,用户可能希望使用可信设备来记录其它用户访问和/或使用受限信息的尝试。这样,用户例如可以通过将该可信设备连接至用户的计算设备来授权该可信设备监视和记录与该可信设备相关联的活动。

一旦连接至主机设备,该可信设备就能够在可信设备的隔离环境的安全存储设备内安全地接收和存储系统日志事件条目。例如,每次主机设备将请求发送至可信设备的写文件,该可信设备的隔离处理器就确定写文件条目的日志数据。然后,处理器在该可信设备的安全存储设备中记录写文件条目的事件日志条目。

在该日志数据被记录在所述隔离环境的安全存储设备中之后,不可信主机设备不能访问、篡改、删除或以其它方式改变所存储的日志数据。例如,黑客不能通过不可信主机——或可信设备——访问所存储的日志数据,因为黑客将不被授权访问该可信设备的安全接口。相反,仅授权用户才能够访问所存储的日志数据。例如,该用户可以通过可信设备的安全接口请求事件日志条目。然后,可信设备通过该安全接口将事件日志条目提供给用户,并且用户通过该安全接口接收该事件日志条目。然而,仍决不允许黑客或授权用户修改或以其它方式改变被记录到安全存储设备中的日志数据。

另外或可替代地,用户可以使用不同的主机设备接收该事件日志。例如,用户可以从主机设备移除该可信设备并然后将该可信设备连接至另一不同的主机设备。然后,用户例如能够通过引导第二主机设备产生要求事件日志条目的写文件条目来请求来自该可信设备的事件日志条目。可信计算设备接收该请求,然后处理该请求,从而在可信计算设备的读文件中产生一个输出——该输出包括所述事件日志条目。然后,第二主机设备从读文件中接收该输出并将该输出提供给用户。然后,用户例如通过第二主机设备的用户接口获得(vies)该输出并因此获取事件日志消息。

在特定示例中,本文所述的方法和系统可以在处理受限信息和/或将该安全输出发送至读文件之前依赖于用户对可信计算机设备的输入,例如“proof of life(生活证据)”和/或身份验证。例如,在将该安全输出发送至可信设备的读文件之前,可信设备例如可以通过向用户提供闪烁光、钟声或其它通信来通知用户需要用户输入。然后,用户能够通过该可信设备的安全接口、例如通过触摸与该可信设备的安全接口相关联的安全传感器而响应来自该可信设备的用户输入请求。

另外或可替代地,用户可以通过该安全接口、例如通过将代码直接输入可信设备的主体中和/或直接输入到通过该安全接口安全地连接至可信设备的单独计算设备中而将用户安全代码提供给可信设备。例如,该可信设备可以在将加密现金转账或提款授权发送至可信设备的读文件之前要求用户的这种“生活证据”和/或身份验证。另外或可替代地,可信设备可以在通过该安全接口提供访问之前要求这种“生活证据”和/或身份验证。在特定示例中,可以在通过安全接口传达信息之前要求这种“生活证据”和/或身份验证。例如,可信设备可以在通过该安全接口将安全信息发送至用户之前、例如在将来自安全存储设备的系统日志事件条目发送至用户之前要求这种“生活证据”和/或身份验证。

通过在不可信主机设备不能直接访问的隔离环境中保护私人信息,本文所述的设备、系统和方法保护用户不受与用户的计算设备相关联的弱点损害。例如,本文所述的设备、系统和方法允许用户安全地使用受限信息,以完成否则将使用户的受限信息暴露于不可信(以及不安全)主机计算设备的活动——例如现金转账、提款或其它银行活动。本文所述的设备、系统和方法也允许用户私人地通信,而不使他们的通信内容暴露于不可信(以及不安全)的主机计算设备。此外,通过提供用于安全事件日志管理的方法,本文所述的设备、系统和方法防止了黑客或其它人掩盖他们的痕迹的恶意意图。

示例性的系统架构

现在参考附图,其中,在所有附图中,同样的附图标记表示相似(但不必相同)元件,下面详细描述了几个示例性实施例。

图1是示出了根据特定的示例性实施例的、用于安全存储和管理受限信息的系统100的框图。

如图1所示,系统100包括网络计算设备110和120,该网络计算设备110和120被配置成通过一个或多个网络105彼此通信。在一些实施例中,与设备相关联的用户101必须安装有应用和/或做出进行特征选择以获得本文所述技术的益处。例如,用户101可以选择安装、开启或以其它方式激活不可信主机计算设备110上的服务,并在主机计算设备110上安装应用编程接口(API)代码,以允许主机计算设备110使用该可信计算设备130。

在特定的示例性实施例中,网络105可以包括局域网(“LAN”)、广域网(“WAN”)、内联网、因特网、存储区域网(“SAN”)、个人域网(“PAN”)、城域网(“MAN”)、无线局域网(“WLAN”)、虚拟私人网(“VPN”)、蜂窝或其它移动通信网络、蓝牙、低功耗蓝牙、近场通信(“NFC”)、Wi-Fi或它们的任何组合,或促进多个信号、数据和/或消息的通信的任何其它适当的架构或系统。在本文的示例实施例的所有讨论中,应当理解,术语“数据”和“信息”在本文中可互换使用,以指代能够存在于基于计算机的环境下的文本、图像、音频、视频或任何其它形式的信息。

每个网络计算设备110和120都包括具有能够在网络105上发送和接收数据的通信模块的设备。例如,每个网络计算设备110和120都能够包括服务器、台式计算机、膝上型计算机、平板电脑、内置有和/或联接有一个或处理器的电视机、智能电话、手持式计算机、个人数字助理(“PDA”)、或任何其它有线或无线的由处理器驱动的设备。在图1所示的示例性实施例中,网络计算设备110和120分别由用户101、主机计算设备110系统操作者(未示出)或第二方计算系统操作者120操作。

用户101可以使用通信应用111,例如web浏览器应用(未示出)或单机应用,以通过分布式网络105观看、下载、上传或以其它方式访问文件或网页。主机计算设备110的通信应用111能够与连接至网络105的web服务器或其它计算设备交互。例如,通信应用111能够与第二方计算系统120交互。在特定的示例性实施例中,该通信应用也可以例如通过主机计算设备110的辅助接口113而与可信计算设备130交互。

除了该通信应用111之外,主机计算设备110(或“主机设备”)还可以包括各种主机应用112,例如电子邮件应用、文本消息应用、通讯录应用或其它应用。例如,主机应用113可以包括用户101从该用户的财务机构下载并安装的应用,例如来自用户银行的应用。然后,用户101能够与可信计算设备130(或“可信设备”)一起使用该银行应用,以进行本文所述的与用户的财务机构进行的财务交互。在特定的示例性实施例中,主机应用112可以包括数字钱包应用。该数字钱包应用可以包含该主机设备110的用户101可以采用以帮助用户101完成购买交易的任何应用、硬件、软件或过程。

主机设备110还包括辅助接口113,该辅助接口113包括用于将主机设备110连接至其它设备(例如可信计算设备)的一个或多个端口。在特定的示例性实施例中,辅助接口113可以包括用于将主机设备110连接至其它设备的无线接口。例如,辅助接口113可以允许通过蓝牙、低功耗蓝牙、近场通信(“NFC”)、Wi-Fi或这些的任何组合而连接至其它设备,例如可信计算设备。

主机设备110还包括能够被主机设备110的通信应用111或其它主机应用112访问的数据存储单元114。示例性的数据存储单元114能够包括一个或多个有形的计算机可读介质。数据存储单元114能够存储在用户计算设备110上,或能够被逻辑地耦合至用户计算设备110。例如,数据存储单元114能够包括板上闪存和/或一个或多个可移除存储器卡或可移除闪存。

第二方计算系统120(或“第二方系统”)包括服务器121。例如,服务器121可以代表计算机实施的系统,第二方计算系统120采用它来提供例如本文所述的可信设备130。例如,服务器121可以通过第二方系统120的可信设备接口123并通过可信设备130的安全接口137将受限信息传达给可信设备130。例如,可信设备接口123代表可信端口或者与第二方计算系统120的其它可信连接。例如,第二方系统120的可信设备接口123可以包括小型计算机系统接口(“SCSI”)、串行连接SCSI(“SAS”)、光纤信道、外设部件互连(“PCI”)、PCI express(PCIe)、串行总线、并行总线、先进技术连接(“ATA”)、串行ATA(“SATA”)、通用串行总线(“USB”)、Thunderbolt、FireWire或其它连接端口。

在特定的示例性实施例中,第二方系统120包括网站122。该网站122例如可以允许用户101与第二方系统120交互。例如,如果第二方系统120作为用户的财务机构而运行,则该网站可以允许用户访问用户101的财务账户。网站122也可以向用户101提供用户101能够下载至用户101的主机设备110的应用,例如与第二方系统120有联系的银行应用和/或数字钱包应用。

第二方系统120还包括数据存储单元124。在特定的示例性实施例中,如本文所述,数据存储单元124可以存储与用户101相关联的私人机密信息。例如,如果第二方系统120作为用户的财务机构而运行,则数据存储单元124可以包括用户101的财务账户信息,例如用户101的支票账户号、储蓄账户号和/或信用卡号。

在特定的示例性实施例中,如本文所述,数据存储单元124可以包括密码数据。例如,第二方设备120可以提供可信设备130,以包括用于加密/解密通信的相应密码数据。在这些实施例中,如本文所述,数据存储单元124可以存储兼容的密码数据,以在对通过主机设备110从可信设备130接收的加密通信解密时使用。例如,服务器121可以例如通过从数据存储单元124中检索密码数据并将该密码数据应用于加密通信来处理所接收到的加密通信。

第二方系统120的示例性数据存储单元124能够包括一个或多个有形的计算机可读介质。数据存储单元124能够集成到第二方系统120中,或能够逻辑地耦合至第二方系统120。例如,数据存储单元124能够包括板上闪存和/或一个或多个可移除存储器卡或可移除闪存。

可信设备130包括主机接口132,例如用于与主机设备130交互的端口。可信设备130的主机端口132还包括写文件133,该写文件133用于通过主机接口132从所述主机设备接收数据。可信计算设备130的主机接口132也包括隔离环境138。例如,隔离环境138包括可信设备130的不能被主机设备110直接访问的各种部件。而是,如本文所述,主机设备110通过所述写文件133和读文件134而与该隔离环境的部件交互。例如,隔离环境138包括隔离处理器135和安全存储设备136。例如,如本文所述,隔离处理器135代表该可信设备130的处理来自主机设备110的写文件条目或通过可信设备130的安全接口137接收的数据的部件。例如,如本文所述,安全存储设备136接收和存储受限信息,例如机密或私人用户信息、密码数据和/或安全事件日志条目。安全存储设备136还存储用于在可信设备130上执行的计算机可执行程序指令。在一些实施例中,如本文所述,可信设备130的安全接口137代表该可信设备130的隔离环境130的安全入口,例如用于接收受限信息。可信设备130的主机接口132还包括读文件134。例如,如本文所述,读文件134从隔离环境138、例如从隔离处理器135接收输出。然后,主机设备110能够通过主机设备110的主机接口132和辅助接口113接收来自读文件134的输出。下面参考图2和3来描述可信设备130的细节。

参考图2并继续参考图1作为背景,其示出了根据特定的示例性实施例的、图示了可信计算设备130的框图。在图2所示的实施例中,可信计算设备130包括隔离环境138、主机接口132、零个或更多个安全接口137、以及分布在该可信设备130的多个部件上的计算机程序产品139。

隔离环境138包括隔离环境处理器135、零个或更多个辅助处理器135a、和存储器136。存储器136被连接以便与隔离环境处理器135进行数据通信。在一些实施例中,存储器136包括安全分区和至少一个非安全分区两者。在一些实施例中,存储器136包括至少512MB的非易失性闪存。

每个辅助处理器135a都被连接以便与隔离环境处理器135和存储器136进行数据通信。虽然图2中示出了通过该隔离环境处理器135在辅助处理器135a和存储器136之间进行数据通信连接,但是,直接连接或总线能够用于连接该隔离环境处理器135、辅助处理器135a和存储器136。

每个辅助处理器135a和存储器136都仅通过隔离环境处理器135而与隔离环境138外部的主机通信。每个安全接口137和主机接口132都与隔离环境处理器135进行数据通信。

计算机程序产品139包括非暂态计算机可读介质,该计算机可读介质上具有在其上实施的计算机可执行程序指令。当被可信计算设备130执行时,该程序指令使得可信计算设备130执行各种可信计算操作。在包括安全接口137的实施例中,该程序指令使得可信计算设备130本身例如为了加密操作而通过安全接口137与外部设备协作。在生产模型(production model)中不包括安全接口137的一些实施例中,可信设备制造商使用在该生产模型中未暴露的接口来提供可信设备130。在一些实施例中,虽然能够通过安全接口137执行可信设备130的供应,但不能从隔离环境138读取所供应的信息(例如密钥)。

通过使用计算机程序产品139的程序指令,可信设备130通过主机接口132从隔离环境处理器135产生第一文件系统分区。该第一文件系统分区包括主机读文件134和主机写文件133。在一些实施例中,该第一文件系统分区的特征在于仅分配给隔离环境处理器135的文件创建权限和文件删除权限,并且,读文件134关于主机110是只读的。

在存储器136包括非安全分区的实施例中,当被可信设备130执行时,所述程序指令通过隔离环境处理器136在主机接口132处产生访问存储器136的非安全分区的非安全第二文件系统分区。

通过使用计算机程序产品139的程序指令,隔离环境138通过所述写文件133接收请求以在隔离环境138中执行可信计算。由可信设备130执行的可信计算操作包括以下项中的一个或多个:产生随机数、仅增日志、单调计数、流加密和解密、批量加密和解密、安全存储和密封存储、访问密码原语、以及在本文的其它部分所述的其它操作。在计算机程序产品139的程序指令的控制下,隔离环境138使用隔离环境处理器135、存储器136的安全分区、以及任何存在的辅助处理器135a中的至少一个来执行所请求的可信计算操作。隔离环境处理器135在执行计算机程序产品139的程序指令时将在隔离环境138中执行的可信计算的结果写入主机读文件134中。

隔离环境处理器135可以是适合向下列设备提供可分离接口的许多微处理器或微控制器中的一个:1)通过接口132向不可信主机110提供,2)通过零个或更多个安全接口137向零个或更多个可信安全外部设备提供,以及3)向隔离环境130的元件提供。在一些实施例中,隔离环境处理器135是低功率微控制器,例如ARM M3、M4,而在其它实施例中,更处理器可以是全功能应用处理器,例如美国英特尔公司的PENTIUM TM或类似的处理器。在一些实施例中,由隔离环境处理器135执行大部分的程序指令,例如提供可信设备130、读取来自主机写文件134的输入、执行时间较不敏感的可信操作(例如批量加密和解密),以及将结果写入主机读文件134。在一些实施例中,主机接口132和每个安全接口137中的一个或两者被集成到隔离环境处理器135中。

出于各种原因(包括提高可信设备130的整体可制造性),辅助处理器135a能够被包括在更隔离环境中。现有的加密处理器(尤其是执行时间敏感任务的那些加密处理器)通常以硬件实现一些功能,例如,加密处理器被实现为应用程序专用集成电路(ASIC)。用ASIC实现系统功能可以降低系统成本、节省空间,允许管理功耗,节约制造成本,并能减少独立部件的数量(可靠性和可制造性因素)。例如,隔离环境138能够包括辅助处理器135a,以结合存储器136的安全分区来执行用于声音和视频的流加密、用于高带宽数据的实时任务。使用辅助处理器135a的其它原因包括测量隔离环境138内的主处理器135的操作/执行。以这种方式,该辅助处理器是声明该安全环境是否按预期运行(完整性测量)的认证处理器。在一些实施例中,辅助处理器135a包括与由隔离环境处理器135控制的那些安全接口分离的一个或多个安全接口。作为示例,可以考虑该辅助处理器135a包括用于“生活证据”或设备认证的安全NFC接口。在这些情况下,该隔离环境能够被视为扩展至处于该NFC接口的另一端处的可信设备。

在可信设备130的一些实施例中,安全接口137能够与计算机程序产品139和隔离环境138结合使用,以向可信计算机设备130提供例如用于加密操作和执行软件更新的加载密钥。在一些这些实施例中,安全接口137能够被实现为联合测试行为组织(JTAP)、I2C、SPI或其它类似的接口。

在可信设备130的一些实施例中,安全接口137能够与计算机程序产品139和隔离环境138结合使用,用于实现挑战-响应协议(challenge-response protocol)。在该挑战-响应协议中,提出需要有效“响应(response)”以便继续给定动作的“挑战(challenge)”。例如,在具有包括用户可见的发光二极管(LED)的第一安全接口137以及对触摸做出响应的第二安全接口137的可信设备130中,能够执行计算机程序产品139的程序指令以点亮该LED,从而用信号通知用户如下内容:用户必须触摸第二安全接口137,以继续该可信设备130的给定动作。在一些实施例中,第二安全接口137是将人类身体的电容作为输入的电容式传感器。在一些实施例中,使用了电阻式触摸传感器或压电触摸传感器。

作为安全接口137的另一种示例用途,可以考虑图3的系统。除了上文结合图2描述的可信计算设备130之外,图3的系统300还包括至少一个安全接口137a和用户接口设备310。用户接口设备310通过安全接口137a而与隔离环境138进行数据通信。用户接口设备310和可信设备130之间的数据通信能够采用如下的各种连接(优选是无线的)中的任一种或其组合,包括:红外数据组织(IrDA)链路、无线技术标准链路、以及近场通信(NFC)链路。可信设备130提出了挑战,例如点亮可信设备130上的LED或将消息发送至用户接口设备130的显示器。用户101使用用户接口设备310来响应该挑战。在一些实施例中,该响应是对用户接口设备310的指纹响应输入。在一些实施例中,该响应是对在用户接口设备310的显示器上提出的验证问题的回答。在一些实施例中,用户接口设备310可以是移动通信设备,例如移动电话。在一些实施例中,用户接口设备310可以是带有NFC功能的遥控钥匙(fob)。

可信设备130的计算机程序产品139包括操作系统、文件系统接口(它通过隔离环境处理器135将第一文件系统分区与用户模式接口一起在主机接口132处提供给主机110)、以及各种应用。在一些实施例中,可信设备130以三种(3种)模式运行:提供模式、运行模式(包括通过文件系统接口接收请求并且结果被写入文件系统接口的用户模式)和验证/证明模式。在一些实施例种,可信设备130在该提供模式下通过安全接口(即,JTAG)137进行通信。在这种实施例中,该运行模式包括通过文件系统接口与不可信主机通信的用户模式交互。该验证/证明模式包括通过安全接口137的带外信道(例如NFC、irda等)与用户通信。

在一些实施例中,操作系统(OS)是32位、抢先多任务、中断驱动操作系统。在该OS上运行的应用作为是计算机程序产品139一部分的部分加密服务具有对加密原语的访问权,以及作为该OS的用户模式服务的一部分具有对用于存储持久性数据的非易失性存储器136的安全分区的访问权。此外,该OS提供API,以从主机接收呼入会话请求,并然后作为用户模式会话服务的一部分使用和管理那些会话。

在一些实施例中,在OS上运行的用户模式应用是资源受限的。在启动一个应用之前,OS指定用于该应用的都被限制为组合4-6千字节的初始栈和堆的、存储器136的安全分区的区域。在这种实施例中,应用能够被直接编译为OS图像,所以应当小心,以避免与OS及可信计算设备130的库冲突的功能和类型名称。

在一些实施例中,当可信计算设备130连接至主机110时,可信计算设备130向主机操作系统呈现具有下列布局的正确格式和分区的FAT文件系统:具有对第一文件系统分区和(可选的)存储器136的非安全第二文件系统分区寻址所需的分区表的主引导记录(MBR)。该第一文件系统分区包含两个文件,被称为“读文件(read file)”和“写文件(write file)”,这两个文件能够(分别)被主机110读取和写入,并且是主机110与可信计算设备130通信的仅有装置。(可选的)存储器136的非安全第二分区提供能够被主机110的操作系统读取或写入的不受保护非易失性存储区。

应明白,该第一文件系统分区不限于仅使用两个文件。如果一个应用要求另外的通信信道,则可信计算设备130能够在该分区中呈现另外的文件,每个都受到可信设备130的监管控制。在一些实施例中,第一文件系统分区中的所有未被设备控制的读文件134和写文件133使用的区块都可标为“坏的(bad)”。可信计算设备130控制对第一文件系统分区中的文件的访问。通过呈现标准的FAT文件系统,可信计算设备130能够与大量的主机110通信,同时只需最少地消耗主机110的能力。应当明白,在一些实施例中,能够使用另外的文件,例如,使用一个或多个第三文件(为了报告错误或使主机110警惕特定的全局状态(即,未运行(NOT RUNNING))——但在每种情况下,都需要不可信主机110和隔离环境138之间的接口。

还应明白,(可选的)存储器136的非安全第二分区起大容量存储设备(例如闪存设备)的作用。可信计算设备130以透明方式将这些交互传递给不可信主机110。

在主机110上运行的应用能够直接访问可信设备130的第一文件系统分区,但为了方便,在一些实施例中提供了主机侧便携式操作系统接口(POSIX)式API。该POSIX式API包括用于开启/闭合会话以及发送/接收数据的操作。

现代操作系统具有复杂的文件系统特征,为了与实际的文件系统一起使用,对这些复杂的文件系统特征进行了不出所料的优化。这种优化的一个示例是缓存,这提供了访问文件系统的显著优点,但缓存可能阻碍在可信计算设备130的第一文件系统接口上的信息流。为了解决这种情况,在实施POSIX式API的实施例中,应用能够使用“posix_fadvise”而以“POSIX_FADV_DONTNEED”来标记文件描述符,以此方式,对可信计算设备130的第一文件系统分区的数据输入/输出将不被主机110的操作系统缓存。另外,当写入该可信设备130时,主机110将例如使用“fsync”而要求对该文件刷新(flush)数据。

可信设备130的第一文件系统分区允许在主机110上运行的应用与在可信计算设备上运行的应用建立对话(有状态、双向通信信道)。这些会话能够遵循客户端/服务器模型,其中,外围应用起服务器的作用。能够通过hash/端点数配对来识别无论是在主机110上运行的客户端或在可信计算设备130上运行的服务器的会话端点。这种配对能够被提取为能够在会话管理代码(在主机110和可信设备130两者上)内使用以识别已知端点的16字节通用唯一标识符(UUID)值。

在一些实施例中,当主机110的应用希望与可信设备130的应用通信时,则主机110能够:1)生成椭圆曲线密码(ECC)密钥对;2)为自身选择随机端点数;3)分配并初始化会话场境结构;4)通过会话管理库来记录其密钥hash和端点数;以及5)通过第一文件系统分区将连接请求发送至可信设备130。然后,可信设备130的应用被告知存在入站连接请求。然后,可信设备130接受该请求或拒绝该请求。如果接受该连接,则主机130的应用可以通过会话来发送和接收数据。一旦该会话终止,则进行基于会话的通信中常见的会话拆除过程。

除了本文其它部分描述的应用之外,可信设备130的实施例还使得在可信设备130上运行的应用以及在主机110上运行的应用都可获得各种密码原语。可信计算设备130能够像主机110的应用一样向其隔离环境138中的应用提供许多相同的应用API,例如流加密服务、防篡改日志、以及单次口令式验证算法和密钥。

在一些实施例中,为了在OS用户模式下启动一个应用,系统开发者负责调用OS初始化例程、添加任何定制任务并且设置它们的参数并启动OS。每个任务都能够被配置成通过指定有效大小而包括其自身的隔离堆(isolated heap)。然后,可以使用标准dl_malloc API与该堆交互。会话是在OS下通信的主要方法。这些方法能够利用文件系统接口,以便定义该任务和远程端点之间的双向消息通道。API可以是用于数据报套接字族的UNIX套接字API的衍生物,并且其语义符号可以是类似的,例如open/close/sendto/recvfrom。为了高效地利用CPU周期,一些系统接口能够挂起给定的任务并将CPU时间分配给其它操作。在大多数情况下,这都自动地完成,例如当会话操作必须等待数据时。另外,任务能够选择通过提出“yield(放弃)”系统呼叫而放弃其CPU时间。

为了促进跨文件系统接口的通信,可信设备130的实施例提供了用于将原语数据类型序列化和反序列化的函数集合。这些例程的一个目的是便于处理主机和可信设备130之间的编组数据。可信设备130提供用于各种原语类型的序列化/反序列化例程:整数型、字符串和通用唯一标识符(UUID)。对于更富集的数据结构,该可信计算设备的一些实施例提供了代码生成工具,该代码生成工具消耗头文件(header file)(例如,C头文件),并且产生源代码以及用于对这些结构序列化/反序列化的标头(header)。另外,该序列化/反序列化工具生成分配符/解分配符、深复制算子、比较算子、setter和getter、以及数组大小调整操作。这些结构可以被嵌入并包含其长度在运行时确定的数组。

可信设备130的特定实施例中的密码原语被通过公共API提供给在隔离环境138中运行的应用以及在主机110上运行的应用。这些原语包括下列原语中的至少一种:高级加密标准(AES)加密,包括电子密码本(ECB)模式、Galois计数器模式(GCM),和具有密文挪用(XTS)模式的基于tweaked-cookbook模式;椭圆曲线加密(ECC),包括使用高效算法在现代的、经同行评判的曲线(E-521)上执行的椭圆曲线Diffie-Hellman(ECDH)和椭圆曲线数字签名算法(ECDSA);具有hash函数的安全Hash算法(SHA)-256;以及基于具有仿照scrypt制作的设计的SHA-256的用于AES和ECC两者的密钥导出例程;以及符合美国国家标准与技术研究院(NIST)的基于AES伪随机数生成器。

在特定实施例中,可信设备130的应用使用这些原语以在文件系统接口上通信以及执行它们期望的服务。主机110的应用主要使用这些原语与可信设备130通信。为这些密码原语的现代性和可信度仔细选择所支持的密码原语。美国国家安全局(NSA)Suite B cipher suite推荐GCM模式的AES,例如ECDH、ECDSA和SHA-256。对于ECC算法,曲线E-521被选为普遍使用的安全性最高的经同行评判的曲线,对于该曲线,已知存在高效的无支路算法。

应明白,图1所示的网络连接是例示性的,且能够使用在这些计算机和设备之间建立通信链路的其它方式。此外,获得本公开的益处的本领域技术人员应明白,图1中所示的主机计算设备110和第二方计算系统120能够具有任何几种其它适当的计算机系统配置。例如,被实施为移动电话或手持式计算机的主机计算设备110可以包括或可以不包括本文所述的所有部件。

在特定的示例性实施例中,网络计算设备和与本文提出的技术相关联的任何其它计算机器可以是任何类型的计算机器,例如(但不限于)关于图12更详细地讨论的计算机器。此外,与这些计算机器中的任一个相关联的任何模块(例如本文所述的模块或与本文提出的技术相关联的任何其它模块(脚本、web内容、软件、固件或硬件))都可以是关于图12更详细地讨论的任何模块。本文讨论的计算机器可以在一个或多个网络(例如网络105)上彼此通信以及与其它计算机器或通信系统通信。网络105可以包括任何类型的数据或通信网络,包括关于图12所讨论的任何网络技术。

示例性过程

下面参考图2-11中示出的示例性方法和图来描述示例性操作环境100的部件。图2-11的示例性方法也可以与其它系统在其它环境下执行。

图4是示出了根据特定的示例性实施例的、用于通过隔离环境138安全地主机交互的方法的方框流程图。

参考图1-3,在图4的方框405中,可信设备130接收受限信息。即,可信来源(例如第二方系统130)向可信设备130提供包括不能被未授权用户访问的信息。然后,可信设备130接收该信息。例如,用户101将可信设备130连接至可信来源(例如第二方计算系统120),使得该可信来源能够通过可信设备130的安全接口137将受限信息安全地传送给可信设备130的隔离环境138。该通信通过安全接口137发生,使得不可信主机设备110(它可以连接至或者也可以不连接至可信设备130)不具有对该受限信息的直接访问权。例如,第二方计算系统120可以通过第二方计算系统120的可信设备接口123连接至可信设备130。然后,第二方系统120通过可信设备接口123和安全接口137将受限信息发送至可信设备130,该安全接口137被与主机接口132隔离。然后,隔离环境138(例如隔离环境138的隔离环境处理器135)接收该受限信息。之后,如本文所述,隔离环境138的隔离环境处理器135管理对该受限信息的访问。

在特定的示例性实施例中,可信计算机设备130在该设备的制造期间接收此受限信息,在这种情况下,可不必通过安全接口137提供。相反,该受限信息能够直接被包括在所制造的设备的安全存储设备136中和/或在可信设备130的制造期间通过安全接口137提供。然后,如本文所述,隔离环境处理器135能够检索并使用该受限信息。

如本文所使用的,“受限信息”包括任何类型的不可公开获得的机密或私人信息,例如私人用户信息和/或加密信息。例如,受限信息可以包括用户101的任何类型的个人信息或个人可识别信息(“PII”),例如用户101的用户社会保险号、纳税人识别号或其它个人识别号。

在特定的示例性实施例中,该受限信息可以包括用户101的财务账户信息,例如财务账户号、信用卡账户号、储蓄卡账户号、财务账户的个人识别号(“PIN”),或其它财务账户号。另外或可替代地,该受限信息可以包括用户101不想被公开获得的任何其它数字物品或物件,例如个人相片、文档、电子数据表,或与用户101相关联或属于用户101的其它物件。另外或可替代地,受限信息可以包括事件日志条目,例如该可信计算设备已存储在隔离环境138的安全存储设备136内的、主机设备110的系统日志条目。

在特定的示例性实施例中,另外或可替代地,该受限信息可以包括密码数据。例如,可信设备130的处理器能够使用密码数据以对信息(例如被包含在口头和/或书面通信中的信息)加密/解密。本领域技术人员应明白,各种传统的加密方法可兼容本文所述的方法和系统。例如,当提供本文所述的可信设备130以包括用户的私人财务账户信息时,用户的财务机构可以通过安全接口137向可信设备130提供密码数据。如本文所述,该密码数据例如允许可信设备130通过不可信主机设备110向该财务机构提供加密通信。

在特定的示例性实施例中,该受限信息可以包括可信设备130基于从主机设备110接收的信息而建立的信息。例如,在特定实施例中,如本文所述,例如当可信设备130管理和保持主机设备110的系统日志事件条目时,可信设备130基于从主机设备110接收的信息来建立事件日志条目。然后,如本文所述,可信设备130将这些事件日志条目作为受限信息保持在隔离环将138中。

在方框410,可信设备130将受限信息存储在可信设备130的安全存储设备136内。例如,在通过可信设备130的安全接口137接收该受限信息之后,隔离环境138的隔离环境处理器135将该受限信息记录在安全存储设备136中,以便该隔离环境处理器135稍后能够访问来自安全存储设备136的受限信息。然而,如本文所述,可信设备130的安全存储设备136不能被不可信主机设备110直接访问。因此,不可信主机设备110不能直接访问存储在隔离环境138的安全存储设备136内的受限信息。而是,如本文所述,主机设备110访问主机接口132的隔离环境。

在方框415中,可信设备130通过可信设备130的主机接口132从不可信主机设备110接收写文件条目。即,如本文所述,一旦可信设备130连接至不可信主机设备110,则不可信主机设备110就将数据以写文件条目的形式传输至与可信设备130的主机接口132相关联的写文件133。例如,主机设备110通过主机设备110的辅助接口113传输数据。然后,与可信设备130的主机接口132相关联的写文件133接收该写文件条目。

通过将该写文件条目传输至可信设备130,用户101能够——与可信设备130一起——利用不可用主机设备110来代表用户101完成任务,而不将受限信息暴露于主机设备110。例如,用户101可以将命令或输入提供给需要访问受限信息(例如,访问被存储在安全存储设备136内的用户财务账户信息)的不可信主机设备110。响应于该命令或输入,例如,不可信主机设备110将写文件条目发送至可信设备130的写文件133。然后,可信设备130的写文件133通过安全接口132接收该写文件条目。

在特定的示例性实施例中,该写文件条目可以包括与存储在可信设备130的安全存储设备136内的受限信息有关的任何内容。例如,该写文件条目可以包括关于被存储在安全存储设备136内的用户101的财务账户信息的可执行命令或请求,例如从用户的金融账户转账或提现的请求。另外或可替代地,该写文件条目可以包括涉及用户101的用户社会保险卡号、纳税人识别号或其它个人识别号的可执行命令或请求。另外或可替代地,该写文件条目可以包括涉及用户101不想被公开获得的数字物品或物件(例如个人相片、文档、电子数据表,或与用户101相关联或属于用户101的其它物件)的可执行命令或请求。在特定的示例性实施例中,如本文所述,该写文件条目可以包括可信设备130作为受限信息而建立的事件日志条目信息。

此外,由于该写文件条目能够包括与该受限信息有关的任何内容,所以,该写文件条目也提供信息类型的指示,例如存储在安全存储设备136内的可以对所述写文件条目做出响应的受限信息。例如,如果该写文件条目包括处理用户101的现金转账或现金提取的可执行命令或请求,则该写文件条目的内容——也就是说,现金转账或提现请求——提供了如下指示:即,对该写文件条目做出响应的信息包括用户101的金融账户信息。例如,这种响应金融账户信息可以包括用户的金融账户号、以及与金融账户号相关联的任何PIN。在特定的示例性实施例中,该指示可以是特定指示。例如,该写文件条目可以包括从用户101的特定账户(例如用户101的储蓄账户)将现金转账至用户101的另一账户(例如用户101的支票账户)的请求。

在方框420中,可信设备130处理所接收的写文件条目以产生一个输出,即安全输出。即,在隔离环境138中,可信设备130读取该写文件条目,以识别(如果有的话)哪个受限信息可对该写文件条目做出响应。然后,可信设备130基于所识别出的对该写文件条目做出响应的受限信息来确定输出。然后,可信设备130可选地保护该输出,例如通过对该输出加密来产生安全输出。下面参考图5来更详细地描述方框420的细节。

图5是示出了根据特定的示例性实施例并且参考图4的方框420的、用于处理来自不可信主机设备110的写文件条目的方法420的方框流程图。

参考图5,在方法420的方框505中,可信设备130根据该写文件条目来确定对该写文件条目做出响应的信息的指示。即,在将该写文件条目接收到可信设备130的写文件133中之后,可信设备130的隔离环境处理器135从写文件134中检索该写文件条目。例如,隔离环境处理器135然后读取该写文件条目的内容。通过读取该写文件条目的内容,例如,隔离环境处理器135确定哪个(如果存在的话)受限信息可对该写文件条目做出响应。例如,如果该写文件条目包括涉及用户101的金融账户的现金转账或提现的请求,则隔离环境处理器135确定该写文件条目包括“用户的金融账户信息对该写文件条目做出响应”的指示。

在特定的示例性实施例中,该指示可以是特定指示,例如在用户101的特定金融账户之间进行现金转账的请求。例如,该写文件条目可以包括从用户101的特定账户(例如用户101的储蓄账户)转账或提取现金的请求。因此,隔离环境处理器135可以确定该写文件条目包括如下指示:即,用户的储蓄账户信息对该写文件条目做出响应。在其它示例性实施例中,该写文件条目可以是通过用户的金融信息来处理支付的请求。例如,主机应用112(例如数字钱包应用)可以提供寻求用户的金融信息以通过数字钱包应用完成支付的写文件条目。因而,可信设备130确该定写文件条目提供了需要用户的金融信息(例如金融账户号)来处理数字钱包支付请求的指示。

在方框510中,可信设备130识别对该写文件条目做出响应的受限信息。即,基于对该写文件条目做出响应的信息的指示,可信设备130读取与该写文件条目相关的任何受限信息的安全存储设备136的内容。例如,如果隔离环境处理器135确定该写文件条目包括用户的金融账户信息对该写文件条目做出响应的指示,则隔离环境处理器135读取安全存储设备136的内容,以识别用户的金融账户信息。

如本文所述,安全存储设备136可以包括各种受限信息。因此,在特定的示例性实施例中,隔离环境处理器135可以仅识别对该写文件条目做出响应的一部分受限信息。例如,如果所确定的指示仅涉及用户的储蓄账户号——并且不涉及用户101的支票账户号——则隔离环境处理器135可以仅将用户的储蓄账户号识别为对该写文件条目做出响应的一部分受限信息。

在方框515中,可信设备130基于所识别出的对该写文件条目做出响应的受限信息来产生输出。即,可信设备130的隔离环境处理器135将所识别出的受限信息应用于该写文件条目中包括的任何可执行命令或请求,以执行属于该写文件条目的任何指令。然后,隔离处理器135产生对该写文件条目做出响应的输出。

在特定的示例性实施例中,例如当该写文件条目提供用户的金融账户信息对该写文件条目做出响应的指示时,该输出可以涉及包含用户101的账户的金融交易。例如,如果该写文件条目涉及从用户的金融账户中进行现金转账或提现的请求,则可信设备130可以产生能够用于开始并准许金融交易的输出。即,隔离环境处理器135可以基于安全储存设备136内的所识别出的用户账户信息来产生不可信主机设备110能够发送至用户的银行或其它金融机构的通信。例如,该通信可以包括用户101的特定账户信息、用户的姓名、PIN和/或将要转账或提现的账户。例如,包括用户的PIN可以构成对该转账或提现的批准。在现金转账或提现的情况下,该通信可以包括关于现金将被转账或提取的账户(例如该用户的另一账户(或属于不同用户的账户))的信息。例如,如果用户101将现金从该用户的储蓄账户转账至该用户的支票账户,则该通信可以包括用户的储蓄账户号和用户的支票账户号二者。

在方框520中,可信设备130可选地保护该输出以产生一个安全输出。即,在特定的示例性实施例中,隔离环境处理器135可选地修改或改变该输出,使得该输出将不把受限信息的内容公开给任何未授权用户。例如,隔离环境处理器135可以例如通过检索并应用先前存储在可信设备130的安全存储设备136内的任何密码数据对输出加密。通过对该输出加密,例如,因而提供一个安全输出。如果该输出涉及包含用户101的储蓄账户的金融交易,例如,则该输出可以包括用户的储蓄账户号。因而,隔离环境处理器135对用户的储蓄账户号以及任何其它受限信息加密,从而用户101的受限信息将不可被可能具有或可能获得对主机设备110(且因此对主机设备110的内容)的访问权的未授权用户理解。

在特定的示例性实施例中,该加密可以基于用户受限信息的hash值。例如,该加密可以基于用户的金融账户信息和标识该用户的信息的hash值,例如用户的金融账户号和用户的标识信息。本领域技术人员应明白,存在许多hashing法(hashing methods)以对该受限信息加密。

返回到图4,在图4的方框425中,可信设备130将所述输出(例如可信计算设备130已经保护的输出)发送至可信设备130的读文件134。例如,当隔离环境处理器135将对该写文件条目做出响应的输出加密时——因而产生一个安全输出——隔离环境处理器135将该安全输出传达给可信设备130的读文件134。读文件134接收该安全输出,因而使得该安全输出可用并可以由不可信主机设备110访问。在特定的示例性实施例中,例如下文参考图6所讨论的,可信设备130在处理该写文件条目以产生一个输出之前和/或在将该安全输出发送至读文件134之前可选地从用户101接收安全授权。

在方框430中,不可信主机设备110接收该输出(例如所述安全输出),并完成该安全输出的任何主机侧处理。即,不可信主机设备110通过主机设备110的辅助接口113和可信设备130的主机接口132访问该读文件134。然后,不可信主机设备110读取该输出(例如所述安全输出)。通过读取该输出,例如,不可信主机设备110确定该输出的内容。例如,通过读取该输出的内容,不可信主机设备110可以确定该输出是涉及先前发送的请求现金转账或提现的写文件条目的安全输出。基于该安全输出的内容,不可信主机设备110能够通过采取使用该安全输出所需的任何进一步的计算动作来处理该安全输出。例如,如果读文件134内的安全输出是对涉及现金转账或提现请求的写文件条目的响应——并且该安全输出包括对于所述转账的加密批准——则不可信主机设备110能够包括通过网络105传输至预期的金融机构接受器的安全输出。换句话说,所述另外的处理包括将该安全输出传输至用户101的金融机构。

在涉及用户的受限信息的金融交易中,例如本文所述的现金转账或提现,用户的实际受限信息——例如用户的金融账户信息——决不会以不安全的形式被不可信主机设备公开获得。而是,例如,仅加密的安全输出可被不可信主机设备110获得,以在网络105上传输至用户的金融机构。一旦用户的金融机构接收到了该安全输出,例如,则该金融机构能够使用与用于提供可信设备130以对该安全输出解密的密码数据相对应的密码数据。然后,金融机构能够采取与该安全输出相关联的任何动作,例如完成用户101的现金转账或提现。

在特定的示例性实施例中,如果该输出是对一项支付——例如通过数字钱包应用的支付——的安全批准,则该数字钱包应用可以使用所述安全输出来代表用户101完成支付。例如,该数字钱包应用可将该安全输出无线地发送至商店的信用卡终端(未示出)。例如,商店终端接收该安全输出,并将该安全输出例如沿传统的信用卡路径发送至正确的收单行/发卡行。另外或可替代地,商店可以通过网络发送授权进行所述支付的安全输出。例如,然后,收单行/发卡行接收该安全输出并对该安全输出解密,以完成支付交易。

图6是示出了根据特定的示例性实施例的、用于授权将该输出传输至读文件134的方法600的方框流程图。

参考图6,在方法600的方框605中,可信设备130被可选地配置成要求该输出的用户授权,例如对该安全输出的授权。即,在特定的示例性实施例中,授权用户101和/或可信设备130的制造商能够可选地要求该设备提供寻求授权以处理所述写文件条目或将该安全输出发送至读文件134的请求。例如,用户101可以通过安全接口137访问可信设备130,并输入或选择要求用户授权的控制选项。基于用户101的输入或选择,如本文所述,可信设备130然后可以在处理所述写文件条目或将该输出发送至读文件134之前要求“生活证据”和/或身份验证——例如挑战-响应授权进程。另外或可替代地,可信设备130的制造商例如可以在制造过程期间对该设备编程,以在处理所述写文件条目或将该输出发送至读文件134之前要求“生活证据”和/或身份验证。

在方框610中,如果可信设备130被配置成在处理所述写文件条目或将该输出发送至读文件134之前要求“生活证据”和/或身份验证,则可信设备130向用户101发送请求,以提供对该输出(例如所述安全输出)进行授权的用户输入。即,可信设备130向用户101提供信号或其它通信,以授权对所述写文件条目的处理,从而产生安全输出和/或将该安全输出发送至读文件134。该信号能够是给用户的任何类型的信号,信该号由可信设备130始发。例如,该信号可以是可信设备130的主体上的闪烁光和/或源自与可信设备130相关联的扬声器的音频通知。

在方框615中,可信设备130确定是否已经通过安全接口137接收到用户输入。例如,如果提供用户输入的该信号是闪光和/或音频通知,则用户101接收该信号并且——如果合适的话——通过安全接口137将该输入提供给可信设备130。基于所接收到的来自用户101的用户输入,可信设备130确定用户输入已经被接收到可信设备130的安全接口137中。如果用户101未提供用户输入,则可信设备130确定未接收到用户输入。

在特定的示例性实施例中,该用户输入可以是对安全接口137的直接输入。例如,用户可以触摸与可信设备130的安全接口137相关联的传感器,由此向该传感器(并因此向可信设备130)提供用户输入。在希望进行身份验证的特定实施例中,例如,用户101也可以将用户特定的安全代码直接输入到可信设备130的安全接口137的用户接口中。例如,用户可以将用户101独有的个人识别号(“PIN”)输入到安全接口137的按钮用户接口中。

在特定的示例性实施例中,用户输入可以通过无线输入。例如,用户101可以具有能够通过安全接口137连接至可信设备130的无线遥控钥匙(key fob)。例如,该遥控钥匙可以依赖于蓝牙和/或近场通信(“NFC”)技术,以将用户输入通过安全接口137传输至可信设备130。在特定的示例性实施例中,该无线的用户输入可以包括该遥控钥匙通过安全接口发送至可信设备130的安全代码。本领域技术人员应明白,该无线输入可以是加密信号。在这种实施例中,可信设备130例如可以被提供成包括能够对该无线输入解码的密码数据。

在特定的示例性实施例中,用户101和/或可信设备制造商可以配置特定的响应时长以接收用户输入。例如,用户101和/或可信设备制造商可以为用户101设置约5至10秒的时长,以便通过输入来进行响应,例如5、6、7、8、9或10秒。在特定的示例性实施例中,该时长可以更长,例如约60秒。如果用户101在所配置的响应时长内未通过用户输入而做出响应,例如,可信设备130就确定未接收到输入。相反,如果用户101在所配置的响应时长内确实提供了用户输入,则可信设备130确定已经接收到用户输入。

在方框620中,根据特定的示例性实施例,如果可信设备130确定已经通过安全接口137接收到用户输入,则该方法沿着方框620的“是”支路到达图6的方框630。根据特定的示例性实施例,如果可信设备130确定尚未通过安全接口137接收到用户输入,则该方法沿着方框620的“否”支路到达图6的方框625。

在方框625中,如果可信设备130确定用户尚未提供用户输入,则可信设备130不对所述读文件134产生输出。例如,如本文所述,可信设备130的隔离环境处理器135可以不处理写文件条目来产生输出,或者,隔离环境处理器135可以暂停对该写文件条目的任何现有处理(如果隔离环境处理器135已经开始处理该写文件条目)。另外或可替代地,如本文所述,如果隔离处理器已经处理了该写文件条目以产生输出,则隔离环境处理器135可以不将该输出发送至读文件134。因此,与其中产生输出或将该输出发送至读文件134的过程无关,通过暂停该方法——响应于缺乏对安全接口137的用户输入——防止输出被发送至读文件134。这样,如本文所述,不可信主机设备110不能接收输出,例如安全输出。

在方框630中,如果可信设备130确定用户已经提供了用户输入,则如图4的方框425所述,可信设备130将该输出发送至读文件134。即,在隔离环境处理器135完成了例如图5的方框505至520中所描述的产生该输出所需的任何处理之后,136将该输出传达给可信设备130的读文件134。在特定的示例性实施例中,如本文所述,可信设备130也保护该输入,例如通过对该输入加密而产生安全输出。如本文所述,读文件134接收该安全输出,因而使得该安全输出可用,并能够被不可信主机设备110访问。

通过配置该可信设备130而要求“生活证据”和/或身份验证,用户101和/或可信设备130制造商能够增强与可信设备130相关联的安全性。例如,如本文所述,如果可信设备130被配置成要求用户101在设备130将一个安全输出发送至读文件134之前触摸该设备130的主体,则用户101必须实际上靠近该可信设备130。例如,未授权用户101因而不能远程地命令可信设备130继续将该安全输出发送至读文件134。

在特定的示例性实施例中,例如当可信设备130被配置成要求用户101将安全代码直接输入到设备130中时,该安全代码的条目既验证用户101是存在的又进一步确认用户101的身份。即,用户101知道正确的安全代码(并且正确地将该安全代码作为用户输入而输入到可信设备130中)的事实进一步验证用户101是存在的并且是授权用户101。例如,未授权用户将大概不具有安全代码,因而不能向可信设备130提供安全代码。

图7是示出了根据特定的示例性实施例的、用于在两个或更多个主机计算设备之间安全通信的系统700的方框图。

参考图7,提供了与第一可信设备130a相关联的第一主机设备110a,第一可信设备130b被如本文所述地配置。例如,在本文所述的其它部件中,第一可信设备130a包括用于连接至第一主机设备110a和第一安全接口137a的主机接口132a,例如用于接收和发送受限信息,例如机密通信。同样,图7示出了与第二可信设备130b相关联的第二主机设备110b,第二可信设备130b被如本文所述地配置。例如,在本文所述的其它部件中,第二可信设备130b包括用于连接至第二主机设备110b和第二安全接口137b的第二主机接口132b,例如用于接收和发送受限信息,例如机密通信。也示出了网络105,第一主机设备110a和第二主机设备110b能够采用网络105以进行基于网络的通信。通过配置例如图7所示和根据本文提供的实施例的系统,两个用户(例如第一用户101a和第二用户101b)能够交换安全通信。例如,在下文中参考图8详细描述这种方法。

图8是示出了根据特定的示例性实施例的、用于在不可信主机设备110之间安全通信的方法800的方框流程图。

参考图1-3和图7,在方法800的图8的方框805中,两个或更多个可信设备130例如按照如图4的方框405-415来接收受限信息并将该受限信息存储在安全存储设备136内。即,两个或更多个可信设备130中的每一个都被安全地提供为包括未授权用户不能访问的受限信息。然后,可信设备130在每个可信设备130的安全存储设备136内存储该受限信息,例如用于产生和破译加密通信的密码数据。

在特定的示例性实施例中,两个用户(例如用户101a和用户101b)可以将两个或更多个可信设备130“配对”在一起,使得这两个可信设备130交换受限信息。例如,两个可信设备130a和130b种的每一个都能够以可移除方式附接至或集成到被设计为便于用户通信的两个单独的耳麦中。通过使所述耳麦彼此靠近,用户101a和101b能够允许这两个耳麦的可信设备130a和130b通过安全接口137交换受限信息,例如密码数据。例如,各个耳麦的两个可信设备130a和130b可以通过蓝牙连接和/或近场通信(“NFC”)交换密码数据。然后,每个可信设备130a和130b都在该可信设备130a和130b的安全存储设备136内存储相应的密码数据,使得该密码数据不能被任何不可信主机设备(例如,可连接至所述耳麦的主机设备130a和130b)直接访问。

另外或替代地,并且在特定实施例中,可信设备130a和130b的制造商可以提供可信设备130a和130b以在制造过程期间包括相应的密码数据,例如可以使用或不使用安全接口137a和137b,如本文所述。在特定的示例性实施例中,该密码数据可以包含其它信息,例如加密通信被发送到的位置的数字地址。这种数字地址数据例如可以与该密码数据一起存储在安全存储设备136内。

在方框810中,第一可信设备130a通过第一安全设备130a的安全接口137a从第一用户101a接收用户通信。即,第一用户101a通过安全接口137将通信传输至第一可信设备130a,并且,隔离环境138例如通过隔离环境处理器135接收该传输。例如,在第一可信设备130a和第二可信设备130b被配对而具有相应的加密数据之后,第一用户101a可以向耳麦中的麦克风说话,该麦克风被集成到所配对的耳麦之一中或者与所配对的耳麦之一相关联,并连接至第一可信设备130a的安全接口137a。由于该麦克风通过安全接口137a连接至第一可信设备130a,所以,该连接是不将第一用户的音频通信暴露于与耳麦相关联的任何不可信主机设备110a的安全连接。

在方框815中,第一可信设备130a对第一用户101的通信加密。例如,在第一可信设备130a从第一用户101a接收到通信之后,第一可信设备130a的隔离环境处理器135从安全存储设备136中检索先前检索过的密码数据。然后,第一可信设备130a的隔离环境处理器135将所检索的密码数据应用于从第一用户101a接收到的通信,从而对该通信加密来产生安全输出。

由于对来自第一用户101a的通信的加密发生在第一可信设备130a的隔离环境138中,所以,未加密的通信仍不可被与包含第一可信设备130a的耳麦相关联的任何不可信主机设备110访问。在特定的示例性实施例中,第一可信设备130可以将数字地址信息(例如未加密的数字地址信息)与该加密通信相关联。如文本所述,第一可信设备130a的隔离处理器135可以使用任何未加密的数字地址信息,例如,用于将该加密通信传达给正确的接收者(例如,第二用户101b)。

在方框820中,第一可信设备130a将加密通信数据发送至第一可信设备130a的读文件134。例如,一旦第一可信设备130a的隔离处理器135对该通信加密而产生安全输出,如本文所述,第一可信设备130a的隔离环境处理器135就将该加密通信——作为安全输出——传达给第一可信设备130a的读文件134。第一可信设备130a的读文件134接收该加密通信,因而使不可信主机设备110能够获得该加密通信。

在特定的示例性实施例中,例如本文参考图6所描述的,第一可信设备130能够可选地在将该加密通信(即,本示例性实施例中的安全输出)发送至读文件134之前从第一用户101a获取安全授权。例如,第一用户101a可以响应于来自第一可信设备130a的请求而在任何通信能够被加密和/或发送至所述写文件之前将安全代码输入到可信设备130a中。如参考图6所述的,在这种示例性实施例中,在可信设备130的隔离环境处理器135将该输出(例如所述安全输出)发送至其中主机设备110能够接收该输出的读文件134之前要求接收用户输入。

在方框825中,第二可信设备130b接收到加密通信。例如,与第一可信设备130a相关联的第一不可信主机设备110a从第一可信设备130a的读文件134接收该加密通信、以及任何未加密数据(例如,指明该加密通信应被发送至何处的数字地址数据)。然后,第一不可信主机设备110将该加密通信发送至第二不可信主机设备110b,该第二不可信主机设备110b例如与第二可信设备130b相关联。第二可信设备130b例如可以是先前与包含第一可信设备130a的耳麦配对的耳麦的一部分。因此,如本文所述,第一和第二可信设备(图7的130a和130b)共享相应的加密数据。下面参考图9进一步详细描述方框825的细节。

图9是示出了根据特定的示例性实施例的、用于通过第二可信设备130b接收加密通信的方法825的方框流程图。

参考图1-3和图7,在方法825的方框905中,第一不可信主机设备110a从第一可信设备130a的读文件134接收加密通信。即,第一不可信主机设备110a通过可信设备130a的该主机接口132a访问读文件134。然后,第一不可信主机设备110a读取第一可信设备130a的读文件134的内容,例如用于确定读文件134包括作为所述输出的加密通信。通过读取和确定可信设备130a的读文件134的内容,第一不可信主机设备110a接收该加密通信。

在特定的示例性实施例中,第一不可信主机设备110a也可以读取与该加密通信相关联的数据,例如关于该加密通信应被发送至的位置的数字地址的数据。然后,第一不可信主机设备110a能够使用该地址信息以将该加密通信发送至第二不可信主机设备110b。换句话说,第一主机设备110a可以执行涉及该第一通信的另外处理,例如确定将该第一通信发送至哪里。

在特定的示例性实施例中,第一不可信主机设备110a可以是第一用户101a的移动电话或其它移动设备。例如,如本文所述,该移动电话可以连接至无线耳麦,该耳麦包括被集成的或以可移除方式附接的第一可信设备130a。然后,第一不可信设备110a(例如用户的移动电话)能够通过与耳麦的无线连接(例如蓝牙和/或近场通信(“NFC”)连接)来接收本文所述的加密通信。另外或可替代地,第一不可信主机设备110a与被集成到耳麦中或以可移除方式附接至耳麦的第一可信设备130a之间的该连接可以是有线连接或其它直接连接。

在方框910中,第一不可信主机设备110a将该加密通信传达给第二不可信主机设备110b。即,第一不可信主机设备110a例如通过网络105将该加密通信发送至第二不可信主机设备110b,使得第二不可信主机设备110b接收到该加密通信。例如,第一不可信主机设备110可以依赖于与该加密通信相关联的任何数字地址信息,以识别第二不可信主机设备110b的位置。然后,第一不可信主机设备110a通过网络将该加密通信发送至与该加密通信相关联的数字地址,并且第二不可信主机设备110b接收该加密通信。

在特定的示例性实施例中,例如当该加密通信不与该加密通信的接收者的数字地址相关联时,第一用户101a可以例如从用户通讯录中选择一个数字地址以发送该通信。例如,第一用户101a可以从第一用户101a的主机设备110a上的通信录应用中将第二用户101b选择为该加密通信的接收者。基于第一用户101a的选择,在这种实施例中,第一不可信主机设备110a将该加密通信发送至所选中的第二用户101b的数字地址。然后,第二不可信主机设备110b(例如第二用户的移动电话)接收该加密通信。

在方框915中,在从第一不可信主机设备110a接收到该加密通信之后,第二不可信主机设备110b将该加密通信发送至第二可信设备130的写文件133。即,第二不可信主机设备110将从第二不可信主机设备110接收到的该加密通信发送至与第二不可信主机设备110b相关联的第二可信主机设备130b的写文件133。例如,如本文所述,第二不可信设备110b可以无线地或通过有线方式连接至包含第二可信设备130b的耳麦。为了将该加密通信发送至第二可信设备130b,例如,第二不可信主机设备110b将该加密通信经由有线或无线连接、例如通过第二可信设备130b的主机接口132发送至第二可信设备130b的写文件133。

在特定的示例性实施例中,第二不可信设备110b可以是第二用户101b的移动电话或其它移动设备。例如,第二用户101b的移动电话例如通过网络105而从第一用户101a的移动设备接收该加密通信。第二用户的移动电话接收到该加密通信,然后将该加密通信例如通过在第二用户101b的耳麦和移动电话之间的蓝牙和/或近场通信(“NFC”)连接而发送至第二用户101b的耳麦。与第二用户101b的耳麦集成(或以可移除方式附接)的第二可信设备130b将该加密通信作为写文件条目而接收到第二可信设备130b的写文件133中。

参考图8,在图8的方框830中,第二可信设备130b所接收到的加密通信。即,第二可信设备130b的隔离环境处理器135从第二可信设备130b的写文件133检索该安全通信。然后,隔离环境处理器135基于先前接收的密码数据(例如在第一可信设备130a和第二可信设备130b的配对期间接收到的密码数据)对该加密通信解密。

在特定的示例性实施例中,图8的方框830的处理遵循于图5的方框505至510中所述的方法。例如,第二可信设备130b的隔离环境处理器135读取所述写文件条目,以将该条目识别为加密通信。然后,隔离环境处理器135确定所存储的密码数据对该写文件条目做出响应,因为第二可信设备130b的隔离处理器105能够使用加密数据对该加密通信解密。通过检索和应用该密码数据,例如,第二可信计算设备130b的隔离环境处理器135从第一用户101a的第一通信中产生解密通信。

在方框835中,第二可信设备130b通过第二可信设备130b的安全接口137b将该解密通信发送至第二用户101b。例如,在隔离环境处理器135产生解密通信之后,第二可信设备130b的隔离环境处理器135可以将该解密通信传输至与第二可信设备130b的安全接口137连接的扬声器。该扬声器例如可以位于第二用户101的耳麦的听筒内,使得该扬声器的任何输出都被引到第二用户101的耳朵内。例如,使用该安全接口137,隔离环境处理器135通过引导该扬声器以提供该解密通信的音频输出而将该解密通信发送至第二用户101。然后,第二用户101能够接收该解密通信的音频输出。

等到第一用户101a的该通信到达第二用户101b的耳朵时,该通信仅以加密的形式经过不可信主机(即,第一不可信主机设备110a和第二不可信主机设备110b)。因此,不可信主机设备不具有对该未加密通信的访问权,从而允许第一用户的通信保持私密性。并且,由于该通信仅以加密的形式经过不可信主机设备,所以,从第一用户101a至第二用户101b的通信对于可能尝试窃听或拦截该通信的未授权用户来说远没有那么脆弱。

虽然上述实施例描述了从第一用户101a至第二用户101b的单向通信,但本领域技术人员应明白——考虑到本文所述的内容——这些过程能够反过来以完成双向通信。即,本文所述的过程能够倒过来以提供从第二用户101b至第一用户101b的安全通信。例如,第二用户101b可能希望通过向第一用户101a提供第二通信而安全地响应第一用户101a的第一通信。

在这种双向通信实施例的示例中,第二用户101b可以对连接至第二可信计算设备130b的麦克风说话。第二可信计算设备130b通过安全接口137b接收该通信。在接收到该通信后,第二可信计算设备130b的隔离环境处理器135对该第二通信加密,然后将该加密通信发送至第二可信计算设备130b的读文件134。在特定的示例性实施例中,如本文所述,第二可信计算设备130可以要求来自第二用户101b的用户输入,以授权对第二不可信主机设备110b的加密传输。

在第二不可信主机设备110b从第二可信计算设备130b的读文件接收到加密的第二通信后,第二不可信主机设备110b将该加密通信发送至第一不可信主机设备110a。然后,第一不可信主机设备110a将该加密通信发送至第一可信计算设备130a的写文件133。第一可信计算设备130a的隔离环境处理器135对该加密的第二通信解密,然后将解密后的第二通信提供给第一用户101a。例如,第一可信计算设备130a通过与第一可信计算设备130a的安全接口137a连接的扬声器作为音频输出来提供解密后的第二通信。该扬声器例如可以集成到第一用户101a的耳麦中,从而允许音频输出被直接提供给第一用户101a的耳朵。

除了上述方法之外,用户101也能使用可信设备130以安全地管理主机系统事件日志条目。图10是示出了根据特定的示例性实施例的、用于安全事件日志管理的方法1000的方框流程图。

参考图1-3,在图10的方框1005中,可信计算设备通过主机接口132从不可信主机设备110接收写文件条目。即,例如图4的方框410中所述,不可信主机设备110将信息发送至可信计算设备130的写文件133,并且可信计算设备130将该信息作为写文件条目接收到可信计算设备130的写文件133中。该传输通过可信计算设备130的主机接口132进行。

在特定的示例性实施例中,该写文件条目涉及主机设备110的系统日志信息。即,主机设备110可以将主机设备110的系统日志信息作为写文件条目发送至可信计算设备130的写文件133。然后,可信计算设备130将主机设备110的系统日志信息作为写文件条目写入到可信计算设备130的写文件133中。在这种实施例中,该写文件条目可以涉及或包括主机设备110的操作系统能够记录的系统事件。例如,事件日志可以涉及或包含关于设备变化、设备驱动器、系统变化、系统操作的信息或关于主机计算系统110的其它信息。

在特定的示例性实施例中,事件日志可以包括应用(程序)事件,其中,取决于事件的严重性,这些事件被分类为错误、警告或其它信息。例如,错误的事件日志可包括数据损失。其它事件日志可以涉及或包括安全相关事件,包括成功或失败的审查或安全漏洞。其它事件日志可以涉及或包括设置事件或系统事件。又一些其它事件日志可以包括转发事件,例如从与主机设备110相关联的其它设备转发的事件。

在特定的示例性实施例中,主机设备110在用户101登录到主机设备110时、在主机设备110上的程序或应用遇到错误时或者在主机设备110检测到威胁或入侵时产生日志事件。然后,主机设备110将事件日志发送至可信计算设备130的写文件130,并且可信计算设备130的写文件133将该事件日志接收为写文件条目。

在特定的示例性实施例中,可信设备130可以管理和保持主机设备110的系统日志。即,可信设备130用作主机设备110的事件日志系统。因此,主机设备110将管理和保持的所有事件日志例如都可以作为写文件条目发送至写文件133。所述写文件接收该写文件条目,并且可信计算设备130管理和保持主机设备110的——并且代表主机设备110的——系统日志。

在特定的示例性实施例中,该写文件条目可以不涉及主机设备110的系统日志事件,而是涉及与存储在可信计算设备130上的受限信息有关的请求。例如,主机设备110可以向可信计算设备130的写文件133提供涉及用户的金融信息的请求或命令,例如本文所述的对现金转账或提现的请求。该写文件133作为写文件条目接收该请求。然后,可信计算设备130将所接收到的写文件条目记录为事件日志。换句话说,在特定的示例性实施例中,可信计算设备130可以保持和管理作为写文件条目接收的所有事件的事件日志,而与主机设备110是否在主机设备110上保持或管理系统日志或是否依赖于可信计算设备130以管理和保持代表主机设备110的系统日志无关。

在方框1010中,可信计算设备确定与该写文件条目相关联的日志数据。即,可信计算设备130例如通过所述隔离环境的隔离环境处理器135而从写文件133检索该写文件条目。然后,该隔离处理器确定与该写文件条目相关联的信息,例如与该写文件条目相关联的事件的日期、与该写文件条目相关联的事件的时间、或与该写文件条目相关联的任何其它信息。例如,如果可信计算设备130管理和保持主机设备110的系统日志,则隔离环境处理器135可以确定该写文件133接收用于访问尝试(并因此确定访问尝试的时间)的写文件条目的时间。隔离环境处理器135例如也可以通过读取针对失败访问尝试(failed access attempt)的该写文件条目的内容,确定所接收到的写文件条目涉及失败访问尝试,例如未授权用户的失败访问尝试。

在方框1015中,可信计算设备130基于所确定的日志数据来建立事件日志条目。即,在可信计算设备130确定与该写文件条目相关联的日志数据后,隔离环境处理器135使用所确定的日志数据来产生事件日志条目。例如,如果隔离环境处理器135确定主机设备110在01/01/14日的10:53:32将作为写文件条目的一次失败访问尝试事件输入到写文件133中,隔离环境处理器135产生针对01/01/14日的10:53:32的写文件条目的事件日志条目。在特定的示例性实施例中,例如当可信计算设备130的隔离环境处理器135确定该写文件条目的内容时,隔离环境处理器135也可以将写文件内容的说明与该写文件条目相关联。例如,如果该写文件条目涉及在主机设备110上的失败访问尝试,则日志事件条目说明可以指明该事件涉及01/01/14日的10:53:32的失败访问尝试。

在特定的示例性实施例中,除了建立事件日志条目之外,如本文所述,可信计算设备130也可处理任何写文件条目。即,如果写文件条目涉及被记录在安全存储设备136内的受限信息——例如使用用户的存储金融账户信息的现金转账或提现请求——可信计算设备130可以如本文所述地(例如图4的方框405至430中所述地)处理请求并建立对于该请求的事件日志。例如,主机设备110提供写文件条目请求,以从用户101的金融账户转账,可信设备130处理该写文件条目,以便如图4的方框405至430中所述地产生对于该请求的输出。但另外,在特定的示例性实施例中,可信设备130可以建立对于该请求的事件日志条目。

在方框1020中,可信计算设备130在安全存储设备136中记录事件日志条目。即,在建立与写文件条目相对应的事件日志条目后,隔离环境处理器135将该事件日志条目发送至隔离环境138的安全存储设备136。安全存储设备136接收该事件日志条目并在安全存储设备136中(例如在该安全存储设备的事件日志文件或数据库中)记录该事件日志条目。例如,如果该事件日志条目包括日期、时间和/或事件说明,则可信计算设备130的隔离环境处理器135将与该写文件条目相对应的事件条目的日期、时间和/或事件说明记录在安全存储设备136内。如果隔离环境处理器135建立例如包括日期01/01/14、时间10:53:32以及指明该事件涉及失败访问尝试的事件日志条目,则所记录的事件日志条目可以包括日期01/01/14、时间10:53:32、以及该事件日志条目涉及在主机设备110上的失败访问尝试的指示。

由于可信计算设备130的隔离环境处理器135在隔离处理环境138的安全存储设备136中存储事件日志条目,所以主机设备110不能直接从安全存储设备136访问该事件日志条目。例如,由于对该事件日志条目的进一步访问仅限于授权用户,所以,所存储的事件日志条目变成受限信息。例如,主机设备110的未授权用户不能访问存储在安全存储设备136内的事件条目,例如不能修改、删除或以其它方式篡改该事件日志条目。而是,如本文所述,仅授权用户101能够访问该事件日志条目,例如通过安全接口137或通过可信计算设备130的读文件134。

在特定的示例性实施例中,该事件日志条目是仅增条目(append-only entry)。即,可信计算设备130的隔离环境处理器135将事件日志条目附加至事件日志文件或数据库的其它条目的末尾,而不改变或删除任何之前的事件日志条目。例如,在仅增实施例中,隔离处理器135可以在先前记录的事件日志条目之后紧跟着记录下一个事件日志条目的日期、事件和说明。作为一个仅增条目,该日志条目不能被修改。换句话说,一旦处理器将该事件日志条目记录在安全存储设备中,授权用户101、甚至是用户101所信任的主机设备110都不能改变或修改该条目。在特定的示例性实施例中,隔离处理器135记录多个仅增条目,因而产生仅增的日志文件或系统事件日志。例如,当新的事件日志条目被添加至可信设备130的安全存储设备136时,如本文所述,存储在安全存储设备132内的所有事件日志——与新的事件条目一起——可用作日志文件的仅增系统事件日志。因此,即使是主机110的授权用户101和/或用户101所信任的主机设备110也不能修改或以其它方式编辑(除了增加)被存储在系统事件日志或日志文件中的日志信息。

在特定的示例性实施例中,隔离环境处理器135可以向每个事件日志条目指配唯一的、按顺序的日志条目号。通过依赖于按顺序的日志条目号,事件日志条目在安全存储设备136内的排序提供了相对的时间指示,因为最近增加的事件日志条目比先前的事件日志条目更新。即,按顺序的日志条目号提供了事件条目的相对时间戳,这是因为能够相对于其它事件条目的时间测量每个条目的时间。通过依赖于按顺序的日志条目号,在特定的示例性实施例中,可信设备130能够产生用于若干个事件日志条目的事件日志,例如与物理时钟解耦的系统事件日志。

图11是示出了根据特定的示例性实施例的、用于将事件日志条目传达给授权用户101的并行方法1100的方框流程图。例如,如下文在方框1105至1115中所述的,可信设备130通过安全接口137将来自安全存储设备136的一个或多个事件日志条目传达给用户101。另外或可替代地,例如下文方框1120至1130中所述,可信设备130通过主机接口132将来自安全存储设备136的一个或多个事件日志条目传达给用户101。然后,用户101接收该一个或多个事件日志条目。例如,用户101可以接收多个事件日志条目的整个系统日志或日志文件。

参考图11,在图10的方框1105中,可信计算设备130通过可信计算设备130的安全接口137接收对事件日志条目的用户请求。例如,授权用户101可以将可信设备130连接至能够通过安全接口137访问可信计算设备130的隔离环境138的可信的第二方计算系统120。利用该第二方计算系统120,例如,授权用户101通过安全接口137将一个请求(例如接收一个或多个事件日志条目的请求)发送至可信设备130。例如,授权用户101可以请求访问包含多个事件日志条目的事件日志条目文件或系统日志。隔离环境处理器135通过安全接口137接收该访问请求。

如本文所述,由于主机设备110与安全接口137隔离,主机设备110既意识不到、也不能影响通过安全接口137做出的请求。例如,主机设备110不能通过安全接口137请求安全事件日志条目(或其它受限信息)。因而,通过安全接口137的授权用户请求保持相对于不可信主机设备110是安全的。

在方框1110中,可信设备130从安全存储设备136中检索事件日志条目。例如,可信计算设备130的隔离环境处理器135读取从请求访问一个或多个事件日志条目的授权用户101接收的请求。然后,隔离环境处理器135响应于授权用户的请求而针对事件日志条目读取该安全存储设备136。例如,如果授权用户101已经请求访问整个事件日志文件内容(例如系统日志或日志文件),则隔离环境处理器135识别整个事件日志文件或系统日志,并且如本文所述地检索用于发送至授权用户101的整个事件日志文件或系统日志。

在方框1115中,可信计算设备130通过安全接口137将该事件日志条目发送至用户。即,在响应于访问事件日志条目的用户请求而识别一个或多个事件日志条目之后,隔离处理器135通过可信计算设备的安全接口137将所检索到的一个或多个事件日志条目发送至授权用户101。例如,如果授权用户101请求来自可信设备130的整个日志文件或系统日志内容,则隔离处理器135通过安全接口137将整个日志文件或系统日志发送至授权用户101。然后,如本文进一步所述的,授权用户101通过安全接口137接收该一个或多个事件日志条目。

在特定的示例性实施例中,例如图6的方框605至630中所述,可信设备130可以请求用户输入,以授权通过安全接口将所述一个或多个事件日志条目发送至授权用户101。例如,如本文所述,可信设备130可以向用户101传输授权请求,例如闪光、听觉通信或其它通信。如本文所述,授权用户101从可信计算设备130接收该传输,并通过可信计算设备130的安全接口137将用户输入提供给可信计算设备130。

在特定的示例性实施例中,该用户输入可以包括用户101例如通过将代码输入到可信计算设备130的主体中和/或通过无线连接而输入到可信计算设备130内的安全代码。例如,如本文所述,授权用户101可以将来自无线遥控钥匙的加密代码发送至可信计算设备130。然后,可信计算设备130从该遥控钥匙接收加密代码,因而授权将所述一个或多个事件日志条目发送给授权用户101。

在方框1120中,除了图10的方框1005至1015中所述的方法之外或替代这些方法,可信计算设备130从主机设备110接收请求所记录的事件日志条目的写文件条目。例如,用户101将请求输入到主机设备110的用户接口,以请求一个或多个日志事件条目,例如日志文件或系统日志。然后,主机设备110接收请求一个或多个日志事件条目(例如日志文件或系统条目)的用户输入,并通过主机接口132将作为写文件条目的该请求发送至可信设备130的写文件133。例如本文在图4的方框415中所述的,该写文件接收作为写文件条目的该发送。

在方框1125中,可信计算设备130处理所接收到的写文件条目。即,例如图5的方框505至515中所述,可信设备130响应从写文件133接收的对一个或多个事件日志条目的请求。例如,基于所接收到的写文件条目请求,可信计算设备130从该写文件条目确定该写文件条目涉及所存储的事件日志条目。可信计算设备130也识别对所确定的写文件条目做出响应的一个或多个事件日志条目。然后,可信设备130基于所识别出的对该写文件条目做出响应的事件日志条目来产生输出。例如,隔离环境处理器135可以产生被存储在安全存储设备136内的仅增事件日志条目的拷贝而作为输出。例如,在特定的示例性实施例中,例如图5的方框520中所述,可信计算设备130例如通过对所请求的事件日志条目的输出加密来保护该输出。例如,隔离环境处理器135可以对该响应事件日志条目加密,以产生能够通过网络105传达给能够对加密的事件日志条目解密的第二主机设备110的安全输出。

在方框1130中,可信计算设备130将一个或多个事件日志条目发送至可信计算设备130的读文件134。即,例如图4的方框425中所述,可信设备130的隔离环境处理器135将所请求的一个或多个事件日志条目(或该事件日志条目的拷贝)发送至可信设备130的读文件134。然后,可信设备130的读文件134接收所请求的事件日志条目,因而使得该事件日志条目能够由连接至可信设备130的主机设备110获得。在特定的示例性实施例中,例如本文中参考图6所述的,在将该事件日志条目发送至可信设备130的读文件134之前,可信设备130可选地从用户101接收安全授权。例如,用户101可以通过安全接口将用户输入提供给可信设备130,因而授权对写文件条目的处理和/或将该事件日志条目发送至可信设备130的读文件134。

在方框1135中,在可信设备130通过安全接口137或通过可信设备130的读文件134将所请求的事件日志条目发送至授权用户101之后,用户101接收到所请求的事件日志条目。例如,用户101可以通过安全接口137、例如通过从可信计算设备130发送的事件日志文件或系统日志而直接接收该事件日志条目。另外或可替代地,如果可信计算设备130将该事件日志条目发送至可信设备130的读文件134,则例如图4的方框430中所述,主机设备110接收该事件日志条目。然后,主机设备110例如通过与主机设备110相关联的用户接口将该事件日志条目提供给用户101。然后,用户101接收到该事件日志条目。

在特定的示例性实施例中,用户101能够可选地验证用户101通过主机接口132接收的一个或多个日志事件的真实性。例如,即使所述隔离处理器135可以将来自存储在安全存储设备136内的仅增日志事件条目的日志事件条目提供给读文件134,受损的主机设备110也可能试图误传从读文件134接收的日志事件条目。为了检测或识别这种误传,授权用户101能够将通过主机接口132的读文件134接收的一个或多个事件日志条目与通过安全接口137接收的一个或多个事件日志条目相比较。由于安全接口137不能被主机设备110访问,所以,基于上述比较而识别出的任何矛盾都提供了主机设备110受损的指示。例如,如果一个或多个日志条目事件存在于通过该安全接口接收的日志文件上但却从通过主机接口132接收的日志文件中消失了,则授权用户101可以基于该消失的日志事件条目确定主机设备110受损了。与从安全接口137接收的日志文件相比,对通过主机接口132接收的日志文件的任何其它删除、添加或改变都类似地提供了主机设备110受损的指示。

在特定的示例性实施例中,用户101可以从主机设备110移除可信设备130,并将可信设备130插入到用户101所信任的第二主机设备110中。例如,如果用户101怀疑第一主机设备110可能受损,则用户101可以将可信计算设备130从已经将可信计算设备130用作本文所述的系统日志的第一主机设备110移除。因此,可信设备130在可信设备130的安全存储设备136内包含用于第一主机设备110的一个或多个事件日志条目。然后,如本文所述,用户101能够通过——经由第二主机设备110和主机接口132——请求访问事件日志条目来访问第一主机设备110的事件日志条目。例如,如本文所述,可信设备130向可信设备130的读文件134产生对请求做出响应的安全输出,并且第二主机设备从所述读文件134接收该读文件条目。

通过保护可信计算设备的安全存储设备136内的事件日志条目,可信设备130保护该事件日志条目不被未授权用户101(例如黑客)攻击。例如,如果事件日志——它能够将访问尝试记录为仅增事件日志条目——将访问尝试在安全存储设备136中安全地存储为事件日志条目,那么,尝试恶意访问主机设备110的未授权用户101不能掩盖他或她的痕迹。换句话说,未授权用户不能访问该事件日志,例如不能修改或删除与安全存储设备136中的仅增事件日志条目相关联的事件日志数据。而是,仅授权用户101能够访问该事件日志条目,但不能修改或改变所述仅增事件日志条目。并且,通过访问和读取安全事件日志,用户101能够确定是否已经发生了访问主机设备110的未授权尝试。例如,授权用户101能够通过读取所请求的事件日志条目来确定未授权用户101的访问尝试的日期和时间。授权用户101例如也能够将通过主机接口132接收的日志文件与通过安全接口137接收的日志文件相比较来确定主机设备110是否受损。

基于本文提供的公开内容,本领域技术人员应当明白,可以为了重复和相互关联的目的来使用和配置本文所述的方法、系统和设备。例如,用户101可以配置可信计算设备130以记录可信计算设备的写文件133所接收的每个写文件条目(例如涉及对受限信息的请求的所有写文件条目)的安全事件日志条目。在这种示例实施例中,授权用户101——通过浏览和/或比较所接收的事件日志条目——能够确定主机设备110正在寻求的受限信息的类型。在其它示例性实施例中,例如在两个主机计算设备10双向通信期间,用户101可以配置可信计算设备130a和130b中的一个或二者,以保存用于所接收的每个通信的安全事件日志条目。然后,如本文所述,授权用户稍后能够为了进行通信而访问该事件日志条目。

其它示例性实施例

图12示出了根据特定的示例性实施例的计算机器2000和模块2050。计算机器2000可以对应于本文提出的各种计算机、服务器、移动设备、植入系统或计算系统任何一种。模块2050可以包括被配置成便于计算机器2000执行本文提出的各种方法和处理功能的一个或多个硬件或软件元件。计算机器2000可以包括各种内部或附接部件,例如处理器2010、系统总线2020、系统存储器2030、存储介质2040、输入/输出接口2060、以及用于与网络2080通信的网络接口2070。

计算机器2000可以被实施为传统的计算机系统、内置控制器、膝上型计算机、服务器、移动设备、智能电话、机顶盒、信息亭、车载信息系统、与电视相关联的一个或多个处理器、定制机器、任何其它硬件平台、或它们的任何组合或复合体(multiplicity)。计算机器200可以是被配置成使用通过数据网络或总线系统互联的多个计算机器而发挥作用的分布式系统。

处理器2010可以被配置成执行代码或指令以执行本文所述的操作和功能,管理请求流和地址映射,并执行计算和产生命令。处理器2010可以配置成监视和控制计算机器2000中的部件的运行。处理器2010可以是通用处理器、处理器核心、多处理器、可重配置处理器、微控制器、数字信号处理器(“DSP”)、专用集成电路(“ASIC”)、图形处理单元(“GPU”)、现场可编程门阵列(“FPGA”)、可编程逻辑器件(“PLD”)、控制器、状态机、门控逻辑、离散硬件部件、任何其它处理单元,或它们的任何组合或复合体。处理器2010可以是单处理单元、多处理单元、单处理核心、多处理核心、专用处理核心、协处理器或其任何组合。根据特定实施例,处理器2010以及计算机器2000的其它部件可以是在一个或多个其它计算机器中执行的虚拟计算机器。

系统存储器2030可以包括非易失性存储器,例如只读存储器(“ROM”)、可编程只读存储器(“PROM”)、可擦可编程只读存储器(“EPROM”)、闪存、或能够在加电或不加电的情况下存储程序指令或数据的任何其它设备。系统存储器2030也可以包括易失性存储器,例如随机存取存储器(“ROM”)、静态随机存取存储器(“SRAM”)、动态随机存取存储器(“DRAM”)和同步动态随机存取存储器(“SDRAM”)。也可以使用其它类型的RAM来实现系统存储器2030。可以使用单个存储器模块或多个存储器模块来实现系统存储器2030。虽然系统存储器2030被示出为计算机器2000的一部分,但本领域技术人员应当明白,在不偏离本发明技术的范围的情况下,系统存储器2030可以与计算机器2000分离。也应明白,系统存储器2030可以包括诸如存储介质2040的非易失性存储设备或与该非易失性存储设备相结合地操作。

存储介质2040可以包括硬盘、软盘、压缩式光盘只读存储器(“CD-ROM”)、数字通用光盘(“DVD”)、蓝光盘、磁带、闪存、其它非易失性存储器设备、固态驱动器(“SSD”)、任何磁存储设备、任何光存储设备、任何电存储设备、任何半导体存储设备、任何基于物理的存储设备、任何其它数据存储设备或它们的任何组合或复合体。存储介质2040可以存储一个或多个操作系统、应用程序和程序模块(例如模块2050)、数据、或任何其它信息。存储介质2040可以是计算机器2000的一部分或连接至计算机器2000。存储介质2040也可以是与计算机器2000通信的一个或多个其它计算机器的一部分,例如服务器、数据库服务器、云存储器、网络附加存储器等。

模块2050可以包括被配置成便于计算机器2000执行本文提出的各种方法和处理功能的一个或多个硬件或软件元件。模块2050可以包括被存储为与系统存储器2030、存储介质2040等相关联的软件或固件的一个或多个指令序列。因此,存储介质2040可以代表机器或计算机可读介质的示例,指令或代码可以存储在该机器或计算机可读介质上而由处理器2010执行。机器或计算机可读介质通常可以涉及用于向处理器2010提供指令的任何介质或多个介质。与模块2050相关联的这些机器或计算机可读介质可以包括计算机软件产品。应明白,包括模块2050的计算机软件产品也可以与一个或多个过程或方法相关联,以通过网络2080、任何信号承载介质或任何其它通信或传输技术将模块2050传输至计算机器2000。模块2050也可以包括硬件电路或用于配置硬件电路的信息(例如微代码),或用于FPGA或其它PLD的配置信息。

输入/输出(“I/O”)接口2060可以配置成耦合至一个或多个外部设备,以从一个或多个外部设备接收数据,并将数据发送至一个或多个外部设备。这些外部设备以及各种内部设备也可以称为外围设备。I/O接口2060可以包括电连接和物理连接,用于可操作地将各种外围设备耦合至计算机器2000或处理器2010。I/O接口2060可以被配置成在外围设备、计算机器2000或处理器2010之间通信数据、地址和控制信号。I/O接口2060可以被配置成实施任何标准接口,例如小型计算机系统接口(“SCSI”)、串行连接SCSI(“SAS”)、光纤信道、外围组件互连(“PCI”)、PCI express(PCIe)、串行总线、并行总线、先进技术连接(“ATA”)、串行ATA(“SATA”)、通用串行总线(“USB”)、Thunderbolt、FireWire、各种视频总线等。I/O接口2060可以被配置成仅实施一种接口或总线技术。替代地,I/O接口2060可以被配置成实施多种接口或总线技术。I/O接口2060可以被配置未系统总线2020的一部分或全部,或与系统总线2020相结合地操作。I/O接口2060可以包括一个或多个缓存器,以缓冲在一个或多个外部设备、内部设备、计算机器2000或处理器2010之间的传输。

I/O接口2060可以将计算机器2000耦合至各种输入设备,包括鼠标、触摸屏、扫描仪、电子数字化器、传感器、接收器、触摸板、轨迹球、相机、麦克风、键盘、任何其它定点设备或其任何组合。I/O接口2060可以将计算机器2000耦合至各种输出设备,包括视频显示器、扬声器、打印机、投影仪、触觉反馈设备、自动控制器、机器人部件、致动器、马达、风扇、螺线管、阀门、泵、发送器、信号发射器、灯,等等。

计算机器2000可以在网络环境下利用通过网络接口2070与跨网络2080的一个或多个其它系统或计算机器的逻辑连接来操作。网络2080可以包括广域网(WAN)、局域网(LAN)、内联网、因特网、无线接入网、有线网络、移动网络、电话网络、光学网络或其组合。网络2080可以是包交换、电路交换的任何网络拓扑,并可以使用任何通信协议。网络208内的通信链路可以包括各种数字或模拟通信介质,例如光纤电缆、自由空间光通信、波导、电导体、无线链路、天线、无线电频率通信等等。

处理器2010可以通过系统总线2020连接至计算机器2000的其它元件或本文所讨论的各种外设。应明白,系统总线2020可以在处理器2010内、在处理器2010外、或内外均有。根据一些实施例,任何处理器2010、计算机器2000的其它元件或本文讨论的各种外设均可以被集成为单个设备,例如片上系统(“SOC”)、系统封装(“SOP”)或ASIC设备。

在本文所讨论的系统收集关于用户的个人信息或可以使用个人信息的情况下,用户可以被提供有控制哪些程序或特征是否收集用户信息(例如,关于用户的社交网络、社交动作或活动、职业、用户的偏好或用户的当前位置的信息)或控制是否和/或如何从内容服务器接收可能更与用户相关的内容的机会或选择。另外,在被存储或使用之前,可以通过一种或多种方式处理特定数据,使得个人可识别信息被移除。例如,可以处理用户的身份,使得不能确定用户的个人可识别信息,或可以一般化从中获得位置信息(例如城市、邮编或州级)的用户的地理位置,使得不能确定用户的具体位置。因而,用户可以控制如何收集关于该用户的信息以及内容服务器如何使用该信息。

实施例可以包括实现本文所述和所示出的功能的计算机程序,其中,该计算机程序被实施为计算机系统,该计算机系统包括存储在机器可读介质中的指令和执行这些指令的处理器。然而,应当明白,能够存在通过计算机编程实施这些实施例的许多不同方式,并且这些实施例不应视为局限于任何一组计算机程序指令。此外,熟练的程序员将能够写出这种计算机程序,以基于附加流程图和应用文本中的相关联说明来实施所公开的实施例的实施例。因此,不应将特殊的程序代码指令集合的公开视为是对如何做出和使用实施例的充分理解所必需的。此外,本领域技术人员应明白,本文所述的实施例的一个或多个方面可以由硬件、软件或其组合执行,可以通过一个或多个计算系统实现。此外,任何地方所提及的由计算机执行的动作都不应视为由单个计算机执行,因为超过一个计算机可以执行该动作。

本文所述的示例实施例能够与执行上述方法和处理功能的计算机硬件和软件一起使用。本文所述的系统、方法和程序能够被实施为可编程计算机、计算机可执行软件或数字电路。该软件能够存储在计算机可读介质上。例如,计算机可读介质可包括软盘、RAM、ROM、硬盘、可移除介质、闪存、记忆棒、光学介质、磁光学介质、CD-ROM等。数字电路能够包括集成电路、门阵列、构建模块逻辑、现场可编程门阵列(FPGA)等。

上文提出的实施例中所述的示例系统、方法和动作仅是例示性的,并且,在可替选实施例中,在不偏离各种实施例的范围和精神的情况下,能够以不同的顺序、彼此并行地、完全省略地和/或在不同的示例性实施例之间组合地执行特定动作,和/或能够执行特定的额外动作。因而,这些可替选实施例被包括在根据最广泛的解释涵盖了这些替选实施例的所附权利要求的范围内。

虽然上文已详细地描述了特定实施例,但本说明仅是为了例示。因此,应当明白,除非另外明确指出,否则,上述许多方面都无意作为要求或必要元素。除了上述方面之外,在不偏离所附权利要求中限定的实施例的精神和范围的情况下,获得了本公开的益处的本领域技术人员能够做出对示例性实施例的公开方面的变型以及对应于所公开方面的等效部件或动作,权利要求的范围根据最广泛解释,以涵盖这些变型和等效结构。

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