受信输入/输出设备的隔离的制作方法

文档序号:13426429阅读:212来源:国知局
受信输入/输出设备的隔离的制作方法

背景

安全对于被连接到诸如互联网之类的公共网络的任何设备而言是一个关注点。病毒、蠕虫、特洛伊木马、身份盗用、软件盗版、恶意攻击以及使用威胁数据破坏的勒索是广泛的。操作系统可提供许多安全特征以防范这类攻击。然而,操作系统的安全特征在操作系统本身已崩溃、感染或者成为恶意攻击的受害者的情况下是失效的。

概述

提供本概述以便以简化的形式介绍以下在详细描述中进一步描述的一些概念。本概述并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。

本文中所讨论的各实施例包括用于使用安全加密处理器(securecrypto-processor)io线来驱动具有高完整性要求的设备的系统和方法。

本文中所讨论的各实施例包括用于使用安全加密处理器io线来对传感器读数进行证明的系统和方法。

本文中所讨论的各实施例包括用于使用增强的安全加密处理器授权策略来对与io设备的交互强制实施策略的系统和方法。

本文中所讨论的各实施例包括用于在安全加密处理器中提供总线主控制器的系统和方法。

本文中所讨论的各实施例包括用于将隔离的安全加密处理器总线上的各个个体设备映射到安全加密处理器中的索引使得读取和写入操作可以与增强的授权策略相关联的系统和方法。

本文中所讨论的各实施例包括允许安全加密处理器提供对从输入/输出设备读取的复杂数据进行证明的手段,该输入/输出设备可用设备身份来签名以显示该数据的强大的始发证据。

附图

为了进一步阐明本发明的各实施例的以上和其他优点和特征,将参考附图来呈现本发明的各实施例的更具体的描述。可以理解,这些附图只描绘本发明的典型实施例,因此将不被认为是对其范围的限制。本发明将通过使用附图用附加特征和细节来描述和解释,附图中:

图1例示了用于使用安全加密处理器来对网络可访问的设备提供保护的系统的一个实施例。

图2是例示不同的io设备可如何基于其相关的安全要求来被连接到一设备的框图。

图3是使用用于允许从简单的一位数据单元到复杂的多字节块数据传输的任何事的受信数据交换的安全加密处理器的设备的框图。

图4例示了用于隔离安全输入/输出设备的系统的一个实施例。

图5是例示使用安全元件来控制对隔离的组件的访问的过程或方法的一个实施例的流程图。

详细描述

在物联网(iot)环境中,任何设备可被分配地址并通过互联网被耦合到其他设备,由此允许数据和信息在多种多样的实体中间的共享。这允许独立的、不相关的设备来交换数据、提供状态信息、接收控制指令,等等。在iot中,“物”可包括看似无限种类的对象,诸如家用电器、工业装备、交通信号、自动贩卖机、照明系统、安全系统,等等。到这些广泛多样的对象的连接的扩展引起了对设备可能被未经授权的用户不正确地访问或者遭受恶意攻击的考量。

图1例示了用于使用安全加密处理器对网络可访问的设备提供保护的系统的一个实施例。安全加密处理器可被具体化为作为能够被耦合到诸如主板上的微处理器之类的计算设备的分立组件的硬件。替代地,安全加密处理器可被实现成使用被上传、经闪存储存或以其他方式被储存或者被写入固件或计算设备的被保护的非易失性存储器中的软件的固件加密处理器。

设备101包括控制设备的操作的微控制器102,这些操作包括对与用户、外围及其他设备交换的信息和命令进行管理。例如,在微控制器102的控制下,设备101可从一个或多个传感器103收集数据、向一个或多个致动器104提供命令和/或与用户设备105交换信息。传感器103可提供数据,诸如开/关值、锁定/解锁指示、温度、位置或者与设备101、相关的外围和/或设备的环境相关联的任何其他状态或测量。致动器104可表示可由设备101控制的任何对象、装备或功能,诸如电机、锁、开关、灯、指示器或者在多种状态或条件下工作的其他装备或机器。

微控制器102运行提供用于应用软件107的平台的操作系统软件106。操作系统106最初在启动时被加载并且管理运行在微控制器102上的所有其他程序。用户可通过用户接口(诸如命令语言或图形用户界面(gui))与操作系统106进行交互。应用软件107通过经由定义的应用程序界面(api)作出对服务的请求来利用操作系统106。例如,应用软件107可被配置成控制输入/输出(io)设备(诸如传感器103和/或致动器104)或与其进行交互。io设备可以是设备101的组成部分,或者在其他实施例中,io设备可以是外部组件。

用户设备105可通过设备接口108与设备101进行交互。用户设备105可直接或间接地与设备101进行通信。在一个实施例中,用户设备105可位于设备101的远程并且可经由诸如互联网、内联网、局域网(lan)、广域网(wan)等的任何公共网络或专用网络109来与设备101进行通信。在用户设备105与设备101之间的通信信道110可跨有线和/或无线连接的任何组合来被承载。

安全加密处理器111支持微控制器102与传感器103、致动器104和/或其他受信设备112之间的通信。微控制器102和安全加密处理器111经由接口113(诸如设备101中的主机总线)进行通信。安全加密处理器111经由安全io114与传感器103、致动器104和可信设备112进行通信。安全加密处理器111暴露了提供用于传感器103、致动器104和其他受信设备112的连接的安全io114引脚。安全io引脚被配置成基于由安全加密处理器111强制实施的策略来提供数据连接。非易失性(nv)存储器115储存用于在使用安全io114与外围设备进行通信时使用的配置数据。

安全io引脚被用来将敏感io设备(例如,传感器103、致动器104和受信设备112)与微控制器102隔开。该隔离使敏感的或受保护的io设备远离运行在微控制器102上的恶意软件和/或来自用户设备105的未经授权的命令,由此防止可能由设备101导致的危害。安全加密处理器111可强制实施策略,诸如要求用户密码或者公共密钥密码来访问io设备。安全加密处理器111还可监视应用软件107和/或操作系统106的状态并且仅当经授权的版本在使用时允许与io设备的交互。进一步的策略也是可能的,诸如要求设备101定期地得到维护(例如,检查所安装的补丁)。设备101将在安全加密处理器111不再将该设备视为安全时丢失对敏感io设备的访问。

来自安全io114的引脚可被映射到安全加密处理器111中的nv存储器空间115中。与安全io引脚相关联的nv索引可被配置成依从于设备101的制造商认为必要的任何策略。这些策略可被绑定到例如系统的整体测量、临时限制、机密交换、资产占有,等等。微控制器102代码库(例如,操作系统106和应用软件107)为攻击者提供了相当大的目标,但是安全加密处理器的攻击表面是显著更小的且被更严格地定义。这意味着如果恶意软件设法闯入微控制器102,则该恶意软件在任何恶意的或未经授权的命令可访问受保护的io设备(例如,传感器103、致动器104和受信设备112)之前仍将必须满足安全加密处理器111。用于访问受保护的io设备的策略可被定义并且被静态地配置到安全加密处理器111内。作为结果,被侵扰的微控制器102不具有能力来回避在安全加密处理器111中所定义的策略,并因此攻击者与io设备交互的能力受限。

在一个实施例中,在发送传感器数据之前,设备101可利用其强大的身份并对来自安全加密处理器的所有传感器数据进行签名。如果第三方向设备101发送提供传感器数据的请求,则微控制器102将不能够成功地发送经篡改的数据,因为任何编造的传感器数据将缺乏必需的签名。相反,微控制器102可根本不对无效请求作出响应,这将在用户端引发警告标志。如果微控制器102在恶意软件的控制下提供不容纳传感器证明确认的数据,则这类响应的接收将同样在用户设备105处引发警告标志。这些事件发生可促使用户设备105或第三方接收者针对设备101来排定维护周期以对该设备恢复出厂设置并移除恶意软件侵扰。

在一个示例使用情形中,设备101可被用于其中传感器103检测门是否被关闭并且致动器104控制门锁的电子门控制场景。运行软件应用107的微控制器102读取传感器103的值并确定门的状态。安全加密处理器111被用来提供对门的无篡改访问。例如,安全加密处理器111可在这些指示不匹配来自传感器103的读数的情况下防止假的开/关指示被发送到用户设备105。附加地或替代地,安全加密处理器111可防止未经授权的用户控制致动器104来锁定/解锁门。

在一个实施例中,安全加密处理器111和用户设备105可共享密钥或密码。在用户设备105和设备101之间所交换的任何命令或请求将要求例如使用带有共享的密钥的密钥散列消息认证码(hmac)来计算消息认证码(mac)。只有当接收到的来自设备105的请求包括正确的mac时,安全加密处理器111才会读取传感器数据或者向致动器发送命令。类似地,安全加密处理器111使用mac对其向用户设备105的答复(诸如任何传感器数据或致动器命令确认)进行编码。由于未经授权的用户以及微控制器102(在操作系统106和应用软件107中包括任何恶意软件)将不能够生成mac,所以它们既不能生成有效的查找请求或响应,也不能不正确地修改有效的请求或响应。

在另一实施例中,安全加密处理器111可被配置成支持公共密钥或非对称密码术。安全加密处理器111可储存可被用来验证与具有相关联的公共密钥的用户的通信的专用密钥。门控制系统的用户可被分发公共密钥。多个用户可各自具有不同的密钥。安全加密处理器111能够使用专用密钥来对与已使用过公共密钥的经授权的用户的通信进行加密/解密。每个这样的公共密钥可被分配不同的策略。例如,每个公共密钥可被允许仅访问某些特定的传感器数据以仅仅控制某些致动器,或者被允许仅在经定义的时间段期间被使用。不符合针对该公共密钥的策略的任何经请求的数据或命令将被忽略。每个公共密钥可独立于其他公共密钥来被发出、激活及取消。

在其他实施例中,安全加密处理器111可确定其是否完全信任微控制器102、操作系统106和/或应用软件107。安全加密处理器111包括以防止篡改的方式将各种测量保持在隔离的位置处的配置寄存器116。这些测量由使用安全散列算法(sha)的密码散列(cryptographichash)组成。仅在这些测量是相同的情况下,任何两次测量的散列结果应当产生相同的散列值。这些测量可以与编码属性、数据结构、配置信息等相关联。安全加密处理器111将不读取针对传感器数据的请求及对其作出响应,并且将不向受信io设备发送命令,除非当前测量与配置寄存器116中所储存的测量相同。这防止了恶意软件攻击操作系统106或应用软件107以及发出不正确的请求或命令,因为安全加密处理器111将在相关联的配置寄存器116的值不同时检测操作系统106或应用软件107中的变化。

应当理解,设备101的所有组件不需要通过安全加密处理器111来被控制。相反,仅安全相关的io组件需要被直接连接到安全加密处理器111的安全io引脚。例如,在门控制器实施例中,附加的玄关设备(诸如摄像机或门铃)不要求由安全加密处理器111所提供的受信io控制的类型,并因此可通过设备接口106或任何其他io接口来被连接到微控制器102。

图2是例示不同的io设备可如何基于其相关的安全要求来被连接到设备201的框图。设备201在一个实施例中可以是iot设备,诸如连接到互联网的门控制器、电器、机器、设备、供暖/空调系统、车辆,等等。设备201可由远程用户设备202经由设备接口203和网络204来访问。用户设备202可例如为台式计算机、膝上型或平板计算机、工作站、智能电话、个人数字助理或其他网络可访问的设备。

微控制器205处理从用户设备202接收到的请求和命令并且向经授权的用户提供所请求的信息。设备201可被耦合到落在两个宽类别(即,不要求安全的io设备206以及要求安全的io设备207(即,受信涉io设备))内的io设备。不要求安全的io设备206可包括例如电器的操作状态、开关的位置、指示灯的开/关状态,等等。微控制器205经由io接口208与不要求安全的io设备206通信。针对与不要求安全的io设备207的通信的安全由运行在微控制器205上的操作系统和应用软件来控制。如果微控制器205遭受恶意软件攻击,则对不要求安全的io设备206的未经授权的访问是可能的。

要求安全的io设备207可包括任何传感器、致动器或者与例如健康或安全功能及操作、个人或机密数据等相关联的其他设备。微控制器205与使用安全加密处理器209的安全相关的io设备207通信。如以上所讨论的,如果安全加密处理器209确定请求满足相关的安全策略,则数据可经由安全io210与安全相关的io设备207进行交换。由于必需的开销(例如,密码/安全密钥加密操作)以及在安全加密处理器209上可用的有限的资源(例如,固定数量的安全io引脚),所以仅安全相关的io设备207使用安全加密处理器209进行通信,以保护这些设备免受恶意软件及其他攻击或者未经授权的访问。

以这种方式使用安全加密处理器209建立了涵盖与直接同微控制器205通信隔离的设备的窄定义的信任边界211。因此,微控制器205不被要求来维护针对这些通信的安全。如果未经授权的用户试图访问来自设备201的信息,则安全加密处理器209将阻止与未经授权的用户设备202的通信,这阻止了对安全相关的io设备207的不正确的访问;然而,微控制器205可向未经授权的用户设备202提供与非安全io设备206相关联的信息。

图3是使用用于允许从简单的一位数据单元到复杂的多字节块数据传送的任何事的受信数据交换的安全加密处理器302的设备301的框图。安全加密处理器302包括用于安全总线304(诸如spi(串行外围接口)、i2c(芯片间)或异步串行接口总线)的总线主控制器303。总线主控制器303能够对总线304上的多个独立的io设备305-307进行寻址。因此,安全加密处理器302提供隔离的总线主控制器303、总线304以及不与设备微控制器308直接交互的设备305-307。类似于安全io引脚的使用,安全加密处理器302可使用总线主控制器303对与总线304上的各个个体设备305-307的事务强制实施认证及其他策略。在该实施例中,安全加密处理器302充当提供用于微控制器308和设备301的身份、认证、授权及证明功能的网闸(gatekeeper)。

在一个实施例中,总线主控制器303可被整合进安全加密处理器硬件或固件中并由安全加密处理器302来自主地初始化和操作。总线304上的地址范围可被映射到安全加密处理器302的nv存储范围。安全加密处理器制造商可将总线主控制器与nv索引内的子范围相关联。在使用七位地址的i2c的情形中,数据总线上所有可能的i2c设备在存储索引00000-0007f上将是可寻址的。设备制造商将在非易失性存储器308中供应nv索引,用于总线上的匹配的设备305-307。例如,如果具有地址0x58的i2c设备m306被附接到受信总线304,则设备制造商将供应nv索引0x01f00058并为设备m306设置访问策略。一旦由制造商设定,该nv索引就不能够被设备所有者移除或者重新配置。

安全加密处理器302还可包括数据缓冲器或寄存器309。微控制器308可向缓冲器309写入数据,并向安全加密处理器302提供相关联的nv索引。nv索引指定对应于特定数据总线n304和设备m306的值n+m。总线主控制器303接着向设备m306发送缓冲器309中的数据。以类似的方式,微控制器308可根据读取指令来向安全加密处理器302提供nv索引。总线主控制器303接着从数据总线n304上的设备m306读取对应于nv索引的数据。安全加密处理器302在允许从设备m306读取数据或将数据写入设备m306之前进一步验证与nv索引相关联的任何策略均已被满足。使用nv索引,总线主策略可如上所述针对安全io引脚来被定义。这可包括例如使用共享密钥、密码、公共-私有密钥交换等来验证被储存到缓冲器309的数据的完整性。

安全加密处理器302和总线主控制器303提供微控制器308和设备305-307之间的物理隔离。数据总线n304提供只能由安全加密处理器302访问的专用总线系统。因此,安全加密处理器信任边界310涵盖与同微控制器308和/或用户设备311的直接通信隔离的设备。因此,安全加密处理器信任边界310内的设备进一步被保护免受微控制器308上的任何恶意软件或其他攻击。

在示例实施例中,nv索引可对应于具有屏幕和键盘的终端式设备306的地址。微控制器308(或者在能够通过微控制器308上运行的操作系统和/或应用软件与安全加密处理器302通信的用户设备311处的任何远程第三方)可满足针对该nv索引的授权策略,并且可发出复杂数据到设备的写入。安全加密处理器302将验证传入数据是经授权的,并且如果验证是成功的,则将发送出总线304上的复杂数据到目的地设备以供设备306接收。如果写入命令没有被正确地授权,则安全加密处理器302将不会发送总线304上的数据,并且微控制器308没有办法绕过安全加密处理器302。微控制器308不能对写入本身进行授权,因为它不能直接访问总线304。

在其他实施例中,传入数据可被加密,并且安全加密处理器302将在将数据发出到总线304上的目的地设备之前对数据进行解密。在该场景中,微控制器308不知道实际发送了什么数据,因为它不能访问总线304。一旦设备接收到数据,它就将相应地对数据进行操作,诸如在终端式设备的情况下显示数据。以这种方式,用户知道在该屏幕上显示的任何数据是从经授权的源提供的,并因此可独立于设备本身的安全状态而被信任。在一个实施例中,如果从特定用户设备311发送的数据未被成功地写入显示器,则微控制器308可停止来自该用户设备311的未来的通信到达安全加密处理器302。这类故障将引起可能是未经授权的内容的警告标志,并且可能触发源用户设备311被列入黑名单和/或被排定用于服务。

一旦数据被显示,用户就可读取消息并提供反馈,诸如通过使用设备306上的按钮。一旦用户向设备指示响应完成(例如,通过按“回车”或“发送”),安全加密处理器302就可从终端设备306读回响应。在一个实施例中,数据的期望接收者可出于隐私的原因来请求安全加密处理器302加密任何响应。会话授权可向远程方指示数据实际上是从安全总线304上的正确地址读取的。

应当理解,设备301仅是合适的计算环境的一个示例,并且不旨在对可用各种其他通用或专用计算系统环境或配置来操作的本发明的使用或功能范围提出任何限制。可适于与本文所公开的系统和方法一起使用的公知的计算系统、环境和/或配置的示例包括但不限于:个人计算机、服务器计算机、手持式或膝上型设备、平板设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络pc、微型计算机、大型计算机、包括任何以上系统或设备的分布式计算环境等等。

各实施例可在诸如程序模块等由计算机执行的计算机可执行指令的通用上下文中描述。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。系统和方法可以在其中任务由通过通信网络链接的远程处理设备来执行的分布式计算环境中实现。在分布式计算环境中,程序模块可以位于包括存储器存储设备在内的本地和/或远程计算机存储介质中。

设备301可包括附加的组件,包括但不限于各种硬件组件,诸如数据存储器312、系统存储器313以及将各种系统组件耦合到微处理器308的系统总线314。系统总线314可以是若干类型的总线结构中的任一种,包括存储器总线或存储器控制器、外围总线和使用各种总线架构中的任一种的局部总线。作为示例而非限制,这样的架构包括工业标准架构(isa)总线、微通道架构(mca)总线、增强型isa(eisa)总线、视频电子技术标准协会(vesa)局部总线和外围部件互连(pci)总线以及夹层(mezzanine)总线。

设备301可包括各种计算机可读介质315,其可以是通过微控制器308可访问的任何可用介质,并且包括易失性和非易失性介质两者以及可移动和不可移动介质,但不包括传播信号。作为示例而非限制,计算机可读介质315可包括计算机存储设备和介质以及通信介质。计算机存储介质包括以存储诸如计算机可读的指令、数据结构、程序模块或其他数据之类的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括,但不限于,ram、rom、eeprom、闪存或其他存储器技术、cd-rom、数字多功能盘(dvd)或其他光盘存储、磁带盒、磁带、磁盘存储或其他磁性存储设备、或可被用来储存所需信息且可由微控制器308访问的任何其他介质。通信介质通常以诸如载波或其他传输机制之类的已调制数据信号来体现计算机可读指令、数据结构、程序模块或其他数据,并且包括任何信息传送介质。术语“经调制数据信号”是指使得以在信号中编码信息的方式来设定或改变其一个或多个特征的信号。作为示例而非限制,通信介质包括诸如有线网络或直接线连接之类的有线介质,以及诸如声学、rf、红外及其他无线介质之类的无线介质。上面各项中的任何项的组合也包括在计算机可读介质的范围内。计算机可读介质可被实现为计算机程序产品,诸如被储存在计算机存储介质上的软件。

数据存储312和/或系统存储器313可包括诸如只读存储器(rom)和随机存取存储器(ram)之类的易失性和/或非易失性存储器形式的计算机存储介质。包含有助于诸如启动期间在设备301内的各元件之间传送信息的基本例程的基本输入/输出系统(bios)通常被储存在rom中。ram通常包含微控制器308可立即访问和/或当前正由微控制器308操作的数据和/或程序模块。作为示例而非限制性,数据存储312保存操作系统、应用程序、其他程序模块、和程序数据。

数据存储312还可以包括其他可移动/不可移动、易失性/非易失性计算机存储介质。仅作为示例,数据存储312可以是对不可移动、非易失性磁介质进行读写的硬盘驱动器,对可移动、非易失性磁盘进行读写的磁盘驱动器,以及对诸如cdrom或其他光学介质等可移动、非易失性光盘进行读写的光盘驱动器。可在示例性操作环境中使用的其他可移动/不可移动、易失性/非易失性计算机存储介质包括但不限于,磁带盒、闪存卡、数字多功能盘、数字录像带、固态ram、固态rom等。以上所描述且在图3中被例示出的驱动器及其相关联的计算机存储介质为设备301提供了计算机可读指令、数据结构、程序模块和其他数据的存储。

用户可通过用户接口316来键入命令和信息,用户接口316可使用诸如小键盘、话筒、键盘和/或定点设备(通常被称为鼠标、轨迹球或触摸板)之类的输入设备来提供对用户设备311的远程访问或本地访问。其他输入设备可以包括操纵杆、游戏垫、圆盘式卫星天线、扫描仪等等。另外,语音输入、使用手或手指的手势输入、或其他自然用户界面(nui)也可与适当的输入设备(诸如话筒、相机、平板、触摸垫、手套、或其他传感器)一起使用。这些和其他输入设备通常通过被耦合到系统总线314的用户输入接口316来被连接到微控制器308。替代地,输入设备可由诸如并行端口、游戏端口或通用串行总线(usb)之类的其他io接口317来连接。监视器或其他类型的显示设备(未示出)可经由诸如视频接口之类的接口来被连接到系统总线314。监视器也可以与触摸屏面板等集成在一起。需要注意,监视器和/或触摸屏面板可以在物理上耦合至其中包括设备301的外壳,诸如在平板型个人计算机中。此外,诸如设备301之类的计算机还可包括其他外围输出设备,诸如扬声器和打印机,它们可以通过输出外围接口等连接。

设备301可使用与一个或多个远程设备(诸如远程计算机或用户设备311)进行通信的逻辑连接318来在网络化的或者云计算环境中操作。远程计算机可以是个人计算机、服务器、路由器、网络pc、对等设备或其他公共网络节点。图3中所描绘的逻辑连接可包括一个或多个局域网(lan)以及一个或多个广域网(wan),但是,也可包括其他网络。此类联网环境在办公室、企业范围的计算机网络、内联网和互联网中是常见的。在其他实施例中,逻辑连接318可包括用于在网络上建立通信的调制解调器或其他装置。调制解调器(其可以是内置或外置的)可经由逻辑连接318或其他适当的机制来被连接到系统总线314。诸如包括接口和天线的无线联网组件可经由逻辑连接318或诸如接入点或对等计算机之类的合适的设备来被耦合到网络。在网络化的环境中,相对于设备301所描绘的程序模块或其部分可被储存在远程存储器存储设备中。可以理解,所示的网络连接是示例性的,也可以使用在计算机之间建立通信链路的其他手段。

应当理解,安全加密处理器可以以不同的形式(诸如硬件或固件)来实现。在一个实施例中,受信平台模块(tpm)可被用作本文中所述的安全加密处理器。tpm可被用来确保在计算机或基于处理器的设备上运行的软件的可信赖性。tpm是储存密码密钥、密码和数字证书的硬件微控制器。一旦被初始化,tpm可被用来生成数字签名和加密密钥,从而允许对来自消息声称来自的设备的消息的确认。大多数tpm符合受信计算组织(tcg)标准,目前可在https://www.trustedcomputinggroup.org/home上获得。tpm硬件或固件可被合并到计算平台中以建立针对由平台执行的代码的信任。在使用tpm作为安全加密处理器的这样的实施例中,总线主控制器可被合并到tpm中,或者tpm上的通用输入/输出(gpio)可被用作如本文所述的安全io。

在其他实施例中,诸如在基于的平台中,技术可被用来提供本文中所述的安全加密处理器的操作。基于arm的平台除了正常模式以外还提供了被称为“安全模式”的特殊cpu模式,由此建立了“安全世界”和“正常世界”的观念。在“安全世界”中运行的软件可提供安全加密处理器功能。

图4例示了用于隔离安全输入/输出设备的系统400的一个实施例。系统400包括被耦合到隔离的组件402的设备401以及远程用户设备403。设备401包括运行操作系统405以及一个或多个软件客户端406的处理器404。处理器404被耦合到安全元件407。安全输入/输出接口408提供安全元件407和隔离的组件402之间的连接409。安全元件407被配置成仅允许处理器404和隔离的组件402之间的经授权的通信。

在一个实施例中,安全元件407可以是tpm,并且安全输入/输出接口408是tpm上的总线主控制器。连接409可以是例如安全元件407和隔离的组件402之间的安全总线。缓冲器411被配置成储存来自处理器404的数据,并且在总线主控制器408的控制下经由安全总线409对隔离的组件402读取和/或写入数据。

在另一实施例中,安全元件407可以是tpm,并且安全输入/输出接口408可以是tpm407上的gpio。gpio引脚可提供安全元件407和隔离的组件402之间的连接409。

在一个实施例中,处理器404和安全元件407可驻留在相同的计算设备401上。安全元件407可由被储存在计算设备上的固件来定义。在其他实施例中,处理器404和安全元件407可以是分开的硬件组件。

安全元件407上的非易失性存储器或存储410可储存与由安全元件407强制实施的策略相对应的一个或多个被索引的值。这些策略可控制对隔离的组件402的访问。例如,这些策略可定义隔离的组件402、安全元件407、处理器404或远程用户设备403中的一者或多者的身份、认证、授权或证明。

图5是例示使用安全元件来控制对隔离的组件的访问的过程或方法500的一个实施例的流程图。该方法可例如在包括处理器、安全元件和安全输入/输出接口的计算系统上被执行。处理器和安全元件可以是分开的硬件设备,其中安全输入/输出接口是安全元件的组件。替代地,处理器和安全元件可以是单个硬件设备的组件,其中安全元件由被储存在硬件设备上的固件定义。

在步骤501中,访问被耦合到安全输入/输出接口的隔离的组件的请求被接收自诸如远程用户设备之类的远程设备。在一个实施例中,访问隔离的组件的请求可以是例如读取来自隔离的组件的数据的请求、向隔离的组件写入数据的请求或者要被发送到隔离的组件的命令。

在步骤502中,使用被储存在安全元件上的策略来验证对隔离的组件的访问。对隔离的组件的访问可使用被储存在安全元件上的策略来进行验证。策略可采用例如密码过程来确定隔离的组件、安全元件、处理器或远程用户设备中的一者或多者的身份、认证、授权或证明。

在步骤503中,策略例如通过参考被储存在安全元件上的非易失性存储器中的一个或多个指令来被标识。

在步骤504中,经由安全输入/输出接口对隔离的组件进行访问在安全元件策略被满足的情况下被允许。

在一个实施例中,来自处理器的数据被储存到安全元件上的缓冲器中。当策略允许访问时,数据在安全元件的总线主控制器的控制下从缓冲器被写入到将安全元件耦合到隔离的组件的安全总线。例如,安全元件可以是tpm,并且安全输入/输出接口是tpm上的总线主控制器。

在另一实施例中,安全元件可以是tpm,并且安全输入/输出接口是tpm上的gpio。允许经由将安全元件与隔离的组件连接的gpio引脚来对隔离的组件进行访问。

操作系统可提供安全特征以防止从诸如互联网之类的公共网络发起的攻击。病毒、蠕虫、特洛伊木马、身份盗用、软件盗版、恶意攻击以及数据破坏的威胁。这些安全特征在操作系统本身已崩溃、感染或者成为恶意攻击的受害者的情况下是失效的。有利地,安全加密处理器可被用来避免、击败或最小化这些攻击。这可通过在安全加密处理器上使用io线驱动具有高完整性要求的设备或者对传感器读数进行证明来实现。有利地,安全加密处理器授权策略可被用来对与io设备的交互强制实施策略。

用于隔离安全输入/输出设备的示例系统包括处理器、安全元件以及安全元件上的安全输入/输出接口。安全输入/输出提供安全元件和隔离的组件之间的连接。安全元件被配置成仅允许处理器和隔离的组件之间的经授权的通信。

安全元件可以是受信平台模块(tpm),并且安全输入/输出接口可以是tpm上的总线主控制器,其中示例系统还包括提供安全元件和隔离的组件之间的连接的安全总线。

该系统还可包括安全元件上的缓冲器。缓冲器被配置成储存来自处理器的数据,并且在总线主控制器的控制下经由安全总线将数据写入隔离的组件。缓冲器附加地或替代地被配置成经由安全总线储存来自隔离的组件的数据,并且在总线主控制器的控制下将数据写入处理器。

安全元件可以是受信平台模块(tpm),并且安全输入/输出接口可以是tpm上的通用输入/输出(gpio),其中示例系统还包括提供安全元件和隔离的组件之间的连接的gpio引脚。

处理器和安全元件可驻留在相同的计算设备上,其中安全元件由被储存在计算设备上的固件定义。

示例系统还可包括安全元件上的非易失性存储器。非易失性存储器储存一个或多个被索引的值,这些被索引的值与由安全元件强制实施的策略相对应。这些策略可控制对隔离的组件的访问。这些策略可定义隔离的组件、安全元件、处理器或远程用户设备中的一者或多者的身份、认证、授权或证明。

示例方法可在包括处理器、安全元件和安全输入/输出接口的计算系统上被执行。该方法包括从远程设备接收访问被耦合到安全输入/输出接口的隔离的组件的请求;使用被储存在安全元件上的策略来验证对隔离的组件的访问;以及如果安全元件策略被满足,则允许经由安全输入/输出接口对隔离的组件进行访问。

访问隔离的组件的请求可以是读取来自隔离的组件的数据的请求、向隔离的组件写入数据的请求或者要被发送到隔离的组件的命令。

该方法还可包括通过参考被储存在安全元件上的非易失性存储器中的一个或多个指令来标识策略。

处理器和安全元件可以是分开的硬件设备,并且安全输入/输出接口可以是安全元件的组件。

处理器和安全元件可以是单个硬件设备的组件,其中安全元件由被储存在硬件设备上的固件定义。

该方法还可包括将来自处理器的数据储存到安全元件上的缓冲器;并且当策略允许访问时,在安全元件上的总线主控制器的控制下将来自缓冲器的数据写入将安全元件耦合到隔离的组件的安全总线。

该方法中所使用的安全元件可以是受信平台模块(tpm),并且安全输入/输出接口可以是tpm上的总线主控制器。

该方法中所使用的安全元件可以是受信平台模块(tpm),并且安全输入/输出接口是tpm上的通用输入/输出(gpio),并且该方法还可包括允许经由将安全元件和隔离的组件连接的gpio引脚对隔离的组件进行访问。

使用被储存在安全元件上的策略来验证对隔离的组件的访问的方法步骤还可包括采用密码过程来确定隔离的组件、安全元件、处理器或远程用户设备中的一者或多者的身份、认证、授权或者证明。

尽管用结构特征和/或方法动作专用的语言描述了本发明主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。更确切而言,上述具体特征和动作是作为实现权利要求的示例形式公开的。

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