论文部分内容阅读
云计算的安全问题,不仅对人们的工作、生活造成影响,甚至会威胁国防安全。Java技术在云计算中应用广泛,必须重视其安全性。软件水印是一种保护软件安全的技术,参考相关文献发现,目前对该技术的研究主要是在算法层面进行理论分析。本文根据云环境中的应用场景,改进现有的软件水印算法,拓宽水印的应用范围,主要工作如下:目前的软件水印研究主要是对单个算法的改进与实现。本文分析、比较了常见的各类Java软件水印算法。综合考虑水印的安全性与通用性后,发现虚方法软件水印算法能更好地保护Java软件的安全。有学者将虚方法软件水印算法应用于软件版权保护。水印通过编码字节码指令或替换指令操作数嵌入,但这种水印容易被16进制编辑器发现。本文将虚方法软件水印算法结合大整数因数分解问题,将公钥作为水印,分片嵌入程序。提取水印时,将分片中的水印合成。该方法不仅提高了水印的隐蔽性和抗变形攻击的能力,而且减弱了水印的偶然性。沙箱是Java安全模型的核心。安全管理器依据代码源、权限等要素,可以对Java软件在API层级进行限制,但其存在安全风险。本文通过继承Class Loader类,编写可验证水印的类加载器。加载字节码文件之前,自定义类加载器提取文件中虚方法软件水印,验证软件合法性。在沙箱限制软件使用API之前,本方法就可以对软件进行识别、限制,降低了系统的安全风险。针对该应用,本文调整了水印算法的编码方式,直接使用字节码指令标识安全的软件,提高了水印的隐蔽性。通过编码,实现了改进的虚方法软件水印算法与两种可验证水印的自定义类加载器。本文对云计算安全威胁进行了分析,并构建攻击模型;利用软件水印技术设计Java安全运行方案,实现了方案的关键技术;最后进行测试。测试结果与分析表明:改进的虚方法软件水印算法可以正确地嵌入与提取水印,且安全性更好。可验证水印的自定义类加载器可以正确地识别非法软件以及处理异常情况。