应用程序安全认证的方法、装置、计算机设备及存储介质与流程

文档序号:11287126阅读:284来源:国知局
应用程序安全认证的方法、装置、计算机设备及存储介质与流程
本发明涉及终端处理领域,特别是涉及一种应用程序安全认证的方法、装置、计算机设备及存储介质。
背景技术
:pos终端作为一种支付设备,其安全性显得尤为重要,加上国内第三方支付发展越来越迅猛,竞争越来越激烈,市场行出现了非法删除客户的应用,然后安装自己应用的事件,导致客户利益受损。为了保证pos终端上应用程序的安全性,传统的做法是采用私钥对应用程序进行签名,然后将对应的公钥存储到pos上,这样下载应用程序的时候则会采用公钥对应用程序进行签名验证,只有验证成功的应用程序才可以下载到pos终端上运行。但是,目前pos终端中存储的公钥一旦确定就不能修改,这样不利于客户发展自己的下一级客户,因为每个客户都希望采购的pos终端中仅能灌装自己授权的应用程序,所以,目前pos终端的安全认证过于死板,不符合业务需求的灵活性和便利性。技术实现要素:基于此,有必要针对上述pos终端的安全认证过于死板的问题,提出一种比较灵活的应用程序安全认证的方法和装置。一种应用程序安全认证的方法,所述方法包括:获取待下载的应用程序文件,提取所述应用程序文件中的签名信息;获取多级密钥体系中包含的公钥信息,根据所述公钥信息的优先级顺序获取当前优先级最高的公钥信息;采用获取到的当前优先级最高的公钥信息对所述签名信息进行验证;若验证通过,则允许下载所述应用程序文件。在其中一个实施例中,在所述获取待下载的应用程序文件,提取所述应用程序文件中的签名信息的步骤之前还包括:将经过验证的至少一个公钥信息下载到所述多级密钥体系中;将多级密钥体系中的所述公钥信息按照层级的高低进行优先级的设置,层级越高,优先级越高。在其中一个实施例中,获取多级密钥体系中包含的公钥信息,根据所述公钥信息的优先级顺序获取当前优先级最高的公钥信息的步骤包括:获取多级密钥体系中包含的公钥信息,当所述多级密钥体系中包括多层公钥信息时,则采用根公钥信息对第一层中的第一公钥信息的合法性进行验证,若验证成功,则采用第一层中的第一公钥信息对第二层中的第二公钥信息的合法性进行验证,依次类推,直到获取到当前合法的优先级最高的公钥信息。在其中一个实施例中,所述方法还包括:接收删除当前优先级最高的公钥信息的指令,所述指令是通过下载次优先级的公钥信息生成的,所述次优先级的公钥信息是采用当前优先级最高的公钥信息对应的私钥信息进行签名的;根据所述指令删除所述当前优先级最高的公钥信息。在其中一个实施例中,在所述采用获取到的当前优先级最高的公钥信息对所述签名信息进行验证的步骤之前还包括:读取预先存储的最高层公钥信息对应的哈希值密文;判断获取到的当前优先级最高的公钥信息与所述哈希值密文是否匹配;若匹配,则进入采用获取到的当前优先级最高的公钥信息对所述签名信息进行验证的步骤。在其中一个实施例中,所述判断获取到的当前优先级最高的公钥信息与所述哈希值密文是否匹配的步骤包括:对获取到的当前优先级最高的公钥信息的哈希值进行加密生成第一哈希值密文;判断所述第一哈希值密文与所述最高层公钥信息对应的哈希值密文是否一致;若一致,则判定所述当前优先级最高的公钥信息与所述哈希值密文匹配。一种应用程序安全认证的装置,所述装置包括:提取模块,用于获取待下载的应用程序文件,提取所述应用程序文件中的签名信息;获取模块,用于获取多级密钥体系中包含的公钥信息,根据所述公钥信息的优先级顺序获取当前优先级最高的公钥信息;验证模块,用于采用获取到的当前优先级最高的公钥信息对所述签名信息进行验证;下载模块,用于若对所述签名信息验证通过,则允许下载所述应用程序文件。在其中一个实施例中,所述装置还包括:公钥信息下载模块,用于将经过验证的至少一个公钥信息下载到所述多级密钥体系中;设置模块,用于将多级密钥体系中的所述公钥信息按照层级的高低进行优先级的设置,层级越高,优先级越高。在其中一个实施例中,所述获取模块还用于获取多级密钥体系中包含的公钥信息,当所述多级密钥体系中包括多层公钥信息时,则采用根公钥信息对第一层中的第一公钥信息的合法性进行验证,若验证成功,则采用第一层中的第一公钥信息对第二层中的第二公钥信息的合法性进行验证,依次类推,直到获取到当前合法的优先级最高的公钥信息。在其中一个实施例中,所述装置还包括:指令接收模块,用于接收删除当前优先级最高的公钥信息的指令,所述指令是通过下载次优先级的公钥信息生成的,所述次优先级的公钥信息是采用当前优先级最高的公钥信息对应的私钥信息进行签名的;删除模块,用于根据所述指令删除所述当前优先级最高的公钥信息。在其中一个实施例中,所述装置还包括:读取模块,用于读取预先存储的最高层公钥信息对应的哈希值密文;判断模块,用于判断获取到的当前优先级最高的公钥信息与所述哈希值密文是否匹配,若匹配,则通知验证模块采用获取到的当前优先级最高的公钥信息对所述签名信息进行验证。在其中一个实施例中,所述判断模块包括:加密模块,用于对获取到的当前优先级最高的公钥信息的哈希值进行加密生成第一哈希值密文;哈希值密文判断模块,用于判断所述第一哈希值密文与所述最高层公钥信息对应的哈希值密文是否一致,若一致,则判定所述当前优先级最高的公钥信息与所述哈希值密文匹配。一种计算机设备,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:获取待下载的应用程序文件,提取所述应用程序文件中的签名信息;获取多级密钥体系中包含的公钥信息,根据所述公钥信息的优先级顺序获取当前优先级最高的公钥信息;采用获取到的当前优先级最高的公钥信息对所述签名信息进行验证;若验证通过,则允许下载所述应用程序文件。一个或多个存储有计算机可执行指令的非易失性计算机可读存储介质,所述计算机可执行指令被一个或多个处理器执行时,使得所述一个或多个处理器执行以下步骤:获取待下载的应用程序文件,提取所述应用程序文件中的签名信息;获取多级密钥体系中包含的公钥信息,根据所述公钥信息的优先级顺序获取当前优先级最高的公钥信息;采用获取到的当前优先级最高的公钥信息对所述签名信息进行验证;若验证通过,则允许下载所述应用程序文件。上述应用程序安全认证的方法、装置、计算机设备及存储介质,通过在pos终端内设置多级密钥体系,该多级密钥体系里面可以同时存储多个公钥信息,但对应用程序文件中的签名信息进行验证时,只能使用当前优先级最高的公钥信息进行验证。这样,当客户想发展自己的下一级代理时,只需要将下一级代理的公钥下载到pos终端内,存储到优先级比较高的层级,这样,pos终端中有效的公钥信息就变成了下一级代理的公钥信息,此时仅能下载该下一级代理授权的应用程序。该方法不仅有利于保护pos终端应用程序的安全,且通过动态的切换终端中有效的公钥信息有利于客户发展自己的下一级客户,相对于传统的死板方式,该方法更符合业务需求的灵活性和便利性。附图说明图1为一个实施例中终端的内部结构框图;图2为一个实施例中应用程序安全认证的方法流程图;图3为一个实施例中三级密钥体系的示意图;图4为另一个实施例中应用程序安全认证的方法流程图;图5为一个实施例中获取多级密钥体系中包含的公钥信息,根据公钥信息的优先级顺序获取当前优先级最高的公钥信息的方法流程图;图6为又一个实施例中应用程序安全认证的方法流程图;图7为再一个实施例中应用程序安全认证的方法流程图;图8为一个实施例中判断获取到的当前优先级最高的公钥信息与哈希值密文是否匹配的方法流程图;图9为一个实施例中应用程序安全认证的装置结构框图;图10为另一个实施例中应用程序安全认证的装置结构框图;图11为又一个实施例中应用程序安全认证的装置结构框图;图12为再一个实施例中应用程序安全认证的装置结构框图;图13为一个实施例中判断模块的结构框图。具体实施方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。如图1所示,在一个实施例中,终端102的内部结构如图1所示,包括通过系统总线连接的处理器、内存储器、非易失性存储介质、网络接口、显示屏和输入装置。其中,终端102的非易失性存储介质存储有操作系统,还包括一种应用程序安全认证的装置,该应用程序安全认证的装置用于实现一种应用程序安全认证的方法。该处理器用于提供计算和控制能力,支撑整个终端的运行。终端中的内存储器为非易失性存储介质中的应用程序安全认证的装置的运行提供环境,该内存储器中存有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行一种应用程序安全认证的方法。网络接口用于连接到网络进行通信。终端102的显示屏可以是液晶显示屏或者电子墨水显示屏等,输入装置可以是显示屏上覆盖的触摸层,也可以是电子设备外壳上设置的按键、轨迹球或触控板,也可以是外接的键盘、触控板或鼠标等。该终端可以是pos机、智能手机、笔记本电脑、台式计算机等。本领域技术人员可以理解,图1中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的终端的限定,具体的终端可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。如图2所示,在一个实施例中,提出了一种应用程序安全认证的方法,以应用于pos终端中为例,该方法包括:步骤202,获取待下载的应用程序文件,提取应用程序文件中的签名信息。在本实施例中,pos终端为一种支付设备,其安全性显得尤为重要,为了pos终端的安全性,在下载应用程序之前,需要对待下载的应用程序的合法性进行验证,仅允许下载授权的应用程序文件进行安装。应用程序文件是指安装应用程序需要下载的文件。用户为了标记自己授权的应用程序文件,需要采用加密算法对自己授权的应用程序文件进行加密。一般采用的加密算法为不对称加密算法,不对称加密算法包括公钥和私钥,其中,公钥(puk,publickey)和私钥(pvk,privatekey)是成对的,比如,用私钥加密的内容只能用相应的公钥解密,同样地,如果是用公钥加密的内容只能用相应的私钥进行解密。在一个实施例中,为了保证下载的应用程序文件是用户授权的,首先,需要用户用自己的私钥对该应用程序文件进行加密,即进行签名,然后将相应的公钥存储到终端上。当终端下载该应用程序文件时,提取应用程序文件中的签名信息,采用pos终端中的公钥对该应用程序文件进行签名验证,若验证成功,说明该应用程序文件当初是采用相应的私钥进行加密的,也就是说,该应用程序文件是用户授权的。步骤204,获取多级密钥体系中包含的公钥信息,根据公钥信息的优先级顺序获取当前优先级最高的公钥信息。在本实施例中,为了能够灵活的切换用来进行签名验证的公钥,通过在终端内部设置多级密钥体系,该多级密钥体系中能够同时存储多个公钥信息,但是不同的公钥信息优先级不同,只有当前优先级最高的公钥信息才能对应用程序文件中的签名信息进行验证,即只能下载当前优先级最高的公钥信息验证成功的应用程序文件。如图3所示,在一个实施例中,示出了一个三级密钥体系的示意图,该密钥体系中有3个存储单元,c1,c2和c3,分别用来存储不同的公钥信息,其中,c3对应的优先级最高,c2次之,c1的优先级最低。如果该三级密钥体系中有两个或两个以上的公钥信息,那么只有最高层次的公钥信息才能对应用程序文件的签名信息进行验证。比如,c1和c2同时存储有公钥信息,pos终端则采用c2单元存储的puk(publickey,公钥)来验证应用程序文件中的签名信息。若c1,c2和c3中同时存在公钥信息,则用c3单元的puk来验证应用程序文件的签名信息,当然如果只有c1中存在公钥信息,则使用c1单元的puk来验证应用程序文件的签名信息。其中,公钥信息存储的单元是根据公钥下载的先后顺序决定的,比如,如果第一个下载到多级密钥体系中的是第一公钥信息,那么就将该第一公钥信息存储到c1单元,如果之后再下载第二公钥信息,那么按照顺序将第二公钥信息存储到c2单元,依次类推。在一个实施例中,当客户a从商家购买到pos终端后,首先采用商家的私钥对客户a的公钥进行签名,然后下载到pos终端中,此时,pos终端中的有效公钥就从商家的公钥切换成了客户a的公钥。之所以要先使用商家的私钥对客户a的公钥进行签名,是为了防止未经商家授权的客户将自己的公钥下载到pos机中。其中,pos机中预先存储了商家的公钥,当下载客户a的公钥时,采用商家的公钥对客户a的公钥进行签名验证,若验证通过,说明客户a是商家授权的客户,允许下载该客户a的公钥,当下载成功后,该客户a的公钥就成了当前优先级最高的公钥,只允许该客户a授权的应用程序文件下载到该pos终端中。当客户a要发展自己的下一级代理客户b时,则采用客户a的私钥对下一级代理客户b的公钥进行签名,然后下载到pos终端中,同样地,下载成功后,该客户b的公钥就成了当前优先级最高的公钥,只允许该客户b授权的应用程序下载到该pos终端中。步骤206,采用获取到的当前优先级最高的公钥信息对签名信息进行验证,若验证通过,则进入步骤208,若验证不通过,则进入步骤210。在本实施例中,当pos终端获取到优先级最高的公钥信息时,则采用该公钥信息对应用程序文件包含的签名信息进行验证,若验证通过,则说明该应用程序文件是合法的,则允许下载该应用程序文件。若验证不通过,则不允许下载该应用程序文件。步骤208,允许下载应用程序文件。在本实施例中,当采用当前优先级最高的公钥信息对应用程序文件中的签名信息验证成功时,说明该应用程序文件是采用对应的私钥信息进行签名的,也说明该应用程序文件是经过授权的合法的程序文件,此时则允许下载该应用程序文件,并根据下载到的应用程序文件在终端中安装相应的应用程序。步骤210,拒绝下载应用程序文件。在本实施例中,当采用当前优先级最高的公钥信息对应用程序文件中的签名信息验证失败时,说明该应用程序文件是非法的,为了保证终端的安全性,不允许下载该应用程序文件。在一个实施例中,当获取不到应用程序文件中的签名信息时,说明该应用程序文件没有进行过相应的加密,属于非法的应用程序,直接拒绝下载该应用程序文件。在本实施例中,通过在pos终端内设置多级密钥体系,该多级密钥体系里面可以同时存储多个公钥信息,但对应用程序文件中的签名信息进行验证时,只能使用当前优先级最高的公钥信息进行验证。当客户想发展自己的下一级代理时,只需要将下一级代理的公钥下载到pos终端内优先级比较高的层级,这样,pos终端中有效的公钥信息就变成了下一级代理的公钥信息,此时仅能下载该下一级代理授权的应用程序。该方法不仅有利于保护pos终端应用程序的安全,且通过动态的切换终端中有效的公钥信息有利于客户发展自己的下一级客户,相对于传统的死板方式,该方法更符合业务需求的灵活性和便利性。如图4所示,在一个实施例中,在所述获取待下载的应用程序文件,提取所述应用程序文件中的签名信息的步骤之前还包括:步骤200,将经过验证的至少一个公钥信息下载到所述多级密钥体系中。在本实施例中,首先,pos终端需要将公钥信息下载存储到多级密钥体系中,在公钥信息下载到多级密钥体系时,需要对该公钥信息进行签名验证。在一个实施例中,可以采用统一的根公钥信息对将要下载的公钥信息进行验证。为了进一步保证公钥信息的安全性,在另一个实施例中,采用前一层的公钥信息对将要下载的公钥信息进行验证,若验证成功,则说明该公钥信息是合法的,允许将该公钥信息下载到多级密钥体系中。具体地,pos终端在出厂时,里面会嵌入一个根公钥,在首次将公钥信息下载到多级密钥体系中时(为了便于区别,将首次下载成功的公钥信息称为“第一公钥信息”,第二次下载成功的公钥信息称为“第二公钥信息”,依次类推),需要采用系统中的根公钥信息对第一公钥信息进行签名验证,当将第二公钥信息下载到多级密钥体系中时,则需要采用第一公钥信息对第二公钥信息进行签名验证,依次类推。其中,公钥信息和私钥信息是成对出现的,比如,根公钥和根私钥是一对,第一公钥与第一私钥是一对,第二公钥与第二私钥是一对,依次类推。所以能够用根公钥进行签名验证成功的,之前必定是采用根私钥进行加密的,同样地,能够用第一公钥进行签名验证成功的,之前必定是采用第一私钥进行加密的,依次类推。故,在上述实施例中,将至少一个公钥信息下载到多级密钥体系之前,首先需要用根私钥信息对第一公钥信息进行加密,然后如果还需要下载第二公钥信息,则需要采用第一私钥信息对第二公钥信息进行加密,依次类推。具体地,将采用根私钥信息进行签名的第一公钥信息下载到多级密钥体系中的第一层级;将采用第一私钥信息进行签名的第二公钥信息下载到多级密钥体系中的第二层级;将采用第二私钥信息进行签名的第三公钥信息下载到多级密钥体系中的第三层级,依次类推。再次需要说明的是,私钥和公钥是互为一对的,其中,根私钥信息和根公钥信息是一对,第一私钥信息和第一公钥信息是一对,第二私钥信息和第二公钥信息是一对,第三私钥信息和第三公钥信息是一对,依次类推等。步骤201,将多级密钥体系中的公钥信息按照层级的高低进行优先级的设置,层级越高,优先级越高。在本实施例中,为了能够动态的切换公钥信息,需要在多级密钥体系中设置公钥信息的优先级顺序,只有优先级最高的公钥信息是有效的,能够对应用程序文件的签名信息进行验证。具体地,将多级密钥体系中的公钥信息按照层级的高低进行优先级的设置,层级越高,优先级越高。其中,层级的设定是根据公钥信息下载的先后顺序决定的,下载的第一个公钥信息存储在第一层级,下载的第二个公钥信息存储在第二层级,下载的第三个公钥信息存储在第三层级,依次类推。这样的设定有利于客户发展自己的下一级代理客户。后下载的公钥信息当然是最新的客户所拥有的公钥信息,所以优先级最高,此时只允许下载该最新的客户授权的应用程序文件,符合业务操作上的灵活性和便利性。如图5所示,在一个实施例中,获取多级密钥体系中包含的公钥信息,根据公钥信息的优先级顺序获取当前优先级最高的公钥信息的步骤204包括:步骤204a,获取多级密钥体系中包含的公钥信息,若多级密钥体系中包括多层公钥信息时,进入步骤204b,若多级密钥体系中包括一层公钥信息时,则进入步骤204c。在本实施例中,为了防止不法分子通过修改pos终端中的优先级最高的公钥信息,然后下载非法的应用程序文件,继而造成客户损失。在下载应用程序文件时,需要从前而后层层验证各层公钥信息的合法性。由于每一层的公钥信息是采用前一层的私钥进行加密的,所以在下载或启动时,可以采用前一层的公钥依次对后一层的公钥信息进行验证。首先,获取多级密钥体系中存储的公钥信息,当里面有两个或两个以上的公钥信息时,则需要采用根公钥信息对第一层中的第一公钥信息的合法性进行验证,若验证成功,则继续采用第一层中的第一公钥信息对第二层中的第二公钥信息的合法性进行验证,依次类推,直到获取到当前合法的优先级最高的公钥信息。当多级密钥体系中当前只有一个公钥信息时,那么只需要用存储在pos终端内的根公钥信息对第一层中的第一公钥信息进行验证,若验证通过,则该第一公钥信息即为当前优先级最高的公钥信息,直接采用该第一公钥信息对应用程序文件中的签名信息进行验证。步骤204b,采用根公钥信息对第一层中的第一公钥信息的合法性进行验证,若验证成功,则采用第一层中的第一公钥信息对第二层中的第二公钥信息的合法性进行验证,依次类推,直到获取到当前合法的优先级最高的公钥信息。在本实施例中,根公钥信息是内嵌在终端中的,并不在多级密钥体系内。当多级密钥体系中包含多个公钥信息时,首先,使用根公钥对多级密钥体系内的第一层中的第一公钥信息的合法性进行验证,若验证失败,则说明该终端中的公钥信息可能已被不法分子修改,所以直接拒绝下载上述应用程序文件。若验证成功,则接下来采用第一层中的第一公钥信息对第二层中的第二公钥信息的合法性进行验证,依次类推,直到获取到当前合法的优先级最高的公钥信息。若第二公钥信息已经是当前优先级最高的公钥信息,则后续直接使用该第二公钥信息对应用程序文件中的签名信息进行验证。若还存在更高层级的公钥信息,则继续采用第二公钥信息对第三层中的公钥信息的合法性进行验证,依次类推。步骤204c,采用根公钥对第一层中的第一公钥信息的合法性进行验证,若验证成功,则将该公钥信息作为当前优先级最高的公钥信息。在本实施例中,当多级密钥体系中只有一个公钥信息时,则直接采用根公钥对第一层中的第一公钥信息的合法性进行验证,若验证成功,则将该公钥信息作为当前优先级最高的公钥信息,若验证失败,说明该公钥信息已被篡改,直接拒绝应用程序文件下载。在一个实施例中,以三级多级密钥体系为例(参考图3),介绍一下该三级密钥体系中每一层公钥状态的转换关系如下:首先,第一层公钥,即c1单元存储的公钥状态可以有三种,一种是没有公钥,一种是厂家自己的公钥,一种是客户1的公钥。c1单元最初处于没有公钥的状态,当将pos卖给客户1后,如果客户1暂时没有自己的公钥,则可以先下载采用根公钥加密的厂家的公钥将c1单元的公钥状态转换为厂家自己的公钥,后续客户1有自己的公钥时,再下载采用根公钥加密的客户1的公钥,此时,c1单元的公钥状态就转换为了客户1的公钥。当然如果客户1最初就有自己的公钥,可以直接下载采用根公钥加密的客户1的公钥,c1单元的公钥状态就可以直接从没有公钥转换到客户1的公钥。c2单元的公钥状态有两种,一种是没有公钥,一种是客户2的公钥。当没有公钥下载到c2单元时,c2单元的公钥状态为没有公钥,当下载到采用客户1的私钥签名的客户2的公钥时,那么c2的公钥状态就从没有公钥转换为客户2的公钥状态。c3单元的公钥状态也有两种,一种是没有公钥,一种是客户3的公钥。通过下载采用客户2的私钥签名的客户3的公钥可以将c3单元的公钥状态从没有公钥转换为客户3的公钥。当pos终端的当前优先级最高的公钥为客户1的公钥或客户2的公钥或客户3的公钥时,称为终端锁定状态。此时,只允许下载客户自己私钥签名的应用,有效的保护了客户机器的安全性。此外,当处于客户1的公钥状态时,客户1有权决定是否将自己的机器授权给下一级的客户2使用,同样地,客户2也有权决定是否将自己的机器授权给再下一级的客户3使用,有效的保证了使用的灵活性。在一个实施例中,公钥puk的签名格式的示意如表1中所示。其中,signature段为用私钥加密产生的256字节数据;signaturelength标识私钥加密的长度;publickeyindex是指公钥的索引,用于标识当前使用的是哪一个公私钥对;reserve表示保留的字段;signedflag用于标识当前使用的是哪个加密版本。表1puksignature(256bytes)signaturelengthpublickeyindexreservesignedflag考虑到有些代理客户购买了pos终端,并在该pos终端中安装了自己的公钥信息后又想将pos终端退回的情况,为此,还设置了权限退回的流程。如图6所示,在一个实施例中,上述应用程序安全认证的方法还包括:步骤212,接收删除当前优先级最高的公钥信息的指令,该指令是通过下载次优先级的公钥信息生成的,次优先级的公钥信息是采用当前优先级最高的公钥信息对应的私钥信息进行签名的。步骤214,根据指令删除当前优先级最高的公钥信息。在本实施例中,当客户购买了pos终端,并在该终端中安装了自己的公钥信息后,想退回该pos终端给自己的上一级代理客户时,需要将安装在pos终端中的自己的公钥信息删除,然后把相应的权限也退回给上一级代理客户。而为了防止其他人也可以对该最高层的公钥信息进行轻易的删除,那么删除指令必须是经过该当前客户授权才能生成的。其中,次优先级的公钥信息是指仅次于当前最高优先级的公钥信息,即处于第二的公钥信息,也就是上一级代理客户的公钥信息。为了标记是当前客户授权的删除操作,通过采用当前客户的私钥信息对次优先级的公钥信息进行加密。然后将该经过加密的次优先级的公钥信息下载到pos终端中,当前客户的公钥信息(即当前优先级最高的公钥信息)会对该次优先级的公钥信息进行签名验证,若验证成功,说明是当前客户授权的,则生成删除当前优先级最高的公钥信息的指令,继而根据删除指令删除当前客户的公钥信息。举例说明,如果客户3从客户2那里购买了pos机,并在里面安装了客户3自己的公钥信息,现在客户3想要将pos机退回给客户2,相应的也要把权限退回给客户2。由于客户3的公钥信息是当前优先级最高的公钥信息,客户2公钥信息的优先级是仅次于客户3的,所以如果将客户3的公钥信息删除,那么客户2中的公钥信息将会成为优先级最高的公钥信息,也就相当于把权限退回给了客户2。但是为了防止不法分子也能够轻易的删除当前优先级最高的公钥信息,即如果客户3没有将pos机退回给客户2,而不法分子将客户3的公钥信息进行了删除,那么将会造成客户3的损失。所以如果要进行相应的删除操作,必须经过客户3的授权,具体地,采用客户3的私钥信息去加密客户2的公钥信息,然后下载客户2的公钥信息,采用客户3的公钥信息进行验证,若验证成功,说明该操作是客户3授权的,那么就会相应的生成删除客户3公钥信息的指令,根据该指令进行相应的删除。如图7所示,在一个实施例中,在采用获取到的当前优先级最高的公钥信息对签名信息进行验证之前还包括:步骤216,读取预先存储的最高层公钥信息对应的哈希值密文。步骤218,判断获取到的当前优先级最高的公钥信息与所述哈希值密文是否匹配;若匹配,则进入步骤206,若不一致,则进入步骤210。在本实施例中,为了进一步提高pos终端的安全性,防止不法分子通过直接改写flash数据将处于最高层次的公钥信息(puk)擦除,从而直接退回到前一层的puk。每当更新公钥信息,终端都会在系统中保存最高层次puk的哈希值密文。其中,哈希值密文是指采用加密算法对公钥信息的哈希值进行加密生成的密文,用于唯一标识一个公钥信息。所以为了对获取到的当前优先级最高的公钥信息的合法性进行进一步的合法性验证,首先,读取预先存储的最高层公钥信息对应的哈希值密文,然后验证获取到的当前优先级最高的公钥信息与该哈希值密文是否匹配,即判断获取到的当前优先级最高的公钥信息是不是之前存储的最高层次所对应的公钥信息,若是,说明最高层次的公钥信息没有被非法删除,允许采用该获取到的当前优先级最高的公钥信息对应用程序的签名信息进行验证,若否,说明最高层次的公钥信息已被非法删除,拒绝下载应用程序文件。其中,判断获取到的当前优先级最高的公钥信息与哈希值密文是否匹配的方法有多种。在一个实施例中,首先采用哈希算法计算与当前优先级最高的公钥信息对应的第一哈希值,然后对最高层公钥信息对应的哈希值密文进行解密,获取最高层公钥信息对应的第二哈希值,通过比较第一哈希值与第二哈希值是否相同来判断获取到的当前优先级最高的公钥信息与上述哈希值密文是否匹配,若第一哈希值与第二哈希值相同,说明两者匹配。在另一个实施例中,首先采用哈希算法将获取到的当前优先级最高的公钥信息转换为哈希值的表示形式,然后对当前优先级最高的公钥信息对应的哈希值进行加密生成第一哈希值密文,进而比较第一哈希值密文与上述最高层公钥信息对应的哈希值密文是否相同,若相同,判定获取到的当前优先级最高的公钥信息与哈希值密文匹配。如图8所示,在一个实施例中,判断获取到的当前优先级最高的公钥信息与哈希值密文是否匹配的步骤218包括:步骤218a,对获取到的当前优先级最高的公钥信息的哈希值进行加密生成第一哈希值密文。步骤218b,判断第一哈希值密文与最高层公钥信息对应的哈希值密文是否一致,若一致,则判定匹配,若不一致,则判定不匹配。在本实施例中,为了判断获取到的当前优先级最高的公钥信息与哈希值密文是否匹配,需要对获取到的当前优先级最高的公钥信息的哈希值进行加密生成第一哈希值密文。首先,采用哈希算法将获取到的当前优先级最高的公钥信息转换为哈希值的表示形式,然后对当前优先级最高的公钥信息对应的哈希值进行加密生成第一哈希值密文,比较第一哈希值密文与最高层对应的哈希值密文是否相同,若相同,说明获取到的当前优先级最高的公钥信息是合法的,允许采用该获取到的当前优先级最高的公钥信息对签名信息进行验证。若不相同,说明该公钥信息很可能已经被不法分子篡改,直接拒绝下载上述应用程序文件。具体地,每当有新的公钥信息下载到pos终端中时,可以采用一个16字节随机数作为3des的密钥,采用该3des加密算法对新的公钥信息(即优先级最高的公钥信息)的哈希值(hash)进行加密生成哈希值密文存储到固定区域(比如,存储到nandflash的固定区域),而且每次写入新的公钥信息对应的哈希值密文时,都会产生擦除旧的哈希值密文,然后存入该新的哈希值密文,这样就可以保证该固定区域存储的永远是最新的公钥信息对应的哈希值密文。其中,上述16字节随机数可以保存在系统的otp区域,由系统首次运行产生写入otp区域,其中,otp区域为一次性程序写入区域,后续不允许进行修改。这样便于后续采用该16字节随机数对获取到的优先级最高的公钥信息的哈希值进行加密,通过将16字节随机数保存在一次性写入区域,有效的保障了16字节随机数的安全性,防止被篡改。在本实施例中,首先,一方面,获取当前优先级最高的公钥信息(puk),然后对计算该puk对应的哈希值,进而对该哈希值采用3des加密算法进行加密,生成一个哈希值密文,另一方面读取存储的最高层公钥信息对应的哈希值密文,然后比较两个哈希值密文是否相同,若相同,则匹配,若不相同,则不匹配。如图9所示,一种应用程序安全认证的装置,该装置包括:提取模块902,用于获取待下载的应用程序文件,提取所述应用程序文件中的签名信息。获取模块904,用于获取多级密钥体系中包含的公钥信息,根据所述公钥信息的优先级顺序获取当前优先级最高的公钥信息。验证模块906,用于采用获取到的当前优先级最高的公钥信息对所述签名信息进行验证。下载模块908,用于若对所述签名信息验证通过,则允许下载所述应用程序文件。如图10所示,在一个实施例中,上述应用程序安全认证的装置还包括:公钥信息下载模块900,用于将经过验证的至少一个公钥信息下载到所述多级密钥体系中。设置模块901,用于将多级密钥体系中的所述公钥信息按照层级的高低进行优先级的设置,层级越高,优先级越高。在一个实施例中,获取模块904还用于获取多级密钥体系中包含的公钥信息,当所述多级密钥体系中包括多层公钥信息时,则采用根公钥信息对第一层中的第一公钥信息的合法性进行验证,若验证成功,则采用第一层中的第一公钥信息对第二层中的第二公钥信息的合法性进行验证,依次类推,直到获取到当前合法的优先级最高的公钥信息。如图11所示,在一个实施例中,上述应用程序安全认证的装置还包括:指令接收模块910,用于接收删除当前优先级最高的公钥信息的指令,所述指令是通过下载次优先级的公钥信息生成的,所述次优先级的公钥信息是采用当前优先级最高的公钥信息对应的私钥信息进行签名的。删除模块912,用于根据所述指令删除所述当前优先级最高的公钥信息。如图12所示,在一个实施例中,上述应用程序安全认证的装置还包括:读取模块914,用于读取预先存储的最高层公钥信息对应的哈希值密文。判断模块916,用于判断获取到的当前优先级最高的公钥信息与所述哈希值密文是否匹配,若匹配,则通知验证模块采用获取到的当前优先级最高的公钥信息对所述签名信息进行验证。如图13所示,在一个实施例中,判断模块916包括:加密模块916a,用于对获取到的当前优先级最高的公钥信息的哈希值进行加密生成第一哈希值密文。哈希值密文判断模块916b,用于判断所述第一哈希值密文与所述最高层公钥信息对应的哈希值密文是否一致,若一致,则判定所述当前优先级最高的公钥信息与所述哈希值密文匹配。在一个实施例中,提出了一种计算机设备,所述计算机设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:获取待下载的应用程序文件,提取所述应用程序文件中的签名信息;获取多级密钥体系中包含的公钥信息,根据所述公钥信息的优先级顺序获取当前优先级最高的公钥信息;采用获取到的当前优先级最高的公钥信息对所述签名信息进行验证;若验证通过,则允许下载所述应用程序文件。在一个实施例中,所述处理器还用于执行以下步骤:将经过验证的至少一个公钥信息下载到所述多级密钥体系中;将多级密钥体系中的所述公钥信息按照层级的高低进行优先级的设置,层级越高,优先级越高。在一个实施例中,所述处理器所执行的获取多级密钥体系中包含的公钥信息,根据所述公钥信息的优先级顺序获取当前优先级最高的公钥信息的包括:获取多级密钥体系中包含的公钥信息,当所述多级密钥体系中包括多层公钥信息时,则采用根公钥信息对第一层中的第一公钥信息的合法性进行验证,若验证成功,则采用第一层中的第一公钥信息对第二层中的第二公钥信息的合法性进行验证,依次类推,直到获取到当前合法的优先级最高的公钥信息。在一个实施例中,所述处理器还用于执行以下步骤:接收删除当前优先级最高的公钥信息的指令,所述指令是通过下载次优先级的公钥信息生成的,所述次优先级的公钥信息是采用当前优先级最高的公钥信息对应的私钥信息进行签名的;根据所述指令删除所述当前优先级最高的公钥信息。在一个实施例中,所述处理器还用于执行以下步骤:读取预先存储的最高层公钥信息对应的哈希值密文;判断获取到的当前优先级最高的公钥信息与所述哈希值密文是否匹配;若匹配,则进入采用获取到的当前优先级最高的公钥信息对所述签名信息进行验证的步骤。在一个实施例中,所述处理器所执行的所述判断获取到的当前优先级最高的公钥信息与所述哈希值密文是否匹配的包括:对获取到的当前优先级最高的公钥信息的哈希值进行加密生成第一哈希值密文;判断所述第一哈希值密文与所述最高层公钥信息对应的哈希值密文是否一致;若一致,则判定所述当前优先级最高的公钥信息与所述哈希值密文匹配。在一个实施例中,提出了一个或多个存储有计算机可执行指令的非易失性计算机可读存储介质,所述计算机可执行指令被一个或多个处理器执行时,使得所述一个或多个处理器执行以下步骤:获取待下载的应用程序文件,提取所述应用程序文件中的签名信息;获取多级密钥体系中包含的公钥信息,根据所述公钥信息的优先级顺序获取当前优先级最高的公钥信息;采用获取到的当前优先级最高的公钥信息对所述签名信息进行验证;若验证通过,则允许下载所述应用程序文件。在一个实施例中,所述处理器还用于执行以下步骤:将经过验证的至少一个公钥信息下载到所述多级密钥体系中;将多级密钥体系中的所述公钥信息按照层级的高低进行优先级的设置,层级越高,优先级越高。在一个实施例中,所述处理器所执行的获取多级密钥体系中包含的公钥信息,根据所述公钥信息的优先级顺序获取当前优先级最高的公钥信息的包括:获取多级密钥体系中包含的公钥信息,当所述多级密钥体系中包括多层公钥信息时,则采用根公钥信息对第一层中的第一公钥信息的合法性进行验证,若验证成功,则采用第一层中的第一公钥信息对第二层中的第二公钥信息的合法性进行验证,依次类推,直到获取到当前合法的优先级最高的公钥信息。在一个实施例中,所述处理器还用于执行以下步骤:接收删除当前优先级最高的公钥信息的指令,所述指令是通过下载次优先级的公钥信息生成的,所述次优先级的公钥信息是采用当前优先级最高的公钥信息对应的私钥信息进行签名的;根据所述指令删除所述当前优先级最高的公钥信息。在一个实施例中,所述处理器还用于执行以下步骤:读取预先存储的最高层公钥信息对应的哈希值密文;判断获取到的当前优先级最高的公钥信息与所述哈希值密文是否匹配;若匹配,则进入采用获取到的当前优先级最高的公钥信息对所述签名信息进行验证的步骤。在一个实施例中,所述处理器所执行的所述判断获取到的当前优先级最高的公钥信息与所述哈希值密文是否匹配的包括:对获取到的当前优先级最高的公钥信息的哈希值进行加密生成第一哈希值密文;判断所述第一哈希值密文与所述最高层公钥信息对应的哈希值密文是否一致;若一致,则判定所述当前优先级最高的公钥信息与所述哈希值密文匹配。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)等非易失性存储介质,或随机存储记忆体(randomaccessmemory,ram)等。以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1