用于密钥安全的加密方法和设备技术

技术编号:14818694 阅读:149 留言:0更新日期:2017-03-15 12:09
本申请的目的是提供用于密钥安全的加密方法和设备,基于从服务设备中获取移动应用的唯一标识字符串,生成所述移动应用的数据密钥;接着,根据加密算法及宏定义对所述数据密钥进行静态加密,并根据预设的散列函数及所获取的用户设备的MAC地址和用户密码对所述数据密钥进行动态加密。通过对移动应用的数据密钥进行静态加密,保证移动应用的数据密钥只能被包含宏定义加密过程的应用获取,实现了数据密钥的应用绑定;通过对移动应用的数据密钥进行动态加密,实现了数据密钥的用户设备绑定,即使用户设备的MAC地址被篡改成两个用户设备一致,用户密码不一致,则也无法破解数据密钥获取到移动应用中的业务数据,可以实现数据密钥的用户感知。

【技术实现步骤摘要】

本申请涉及计算机领域,尤其涉及一种用于密钥安全的加密技术。
技术介绍
移动终端密钥的攻击模型分为三种:恶意软件,申请所有可用的系统权限,比如发短信、打电话、读取联系人、获取地理位置等隐私信息;越狱攻击,获取设备最高权限,扫描文件系统,获取系统敏感数据;监听Root攻击,监听用户键盘输入,获取输入内容。目前针对移动终端密钥保护方式主要有如下几种:第一,ARMTrustZone技术,从系统总线、处理器等方面的设计将嵌入式设备划分为两个独立的运行环境,NormalWord负责AndroidOS(安卓系统)运行,Secureword负责处理敏感进程与数据。非授权程序无法获取到存储在SecureWord硬件中的数据,在Android系统中提供运行在NormalWorld的AndroidKeyStoreService进程,移动应用可以调用此进程获取到存储在SecureWorld硬件中密码等敏感数据。使用上述密码针对存储在系统私有空间data/misc/keystore/目录下的密钥文件进行加解密。因Secureword中的密码获取困难,所以使用ARMTrustZone技术能够增强密码加密后的密钥库文件的安全性。在ARMTrustZone技术中,密钥库文件命名为UID_USRPKEY_KeyAlias,UID是系统分配给应用的用户账号,UID_USRPKEY是固定字符串,KeyAlias是密钥别名。在移动终端被获取最高权限后,恶意软件可以拷贝上述密钥库文件并进行重命名,将上述UID变更成恶意软件自身UID,此时调用AndroidKeyStoreService进程读取Secureword密码解密密钥库文件获得密钥。ARMTrustZone技术的缺陷是移动终端被越狱后密钥可以安装在同一个终端上的其他应用获取。第二,移动应用私有空间方式。移动操作系统为每一个应用分配私有存储空间,将用于加密密钥库的密码直接存储在上述私有空间目录下,因其他非授权应用无法访问此应用的私有空间数据,所以增强使用上述密码加密后的密钥库文件的安全性。在私有目录下,密钥库密码存储在文件系统的文件或数据库,在移动终端被获取最高权限后,恶意软件可以针对文件系统进行全面扫描获取到密钥库密码。移动应用私有空间存储密钥库的缺陷是密钥可以被同一个终端上的应用获取,也可以被拷贝到其他终端上使用。第三,用户手动输入的方式。密钥库密码不存储在移动终端上,移动应用启动时,要求用户输入密码,使用此密码加密密钥库文件,移动应用进程关闭后,清除内存中密码数据。因恶意软件无法直接通过扫描文件系统获取到密码,所以增强使用上述密码加密后的密钥库文件的安全性。此方法的缺陷是用户输入的密码安全强度低,很容易被暴力破解。在移动终端被获取最高权限的情况下,键盘输入内容可以被监听。这样,密钥可以被同一个终端上的应用获取,也可以被拷贝到其他终端上使用。
技术实现思路
本申请的目的是提供一种用于密钥安全的加密方法与设备,以解决用户设备端的密钥安全问题。根据本申请的一个方面,提供了一种用于密钥安全的加密方法,该方法包括:基于从服务设备中获取移动应用的唯一标识字符串,生成所述移动应用的数据密钥;根据加密算法及宏定义对所述数据密钥进行静态加密,并根据预设的散列函数及所获取的用户设备的MAC地址和用户密码对所述数据密钥进行动态加密。进一步地,从服务设备中获取移动应用的唯一标识字符串,包括:判断移动应用启动时本地是否存有密钥,若没有,则通过加密传输协议接口从服务设备中获取所述移动应用的唯一标识字符串,若有,则对存储在用户设备的所述移动应用的加密的密钥进行解密,得到所述移动应用的唯一标识字符串。进一步地,基于从服务设备中获取移动应用的唯一标识字符串,生成所述移动应用的数据密钥,包括:根据预设的散列函数对从服务设备中获取到的移动应用的唯一标识字符串进行哈希运算,生成所述移动应用的数据密钥。进一步地,根据加密算法及宏定义对所述数据密钥进行静态加密包括:分别对所述数据密钥、加密密钥函数及对应的解密函数进行宏定义,基于所述宏定义得到静态加密后的数据密钥。更进一步地,分别对所述数据密钥、加密密钥函数及对应的解密函数进行宏定义,基于所述宏定义得到静态加密后的数据密钥,包括:分别对所述数据密钥、加密密钥函数及对应的解密函数进行宏定义,得到宏定义常量的字符;将每个宏定义常量的字符填入函数执行栈的连续地址中,得到字符串;提取所述连续地址的首地址对应的字符串,作为参数传给对应的函数;调用所述参数的对应的函数,得到静态加密后的数据密钥。进一步地,所述方法还包括:将所述静态加密后的数据密钥存储至所述用户设备的本地文件系统的私有目录下。进一步地,所述用户设备的MAC地址包括用户设备上的无线网络MAC地址和蓝牙MAC地址。进一步地,根据预设的散列函数及所获取的用户设备的MAC地址和用户密码对所述数据密钥进行动态加密,包括:从所述用户设备中获取无线网络MAC地址、蓝牙MAC地址及用户密码,得到拼接字符串;根据预设的散列函数对所述拼接字符串进行散列计算,得到对应的哈希值;将所述对应的哈希值作为所述数据密钥的动态加密密码,得到动态加密后的数据密钥,并将所述动态加密密码存储在所述用户设备中。进一步地,所述方法还包括:将所述动态加密密码及所述动态加密后的数据密钥存储至所述用户设备的本地文件系统的私有目录下。进一步地,从用户设备中获取用户设备的无线网络MAC地址、蓝牙MAC地址及用户密码,得到拼接字符串,包括:通过调用对应的应用程序编程接口从用户设备中获取无线网络MAC地址、蓝牙MAC地址;获取所述移动应用对应的用户密码;分别提取所述无线网络MAC地址、所述蓝牙MAC地址及所述用户密码中的多个字节,进行拼接得到拼接字符串。进一步地,根据预设的散列函数及所获取的用户设备的MAC地址和用户密码对所述数据密钥进行动态加密之后,包括:根据所述移动应用的启动操作获取当前输入的用户密码,并获取所述移动应用所在当前用户设备上的MAC地址;根据预设的散列函数对所述MAC地址和所述用户当前输入的用户密码进行散列计算,得到待验证结果;将所述待验证结果与所述用户设备中存储的动态加密密码进行匹配,若不匹配,则未成功解密所述数据密钥的动态加密密码,若匹配,则成功解密所述数据密钥的动态加密密码。根据本申请的另一方面,还提供了一种用于密钥安全的加密的设备,所述设备包括:生成装置,用于基于从服务设备中获取移动应用的唯一标识字符串,生成所述移动应用的数据密钥;加密装置,用于根据加密算法及宏定义对所述数据密钥进行静态加密,并根据预设的散列函数及所获取的用户设备的MAC地址和用户密码对所述数据密钥进行动态加密。进一步地,所述生成装置用于:判断移动应用启动时本地是否存有密钥,若没有,则通过加密传输协议接口从服务设备中获取所述移动应用的唯一标识字符串,若有,则对存储在用户设备的所述移动应用的加密的密钥进行解密,得到所述移动应用的唯一标识字符串。进一步地,所述生成装置用于:根据预设的散列函数对从服务设备中获取到的移动应用的唯一标识字符串进行哈希运算,生成所述移动应用的数据密钥。进一步地,所述加密装置用于:分别对所述数据密钥、加密密钥函数及对应的解密函数进行宏定义,基于所述本文档来自技高网
...
<a href="http://www.xjishu.com/zhuanli/62/201611033864.html" title="用于密钥安全的加密方法和设备原文来自X技术">用于密钥安全的加密方法和设备</a>

【技术保护点】
一种用于密钥安全的加密方法,其中,所述方法包括:基于从服务设备中获取移动应用的唯一标识字符串,生成所述移动应用的数据密钥;根据加密算法及宏定义对所述数据密钥进行静态加密,并根据预设的散列函数及所获取的用户设备的MAC地址和用户密码对所述数据密钥进行动态加密。

【技术特征摘要】
1.一种用于密钥安全的加密方法,其中,所述方法包括:基于从服务设备中获取移动应用的唯一标识字符串,生成所述移动应用的数据密钥;根据加密算法及宏定义对所述数据密钥进行静态加密,并根据预设的散列函数及所获取的用户设备的MAC地址和用户密码对所述数据密钥进行动态加密。2.根据权利要求1所述的方法,其中,所述从服务设备中获取移动应用的唯一标识字符串,包括:判断移动应用启动时本地是否存有密钥,若没有,则通过加密传输协议接口从服务设备中获取所述移动应用的唯一标识字符串,若有,则对存储在用户设备的所述移动应用的加密的密钥进行解密,得到所述移动应用的唯一标识字符串。3.根据权利要求1或2所述的方法,其中,所述基于从服务设备中获取移动应用的唯一标识字符串,生成所述移动应用的数据密钥,包括:根据预设的散列函数对从服务设备中获取到的移动应用的唯一标识字符串进行哈希运算,生成所述移动应用的数据密钥。4.根据权利要求1所述的方法,其中,所述根据加密算法及宏定义对所述数据密钥进行静态加密,包括:分别对所述数据密钥、加密密钥函数及对应的解密函数进行宏定义,基于所述宏定义得到静态加密后的数据密钥。5.根据权利要求4所述的方法,其中,分别对所述数据密钥、加密密钥函数及对应的解密函数进行宏定义,基于所述宏定义得到静态加密后的数据密钥,包括:分别对所述数据密钥、加密密钥函数及对应的解密函数进行宏定义,得到宏定义常量的字符;将每个宏定义常量的字符填入函数执行栈的连续地址中,得到字符串;提取所述连续地址的首地址对应的字符串,作为参数传给对应的函数;调用所述参数的对应的函数,得到静态加密后的数据密钥。6.根据权利要求5所述的方法,其中,所述方法还包括:将所述静态加密后的数据密钥存储至所述用户设备的本地文件系统的私有目录下。7.根据权利要求1所述的方法,其中,所述用户设备的MAC地址包括用户设备上的无线网络MAC地址和蓝牙MAC地址。8.根据权利要求1或7所述的方法,其中,所述根据预设的散列函数及所获取的用户设备的MAC地址和用户密码对所述数据密钥进行动态加密,包括:从所述用户设备中获取无线网络MAC地址、蓝牙MAC地址及用户密码,得到拼接字符串;根据预设的散列函数对所述拼接字符串进行散列计算,得到对应的哈希值;将所述对应的哈希值作为所述数据密钥的动态加密密码,得到动态加密后的数据密钥,并将所述动态加密密码存储在所述用户设备中。9.根据权利要求8所述的方法,其中,所述方法还包括:将所述动态加密密码及所述动态加密后的数据密钥存储至所述用户设备的本地文件系统的私有目录下。10.根据权利要求8所述的方法,其中,从用户设备中获取用户设备的无线网络MAC地址、蓝牙MAC地址及用户密码,得到拼接字符串,包括:通过调用对应的应用程序编程接口从用户设备中获取无线网络MAC地址、蓝牙MAC地址;获取所述移动应用对应的用户密码;分别提取所述无线网络MAC地址、所述蓝牙MAC地址及所述用户密码中的多个字节,进行拼接得到拼接字符串。11.根据权利要求8所述的方法,其中,根据预设的散列函数及所获取的用户设备的MAC地址和用户密码对所述数据密钥进行动态加密之后,包括:根据所述移动应用的启动操作获取当前输入的用户密码,并获取所述移动应用所在当前用户设备上的MAC地址;根据预设的散列函数对所述MAC地址和所述用户当前输入的用户密码进行散列计算,得到待验证结...

【专利技术属性】
技术研发人员:赵伟郑丽兰李梦雅
申请(专利权)人:上海艾讯云计算有限公司
类型:发明
国别省市:上海;31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1