密钥存储方法、数据加解密方法、电子签名方法及其装置与流程

文档序号:11147424阅读:1173来源:国知局
密钥存储方法、数据加解密方法、电子签名方法及其装置与制造工艺

本发明涉及安全技术领域,尤其涉及一种密钥存储方法及其装置、一种数据加解密方法及其装置以及一种电子签名方法及其装置。



背景技术:

密钥一般泛指生产、生活所应用到的各种加密技术,能够对个人资料、企业机密进行有效的监管。密钥管理是指对密钥进行管理的行为,如加密、解密、破解等等,包括从密钥的产生到密钥销毁的各个方面,广泛应用于各个领域。

在使用密钥进行加密解密的过程中,无论采用的是何种加解密方式,包括对称加密、非对称加密等加密方式,都需要对相应的密钥(尤指私钥)进行存储。如,在使用Android系统的终端设备中,一般采用以下方式对密钥进行存储:1)直接硬编码在代码中;2)通过明文方式或通过固定密钥加密方式对密钥进行加密后存储在终端设备中;3)使用keystore密钥库进行存储等。

但是,由于终端设备的不安全性,传统的密钥管理技术不再能保证密钥的安全性能。具体,对于以上描述的三种存储方式来说,采用前两种方式存储的密钥,不法分子可以直接通过反编译的方式得到存储的密钥,可见,采用这两种方式存储的密钥无意易遭到非法渗透和窃取;采用后一种方式存储的密钥,不法分子可以通过字典式攻击,如工具Android-keystore-password-recover进行破译得到相应的密钥,同样不能实现密钥的安全存储。

对于终端设备应用程序爆棚式发展的今天来说,如何安全存储密钥成为一个棘手且亟需解决的技术问题。



技术实现要素:

针对上述问题,本发明提供了一种密钥存储方法及其装置、一种数据加解密方法及其装置以及一种电子签名方法及其装置,有效解决了终端设备中密钥,尤指私钥的安全存储问题。

本发明提供的技术方案如下:

一种密钥存储方法,应用于终端设备,所述终端设备中的终端应用与认证服务器通信连接,所述密钥存储方法中包括:

S11接收认证服务器下发的安全插件并对其进行存储,所述安全插件中包括与用户唯一关联的运算算法和应用信息;

S21根据应用信息随机生成密钥;

S31调用安全插件对密钥进行加密并将加密后生成的保护密钥连同应用信息一并存储在安全插件中,所述安全插件将应用信息作为计算因子、使用运算算法对密钥进行加密生成保护密钥;

S41销毁密钥。

进一步优选地,在步骤S21中具体包括:

根据应用信息生成密钥对,所述密钥对中包括私钥和公钥;

在步骤S31中具体包括:

调用安全插件对私钥进行加密并将加密后生成的私钥保护密钥连同应用信息一并存储在安全插件中,所述安全插件将应用信息作为计算因子、使用运算算法对私钥进行加密生成私钥保护密钥;

在步骤41中具体包括:

销毁私钥。

本发明还提供了一种密钥存储方法,应用于终端设备,所述终端设备中的终端应用与认证服务器通信连接,所述密钥存储方法中包括:

S12接收认证服务器下发的安全插件并对其进行存储,所述安全插件中包括与用户唯一关联的运算算法、应用信息及密钥,所述密钥由认证服务器根据应用信息生成;

S22调用安全插件对密钥进行加密并将加密后生成的保护密钥连同应用信息一并存储在安全插件中,所述安全插件将应用信息作为计算因子、使用运算算法对密钥进行加密生成保护密钥;

S32销毁密钥。

进一步优选地,在认证服务器中,生成的密钥包括密钥对,所述密钥对中包括私钥和公钥;

则在步骤S22中具体包括:

调用安全插件对私钥进行加密并将加密后生成的私钥保护密钥连同应用信息一并存储在安全插件中,所述安全插件将应用信息作为计算因子、使用运算算法对私钥进行加密生成私钥保护密钥;

在步骤S32中具体包括:

销毁私钥。

本发明还提供了一种数据加解密方法,所述数据加解密方法应用于上述密钥存储方法,所述数据加解密方法中包括:

S13获取应用信息并调用安全插件对其进行验证;

S23调用安全插件对内部存储的保护密钥进行解密得到密钥,所述安全插件将应用信息作为计算因子、使用运算算法对保护密钥进行解密还原得到密钥;

S33调用安全插件采用还原得到的密钥和预设加密算法对待发送数据进行加密并将加密后的数据发送出去,或调用安全插件采用还原得到的密钥和预设解密算法对接收到的加密数据进行解密得到解密后的数据;

S43销毁密钥。

本发明还提供了一种数据解密方法,所述数据解密方法应用于上述密钥存储方法,所述数据解密方法中具体包括:

S14获取应用信息并调用安全插件对其进行验证;

S24调用安全插件对内部存储的私钥保护密钥进行解密得到私钥,所述安全插件将应用信息作为计算因子、使用运算算法对私钥保护密钥进行解密还原得到私钥;

S34调用安全插件采用还原得到的私钥和预设解密算法对接收到的加密数据进行解密,以此得到解密后的数据;

S44销毁私钥。

本发明还提供了一种电子签名方法,所述电子签名方法应用于上述密钥存储方法,所述电子签名方法中包括:

S15获取应用信息并调用安全插件对其进行验证;

S25调用安全插件对内部存储的保护密钥进行解密得到私钥,所述安全插件将应用信息作为计算因子、使用运算算法对私钥保护密钥进行解密还原得到私钥;

S35调用安全插件采用生成的私钥和预设签名算法对待签名原文进行签名;

S45销毁私钥。

本发明还提供了一种密钥存储装置,应用于终端设备,所述终端设备中的终端应用与认证服务器通信连接,所述密钥存储装置中包括:

存储模块,用于存储与用户唯一关联的运算算法、应用信息以及对密钥加密生成的保护密钥,或用于存储与用户唯一关联的运算算法、应用信息以及对私钥加密生成的私钥保护密钥;

信息提取模块,用于从存储模块中提取应用信息及从外部提取密钥/私钥;

第一运算模块,用于将应用信息作为计算因子、使用运算算法对密钥进行加密生成保护密钥,或用于将应用信息作为计算因子、使用运算算法对私钥进行加密生成私钥保护密钥;以及

第一密钥销毁模块,在生成保护密钥后销毁密钥,或在生成私钥保护密钥之后销毁私钥。

本发明还提供了一种数据加解密装置,应用于终端设备,所述数据加解密装置中包括上述密钥存储装置,在所述密钥存储装置中:

所述存储模块还存储有对待发送数据进行加密的预设加密算法,和/或存储有对接收到的加密数据进行解密的预设解密算法;

所述数据加解密装置还包括:

第一应用信息验证模块,根据存储模块中存储的应用信息对获取的应用信息进行验证;

第二运算模块,用于采用密钥和预设加密算法对待发送数据进行加密,或还用于采用私钥和预设解密算法对接收到的加密数据进行解密;以及,

第二密钥销毁模块,在对待发送数据进行加密后销毁密钥,或在对接收到的加密数据进行解密后销毁密钥。

本发明还提供了一种电子签名装置,应用于终端设备,所述电子签名装置中包括上述数据加解密装置,在所述密钥存储装置中:

所述存储模块还存储有对待签名原文进行签名的预设签名算法及对接收到的签名进行解析的电子证书和预设解签算法;

所述电子签名装置中还包括:

第二应用信息验证模块,根据存储模块中存储的应用信息对获取的应用信息进行验证;

第三运算模块,用于采用生成的私钥和预设签名算法对待签名原文进行签名,或采用公钥、电子证书和预设解签算法对接收到的签名进行解析;

第三密钥销毁模块,在对待签名原文进行签名之后销毁私钥。

与现有技术相比,本发明的有益效果在于:

在本发明提供的密钥存储方法及其装置中,终端设备中的安全插件使用应用信息作为安全因子,使用与用户唯一关联的运算算法对密钥/私钥进行加密生成保护密钥/私钥保护密钥并将其存储在安全插件中,随后将密钥/私钥进行销毁,以此完成密钥/私钥在终端设备中的存储。由每个终端设备中存储的安全插件都是唯一的,使用该安全插件对密钥/私钥进行加密生成的保护密钥/私钥保护密钥自然具备了唯一性,大大提高了密钥/私钥存储的安全性能,不容易被破解,即使某一终端设备中安装的安全插件被破解了,也不会影响其他用户的安全性能。另外,密钥/私钥在调用的过程中,只在终端设备的内存中存在非常短暂的时间,有效避免了泄露的风险。

在本发明提供的数据加解密方法及其装置中,对存储在安全插件中的保护密钥/私钥保护密钥进行解密还原得到密钥/私钥之后,使用该密钥对待发送数据进行加密/对接收的加密数据进行解密,完成对数据的加解密操作。在这一过程中,由密钥/私钥以保护密钥/私钥保护密钥的形式存储在安全插件中,大大提高了加解密的过程中的安全性能及数据在传输过程中的安全性能。另外,这一过程中,采用多因素(如通过设置的标识码、设备指纹、手势码等)密钥/私钥授权机制对其的使用权限进行保护,有效地防止安全插件的非法拷贝使用,为数据的加解密提供了一个安全的运行环境。

在本发明提供的电子签名方法及其装置中,对存储在安全插件中的私钥保护密钥进行解密还原得到私钥之后,使用该私钥对待签名原文进行签名,完成签名操作。在这一过程中,由私钥以私钥保护密钥的形式存储在安全插件中,大大提高了签名的安全性能。另外,这一过程中,采用多因素(如通过设置的标识码、设备指纹、手势码等)私钥授权机制对其的使用权限进行保护,为签名操作提供了一个安全的运行环境。

附图说明

图1为本发明中密钥存储方法一种实施方式流程示意图;图2为本发明中密钥存储方法另一种实施方式流程示意图;图3为本发明中对待发送数据进行加密流程示意图;图4为本发明中对接收数据进行解密流程示意图;图5为本发明中电子签名方法流程示意图;图6为本发明中电子证书的生成和存储流程示意图;图7为本发明中密钥存储装置结构示意图;图8为本发明中数据加解密装置结构示意图;图9为本发明中电子签名装置结构示意图。

附图标号说明:100-密钥存储装置,110-存储模块,120-信息提取模块,130-第一运算模块,140-第一密钥销毁模块,200-数据加解密装置,210-第一应用信息验证模块,220-第二运算模块,230-第二密钥销毁模块,300-电子签名装置,310-第二应用信息验证模块,S320-第三运算模块,330-第三密钥销毁模块。

具体实施方式

如图1所示为本发明提供的密钥存储方法一种实施方式流程示意图,具体该密钥存储方法应用于终端设备,如手机、平板电脑等,且终端设备中的终端应用与认证服务器通信连接。从图中可以看出,在该密钥存储方法中包括:S11接收认证服务器下发的安全插件并对其进行存储,安全插件中包括与用户唯一关联的运算算法和应用信息和应用信息;S21根据应用信息生成密钥(具体该密钥在终端设备中的终端应用中产生);S31调用安全插件对密钥进行加密并将加密后生成的保护密钥连同应用信息一并存储在安全插件中,安全插件将应用信息作为计算因子、使用运算算法对密钥进行加密生成保护密钥;S41销毁密钥。

从以上描述可以看出,在本实施方式中,终端设备中根据应用信息生成了密钥之后,随即对其进行加密生成保护密钥并存储在认证服务器下发的安全插件中,与此同时将生成的密钥进行销毁。之后,在使用该密钥进行加解密/签名的过程中,首先对内部存储的保护密钥进行解密得到相应的密钥,之后再进行相应的操作,且在完成相应操作之后将解密得到的密钥进行销毁。可以看出,生成的密钥没有直接存储在终端设备中,在使用的过程中,也只是在终端设备的内存中存在短暂的时间,用完即清空,大大提升了对密钥的保护。

更具体来说,在步骤S11中包括认证服务器生成安全插件并将其下发至终端设备的步骤,具体:在使用安全插件对密钥进行加密之前,用户首先通过终端设备中的终端应用在认证服务器中进行注册,以此认证服务器生成相应的安全插件并将其返回至终端应用中存储。且认证服务器根据终端应用发送的应用信息运算得到运算算法并编译成安全插件的步骤,具体包括:S011根据接收的应用信息生成随机数,并将随机数设定为密钥参数;S012根据密钥参数对预设签名算法进行重构得到运算算法;S013将接收到的应用信息和生成的运算算法一并编译得到安全插件并将其下发至支付应用。进一步来说,在步骤S012,对预设签名算法进行重构得到运算算法的步骤中,具体包括:根据密钥参数改变预设签名算法的运算顺序得到运算算法;和/或,根据密钥参数改变预设签名算法的分组数据块的结构及对应分组数据块的运算顺序得到运算算法;和/或,根据密钥参数改变预设签名算法的固定参数得到运算算法。

以下结合具体实施例对认证服务器生成运算算法的过程作出详细描述:

通过改变预设签名算法的运算优先级生成运算算法的一个具体实施例为:根据唯一标识应用信息随机生成一8位随机密钥,则根据生成的随机密钥对预算算法各步骤的运算优先级重新排列。此时,若预设签名算法中包括了8个步骤,且生成的随机密钥为31245768,则生成的运算算法中,原本预设签名算法中的第3个步骤优先运算,接着依次是第1个步骤、第2个步骤、第4个步骤、第5个步骤、第7个步骤、第6个步骤以及第8个步骤进行运算,以此改变了原有的预设签名算法的运算先后顺序,生成全新的运算算法。当然,根据该随机密钥,改变预设签名算法的规则可以根据实际情况进行相应的变化,如该随机密钥中的第1位3代表将原本预设签名算法中8个步骤中的第1个步骤作为运算算法中的第3个步骤进行运算;随机密钥中第2位中的1代表将原本预设签名算法中8个步骤中的第2个步骤作为运算算法中的第1个步骤进行运算,以此类推,得到根据该运算算法的全新运算算法。当然,以上我们只是简单的介绍两个改变运算优先级的规则,可以根据实际情况重新进行设定,若预设签名算法中只包括了6个步骤,则可以通过改变生成的随机密钥的位数来调整,也可以通过忽略生成的8位随机密钥中的两位来适应性的调整。

通过改变预设签名算法的分组结构和分组结构的运算优先级来得到新的运算算法的一个具体实施例为:假若按照预设签名算法的分组结构规则,将进行运算信息分成n个数据块,且每个数据块中包括8个小的分块(a1、a2、a3、a4、a5、a6、a7以及a8),此时假若根据唯一标识应用信息随机生成的随机密钥为73124568,且该8位随机密钥中的第1位代表运算顺序,第2为代表相应的分块。则在运算过程中,位于第2位的3表示分块a3与分块a1交换以此改变该分组结构,位于第1位的7表示分块a7优先运算,以此实现目的。以上我们只是示例性的给出了一种具体实施方式,在其他实施例中,对上述分组规则(每个数据的长度)、随机秘钥中每位数字对应的意义(如分块交换)等都可以根据实际情况进行设定。

通过改变预设签名算法的运算参数来得到新的运算算法的一个具体实施例为:假若预设签名算法中包括先后两个常数,分别为1和2,还包括一个未知数项X。且根据唯一标识应用信息随机得到的随机密钥为73124568,具体该随机密钥中的第3位表示该固定参数,则该预设签名算法中的X即为1,以此形成新的运算算法。当然,在另一具体实施例中,也可以根据第3位中的1改变预设签名算法中已有常数项,如将已有的第二个常数2改为该第3位中的1,即生成的运算算法中两个常数都是1。

作为一个完整实施例,假若生成的随机密钥中第1位代表运算优先级,第2位代表分组结构,第3位代表常数项。此时,如若生成的随机密钥为35781246,则分组块中的a5与a1进行调整改变分组结构,且a3优先运算,同时将运算算法中某一常数变为7,以此生成与用户唯一关联的运算算法。

在步骤S21中具体包括:根据应用信息生成密钥。该应用信息中包括用户的个人标识码(Personal Identification Number,简称PIN码)和/或设备指纹(可以为标识终端设备的一切信息,如,IMEI(International Mobile Equipment Identity,国际移动设备标识),IMSI(International Mobile Subscriber Identification Number,国际移动用户识别码)、设备型号、设备品牌、生产商、CPU(Central Processing Unit,中央处理器)、MAC(Media Access Control,介质访问控制)地址、IP(Internet Protocol,网络之间互连的协议)地址等)和/或手势码。

在实际应用中,如在使用对称算法对数据进行加解密的过程中,使用的密钥是同一个,故在这一步骤中根据应用信息随机生成一个随机数,并将其作为加解密的密钥。之后,在对数据进行加密/解密的终端设备中使用本实施方式提供的方法对密钥进行加密生成保护密钥并将其存储在安全插件中,提高了密钥存储的安全性能。在具体实施例中,在具体实施例中,上述安全插件为提供终端设备密码体制服务的软件包,内置与用户唯一关联的运算算法。具体,若终端设备为android系统,则以so库的形式存在,将加密后的保护密钥存储在keystore中;若终端设备为ios系统,则以zip压缩包的形式存在,将加密后的保护密钥存储在keychain中。基于此,在调用安全插件之前,首先会对终端设备的运行环境进行检测,包括检测安全插件是否ROOT、检测终端应用的完整性、检测安全插件的完整性、检测设备的硬件信息等,只有运行环境满足条件,才进入后续的步骤,否则提示用户对运行环境进行检查。

最后,要说明的是,在调用安全插件对生成的密钥进行加密生成保护密钥之前,首先开启代码保护功能,之后根据安全插件中存储的应用信息对应用信息进行验证,如根据安全插件中内部存储的PIN码对用户输入的PIN码进行验证;又如根据安全插件中存储的设备指纹对提取到的设备指纹进行验证等,只有应用信息验证成功了才会进入后续的密钥加密的步骤。由开启了代码保护功能,有效防止了动态调试、防止内存dump(倾倒)式攻击,为用户提供了一个相对安全的运行环境。

基于上述实施方式,在另一实施方式中,在该密钥存储方法中包括:S11接收认证服务器下发的安全插件并对其进行存储,安全插件中包括与用户唯一关联的运算算法和应用信息和应用信息;S21根据应用信息生成密钥对,密钥对中包括私钥和公钥;S31调用安全插件对私钥进行加密并将加密后生成的私钥保护密钥连同应用信息一并存储在安全插件中,安全插件将应用信息作为计算因子、使用运算算法对私钥进行加密生成私钥保护密钥;S41销毁私钥。

在本实施方式中,终端设备中生成根据应用信息生成了密钥对之后,随即对私钥进行加密生成私钥保护密钥并存储在认证服务器下发的安全插件中,与此同时将生成的私钥进行销毁,即生成的私钥不在终端设备中直接存储。之后,在使用该密钥进行解密/签名的过程中,首先对内部存储的私钥保护密钥进行解密得到相应的私钥,之后再进行相应的操作,且在完成相应操作之后将解密得到的私钥进行销毁。

与上述实施方式类似的,在步骤S11中同样包括认证服务器生成安全插件并将其下发至终端设备的步骤,具体:在使用安全插件对密钥进行加密之前,用户首先通过终端设备中的终端应用在认证服务器中进行注册,以此认证服务器生成相应的安全插件并将其返回至终端应用中存储。认证服务器中生成运算算法的具体过程在上述实施方式中已做出详细描述,在此不做赘述。

在实际应用中,如在使用非对称算法对数据进行加解密的过程中,通常使用公钥对数据进行加密,之后使用私钥对加密数据进行解密,故在这一步骤中根据应用信息随机生成的一包括公钥和私钥的密钥对。之后,在对数据进行解密的终端设备中使用本实施方式提供的方法对私钥进行加密生成私钥保护密钥并将其存储在安全插件中,以此提高私钥存储的安全性能。基于此,在安全插件生成身份认证码之前,首先对终端设备的运行环境进行检测,包括检测安全插件是否ROOT、检测终端应用的完整性、检测安全插件的完整性、检测设备的硬件信息等,只有运行环境满足条件,才进入后续的步骤,否则提示用户对运行环境进行检查。另外,应用信息中包括的内容、安全插件的存储方式、对终端设备的运行环境进行检测、代码功能的开启以及对应用信息的检测均与上述实施方式中相同,在此不做赘述。

如图2所示为本发明提供的密钥存储方法另一种实施方式流程示意图,从图中可以看出,在该密钥存储方法中包括:S12接收认证服务器下发的安全插件并对其进行存储,该安全插件中包括与用户唯一关联的运算算法、应用信息及密钥,密钥由认证服务器根据应用信息生成;S22调用安全插件对密钥进行加密并将加密后生成的保护密钥连同应用信息一并存储在安全插件中,安全插件将应用信息作为计算因子、使用运算算法对密钥进行加密生成保护密钥;S32销毁密钥。

从以上描述可以看出,在本实施方式中,由终端设备接收认证服务器下发的安全插件中包括了在认证服务器中生成的密钥,随即对其进行加密生成保护密钥并存储在安全插件中,与此同时将安全插件中的密钥进行销毁。之后,在使用该密钥进行加解密/签名的过程中,首先对内部存储的保护密钥进行解密得到相应的密钥,之后再进行相应的操作,且在完成相应操作之后将解密得到的密钥进行销毁。

更具体来说,在步骤S11中包括认证服务器生成安全插件并将其下发至终端设备的步骤,具体:在使用安全插件对密钥进行加密之前,用户首先通过终端设备中的终端应用(Application,应用程序)在认证服务器中进行注册,之后根据应用信息生成密钥及生成运算算法,并编译成安全插件返回至终端应用中存储。认证服务器中生成运算算法的具体过程在上述实施方式中已做出详细描述,在此不做赘述。

在具体实施例中,上述安全插件为提供终端设备密码体制服务的软件包,内置与用户唯一关联的运算算法。具体,若终端设备为android系统,则以so库的形式存在;若终端设备为ios系统,则以zip压缩包的形式存在。基于此,在安全插件生成身份认证码之前,首先对终端设备的运行环境进行检测,包括检测安全插件是否ROOT、检测终端应用的完整性、检测安全插件的完整性、检测设备的硬件信息等,只有运行环境满足条件,才进入后续的步骤,否则提示用户对运行环境进行检查。

在实际应用中,如在使用对称算法对数据进行加解密的过程中,使用的密钥是同一个,故在这一步骤中认证服务器根据应用信息随机生成一个随机数,并将其作为加解密的密钥。认证服务器在生成了运算算法之后,将生成的密钥与运算算法一并进行编译得到安全插件并下发至终端设备中。在对数据进行加密/解密的终端设备中使用本实施方式提供的方法对密钥进行加密生成保护密钥并将其存储在安全插件中,提高了密钥存储的安全性能。具体该应用信息中包括的内容、安全插件的存储方式、对终端设备的运行环境进行检测、代码功能的开启以及对应用信息的检测均与上述实施方式中相同,在此不做赘述。

基于上述实施方式,在另一实施方式中,该密钥存储方法中包括:S12接收认证服务器下发的安全插件并对其进行存储,安全插件中包括与用户唯一关联的运算算法、应用信息及密钥对,密钥对由认证服务器根据应用信息生成,包括私钥和公钥;S22调用安全插件对私钥进行加密并将加密后生成的私钥保护密钥连同应用信息一并存储在安全插件中,安全插件将应用信息作为计算因子、使用运算算法对私钥进行加密生成私钥保护密钥;S32销毁私钥。

从以上描述可以看出,在本实施方式中,由终端设备接收认证服务器下发的安全插件中包括了在认证服务器中生成的密钥对,随即对其中包括的私钥进行加密生成私钥保护密钥并存储在安全插件中,与此同时将安全插件中的私钥进行销毁。之后,在使用该私钥进行解密/签名的过程中,首先对内部存储的私钥保护密钥进行解密得到相应的私钥,之后再进行相应的操作,且在完成相应操作之后将解密得到的私钥进行销毁。

更具体来说,在步骤S11中包括认证服务器生成安全插件并将其下发至终端设备的步骤:在使用安全插件对密钥进行加密之前,用户首先通过终端设备中的终端应用在认证服务器中进行注册,之后根据应用信息生成密钥对及生成运算算法,并将密钥编译入安全插件返回至终端应用中存储。认证服务器中生成运算算法的具体过程在上述实施方式中已做出详细描述,在此不做赘述。

在实际应用中,如在使用非对称算法对数据进行加解密的过程中,使用的公钥和私钥并不相同,故在这一步骤中认证服务器根据应用信息随机生成包括公钥和私钥的密钥对。之后,认证服务器在生成了运算算法之后,将生成的私钥与运算算法一并进行编译得到安全插件并下发至终端设备中。在对数据进行解密的终端设备中使用本实施方式提供的方法对私钥进行加密生成保护密钥并将其存储在安全插件中,提高了密钥存储的安全性能。具体该应用信息中包括的内容、安全插件的存储方式、对终端设备的运行环境进行检测、代码功能的开启以及对应用信息的检测均与上述实施方式中相同,在此不做赘述。

根据上述密钥存储方法,本发明还提供了一种数据加解密方法。如图3所示,在该数据加解密方法中包括:S13获取应用信息并调用安全插件对其进行验证;S23调用安全插件对内部存储的保护密钥进行解密得到密钥,安全插件将应用信息作为计算因子、使用运算算法对保护密钥进行解密还原得到密钥;S33调用安全插件采用还原得到的密钥和预设加密算法对待发送数据进行加密并将加密后的数据发送出去,或调用安全插件采用还原得到的密钥和预设解密算法对接收到的加密数据进行解密得到解密后的数据;S43销毁密钥。由以上描述可知,在实际应用中,如在使用对称算法,如DES算法对数据进行加解密的过程中,使用的密钥是同一个,故生成的密钥也只有一个。具体在使用该密钥对待发送数据进行加解密的过程中,首先调用安全插件对内部存储的保护密钥进行解密得到密钥,之后再使用该密钥对待发送数据进行加密及对接收到的加密数据进行解密。

在另一实施方式中,数据加解密方法中包括对接收数据进行解密的步骤,如图4所示,在对接收数据进行解密的步骤中具体包括:S14获取应用信息并调用安全插件对其进行验证;S24调用安全插件对内部存储的私钥保护密钥进行解密得到私钥,安全插件将应用信息作为计算因子、使用运算算法对私钥保护密钥进行解密还原得到私钥;S34调用安全插件采用还原得到的私钥和预设解密算法对接收到的加密数据进行解密,以此得到解密后的数据;S44销毁私钥。由以上描述可知,在实际应用中,如在使用非对称算法,如RSA算法对数据进行加解密的过程中,使用的密钥不是同一个,通常由公钥对数据进行加密,之后采用私钥对加密数据进行解密。具体在使用该私钥对待加密进行解密的过程中,首先调用安全插件对内部存储的私钥保护密钥进行解密得到私钥,之后再使用该私钥对加密数据进行加密。

如图5所示,本发明还提供了一种电子签名方法,应用于上述密钥存储方法,从图中可以看出,在该电子签名方法中包括:S15获取应用信息并调用安全插件对其进行验证;S25调用安全插件对内部存储的保护密钥进行解密得到私钥,安全插件将应用信息作为计算因子、使用运算算法对私钥保护密钥进行解密还原得到私钥;S35调用安全插件采用生成的私钥和预设签名算法对待签名原文进行签名;S45销毁私钥。由以上描述可知,在实际应用中,如在使用非对称算法(PKI算法),如DES算法对待签名原文进行签名的过程中,通常由私钥对待签名原文进行加密,之后采用公钥对签名进行解签。具体在使用该私钥对待签名原文进行加密的过程中,首先调用安全插件对内部存储的私钥保护密钥进行解密得到私钥,之后再使用该私钥对待签名原文进行加密,且在签名完成后销毁私钥。

我们知道,在对签名进行解签的时候需要用到电子证书和公钥,因而,在步骤S15之前还包括用于对接收到的签名进行解析的电子证书的生成和存储的步骤,在一种实施方式中,如图6所示,该电子证书的生成和存储步骤具体包括:S10终端应用生成电子证书请求(具体为pkcs(The Public-Key Cryptography Standards)格式)并将其发送至认证服务器,具体该电子证书请求中包括应用信息和公钥;S20认证服务器将电子证书请求转发至证书服务器;S30证书服务器将电子证书请求转发至证书签证机关(如CA(Certificate Authority,数字证书认证中心)请求生成电子证书;40证书签证机关根据电子证书请求生成电子证书,并将生成的电子证书返回证书服务器;S50证书服务器将电子证书转发至认证服务器;S60认证服务器将其转发至终端应用并进行存储。具体在该实施方式中,密钥由终端应用根据应用信息随机生成,在步骤S60之后还包括:S70终端应用将电子证书编译入认证服务器返回的安全插件中。

在另一实施方式中,在该电子证书的生成和存储步骤具体包括,S10终端应用生成电子证书请求并将其发送至认证服务器,具体该电子证书请求中包括应用信息和公钥;S20认证服务器将电子证书请求转发至证书服务器;S30证书服务器将电子证书请求转发至证书签证机关请求生成电子证书;40证书签证机关根据电子证书请求生成电子证书,并将生成的电子证书返回证书服务器;S50将电子证书和私钥编译入安全插件,安全插件中包括与用户唯一关联的运算算法和应用信息;S60认证服务器将安全插件返回终端应用。具体在该实施方式中,包括私钥和公钥的密钥对由认证服务器生成,因而在步骤S50中将证书服务器反馈的电子证书、生成的私钥、生成的运算算法以及应用信息一并编译入安全插件中,并将其返回终端应用中。

更进一步来说,在该电子签名方法中还包括私钥和电子证书更新的步骤,具体包括:S16终端应用根据应用信息生成新的密钥对,新的密钥对中包括新的私钥和公钥;S26终端应用生成新的电子证书请求并将其发送至认证服务器,新的电子证书请求中包括应用信息和新的公钥;S36认证服务器将新的电子证书请求转发至证书服务器;S46证书服务器将新的电子证书请求转发至证书签证机关请求生成电子证书;S56证书签证机关根据接收到的电子证书请求对现有的电子证书进行验证;S66验证成功后,根据新的电子证书请求生成新的电子证书,并将生成的电子证书返回证书服务器;S76证书服务器将新的电子证书经由认证服务器转发至终端应用。这里,我们定期对私钥或私钥保护私钥进行更新,以防止私钥泄露出去,提高了终端设备中私钥存储的安全性能。具体在这一过程中,利用风险控制平台,检测异常状态,定期对安全插件和私钥进行强制更新。

如图7所示为本发明提供的密钥存储装置结构示意图,应用于终端设备和密钥存储方法,从图中可以看出,在该密钥存储装置100中包括:存储模块110、信息提取模块120、第一运算模块130以及第一密钥销毁模块140。

在一种实施方式中,存储模块存储有与用户唯一关联的运算算法、应用信息以及对密钥加密生成的保护密钥。在工作过程中,信息提取模块用于从存储模块中提取应用信息及从外部提取密钥(具体该密钥可以由终端设备生成中根据应用信息生成,也可由认证服务器根据应用信息生成;若由认证服务器生成,则随同安全插件一同下发至终端应用中);之后,第一运算模块将应用信息作为计算因子、使用运算算法对密钥进行加密生成保护密钥并将其进行存储;最后,第一密钥销毁模块将密钥销毁。可见,在密钥由认证服务器生成的实施方式中,在安全插件由认证服务器向终端应用下发的过程中,密钥短暂存储于安全插件中,在终端应用中根据该密钥生成了保护密钥之后,将其销毁。

在另一实施方式中,存储模块存储有与用户唯一关联的运算算法、应用信息以及对私钥加密生成的私钥保护密钥。在工作过程中,信息提取模块用于从存储模块中提取应用信息及从外部提取私钥;之后,第一运算模块将应用信息作为计算因子、使用运算算法对私钥进行加密生成私钥保护密钥;最后,第一密钥销毁模块将私钥销毁。可见,在私钥由认证服务器生成的实施方式中,在安全插件由认证服务器向终端应用下发的过程中,密钥短暂存储于安全插件中,在终端应用中根据该私钥生成了密钥保护密钥之后,将其销毁。

具体来说,在该密钥存储装置中,应用信息中包括用户的个人标识码(Personal Identification Number,简称PIN码)和/或设备指纹(可以为标识终端设备的一切信息,如,IMEI(International Mobile Equipment Identity,国际移动设备标识),IMSI(International Mobile Subscriber Identification Number,国际移动用户识别码)、设备型号、设备品牌、生产商、CPU(Central Processing Unit,中央处理器)、MAC(Media Access Control,介质访问控制)地址、IP(Internet Protocol,网络之间互连的协议)地址等)和/或手势码。在具体实施例中,若终端设备为android系统,安全插件以so库的形式存在,将加密后的保护密钥存储在keystore中;若终端设备为ios系统,安全插件以zip压缩包的形式存在,将加密后的保护密钥存储在keychain中。

进一步来说,在该密钥存储装置中还包括环境检测模块,用于对终端设备的运行环境进行检测,包括检测安全插件是否ROOT、检测终端应用的完整性、检测安全插件的完整性、检测设备的硬件信息等,只有运行环境满足条件,才进入后续的第一运算模块的运算步骤等,否则提示用户对运行环境进行检查。另外,还包括代码保护模块和验证模块,其中,代码保护模块,用于开启代码保护功能;在开启可代码保护功能之后,验证模块根据安全插件中存储的应用信息对应用信息进行验证,如根据安全插件中内部存储的PIN码对用户输入的PIN码进行验证;又如根据安全插件中存储的设备指纹对提取到的设备指纹进行验证等,只有应用信息验证成功了才会进入后续的密钥加密的步骤。有效防止了动态调试、防止内存dump(倾倒)式攻击。

如图8所述为本发明提供的数据加解密装置,应用于终端设备,且在该数据加解密装置中包括上述密钥存储装置,具体该密钥存储装置中的存储模块还存储有对待发送数据进行加密的预设加密算法,和/或存储有对接收到的加密数据进行解密的预设解密算法。再有,该数据加解密装置200还包括:第一应用信息验证模块210、第二运算模块220以及第二密钥销毁模块230。

在一种实施方式中,使用该数据加解密装置对数据进行加密的过程中,首先,第一应用信息验证模块210根据存储模块中存储的应用信息对获取的应用信息进行验证;之后,第二运算模块采用由保护密钥解密得到的密钥和预设加密算法对待发送数据进行加密或对加密数据进行解密;最后,第二密钥销毁模块对密钥进行销毁。

在另一实施方式中,使用该数据加解密装置对数据进行加密的过程中,首先,第一应用信息验证模块210根据存储模块中存储的应用信息对获取的应用信息进行验证;之后,第二运算模块采用由保护密钥解密得到的私钥和预设解密算法对接收到的加密数据进行解密;最后,第二密钥销毁模块销毁私钥。

如图9所示为本发明提供的电子签名装置,应用于终端设备,且在该电子签名装置包括上述数据加解密装置,具体该密钥存储装置的存储模块还存储有对待签名原文进行签名的预设签名算法以及对接收到的签名进行解析的电子证书。再有,该电子签名装置中还包括310第二应用信息验证模块、S320第三运算模块和330第三密钥销毁模块。

在使用该电子签名装置对待签名原文进行签名的过程中,首先,第二应用信息验证模块根据存储模块中存储的应用信息对获取的应用信息进行验证;之后,第三运算模块采用由保护密钥解密得到的私钥和预设签名算法对待签名原文进行签名或采用电子证书对接收到的签名进行解析;最后,第三密钥销毁模块在对待签名原文进行签名之后销毁密钥。

本发明还提供了一种电子证书生成系统,具体包括:

移动端,包括上述电子签名装置,用于根据应用信息和公钥生成电子证书请求并将其发送至认证服务器,及用于接收认证服务器端返回的电子证书;或用于根据应用信息和公钥生成电子证书请求并将其发送至认证服务器,及用于接收认证服务器端返回的安全插件,安全插件中包括证书签证机关签发的电子证书。具体,这里的移动端包括手机、平板电脑等。且该移动端通过VPN(Virtual Private Network,虚拟专用网络)网关与认证服务器连接。

认证服务器端,用于将电子证书请求转发至证书服务器;或用于将证书签证机关签发的电子证书和私钥编译入安全插件,并将安全插件返回移动端;

证书服务器端,用于将电子证书请求转发至证书签证机关请求生成电子证书,及用于将证书签证机关签发的电子证书返回认证服务器端;以及

证书签证机关,根据电子证书请求生成电子证书。

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