APK签名认证的方法及装置与流程

文档序号:12600391阅读:602来源:国知局
APK签名认证的方法及装置与流程

本申请涉及签名认证领域,尤其涉及APK(Android Package,Android安装包)签名认证的方法及装置。



背景技术:

SDK(Software Development Kit,软件开发工具包)是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。Android(安卓)系统是一种以Linux与JAVA为基础的开放源代码操作系统。其上安装的应用程序均为APK格式。可以通过SDK为应用Android(安卓)系统的智能设备提供一些指定操作,例如,为智能电视提供搜台、切换频道等指定操作。

在一些合作项目中,智能电视厂家通常限定其合作方所提供的应用程序只能在特定的合作机型上,获取指定操作的调用权限,并不允许该应用程序在所有智能电视上都能获取指定操作的调用权限。

然而,在现有的签名认证方法中,由于不同型号的智能电视均使用相同的系统签名,从而导致在不同型号的智能电视上,运行拥有与该系统签名相同签名的APK时,该APK对应的应用程序均可以获取指定操作的调用权限,从而无法满足智能电视厂家不允许合作方提供的同一应用程序在所有智能电视上都能获取指定操作的调用权限的需求。



技术实现要素:

有鉴于此,本申请提供一种APK签名认证的方法及装置,以实现灵活地控制同一应用程序在不同的智能设备上所能获取到的对指定操作的调用权限。

具体地,本申请是通过如下技术方案实现的:

根据本申请实施例的第一方面,提供一种APK签名认证的方法,所述方法包括:

在运行APK的过程中,若检测到所述APK对应的应用程序请求获取第一受限权限,则根据预先保存的特定签名对所述APK对应的自签名进行验证,所述第一受限权限是针对指定的关键操作所提供的调用权限,所述特定签名针对不同的产品集合,不同的产品集合所对应的特定签名各不相同;

若验证通过,则为所述APK对应的应用程序分配所述第一受限权限。

可选的,所述方法还包括:

向数字证书服务器发送用于获取数字证书的请求,所述请求携带产品集合标识,以使所述数字证书服务器接收到所述请求后,根据所述产品集合标识、系统当前时间、随机数生成数字证书;

接收所述数字证书服务器发送的所述数字证书;

根据所述数字证书生成所述特定签名。

可选的,所述方法还包括:

当检测到所述APK对应的应用程序请求执行所述第一受限权限所对应的操作时,判断所述应用程序是否具有所述第一受限权限;

若所述应用程序具有所述第一受限权限,则根据所述应用程序的请求执行所述对应的操作。

可选的,所述根据预先保存的特定签名对所述APK对应的自签名进行验证,包括:

判断预先保存的特定签名与所述APK对应的自签名是否一致;

所述若验证通过,则为所述APK对应的应用程序分配所述第一受限权限,包括:

若所述特定签名与所述APK对应的自签名一致,则为所述APK对应的应用程序分配所述第一受限权限。

可选的,所述方法还包括:

在运行所述APK的过程中,若检测到所述APK对应的应用程序请求获取第二受限权限,则根据预先保存的系统签名对所述APK对应的自签名进行验证,所述第二受限权限是针对除所述指定的关键操作以外的普通操作所提供的调用权限,所述系统签名针对所有产品集合,每个产品集合所对应的系统签名均相同;

若验证通过,则为所述APK对应的应用程序分配所述第二受限权限。

根据本申请实施例的第二方面,提供一种APK签名认证的装置,所述装置包括:

第一权限验证模块,用于在运行APK的过程中,若检测到所述APK对应的应用程序请求获取第一受限权限,则根据预先保存的特定签名对所述APK对应的自签名进行验证,所述第一受限权限是针对指定的关键操作所提供的调用权限,所述特定签名针对不同的产品集合,不同的产品集合所对应的特定签名各不相同;

第一权限分配模块,用于在根据预先保存的特定签名对所述APK对应的自签名验证通过后,为所述APK对应的应用程序分配所述第一受限权限。

可选的,所述装置还包括:

发送请求模块,用于向数字证书服务器发送用于获取数字证书的请求,所述请求携带产品集合标识,以使所述数字证书服务器接收到所述请求后,根据所述产品集合标识、系统当前时间、随机数生成数字证书;

接收模块,用于接收所述数字证书服务器发送的所述数字证书;

签名生成模块,用于根据所述数字证书生成所述特定签名。

可选的,所述装置还包括:

权限判断模块,用于当检测到所述APK对应的应用程序请求执行所述第一受限权限所对应的操作时,判断所述应用程序是否具有所述第一受限权限;

执行模块,用于若判断得出所述应用程序具有所述第一受限权限,则根据所述应用程序的请求执行所述对应的操作。

可选的,所述第一权限验证模块,具体用于:判断预先保存的特定签名与所述APK对应的自签名是否一致;

所述第一权限分配模块,具体用于:在判断得出所述特定签名与所述APK对应的自签名一致后,则为所述APK对应的应用程序分配所述第一受限权限。

可选的,所述装置还包括:

第二权限验证模块,用于在运行所述APK的过程中,若检测到所述APK对应的应用程序请求获取第二受限权限,则根据预先保存的系统签名对所述APK对应的自签名进行验证,所述第二受限权限是针对除所述指定的关键操作以外的普通操作所提供的调用权限,所述系统签名针对所有产品集合,每个产品集合所对应的系统签名均相同;

第二权限分配模块,用于在根据预先保存的系统签名对所述APK对应的自签名验证通过后,为所述APK对应的应用程序分配所述第二受限权限。

由上述实施例可见,在运行APK的过程中,当检测到该APK对应的应用程序请求获取第一受限权限时,通过预先保存的特定签名对该APK对应的自签名进行验证,在验证通过后,为该应用程序分配第一受限权限。由于该特定签名针对不同的产品集合,不同的产品集合所对应的特定签名各不相同,从而,可以实现控制同一应用程序仅可以在指定的产品集合上获取针对指定的关键操作所提供的调用权限。

附图说明

图1示例了本申请APK签名认证的方法的一个实施例流程图;

图2示例了本申请为产品集合分配特定签名的一个实施例流程图;

图3为本申请APK签名认证的装置所在智能设备的一种硬件结构图;

图4示例了本申请APK签名认证的装置的一个实施例框图;

图5示例了本申请APK签名认证的装置的另一个实施例框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。

在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

首先对本申请所提供的APK签名认证的方法所应用的应用场景作出如下示例:

智能电视生产厂家A可以通过SDK,为智能电视提供一些操作,例如,切换频道、搜台、音量调节、等等,并且,还可以将该些操作分为两部分,一部分为指定的关键操作,另一部分则为普通操作,例如切换频道、搜台为指定的关键操作,音量调节等为普通操作。在实际应用中,智能电视生产厂家A可以控制安装于智能电视上的应用程序是否具有针对指定的关键操作的调用权限,即智能电视生产厂家A可以限制只有某些应用程序才可以调用指定的关键操作。

为了满足智能电视生产厂家A限制应用程序能否调用指定的关键操作的应用需求,现有技术中,可以为智能电视分配系统签名,只有当应用程序具有与该系统签名相同的签名时,才为该应用程序分配指定的关键操作所对应的调用权限,允许该应用程序调用指定的关键操作。

在一些合作项目中,例如,智能电视生产厂家A与其软件合作方B共同生产一款型号为C的智能电视,为了描述方便,将型号C称为合作机型。通常情况下,智能电视生产厂家A只允许软件合作方B提供的应用程序仅能在合作机型所对应的智能电视上调用指定的关键操作。然而,在上述所描述的现有技术中,由于不同型号的智能电视所分配到的系统签名是相同的,从而,软件合作方B提供的,携带有与系统签名相同签名的应用程序可以在所有型号的智能电视上调用指定的关键操作。由此可见,现有技术无法满足智能电视生产厂家A的应用需求。

为了满足上述描述的智能电视生产厂家A的应用需求,本申请提供一种APK签名认证的方法,在该方法中,可以为每种型号的智能电视额外分配对应的特定签名,这里所说的“额外分配”是指,保留智能电视原有的系统签名的基础上,针对不同的型号,为智能电视增加一个特定签名。该特定签名不同于所述系统签名,并且同一型号的智能电视所对应的特定签名相同,不同型号的智能电视所对应的特定签名各不相同。

智能电视生产厂家A可以与其软件合作方B共享合作机型所对应的特定签名。从而,软件合作方B可以为其提供的应用程序分配该特定签名,以实现软件合作方B提供的应用程序可以在合作机型所对应的智能电视上,获取指定的关键操作的调用权限,而在其它机型所对应的智能电视上,无法获取指定的关键操作的调用权限。

如下,列举下述实施例对本申请所提供的APK签名认证的方法作详细说明:

请参见图1,示例了本申请APK签名认证的方法的一个实施例流程图,该流程在上述所描述的应用场景的基础上,可以包括以下步骤:

步骤S101:在运行APK的过程中,若检测到所述APK对应的应用程序请求获取第一受限权限,则根据预先保存的特定签名对所述APK对应的自签名进行验证,所述第一受限权限是针对指定的关键操作所提供的调用权限,所述特定签名针对不同的产品集合,不同的产品集合所对应的特定签名各不相同。

在本申请中,为了描述方便,可以将上述所描述的针对指定的关键操作的调用权限称为第一受限权限。此外,为了描述方便,还可以将针对除所述指定的关键操作以外的普通操作所提供的调用权限称为第二受限权限。

在本申请中,基于上述所描述的应用场景,可以将同一型号的智能电视看作一个产品集合,则不同型号的智能电视属于不同的产品集合,将智能电视生产厂家A与软件合作方B共同生产的的合作机型所对应的智能电视看作特定产品集合。

在本申请中,可以为不同的产品集合分配对应的特定签名,且不同的产品集合所对应的特定签名各不相同,即不同型号的智能电视所对应的特定签名各不相同。具体地,本申请中是如何为不同的产品集合分配对应的特定签名的,可以参见下述实施例中的描述,在此先不作详述。

智能电视在安装软件合作方B所提供的APK的过程中,若检测到该APK对应的应用程序请求获取针对指定的关键操作的调用权限,即检测到该APK对应的应用程序请求获取第一受限权限,则此时,智能电视可以使用自身对应的特定签名对该APK对应的自签名进行验证。

在一个可选的实现方式中,智能电视使用自身对应的特定签名对该APK对应的自签名进行验证的过程可以包括:判断该智能电视对应的特定签名与该APK对应的自签名是否一致。

此外,智能电视在安装软件合作方B所提供的APK的过程中,若检测到该APK对应的应用程序请求获取针对除指定的关键操作以外的普通操作的调用权限,即检测到该APK对应的应用程序请求获取第二受限权限,则此时,智能电视可以使用自身对应的系统签名对该APK对应的自签名进行验证。

步骤S102:若验证通过,则为所述APK对应的应用程序分配所述第一受限权限。

通过执行步骤S101,智能电视使用自身对应的特定签名对APK对应的自签名进行验证,若验证通过,即判断得出该智能电视对应的特定签名与该APK对应的自签名一致,则可以认为智能电视生产厂家A允许该APK对应的应用程序在该智能电视上调用指定的关键操作,则可以为该APK对应的应用程序分配针对指定的关键操作的调用权限,即第一受限权限。

此外,智能电视使用自身对应的系统签名对APK对应的自签名进行验证,若验证通过,则可以认为智能电视生产厂家A允许该APK对应的应用程序在该智能电视上调用除指定的关键操作以外的普通操作,则可以为该APK对应的应用程序分配针对该普通操作的调用权限,即第二受限权限。

此外,在本申请中,在安装APK对应的应用程序之后,若智能电视检测到该应用程序请求调用指定的关键操作,即第一受限权限所对应的操作时,可以判断该应用程序是否具有第一受限权限;若判断得出该应用程序具有第一受限权限时,则可以允许该应用程序调用指定的关键操作,具体地,可以根据该应用程序的请求执行指定的关键操作。

由上述实施例可见,在运行APK的过程中,当检测到该APK对应的应用程序请求获取第一受限权限时,通过预先保存的特定签名对该APK对应的自签名进行验证,在验证通过后,为该应用程序分配第一受限权限。由于该特定签名针对不同的产品集合,不同的产品集合所对应的特定签名各不相同,从而,可以实现控制同一应用程序仅可以在指定的产品集合上获取针对指定的关键操作所提供的调用权限。

请参见图2,示例了本申请为产品集合分配特定签名的一个实施例流程图,该流程在上述所描述的应用场景的基础上,以将同一型号的智能电视看作同一产品集合为例,可以包括以下步骤:

步骤S201:向数字证书服务器发送用于获取数字证书的请求,所述请求携带产品集合标识,以使所述数字证书服务器接收到所述请求后,根据所述产品集合标识、系统当前时间、随机数生成数字证书。

在本申请中,可以将同一型号的智能电视看作同一产品集合,那么,产品集合标识则可以为型号标识。

智能电视或智能电视管理服务器可以向数字证书服务器发送用于获取数字证书的请求,该请求可以携带型号标识。那么,当数字证书服务器接收到该请求后,可以根据型号标识、系统当前时间、随机数,利用预设的算法,例如非对称性加密算法生成数字证书,通过该种操作,可以基本保证数字证书服务器为不同型号的智能电视所生成的数字证书各不相同。

步骤S202:接收所述数字证书服务器发送的所述数字证书。

步骤S203:根据所述数字证书生成所述特定签名。

由于数字证书服务器为不同型号的智能电视所生成的数字证书各不相同,从而,根据数字证书为不同型号的智能电视所生成的特定签名也各不相同。具体是如何根据数字证书生成签名的,可以参见现有技术中的描述,本申请中对此不作详述。

由上述实施例可见,通过向数字证书服务器发送用于获取数字证书的请求,所述请求携带产品集合标识,以使所述数字证书服务器接收到所述请求后,根据所述产品集合标识、系统当前时间、随机数生成数字证书,在接收到数字证书服务器发送的数字证书后,根据该数字证书生成特定签名。可以有效地保证为不同的产品集合所分配的特定签名各不相同,从而可以有效地实现后续根据该特定签名确定是否可以为应用程序分配针对指定的关键操作的调用权限,即第一受限权限。

与前述APK签名认证的方法的实施例相对应,本申请还提供了APK签名认证的装置的实施例。

本申请APK签名认证的装置的实施例可以应用在智能设备,例如智能电视上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在智能设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图3所示,为本申请APK签名认证的装置所在智能设备的一种硬件结构图,除了图3所示的处理器31、内存32、网络接口33、以及非易失性存储器34之外,实施例中装置所在的智能设备通常根据该智能设备的实际功能,还可以包括其他硬件,对此不再赘述。

请参考图4,示例了本申请APK签名认证的装置的一个实施例框图,该装置可以包括:第一权限验证模块41、第一权限分配模块42。

其中,该第一权限验证模块41,可以用于在运行APK的过程中,若检测到所述APK对应的应用程序请求获取第一受限权限,则根据预先保存的特定签名对所述APK对应的自签名进行验证,所述第一受限权限是针对指定的关键操作所提供的调用权限,所述特定签名针对不同的产品集合,不同的产品集合所对应的特定签名各不相同;

该第一权限分配模块42,可以用于在根据预先保存的特定签名对所述APK对应的自签名验证通过后,为所述APK对应的应用程序分配所述第一受限权限。

在一实施例中,第一权限验证模块41,具体可以用于:判断预先保存的特定签名与所述APK对应的自签名是否一致;

在另一实施例中,该装置还可以包括(图4中未示出):第二权限验证模块、第二权限分配模块。

其中,该第二权限验证模块,可以用于在运行所述APK的过程中,若检测到所述APK对应的应用程序请求获取第二受限权限,则根据预先保存的系统签名对所述APK对应的自签名进行验证,所述第二受限权限是针对除所述指定的关键操作以外的普通操作所提供的调用权限,所述系统签名针对所有产品集合,每个产品集合所对应的系统签名均相同;

该第二权限分配模块,可以用于在根据预先保存的系统签名对所述APK对应的自签名验证通过后,为所述APK对应的应用程序分配所述第二受限权限。

在又一实施例中,该装置还可以包括(图4中未示出):权限判断模块、执行模块。

其中,该权限判断模块,可以用于当检测到所述APK对应的应用程序请求执行所述第一受限权限所对应的操作时,判断所述应用程序是否具有所述第一受限权限;

该执行模块,可以用于若判断得出所述应用程序具有所述第一受限权限,则根据所述应用程序的请求执行所述对应的操作。

请参考图5,示例了本申请APK签名认证的装置的另一个实施例框图,该图5所示的装置,在上述图4所示装置的基础上,还可以包括:发送请求模块43、接收模块44、签名生成模块45。

其中,该发送请求模块43,可以用于向数字证书服务器发送用于获取数字证书的请求,所述请求携带产品集合标识,以使所述数字证书服务器接收到所述请求后,根据所述产品集合标识、系统当前时间、随机数生成数字证书;

该接收模块44,可以用于接收所述数字证书服务器发送的所述数字证书;

该签名生成模块45,可以用于根据所述数字证书生成所述特定签名。

上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

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