CN116956298A - 应用运行环境检测方法和装置 - Google Patents
应用运行环境检测方法和装置 Download PDFInfo
- Publication number
- CN116956298A CN116956298A CN202210390673.7A CN202210390673A CN116956298A CN 116956298 A CN116956298 A CN 116956298A CN 202210390673 A CN202210390673 A CN 202210390673A CN 116956298 A CN116956298 A CN 116956298A
- Authority
- CN
- China
- Prior art keywords
- information
- target
- security
- application
- digital signature
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 248
- 230000004044 response Effects 0.000 claims abstract description 58
- 238000007689 inspection Methods 0.000 claims abstract description 20
- 238000012795 verification Methods 0.000 claims description 114
- 238000000034 method Methods 0.000 claims description 105
- 230000001960 triggered effect Effects 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 13
- 230000002159 abnormal effect Effects 0.000 claims description 12
- 150000003839 salts Chemical class 0.000 claims description 12
- 230000008569 process Effects 0.000 description 50
- 238000007726 management method Methods 0.000 description 22
- 238000012545 processing Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 14
- 230000006854 communication Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 13
- 238000012546 transfer Methods 0.000 description 13
- 238000004891 communication Methods 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 10
- 230000005540 biological transmission Effects 0.000 description 7
- 230000015556 catabolic process Effects 0.000 description 7
- 238000006731 degradation reaction Methods 0.000 description 7
- 230000003993 interaction Effects 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 5
- 238000005192 partition Methods 0.000 description 5
- 230000005856 abnormality Effects 0.000 description 4
- 238000003491 array Methods 0.000 description 3
- 230000000977 initiatory effect Effects 0.000 description 3
- 238000009434 installation Methods 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 230000001010 compromised effect Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000001680 brushing effect Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000007723 transport mechanism Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Landscapes
- Storage Device Security (AREA)
Abstract
描述了一种应用运行环境检测方法,包括:从用于运行目标应用的目标设备获取基于可信执行环境得到的安检信息包,其中所述安检信息包包括安全特征信息和针对所述安全特征信息的第一数字签名,所述安全特征信息包括在可信执行环境下收集的目标设备的设备状态信息和设备标识相关信息;根据所述设备标识相关信息,验证所述第一数字签名;以及响应于所述第一数字签名被验证通过,基于所述安全特征信息确定所述目标应用运行环境的安全性。
Description
技术领域
本申请涉及信息安全技术领域,更具体地涉及一种应用运行环境检测方法、装置、计算设备、计算机可读存储介质及计算机程序产品。
背景技术
随着计算机技术和互联网技术的发展,越来越多的人习惯于通过使用连接到互联网的终端设备(例如手机、平板电脑等)中的各种应用(例如网页浏览器、手机APP,计算机应用软件等)来处理工作、生活中的事务。伴随着各种计算机或手机应用的普及和使用领域的日益丰富,应用的运行环境(即终端设备的软硬件系统)的安全性已经成为无法回避的问题。如果用户在安全性不确定的运行环境或设备中运行的应用中进行各种操作(尤其是诸如转账之类的敏感操作),将会面临诸多安全威胁(例如信息泄露或财产损失等)。因此,应用的运行环境或运行设备的安全性或可信度检测变得越来越重要。
然而,相关技术的应用运行环境安全性检测方法存在诸如适用范围较小(例如局限于操作系统和核心模块)、检测流程复杂、检测速度慢、用于检测的信息可靠性难以保证等缺陷。
发明内容
本申请提供了一种应用运行环境检测方法,期望可以缓解、减轻或甚至消除上述问题中的一些或全部以及其它可能的问题。
根据本申请的一个方面,提出一种应用运行环境检测方法,包括:从用于运行目标应用的目标设备获取基于可信执行环境得到的安检信息包,其中所述安检信息包包括安全特征信息和针对所述安全特征信息的第一数字签名,所述安全特征信息包括在可信执行环境下收集的目标设备的设备状态信息和设备标识相关信息;根据所述设备标识相关信息,验证所述第一数字签名;以及响应于所述第一数字签名被验证通过,基于所述安全特征信息确定所述目标应用运行环境的安全性。
在根据本申请一些实施例的应用运行环境检测方法中,安全特征信息进一步包括:目标应用版本信息和针对目标应用的第二数字签名相关信息中至少一个。
在根据本申请一些实施例的应用运行环境检测方法中,述针对目标应用的第二数字签名相关信息包括:针对目标应用的第二数字签名和所述第二数字签名的哈希摘要中至少一个。
在根据本申请一些实施例的应用运行环境检测方法中,根据所述设备标识相关信息,验证所述第一数字签名,包括:根据所述设备标识相关信息,获取预存的用于所述第一数字签名的验签密钥,其中所述设备标识相关信息包括目标设备的设备型号信息和设备身份标识信息中至少一个;利用所述验签密钥验证所述第一数字签名。
在根据本申请一些实施例的应用运行环境检测方法中,设备标识相关信息包括目标设备的设备型号信息和关于设备身份标识的加密信息,并且其中所述根据所述设备标识相关信息,验证所述第一数字签名,包括:根据所述设备型号信息,获取预存的用于解密所述关于设备身份标识的加密信息的解密密钥;利用所述解密密钥对所述加密信息进行解密,以获取目标设备的设备身份标识信息;根据所述设备身份标识信息,获取预存的用于所述第一数字签名的验签密钥;利用所述验签密钥验证所述第一数字签名。
在根据本申请一些实施例的应用运行环境检测方法中,关于设备身份标识的加密信息是基于随机盐加密方式进行加密的。
在根据本申请一些实施例的应用运行环境检测方法中,从用于运行目标应用的目标设备获取基于可信执行环境得到的安检信息包包括:从目标设备接收目标应用运行环境检测请求;响应于所述目标应用运行环境检测请求,向目标设备发送一次性预定随机数;从目标设备接收目标设备的安检信息包,其中所述安全特征信息进一步包括所述一次性预定随机数。
在根据本申请一些实施例的应用运行环境检测方法中,从用于运行目标应用的目标设备获取基于可信执行环境得到的安检信息包包括:向目标设备发送目标应用运行环境检测指令,所述目标应用运行环境检测指令包括一次性预定随机数;从目标设备接收目标设备的安检信息包,其中所述安全特征信息进一步包括所述一次性预定随机数。
在根据本申请一些实施例的应用运行环境检测方法中,从目标设备接收目标应用运行环境检测请求包括下述步骤中至少一个:从目标设备接收周期性触发的目标应用运行环境检测请求;从目标设备接收响应于目标应用的启动触发的目标应用运行环境检测请求;从目标设备接收响应于与目标应用相关的预定操作触发的目标应用运行环境检测请求。
在根据本申请一些实施例的应用运行环境检测方法中,与目标应用相关的预定操作包括目标应用运行中发生的资源相关操作。
在根据本申请一些实施例的应用运行环境检测方法中,安全特征信息进一步包括:预定的可信应用版本信息和预定的系统应用版本信息中至少一个,其中所述预定的可信应用用于在目标设备的可信执行环境中运行以获取设备状态信息和设备标识相关信息,且所述预定的系统应用用于在目标设备中运行以获取目标应用版本信息和第二数字签名相关信息中至少一个。
在根据本申请一些实施例的应用运行环境检测方法中,响应于所述第一数字签名被验证通过,基于所述安全特征信息确定所述目标应用运行环境的安全性,包括:响应于所述第一数字签名被验证通过,检测所述一次性预定随机数是否正常;响应于所述一次性预定随机数被检测为异常,检测所述设备状态信息是否正常;响应于所述设备状态信息被检测为正常,检测所述目标应用版本信息是否正常;响应于所述目标应用版本信息被检测为正常,检测所述第二数字签名相关信息是否正常;响应于所述第二数字签名相关信息被检测为正常,检测所述预定的可信应用的版本信息是否正常;响应于所述预定的可信应用的版本信息被检测为正常,检测所述预定的系统应用的版本信息是否正常;响应于所述预定的系统应用的版本信息被检测为正常,目标应用运行环境被确定为安全。
在根据本申请一些实施例的应用运行环境检测方法中,响应于所述第一数字签名被验证通过,基于所述安全特征信息确定所述目标应用运行环境的安全性,包括:检测所述安全特征信息中至少一部分信息是否正常,所述至少一部分信息包括目标设备的设备状态信息;响应于所述安全特征信息中至少一部分信息被检测为正常,目标应用运行环境被确定为安全。
在根据本申请一些实施例的应用运行环境检测方法中,进一步包括:响应于所述第一数字签名未被验证通过或所述目标应用运行环境被确定为不安全,执行下述步骤中至少一个:禁止在目标设备上运行目标应用;禁止在目标设备上执行与目标应用相关的预定操作。
根据本申请的另一方面,提供另一种应用运行环境检测方法,包括:在可信执行环境下获取用于运行目标应用的目标设备的设备状态信息和设备标识相关信息;至少基于所述设备状态信息和设备标识相关信息,生成安全特征信息;在可信执行环境下利用预存的签名密钥对所述安全特征信息进行签名操作以得到第一数字签名;基于所述安全特征信息和第一数字签名,生成安检信息包;将安检信息包发送至服务器,以使得所述服务器通过验证所述第一数字签名和检测所述安全特征信息来确定目标应用运行环境的安全性。
在一些实施例中,至少基于所述设备状态信息和设备标识相关信息,生成安全特征信息,包括:从服务器接收一次性预定随机数;获取目标设备中的目标应用版本信息、针对目标应用的第二数字签名相关信息中至少一个;基于所述目标应用版本信息、第二数字签名相关信息以及所述一次性预定随机数中至少一个以及所述设备状态信息和设备标识相关信息,生成安全特征信息。
根据本申请的又一方面,提供一种应用运行环境检测装置,包括:获取模块,其配置成从用于运行目标应用的目标设备获取基于可信执行环境得到的安检信息包,其中所述安检信息包包括安全特征信息和针对所述安全特征信息的第一数字签名,所述安全特征信息包括在可信执行环境下收集的目标设备的设备状态信息和设备标识相关信息;验证模块,其配置成根据所述设备标识相关信息,验证所述第一数字签名;以及确定模块,其配置成响应于第一数字签名被验证通过,基于所述安全特征信息确定所述目标应用的运行环境的安全性。
根据本申请的另一方面,提出一种计算设备,包括:存储器和处理器,其中所述存储器中存储有计算机程序,所述计算机程序在被所述处理器执行时促使所述处理器执行根据本申请一些实施例的应用运行环境检测方法。
根据本申请的另一方面,提出一种计算机可读存储介质,其上存储计算机可读指令,所述计算机可读指令在被执行时实现根据本申请一些实施例的方法。
根据本申请的另一方面,提出一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据本申请一些实施例的方法的步骤。
在根据本申请一些实施例的应用运行环境检测方法和装置中,首先通过利用可信执行环境TEE中的代码和数据一般无法被外界破解、修改和获取的特性,在用于运行目标应用的目标设备的TEE中,获取运行环境安全性检测所需的安检信息包中至少一部分安全特征信息(即目标设备的设备状态信息或设备完整性信息和设备标识相关信息),并且安检信息包中还包括对安全特征信息利用非对称加密算法得到的数字签名(即第一数字签名)。其中,在TEE中获取的至少一部分安全特征信息确保了信息的可靠性,从而杜绝了相关技术在普通环境(即非可信执行环境)中获取的信息可靠性难以保证的问题,而在TEE下获取的第一数字签名保证了用于检测运行环境安全性的安全特征信息的真实性和完整性,这样可以提升运行环境安全性检测准确性。其次,应用的运行环境安全性检测可以在服务器端(例如应用开发商、目标设备制造商、可信第三方中一个或多个提供的服务器)进行,从而与相关技术中在本地(即目标设备)进行安全性检测相比,有效防止了检测结果被修改的可能,从而进一步确保应用运行环境(即目标设备)的安全性或可信度检测结果的准确性;而安全性检测的准确性能够有效保证目标应用在安全运行环境下的安全运行,尤其是确保了某些对安全性要求较高的操作(例如手机银行转账)在安全环境下完成,降低了安全性风险,从而提高风控能力和精细度,更好地保护用户的信息安全和财产安全。 此外,根据本申请一些实施例的应用运行环境检测方法仅包括安检信息包的获取、第一数字签名的验证以及运行环境安全性确定三个步骤,检测过程相对简单且易于实现,与相关技术的繁琐复杂的检测过程相比,显著提高了工作效率。
附图说明
根据以下详细描述和附图,将容易理解本申请的各个不同的方面、特征和优点,在附图中:
图1示意性示出了根据本申请一些实施例的应用运行环境检测方法的示例实施环境;
图2示意性示出了根据本申请一些实施例的应用运行环境检测方法在图1的示例实施环境中实现的示例交互流程图;
图3示意性示出了根据本申请一些实施例的应用运行环境检测方法的流程图;
图4示意性示出了根据本申请一些实施例的应用运行环境检测方法的流程图;
图5示意性示出了根据本申请一些实施例的应用运行环境检测方法的流程图;
图6示意性示出了根据本申请一些实施例的安检信息包的示例框图;
图7A示意性示出了根据本申请一些实施例的应用运行环境检测方法的流程图;
图7B示意性示出了根据根据本申请一些实施例的应用运行环境检测方法的示例原理图;
图8示意性示出了根据本申请一些实施例的应用运行环境检测方法的流程图;
图9示意性示出了根据本申请一些实施例的应用运行环境检测方法的示例应用场景;
图10示意性示出了根据本申请一些实施例的应用运行环境检测方法的流程图;
图11示意性示出了根据本申请一些实施例的应用运行环境检测装置的示例框图;以及
图12示意性示出了根据本申请一些实施例的计算设备的示例框图。
应当指出,上述附图仅仅是示意性的和说明性的,且并不一定按照比例绘制。
具体实施方式
下面将参照附图更详细地描述本申请的若干个实施例以便使得本领域技术人员能够实现本申请。本申请可以体现为许多不同的形式和目的并且不应局限于本文所阐述的实施例。提供这些实施例以使得本申请全面且完整,并充分地向本领域技术人员传达本申请的范围。所述实施例并不限定本申请。
将理解的是,尽管术语第一、第二、第三等在本文中可以用来描述各种元件、部件和/或部分,但是这些元件、部件和/或部分不应当由这些术语限制。这些术语仅用来将一个元件、部件或部分与另一个元件、部件或部分相区分。因此,下面讨论的第一元件、部件或部分可以被称为第二元件、部件或部分而不偏离本申请的教导。
本文中使用的术语仅出于描述特定实施例的目的并且不意图限制本申请。如本文中使用的,单数形式“一个”、“一”和“该”意图也包括复数形式,除非上下文清楚地另有指示。将进一步理解的是,术语“包括”和/或“包含”当在本说明书中使用时指定所述及特征、整体、步骤、操作、元件和/或部件的存在,但不排除一个或多个其他特征、整体、步骤、操作、元件、部件和/或其群组的存在或添加一个或多个其他特征、整体、步骤、操作、元件、部件和/或其群组。如本文中使用的,术语“和/或”包括相关联的列出项目中的一个或多个的任意和全部组合。
除非另有定义,本文中使用的所有术语(包括技术术语和科学术语)具有与本申请所属领域的普通技术人员所通常理解的相同含义。将进一步理解的是,诸如那些在通常使用的字典中定义的之类的术语应当被解释为具有与其在相关领域和/或本说明书上下文中的含义相一致的含义,并且将不在理想化或过于正式的意义上进行解释,除非本文中明确地如此定义。
在详细介绍本申请的实施例之前,为了清楚起见,首先对一些相关的概念进行解释。
1、可信执行环境(TEE,Trusted Execution Environment):是指在计算设备(例如计算机或智能手机等)中通过软硬件方法在中央处理器(CPU)中构建的一个安全区域,保证其内部加载的程序和数据在机密性和完整性上得到保护。TEE原理是将计算设备的硬件和软件资源划分为两个执行环境—可信执行环境和普通执行环境,两个环境是安全隔离的,有独立的内部数据通路和计算所需存储空间,普通执行环境的应用程序无法访问TEE。TEE技术实现方案可以包括例如以X86指令集架构的Inter SGX和ARM指令集架构的TrustZone。TEE可以用来进行数字版权管理(DRM : Digital Rights Management)、移动支付和敏感数据保护等。TEE提供了可信应用(Trusted APPlication,TA)的安全执行环境,同时也保护可信应用的资源和数据的保密性、完整性和访问权限。在TEE中运行的可信应用可以访问计算设备的处理器和内存的全部功能,而硬件隔离保护这些可信应用不受主操作系统中运行的普通应用的影响。
2、应用:即应用程序,指为完成某项或多项特定工作的计算机程序,它通常运行在用户模式中,可以和用户进行交互,并具有可视的用户界面。从功能的角度看,应用程序可以包括云游戏、社交应用程序、支付应用程序、购物应用程序、多媒体应用程序(如音视频应用程序)以及教育应用程序等;从访问方式的角度看,应用程序可以包括本地安装的应用程序、经由其他应用程序访问的小程序、经由浏览器访问的web程序等。应用又称终端应用,其可以包括但不限于手机APP、计算机软件等。可选地,应用也可以包括其他类型的应用程序,例如用于获取系统信息例如普通APP版本的系统服务或系统应用,以及在可信执行环境TEE中运行的可信应用TA等。
3、数字签名:是指附加在数据单元上的一些数据或是对数据单元所作的密码变换,用以确认数据单元的来源和数据单元的完整性并保护数据,防止被人(例如接收者)进行伪造。数字签名机制一般地可以基于公钥(非对称)加密体制并用于保护电子消息在网络的安全传输。
4、安检信息包:是指从目标设备获取的、用于目标应用的运行环境(安全性)检测的所有信息的集合。安检信息包可以包括安全特征信息和针对安全特征信息的第一数字签名。
5、安全特征信息:是指反映或标示目标应用的运行环境的安全性或可信度的(关于目标设备的)信息。例如,可以包括目标设备的设备状态信息、设备标识相关信息;可选地还可以包括目标设备中安装的目标应用的版本信息、针对目标应用的第二数字签名相关信息;此外,还可以包括目标设备中运行的用于获取各种安全特征信息的预定的系统应用版本信息和预定的可信应用的版本信息。
6、设备状态信息:也可以被称为设备完整性信息,即设备的软硬件系统是否完整,尤其是与设备启动和运行相关软硬件(例如操作系统)是否被修改或解锁,例如可以包括软硬件系统控制权限(Root权限)、基本输入输出系统(BIOS)、系统引导程序(Boot Loader)等设备运行必需的关键模块是否被非法修改或解锁、设备系统中是否存在Root工具或Hook工具等信息。
7、设备标识相关信息:是指与目标设备的安全特征信息的第一数字签名的签名密钥和验签密钥对应的、用于标识目标设备的相关信息。设备标识相关信息可以包括设备型号标识信息(MOD)(对应于第一数字签名的一机型一密)或设备身份标识信息(ID)(对应于第一数字签名的一机一密),前者表示一个设备所属型号或类型,后者则是唯一标识一个设备的一串序列号(通常需要保证任意两台设备的ID不一致,且难以伪造和修改);可选地,设备标识相关信息还可以包括设备型号标识信息和关于设备身份标识的加密信息(对应于第一数字签名的一机一密);也可以包括设备厂商标识(对应于第一数字签名的一厂商一密);可以进一步包括设备型号信息和可信应用版本信息(对应于第一数字签名的一机型多密)。
在检测或验证应用的运行环境或运行设备的安全性或可信度的相关技术中,通常在设备的普通环境下(非可信执行环境)获取安全性检测所需的诸如设备状态之类的设备完整性信息,因而这些信息存在被非法修改的可能,所获信息真实性、可靠性、完整性无法得到保证;进一步地,整个检测过程需要至少两次联网,断网状态无法进行;而且验证过程复杂、验证速度较慢、实用性较差。
针对上文所述的用于检测安全性的信息获取可靠性低、检测过程复杂等问题,本申请提出一种基于可行执行环境应用运行环境检测方法。在根据本申请一些实施例的技术方案中,通过利用TEE中的代码和数据一般无法被外界破解、修改和获取的特性,在TEE中获取安全性检测所需的目标设备(即应用的运行环境)至少一部分安全特征信息(例如设备状态信息和设备完整性信息),以保证所获信息的可靠性;并且通过对安全特征信息利用非对称加密算法进行数字签名来保证信息传输中的真实性和完整性,进而为运行环境安全性检测的准确性奠定了基础;随后在服务器端(例如可信第三方)验证该数字签名并基于安全特征信息确定运行环境安全性,可以有效防止检测结果被修改的可能,从而进一步确保应用运行环境安全性或可信度检测结果的准确性。
图1示意性示出了根据本公开一些实施例的应用运行环境检测方法的示例实施环境,即应用运行环境检测系统100。可以在应用运行环境检测系统100中实施本文描述的各种方法。如图1所示,应用运行环境检测系统100可以包括应用管理服务器110、签名验证服务器120以及安全检测服务器130,并且可选地可以包括网络140以及一个或多个终端设备150。
应用管理服务器110、签名验证服务器120以及安全检测服务器130可以存储和运行可以执行本文所描述的各种方法的指令,其分别可以是单个服务器或服务器集群,或者可以是能够提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器或云服务器集群;或者其中的任两个或三个可以是同一服务器或同一服务器集群或云服务器或云服务器集群。应理解,本文所提及的服务器典型地为具有大量存储器和处理器资源的服务器计算机,但是其他实施例也是可能的。
网络140的示例包括局域网(LAN)、广域网(WAN)、个域网(PAN)、和/或诸如因特网之类的通信网络的组合。应用管理服务器110、签名验证服务器120以及安全检测服务器130以及一个或多个终端设备150的每一个可以包括能够通过网络140进行通信的至少一个通信接口(未示出)。这样的通信接口可以是下列各项中的一个或多个:任何类型的网络接口(例如,网络接口卡(NIC))、有线或无线(诸如IEEE 802.11无线LAN(WLAN))无线接口、全球微波接入互操作(Wi-MAX)接口、以太网接口、通用串行总线(USB)接口、蜂窝网络接口、BluetoothTM接口、近场通信(NFC)接口等。
如图1所示,终端设备150可以是任何类型的移动计算设备,包括移动计算机(例如、个人数字助理(PDA)、膝上型计算机、笔记本计算机、平板计算机、上网本等)、移动电话(例如,蜂窝电话、智能手机等)、可穿戴式计算设备(例如智能手表、头戴式设备,包括智能眼镜等)或其他类型的移动设备。在一些实施例中,终端设备150也可以是固定式计算设备,例如台式计算机、游戏机、智能电视等。此外,当应用运行环境检测系统100包括多个终端设备150的情况下,该多个终端设备150可以是相同或不同类型的计算设备。
如图1所示,终端设备150可以包括显示屏151以及可以经由显示屏151与终端用户交互的终端应用152。终端设备150可以例如经由网络140与应用管理服务器110、签名验证服务器120以及安全检测服务器130中的一个或多个进行交互,例如向其发送数据或从其接收数据。终端应用152可以为本地应用程序、网页(Web)应用程序或者作为轻量化应用的小程序(LiteAPP,例如手机小程序、微信小程序)。在终端应用152为需要安装的本地应用程序的情况下,可以将终端应用152安装在用户终端150中。在终端应用152为Web应用程序的情况下,可以通过浏览器访问终端应用152。在终端应用152为小程序的情况下,可以通过搜索终端应用152的相关信息(如终端应用152的名称等)、扫描终端应用152的图形码(如条形码、二维码等)等方式来在用户终端150上直接打开终端应用152,而无需安装终端应用152。
图2示出了根据本公开一些实施例的应用运行环境检测系统100中各实体的示例交互流程图。下面参考图2所示的示例交互流程图简要描述应用运行环境检测系统100的工作原理。
在图2所示的安全性检测系统100中,应用管理服务器110被配置成从用于运行目标应用的目标设备获取基于可信执行环境得到的安检信息包,其中所述安检信息包包括安全特征信息和针对所述安全特征信息的第一数字签名,所述安全特征信息包括在可信执行环境下收集的目标设备的设备状态信息和设备标识相关信息。在一些实施例中,应用管理服务器110所获取的安检信息包可以经过适当数据处理,形成用户信息数据流水,并将其写入中转消息队列,该消息队列可以供其他服务器或其他设备读取。
如图2所示,应用管理服务器110可以通过下述方式触发根据本公开一些实施例的应用运行环境检测方法的实施过程,即触发安检信息包的获取动作:实时监测终端设备150(即目标设备)中目标应用的运行状态(是否正在启动,或目标应用运行中用户是否正在发起预定操作,例如资源相关的操作,如转账、支付等)。这样,响应于目标应用正在启动或用户正在发起预定操作,安全性检测系统100可以启动应用运行环境检测过程。可选地,应用管理服务器110也可以通过从终端设备150接收应用运行环境(或目标设备)安全性检测请求来触发安全性检测过程,即响应于从终端设备150接收到的目标应用运行环境检测请求,获取相应的安检信息包。在一些实施例中,目标应用运行环境检测请求也可以通过目标应用的启动或其中进行的预定操作来触发。
在图2所示的安全性检测系统100中,签名验证服务器120被配置成根据设备标识相关信息,验证第一数字签名。示例性地,如图2所示,签名验证服务器120可以直接从应用管理服务器110接收其所获取的安检信息包或包括这些信息的请求数据流水;或者,签名验证服务器120可以从中转消息队列中读取相关信息的数据流水,来获得安检信息包。
在图2所示的应用运行环境检测系统100中,安全检测服务器130被配置成响应于第一数字签名被验证通过,基于所述安全特征信息确定目标应用运行环境的安全性。在一些实施例中,如图2所示,安全检测服务器130可以从签名验证服务器120接收第一数字签名的签名验证结果和安检信息包,并响应于验证通过(即第一数字签名是合法有效的)而基于安全特征信息确定目标应用运行环境(即目标设备)的安全性或可信度。可选地,安全检测服务器130可以在运行环境安全性检测完成之后,向终端设备150返回安全性确定结果或直接发送基于该结果确定的针对目标应用的操作指令,以供用户了解目标设备的是否安全可信以及针对可信与否的不同情况如何对目标设备中的目标应用采取对应措施。例如,若目标设备被检测为不安全,可以禁止或终止其中目标应用的运行或启动过程,或者禁止或终止相关的预定操作;否则允许目标应用正常运行。
应理解,虽然在本文中,应用管理服务器110、签名验证服务器120以及安全检测服务器130与终端设备150被示出和描述为分离的结构,但它们也可以是同一计算设备的不同组成部分,其中应用管理服务器110、签名验证服务器120以及安全检测服务器130可以提供后台计算功能,而终端设备150可以提供与用户进行交互的前台功能,例如通过终端应用接收用户输入及向用户提供输出。具体地,在一些实施例中,如图2所示,终端设备150可以向应用管理服务器110实时发送用户针对目标应用启动操作或在目标应用运行期间的用户执行的预定事件(例如高安全性要求的转账、支付)以实现应用管理服务器110对的终端设备150(即目标设备)的运行监测,以触发目标设备(即目标应用运行环境)的安全性检测。或者可选地,用户也可以主动提出目标设备的安全性检测请求(未示出),并通过终端设备150发送至应用管理服务器110以触发后续过程;应用管理服务器110、签名验证服务器120或安全检测服务器130可以经由终端设备150向应用管理员或用户展示安全性检测进程和结果。
图1和图2分别示出的根据本公开一些实施例的方法的实施环境和交互流程图仅仅是示意性的,根据本申请的应用运行环境检测方法并不限于所示出的示例实施环境和交互流程。根据本申请一些实施例的应用运行环境检测方法的所有步骤不仅限于图1和2所示的在服务器侧实现,而是也可以在终端设备侧实现,或者也可以在终端设备侧和服务器侧共同实现。
图3示意性示出了根据本申请一些实施例的应用运行环境检测方法的流程图。在一些实施例中,如图2所示,根据本申请一些实施例的应用运行环境检测方法执行主体可以是一个或多个服务器110-130。
如图3所示,根据本申请一些实施例的应用运行环境检测方法可以包括以下步骤:S310,安检信息包获取步骤;S320,第一数字签名验证步骤;以及S330,运行环境安全性确定步骤。下面详细描述步骤S310-S330。
在S310(安检信息包获取步骤)处,从用于运行目标应用的目标设备获取基于可信执行环境得到的安检信息包。其中所述安检信息包包括安全特征信息和针对所述安全特征信息的第一数字签名,所述安全特征信息包括在可信执行环境下收集的目标设备的设备状态信息和设备标识相关信息。
在本文中,目标设备是指目标应用在其中运行的设备,即目标应用的运行设备或运行环境;而本申请的目的就是检测目标应用的运行环境(即目标设备)的安全性或可信度,因此,在本申请一些实施例中,目标应用的运行环境检测也可以表示为目标应用的运行环境安全性检测或目标设备的安全性检测。在本申请一些实施例中,术语“应用运行环境检测”与“应用运行环境安全性检测”的含义是相同的,二者可互换地使用。
目标设备可以是各种类型的计算设备,例如台式计算机、手机、平板计算机、PDA等等。基于本申请的构思,目标设备安全性检测本质上是针对包括用于反映目标设备的设备完整性设备状态信息的安全特征信息的检测,其包括对各种安全特征信息(例如设备状态信息)是否正常或是否合法有效的检测。这样,在实施目标应用的运行环境安全性检测之前,服务器需要从目标设备获取到目标设备的安全特征信息。另外,为了保证安全特征信息的真实性、完整性以及传输的安全性,还需要得到针对安全特征信息的第一数字签名以供服务器验证。因此,服务器首先要从目标设备获取的是由安全特征信息和第一数字签名构成的安检信息包。
如上文所述的安检信息包可以包括用于目标应用的运行环境安全性检测的所有信息的集合,即安全特征信息和针对安全特征信息的第一数字签名。其中,安全特征信息是指反映或标示目标应用的运行环境的安全性或可信度的(关于目标设备的)信息,例如可以包括目标设备的设备状态信息、设备标识相关信息;可选地还可以包括目标设备中安装的目标应用的版本信息、针对目标应用的第二数字签名相关信息;此外,还可以包括目标设备中运行的用于获取各种安全特征信息的预定的系统应用(例如用于获取系统信息的应用或服务)版本信息和预定的可信应用(即在可信执行环境下运行的应用)的版本信息。
在一些实施例中,用于运行目标应用的目标设备的安全性检测事实上主要是针对目标设备完整性检测。因此,安全特征信息中可以包括设备状态信息。在本文中设备状态信息也可以称为设备完整性信息,尤其是与设备启动和运行相关软硬件(例如操作系统)是否被修改或解锁,例如可以包括软硬件系统控制权限(Root权限)、基本输入输出系统(BIOS)、系统引导程序(Boot Loader)等设备运行必需的关键模块是否被非法修改或解锁、设备系统中是否存在Root工具或Hook工具等信息。一般地,目标应用运行的目标设备(即运行环境)是否安全或可信在很大程度上取决于目标设备的软硬件系统是否存在漏洞、是否存在被恶意攻击的风险,而这些正是上述设备状态信息中所包含的内容。例如在使用Android操作系统的移动终端中,如果Android系统的引导加载程序Boot Loader被非法修改或解锁,则运行在该移动终端上的各种应用(例如手机APP)显然将会面临被非法侵入、修改、破解等危险,因此,设备状态信息是进行目标设备安全性检测过程中需要检测的重要信息。
此外,目标应用开发者(例如游戏开发者)可以通过获取和检测运行目标应用(例如游戏)的目标设备的设备状态信息(或设备完整性信息),即识别目标设备(例如手机设备)的操作系统内核是否被解锁来识别非认证目标设备,进而识别使用这样的手机的非法用户在玩游戏过程中的外挂和刷资源等行为,从而促进游戏的公平性并进一步提升普通正常玩家的游戏体验。
在一些实施例中,设备标识相关信息可以用于后续的第一签名验证步骤(S320),具体用于获取第一数字签名的验签密钥(例如公钥)。例如,服务器可以基于设备标识相关信息从服务器的数据库中获得预先存储的与目标设备中可信执行环境中预存的签名密钥(例如私钥)对应的验签密钥,从而实现第一数字签名的验证。因而设备标识相关信息是安检信息包中必不可少的组成部分。根据目标设备中针对安全特征信息的第一数字签名的不同方式,设备标识相关信息也可以包含不同的信息,因为第一数字签名的签名密钥和验签密钥对(例如公私钥对)对应于设备标识相关信息。
在根据本申请一些实施例的目标应用运行环境检测过程中,安检信息包获取步骤可以通过以下两种方式发起:一是被动方式,即服务器(例如图1和2所示应用管理服务器110)被动地接收目标设备(例如图1和2所示的终端设备150)发送的安全性检测请求;该请求例如通过目标设备中安装的目标应用的启动或目标应用运行期间进行的预定操作(高安全性要求的敏感操作,如电子银行转账等)来触发;二是主动方式,即服务器主动向安装了目标应用的目标设备发送设备安全性检测指令。例如服务器为保证目标应用运行安全,可以周期性地向待检测目标设备发送安全性检测指令来触发安全性检测过程;可选地,服务器也可以实时监测目标设备中安装的目标应用的运行状况,并响应于预定条件(例如目标应用正在启动或用户正在发起预定操作)触发安全性检测过程。
基于本申请的构思,要想保证在目标设备中获取的安全特征信息中设备状态信息和设备标识相关信息的可靠性和真实性,需要在目标设备的可信执行环境下获取这些信息以及针对安全特征信息的第一数字签名,因为可信执行环境是目标设备中与普通环境隔离的相对安全的环境,其中的代码和数据一般情况下无法被外界破解、修改或破坏。
具体地,在一些实施例中,当目标设备的安全性检测过程被触发或发起之后,服务器可以通过实时地从目标设备接收相关信息的方式获取目标设备的安检信息包。可选地,服务器也可以预先定期从目标设备接收安检信息包(例如每次接收之后用新信息覆盖旧信息,从而使其不断更新,以保持相关信息的时效性),并在安全性检测过程被触发时直接从服务器本身获取预存的最新的安检信息包(包括安全特征信息及其第一数字签名),这样可以节约信息获取时间,提高安全性检测效率。
更具体地,服务器通过从目标设备接收安检信息包来获取到该安检信息包,因此,安检信息包中的信息收集、签名和打包步骤主要是在目标设备(即终端设备)侧完成的。目标设备可以通过下述方式得到安全特征信息:首先,为了保证信息安全可靠,可以预先设计能够在目标设备的可信执行环境中运行的可信应用,以作为目标设备的可信执行环境与普通环境(或非可信执行环境)之间的接口,并用于在可信执行环境中获取安全特征信息中包括的设备状态信息和设备标识相关信息以及针对安全特征信息的数字签名。其次,利用该可信应用在可信执行环境中收集设备标识相关信息(例如身份标识和/或类型标识)和设备状态信息,例如操作系统相关的启动引导程序(Boot Loader)是否被解锁的信息以及/或者操作系统内核根分区(boot)中的校验根分区(verify boot)中的信息。再次,构造安全特征信息,其中包括设备标识相关信息和设备状态信息。随后,在可信执行环境中,通过可信应用,利用可信执行环境中预存的或预置的签名密钥对安全特征信息进行数字签名操作以得到第一数字签名,其中用于对安全特征信息进行签名和验证的签名密钥和验签密钥(例如公私钥对)是预先确定的。最后,将安全特征信息和第一数字签名打包成安检信息包。
在S320(第一数字签名验证步骤)处,根据设备标识相关信息,验证第一数字签名。
基于本发明的构思,在从目标设备或终端设备获取或接收到安检信息包之后,需要先验证其中的第一数字签名以确定所获取的安全特征信息的真实性、完整性、可靠性,即确认该信息包中安全特征信息是否的确是关于当前目标设备(而非其他设备)的反映其安全性特征的信息。
一般地,数字签名机制可以基于公钥(非对称)加密体制并用于保护电子消息在网络的安全传输。整个数字签名过程可以包括两个步骤:签名(发送方的加密过程)和验证(接收方的解密过程)。在签名过程中,发送方将利用哈希函数(Hash)从待传输的消息(原文)生成第一摘要信息并使用签名密钥或签名私钥对第一摘要信息加密(密文),随后将密文与原文一起传送给接收方;在验证过程中,接收者首先使用同样的哈希函数从原文生成第二摘要信息,然后用签名公钥对接收到的密文进行解密得到第一摘要信息,最后比较第一摘要信息和第二摘要信息,如果相同,则可以确认所传输的消息是完整的且是由发送方发送的。数字签名有两种功效:一是能确定消息确实是由发送方签名并发送的,二是数字签名能确定消息的完整性。
关于签名算法或公钥加密算法,可以采用RSA 2048或4096,也可以使用ECC(Elliptic Curves Cryptography)、国密算法(SM2)等其他公钥加密算法。例如RSA(RonRivest,Adi Shamirh,LenAdleman)算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但想要对其乘积进行因式分解却极其困难。对称的加密算法,加密和解密都是使用的一套密钥,而非对称使用的是两套密钥。加密的密钥与解密的密钥不相同,使用私钥加密的内容,只能通过公钥来解密,使用公钥加密的内容,只能通过私钥来解密。
在一些实施例中,如上文所述,第一数字签名可以利用公钥(即非对称)加密算法来实现;与目标设备对应的公私钥对(即签名私钥和验签公钥)是预先生成的,其中验签公钥预存在例如设备生产商或可信第三方的服务器(如图1所示的签名验证服务器120)中,签名私钥预存在目标设备的可信执行环境的安全存储区域,因而,当签名验证服务器接收到第一数字签名时可以利用与预先存储的签名私钥对应的验签公钥对第一数字签名进行验证。例如,对每一个目标设备(例如手机设备)而言,在其被制造完成时都会与该设备对应(例如唯一对应(如与设备ID对应)或非唯一对应(如与设备型号对应)的签名公私钥对(例如可以利用公钥基础设施PKI申请签名公私钥对),其中公钥放在设备制造商或可信第三方处(例如存储在签名验证务器),而私钥在设备出厂时烧录进目标设备(例如手机设备)的TEE芯片的安全存储空间。TEE安全存储空间可以包括例如RPMB。RPMB(Replay ProtectedMemory Block)是在TEE中才能够安全访问到的重放保护存储块,用于存放一些重要的安全信息。
因为第一数字签名的签名密钥和验签密钥对(例如公私钥对)对应于设备标识相关信息,所以在验证第一数字签名之前,首先需要基于安检信息包中的设备标识相关信息,在服务器中找到预存的验签密钥或验签公钥,例如目标设备的设备身份标识或类型标识对应的公钥。
在S330(安全检测步骤)处,响应于第一数字签名被验证通过,基于所述安全特征信息确定所述目标设备的安全性。
根据本申请的构思,在第一数字签名被验证通过之后,表明安全特征信息是真实可靠的,但这些不足以证明目标应用的运行环境或目标设备的安全性和可信度,因为尚未检查或验证安检信息包中的安全特征信息(例如设备状态信息)。因而在签名验证通过之后,如S330所述,可以进一步验证安全特征信息中各种具体信息是否正常或合法有效,随后根据安全特征信息正常与否或有效与否最终确定目标应用的运行环境或目标设备是否处于安全状态。如图2所示,S330可以在图1所示的安全检测服务器130中执行。
在一些实施例中,在检测安全特征信息时,可以基于全部安全特征信息进行检测以确定运行环境的安全性,因为安全特征信息本身就是用于表征目标设备运行环境安全性的特征信息。可选地,由于安全特征信息中的设备标识相关信息已经在签名验证步骤S320中使用过,因而在S330中无需检测其是否正常,因而,也可以基于安全特征信息中的一部分是否正常来判断安全性,例如可以选取对目标应用运行环境(即目标设备)安全性判断影响较大的重要信息(例如设备状态信息)来确定应用环境的安全性。
在根据本申请一些实施例的应用运行环境检测方法中,首先通过利用可信执行环境TEE中的代码和数据一般无法被外界破解、修改和获取的特性,在用于运行目标应用的目标设备的TEE中,获取运行环境安全性检测所需的安检信息包中至少一部分安全特征信息(即目标设备的设备状态信息或设备完整性信息和设备标识相关信息),并且安检信息包中还包括对安全特征信息利用非对称加密算法得到的数字签名(即第一数字签名)。其中,在TEE中获取的至少一部分安全特征信息确保了信息的可靠性,从而杜绝了相关技术在普通环境(即非可信执行环境)中获取的信息可靠性难以保证的问题,而在TEE下获取的第一数字签名保证了用于检测运行环境安全性的安全特征信息的真实性和完整性,这样可以提升运行环境安全性检测准确性。其次,由于应用的运行环境安全性检测可以在服务器端(例如应用开发商、目标设备制造商、可信第三方中一个或多个提供的服务器)进行,从而与相关技术中在本地(即目标设备)进行安全性检测相比,有效防止了检测结果被修改的可能,从而进一步确保应用运行环境(即目标设备)的安全性或可信度检测结果的准确性;而安全性检测的准确性能够有效保证目标应用在安全运行环境下的安全运行,尤其是确保了某些对安全性要求较高的操作(例如手机银行转账)在安全环境下完成,降低了安全性风险,从而提高风控能力和精细度,更好地保护用户的信息安全和财产安全。 此外,根据本申请一些实施例的应用运行环境检测方法仅包括安检信息包的获取、第一数字签名的验证以及运行环境安全性确定三个步骤,检测过程相对简单且易于实现,与相关技术的繁琐复杂的检测过程相比,显著提高了工作效率。
图4示意性示出了根据本申请一些实施例的应用运行环境检测方法的流程图。
如图4所示,根据本申请一些实施例的应用运行环境检测方法可以包括下述步骤:
S410,获取目标设备的安检信息包,安检信息包包括安全特征信息和第一数字签名,安全特征信息包括设备标识相关信息和设备状态信息;
S420,根据设备标识相关信息,验证第一数字签名,以确定其是否验证通过;
S430,根据安全特征信息,确定目标应用的运行环境是否安全;
S440,响应于所述目标应用的运行环境被确定为安全,允许在目标设备上运行目标应用;
S450,响应于所述目标应用的运行环境被确定不安全或者所述第一数字签名未被验证通过,禁止目标应用的运行或与目标应用相关的预定操作。
如图4所示,步骤S410-S430分别与图3所示的步骤S310-S330基本相同,这里不再详细解释;而步骤S440和S450可以作为图3所示的方法的附加步骤,用于描述在运行环境安全性检测之后根据安全性检测结果来对目标应用采取的管理措施,以避免信息泄露和/或财产损失等安全性问题。
在一些实施例中,如S440所述,如果目标应用的运行环境被确定为安全,则说明目标设备中并不存在对目标应用产生安全性威胁的问题,因而可以允许目标应用在目标设备中运行以及相关操作,尤其是允许目标应用中的预定操作,例如涉及资源的操作,如转账、支付等。在计算机技术领域中,资源一般是指与现实世界中的实体资源相对应的虚拟资源,例如存储空间、计算能力、用于网络交易的资产(如现金、有价证券等)等。在一些实施例中,“涉及资源的操作”或“与资源相关的操作”可以指与可用于交易的资产相关的操作,例如电子银行或手机银行中的转账、支付等操作。
在一些实施例中,如S450所述,如果目标应用的运行环境被确定为不安全,则说明目标设备中存在安全问题(例如操作系统内核被解锁导致系统漏洞)造成目标应用无法安全运行。因此,在这种情况下可以禁止目标应用的运行,例如当目标应用正在运行(包括启动)时,立即终止运行。可选地,如S450所述,在目标应用的运行环境被确定为不安全时,也可以禁止与目标应用相关的预定操作,例如与涉及资源的敏感操作,如转账、支付等。
在一些实施例中,假如第一数字签名未被验证通过,表明安全特征信息并不可靠,从而证明目标应用所在的目标设备的软硬件系统(即目标应用的运行环境)是不安全的,可能出现异常或者受到中间人攻击。这时,由于已经确定目标设备是不安全的且安全特征信息是不可靠的,因而安全性检测可以结束,无需对安全特征信息进行进一步验证和检测。因此,如S450所述,在第一数字签名未被验证通过的情况下,也应当视为等同于目标应用的运行环境不安全,于是为了保护目标应用的运行安全,也应当禁止目标应用的运行或与目标应用相关的预定操作。
图5示意性示出了根据本申请一些实施例的图3所示的应用运行环境检测方法的各个步骤的示例流程。
如图5所示,图3所示的步骤S310(安检信息包获取步骤)可以包括步骤S310a-S310b。
在S310a处,从目标设备接收目标应用运行环境检测请求。
在一些实施例中,可以通过被动方式触发目标应用的运行环境安全性检测过程,即服务器(例如图1和2所示应用管理服务器110)被动地接收目标设备(例如图1和2所示的终端设备150)发送的安全性检测请求,并响应于该请求来发起安检信息包的获取,从而触发安全性检测的整个过程。
在一些实施例中,从目标设备接收设备安全性检测请求包括下述步骤中至少一个:从目标设备接收周期性触发的设备安全性检测请求;从目标设备接收响应于目标应用的启动触发的设备安全性检测请求;从目标设备接收响应于与目标应用相关的预定操作触发的设备安全性检测请求。如上所述,目标设备发出的安全性检测请求可以基于其中所安装的目标应用的启动来触发以保证目标应用的安全运行。或者,安全性检测请求也可以基于与目标应用相关的预定操作(例如目标应用运行期间的用户发起的预定操作)来触发以确保预定操作的安全,该预定操作例如可以包括与资源(现金、基金、证券等)相关的事件,如转账、支付、银行信息查询等。或者也可以每隔预定时间段(预定时间段可以为1分钟、5分钟、10分钟、30分钟或1小时等)触发安全性检测请求以进一步确保目标应用运行的安全性(例如目标应用运行期间每隔较短时间段发出运行环境安全性检测请求以实现安全性检测,这样可以有助于保证目标应用实时安全运行)。上述三种触发方式可以单独执行或者也可以相互组合地执行,从而全方位、多角度地确保目标应用在目标设备上运行的安全性。
在S310b处,响应于设备安全性检测请求,向目标设备发送一次性预定随机数。
在本文中,一次性预定随机数是指一次性使用的数字Nonce(Number used once或Number once的缩写),在密码学中Nonce是一个只被使用一次的任意或非重复的随机数值(或伪随机数值),在加密技术中的初始向量和加密散列函数都发挥着重要作用,在各类验证协议的通信应用中确保验证信息不被重复使用以对抗重放攻击(Replay Attack)。在信息安全中,Nonce是一个在加密通信只能使用一次的数字。
在S310c处,从目标设备接收目标设备的安检信息包,其中安全特征信息进一步包括一次性预定随机数。
如上所述,一次性预定随机数的目的是对抗重放攻击。因此,在目标设备接收到一次性预定随机数之后将其作为安检信息包中的安全特征信息的一部分,这样由于预定的一次性随机数的一次性(非重复特性,例如每次发送的随机数只使用一次)的特点,使得每次用于检测目标应用运行环境的安检信息包中信息都不相同,因而即使攻击者窃取了目标设备某一次传输给服务器的安检信息包,也无法冒充目标设备进行下一次安全性检测。因此,安检信息包中加入了一次性预定随机数之后,可以通过避免重放攻击进一步确保通信安全。
在一些实施例中,也可以通过被动方式触发目标应用的运行环境安全性检测过程,例如步骤S310也可以包括:向目标设备发送设备安全性检测指令,所述设备安全性检测指令包括一次性预定随机数;从目标设备获取目标设备的安检信息包,其中安全特征信息进一步包括所述一次性预定随机数。
如图5所示,图3所示的步骤S320(第一数字签名验证步骤)可以包括以下步骤:
S320a,根据设备标识相关信息,获取预存的用于第一数字签名的验签密钥,其中设备标识相关信息包括设备型号信息和设备身份标识信息中至少一个;
S320b,利用所述验签密钥验证第一数字签名。
如上文所述,针对安全特征信息的第一数字签名的签名密钥(例如签名私钥)和验签密钥(例如验签公钥)是与设备标识相关信息对应的,其可以在目标设备制造时分别放置于目标设备的可信执行环境的安全存储区和设备生产商或可信第三方的服务器(例如图2所示签名验证服务器120)中。因此,在验证第一数字签名之前,服务器首先需要基于安检信息包中的设备标识相关信息,在服务器的数据库中找到预存的、与之对应的验签密钥。一般地,第一数字签名可以基于公钥加密算法实现,因此签名密钥也可以称为签名私钥,验签密钥也可以称为验签公钥;可选地,第一数字签名也可以基于对称加密算法实现,这时签名密钥和验签密钥是相同的。
在一些实施例中,设备标识相关信息可以包括设备型号信息。当设备标识相关信息包括设备型号(或类型)信息时,目标设备的安全特征信息的第一数字签名的签名密钥和验签密钥(即签名-验签密钥对,例如公私钥对)可以与设备型号对应,即一机型一密。这样可以减少签名-验签密钥对的数量,避免了大量密钥对的生成和存储带来的网络开销和存储空间开销。
在一些实施例中,设备标识相关信息可以包括设备身份标识信息,例如设备ID,即唯一标识该设备的一串字符(即序列号)。这时,用于第一数字签名的签名-验签密钥对(其中签名密钥和验签密钥分别预存在目标设备和服务器中)可以与设备身份标识信息一一对应,即一机一密。与一机型一密相比,一机一密的签名方案的优势在于防止了一旦某设备密钥泄露,就会导致属于相同设备型号的所有设备的签名密钥的泄露,造成巨大信息安全风险。例如,在一机一密方案中,由于签名密钥与设备的唯一对应性,即使某个目标设备的TEE被攻破,其中预存的签名密钥(例如签名私钥)泄漏,也不会影响其他同型号或同机型设备,具有良好的安全性。
可选地,设备标识相关信息还可以包括设备厂商标识信息,用于第一数字签名的一厂商一密签名方案,或者可以包括设备型号信息和可信应用版本信息,用于第一数字签名的一机型多密签名方案。
如图5所示,图3所示的步骤S330(安全性检测步骤)可以包括以下步骤:
S330a,响应于第一数字签名被验证通过,检测安全特征信息中至少一部分信息是否正常,所述至少一部分信息包括目标设备的设备状态信息;
S330b,响应于安全特征信息中至少一部分信息被检测为正常,目标应用运行环境被确定为安全。
在一些实施例中,在检测安全特征信息时,可以基于全部安全特征信息进行检测以确定运行环境的安全性,因为安全特征信息本身就是用于表征目标设备运行环境安全性的特征信息。可选地,由于安全特征信息中的设备标识相关信息已经在签名验证步骤S320中使用过,因而在S330中无需检测其是否正常,因而,如S330a所示,也可以基于安全特征信息中的一部分是否正常来判断安全性,例如可以选取对目标应用运行环境(即目标设备)安全性判断影响较大的重要信息来确定应用环境的安全性。安全特征信息中的这一部分重要信息可以例如至少包括设备状态信息,因为它包括对目标应用运行环境安全性而言至关重要的目标设备完整性的信息,即与设备启动和运行相关的软硬件(例如操作系统)的当前状态,例如系统引导程序(Boot Loader)等设备运行必需的关键模块是否被非法修改或解锁或是否包括Hook工具和Root工具。(目标设备的系统引导加载器是否被解锁或是否包括Hook工具和Root工具、验证引导信息是否异常)
在一些实施例中,步骤S330a中的“安全特征信息中至少一部分是否正常”可以理解为相应信息是否被修改、破解、替换或存在这种可能。例如,当设备状态信息中显示系统引导程序被修改或解锁时,可以认为该设备状态信息是异常的或不正常的;又如,例如从目标设备获取的目标应用的版本信息如果与服务器中的数据不一致,说明目标设备中目标应用可能被替换或修改,可以认为目标应用版本信息是不正常的。上述安全特征信息的异常或不正常显然意味着目标设备存在安全隐患,因此可以将目标应用的运行环境确定为不安全。
在一些实施例中,可以通过依次检测安检信息包中的各种安全特征信息是否正常来确定目标应用运行环境的安全性。例如,当安全特征信息中除了设备标识相关信息之外的其他所有信息,即设备状态信息、一次性预定随机数、目标应用版本信息、第二数字签名相关信息、系统应用版本信息、可信应用版本信息都正常或合法有效,则可以认为目标设备是安全可靠的;否则其中至少一个出现异常,可以认为目标设备不安全。
图6示意性示出了根据本申请一些实施例的安检信息包的示例结构框图。如图6所示,安检信息包600可以包括安全特征信息610和(针对安全特征信息610的)第一数字签名620;安全特征信息610可以包括一次性预定随机数611、目标应用版本信息612、(针对目标应用的)第二数字签名相关信息613、(预定的)系统应用版本信息614、设备状态信息615、设备标识相关信息616、(预定的)可信应用信息617。
在一些实施例中,安检信息包600中的各种信息可以在目标设备端获取并通过网络传送至服务器进行检测。目标设备端可以通过下述方式获取安检信息包600:首先,为保证安检信息包的安全可靠,可以预先设计能够在目标设备的可信执行环境中运行的预定的可信应用,以作为目标设备的可信执行环境与普通环境(或非可信执行环境)之间的接口,并用于在可信执行环境中获取安检信息包600中设备状态信息615和设备标识相关信息616、可信应用(即自身)的版本信息617以及针对安全特征信息的第一数字签名620;并且,在目标设备中预先设计预定的系统应用或系统服务,用于在目标设备中运行以获取目标应用版本信息612、第二数字签名相关信息613以及该系统本身的版本信息613。
在一些实施例中,安全特征信息610可以仅包括设备状态信息615和设备标识相关信息616,其中前者用于设备完整性检测,后者用于第一数字签名验证。可选地,安全特征信息610可以进一步包括下述中至少一个:一次性预定随机数611,用于对抗重放攻击;目标应用版本信息612和第二数字签名相关信息613,用于验明目标应用的真实身份(是否为应用提供商发布的官方版本)、检测目标应用是否被修改、替换、假冒等;(预定的)系统应用版本信息614和(预定的)可信应用版本信息617,用于防止降级攻击。
目标应用的第二数字签名相关信息可以包括目标应用的第二数字签名。第二数字签名是目标应用的开发者(例如APP开发商)对其开发的目标应用的签名。以移动终端的应用,即APP为例,在手机操作系统(例如Android操作系统)的安全机制和生态中,APP签名(即第二数字签名)占据很重要的位置。在目标应用生成、发布和安装过程中,目标应用的第二数字签名的签名和验证过程如下:应用开发者发布自己的目标应用时需要生成自己的签名密钥对(即公钥签名算法的公私钥对),使用签名私钥对目标应用进行签名操作得到第二数字签名;随后将第二数字签名和验签公钥附加到目标应用安装包中,把签名私钥(即签名密钥)安全地保存好。在目标应用在目标设备上安装时,操作系统会使用目标应用安装包中附带的公钥验证目标应用的第二数字签名是否合法,以确认APP完整性和真实性。
在根据本申请一些实施例的应用运行环境检测方法中,目标应用的第二数字签名可以用于运行环境的安全检测,具体用于检测目标设备上安装的目标应用是否被修改或替换。具体地,应用开发者可以在目标应用的签名操作之后,将第二数字签名放入应用安装包的同时也存储在应用开发者自身的服务器或可信第三方平台的服务器(例如图1所示签名验证服务器120)中以供后续验证签名时使用。这样,服务器验证第二数字签名时可以将接收到的第二数字签名与预存的原始第二数字签名进行比对来检测第二数字签名是否正常,如果二者匹配,则正常,否则不正常。
在一些实施例中,目标应用的第二数字签名相关信息也可以包括第二数字签名的哈希摘要。一般地,目标应用的第二数字签名可能很长,占用较大存储空间,不便放入安检信息包中,这时可以使用哈希算法(例如sha1,md5等)计算第二数字签名的哈希摘要,以替代签名本身来作为安全特征信息的一部分放入安检信息包以用于安全检测。与原始的签名相比,第二数字签名的哈希摘要由于其长度固定(无论原文长度如何),因而可以显著减小字节数,从而显著减少了安检信息包所占用的存储空间以,明显提升了网络传输速度,节约了网络资源和存储资源。
降级攻击(Downgrade attack)是一种对计算机系统或通讯协议的攻击。在降级攻击中,攻击者故意使系统放弃新式、安全性高的工作方式,反而使用为向下兼容而准备的老式、安全性差的工作方式。预定的系统应用和可信应用的开发者可能无法保证发布的第一版本就是完全没漏洞的;因此,当某版本的系统应用或者可信应用出现漏洞时,可以通过版本升级的方式去解决。 例如,预定的可信应用的初始发布版本可以是V1,之后发现V1有安全问题或者其他运行问题,就可以修改更新其程序克服相应的安全漏洞和/或运行问题以将其版本从V1升级到V2;升级完成之后,可以将原版本V1当做非法版本。这样可以克服和避免先前V1版本的漏洞造成的安全性风险,即防止攻击者利用低版本漏洞发起的降级攻击。类似地,目标应用版本信息也可以用于防止降级攻击。
图7A和图7B分别示意性示出了根据本申请一些实施例的图3所示的应用运行环境检测方法的第一数字签名验证步骤的示例流程和原理图。
在关于第一数字签名的一机一密签名方案中,设备身份标识信息与签名密钥一一对应,但设备身份标识信息如果以明文传输可能造成隐私泄露,因此可以考虑对其进行加密处理。然而在设备身份标识信息加密之后,由于服务器进行签名验证时无法直接得到身份标识信息,因而设备标识相关信息中除了包括关于设备身份标识的加密信息之外,还需要进一步包括设备型号信息以用于在服务器解密得到设备身份标识时获取解密密钥。
于是,在一些实施例中,当设备标识相关信息包括设备型号信息和关于设备身份标识的加密信息时,如图7所示,图3所示的步骤S320(第一数字签名验证步骤)可以包括:
S710,根据设备信号信息,获取预存的用于关于设备身份标识的加密信息的解密密钥;
S720,利用解密密钥对所述加密信息进行解密,以获取设备身份标识信息;
S730,根据设备身份标识信息,获取用于第一数字签名的验签密钥;
S740,利用验签密钥验证第一数字签名。
在图7A所示步骤S710-740中,实际上经过了两次解密处理来实现签名验证:一是设备身份标识加密信息的解密,二是第一数字签名的解密(即验证)。下面参照图7B详细介绍图7A的各个步骤以及第一数字整个签名的整个签名和验证过程。
为描述方便清楚起见,首先对图7B的附图标记进行说明。如7B所示,ID表示设备身份标识信息,ID-ENC表示关于设备身份标识的加密信息,MOD表示设备型号信息,SE-FEA表示安全特征信息,F-SIGN表示针对SE-FEA的第一数字签名,K1和K2分别表示F-SIGN的签名密钥和验签密钥(即在公钥加密算法中的私钥和公钥),K0表示ID-ENC的加密和解密密钥(假设使用对称加密算法)。
如图7B所示,位于上方的(a)部分表示终端设备(即目标设备150)侧执行的第一数字签名的签名过程;位于下方的(b)部分表示服务器侧(即签名验证服务器120)执行的第一数字签名验证过程。如图7B中(a)部分所示,在目标设备150的可信执行环境的安全存储区,即TEE安全存储区,存储了与设备型号信息MOD对应的用于加密和解密ID-ENC的密钥K0以及与设备身份标识信息ID对应的签名密钥K1。这里K0和K1是事先确定的密钥,例如在目标设备制造时就确定了并预存在目标设备的TEE安全存储区,相应地,K0和与K1和ID对应的验签密钥K2也是预先确定的并被预先存储在签名服务器120的数据库中(参见图7B的(b)部分)。
如图7B的(a)部分所示,在目标设备侧,可以利用TEE安全存储区中预存的K0加密ID以得到关于设备身份标识的加密信息ID-ENC;并且可以利用TEE安全存储中预存的签名密钥K1对安全特征信息SE-FEA进行签名操作以得到第一数字签名F-SIGN。随后,将包括ID-ENC和MOD(以及其他信息,如设备状态信息等)的SE-FEA以及F-SIGN打包成安检信息包发送至服务器侧以供后续进行签名验证和安全检测。
可以理解的是,关于设备身份标识的加密信息的加密方式可以采用对称加密算法,可以视具体情况而定。在一些实施例中,可以采用预定的高级加密标准(AdvancedEncryption Standard,AES)算法;可选地,也可以采用其他对称加密算法,例如SM1;进一步可选地,也可以采用非对称加密算法,例如RSA,ECC,SM2。
在一些实施例中,关于设备身份标识的加密可以利用加随机盐加密的方式进行,即在对设备的ID序列号加密之前在该待加密序列号之前或之后添加随机盐得到加盐的字符串,随后对加盐的字符串进行加密,得到关于设备身份标识的加密信息。这样可以提高加密信息被破解的难度,因为攻击者并不知道随机盐的位数以及在加盐字符串中位置,因此与普通加密相比,很难从加密信息得到原始设备身份标识,即ID序列号。在该实施例中,随机盐是指在加密之前随机产生的一个字符串,即随机字符串,其可以作为在ID序列号的前缀或后缀进行放置;为了服务器能够对关于设备身份标识的加密信息进行解密,上述加密信息可以事先(例如在目标设备出厂时)存储在目标设备的可信执行环境的安全存储区域中,且服务器至少需要事先根据设备类型或型号信息获取加密信息的解密密钥、随机盐的放置位置(即前缀还是后缀)和位数。
例如,假设对设备型号为RY9X的手机而言,事先约定与设备型号RY9X对应的如下信息(预先存储在签名验证服务器中):随机盐位置为前缀,且位数为5位,对称加密密钥为K。在对ID号为12345的RY9X型设备的加密过程中,首先生成5位随机盐abcde,随后依据预先确定的前缀位置与ID一起形成加盐字符串abcde12345,之后利用对称密钥K对其进行加密,得到关于设备身份标识的加密信息Device-ID-Enc;在服务器从安检信息包中得到设备标识相关信息(包括RY9X和Device-ID-Enc)之后的解密过程中,首先依据设备型号信息RY9X获得预存的加密密钥K以及随机盐位置(前缀)和位数(5位),然后对Device-ID-Enc进行解密,得到加盐字符串abcde12345,最后根据随机位置和位数信息,可得前5位abcde是随机盐,从而目标设备的ID为12345。
如图7B的(b)部分所示,在服务器侧的签名验证过程如下:首先,如图7A所示的步骤S710所示,利用接收到的设备型号信息MOD从服务器的数据库中查找预存的与MOD对应的关于设备身份标识加密信息ID-ENC的解密密钥K0;随后,如图7A的S720所示,利用查找到的K0对接收到ID-ENC进行解密,得到设备身份标识信息ID;之后,如图7A的S730所示,利用解密得到的ID从服务器的数据库中查找预存的与ID对应的关于第一数字签名F-SIGN的验签密钥K2;最后利用查找到的K2和接收到的安全特征信息SE-FEA对接收到的第一数字签名F-SIGN进行签名验证,从而得到验证结果。
在图7A和7B所示的实施例中,使用的仍然是一机一密签名方案,签名密钥仍然与设备身份标识信息一一对应,降低了单个设备密钥泄漏带来的安全风险;同时由于对设备身份标识信息进行了加密处理,使其匿名化,从而在降低信息泄露风险的同时有效保护了敏感信息和私有信息的安全。
图8示意性示出了根据本申请一些实施例的图3所示的应用运行环境检测方法的安全性检测步骤(S330)的示例流程。
如图8所示,当安全特征信息包括一次性预定随机数、设备状态信息、目标应用版本信息、第二数字签名相关信息、预定的可信应用版本信息和预定的系统应用版本信息时,图3所示的安全性检测步骤S330(基于安全特征信息确定目标应用运行环境的安全性)可以包括S810-S880。
在步骤S810中,检测一次性预定随机数是否正常。在一些实施例中,可以将目标设备的安检信息包中的一次性预定随机数与服务器中存储的发送给目标设备之前的原始一次性预定随机数进行比较,如果二者匹配则可以认为正常;否则存在异常,表明安检信息包可能存在问题,例如在通信过程中被攻击者修改或者并非目标设备发送的信息等等。
在步骤S820中,响应于一次性预定随机数被检测为异常,检测设备状态信息是否正常。在一些实施例中,当设备状态信息中显示操作系统相关的软硬件,例如系统引导程序,被修改或解锁或替换时,可以认为存在异常,目标应用运行在这样的环境下必然存在较大安全风险;如果不存在上述情况,则可以认为设备状态信息正常。
在步骤S830中,响应于设备状态信息被检测为正常,检测目标应用的版本信息是否正常。例如,可以将安检信息包中目标应用版本信息与服务器中存储的官方版本信息进行比对,如果二者一致,则正常;若不一致,则存在异常,说明目标设备中目标应用可能被替换或修改,运行环境存在安全风险。
在步骤S840中,响应于目标应用版本信息被检测为正常,检测目标应用的第二数字签名相关信息是否正常。在一些实施例中,第二数字签名相关信息可以包括目标应用的第二数字签名或第二数字签名的哈希摘要,因此可以通过比对服务器存储的原始的第二数字签名或第二数字签名的哈希摘要与接收到的目标设备发送的相应数据来确定正常与否。目标应用的第二数字签名相关信息正常意味着目标应用的完整性、真实性不存在问题,否则可能存在完整性和真实性问题。
在步骤S850中,响应于目标应用的第二数字签名相关信息被检测为正常,检测预定的可信应用的版本信息是否正常。为防止降级攻击,可以在安全特征信息中加入用于获取设备状态信息和设备标识相关信息的预定的可信应用的版本信息。在一些实施例中,可以通过将安检信息包中的可信应用版本信息与预先存储在服务器中相应信息进行比较,如果一致则说明正常;否则不正常,存在降级攻击风险。
在步骤S860中,响应于预定的可信应用的版本信息被检测为正常,检测预定的系统应用的版本信息是否正常。为防止降级攻击,可以在安全特征信息中加入用于获取目标应用版本信息和第二数字签名相关信息的预定的系统应用的版本信息。在一些实施例中,可以通过将安检信息包中的系统应用版本信息与预先存储在服务器中相应信息进行比较,如果一致则说明正常;否则不正常,存在降级攻击风险。
在步骤S870中,响应于预定的系统应用的版本信息被检测为正常,目标应用的运行环境被确定为安全。在一些实施例中,经过对安检信息包中所有安全特征信息的检测,如果发现这些信息都是正常的,说明目标应用的运行环境(即目标应用所在的目标设备)是安全可信的。这时可以允许目标应用在目标设备中运行或进一步地允许用户在目标应用中的各种操作,尤其可以允许敏感操作,如转账等。
在步骤S880中,响应于一次性预定随机数、设备状态信息、目标应用版本信息、第二数字签名相关信息、可信应用版本信息、系统应用版本信息中至少一个存在异常,目标应用的运行环境被确定为不安全。在一些实施例中,若安全特征信息中所包含的各种类型信息中至少一种信息出现异常,则可能预示目标设备(即目标应用运行环境)存在安全性风险,不宜运行目标应用或者不宜进行如涉及资源的敏感操作。
图9示出根据本申请一些实施例的应用运行环境检测方法的示例应用场景900。图9所示的应用场景900为涉及移动终端的应用场景,其中的目标应用被具体化为手机APP921,相应的目标设备被具体化为手机设备920,目标应用APP 921所在手机设备920通过与安全性检测平台910的交互实现目标应用(即手机APP)运行环境的安全性检测。如图9所示,安全性检测平台910可以包括检测服务器911和验签服务器912;手机设备920可以包括作为目标应用的APP 921、系统应用922和可信应用923,其中系统应用922表示用于从手机设备920获得部分安全特征信息SE-FEA(例如手机设备920中安装的APP版本信息APP-VER和/或APP的第二数字签名相关信息S-SIGN)的预定系统服务程序(或预定系统工具),可信应用923表示用于在手机设备920的可信执行环境TEE中运行的、用于获取部分安全特征信息SE-FEA(例如手机设备920的设备状态信息SATUS和设备标识相关信息IDE)的预定可信应用程序。
安全性检测平台910可以对应于对应于图1所示的安全性检测系统100(即应用管理服务器110、签名验证服务器120以及安全检测服务器130的组合),其中检测服务器911可以对应于应用管理服务器110和安全检测服务器130的组合;验签服务器912可以对应于签名验证服务器120。手机设备920可以对应于图1和图2中的终端设备150。图9所示的检测服务器911可以是APP 921的开发者或开发商(即手机APP开发商)的服务器,验签服务器912可以是手机设备920的制造商(即手机制造商)的服务器或者也可以为可信第三方的服务器。
为描述方便起见,图9中检测服务器911和验签服务器912被示出为逻辑分离的实体,但是它们在一定条件下也可以是同一服务器的不同组成部分。例如,检测服务器911和验签服务器912的功能也可以集成在同一服务器中,具备集成功能的服务器可以是手机开发者和手机APP开发者共同信任的第三方提供的服务器。
如图9所示,在示例应用场景900中,根据本申请一些实施例的检测目标应用(例如手机APP 921)的运行环境(例如手机设备920)安全性的方法包括以下三个部分:安检信息包SE-PAC获取过程(步骤931-940)、第一数字签名F-SIGN验证过程(步骤941-943)以及安全特征信息SE-FEA检测过程(步骤944-946),其分别对应于图3所示的三个步骤S310-S330。
如图9所示,安检信息包SE-PAC获取过程包括:
步骤931:手机设备920通过APP 921向检测服务器911发送关于运行环境(即手机设备920)安全性的检测请求;
步骤932:检测服务器911响应于检测请求,向手机设备920的APP 921返回一次性预定随机数Nonce;
步骤933:手机设备920的APP 921将Nonce和安全性检测指令发送至系统应用922以指示其收集安全特征;
步骤934:手机设备920的系统应用922响应于安全性检测指令收集APP版本信息APP-VER、APP的第二数字签名相关信息S-SIGN以及系统应用版本信息SA-VER;
步骤935;系统应用922将APP-VER、S-SIGN、SA-VER连同Nonce发送至可信应用923;
步骤936:可信应用923响应于接收到的APP-VER、S-SIGN、SA-VER连同Nonce,在目标设备920的可信执行环境TEE中收集设备状态信息STA、设备标识相关信息IDE以及可信应用版本信息TA-VER,并基于接收到的信息和自身收集的信息构造安全特征信息SE-FEA;
步骤937:可信应用923利用预存的签名密钥对SE-FEA执行签名操作以得到第一数字签名F-SIGN;
步骤938:可信应用923将安全特征信息SE-FEA和第一数字签名F-SIGN打包成安检信息包SE-PAC;
步骤939:可信应用923将安检信息包SE-PAC发送至APP 921;
步骤940:APP 921将安检信息包SE-PAC返回到检测服务器911以供签名验证和安全检测,至此安检信息包获取过程结束。
如图9所示,安检信息包SE-PAC获取过程(对应于步骤931-940)主要在手机设备920侧完成的。 这里以安卓(Android)操作系统的手机设备920为例简要介绍图9的上述步骤931-936的具体实现过程(即安全特征信息的收集过程)。要收集的安全特征信息SE-FEA包括:S-SIGN、APP-VER、SA-VER、STA、TA-VER、IDE中的至少一个。
首先,S-SIGN、APP-VER、SA-VER通过手机设备920的普通环境(非可信执行环境)中运行的SA守护进程获取;其获取方式是:在APP调用SA时,可以使用进程间通信,此时SA守护进程就能使用getCallingPid获取到调用者的进程号,然后即可进一步获取APP的S-SIGN、APP-VER等信息,而SA-VER是SA自身的版本号,直接获取即可。其次STA、TA-VER、IDE可以通过TEE环境中运行的可信应用TA自身获取,比如在TEE中,可以获取到系统的BootLoader是否解锁的信息,也可同时放入boot分区的verify boot的信息等,将其放入STA中;并获取到设备标识相关信息IDE以及TA自身的版本信息TA-VER。
如图9所示,第一数字签名F-SIGN验证过程可以包括:
步骤941:检测服务器911在接收到安检信息包SE-PAC之后,将其发送至验签服务器以供其进行验签操作;
步骤942:验签服务器912接收到安检信息包SE-PAC之后,利用预存的验签密钥(即公钥)验证第一数字签名F-SIGN以得到验签结果;
步骤943:验签服务器912将验签结果返回到检测服务器911,至此第一数字签名的验签过程结束。
如图9所示,上述验签过程主要在验签服务器912侧实现,其中签名验证步骤S942中,预存的验签密钥是基于安检信息包SE-PAC中的IDE得到的,因此由于设备标识相关信息IDE的安全可靠,确保了验签密钥的真实有效,从而使得整个验签过程是安全有效的。
如图9所示,安全特征信息SE-FEA检测过程可以包括:
步骤944:检测服务器911接收到验签结果之后,响应于第一数字签名F-SIGN验证通过,检测安全特征信息SE-FEA是否正常以确定APP的应用环境(即手机设备920)的安全性;
步骤945:检测服务器911将安全性检测结果返回给手机设备920的APP 921;
步骤946:手机设备920的APP 921根据安全性检测结果,执行相应操作,例如如果手机设备920被检测为安全,则可以允许手机设备920的APP 921启动运行;否则可以禁止或终止APP 921的运行(或者与之相关的操作)以避免安全性风险。
如图9所示,上述安全特征信息检测过程主要在检测服务器911侧执行,其中安全特征信息的检测可以包括针对其中的各种信息的检测,或者也可以仅针对其中一部分重要信息进行检测以兼顾效率与安全。
在图9所示的应用场景中,从检测服务器911得到的Nonce可以用于对抗重放攻击;可信应用923对设备状态信息STA和设备标识相关信息IDE的收集由于是在可信执行环境TEE中实现的,可以保证这些信息的可靠性(其中IDE的真实可靠性确保了与其对应的签名密钥、验签密钥之间的对应性)。因此如果设备状态信息STA被检测为正常(即设备完整性未被破坏,尤其是设备启动和运行相关的关键模块并未被非法修改或解锁),说明手机设备920的系统是相对安全的,于是可以认为手机设备920中的系统应用922是可靠的(例如不会被修改、破解、替换等);进而系统应用922收集的信息可以认为是可靠的。这样,通过这些分层递进的安全性保证机制可以确保可信应用923构造的安全特征信息SE-FEA整体上能够准确、真实地反映出手机设备运行环境的安全性。此外,由于针对安全特征信息SE-FEA的第一数字签名S-F-SIGN也在可信执行环境TEE中完成,可以确保签名的真实可靠,从而保证安检信息包在通信传输过程中被篡改、替换等的安全风险,保证传送至检测服务器911的安全特征信息完整性和真实性。
如图9所示,在根据本申请一些实施例的应用运行环境检测方法中,由于安检信息包的获取和检测(包括签名验证)可以分别在终端设备(即手机设备920)和服务器端(即检测服务器911和验签服务器912)进行,安检信息包的获取可以通过目标应用(例如手机APP921)离线调用终端设备 相关信息来完成;只有签名的验证和安全特征信息的检测(即安全性的确定)过程需要在线云端(即服务器端)完成,因而,与相关技术相比,根据本申请的技术方案无需持续或频繁处于联网状态,降低了网络需求和网络开销、优化了网络资源调度并由此提高了业务处理效率。
图10示出根据本申请一些实施例的检查应用的运行环境安全性的方法。如图10所示,根据本申请一些实施例的检查应用的运行环境安全性的方法包括以下步骤S1010-S1050。图10所示的方法可以图1或图2所示的终端设备150侧执行。
在S1010处,在可信执行环境下获取用于运行目标应用的目标设备的设备状态信息和设备标识相关信息。
为保证信息安全可靠,可以首先预先设计能够在目标设备的可信执行环境中运行的可信应用,以作为目标设备的可信执行环境与普通环境(或非可信执行环境)之间的接口,并用于在可信执行环境中获取设备状态信息(例如操作系统相关的启动引导程序BootLoader是否被解锁的信息,以及/或者操作系统内核根分区boot中的校验根分区verifyboot中的信息)和设备标识相关信息(例如身份标识和/或类型标识)。
在S1020处,至少基于所述设备状态信息和设备标识相关信息,生成安全特征信息。
在获取设备状态信息和设备标识相关信息之后,可以构造用于的检测目标设备安全性的安全特征信息,其中包括设备标识相关信息和设备状态信息。可选地安全特征信息还可以包括从普通的非可信执行环境中获取的其他与目标应用运行环境安全性相关其他信息,例如目标设备中安装的目标应用的版本信息和/或签名信息以防(官方)应用被修改或替换(例如可以在普通的非可信执行环境中通过预定的系统应用获取);以及进一步可选地可以包括上述用于获取设备状态信息和设备标识相关信息的预定的可信应用的版本信息,以及用于获取目标应用的版本信息和/或签名信息的预定的系统应用的版本信息以防止降级攻击。
在S1030处,在可信执行环境下利用预存的签名密钥对所述安全特征信息进行签名操作以得到第一数字签名。
在可信执行环境中,通过可信应用,可以利用可信执行环境中预存的或预置的签名密钥(例如私钥)对安全特征信息进行数字签名操作以得到第一数字签名,其中用于对安全特征信息进行数字签名和验证的密钥对(例如公私钥对)是预先确定的。例如,对每一个目标设备而言,在其被制造完成时都会获得与该设备对应的签名公私钥对,其中公钥放在设备制造商或可信第三方处(例如存储在图1所示的签名验证务器120),而私钥在设备出厂时烧录进目标设备的TEE芯片的安全存储空间。
在S1040处,基于所述安全特征信息和第一数字签名,生成安检信息包。
在获得第一数字签名后,可以将安全特征信息和第一数字签名打包成安检信息包以使得二者能够同步发送给服务器以便进行后续验签和信息检测。
在S1050处,将安检信息包发送至服务器,以使得所述服务器通过验证所述第一数字签名和检测所述安全特征信息来确定目标应用运行环境的安全性。
在一些实施例中,安检信息包发送之前可以进行加密处理以增强通信过程的安全性。可选地,也可以对安检信息包进行签名处理,以保证整个安检信息包中的各种信息的完整性真实性,进一步增强服务器所获的安全特征信息以及第一数字签名的安全可靠性,进而提升后续目标应用运行环境检测的准确性。
在一些实施例中,图10所示的步骤S1020(至少基于所述设备状态信息和设备标识相关信息,生成安全特征信息)可以包括:从服务器接收一次性预定随机数;获取目标设备中的目标应用版本信息、针对目标应用的第二数字签名相关信息中至少一个,基于所述目标应用版本信息、第二数字签名相关信息以及所述一次性预定随机数中至少一个以及所述设备状态信息和设备标识相关信息,生成安全特征信息。
图11示意性示出了根据本申请一些实施例的应用运行环境检测装置1100的示例框图。图11所示的应用运行环境检测装置1100可以对应于图1和图2所示的应用运行环境检测系统100。
如图11所示,应用运行环境检测装置1100包括获取模块1110、验证模块1120以及确定模块1130。获取模块1110可以被配置成获取用于运行目标应用的目标设备的安检信息包,其中所述安检信息包包括安全特征信息和针对安全特征信息的第一数字签名,所述安全特征信息包括目标设备的设备状态信息和设备标识相关信息,并且所述设备状态信息、设备标识相关信息和第一数字签名是在目标设备的可信执行环境下获取的。验证模块1120可以被配置成根据所述设备标识相关信息,验证所述第一数字签名。确定模块1130可以被配置成响应于第一数字签名被验证通过,基于所述安全特征信息确定所述目标应用的运行环境的安全性。
应注意,上述各种模块可以以软件或硬件或两者的组合来实现。多个不同模块可以在同一软件或硬件结构中实现,或者一个模块可以由多个不同的软件或硬件结构实现。
在根据本申请一些实施例的应用运行环境检测装置中,首先通过利用可信执行环境TEE中的代码和数据一般无法被外界破解、修改和获取的特性,在用于运行目标应用的目标设备的TEE中,获取运行环境安全性检测所需的安检信息包中至少一部分安全特征信息(即目标设备的设备状态信息或设备完整性信息和设备标识相关信息)并且安检信息包中还包括对安全特征信息利用非对称加密算法得到的数字签名(即第一数字签名)。其中,在TEE中获取的至少一部分安全特征信息确保了信息的可靠性,从而杜绝了相关技术在普通环境(即非可信执行环境)中获取的信息可靠性难以保证的问题,而在TEE下获取的第一数字签名保证了用于检测运行环境安全性的安全特征信息的真实性和完整性,这样可以提升运行环境安全性检测准确性。其次,应用的运行环境安全性检测可以在服务器端(例如应用开发商、目标设备制造商、可信第三方中一个或多个提供的服务器)进行,从而与相关技术中在本地(即目标设备)进行安全性检测相比,有效防止了检测结果被修改的可能,从而进一步确保应用运行环境(即目标设备)的安全性或可信度检测结果的准确性;而安全性检测的准确性能够有效保证目标应用在安全运行环境下的安全运行,尤其是确保了某些对安全性要求较高的操作(例如手机银行转账)在安全环境下完成,降低了安全性风险,从而提高风控能力和精细度,更好地保护用户的信息安全和财产安全。
图12示意性示出了根据本申请一些实施例的计算设备1200的示例框图。计算设备1200可以代表用以实现本文描述的各种装置或模块和/或执行本文描述的各种方法的设备。计算设备1200可以是例如服务器、台式计算机、膝上型计算机、平板、智能电话、智能手表、可穿戴设备或任何其它合适的计算设备或计算系统,其可以包括从具有大量存储和处理资源的全资源设备到具有有限存储和/或处理资源的低资源设备的各种级别的设备。在一些实施例中,上面关于图11描述的应用运行环境检测装置1100可以分别在一个或多个计算设备1200中实现。
如图12所示,示例计算设备1200包括彼此通信耦合的处理系统1201、一个或多个计算机可读介质1202以及一个或多个I/O接口1203。尽管未示出,但是计算设备1200还可以包括将各种组件彼此耦合的系统总线或其他数据和命令传送系统。系统总线可以包括不同总线结构的任何一个或组合,所述总线结构可以是诸如存储器总线或存储器控制器、外围总线、通用串行总线、和/或利用各种总线架构中的任何一种的处理器或局部总线。或者,还可以包括诸如控制和数据线。
处理系统1201代表使用硬件执行一个或多个操作的功能。因此,处理系统1201被图示为包括可被配置为处理器、功能块等的硬件元件1204。这可以包括在硬件中实现作为专用集成电路或使用一个或多个半导体形成的其它逻辑器件。硬件元件1204不受其形成的材料或其中采用的处理机构的限制。例如,处理器可以由(多个)半导体和/或晶体管(例如,电子集成电路(IC))组成。在这样的上下文中,处理器可执行指令可以是电子可执行指令。
计算机可读介质1202被图示为包括存储器/存储装置1205。存储器/存储装置1205表示与一个或多个计算机可读介质相关联的存储器/存储装置。存储器/存储装置1205可以包括易失性介质(诸如随机存取存储器(RAM))和/或非易失性介质(诸如只读存储器(ROM)、闪存、光盘、磁盘等)。存储器/存储装置1205可以包括固定介质(例如,RAM、ROM、固定硬盘驱动器等)以及可移动介质(例如,闪存、可移动硬盘驱动器、光盘等)。示例性地,存储器/存储装置1205可以用于存储上文实施例中提及的第一类别用户的第一音频、请求的排队列表等。计算机可读介质1202可以以下面进一步描述的各种其他方式进行配置。
一个或多个I/O(输入/输出)接口1203代表允许用户向计算设备1200键入命令和信息并且还允许使用各种输入/输出设备将信息显示给用户和/或发送给其他组件或设备的功能。输入设备的示例包括键盘、光标控制设备(例如,鼠标)、麦克风(例如,用于语音输入)、扫描仪、触摸功能(例如,被配置为检测物理触摸的容性或其他传感器)、相机(例如,可以采用可见或不可见的波长(诸如红外频率)将不涉及触摸的运动检测为手势)、网卡、接收机等等。输出设备的示例包括显示设备、扬声器、打印机、触觉响应设备、网卡、发射机等。示例性地,
计算设备1200还包括应用运行环境检测策略1206。应用运行环境检测策略1206可以作为计算程序指令存储在存储器/存储装置1205中,也可以是硬件或固件。应用运行环境检测策略1206可以连同处理系统1201等一起实现关于图11描述的应用运行环境检测装置1100的各个模块的全部功能。
本文可以在软件、硬件、元件或程序模块的一般上下文中描述各种技术。一般地,这些模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、元素、组件、数据结构等。本文所使用的术语“模块”、“功能”等一般表示软件、固件、硬件或其组合。本文描述的技术的特征是与平台无关的,意味着这些技术可以在具有各种处理器的各种计算平台上实现。
所描述的模块和技术的实现可以存储在某种形式的计算机可读介质上或者跨某种形式的计算机可读介质传输。计算机可读介质可以包括可由计算设备1200访问的各种介质。作为示例而非限制,计算机可读介质可以包括“计算机可读存储介质”和“计算机可读信号介质”。
与单纯的信号传输、载波或信号本身相反,“计算机可读存储介质”是指能够持久存储信息的介质和/或设备,和/或有形的存储装置。因此,计算机可读存储介质是指非信号承载介质。计算机可读存储介质包括诸如易失性和非易失性、可移动和不可移动介质和/或以适用于存储信息(诸如计算机可读指令、数据结构、程序模块、逻辑元件/电路或其他数据)的方法或技术实现的存储设备之类的硬件。计算机可读存储介质的示例可以包括但不限于RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字通用盘(DVD)或其他光学存储装置、硬盘、盒式磁带、磁带,磁盘存储装置或其他磁存储设备,或其他存储设备、有形介质或适于存储期望信息并可以由计算机访问的制品。
“计算机可读信号介质”是指被配置为诸如经由网络将指令发送到计算设备1200的硬件的信号承载介质。信号介质典型地可以将计算机可读指令、数据结构、程序模块或其他数据体现在诸如载波、数据信号或其它传输机制的调制数据信号中。信号介质还包括任何信息传递介质。作为示例而非限制,信号介质包括诸如有线网络或直接连线的有线介质以及诸如声、RF、红外和其它无线介质的无线介质。
如前所述,硬件元件1204和计算机可读介质1202代表以硬件形式实现的指令、模块、可编程器件逻辑和/或固定器件逻辑,其在一些实施例中可以用于实现本文描述的技术的至少一些方面。硬件元件可以包括集成电路或片上系统、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)以及硅中的其它实现或其他硬件设备的组件。在这种上下文中,硬件元件可以作为执行由硬件元件所体现的指令、模块和/或逻辑所定义的程序任务的处理设备,以及用于存储用于执行的指令的硬件设备,例如,先前描述的计算机可读存储介质。
前述的组合也可以用于实现本文所述的各种技术和模块。因此,可以将软件、硬件或程序模块和其它程序模块实现为在某种形式的计算机可读存储介质上和/或由一个或多个硬件元件1204体现的一个或多个指令和/或逻辑。计算设备1200可以被配置为实现与软件和/或硬件模块相对应的特定指令和/或功能。因此,例如通过使用处理系统的计算机可读存储介质和/或硬件元件1204,可以至少部分地以硬件来实现将模块实现为可由计算设备1200作为软件执行的模块。指令和/或功能可以由例如一个或多个计算设备1200和/或处理系统1201执行/可操作以实现本文所述的技术、模块和示例。
本文描述的技术可以由计算设备1200的这些各种配置来支持,并且不限于本文所描述的技术的具体示例。
特别地,根据本申请的实施例,上文参考流程图描述的过程可以被实现为计算机程序。例如,本申请的实施例提供一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行本申请的方法实施例中的至少一个步骤的程序代码。
在本申请的一些实施例中,提供了一种或多种计算机可读存储介质,其上存储有计算机可读指令,该计算机可读指令在被执行时实现根据本申请一些实施例的应用运行环境检测方法。根据本申请一些实施例所述的应用运行环境检测方法的各个步骤可以通过程序设计被转化为计算机可读指令,从而存储在计算机可读存储介质中。当这样的计算机可读存储介质被计算设备或计算机读取或访问时,其中的计算机可读指令被计算设备或计算机上的处理器执行以实现根据本申请一些实施例所述的方法。
在本说明书的描述中,术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点被包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序(包括根据所涉及的功能按基本同时的方式或按相反的顺序)来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,则可用本领域公知的下列技术中的任一项或它们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路、具有合适的组合逻辑门电路的专用集成电路、可编程门阵列(Programmable Gate Array)、现场可编程门阵列(Field Programmable Gate Array)等。
本技术领域的普通技术人员可以理解上述实施例方法的全部或部分步骤可以通过程序指令相关的硬件完成,所述程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括执行方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
可以理解的是,在本申请的具体实施方式中,涉及到设备身份标识信息、设备ID、加密密钥、解密密钥等。当本申请以上实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
Claims (20)
1.一种应用运行环境检测方法,包括:
从用于运行目标应用的目标设备获取基于可信执行环境得到的安检信息包,其中所述安检信息包包括安全特征信息和针对所述安全特征信息的第一数字签名,所述安全特征信息包括在可信执行环境下收集的目标设备的设备状态信息和设备标识相关信息;
根据所述设备标识相关信息,验证所述第一数字签名;以及
响应于所述第一数字签名被验证通过,基于所述安全特征信息确定所述目标应用运行环境的安全性。
2.根据权利要求1所述的方法,其中所述根据所述设备标识相关信息,验证所述第一数字签名,包括:
根据所述设备标识相关信息,获取预存的用于所述第一数字签名的验签密钥,其中所述设备标识相关信息包括目标设备的设备型号信息和设备身份标识信息中至少一个;
利用所述验签密钥验证所述第一数字签名。
3.根据权利要求1所述的方法,其中所述设备标识相关信息包括目标设备的设备型号信息和关于设备身份标识的加密信息,
所述根据所述设备标识相关信息,验证所述第一数字签名,包括:
根据所述设备型号信息,获取预存的用于解密所述关于设备身份标识的加密信息的解密密钥;
利用所述解密密钥对所述加密信息进行解密,以获取目标设备的设备身份标识信息;
根据所述设备身份标识信息,获取预存的用于所述第一数字签名的验签密钥;
利用所述验签密钥验证所述第一数字签名。
4.根据权利要求3所述的方法,其中所述关于设备身份标识的加密信息是基于随机盐加密方式进行加密的。
5.根据权利要求1所述的方法,其中所述从用于运行目标应用的目标设备获取基于可信执行环境得到的安检信息包包括:
从目标设备接收目标应用运行环境检测请求;
响应于所述目标应用运行环境检测请求,向目标设备发送一次性预定随机数;
从目标设备接收目标设备的安检信息包,其中所述安全特征信息进一步包括所述一次性预定随机数。
6.根据权利要求1所述的方法,其中所述从用于运行目标应用的目标设备获取基于可信执行环境得到的安检信息包包括:
向目标设备发送目标应用运行环境检测指令,所述目标应用运行环境检测指令包括一次性预定随机数;
从目标设备接收目标设备的安检信息包,其中所述安全特征信息进一步包括所述一次性预定随机数。
7.根据权利要求5所述的方法,其中所述从目标设备接收目标应用运行环境检测请求包括下述步骤中至少一个:
从目标设备接收周期性触发的目标应用运行环境检测请求;
从目标设备接收响应于目标应用的启动触发的目标应用运行环境检测请求;
从目标设备接收响应于与目标应用相关的预定操作触发的目标应用运行环境检测请求。
8.根据权利要求7所述的方法,其中所述与目标应用相关的预定操作包括目标应用运行中发生的资源相关操作。
9.根据权利要求5所述的方法,其中所述安全特征信息进一步包括:目标应用版本信息和针对目标应用的第二数字签名相关信息中至少一个。
10.根据权利要求9所述的方法,其中所述针对目标应用的第二数字签名相关信息包括:针对目标应用的第二数字签名和所述第二数字签名的哈希摘要中至少一个。
11.根据权利要求5所述的方法,其中所述安全特征信息进一步包括:预定的可信应用版本信息和预定的系统应用版本信息中至少一个,其中所述预定的可信应用用于在目标设备的可信执行环境中运行以获取设备状态信息和设备标识相关信息,且所述预定的系统应用用于在目标设备中运行以获取目标应用版本信息和第二数字签名相关信息中至少一个。
12.根据权利要求11所述的方法,其中所述响应于所述第一数字签名被验证通过,基于所述安全特征信息确定所述目标应用运行环境的安全性,包括:
响应于所述第一数字签名被验证通过,检测所述一次性预定随机数是否正常;
响应于所述一次性预定随机数被检测为异常,检测所述设备状态信息是否正常;
响应于所述设备状态信息被检测为正常,检测所述目标应用版本信息是否正常;
响应于所述目标应用版本信息被检测为正常,检测所述第二数字签名相关信息是否正常;
响应于所述第二数字签名相关信息被检测为正常,检测所述预定的可信应用的版本信息是否正常;
响应于所述预定的可信应用的版本信息被检测为正常,检测所述预定的系统应用的版本信息是否正常;
响应于所述预定的系统应用的版本信息被检测为正常,目标应用运行环境被确定为安全。
13.根据权利要求1所述的方法,其中所述响应于所述第一数字签名被验证通过,基于所述安全特征信息确定所述目标应用运行环境的安全性,包括:
检测所述安全特征信息中至少一部分信息是否正常,所述至少一部分信息包括目标设备的设备状态信息;
响应于所述安全特征信息中至少一部分信息被检测为正常,目标应用运行环境被确定为安全。
14.根据权利要求1所述的方法,进一步包括:
响应于所述第一数字签名未被验证通过或所述目标应用运行环境被确定为不安全,执行下述步骤中至少一个:
禁止在目标设备上运行目标应用;
禁止在目标设备上执行与目标应用相关的预定操作。
15.一种应用运行环境检测方法,包括:
在可信执行环境下获取用于运行目标应用的目标设备的设备状态信息和设备标识相关信息;
至少基于所述设备状态信息和设备标识相关信息,生成安全特征信息;
在可信执行环境下利用预存的签名密钥对所述安全特征信息进行签名操作以得到第一数字签名;
基于所述安全特征信息和第一数字签名,生成安检信息包;
将安检信息包发送至服务器,以使得所述服务器通过验证所述第一数字签名和检测所述安全特征信息来确定目标应用运行环境的安全性。
16.根据权利要求15所述的方法,所述至少基于所述设备状态信息和设备标识相关信息,生成安全特征信息,包括:
从服务器接收一次性预定随机数;
获取目标设备中的目标应用版本信息、针对目标应用的第二数字签名相关信息中至少一个,
基于所述目标应用版本信息、第二数字签名相关信息以及所述一次性预定随机数中至少一个以及所述设备状态信息和设备标识相关信息,生成安全特征信息。
17.一种应用运行环境检测装置,包括:
获取模块,其配置成从用于运行目标应用的目标设备获取基于可信执行环境得到的安检信息包,其中所述安检信息包包括安全特征信息和针对所述安全特征信息的第一数字签名,所述安全特征信息包括在可信执行环境下收集的目标设备的设备状态信息和设备标识相关信息;
验证模块,其配置成根据所述设备标识相关信息,验证所述第一数字签名;以及
确定模块,其配置成响应于第一数字签名被验证通过,基于所述安全特征信息确定所述目标应用的运行环境的安全性。
18.一种计算设备,包括:
存储器和处理器,
其中所述存储器中存储有计算机程序,所述计算机程序在被所述处理器执行时促使所述处理器执行权利要求1-16中任一项所述的方法。
19.一种计算机可读存储介质,其上存储计算机可读指令,所述计算机可读指令在被执行时实现权利要求1-16中任一项所述的方法。
20.一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-16中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210390673.7A CN116956298A (zh) | 2022-04-14 | 2022-04-14 | 应用运行环境检测方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210390673.7A CN116956298A (zh) | 2022-04-14 | 2022-04-14 | 应用运行环境检测方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116956298A true CN116956298A (zh) | 2023-10-27 |
Family
ID=88449833
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210390673.7A Pending CN116956298A (zh) | 2022-04-14 | 2022-04-14 | 应用运行环境检测方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116956298A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117610025A (zh) * | 2024-01-19 | 2024-02-27 | 国网信息通信产业集团有限公司 | 一种基于电力智能终端的嵌入式操作系统安全引导方法 |
-
2022
- 2022-04-14 CN CN202210390673.7A patent/CN116956298A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117610025A (zh) * | 2024-01-19 | 2024-02-27 | 国网信息通信产业集团有限公司 | 一种基于电力智能终端的嵌入式操作系统安全引导方法 |
CN117610025B (zh) * | 2024-01-19 | 2024-04-05 | 国网信息通信产业集团有限公司 | 一种基于电力智能终端的嵌入式操作系统安全引导方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10484185B2 (en) | Method and system for distributing attestation key and certificate in trusted computing | |
EP3387813B1 (en) | Mobile device having trusted execution environment | |
US9514300B2 (en) | Systems and methods for enhanced security in wireless communication | |
KR101067399B1 (ko) | 대칭 키 암호화에 기초한 데이터의 저장 및 검색을 위한, 컴퓨팅 장치에서 구현되는 방법, 시스템 및 복수의 명령어를 저장하는 하나 이상의 컴퓨터 판독가능 매체 | |
EP2795829B1 (en) | Cryptographic system and methodology for securing software cryptography | |
CN104063788B (zh) | 一种移动平台可信支付系统及方法 | |
US11436305B2 (en) | Method and system for signing an artificial intelligence watermark using implicit data | |
WO2012138551A1 (en) | Trust verification of a computing platform using a peripheral device | |
KR20030082484A (ko) | 공개 키 암호화에 기초한 데이터의 저장 및 검색 | |
WO2018112482A1 (en) | Method and system for distributing attestation key and certificate in trusted computing | |
Johnston et al. | Recommendations for securing Internet of Things devices using commodity hardware | |
CN110765470A (zh) | 安全键盘实现方法、装置、计算机设备及存储介质 | |
US11775692B2 (en) | Method and system for encrypting data using a kernel | |
Cooijmans et al. | Secure key storage and secure computation in Android | |
CN116956298A (zh) | 应用运行环境检测方法和装置 | |
JP2016010031A (ja) | 遠隔完全性検証システム、方法及びプログラム | |
Hao et al. | Trusted block as a service: Towards sensitive applications on the cloud | |
CN115879087A (zh) | 一种面向电力终端的安全可信启动方法及系统 | |
Yoon et al. | Mobile security technology for smart devices | |
JP7559841B2 (ja) | 情報処理装置、プログラム実行システム、情報処理方法、及びプログラム | |
Surendrababu | System Integrity–A Cautionary Tale | |
US11537689B2 (en) | Method and system for signing an artificial intelligence watermark using a kernel | |
US11704390B2 (en) | Method and system for signing an artificial intelligence watermark using a query | |
CN113553125B (zh) | 可信应用程序的调用方法、装置、设备及计算机存储介质 | |
US11457002B2 (en) | Method and system for encrypting data using a command |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |