采用输入标记的可信二进制的二进制转换制造技术

技术编号:16709045 阅读:21 留言:0更新日期:2017-12-03 00:38
在示例中,计算装置包含可信运行环境(TEE)(其包含飞地)。飞地可以包含二进制转换引擎(BTE)和输入验证引擎(IVE)。在一个实施例中,IVE接收可信二进制作为输入,并且分析可信二进制以识别执行输入/输出操作的函数、类和变量。为了确保这些接口的安全,可以在飞地内执行那些操作。IVE标记可信二进制,并提供二进制到BTE。BTE然后将可信二进制转换成第二格式,包含指定标记部分以供在飞地内的运行。BTE也可以对处于第二格式的新二进制文件进行签名,并将其导出离开飞地。

【技术实现步骤摘要】
【国外来华专利技术】采用输入标记的可信二进制的二进制转换相关申请的交叉引用本申请要求2014年12月27日提交的命名为“BINARYTRANSLATIONOFATRUSTEDBINARYWITHINPUTTAGGING”的美国非临时专利申请No.14/583620的权益和优先权,其通过引用整体结合在本文中。
本申请涉及计算机安全领域,并且更具体地,涉及用于采用输入标记的可信二进制的二进制转换的系统和方法。
技术介绍
计算机安全是一方面在恶意行为者之间以及另一方面在计算机安全公司和用户之间的不断演进的军备竞赛(armsrace)。有关这竞赛的安全方面的一个有用的工具是“可信运行环境”(TEE)。TEE是硬件、软件和固件的组合,其提供环境以用于运行签名和验证的二进制或其它可运行对象。TEE可以包含具有适合的扩展指令(例如英特尔®安全防护扩展(SGX)指令)的处理器、安全协处理器、适当的固件和驱动器和/或特殊存储器“飞地(enclave)”。飞地包含特殊存储器页或分区,其只能经由特殊的TEE指令访问和引用。具体地,程序可以向飞地内的存储器位置写或从飞地内的存储器位置读,或者运行飞地内的指令(仅作为特殊指令,像英特尔®SGX指令)。采用其它(非安全)指令进入飞地的任何尝试可能会导致诸如页面故障的错误。在一个示例中,TEE配置成仅运行被验证和签名(例如通过证书机构)的对象。这帮助确保恶意软件和其它恶意对象不在TEE内运行。在一些示例中,TEE被给予对某些敏感或重要资源(例如重要的操作系统文件、敏感数据或其它被保护的资源)的排它性访问。可以使用飞地来将对机密数据操作的可信代码与可能运行不可信代码的剩余的计算设备隔离。附图说明当与附图一起阅读时,根据下面的详细描述最好地理解本公开。强调的是,根据行业中的标准实践,各种特征并没有按比例绘制,并且仅用于说明的目的。事实上,为了讨论的清楚,各种特征的尺寸可以任意增加或减少。图1是根据本说明书的一个或多个示例的安全使能网络的框图。图2是根据本说明书的一个或多个示例的计算装置的框图。图3是根据本说明书的一个或多个示例的服务器的框图。图4A和4B是根据本说明书的一个或多个示例的飞地的功能框图。图5是根据本说明书的一个或多个示例的通过一对飞地互换签名(sign)的二进制的功能框图。图6是根据本说明书的一个或多个示例的飞地的功能框图。图7是根据本说明书的一个或多个示例的输入验证引擎的功能框图。图8是根据本说明书的一个或多个示例执行二进制转换的方法的流程图。图9是根据本说明书的一个或多个示例执行输入验证的方法的流程图。图10是根据本说明书的一个或多个示例的IVE460和BTE224之间的交互方法的框图。具体实施方式概览在示例中,计算装置包含可信运行环境(TEE),其包含飞地。飞地可以包含二进制转换引擎(BTE)和输入验证引擎(IVE)。在一个实施例中,IVE接收可信二进制作为输入,并且分析可信二进制以识别执行输入/输出操作的函数(function)、类和变量。为了确保这些接口的安全,可以在飞地内执行那些操作。IVE标记可信二进制,并提供二进制到BTE。BTE然后将可信二进制转换成第二格式,包含指定标记的部分以供在飞地内的运行。BTE也可以对处于第二种格式的新二进制进行签名,并将其导出离开飞地。本公开的示例实施例下面公开提供了用于实现本公开的不同特征的许多不同实施例或示例。以下描述组件和布置的特定示例以简化本公开。当然,这些仅仅是示例,而不意图是限制性的。此外,本公开可以在各种示例中重复参考数字和/或字母。此重复是为了简单和清楚的目的,并且本身并不表明所讨论的各种实施例和/或配置之间的关系。不同的实施例可具有不同的优点,并且对于任何实施例不一定要求具体的优点。代码签名和验证是某些安全计算架构中的基本构建块。它们帮助验证由开发人员或独立软件供应商(ISV)构建的代码或二进制在其到其消费者的途中未被篡改,因此保证软件完整性并在它们之间构建可信通道。然而,此通道通常只延伸直到软件安装时间。繁杂的TEE可能进行另外一步并验证软件的完整性直到运行点。然而,它们可能不会扩展到当代码/二进制不得不被合法修改时(像二进制转换、即时编译)或当管理的运行时间开始起作用时的用例。在本说明书的示例中,TEE可以包含二进制转换引擎(BTE)和输入验证引擎(IVE)中的一个或两者。BTE和IVE可以彼此独立地操作以执行其特定功能,或者可以协同工作以提供联合功能。BTE可以配置成接收称为可信二进制的第一对象,其可以是例如二进制对象、文本文件、脚本、宏或先前已经分析和确认(validated)的任何其它适合的对象。可信二进制可能出现在TEE的白名单上,意味着可信二进制被允许在TEE内运行。可信二进制可能具有由证书机构签名的证书,包含能够通过私有密钥验证的公共密钥。然而,可信二进制可能不适合于以其原始形式在目标系统上使用。在一个非限制性示例中,可信二进制是Java字节代码二进制,其只能够由Java虚拟机运行。移动装置和移动操作系统的增加的使用使此类可信二进制的安全态势复杂。例如,Java字节代码可能不适合于在具体架构上使用,或者可能期望将Java字节代码转变成适合于在移动装置上使用的新形式。在一个实施例中,Java字节代码将被编译为用于适合的移动装置的本机指令。然而,编译可能包含不同架构上的若干目标装置,例如基于Intelx86的架构、ARM架构或其它架构。在移动装置上使用这些二进制可能要求将字节代码编译成每个单独的本机格式,并且然后个别对每个编译的输出进行签名。虽然这是可能的,但这可能很麻烦。在另一示例中,直到第一对象到达目标装置之后二进制转换才发生。例如,BTE可能是一个即时(JIT)编译器,其将Java字节代码实时编译成本机二进制格式。在那个情况下,二进制不能由证书机构(authority)事先签名。在其中TEE将只运行签名和验证的二进制的实施例中,这意味着JIT编译器的输出必须在TEE之外运行。这可能使TEE的安全目的落空,或使得二进制完全无用。在本说明书的一个示例中,描述了一种系统和方法,其中BTE本身是能够在TEE内全部或部分运行的可信二进制。当TEE接收处于第一格式的第一签名的对象时,BTE可以将第一签名的对象转换成处于第二格式的第二对象。例如,第二格式可以是用于主机平台的本机二进制格式。因为第一签名的对象和BTE都被签名和验证,因此假设BTE的输出(处理第一签名的对象作为输入)也能够被视为可信二进制是合理的。因此,TEE本身可以对第二对象进行签名,其为BTE的输出。对第二对象进行签名可以包含采用用来对第一签名的对象进行签名的相同密钥或采用与第一密钥不同但具有与第一个密钥相同的出处的第二密钥对其进行签名。第二二进制则适合于在主机系统上的TEE内运行。此外,BTE可以配置成将处于签名和加密的形式的第二对象从TEE导出。由于第二对象现在已由第一密钥或由具有与第一密钥相同出处的第二密钥签名,所以能够将其提供到以TEE的另一个机器,并且另一个机器能够将第二个对象的证书辨别为有效。在一个示例中,这可以包含在第一机器和第二机器之间执行认证。这在物联网(IoT)上下文中可以是特别有用的,其中个别的IoT装置不具有足够的处本文档来自技高网...
采用输入标记的可信二进制的二进制转换

【技术保护点】
一种计算设备,包括:可信运行环境(TEE);一个或多个逻辑元件,包括所述TEE内的输入验证引擎(IVE),所述IVE可操作用于:接收可信二进制对象;分析所述可信二进制对象以识别执行输入/输出操作的部分;标记所述部分以创建具有标记部分的标记的可信二进制;以及将所述部分提供到二进制转换引擎;以及一个或多个逻辑元件,包括所述TEE内的所述二进制转换引擎(BTE),所述BTE可操作用于:接收处于第一格式的所述标记的可信二进制;将所述标记的可信二进制转换成处于第二格式的第二二进制对象,其中转换包括保留所述标记的部分以供在飞地内的运行。

【技术特征摘要】
【国外来华专利技术】2014.12.27 US 14/5836201.一种计算设备,包括:可信运行环境(TEE);一个或多个逻辑元件,包括所述TEE内的输入验证引擎(IVE),所述IVE可操作用于:接收可信二进制对象;分析所述可信二进制对象以识别执行输入/输出操作的部分;标记所述部分以创建具有标记部分的标记的可信二进制;以及将所述部分提供到二进制转换引擎;以及一个或多个逻辑元件,包括所述TEE内的所述二进制转换引擎(BTE),所述BTE可操作用于:接收处于第一格式的所述标记的可信二进制;将所述标记的可信二进制转换成处于第二格式的第二二进制对象,其中转换包括保留所述标记的部分以供在飞地内的运行。2.根据权利要求1所述的计算设备,其中,所述IVE还可操作用于:在所述TEE内供应飞地;以及在所述飞地内执行其功能的至少一些。3.根据权利要求2所述的计算设备,其中,所述IVE还可操作用于在所述飞地内供应所述BTE。4.根据权利要求3所述的计算设备,其中所述BTE包括二进制转换器,其从由运行时间引擎、解释器、即时编译器、提前编译器、虚拟机、编译器、链接器和工具链实用程序组成的组中选择。5.根据权利要求3所述的计算设备,其中所述BTE包括Java虚拟机,并且其中所述IVE至少部分地以Java实现并且配置成在所述BTE内操作。6.根据权利要求1所述的计算设备,其中,所述IVE还可操作用于执行输入验证。7.根据权利要求6所述的计算设备,其中,所述IVE包括从由安全网络栈、安全图形引擎、安全人性化输入装置接口引擎、安全音频引擎、安全图像处理引擎、安全遥测引擎、安全全球定位系统接收器和二进制输入分析器组成的组中选择的模块。8.根据权利要求1-6中任一项所述的计算设备,其中,所述BTE还可操作用于对所述第二二进制对象进行签名。9.根据权利要求8所述的计算设备,其中,第一签名的对象要由密钥签名,并且其中对所述第二对象进行签名包括采用所述密钥对所述第二对象进行签名。10.根据权利要求8所述的计算设备,其中,第一签名的对象要采用第一密钥签名,并且其中对所述第二对象进行签名包括采用由所述第一密钥的共同发起者签名的第二密钥对所述第二对象进行签名。11.根据权利要求8所述的计算设备,其中,第一签名的对象要采用第一密钥签名,并且其中对所述第二对象进行签名包括采用由所述第一对象的供应商提供的第二密钥对所述第二对象进行签名。12.根据权利要求8所述的计算设备,其中第一签名的对象要采用第一密钥签名,并且其中对所述第二对象进行签名包括采用由所述第一密钥签名的第二密钥对所述第二对象进行签名。13.根据权利要求8所述的计算设备,其中所述二进制转换引擎还可操作用于在对所述第二对象进行签名之前...

【专利技术属性】
技术研发人员:NM史密斯D鲁巴哈S沙J马丁MJ舍勒S查克拉巴蒂幸滨
申请(专利权)人:迈克菲有限责任公司
类型:发明
国别省市:美国,US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1