论文部分内容阅读
随着云计算技术的快速发展,各种基于云平台的新型Web服务不断被提出,为了实现跨平台性,基于JavaScript语言的B/S模式是这些服务的主要交互方式。而且用户可以使用浏览器直接获得网页的JavaScript源码,这对网络信息的安全性、源代码的保密性等都带来巨大的挑战。同时,目前大部分代码保护技术的研究都是基于C/C++或Java等编译型语言平台,对于诸如JavaScript等解释型脚本语言的研究相对较少。因此,如何保护JavaScript代码安全是一项具有现实意义和经济效益的研究课题。本文通过分析目前代码保护技术的研究现状和存在的不足,以JavaScript平台为基础,研究并改进多种代码保护技术,同时还对本文提出的相关代码保护技术进行有效性综合评估。本文研究的主要工作包括以下几个方面。对传统二态不透明谓词进行改进,提出N态不透明谓词的概念,并给出两种构造N态不透明谓词的方法,分别是基于二维混沌映射Arnold Cat的N态不透明谓词和基于hash除留余数法的N态不透明谓词,同时对这两种不透明谓词构造的原理、算法框架及其实现进行详述。针对基本压扁控制流算法无法抵抗定值量传播分析攻击的缺陷,使用本文提出的N态混沌不透明谓词进行改进,提出并实现基于混沌不透明谓词的JavaScript压扁控制流算法。通过实验结果表明,该方法能够有效抵制各类逆向分析。由于传统的软件水印技术存在鲁棒性和隐蔽性差的问题,使用本文提出的哈希除留余数法不透明谓词进行改进,提出和实现基于哈希不透明谓词的JavaScript软件水印技术。通过实验结果表明,该方法能提高软件水印的抗干扰能力和隐蔽性。基于目前缺乏对JavaScript代码保护技术有效性的定量分析方法的研究现状,本文提出一种基于动态自适应主成分分析的代码保护技术有效性综合评估模型,并将该模型应用于本文提出的代码保护技术当中,通过实验验证该模型的有效性,同时对这些技术进行有效性评估。