用于设备上的平台和用户应用安全性的方法和系统的制作方法
【技术领域】
[0001]本发明涉及一种计算机系统和方法,更特别地,涉及一种用于计算设备上的平台和用户应用安全性的系统和方法。
【背景技术】
[0002]保护计算设备(诸如移动电话)上的用户空间的代码已经变得越来越重要。目前存在有多种用于这类设备上的应用代码的安全性的方法:这些方法中的一种是自主访问控制(discret1nary access control, DAC)。按照惯例,操作系统(0S)使用DAC来基于用户ID限制对对象的访问,由此保护对象不受未经授权的访问。在DAC之下的对象的所有者有做出策略决策和/或指派安全性属性的能力。使用DAC,许可或拒绝例如用于执行某个用户应用代码的其他用户权限就成为可能。然而,DAC方法的根本局限性在于存在“根”用户,“根”用户是免除了由DAC强加在所有其他用户ID上的限制,因而恶意用户可以通过仅仅获取根特权(也被称为“使设备生根”)来完全绕过DAC。
[0003]SE Linux是另一种方法,其通过强加强制访问控制(Mandatory Access Control,MAC)来保护Linux平台,顾名思义,MAC不是基于用户ID的自主性的。SE Linux方法提供了一种基于策略的安全性机制,其中对文件、驱动程序和其他系统资源的每个可能取得特权的访问,均基于不仅仅用户ID而且基于发起请求的执行进程来被准予或拒绝。使用SELinux的根本难点(和其没有更广泛使用的原因)在于:所述安全策略数据是非常复杂的(几乎都是这样),因为其必须描述系统上的每个资源以及对那些资源可能或者可能不被允许访问的每个进程的完整矩阵。此外,每次在设备中安装新软件时都需要对策略进行更新。事实上,这在实际操作中是难管理的,因此很大程度上阻碍了 SE Linux在真实世界的米用。
[0004]因此,需要提供一种新的系统和方法,用于提高计算设备的安全性。
【发明内容】
[0005]本发明的目的是提供一种能够消除或减轻现有系统的至少一个缺点的方法和系统。
[0006]根据本公开的一个方面,提供了一种增强计算设备的安全性的方法,其包括:验证计算设备的操作系统代码的完整性以便在计算设备的操作系统中建立可信任执行环境;以及响应于操作系统代码的完整性验证成功,将计算设备的用户空间的应用绑定到计算设备的操作系统。
[0007]根据本公开的另一个方面,提供了一种存储一个或多个程序的计算机可读存储介质,所述一个或多个程序包括指令,当上述指令由计算设备中的计算机处理器执行时,使得所述处理器执行增强计算设备的安全性的方法。
[0008]根据本公开的另一个方面,提供了一种增强计算设备的安全性的系统,包括:处理器,配置为:验证计算设备的操作系统代码的完整性以便在计算设备的操作系统中建立可信任的执行环境;以及响应于所述操作系统代码的完整性验证成功,将计算设备的用户空间的应用绑定到计算设备的操作系统。
【附图说明】
[0009]从其中参照附图的下列描述,本发明的这些及其他特征将变得更加显然,其中:
图1A-1H是图示增强计算设备的安全性的示例的流程图;
图2A-2D是图示用于安全平台的示例性构建和供应过程的示意图;
图3A是图示在安全平台中的系统启动过程的一个示例的示意图,系统启动过程包括创建内核和内核代理;
图3B是图示系统启动过程的另一个示意图,系统启动过程包括在内核空间建立可信任执行环境(TEE);
图4A是图示在安全平台中的用户应用启动过程的一个示例的示意图,用户应用启动过程包括创建用户应用过程;
图4B是图示所述用户应用启动过程的另一个示意图,用户应用启动过程包括用户应用进程的完整性验证;
图4C是图示所述用户应用启动过程的又一个示意图,用户应用启动过程包括将用户应用进程绑定到内核空间;以及
图5是图示具有开源0S的移动设备的一个示例的示意图,针对该开源0S,附图3A和3B中所示的用户启动过程以及附图4A?4C中所示的用户应用启动过程可以被实施。
[0010]为图示说明的简明和清楚起见,附图中的元件未必是按比例的,只是示意性的和非限制性的,公知的组件可以被省略,而且在不同的附图中相同的附图标记指示相同元件,除非另有说明。
[0011]在下面的描述中,术语“设备(多个)”、“平台(多个)”和“系统(多个)”可以互换使用,且术语“可执行”、“进程”、“模块”和“组件”可以互换使用。在下面的描述中,术语“内核(可执行)进程”、“内核(可执行)模块”和“内核”可以互换使用。在下面的描述中,术语“内核代理(可执行)进程”,“内核代理模块”和“内核代理”可以互换使用。
详细说明
[0012]参照附图1-5仅以举例的方式在下文中描述各实施例。
[0013]在本公开中,提供了一种用于增强计算设备的安全性的安全平台和方法。用于增强计算设备的安全性的安全平台和方法适用于例如但不限于任何计算设备,计算设备包括移动电话、游戏机、平板、机顶盒、电视机或其他消费电子设备。本公开的实施例仅以举例的方式就如下的任何平台进行了描述,所述平台使用开源操作系统(0S)(例如但不限于,Linux或Android?0S),并且这些示例不应该被解释为限制本发明的预定范围。
[0014]参考图1A-1H,图示了在运行时增强计算设备的安全性的过程的示例。所述过程包括验证(100)计算设备的代码的完整性以便在计算设备中建立软件(SW)TEE,以及响应于完整性验证(“IV”)的结果,绑定(120)计算设备的用户空间的应用到计算设备的0S。代码的IV包括0S的IV (110)和用户空间的应用的IV (130)中的任一个或者多个。
[0015]在非限制性的示例中,IV(10)步骤包括0S代码的IV(llO)以验证该计算设备具有用于在0S空间中建立SW TEE的可信任0S。如果OS代码的IV(llO)是成功的,则确定所述计算设备的OS是被充分信任的。在非限制性的示例中,当OS的IV(110)成功时,实施绑定(120)步骤。在非限制性的示例中,OS的IV(llO)包括以下项中的任一个或者多个:磁盘上OS映像的IV,存储器内OS映像的IV,以及存储器内OS映像的连续/增量IV。在非限制性的示例中,在磁盘上和存储器内OS映像的IV成功(112)时,绑定(120)步骤被实施。在非限制性的示例中,在磁盘上和存储器内OS映像的IV(112)成功时,实施存储器内OS映像的连续/增量IV(114)(参见附图1B)。如果存储器内OS映像的连续/增量IV(114)成功,则实施绑定(120)步骤。
[0016]在非限制性的示例中,IV(10)步骤包括用户空间应用的IV(130)以验证该计算设备在用户空间中具有SW TEE(参见例如附图1C-1H)。如果用户空间应用的IV(130)成功,则确定所述计算设备的用户空间被充分信任。在非限制性的示例中,如果0S映像的完全IV (110)是成功的,则实施用户空间应用的IV (130),这在0S空间和用户空间中建立SWTEE。在非限制性的示例中,用户空间应用的IV(130)包括如下项中的任一个或者多个:磁盘上用户空间应用映像的IV(132),存储器内用户空间应用映像的IV(134),以及存储器内用户空间应用映像的连续/增量IV (150、170)。这些IV中的任一个或多个可以随后实施。在非限制性的示例中,当用户空间应用映像的磁盘上映像的完全IV(132)成功时,绑定(120)步骤被实施。在非限制性的示例中,当磁盘上用户空间应用映像的完全IV(132)成功时,存储器内用户空间应用映像的完全IV(134)被实施。在非限制性的示例中,存储器内用户空间应用映像的完全IV(134)是通过跳过重定位(例如:用于加载磁盘上用户应用的内容的加载器的重定位)来实施的。在非限制性的示例中,当磁盘上和存储器内用户空间应用映像的完全IV成功时,绑定(120)步骤被实施。
[0017]在非限制性的示例中,在用户空间应用映像的IV(130)之后,存储器内用户空间应用(包括重定位)的映像被签署(140)(参见例如附图1E-1H)。在非限制性的示例中,在签署存储器内用户空间应用映像(140)后,存储器内用户空间应用映像的连续/增量IV(150)基于(与签署(140)步骤关联的)完全签名得以实施。在非限制性的示例中,当存储器内用户空间应用映像的连续/增量IV(150)成功时,绑定(120)步骤得以实施(参见例如附图1E)。在非限制性的示例中,在签署存储器内用户空间应用映像(140)后,绑定
(120)步骤被实施,然后存储器内用户空间应用映像被重签署(160),因为它可能已经由于绑定步骤的结果而发生变化。在非限制性的示例中,在重新签署存储器内用户空间应用映像(160)后,存储器内应用映像的连续/增量IV(170)基于(与重签署(160)步骤关联的)完全签名得以实施(参见附图1F)。在非限制性的示例中,在绑定(120)步骤后,存储器内应用映像的连续/增量IV(170)被实施,因为绑定(120)步骤可能改变用户应用映像(参见附图1G)。
[0018]在非限制性的示例中,绑定(120)步骤包括