一种Android智能电视敏感数据安全增强方法
【技术领域】
[0001]本发明涉及对Android智能电视敏感数据的安全进一步增强,在现有技术的基础上,提出一种新的策略更加充分地保证敏感数据的机密性,属于信息安全技术领域。
【背景技术】
[0002]目前智能电视行业对比智能手机行业呈现相对封闭态势,三网融合、多频互动等技术的发展,攻击形态将不断增多,对于一些敏感数据,例如密钥、用户信息等数据的机密性需要得到充分的保证,而Android智能电视中恶意应用的存在可能使这些敏感数据随时随地遭到窃取、传播、篡改。为解决这类问题,一个有效的途径是设计实现安全存储区技术,所述安全存储区技术采用多级密钥体系及对称加密算法加密虚拟文件系统来存储敏感数据,加密后的虚拟文件系统称为VFS。然而,该类方案面临的一个重要挑战是如何防止Android智能电视的高级权限(管理者权限、根权限)被获取后,攻击者对上述安全存储区VFS文件以及APK进行攻击从而窃取敏感数据。本发明在加密虚拟文件系统技术保护敏感数据机密性的基础上,提出了进一步增强Android智能电视敏感数据的安全性的策略。
【发明内容】
[0003]本发明的技术解决问题:克服现有技术的不足,提供一种Android智能电视敏感数据安全增强方法,有效地阻止攻击者将敏感数据存储文件或APK文件移植到其他设备上执行的行为,进一步增强了 Android智能电视敏感数据的安全性。
[0004]本发明有效的安全策略进一步增强Android智能电视中存储的敏感数据的安全性,在以下两种情况下,能够有效地阻止攻击者从上述安全存储区获取敏感数据,首先,存储区初始化之后,智能电视的高级权限被获取,攻击者获取到VFS文件及APK,并试图移植到其他非授权设备上执行,实现违法拷贝合法用户数据,伪装成合法用户等行为;其次,存储区初始化之后,智能电视的高级权限被获取,攻击者试图在本地获取到安全存储区的内容,通过对Java层代码重新反编译并调用安全存储区本地JNI接口,从而直接获得敏感数据。
[0005]为了达到上述目的,本发明提出一种Android智能电视敏感数据安全增强方法。本发明包括的敏感数据机密性保护方法可以划分为三个阶段的安全策略:操作系统初始化阶段、安全存储区初始化阶段和读取数据阶段。
[0006]本发明Android智能电视敏感数据安全增强方法,其步骤为:
[0007](I)在操作系统初始化阶段,根据硬件唯一信息产生根密钥RootKey,生成随机密钥作为VFS的一次一密FSKey,使用Rootkey对Fskey加密生成SafeFSKey,并存放在VFS密钥区;
[0008](2)在安全存储区初始化阶段,重新获取设备信息生成RootKey,使用Rootkey对16位固定密钥FixedKey进行加密生成RootFixedKey,然后RootFixedKey对SafeFSKey加密得到最终密钥FinalKey,使用FinalKey初始化安全存储区并将关键数据存入安全存储区;
[0009](3)在读取数据阶段,每次读取数据时会重新生成FinalKey进行文件解密;
[0010](4)存储区初始化之后,假设智能电视的高级权限被获取,攻击者获取到VFS文件及APK,并试图移植到其他设备上执行,由于解密密钥是和设备进行严格绑定,此时无法获得正确的解密密钥;
[0011](5)存储区初始化之后,假设智能电视的高级权限被获取,攻击者试图在本地获取到安全存储区的内容,通过对Java层代码反编译并重新调用安全存储区本地JNI接口,从而直接获得敏感数据,在存储区本地库调用中增加接口调用认证,若上层代码遭到篡改,此时底层代码会发生接口调用认证错误。
[0012]所述解密密钥与设备进行严格绑定的方法如下:
[0013]2-1)以硬件唯一信息产生根密钥RootKey ;
[0014]2-2)使用Rootkey对16位固定密钥FixedKey进行加密生成RootFixedKey ;
[0015]2-3)使用RootFixedKey对VFS密钥区的SafeFSKey加密得到最终密钥FinalKey ;
[0016]2-4)该FinalKey就是唯一的解密密钥。因此在其他设备上无法获得正确的解密密钥。
[0017]所述在存储区本地库调用中增加接口调用认证的方法如下:
[0018]3-1)服务平台KeyFactory生成一对公私钥;
[0019]3-2)开发者提交第三方应用安装包及开发者证书,管理员验证包合法性,若验证通过,使用私钥对开发者信息和包名进行加密,加密数据作为Key下发给第三方应用;
[0020]3-3)当第三方应用调用安全存储区本地JNI接口,将Key传入;
[0021]3-4)本发明获取第三方应用包名及开发者信息;
[0022]3-5)本发明使用公钥对Key进行解密;
[0023]3-6)本发明对解密后得到的包名及开发者信息进行认证;
[0024]3-7)若认证成功,则允许调用接口 ;
[0025]3-8)若上层代码已遭到篡改,则Key值解密后得到的包名及开发者信息认证失败,此时底层代码会发生接口调用认证错误。
[0026]本发明的有益效果:
[0027]本发明使用了硬件设备的唯一信息来解密加密后的敏感数据,有效地阻止攻击者将敏感数据存储文件和APK文件移植到其他设备上执行的行为,并使用合法开发者所拥有的开发者key的独一无二的特性,通过接口调用认证方法,来阻止攻击者调用安全存储区本地JNI接口,进一步增强了 Android智能电视敏感数据的安全性。
【附图说明】
[0028]图1是本发明Android智能电视敏感数据安全增强方法加密系统示意图;
[0029]图2是本发明Android智能电视敏感数据安全增强方法认证系统示意图。
【具体实施方式】
[0030]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,可以理解的是,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0031]所述实施例是为智能电视产品的统一管理而提供服务的智能电视安全代理软件,以保证智能电视可以被安全稳定合法地运行使用,主要包含证书激活、身份认证、应用验签和安全存储等功能。安全代理运行时,应用验签接口为应用安装器提供服务;身份认证接口为应用商店等云服务提供接口,通过统一身份认证中心查询设备的合法性;证书激活接口由厂商调用,通过证书代理服务器与制造商子CA证书服务器进行交互,完成用户证书的激活;用户证书和应用验签使用的密钥文件都存储在安全存储区。
[0032]所述智能电视安全代理软件作为本发明的实施例,其敏感数据安全增强方法相关技术方案如下:
[0033]如图1所示,本发明Android智能电视敏感数据安全增强方法加密系统示意图。在操作系统初
始化阶段,根据硬件唯一信息产生根密钥RootKey,生成随机密钥作为VFS的一次一密FSKey,使用Rootkey对Fskey加密生成SafeFSKey,并存放在VFS密钥区;所述安全代理软件首次启动时,会调用安全存储接口建立一个虚拟的文件系统来存储数据,同时把智能电视终端的预装证书、软件验签公钥、配置文件保存到安全存储区。安全代理需要存储数据的时候,需要调用数据存储接口,安全存储模块接收到这个请求后,重新获取设备信息生成RootKey,使用Rootkey对16位固定密钥FixedKey进行加密生成RootFixedKey,然后RootFixedKey对SafeFSKey加密得到最终密钥FinalKey,使用FinalKey初始化安全存储区并将关键数据存入安全存储区,安全存储区采用加密虚拟文件系统存储关键数据,直观表现为二进制文件形式,采用256位密钥和AES加密算法,并使用与设备绑定的多级密钥体系;同样,安全代理需要访问安全存储区数据时,通过读取数据接口读取所需数据,当安全存储模块接到读取数据请求后,从虚拟文件系统中找到相应数据文件,以同样的方式重新生成FinalKey进行文件解密,然后把解密后的数据传输给安全代理。由于解密密钥是和设备进行严格绑定,若攻击者获取到VFS文件及APK,并试图移植到其他设备上执行,此时无法获得正确的解密密钥。
[0034]如图2所示是本发明Android智能电视敏感数据安全增强方法认证系统示意图。安全代理软件的三个主要功能模块为证书激活、身份认证、应用验签。在智能电视开启时,厂商调用安全代理提供的接口将设备ID和厂商ID传入,安全代理记录设备ID和厂商ID后会启动证书激活流程,此时调用安全代理的证书激活接口 ;当智能电视终端访问云应用服务时,首先会调用安全代理向认证代理服务器发起认证请求,通过安全代理提供的身份认证接口进行身份认证;应用安装的过程中厂商调用安全代理模块提供的验签接口,根据应用程序安装包的相关信息对应用程序或应用补丁进行验签操作,并将验签结果返回给调用者。以上调用证书激活接口、身份认证接口、验签接口等行为都将涉及到以下安全策略:由服务平台KeyFactory生成一对公私钥,开发者提交第三方应用安装包及开发者证书,管理员验证包合法性,若验证通过,使用私钥对开发者信息和包名进行加密,加密数据作为Key下发给第三方应用的开发者。当智能电视厂商第三方应用调用安全代理本地JNI接口(证书激活接口、身份认证接口、验签接口)时需要将Key传入,安全代理首先到本地安全存储区读取公钥,如果在本地没有存储公钥信息,需要连接网络到指定的服务地址获取公钥,获取到之后,写入安全存储区,并返回公钥,验证开发者KEY是否合法,不合法则返回错误信息;若合法,使用公钥对Key进行解密。安全代理对解密后得到的包名及开发者信息进行认证,若认证成功,则允许调用接口,实现相关功能;若上层代码已遭到篡改,则Key值解密后得到的包名及开发者信息认证失败,此时底层代码会发生接口调用认证错误,导致接口调用失败。其中服务平台KeyFactory需要专人维护开发者申请、审批和下发Key。
[0035]提供以上实施例仅仅是为了描述本发明的目的,而并非要限制本发明的范围。本发明的范围由所附权利要求限定。不脱离本发明的精神和原理而做出的各种等同替换和修改,均应涵盖在本发明的范围之内。
【主权项】
1.一种Android智能电视敏感数据安全增强方法,其特征在于实现步骤如下: (1)在操作系统初始化阶段,根据硬件唯一信息产生根密钥RootKey,生成随机密钥作为VFS的一次一密FSKey,使用Rootkey对Fskey加密生成安全密钥SafeFSKey,并存放在VFS密钥区; (2)在安全存储区初始化阶段,重新获取设备信息生成RootKey,使用Rootkey对16位固定密钥FixedKey进行加密生成根固定密钥RootFixedKey,然后RootFixedKey对SafeFSKey加密得到最终密钥FinalKey,使用FinalKey初始化安全存储区并将关键数据存入安全存储区; (3)在读取数据阶段,每次读取数据时会重新生成FinalKey进行文件解密; (4)存储区初始化之后,假设智能电视的高级权限被获取,攻击者获取到VFS文件及APK,并试图移植到其他设备上执行,解密密钥和设备进行严格绑定,此时无法获得正确的解密密钥; (5)存储区初始化之后,假设智能电视的高级权限被获取,攻击者试图在本地获取到安全存储区的内容,通过对Java层代码反编译并重新调用安全存储区本地JNI接口,从而直接获得敏感数据,在存储区本地库调用中增加接口调用认证,若上层代码遭到篡改,此时底层代码会发生接口调用认证错误。2.根据权利要求1所述的Android智能电视敏感数据安全增强方法,其特征在于:所述解密密钥与设备进行严格绑定的方法如下: (2-1)以硬件唯一信息产生根密钥RootKey ; (2-2)使用Rootkey对16位固定密钥FixedKey进行加密生成RootFixedKey ; (2-3)使用RootFixedKey对VFS密钥区的SafeFSKey加密得到最终密钥FinalKey ; (2-4)该FinalKey就是唯一的解密密钥,因此在其他设备上无法获得正确的解密密钥。3.根据权利要求1所述的Android智能电视敏感数据安全增强方法,其特征在于,所述在存储区本地库调用中增加接口调用认证的方法如下: (3-1)服务平台KeyFactory生成一对公私钥; (3-2)开发者提交第三方应用安装包及开发者证书,管理员验证包合法性,若验证通过,使用私钥对开发者信息和包名进行加密,加密数据作为Key下发给第三方应用; (3-3)当第三方应用调用安全存储区本地JNI接口,将Key传入; (3-4)本发明获取第三方应用包名及开发者信息; (3-5)本发明使用公钥对Key进行解密; (3-6)本发明对解密后得到的包名及开发者信息进行认证; (3-7)若认证成功,则允许调用接口 ; (3-8)若上层代码已遭到篡改,则Key值解密后得到的包名及开发者信息认证失败,此时底层代码会发生接口调用认证错误。
【专利摘要】本发明公开了一种Android智能电视敏感数据安全增强方法,涉及对Android智能电视敏感数据的安全进一步增强,在现有技术的基础上,提出一种新的策略更加充分地保证敏感数据的机密性。通过使用与硬件唯一信息相关的密钥体系对虚拟文件系统进行加密,并使解密密钥与设备进行严格绑定,若攻击者试图将存储敏感数据的文件和APK文件移植到其他设备上执行,此时攻击者将无法获取正确的解密密钥;增加接口调用认证,若攻击者试图反编译Java层代码,在本地重新调用加密后的虚拟文件系统的本地JNI接口,此时将发生接口调用认证错误,无法成功调用接口窃取敏感数据。
【IPC分类】H04N21/266, H04N21/258
【公开号】CN104902291
【申请号】CN201510259122
【发明人】晏敏, 王雅哲
【申请人】中国科学院信息工程研究所
【公开日】2015年9月9日
【申请日】2015年5月20日