CN106709324A - 用于验证应用安全性的方法和设备 - Google Patents

用于验证应用安全性的方法和设备 Download PDF

Info

Publication number
CN106709324A
CN106709324A CN201610997124.0A CN201610997124A CN106709324A CN 106709324 A CN106709324 A CN 106709324A CN 201610997124 A CN201610997124 A CN 201610997124A CN 106709324 A CN106709324 A CN 106709324A
Authority
CN
China
Prior art keywords
application
verification algorithm
algorithm
verification
security
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
Application number
CN201610997124.0A
Other languages
English (en)
Inventor
衣祝松
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
BOE Technology Group Co Ltd
Original Assignee
BOE Technology Group Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by BOE Technology Group Co Ltd filed Critical BOE Technology Group Co Ltd
Priority to CN201610997124.0A priority Critical patent/CN106709324A/zh
Priority to PCT/CN2017/074986 priority patent/WO2018086276A1/zh
Priority to US15/743,561 priority patent/US10621335B2/en
Publication of CN106709324A publication Critical patent/CN106709324A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2115Third party
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)

Abstract

本公开提供了一种用于验证应用安全性的方法和设备。该方法包括:获取应用;根据所述应用来确定与其相对应的验证算法;以及使用所述验证算法来验证所述应用的安全性。该设备包括:应用获取单元,用于获取应用;算法确定单元,用于根据所述应用来确定与其相对应的验证算法;以及安全性验证单元,用于使用所述验证算法来验证所述应用的安全性。

Description

用于验证应用安全性的方法和设备
技术领域
本公开涉及通信安全领域,更具体地涉及用于验证应用安全性的方法和设备。
背景技术
随着移动通信技术的发展,诸如智能手机、平板电脑之类的移动设备已经成为人们生产、生活中不可或缺的一部分。这些移动设备通过其上安装的应用(application,app)来提供各种各样的功能,例如常用的聊天应用、阅读应用、购物应用等。
然而,对于上述这些应用,在例如基于安卓(android)平台的智能设备上采用了统一的应用安装包(例如,APK格式)的方式来进行安装和更新。安卓平台仅对于应用安装包进行例如完整性验证之类的简单验证,而并不进行真实性等安全方面的验证。这对于银行支付(例如,工行网银app、招行网银app)、第三方支付(例如,支付宝app等)等安全性要求比较高的应用来说是不合理且不够用的。
例如,当某个恶意第三方发布了界面与例如工行网银app的界面非常相似的恶意应用时,该恶意第三方可以利用该恶意应用实现对用户的欺骗,从而获取用户的用户名、密码等关键信息,潜在地造成用户的重大损失。然而,这样的恶意应用对于大多数普通用户来说是无法检测、识别出来的。
发明内容
为了解决上述技术问题,本公开的实施例提供了用于验证应用的安全性的方法和设备。
根据本公开的第一方面,提供了一种用于验证应用安全性的方法,包括:获取应用;根据所述应用来确定与其相对应的验证算法;以及使用所述验证算法来验证所述应用的安全性。
在一些实施例中,所述验证算法由发布所述应用的应用提供商或由受信第三方来发布。这样,所述方法还包括:获取由应用提供商或受信第三方发布的验证算法;
建立验证算法与应用的对应关系;
根据所述应用来确定与其相对应的验证算法,包括:
根据所述对应关系确定所述获取的应用对应的验证算法。
在一些实施例中,所述验证算法是通过以下至少一种方式来获取的:预安装的;从远程服务器下载的;或者通过存储介质复制的。这样,上述方法中,其中,获取由应用提供商或受信第三方发布的验证算法包括:
根据页面提示信息从应用提供商或受信第三方的远程服务器下载验证算法;或
预安装所述由应用提供商或受信第三方发布的验证算法,获取所述预安装的验证算法;或
预先存储由应用提供商或受信第三方发布的验证算法到本地存储介质,从所述本地存储介质获取所述验证算法。
在一些实施例中,所述验证算法被保存在受限访问区中;所述验证算法与应用的对应关系也被保存在受限访问区。这两个受访区域可相同或不同。
在一些实施例中,所述受限访问区包括以下至少一项:安全存储器、安全存储分区。在一些实施例中,根据所述应用来确定与其相对应的验证算法包括:根据所述应用的标识符、文件头字段、名称、版本、或数字摘要中的一项或多项来确定与所述应用相对应的验证算法。在一些实施例中,使用所述验证算法来验证所述应用的安全性包括:基于所述应用的文件头,使用所述验证算法来验证所述应用的安全性。在一些实施例中,所述文件头至少包括所述应用的至少一部分数据的数字摘要。在一些实施例中,在使用所述验证算法来验证所述应用的安全性之后,所述方法还包括:如果验证了所述应用的安全性,则安装和/或更新所述应用;以及如果无法验证所述应用的安全性,则放弃安装和/或更新所述应用。在一些实施例中,在根据所述应用来确定与其相对应的验证算法之前,所述方法还包括:确定所述应用是否是需要验证的高安全等级应用;如果是,则执行后续步骤。在一些实施例中,在根据所述应用来确定与其相对应的验证算法之后,所述方法还包括:确定是否需要更新与所述应用相对应的验证算法;以及如果需要更新所述验证算法,则通过从远程信任服务器下载或通过安全存储介质复制来更新所述验证算法。在一些实施例中,所述验证算法是定期更新的或响应于请求来更新。
根据本公开的第二方面,提供了一种用于验证应用安全性的设备,包括:应用获取单元,用于获取应用;算法确定单元,用于根据所述应用来确定与其相对应的验证算法;以及安全性验证单元,用于使用所述验证算法来验证所述应用的安全性。
在一些实施例中,还包括:算法获取单元,用于获取由应用提供商或受信第三方发布的验证算法;建立验证算法与应用的对应关系;
算法确定单元,具体用于根据所述对应关系确定所述获取的应用对应的验证算法。
在一些实施例中,所述算法获取单元,具体用于根据页面提示信息从应用提供商或受信第三方的远程服务器下载验证算法;或,预安装所述由应用提供商或受信第三方发布的验证算法,获取所述预安装的验证算法;或,预先存储由应用提供商或受信第三方发布的验证算法到本地存储介质,从所述本地存储介质获取所述验证算法。
根据本公开的第三方面,提供了一种用于验证应用安全性的设备,包括:处理器;存储器,存储指令,所述指令在由所述处理器执行时使得所述处理器与所述存储器协同工作以:获取应用;根据所述应用来确定与其相对应的验证算法;以及使用所述验证算法来验证所述应用的安全性。
根据本公开的第四方面,提供了一种存储指令的可读存储介质,该指令在由处理器执行期间使得所述处理器执行根据本公开第一方面所述的方法。
通过使用根据本公开实施例的方法、设备和计算机可读存储介质,可以对安全性要求高的应用进行有效的管控,屏蔽了不法应用获取用户私密信息的渠道。
附图说明
通过下面结合附图说明本公开的优选实施例,将使本公开的上述及其它目的、特征和优点更加清楚,其中:
图1是示出了根据本公开实施例的应用安全验证方案的示例应用场景的示意图。
图2是示出了根据本公开实施例的用于验证应用安全的方法的示例整体流程图。
图3是示出了根据本公开实施例的在设备处执行的示例方法的流程图。
图4是示出了根据本公开实施例的用于执行图3所示方法的示例设备的框图。
图5是示出了根据本公开实施例的图4所示设备的示例硬件布置的框图。
具体实施方式
下面参照附图对本公开的优选实施例进行详细说明,在描述过程中省略了对于本公开来说是不必要的细节和功能,以防止对本公开的理解造成混淆。在本说明书中,下述用于描述本公开原理的各种实施例只是说明,不应该以任何方式解释为限制公开的范围。参照附图的下述描述用于帮助全面理解由权利要求及其等同物限定的本公开的示例性实施例。下述描述包括多种具体细节来帮助理解,但这些细节应认为仅仅是示例性的。因此,本领域普通技术人员应认识到,在不背离本公开的范围和精神的情况下,可以对本文中描述的实施例进行多种改变和修改。此外,为了清楚和简洁起见,省略了公知功能和结构的描述。此外,贯穿附图,相同附图标记用于相同或相似的功能和操作。
以下,以本公开应用于无线移动通信***的场景为例,对本公开进行了详细描述。但本公开并不局限于此,本公开也可以应用于固定通信***、有线通信***,或者应用于无线移动通信***、固定通信***、有线通信***等的任意混合结构。就移动通信***而言,本公开并不局限于所涉及的各个移动通信设备的具体通信协议,可以包括(但不限于)2G、3G、4G、5G网络、WCDMA、CDMA2000、TD-SCDMA***等、WiFi、Bluetooth、WiMax等,不同的移动设备可以采用相同的通信协议,也可以采用不同的通信协议。此外,本公开并不局限于移动设备的具体操作***,可以包括(但不限于)iOS、Windows Phone、Symbian(塞班)、Android(安卓)、Windows、Linux、Unix等,不同的移动设备可以采用相同的操作***,也可以采用不同的操作***。
在本公开中,术语“包括”和“含有”及其派生词意为包括而非限制;术语“或”是包含性的,意为和/或。
总体上,本公开提出了一种用于验证应用的安全性的方案。在一些实施例中,可以在智能设备中植入与所下载的要安装/更新的应用相对应的算法,且该应用是经过数字签名或以其他方式来证明其真实性、完整性的。通过在每次下载或者更新应用的时候使用算法区中植入的算法对应用进行签名校检,在校检通过的情况下才进行安装、更新,从而保证了应用本身的安全性。此外,在一些实施例中,也可以对算法区的算法进行更新,以防止算法被破解。
图1是示出了根据本公开的应用安全验证***1000的应用场景的示意图。如图1所示,***1000可以包括设备100和服务器200。为了清楚起见,图中仅示出了一个设备100、一个服务器200,但本公开并不局限于此,可以包括两个或更多数目的设备和/或服务器等等,也可以甚至没有服务器。设备100可以属于用户或者可以由用户操作。设备100和服务器200可以通过通信网络300进行通信。通信网络300的示例可以包括(但不限于):互联网、移动通信网络、固定线路(如xDSL、光纤等)等。
尽管在图1所示的实施例中,将设备100示出为移动电话型设备,然而本公开不限于此。在一些实施例中,设备100可以是(但不限于):智能电话、平板电脑、电纸书、膝上型计算机、台式计算机、机顶盒、智能TV、家庭网关、或具有可以实现本公开实施例中描述的应用验证功能的任何电子设备。
在图1所示实施例中,为了在设备100上验证应用的安全性,将根据本公开实施例的应用安全验证客户端150(以下简称为客户端150)安装在设备100上。客户端150可以由用户以软件的形式自行安装在设备100中,或者可以由生产厂商以硬件或固件的形式安装在设备100中。在一些实施例中,客户端150可以是例如在用户购买了设备100之后从网络中下载的专门用于本公开实施例的应用软件。在另一些实施例中,客户端150可以是例如由生产厂商以固件或硬件形式预先安装在设备100中的应用程序。在又一些实施例中,客户端150可以是由生产厂商生产的硬件模块或设备100本身。以下,在不特别声明的情况下,设备100和客户端150可交换使用。
具体地,在一些实施例中,客户端150可以是代替安卓***中的标准应用安装程序的***应用,或者可以是作为后台监视进程的应用安装程序,其可以对标准应用安装流程进行拦截,以实现自己的安全验证功能。此外,客户端150还可以是与标准应用安装程序以协作方式操作实现本公开实施例的方案的任何应用。
在本公开的以下实施例中,为了方便说明,将采用基于安卓平台的设备作为示例。然而本领域技术人员将意识到:本公开的理念同样适用于其他适合的平台,例如iOS、Symbian,或甚至是非移动设备的平台,例如Windows、Linux、Unix等等。
接下来将参考图2来详细描述根据本公开实施例的在***1000中实现的用于验证应用安全的示例流程20。
在一些实施例中,首先在步骤S21可以判断要获取/下载/拷贝的应用是否是需要高安全等级的应用,例如上述网银应用等。最简单地,可以在用户下载应用的时候,向用户提示选项,以由用户来确认该应用是否是高安全等级应用。例如,可以通过图形用户界面(GUI)向用户呈现下载界面,该下载界面中具有可选项“高安全等级应用”和/或“普通应用”等,供用户选择并指明相应应用的安全等级。
在另一些实施例中,设备100可以通过检测要下载(或拷贝)的应用的名称、链接(URL)等来自动判断该应用是否是需要高安全等级的应用。此外,也可以在设备100中预先设置黑/白名单,以帮助设备100来识别该应用是否是高安全等级应用。
此外,对应用安全等级的判定并不是本公开实施例中必不可少的步骤。事实上,也可以针对所有应用都采用根据本公开实施例的安全验证方案。例如,在要求高安全等级的场景下,可以对设备100上的所有应用都验证其安全性,而无需分别针对各个应用来判断其安全等级。因此,在图2中,以虚线框来表示其为可选步骤。以下,在对图2的描述中,如无特别说明,虚线框均表示相应步骤为可选步骤。
在一些实施例中,如果在步骤S21处设备100确定该应用不是高安全等级应用,则设备100可以采用安卓标准的下载、安装和/或更新流程(S22B)。例如,当设备100确定不需要执行针对应用的安全验证时,其可以直接从应用商店中下载应用的apk文件,对其解压缩并执行标准安装流程。鉴于标准安装流程不是本公开的重点,因此将省略对其的详细描述。然而,这样的省略并不妨碍本领域技术人员根据本公开的内容来实现本公开的技术方案。例如,在上述拦截标准安装流程的实施例中,可以通过将安装进程的控制权返回给标准安装流程来实现S22B的操作。
在一些实施例中,如果在步骤S21处设备100确定该应用是高安全等级应用,则设备100可以转入安全验证流程。例如,设备100可以在其工作区(例如,缓存、内存或外部存储器)中针对该应用作出标记“flag=true”,以指明该应用的后续流程是高安全等级流程(S22A)。
在高安全等级流程中,在一些实施例中,设备100可以通过各种渠道来获取需要验证的应用(S23),以例如进行后续验证/安装/更新。例如,可以通过互联网从应用商店(例如苹果的App Store、谷歌的Play Store等等)下载应用。又例如,可以通过诸如SD卡、U盘等便携式存储介质从另一用户处拷贝应用。再例如,可以借助二维码、网络链接等从网络(例如图1所示的服务器200)上获取应用。为了描述的简洁,以下将以从服务器200下载获取应用为例来进行描述,然而本公开实施例不限于此。在一些实施例中,当获取到应用时,可以将应用放在设备100的应用存放区。
在高安全等级流程中,所下载/拷贝/获取的应用与一般应用具有区别。例如,在一些实施例中,应用商店中的高安全等级应用都带有一个特殊文件头。如下所示,该文件头(header)中包含与相应的验证算法相对应的验证数据,且该文件头的格式、内容以及相应验证算法都可以由应用提供商来决定。
文件头(验证数据) 原应用安装文件
然而,在另一些实施例中,文件头的格式、内容以及相应验证算法也可以由统一的第三方来规定并发布,以避免各个应用提供商维护各自的算法,从而节约其运营成本。在该情况下,尽管格式、内容以及算法可以是由统一的第三方来规定的,但是由于各个应用提供商可以具有自身的签名密钥(例如,私钥),因此可以保证每个应用提供商并不能伪造其他应用提供商的应用安装文件。从而,同样实现了针对应用的安全性验证。
在一些实施例中,文件头可以包括一个或多个文件头字段。这些字段可以包括(但不限于):该类文件头的类型标识符(例如,幻数(magic number))、应用名称、应用版本号、对应算法标识符、或应用程序的数字摘要等等。设备100(或客户端150)可以根据获取到的应用(例如,其安装文件的文件头或其他信息)来确定与该高安全等级应用相对应的验证算法(S24)。
例如,设备100(或客户端150)可以根据文件头的类型标识符来确定其是需要安全验证的应用,并查找相应的验证算法。又例如,设备100(或客户端150)可以根据其文件头的类型标识符、应用名称、应用版本号、对应算法标识符、数字摘要等等中的一项或多项来确定相对应的验证算法。事实上,只要设备100(或客户端150)可以根据应用(例如,其文件头中包括的信息)而能够确定相对应的算法即可。例如,设备100可以根据应用名称“工行网银”来确定用于验证该应用的通用算法,或者可以根据应用版本号“1.0.0”来选择针对该版本的特定算法,又或者可以根据数字摘要来确定针对该特定下载/拷贝的应用的更特定的算法,再或者直接采用算法标识符所指定的验证算法。此外,文件头也可以不包括上述各项中的一项或多项。
此外,在另一些实施例中,该应用安装文件可以不具有特殊的文件头,而就是原始的安卓应用安装文件,只是在尾部缀有文件尾,从而实现与文件头相同的功能。又例如,在又一些实施例中,应用程序可以在文件中的某个部分具有特殊字段,以实现同样的功能。因此,本公开实施例不限于上述文件头和文件尾的情况。
此外,在另一些实施例中,设备100(或客户端150)也可以不根据文件头、文件尾或文件中指定数据部分来确定验证算法。例如,在一些实施例中,设备100(或客户端150)可以根据下载的应用安装文件的名称、大小、数字摘要等,而非根据文件头中的各字段,来确定相对应的验证算法。
此外,当确定了与应用相对应的算法时,设备100可以判断其是否已经获取/具有该算法。在获取到算法时,可以将算法放到相应的算法存放区中。在一些实施例中,算法存放区可以是访问受限区,例如单独的物理/逻辑存储器、单独的物理/逻辑存储器分区等等。算法存放区是仅可以由授权进程(例如,根据本公开实施例的客户端150的进程)来访问的存储区域。在一些实施例中,算法存放区可以是被加密的存储区域。从而,进一步确保了算法本身的安全性,防止了恶意第三方通过篡改算法来实现其盗取用户信息的可能性。然而,应当注意:在本公开的一些实施例中,单独的算法保存区并不是必需的,而是可选的。
算法可以是通过各种方式在任何恰当的时候来获取的。例如,可以首先在算法保存区中查找是否存在所确定的验证算法(S25)。例如,算法可以是在生产设备100时预先植入设备100中的算法保存区的、在确定了与应用相对应的算法之后远程下载的、或者是提前下载的统一验证算法(S25:是)。如果在步骤S25中未在算法保存区中找到对应算法,则可以例如从应用提供商和/或受信第三方(例如图1所示的服务器200或另一服务器)实时下载算法(S25A),或者可以通过便携式存储介质从另一用户处拷贝算法(S25A)。本公开对此不加限制。此外,在本实施例中,受信第三方(例如服务器200)可以是例如根证书持有者,例如认证中心。其应当受到通信各方的共同信任,是信任链的起始点。然而,在本公开实施例中,受信第三方并不限于上述认证中心,而只要是受到设备100和发布应用的应用提供商所共同信任的第三方即可。
具体地,当例如算法的获取渠道是安全渠道时,例如从指定的受信第三方或发布官方应用的应用提供商获取时,可以不对算法本身进行验证,并信任算法本身是安全的。然而当不确定算法的获取渠道是安全渠道时,也需要对算法本身进行验证。例如,可以借助于受信第三方针对算法所发布的证书来证明算法本身的安全性(例如,完整性、真实性)。具体地,诸如Windows、Linux、安卓之类的平台均具有自带的根证书,其用于向用户保证所安装的算法确实是由该根证书担保的其他证书中指明的软件(算法)提供商所提供的。从而,可以保证算法的安全性。
在一些实施例中,在应用和算法均获取到之后,可以使用根据应用来确定的、算法存放区中存放的对应算法来验证应用(S26)。例如,可以首先通过使用所确定的验证算法(例如,MD5、SHA1等)来计算所获取到的应用的原始应用安装文件或其至少一部分的数字摘要,并将其与文件头中的数据摘要字段进行比较。如果一致,则说明该原始应用安装文件未被篡改过,是由软件提供商发布的真实应用。如果不一致,则可以断定该安装文件受到篡改,属于非法/恶意应用,并进一步放弃安装、对其进行删除、或向用户报警等(S27B)。如果验证通过,则设备100(或客户端150)可以把文件头、文件尾或其他用于验证应用的数据部分去除掉,并恢复原始应用安装文件,使得可以使用标准的安卓安装程序进行安装,或者自行安装(S27A)。
此外,在一些实施例中,还可以定期地(例如,每天、每周、每月等)对设备100中的算法区进行全部/部分算法更新,或者可以响应于用户或应用的请求来执行全部/部分算法的更新。例如,当下载的应用是要进行初次安装的应用时,可以在上述步骤S25中请求下载(或也可认为是更新)相对应的算法;而在下载的应用是要进行后续更新的应用时,可以在上述步骤S25中根据应用(例如,其文件头中各个字段或其他信息)判断是否需要下载新的验证算法(例如,由于算法标识符指定了与初次安装不同的验证算法)。在需要下载新的验证算法的情况下,可以如步骤S25A一样获取该验证算法并保存在算法保存区中。
至此,已结合图2详细描述了用于验证应用的安全性的方案。通过使用上述方案,可以对安全性要求高的应用进行有效的管控,屏蔽了不法应用获取用户私密信息的渠道。
图3是示出了根据本公开实施例的在设备100(或以分布式在多个设备)中执行的用于验证应用的安全性的方法400的流程图。如图3所示,方法400可以包括步骤S410、S420和S430。根据本公开,方法400的一些步骤可以单独执行或组合执行,以及可以并行执行或顺序执行,并不局限于图3所示的具体操作顺序。在一些实施例中,方法400可以由图1所示的设备100和/或客户端150来执行。
图4是示出了根据本公开实施例的用于验证应用的安全性的示例设备100的框图。如图4所示,设备100可以包括:应用获取单元110、算法确定单元120以及安全性验证单元130。如前所述,这些单元可以是单独的硬件单元,也可以是由设备100的处理器所执行的软件模块,或者这二者的组合。
应用获取单元110可以用于获取应用。例如,应用获取单元110可以是设备100的中央处理单元(CPU)、数字信号处理器(DSP)、微处理器、微控制器等等,其可以与设备100的通信部分(例如,无线收发信机、以太网卡、xDSL调制解调器等)和/或存储部分(例如,RAM、SD卡等)相配合,通过互联网和/或便携式存储介质来获取要安装/更新的应用。
算法确定单元120可以用于根据所获取的应用来确定与其相对应的验证算法。例如,算法确定单元120可以是设备100的中央处理单元(CPU)、数字信号处理器(DSP)、微处理器、微控制器等等,其可以与设备100的通信部分(例如,无线收发信机、以太网卡、xDSL调制解调器等)和/或存储部分(例如,RAM、SD卡等)相配合,通过互联网和/或便携式存储介质来确定并获取与该应用相对应的验证算法。
安全性验证单元130可以用于使用该验证算法来验证应用的安全性。安全性验证单元130可以是设备100的中央处理单元(CPU)、数字信号处理器(DSP)、微处理器、微控制器等等,其可以针对应用的文件头、文件尾等验证字段来执行验证算法,并确定该应用的安全性。
此外,设备100还可以包括图4中未示出的其他单元,例如应用安装/更新单元、安全等级确定单元和/或算法更新单元等。在一些实施例中,应用安装/更新单元可以用于:如果验证了应用的安全性,则安装和/或更新应用,以及如果无法验证应用的安全性,则放弃安装和/或更新应用。在一些实施例中,安全等级确定单元可以用于确定应用是否是需要验证的高安全等级应用,如果是,则调用其它单元以执行后续步骤。在一些实施例中,算法更新单元可以用于:确定是否需要更新与该应用相对应的验证算法;以及如果需要更新验证算法,则通过从远程信任服务器下载或通过安全存储介质复制来更新验证算法。此外,设备100还可以包括用于实现上述和其它功能的各种常用组件,例如总线、电源、天线等等。
以下将结合图3和图4,对根据本公开实施例的在设备100上执行的用于验证应用的安全性的方法400和设备100进行详细的描述。
方法400开始于步骤S410,在步骤S410中,可以由设备100的应用获取单元110获取应用。
在步骤S420中,可以由设备100的算法确定单元120根据该应用来确定与其相对应的验证算法。
在步骤S430中,可以由设备100的安全性验证单元130使用该验证算法来验证应用的安全性。
在一些实施例中,所述验证算法由发布所述应用的应用提供商或由受信第三方来发布。在一些实施例中,验证算法可以是通过以下至少一种方式来获取的:预安装的;从远程服务器下载的;或者通过存储介质复制的。在一些实施例中,验证算法可以被保存在受限访问区中。在一些实施例中,受限访问区可以包括以下至少一项:安全存储器、安全存储分区。在一些实施例中,根据应用来确定与其相对应的验证算法可以包括:可以根据应用的标识符、文件头字段、名称、版本、或数字摘要中的一项或多项来确定与应用相对应的验证算法。在一些实施例中,使用验证算法来验证应用的安全性可以包括:可以基于应用的文件头,使用验证算法来验证应用的安全性。在一些实施例中,文件头可以至少包括应用的至少一部分数据的数字摘要。在一些实施例中,在使用验证算法来验证应用的安全性之后,方法400还可以包括:如果验证了应用的安全性,则安装和/或更新应用;以及如果无法验证应用的安全性,则放弃安装和/或更新应用。在一些实施例中,在根据应用来确定与其相对应的验证算法之前,方法400还可以包括:确定应用是否是需要验证的高安全等级应用;如果是,则执行后续步骤。在一些实施例中,在根据应用来确定与其相对应的验证算法之后,方法400还可以包括:确定是否需要更新与应用相对应的验证算法;以及如果需要更新验证算法,则可以通过从远程信任服务器下载或通过安全存储介质复制来更新验证算法。在一些实施例中,验证算法可以是定期更新的或响应于请求来更新。
图5是示出了根据本公开实施例的图4所示设备100的示例硬件布置500的框图。硬件布置500包括处理器506(例如,数字信号处理器(DSP))。处理器506可以是用于执行本文描述的流程的不同动作的单一处理单元或者是多个处理单元。布置500还可以包括用于从其他实体接收信号的输入单元502、以及用于向其他实体提供信号的输出单元504。输入单元502和输出单元504可以被布置为单一实体或者是分离的实体。
此外,布置500可以包括具有非易失性或易失性存储器形式的至少一个可读存储介质508,例如是电可擦除可编程只读存储器(EEPROM)、闪存、和/或硬盘驱动器。可读存储介质508包括计算机程序510,该计算机程序510包括代码/计算机可读指令,其在由布置500中的处理器506执行时使得硬件布置500和/或包括硬件布置500在内的设备100可以执行例如上面结合图1~4所描述的流程及其任何变形。
计算机程序510可被配置为具有例如计算机程序模块510A~510C架构的计算机程序代码。因此,在例如设备100中使用硬件布置500时的示例实施例中,布置500的计算机程序中的代码包括:模块510A,用于获取应用。计算机程序中的代码还包括:模块510B,用于根据该应用来确定与其相对应的验证算法。计算机程序中的代码还包括:模块510C,用于使用该验证算法来验证该应用的安全性。
计算机程序模块实质上可以执行图1~4中所示出的流程中的各个动作,以模拟设备100。换言之,当在处理器506中执行不同计算机程序模块时,它们可以对应于设备100中的上述不同单元。
尽管上面结合图5所公开的实施例中的代码手段被实现为计算机程序模块,其在处理器506中执行时使得硬件布置500执行上面结合图1~4所描述的动作,然而在备选实施例中,该代码手段中的至少一项可以至少被部分地实现为硬件电路。
处理器可以是单个CPU(中央处理单元),但也可以包括两个或更多个处理单元。例如,处理器可以包括通用微处理器、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(ASIC))。处理器还可以包括用于缓存用途的板载存储器。计算机程序可以由连接到处理器的计算机程序产品来承载。计算机程序产品可以包括其上存储有计算机程序的计算机可读介质。例如,计算机程序产品可以是闪存、随机存取存储器(RAM)、只读存储器(ROM)、EEPROM,且上述计算机程序模块在备选实施例中可以用UE内的存储器的形式被分布到不同计算机程序产品中。
至此已经结合优选实施例对本公开进行了描述。应该理解,本领域技术人员在不脱离本公开的精神和范围的情况下,可以进行各种其它的改变、替换和添加。因此,本公开的范围不局限于上述特定实施例,而应由所附权利要求所限定。
此外,在本文中被描述为通过纯硬件、纯软件和/或固件来实现的功能,也可以通过专用硬件、通用硬件与软件的结合等方式来实现。例如,被描述为通过专用硬件(例如,现场可编程门阵列(FPGA)、专用集成电路(ASIC)等)来实现的功能,可以由通用硬件(例如,中央处理单元(CPU)、数字信号处理器(DSP))与软件的结合的方式来实现,反之亦然。

Claims (11)

1.一种用于验证应用安全性的方法,包括:
获取应用;
根据所述应用来确定与其相对应的验证算法;以及
使用所述验证算法来验证所述应用的安全性。
2.根据权利要求1所述的方法,还包括:获取由应用提供商或受信第三方发布的验证算法;
建立验证算法与应用的对应关系;
根据所述应用来确定与其相对应的验证算法,包括:
根据所述对应关系确定所述获取的应用对应的验证算法。
3.根据权利要求1所述的方法,其中,获取由应用提供商或受信第三方发布的验证算法包括:
根据页面提示信息从应用提供商或受信第三方的远程服务器下载验证算法;或
预安装所述由应用提供商或受信第三方发布的验证算法,获取所述预安装的验证算法;或
预先存储由应用提供商或受信第三方发布的验证算法到本地存储介质,从所述本地存储介质获取所述验证算法。
4.根据权利要求2所述的方法,其中,所述验证算法被保存在受限访问区;
所述验证算法与应用的对应关系被保存在受限访问区。
5.根据权利要求4所述的方法,其中,所述受限访问区包括以下至少一项:安全存储器、安全存储分区。
6.根据权利要求1所述的方法,其中,根据所述应用来确定与其相对应的验证算法包括:
根据所述应用的标识符、文件头字段、名称、版本、或数字摘要中的一项或多项来确定与所述应用相对应的验证算法;
使用所述验证算法来验证所述应用的安全性包括:
基于所述应用的文件头,使用所述验证算法来验证所述应用的安全性;所述文件头至少包括所述应用的至少一部分数据的数字摘要。
7.根据权利要求1所述的方法,其中,在使用所述验证算法来验证所述应用的安全性之后,所述方法还包括:
如果验证了所述应用的安全性,则安装和/或更新所述应用;以及
如果无法验证所述应用的安全性,则放弃安装和/或更新所述应用。
8.根据权利要求1所述的方法,其中,在根据所述应用来确定与其相对应的验证算法之后,所述方法还包括:
确定是否需要更新与所述应用相对应的验证算法;以及
如果需要更新所述验证算法,则通过从远程信任服务器下载或通过安全存储介质复制来更新所述验证算法;
所述验证算法是定期更新的或响应于请求来更新。
9.一种用于验证应用安全性的设备,包括:
应用获取单元,用于获取应用;
算法确定单元,用于根据所述应用来确定与其相对应的验证算法;以及
安全性验证单元,用于使用所述验证算法来验证所述应用的安全性。
10.根据权利要求9所述的设备,还包括:算法获取单元,用于获取由应用提供商或受信第三方发布的验证算法;建立验证算法与应用的对应关系;
算法确定单元,具体用于根据所述对应关系确定所述获取的应用对应的验证算法。
11.根据权利要求10所述的设备,其中,所述算法获取单元,具体用于根据页面提示信息从应用提供商或受信第三方的远程服务器下载验证算法;或,预安装所述由应用提供商或受信第三方发布的验证算法,获取所述预安装的验证算法;或,预先存储由应用提供商或受信第三方发布的验证算法到本地存储介质,从所述本地存储介质获取所述验证算法。
CN201610997124.0A 2016-11-10 2016-11-10 用于验证应用安全性的方法和设备 Pending CN106709324A (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201610997124.0A CN106709324A (zh) 2016-11-10 2016-11-10 用于验证应用安全性的方法和设备
PCT/CN2017/074986 WO2018086276A1 (zh) 2016-11-10 2017-02-27 用于验证应用安全性的方法和设备
US15/743,561 US10621335B2 (en) 2016-11-10 2017-02-27 Method and device for verifying security of application

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610997124.0A CN106709324A (zh) 2016-11-10 2016-11-10 用于验证应用安全性的方法和设备

Publications (1)

Publication Number Publication Date
CN106709324A true CN106709324A (zh) 2017-05-24

Family

ID=58939782

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610997124.0A Pending CN106709324A (zh) 2016-11-10 2016-11-10 用于验证应用安全性的方法和设备

Country Status (3)

Country Link
US (1) US10621335B2 (zh)
CN (1) CN106709324A (zh)
WO (1) WO2018086276A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107480076A (zh) * 2017-07-31 2017-12-15 北京小米移动软件有限公司 ***分区的保护处理方法、装置及终端
CN110020530A (zh) * 2018-12-24 2019-07-16 ***股份有限公司 用于确定应用程序在运行时的安全性的方法及其装置
CN111368288A (zh) * 2018-12-26 2020-07-03 创发信息科技(苏州)有限公司 嵌入式***程序信任执行方法

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2574129B (en) * 2019-06-13 2024-01-17 Withsecure Corp False alarm detection for malware scanning
CN117278514A (zh) * 2022-06-15 2023-12-22 华为技术有限公司 通信方法、装置以及***
CN117335988B (zh) * 2023-11-30 2024-03-12 中国信息通信研究院 App的电子标识生成、标注、安全校验方法及设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101551843A (zh) * 2009-05-06 2009-10-07 深圳市融创天下科技发展有限公司 一种移动通信装置应用软件包的签名方法
CN103617394A (zh) * 2013-12-04 2014-03-05 北京网秦天下科技有限公司 Sdk提供和调用方法及相关设备
CN105095696A (zh) * 2015-06-25 2015-11-25 三星电子(中国)研发中心 对应用程序进行安全认证的方法、***及设备
CN105376051A (zh) * 2014-08-29 2016-03-02 宇龙计算机通信科技(深圳)有限公司 一种加密方法、装置及终端
CN106022098A (zh) * 2016-05-10 2016-10-12 青岛海信传媒网络技术有限公司 一种应用程序的签名验证方法和装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060101310A1 (en) * 2004-10-22 2006-05-11 Nimrod Diamant Device, system and method for verifying integrity of software programs
US8850211B2 (en) * 2009-04-27 2014-09-30 Qualcomm Incorporated Method and apparatus for improving code and data signing
US8839001B2 (en) * 2011-07-06 2014-09-16 The Boeing Company Infinite key memory transaction unit
US9566501B2 (en) * 2014-08-01 2017-02-14 Bally Gaming, Inc. Hand-forming card shuffling apparatuses including multi-card storage compartments, and related methods

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101551843A (zh) * 2009-05-06 2009-10-07 深圳市融创天下科技发展有限公司 一种移动通信装置应用软件包的签名方法
CN103617394A (zh) * 2013-12-04 2014-03-05 北京网秦天下科技有限公司 Sdk提供和调用方法及相关设备
CN105376051A (zh) * 2014-08-29 2016-03-02 宇龙计算机通信科技(深圳)有限公司 一种加密方法、装置及终端
CN105095696A (zh) * 2015-06-25 2015-11-25 三星电子(中国)研发中心 对应用程序进行安全认证的方法、***及设备
CN106022098A (zh) * 2016-05-10 2016-10-12 青岛海信传媒网络技术有限公司 一种应用程序的签名验证方法和装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107480076A (zh) * 2017-07-31 2017-12-15 北京小米移动软件有限公司 ***分区的保护处理方法、装置及终端
CN110020530A (zh) * 2018-12-24 2019-07-16 ***股份有限公司 用于确定应用程序在运行时的安全性的方法及其装置
CN110020530B (zh) * 2018-12-24 2023-07-04 ***股份有限公司 用于确定应用程序在运行时的安全性的方法及其装置
CN111368288A (zh) * 2018-12-26 2020-07-03 创发信息科技(苏州)有限公司 嵌入式***程序信任执行方法

Also Published As

Publication number Publication date
WO2018086276A1 (zh) 2018-05-17
US20190080079A1 (en) 2019-03-14
US10621335B2 (en) 2020-04-14

Similar Documents

Publication Publication Date Title
CN106709324A (zh) 用于验证应用安全性的方法和设备
CN105391840B (zh) 自动创建目标应用程序
CN103268460B (zh) 一种云存储数据完整性验证方法
WO2020098373A1 (zh) 向区块链中存入、及获取商户认证数据的方法和装置
CN104506487B (zh) 云环境下隐私策略的可信执行方法
CN105787357A (zh) 一种基于安卓***apk下载方法及其***
US10341303B2 (en) Automating the creation and maintenance of policy compliant environments
CN104156638A (zh) 一种面向安卓***软件的扩展签名的实现方法
CN102231729A (zh) 支持多种ca身份认证的方法
CN106161470B (zh) 一种授权方法、客户端、服务器及***
CN106341233A (zh) 客户端登录服务器端的鉴权方法、装置、***及电子设备
US20210249145A1 (en) Information communication device, authentication program for information communication device, and authentication method
CN110021291B (zh) 一种语音合成文件的调用方法及装置
CN109086578A (zh) 一种软件授权使用的方法、设备及存储介质
CN107729746A (zh) 一种基于数字签名的已安装应用程序防篡改方法及***
TW201721417A (zh) 一種交易終端升級的方法及裝置
CN106709281B (zh) 补丁发放和获取方法、装置
CN110598433A (zh) 基于区块链的防伪信息处理方法、装置
CN107634989A (zh) 一种云钱包构建方法及服务器
US11681513B2 (en) Controlled scope of authentication key for software update
CN106936797A (zh) 一种云中虚拟机磁盘及文件加密密钥的管理方法和***
CN105812370A (zh) 智能卡处理方法、装置及***
CN113037505B (zh) 一种可信Web应用的实现方法及***
CN110443039A (zh) 插件安全性的检测方法、装置以及电子设备
GB2578628A (en) Device attestation techniques

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20170524