启用容器文件中加密的软件模块制造技术

技术编号:25608979 阅读:27 留言:0更新日期:2020-09-12 00:03
提供了一种用于启用软件应用的容器文件中的加密的软件模块的方法。该方法在模块提供器中被执行并且包括以下步骤:获取软件模块;基于软件模块的标识符和主密钥来获取模块密钥,该主密钥被用来与软件模块的相应标识符相结合而生成多个模块密钥;使用模块密钥对软件模块进行加密,从而产生加密的软件模块;以及将加密的软件模块包括在容器文件中,同时从容器文件中删除模块密钥并且从容器文件中删除可以用来生成模块密钥的信息。

【技术实现步骤摘要】
【国外来华专利技术】启用容器文件中加密的软件模块
本专利技术涉及用于在软件应用的容器文件中启用加密的软件模块的方法、模块提供器、计算机装置、计算机程序和计算机程序产品。
技术介绍
当软件应用——也被称为应用——被分发到谷歌安卓(GoogleAndroid)环境中时,该软件应用形成了安卓程序软件包(APK)的一部分。APK是包含多个文件的容器文件,包括Java.class文件。APK被分发以允许应用被安装,因此APK可供大量的人使用。由于Java结构,Java.class文件可以被反编译成source.java文件,从而揭示应用的逻辑和算法。这种source.java文件的公共可用性有时是不方便的并且有时是完全不可接受的,例如,泄露商业秘密。混淆是可以用来使例如Java.class文件的反编译复杂化的技术。通过混淆器来传递原始的源文件,该混淆器创建了复杂且难以理解的java源文件的结构。混淆的文件然后被编译成字节码。然而,尽管混淆可以被用于使基于反编译的.class文件来理解source.java文件的逻辑更加困难,但是仍然可以花费时间和努力来学习很本文档来自技高网...

【技术保护点】
1.一种用于启用软件应用的容器文件中的加密的软件模块的方法,所述方法在模块提供器(20)中被执行并且包括以下步骤:/n获取(40)软件模块(5a);/n基于所述软件模块(5a)的标识符(3)和主密钥(2)来获取(42)模块密钥(4),所述主密钥(2)被用来与软件模块的相应标识符相结合而生成多个模块密钥(4);/n使用所述模块密钥(4)对所述软件模块(5a)进行加密(44),从而产生加密的软件模块(5b);以及/n将所述加密的软件模块(5b)包括(46)在容器文件(10)中,同时从所述容器文件(10)中删除所述模块密钥(4)并且从所述容器文件(10)中删除可以用来生成所述模块密钥的信息。/n

【技术特征摘要】
【国外来华专利技术】20180131 EP 18154425.51.一种用于启用软件应用的容器文件中的加密的软件模块的方法,所述方法在模块提供器(20)中被执行并且包括以下步骤:
获取(40)软件模块(5a);
基于所述软件模块(5a)的标识符(3)和主密钥(2)来获取(42)模块密钥(4),所述主密钥(2)被用来与软件模块的相应标识符相结合而生成多个模块密钥(4);
使用所述模块密钥(4)对所述软件模块(5a)进行加密(44),从而产生加密的软件模块(5b);以及
将所述加密的软件模块(5b)包括(46)在容器文件(10)中,同时从所述容器文件(10)中删除所述模块密钥(4)并且从所述容器文件(10)中删除可以用来生成所述模块密钥的信息。


2.根据权利要求1所述的方法,其中,所述软件模块(5a)包括java.class文件。


3.根据权利要求1或2所述的方法,其中,所述软件模块(5a)的标识符(3)基于所述软件应用的标识符和所述软件应用的版本指示符。


4.根据前述权利要求中任一项所述的方法,其中,获取(42)所述模块密钥(4)的步骤包括:基于所述软件模块的标识符和所述主密钥来生成所述模块密钥。


5.一种用于启用软件应用的容器文件中的加密的软件模块的模块提供器(20),所述模块提供器(20)包括:
处理器(60);以及
存储器(64),所述存储器(64)存储在由所述处理器执行时使所述模块提供器(20)进行以下操作的指令(67):
获取软件模块(5a);
基于所述软件模块(5a)的标识符(3)和主密钥(2)来获取模块密钥(4),所述主密钥(2)被用来与软件模块的相应标识符相结合而生成多个模块密钥(4);
使用所述模块密钥(4)对所述软件模块(5a)进行加密,从而产生加密的软件模块(5b);以及
将所述加密的软件模块(5b)包括在容器文件(10)中,同时从所述容器文件(10)中删除所述模块密钥(4)并且从所述容器文件(10)中删除可以用来生成所述模块密钥的信息。


6.根据权利要求5所述的模块提供器(20),其中,所述软件模块(5a)包括java.class文件。


7.根据权利要求5或6所述的模块提供器(20),其中,所述软件模块(5a)的标识符(3)基于所述软件应用的标识符和所述软件应用的版本指示符。


8.根据权利要求5至7中任一项所述的模块提供器(20),其中,获取所述模块密钥(4)的指令包括在由所述处理器执行时使所述模块提供器(20)进行以下操作的指令(67):基于所述软件模块的标识符和所述主密钥来生成所述模块密钥。


9.一种用于启用软件应用的容器文件中的加密的软件模块的计算机程序(67,91),所述计算机程序包括当在模块提供器(20)上运行时使所述模块提供器(20)进行以下操作的计算机程序代码:
获取软件模块(5a);
基于所述软件模块(5a)的标识符(3)和主密钥(2)来获取模块密钥(4),所述主密钥(2)被用来与软件模块的相应标识符相结合而生成多个模块密钥(4);
使用所述模块密钥(4)对所述软件模块(5a)进行加密,从而产生加密的软件模块(5b);以及
将所述加密的软件模块(5b)包括在容器文件(10)中,同时从所述容器文件(10)中删除所述模块密钥(4)并且从所述容器文件(10)中删除...

【专利技术属性】
技术研发人员:约纳什·克努特松奥洛夫·桑德伯格
申请(专利权)人:亚萨合莱有限公司
类型:发明
国别省市:瑞典;SE

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

1