具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,在下面的具体实施方式中,将对本发明作进一步详细的说明。
实施例一
如图1所示,本发明实施例提供一种安全文件管理系统,包括:
静态防护单元101,用于提供至少一种加解密方法进行加解密和身份认证。
在本实施例中,静态防护单元101用于提供静态防护,可以包括:随机数生成器、对称密钥模块、公私钥模块、白盒密钥模块、数字签名模块和密钥协商模块中的一种或多种。各模块所采用的函数可以是国密算法体系,也可以是国际算法体系。
动态防护单元102,用于提供至少一种安全监测和防护功能。
在本实施例中,动态防护单元102用于提供动态防护,可以包括:防调试模块、防hook与防注入模块、防内存dump模块、恶意进程检测模块和RT环境检测模块中的一种或多种。其中,防调试模块,用于根据预设黑名单对比当前父进程和当前运行环境的进程,判断是否被调试;防hook与防注入模块,用于执行的操作属于预设关键操作时,对当前进程进行调试,防止被第三方hook和/或进程注入;防内存dump模块,用于对内存函数进行hook,防止内存的注入和/或导出;恶意进程检测模块,用于检测是否存在恶意进程;RT环境检测模块,用于检测是否存在网络代理或虚拟专用网络;和/或检测是否存在恶意框架;和/或检测是否在模拟器中运行;和/或检测当前所处的环境状态。特别的,防hook与防注入模块也可以是两个独立的模块,分别实现防hook与防注入功能。
安全应用协议单元103,用于为安全文件管理系统提供统一的对外接口。
安全文件子系统104,用于安全文件的加密存储。
在本实施例中,安全文件子系统是安全文件管理系统的基础,用于为静态防护单元、动态防护单元和安全应用协议单元提供底层支持;安全应用协议单元同时可以实现安全文件管理系统与业务间的函数调用,可快速支持及组装安全协议。
本发明实施例提供的安全文件管理系统可以集成各种安全应用,如安全键盘、安全浏览器等;也可以设置适配层,以提供跨平台支持,在此不再一一赘述。
本发明实施例提供的技术方案,通过安全文件管理系统实现安全文件的加密存储、管理、以及外部调用;安全文件管理系统以组件方式集成为一个整体,能较好地支持轻量级的嵌入式设备。安全文件管理系统可校验APP开发者证书及包名,确保只有授权许可的APP才可使用该安全文件管理系统;安全文件管理系统内置在操作系统内,与当前操作系统的设备进行绑定,离开当前终端,则无法调用安全文件管理系统。由于只需通过安全文件子系统结合静态防护单元、动态防护单元和安全应用协议单元即可实现安全文件管理,无需设置特定的硬件,可被定制和兼容任意操作系统/浏览器/APP,对用户终端硬件的要求较低,解决了现有技术中用户终端采用上述方式进行安全管理时,需要用户终端设置相应的硬件,兼容性较差的问题。
实施例二
如图2所示,本发明实施例提供一种采用图1所示的安全文件管理系统进行安全文件管理的方法,安全文件加密存储于安全文件子系统,安全文件子系统整体进行二次加密。其中,各安全文件可采用不同的密钥进行加密存储。
以安全文件管理系统对公私钥的管理为例进行说明,该公私钥的管理方法包括:
步骤201,静态防护单元获取白盒密钥和对应的白盒库。
在本实施例中,通过步骤201获取白盒密钥和白盒库的过程可以包括:静态防护单元随机生成对称密钥;静态防护单元通过预设白盒算法对对称密钥进行白盒化处理,得到白盒密钥和对应的白盒库。该白盒密钥和对应的白盒库作为一个整体,存储在一个安全文件内。此安全文件的格式:安全文件编号|白盒密钥|加密的文件编号1|...|加密的文件编号10|白盒库|扩展结尾。其中,白盒化处理使用的白盒算法,可以为任意可用的白盒算法,在此不做限制。
步骤202,静态防护单元通过白盒密钥和对应的白盒库对公私钥中的私钥进行加密,得到第一密文。
在本实施例中,通过步骤202可以采用白盒密钥和对应的白盒库直接对公私钥中的私钥进行加密;为了提高数据的安全性,通过步骤202进行加密的过程还可以包括:首先静态防护单元采用预设混淆算法将私钥进行混淆,得到混淆私钥;其次静态防护单元通过白盒密钥和对应的白盒库对混淆私钥进行加密,得到第一密文。其中,混淆过程可以为:静态防护单元将私钥拆分为n份,得到私钥1、私钥2···私钥n;静态防护单元采用预设混淆算法通过随机数分别对私钥1、私钥2···私钥n进行补位混淆,得到混淆私钥。其中,n=1,2,3,或4;所述补位混淆为将私钥1、私钥2···私钥n采用随机数补位至目标位数,该目标位数为1024或2048位。
具体的,静态防护单元将私钥拆分为n份,得到私钥1、私钥2···私钥n;静态防护单元采用预设混淆算法通过随机数分别对私钥1、私钥2···私钥n进行补位混淆,每隔两位或两位以上随机数顺序插入一位私钥的数据,从而获得混淆私钥1、混淆私钥2···混淆私钥n;采用白盒密钥和对应的白盒库对混淆私钥1、混淆私钥2···混淆私钥n进行加密,得到第一密文1、第一密文2···第一密文n。
在本实施例中,还可以通过其他方式进行混淆,在此不做限制。
优选地,在本实施例中,步骤202中私钥被拆分成n份时,采用n个不同的白盒密钥和对应的白盒库对n份私钥或n份混淆私钥进行加密。此时,步骤201中静态防护单元随机生成n个不同的对称密钥,经预设白盒算法处理,获得n个不同的白盒密钥和对应的白盒库。在此不再一一赘述。
在本实施例中,静态防护单元将私钥拆分为n份可以等分为n份,该n份的大小也可以不同,在此不做限制。如果私钥1、私钥2···私钥n中各个私钥的位数均小于1024,既可以补位至1024位,也可以补位至2048位,补位的位数依安全级别和运算效率进行确定;如果私钥1、私钥2···私钥n中某个或某几个私钥的位数大于1024位时,可以补位至2028位。
步骤203,静态防护单元将白盒密钥和对应的白盒库、公私钥中的公钥、以及第一密文发送至安全文件子系统后删除。
在本实施例中,为了提高安全文件的安全性,静态防护单元将白盒密钥和对应的白盒库、公私钥中的的公钥、以及第一密文发送至安全文件子系统并删除,使白盒密钥和对应的白盒库、公私钥中的公钥、以及第一密文最终只保存在安全文件子系统中。
优选地,白盒密钥和对应的白盒库、公私钥中的公钥、以及第一密文分别存储在不同的安全文件,并采用不同的密钥加密存储。加密存储安全文件所采用的密钥可由静态防护单元随机生成,在此不做限制。
进一步的,当需要使用私钥时,本实施例提供的公私钥的管理方法,还包括:安全文件子系统获取所述白盒密钥及对应的白盒库,并对第一密文进行解密,得到所述私钥。
优选的,本实施例中,安全文件的存储格式包括安全文件编号及由预设字符串标识的文件头,安全文件管理系统通过安全文件编号及文件头定位并获取白盒密钥和对应的白盒库,采用白盒密钥和对应的白盒库对存储第一密文的安全文件进行解密,通过比对解密后的上述存储第一密文的安全文件的预设字符串标识,验证白盒密钥和对应的白盒库是否正确,从而确认是否获得了解密后的私钥。
进一步的,如果安全文件管理系统的私钥经混淆后加密获得第一密文,则对第一密文解密后,需按原混淆规则反混淆获得原始私钥。
安全文件管理系统获得所述私钥后发送静态防护单元进行加解密,保障只有运行时可用。
在本实施例中,当静态防护单元接收到私钥时,可以直接使用私钥执行相应的操作,在此不作限制。
在本实施例中,为了提高安全性,动态防护单元可以为所述安全文件管理系统提供运行时安全防护。
在本实施例中,为了分散风险,安全文件子系统中的安全文件还在云端进行加密备份,以便实现分布式部署。
其中,在云端进行加密备份的具体过程包括:安全文件管理系统输入用户口令,并与服务器交互获取备份密钥;静态防护单元通过备份密钥对所有安全文件进行加密压缩,得到加密压缩文件后向服务器发送;服务器通过预先存储的应用密钥对加密压缩文件进行二次加密后存储。优选的,服务器具有其自己的安全文件管理系统,并应用其安全文件管理系统安全管理客户端备份的安全文件。
在本实施例中,与服务器交互获取备份密钥的方式有多种,例如,安全文件管理系统向服务器发送用户口令的字符串hash,服务器根据字符串hash生成服务器的随机密钥并发送至安全文件管理系统,安全文件管理系统将用户口令与服务器生成的随机密钥连接生成备份密钥;或者,服务器根据字符串hash采用预设算法直接生成备份密钥发送安全文件管理系统,此预设算法产生的备份密钥不在服务器端存储。
在本实施例中,通过上述过程,能够将安全文件在云端进行备份存储,从而提高安全文件的安全性;其中,对安全文件进行加密压缩后传输,能够提高数据传输的安全性;而云端存储时再一次对压缩文件进行加密,进一步提高了安全性。
为了提高安全性,本实施例中的静态防护单元、动态防护单元、安全应用协议单元和安全文件子系统可以进行整体加固;该整体加固包括:源代码混淆、加壳、花指令、控制流平坦化中的一种或多种。
在本实施例中,为了进一步提高安全性,安全文件子系统通过预设可信环境对所述安全文件进行硬件安全防护;所述可信环境包括:SE/TEE或SE/TEE/TPM。
在本实施例中,为了提高安全文件管理系统的安全性,可以预先对安全文件子系统进行硬件层防护,即预先设置可信环境,可将安全文件管理系统整体内置于该可信环境,即将安全文件管理系统整体作为一个独立so内置在硬件和系统安全内核内。对于移动终端应用环境,该可信环境可以为SE/TEE;对于非移动终端应用环境,该可信环境可以为SE/TEE/TPM。
在本实施例中,为了对安全文件子系统进行动态防护,防止非法变更安全文件子系统,在调用安全文件管理系统或安全文件管理系统对安全文件子系统进行调用时,对安全文件子系统的完整性进行校验,并在校验成功时,实现调用;如果校验失败,则说明安全文件子系统可能遭到破坏。
在本实施例中,对安全文件子系统的完整性进行校验的方法可以有多种,优选的,可以采用以下方式进行校验:静态防护单元采用加密校验密钥对其自身及动态防护单元、安全应用协议单元、安全文件子系统分别进行哈希计算,得到安全文件管理系统四个模块的消息认证码,并存储在安全文件子系统;当外部调用安全文件管理系统或安全文件管理系统调用安全文件子系统时,采用加密校验密钥及预设哈希算法重新计算安全文件子系统的消息认证码,并比对安全文件子系统内存储的消息认证码,比对一致,则说明安全文件子系统完整,实现相关调用。其中,加密校验密钥由静态防护单元随机生成,并加密存储在安全文件子系统。特别的,当调用安全文件子系统并对其进行了变更后,上述过程还包括:静态防护单元对变更后的安全文件子系统重新进行哈希运算,得到新的消息认证码;安全文件子系统以新的消息认证码更新原消息认证码。
本发明实施例提供的技术方案,通过安全文件管理系统实现安全文件的加密存储、管理、以及外部调用;安全文件管理系统以组件方式集成为一个整体,能较好地支持轻量级的嵌入式设备。安全文件管理系统可校验APP开发者证书及包名,确保只有授权许可的APP才可使用该安全文件管理系统;安全文件管理系统内置在操作系统内,与当前操作系统的设备进行绑定,离开当前终端,则无法调用安全文件管理系统。由于只需通过安全文件子系统结合静态防护单元、动态防护单元和安全应用协议单元即可实现安全文件管理,无需设置特定的硬件,可被定制和兼容任意操作系统/浏览器/APP,对用户终端硬件的要求较低,解决了现有技术中用户终端采用上述方式进行安全管理时,需要用户终端设置相应的硬件,兼容性较差的问题。
以上实施例的先后顺序仅为便于描述,不代表实施例的优劣。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。