对JAVA程序增强保护的方法和设备及移动终端 【技术领域】
本发明实施例涉及移动通信技术,尤其涉及一种对JAVA程序增强保护的方法和设备及移动终端。
背景技术
越来越多的手机支持JAVA平台,手机JAVA程序,例如JAVA游戏的下载越来越流行。为了保护软件开发商和版权购买方的利益,很多游戏提供商使用x.509安全机制来对JAVA游戏进行签名保护,限制非法使用。游戏提供商使用x.509安全机制对JAVA游戏的JAR(JAVA ApplicationResource,JAVA应用资源文件)文件进行签名后,会在该JAVA游戏的JAD(JAVA Application Description,JAVA应用描述)文件中生成两个属性,关键字分别为MIDletCertificate-1-1和MIDlet-Jar-RSA-SHA1。MIDletCertificate-1-1对应的值为第三方认证机构私钥对游戏开发商的公钥进行数字签名值,MIDlet-Jar-RSA-SHA1对应的值为游戏开发商使用自己的私钥对JAR文件的散列值进行的数字签名值。JAVA游戏下载到手机后,手机在安装JAVA游戏时,会检查JAD文件的属性,如果有MIDletCertificate-1-1和MIDlet-Jar-RSA-SHA1,证明是被签名的游戏,然后和本地预装的证书(包含第三方认证机构的公钥)进行匹配,匹配成功就可以继续安装,匹配不成功就返回认证失败。
在实现本发明过程中,发明人发现现有技术至少存在如下问题:现有的安全机制不够完善,例如,用户可能会对下载下来的JAD文件进行篡改,去掉签名属性,从而逃避x.509安全机制的检查。
【发明内容】
本发明实施例是提供对JAVA程序增强保护的方法和设备及移动终端,用以解决现有技术中对移动终端JAVA程序的保护不够完善的问题。
一方面,提供了一种对JAVA程序增强保护的方法,包括:
解析待安装的JAVA程序的JAD文件和MF文件,分别获取所述JAD文件中的签名属性和所述MF文件中的签名属性;
当所述JAD文件中的签名属性和所述MF文件中的签名属性均存在时,安装所述待安装的JAVA程序。
另一方面,提供了一种对JAVA程序增强保护的方法,包括:
在待生成的JAVA程序的MF文件中增加签名属性;
在待生成的JAVA程序的JAD文件中生成签名属性,所述JAD文件中的签名属性与所述MF文件中的签名属性相同。
一方面,提供了一种移动终端,包括:
解析模块,用于解析待安装的JAVA程序的JAD文件和MF文件,分别获取所述JAD文件中的签名属性和所述MF文件中的签名属性;
安装模块,用于当所述JAD文件中的签名属性和所述MF文件中的签名属性均存在时,安装所述待安装的JAVA程序。
另一方面,提供了一种对JAVA程序增强保护的设备,包括:
MF文件生成模块,用于在待生成的JAVA程序的MF文件中增加签名属性;
JAD文件生成模块,用于在待生成的JAVA程序的JAD文件中生成签名属性,所述JAD文件中的签名属性与所述MF文件中的签名属性相同。
本发明实施例通过在MF文件中增加签名属性,使得安装移动终端JAVA程序时需要匹配MF文件和JAD文件的签名属性,避免只在JAD文件中存在签名属性引起的安全机制不完善的问题,增强保护力度。
【附图说明】
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明第一实施例的方法流程示意图;
图2为本发明第二实施例的方法流程示意图;
图3为本发明第三实施例的方法流程示意图;
图4为本发明第四实施例的移动终端的结构示意图;
图5为本发明第五实施例地对JAVA程序增强保护的设备的结构示意图。
【具体实施方式】
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
可以理解的,本发明实施例中描述的移动终端包括但不限于各种手机,智能手机,个人数字助理PDA、无线上网本、PSP、MP3、MP4等电子设备。
图1为本发明第一实施例的方法流程示意图,包括:
步骤11:移动终端解析待安装的JAVA程序的JAD文件和JAR文件描述文件(MANIFEST.MF,MF)文件,分别获取所述JAD文件中的签名属性和所述MF文件中的签名属性。
通常一个JAVA程序包括JAR文件和JAD文件,其中,JAR文件是程序的主体,由MF文件和JAVA资源打包形成,JAVA资源包括JAVA字节码、图片、音乐等。JAD文件是程序描述文件,包括JAR文件的相关信息,例如,名称、版本、大小等。在生成一个JAVA程序时,首先会自动创建一个MF文件,MF文件也是程序描述文件,MF文件中的信息与JAD文件中的对应信息是相同的。
步骤12:当所述JAD文件中的签名属性和所述MF文件中的签名属性均存在时,移动终端安装所述待安装的JAVA程序。
由于现有技术中只在JAD文件中存在签名属性,当用户恶意篡改JAD文件,删除JAD文件中的签名属性时,可能会出现对JAVA程序的盗用安装,损害程序开发商的利益。为了增强JAVA程序的保护机制,本实施例不仅需要检查JAD文件中的签名属性,还要检查MF文件中的签名属性,当MF文件中存在签名属性时,JAD文件中也要存在签名属性才能安装,提高保护能力。
本实施例中MF文件及JAD文件中的签名属性为MIDletCertificate-1-1和MIDlet-Jar-RSA-SHA1。
本实施例中JAVA程序在安装时需要在JAD文件和MF文件中均存在签名属性时才可以正确安装,可以保护程序开发商的利益。由于移动终端制造商和程序开发商是利益捆绑的,因此也可以保护移动终端制造商的利益。并且,通过增加的保护,可以避免非安全性的JAVA程序访问移动终端API,保护移动终端的安全性。
图2为本发明第二实施例的方法流程示意图,包括:
步骤21:对JAVA程序增强保护的设备在待生成的JAVA程序的MF文件中增加签名属性;
步骤22:该设备在待生成的JAVA程序的JAD文件中生成签名属性,所述JAD文件中的签名属性与所述MF文件中的签名属性相同。
其中,所述JAD文件和MF文件中的签名属性包括MIDletCertificate-1-1和MIDlet-Jar-RSA-SHA1
本实施例通过在MF文件中增加签名属性,使得JAVA程序在安装时需要在JAD文件和MF文件中均存在签名属性时才可以正确安装,可以保护程序开发商的利益。由于移动终端制造商和程序开发商是利益捆绑的,因此也可以保护移动终端制造商的利益。并且,通过增加的保护,可以避免非安全性的JAVA程序访问移动终端API,保护移动终端的安全性。
图3为本发明第三实施例的方法流程示意图,本实施例以JAVA游戏为例。参见图3,本实施例包括:
步骤301:程序开发商侧(具体可以为上述的对JAVA程序增强保护的设备),在待生成的JAVA游戏的MF文件中增加两个签名属性。
其中,两个签名属性分别为MIDlet-Certificate-1-1和MIDlet-Jar-RSA-SHA1。在实施时,可以只生成上面的关键字,该关键字对应的签名属性的值可以为空。
步骤302:程序开发商侧将上述的MF文件及JAVA资源打包成JAR文件。
具体地,将包含上述两个签名属性的MF文件、JAVA字节码、图片、音乐等JAVA资源按照规范打包制作成JAR文件。
步骤303:程序开发商侧,对JAR文件进行签名处理,得到属性值。
具体地,对JAR文件使用x.509机制进行签名,得到上述两个签名属性对应的属性值。
步骤304:程序开发商侧,将上述的属性值添加在JAD文件的对应签名属性中。
具体地,将得到的上述属性值对应写入待生成的JAVA游戏的JAD文件的两个签名属性中。
其中,JAD文件中同样包含上述两个签名属性:MIDlet-Certificate-1-1和MIDlet-Jar-RSA-SHA1,JAD文件中的上述两个签名属性的属性值是对JAR文件进行签名后得到的,具体的可以采用x.509机制实现,不再赘述。
步骤305:程序开发商侧,将签过名的JAVA游戏放在指定的网站上供用户下载。
步骤306:移动终端在从指定的网站上下载JAVA游戏后,解析下载的JAVA游戏的MF文件和JAD文件。
步骤307:移动终端判断JAD文件中是否存在签名属性,若是,执行步骤309,否则,执行步骤308。
步骤308:移动终端判断MF文件中是否存在签名属性,若是,执行步骤310,否则,执行步骤309。
步骤309:移动终端安装该JAVA游戏。
步骤310:移动终端停止安装该JAVA游戏,并可以进一步提示用户认证失败。
本实施例,可以避免用户恶意安装移动终端JAVA程序,保护JAVA程序开发商的利益,由于程序开发商和移动终端制造商的利益是捆绑的,可以保护移动终端制造商的利益。并且,可以提高JAVA程序的安全性,避免非安全的JAVA程序访问移动终端API。
图4为本发明第四实施例的移动终端的结构示意图,包括解析模块41和安装模块42,解析模块41用于解析待安装的JAVA程序的JAD文件和MF文件,分别获取所述JAD文件中的签名属性和所述MF文件中的签名属性;安装模块42用于当所述JAD文件中的签名属性和所述MF文件中的签名属性均存在时,安装所述待安装的JAVA程序。
进一步地,本实施例还可以包括停止安装模块43,停止安装模块43用于当所述JAD文件中的签名属性不存在但所述MF文件中的签名属性存在时,停止安装所述JAVA程序。
本实施例中,所述JAD文件和MF文件中的签名属性包括MIDletCertificate-1-1和MIDlet-Jar-RSA-SHA1。
上述模块具体地处理流程可以参见方法实施例,不再赘述。
本实施例中JAVA程序在安装时需要在JAD文件和MF文件中均存在签名属性时才可以正确安装,可以保护程序开发商的利益。由于移动终端制造商和程序开发商是利益捆绑的,因此也可以保护移动终端制造商的利益。并且,通过增加的保护,可以避免非安全性的JAVA程序访问移动终端API,保护移动终端的安全性。
图5为本发明第五实施例的对JAVA程序增强保护的设备的结构示意图,包括MF文件生成模块51和JAD文件生成模块52,MF文件生成模块51用于在待生成的JAVA程序的MF文件中增加签名属性;JAD文件生成模块52用于在待生成的JAVA程序的JAD文件中生成签名属性,所述JAD文件中的签名属性与所述MF文件中的签名属性相同。
本实施例中的所述JAD文件和MF文件中的签名属性包括MIDletCertificate-1-1和MIDlet-Jar-RSA-SHA1。
上述模块具体地处理流程可以参见方法实施例,不再赘述。
本实施例通过在MF文件中增加签名属性,使得JAVA程序在安装时需要在JAD文件和MF文件中均存在签名属性时才可以正确安装,可以保护程序开发商的利益。由于移动终端制造商和程序开发商是利益捆绑的,因此也可以保护移动终端制造商的利益。并且,通过增加的保护,可以避免非安全性的JAVA程序访问移动终端API,保护移动终端的安全性。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。