一种生成及使用用户终端密钥的方法和设备与流程

文档序号:12490959阅读:223来源:国知局
一种生成及使用用户终端密钥的方法和设备与流程

本申请涉及计算机领域,尤其涉及一种生成及使用用户终端密钥的方法和设备。



背景技术:

随着用户和移动设备数量的增加,随着信息安全的要求越来越高,存储在移动设备上的信息为了防止信息泄露,都要进行信息加密,而信息加密中,密钥本身如何保存成为了重点。

移动终端秘钥的攻击模式分为三种:恶意软件,申请所有可用的系统权限,比如发短信、打电话、读取联系人、获取地理位置等隐私信息;余额与供给,获取设备最高权限,扫描文件系统,获取系统敏感数据;监听Root攻击,监听用户键盘输入,获取输入内容。

目前针对移动终端秘钥保护方式主要有如下几种:第一,ARM TrustZone技术,从系统总线、处理器等方面的设计将嵌入式设备划分为两个独立的运行环境,Normal Word负责Android OS运行,Secure Word负责处理敏感进程与数据。因Secure word中的密码获取困难,所以使用ARM TrustZone技术能够增强密码加密后的秘钥库文件的安全性。在ARM TrustZone技术中,秘钥库文件命名为UID_USRPKEY_KeyAlias,UID是系统分配给应用的用户账号,UID_USRPKEY是固定字符串,KeyAlias是秘钥别名。在移动终端被获取最高权限后,恶意软件可以拷贝上述秘钥库文件并进行重命名,将上述UID变更成恶意软件自身UID,此时调用Android KeyStore Service进程读取Secure word密码解密秘钥库文件获得秘钥。ARM TrustZone技术的缺陷是移动终端被越狱后秘钥可以通过安装在同一个终端上的其他应用获取。

第二,移动应用私有空间方式。移动操作系统为每一个应用分配私有存储空间,将用于加密秘钥库的密码直接存储在上述私有空间目录下,因其他非授权应用无法访问此应用的私有空间数据,所以增强使用上述密码加密后的秘钥库文件的安全性。在私有目录下,秘钥库密码存储在文件系统的文件或数据库,在移动终端被获取最高权限后,恶意软件可以针对文件系统进行全面扫描获取到秘钥库密码。移动应用私有空间存储秘钥库的缺陷是秘钥可以被同一个终端上的应用获取,也可以被拷贝到其他终端上使用。

第三,用户手动输入的方式。秘钥库密码不存储在移动终端上,移动应用启动时,要求用户输入密码,使用此密码加密秘钥库文件,移动应用进程关闭后,清楚内存中密码数据。因恶意软件无法直接通过扫描文件系统获取到密码,所以增强使用上述密码加密后的秘钥库文件的安全性。此方法的缺陷是用户输入的密码安全强度低,很容易被暴力破解。在移动终端被获取最高权限的情况下,键盘输入内容可以被监听。这样,秘钥可以被同一个终端上的应用获取,也可以拷贝到其他终端上使用。

综上,客户端的加解密用的密钥一般采用客户端生成,并在客户端永久保存,不会在服务端保存。从此带来的问题就是,客户端一旦丢失了密钥,则客户端加密之后的信息无法解密和恢复,带来一定的损失。



技术实现要素:

为了解决上述问题,本发明提供了一种生成及使用用户终端密钥的方法和设备。

本发明提供的一种生成及使用用户终端密钥的方法和设备,能够灵活有效的保存秘钥,秘钥使用方便,及时在客户端丢失秘钥,也能够在保证数据安全性的前提下恢复加密的数据。

本发明采用的技术方案如下:

根据本申请的一个方面,提供了一种生成用户终端秘钥的方法,包括如下步骤:

服务器端响应用户终端的生成秘钥请求,将随机生成的秘钥发送至用户终端;

服务器端将所述秘钥经过加密存储在服务器端的数据库中。

上述的一种生成用户终端秘钥的方法,其中,

所述服务器在初始化时生成一个关键私钥,并将所述关键私钥存储在服务器端的文件系统中;

所述服务器端基于关键私钥随机生成秘钥;

所述服务器端将秘钥基于关键私钥对秘钥进行加密并存储在服务器端的数据库中。

上述的一种生成用户终端秘钥的方法,其中,

用户终端在向服务器端发送生成秘钥请求时,发送秘钥构成要素;

所述服务器端基于关键私钥和/或秘钥构成要素随机生成秘钥。

根据本申请的一个方面,提供了一种使用用户终端秘钥的方法,基于服务器端响应用户终端的生成秘钥请求,将随机生成的秘钥发送至用户终端;包括如下步骤:

用户终端接收到服务器端发送的秘钥,并基于该秘钥对用户终端的数据进行加密并保存。

上述的一种使用用户终端秘钥的方法,其中,还包括如下步骤;

用户终端向服务器端发送查看秘钥请求;

服务器端判断数据库中是否存储上述用户终端的秘钥,如果是,至下一步;如果否,结束;

服务器端将经过加密的秘钥进行解密后发送至用户终端;

用户终端基于秘钥对用户终端的数据进行解密。

根据本申请的一个方面,提供了一种用以生成和使用用户终端秘钥的服务器,所述服务器包括:

服务器端通讯模块,用以响应用户终端的生成秘钥请求或查看秘钥请求,用以接收用户终端发送的秘钥构成要素,用以将随机生成的秘钥或者解密后的秘钥发送至用户终端;

生成密码模块,用以随机生成秘钥;

第一加密模块,用以将所述秘钥进行加密;

第一解密模块,用以将加密后的秘钥进行解密;

第一存储模块,用以存储经过加密的秘钥。优选的,第一存储模块选取数据库。

上述的一种用以生成和使用用户终端秘钥的服务器,还包括:

初始化模块,用以生成所述服务器的唯一关键私钥;

第二存储模块,用以存储唯一关键私钥;优选的第二存储模块选取文件系统。

所述生成密码模块基于关键私钥和/或秘钥构成要素迭代随机生成秘钥;

所述第一加密模块基于关键私钥将所述秘钥进行加密;

所述第一解密模块基于关键私钥将加密后的秘钥进行解密。

根据本申请的一个方面,提供了一种用以生成和使用用户终端秘钥的用户设备,所述用户设备包括:

用户终端通讯模块:用以发送用户终端的生成秘钥请求或查看秘钥请求,用以发送用户终端设置的秘钥构成要素,用以获取随机生成的秘钥或者解密后的秘钥;

第二加密模块,用以基于秘钥对用户设备端的数据进行加密;

第二解密模块,用以基于秘钥对用户设备端的数据进行解密。

上述的一种用以生成和使用用户终端秘钥的用户设备,所述用户设备还包括:

获取模块,用以设置用户终端的秘钥构成要素。

上述的一种用以生成和使用用户终端秘钥的用户设备,所述用户设备还包括:

清除模块,用以在关闭用户终端当前应用时,清除内存中缓存的秘钥。

与现有技术相比,根据本申请实施例的方法和设备,通过在服务器端生成、发送并保存秘钥,使得秘钥与被加密的文件分开存储,即使用户终端被强行侵入,也保证了秘钥的安全性,进一步的也保证了用户终端数据的安全性。进一步的,服务器端基于关键私钥和/或用户终端提供的秘钥构成要素随机生成秘钥,加强了秘钥的复杂性,从而加强了被加密文件的安全性。进一步的,服务器端将关键私钥与加密后的秘钥分开存储,当加密后的秘钥所在数据库被强行侵入,由于没有关键私钥,因而无法对加密的秘钥进行解密,再一次提高了秘钥的安全性,从而再一次保证了被秘钥加密数据的安全性。与此同时,由于秘钥存储在服务器端,就会避免用户终端秘钥丢失而导致的加密数据丢失的问题。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1示出根据本申请一个方面的一种生成用户终端秘钥的方法的流程示意图;

图2示出根据本申请一个方面的一种使用用户终端秘钥的方法的流程示意图;

图3示出根据本申请一个方面的一种用以生成和使用用户终端秘钥的服务器的结构框图;

图4示出根据本申请一个方面的一种用以生成和使用用户终端秘钥的服务器的数据流程时序图;

图5示出根据本申请一个方面的一种用以生成和使用胡勇终端秘钥的用户设备的结构框图;

图6示出根据本申请一个方面的一种用以生成和使用胡勇终端秘钥的用户设备的数据流程时序图;

附图中相同或相似的附图标记代表相同或相似的部件。

具体实施方式

下面结合附图对本申请作进一步详细描述。

需要说明的是,下述实施例仅为本申请的优选实施例,并非全部。基于实施方式中的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得其它实施例,都属于本申请的保护范围。

如图1所示,根据本申请一个方面提供的一种生成用户终端秘钥的方法,包括如下步骤:

服务器在初始化时生成一个关键私钥,并将所述关键私钥存储在服务器端的文件系统中;优选的,采用JDK的加强型随机数生成器生成随机数作为关键私钥。

用户终端向服务器端发送生成秘钥请求,可选择的,用户终端同时发送秘钥构成要素;

服务器端响应用户终端的生成秘钥请求,服务器端基于关键私钥和/或秘钥构成要素随机生成秘钥并发送至用户终端;秘钥的生成以关键私钥作为种子,由于关键私钥的随机性,因而保证了秘钥的随机性。

服务器端将秘钥基于关键私钥对秘钥进行加密并存储在服务器端的数据库中。优选的,秘钥在数据库中通过高强度的AES_ENCRYPT函数加密后存储,进一步的保证了秘钥的安全性。

如图2所示,基于上述生成用户终端秘钥的方法,根据本申请一个方面提供的一种使用用户终端秘钥的方法,包括如下步骤:

用户终端向服务器端发送查看秘钥请求;

服务器端判断数据库中是否存储上述用户终端的秘钥,如果是,至下一步;如果否,结束;

服务器端将经过加密的秘钥基于关键私钥进行解密后发送至用户终端;

用户终端接收到服务器端发送的秘钥,并基于该秘钥对用户终端的数据进行加密或者解密操作;

用户终端在使用完秘钥后不做本地保存,将其删除,有效的防止秘钥外泄,保证了客户端系统数据的安全。

如图3-4所示,根据本申请一个方面提供的一种用以生成和使用用户终端秘钥的服务器,包括服务器端通讯模块1、初始化模块2、第二存储模块3、生成密码模块4、第一加密模块5、第一解密模块6、第一存储模块7、判断模块8,其中

服务器端通讯模块1,用以响应用户终端的生成秘钥请求或查看秘钥请求,用以接收用户终端发送的秘钥构成要素,用以将随机生成的秘钥或者解密后的秘钥发送至用户终端;

初始化模块2,用以生成所述服务器的唯一关键私钥;

第二存储模块3,用以存储唯一关键私钥;优选的第二存储模块选取文件系统。

生成密码模块4,基于关键私钥和/或秘钥构成要素随机生成秘钥;

第一加密模块5,用以基于关键私钥将所述秘钥进行加密;

第一解密模块6,用以基于关键私钥将加密后的秘钥进行解密;

第一存储模块7,用以存储经过加密的秘钥。优选的,第一存储模块选取数据库。

判断模块8,用以判断数据库中是否存储与提出查看秘钥请求对应的秘钥。

在工作过程中,服务器在初始化时,由初始化模块2生成所述服务器的唯一关键私钥,并将该关键私钥存储在文件系统中。为了增强该关键私钥的随机性,优选的采用JDK的加强型随机数生成器:java.security.SecureRandom类生成,具备超强的随机性。在实际使用中,可将该关键私钥设置为长度20的十进制整数。进一步的,该关键秘钥也可以通过加入人工参与来生成,例如输入随机六位数,进一步增加随机性。当服务器端通讯模块1接收到用户终端的生成秘钥请求时,服务器端通讯模块1将该请求发送至生成密码模块4,与此同时,可选择的,服务器端通讯模块1将用户终端发送的秘钥构成要素发送至生成密码模块4,可选择的,生成密码模块4向文件系统调用关键私钥,生成密码模块4基于关键私钥和/或秘钥构成要素生成秘钥,并将该秘钥通过服务器端通讯模块1发送至用户终端;同时,生成密码模块4将该秘钥发送至第一机密模块5,第一加密模块5可选择的向文件系统调用关键私钥并基于该关键私钥对秘钥进行加密。第一加密模块5将加密后的私钥数据发送至数据库存储。当服务器端通讯模块1接收到用户终端的查看秘钥请求时,将该请求发送至数据库,数据库通过判断模块8判断是否存储与该请求对应的加密后的秘钥,如果没有,则工作结束,如果有,数据库将加密后的秘钥数据发送至第一解密模块6,第一解密模块6对其进行解密后通过服务器端通讯模块1发送至用户终端。

如图5-6所示,根据本申请一个方面提供的一种用以生成和使用用户终端秘钥的用户设备,包括用户终端通讯模块9、第二加密模块10、第二解密模块11、清除模块12、获取模块13,其中:

用户终端通讯模块9:用以发送用户终端的生成秘钥请求或查看秘钥请求,用以发送用户终端设置的秘钥构成要素,用以获取随机生成的秘钥或者解密后的秘钥;

第二加密模块10,用以基于秘钥对用户设备端的数据进行加密;

第二解密模块11,用以基于秘钥对用户设备端的数据进行解密;

清除模块12,用以完成对用户设备端的数据加密或者解密后,清除内存中缓存的秘钥;

获取模块13,用以设置用户终端的秘钥构成要素。

在工作过程中,当用户设备首次需要对数据进行加密操作时,由用户终端通讯模块9向服务器发送生成秘钥请求,可选择的,通过获取模块13设置用户终端的秘钥构成要素,该秘钥构成要素通过用户终端通讯模块9发送至服务器。服务器接收到生成秘钥请求后,可选择的基于该秘钥构成要素和/或关键私钥生成对应秘钥发送至用户设备,用户设备通过用户终端通讯模块9接收该秘钥,并将该秘钥发送给第二加密模块10,第二加密模块10基于该秘钥对用户设备端的数据进行加密。当用户设备再次需要对数据进行加密操作或者需要对数据进行解密操作时,由用户终端通讯模块9向服务器发送查看秘钥请求,服务器接收到该查看秘钥请求后,发送对应秘钥至用户设备,用户设备通过用户终端通讯模块9接收该秘钥,并将该秘钥发送给第二加密模块10,第二加密模块10基于该秘钥对用户设备端的数据进行加密;或者用户设备通过用户终端通讯模块9将该秘钥发送给第二解密模块11,第二解密模块11基于该秘钥对用户设备端加密后的数据进行解密。完成上述加密或者解密后,通过清除模块12清除内存中缓存的秘钥。基于本申请的方法提供的一种用以生成和使用用户终端秘钥的用户设备,在用户设备端不具有生成秘钥的功能,即对硬件没有过高的要求。因为用户设备端数据的安全性在一方面是由秘钥的复杂程度来决定的,秘钥越复杂,生成秘钥的方法就越发杂,产生的对应算法就会越复杂,对应的,对硬件需求就会越高,而本申请中的用户设备端完全不需要支持该功能,因此,在对硬件要求降低的同时还保证了数据的安全性。

在此,所述用户设备包括但不限于任何一种可与用户通过触摸板进行人机交互的移动电子产品,例如智能手机、PDA等,所述移动电子产品可以采用任意操作系统,如android操作系统、iOS操作系统等。优选地,用户设备1还可以是运行于所述用户设备、或用户设备与网络设备、触摸终端或网络设备与触摸终端通过网络相集成所构成的设备上的脚本程序。当然,本领域技术人员应能理解上述用户设备仅为举例,其他现有的或今后可能出现的用户设备如可适用于本申请,也应包含在本申请的保护范围内,并在此以引用方式包含于此。

本申请方案基于当前流行的客户/服务器的分布式计算模式,进行密钥的管理和发放。用于计算机安全计算技术领域,在客户端和服务端之间有效管理密钥,达到对于信息安全加密和数据可恢复的目的。

需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。

另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。而调用本申请的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。

对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

当然,对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。

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