基于php的在线考试系统的设计与实现外文翻译资料
2022-09-19 10:54:55
JOURNAL OF NETWORKS, VOL. 8, NO. 10, OCTOBER 2013 |
2353 |
Security Analysis of PHP Encoder
Yao Chunlong, Yin Fengjiao, Li Xu, and Fan Fenglong
School of Information Science and Engineering, Dalian Polytechnic University, Dalian 110634, China
Abstract—As an open source server-side scripts language, PHP is used more and more widely by Web developers now. Protecting PHP code from being plagiarized is also a hot research issue especially with the rapid development of dynamic web industry and peoplersquo;s copyright protection consciousness. Usually the developers use PHP encoders to encrypt the PHP codes before selling them out. There are several different kinds of PHP encoders with different performances. In this paper, we analyze and compare the security level of some well-known encoders. From a fully new aspect, we try to analyze the output of the encoders with the random statistical tests, which is never done before. Also, we demonstrate the soundness of our method. We figure out the test suite which is most suitable for PHP encoders and explain the reasons. Finally, we carry out the experiments and draw a conclusion about the security of the PHP encoders based on our results.
Index Terms—PHP, Ioncube, Zend, Statistical Test,
Randomness
- INTRODUCTION
With the progresses of Web, more and more dynamic web pages are developed to be used in every aspect of our lives, such as social network sites, electronic commercial shopping, management system and e-banking. Many of these web sites are implemented using PHP in the server. As a server-side scripting language, PHP is designed for producing dynamic pages with open source. Instead of calling an external function, PHP is embedded to the HTML source code for processing the data. It is first proposed in 1994 by Rasmus Lerdorf written with C programming language. Since the first version, PHP develops rapidly. After numerous improvements and optimizations on the original release, it now has grown to version 5. The PHP is interpreted by the PHP processor in a Web server. It also can be used as independent shell on other graphical applications, platforms and operation systems. The PHP can be used to manage the dynamic content, support the database, process the session tracking, and even build the entire station for the e-commerce. It supports many popular databases, including MySQL, PostgreSQL, Oracle, Sybase, Informix, and the Microsoft SQL Server.
Unlike other similar server-side scripts such as ASP developed by Microsoft, PHP is free and obtains more and more attention. People are aware of its practicality gradually. Now PHP is widely used in the world. Famous applications of PHP are Word Press, Drupal, Magento and so on.
Due to the property of the script, the source code of PHP is likely to expose after the release. So the PHP source codes require some mechanisms or processing means to prevent from view of decompiling, unauthorized custom modifications, unauthorized usage and re-release. PHP encoders are designed to protect the PHP applications in the reverse engineering, unauthorized customs, unlicensed usage and redistribution. Zend Encoder is one of such encoders.
PHP code protection has been the core concerns of many companies, such as some of the well-known forums such as vBulletin, Discuz, PHPWind and ShopEx.
However, the emergence of PHP decompiling quickly causes panic in the Zend-like companies, and even entire PHP user group. All the related products, including almost all of the large-scale PHP products are cracked. And the source codes are even published. In this situation, the Zend company has to admit that all encryption technology have a way to break, and promise a great improvement to provide better protection for encryption products.
In the field of cryptography, random statistical tests are used to verify the randomness of sequences. Each random test corresponds to a kind of property of sequences. The output of sequences produced with small probability in a pre-determined distribution is considered to be not random. The core of each test is the probability distribution and the statistics. The statistical tests can be constructed according to the requirements, so there are numerous possible statistical tests. The sequence is detected by every test. If there is a mode being found in the sequence, this sequence is regarded to be disqualified by the test.
Usually some of a large number of tests are picked out to form a test package [8], which should be as few as possible but enough to detect enough random properties of the sequences. Because of the presence of so many tests [9-11], choosing a proper test suite according to detailed requirements is very important. So researchers need to determine which tests should be included in such a test suite to ensure its rationality [12] [20].There are some widely-known test suites. Knuth proposed several empirical tests in “The Art of Computer Programming” [1], which includes the serial test, the poker test, the permutation test, the run test, the interval test and the birthday space test. Menezes developed five primary tests in “Handbook of Applied Cryptography” [2], including the frequency test, the serial test, the poker test, the run test and the autocorrelation test. Marsaglia gave a test suite CD called DIEHARD in [3]. Many tests are
copy; 2013 ACADEMY PUBLISHER doi:10.4304/jnw.8.10.2353-2360
2354 JOURNAL OF NETWORKS, VOL. 8, NO. 10, OCTOBER 2013
involved in th
剩余内容已隐藏,支付完成后下载完整资料
PHP编码的安全性分析
随着网络的发展,越来越多的动态网页开发中使用了我们生活的各个方面,如社交网络、电子商务购物、管理系统和电子银行。很多网站都是用PHP在服务器端执行,服务器端脚本语言,PHP是开放源代码的动态网页设计制造。而不是调用外部函数,PHP是嵌入在HTML源代码中的数据处理。它是由Rasmus Lerdorf在1994提出的用C语言。自从第一个版本,phpdevelops迅速。经过对原释放无数的改进和优化,现已toversion 5。PHP的PHP在Web服务器处理器的解释。它也可以作为独立的壳其他图形应用程序、平台和操作系统。PHP可以用来管理动态内容,支持数据库,进程的会话跟踪,甚至构建整个站的电子商务。它支持许多流行的数据库,包括MySQL、PostgreSQL、Oracle、Sybase、Informix、和Microsoft SQL Server。与其他类似的服务器端脚本如ASP由微软开发,PHP是免费的,得到了越来越多的关注。人们逐渐意识到它的实用性。现在PHP是广泛使用在世界上。PHP的著名应用Word Press,Drupal,magentoand等等
由于脚本的性能,PHP源代码容易暴露后释放。因此,PHP源代码需要一些机制或处理手段防止从反编译,未经授权擅自使用自定义修改,重新发布。PHP编码器的设计来保护在逆向工程、PHP应用未经授权的海关、无证使用和再分配。Zend编码器是一种这样的编码器。
PHP代码保护一直是许多公司的核心问题,如一些知名论坛,如vBulletin,discuz,PHP的风和shopex。
然而,出现反编译PHP迅速引起恐慌,在Zend公司一样,乃至整个PHP的用户组。所有的相关产品,包括几乎所有的大型PHP产品开裂。源代码甚至出版。在这种情况下,承认所有加密技术有办法打破Zend公司,并承诺AD加密产品提供更好的保护。
在密码学领域,采用随机统计检验来检验序列的随机性。每一个随机测试对应一种序列的性质。输出序列产生小概率在预先确定的分布被认为是不是随机的。每个测试的核心是概率分布和统计。统计测试可以被按要求,所以有多可能的统计检验。序列进行的每一次考验。如果序列中发现了一个模式,该序列被认为是被测试的资格。
通常,一些大量的测试被选出来,形成一个测试包,这应该是尽可能少,但足够的检测到足够的随机特性的序列。由于这些测试的存在,根据具体要求选择适当的测试套件是非常重要的。所以,研究人员需要确定哪些测试应包括在一个测试套件,以确保其合理性。有一些广为人知的测试套件。Knuth提出的实证检验,在“计算机程序”的艺术,包括串行测试、扑克测试,新的测试,运行测试,测试的间隔和生日空间试验。五次试验在“十开发应用密码学”手册,包括频率测试、串行测试、扑克检验、游程检验和序列的自相关检验。。
在这套套件中所涉及的生日空间测试、重叠测试、置换测试、二值矩阵测试、矩阵测试、基因测试、最小距离测试等。Gustafson出版的cryptxs测试套件测量强度的密码学原语。在,国家标准和技术研究所提出了一个测试套件,这是公认的大多数使用。这个测试套件包含16个测试:频率测试块内,的离散傅里叶变换测试、重叠模板,匹配试验、Lempel-Ziv压缩试验、线性复杂度测试。它也被称为一些测试有一些缺陷,所以我们应该更小心地使用它们。我们的贡献,在本文中,我们首先分析了一些知名的编码器的安全级别。我们比较这些编码器从不同的方面。我们采用随机统计检验的观点,从一个新的角度考虑安全性。正如我们所知,迄今为止还没有这样做。通过比较输出的编码器基于不同的测试的随机性,我们给更多的洞察到几个广泛-使用PHP编码器。这是从来没有做过的。我们也证明了我们的方法的合理性和效果。从一些不同种类的测试套件,我们的测试套件,这是优胜劣汰的PHP编码器测量。最后,我们采取一些PHP编码器的实验和解释的结果。结果的基础上,我们得出更详细和明确的结论对现有的PHP编码器
在第二节中,我们介绍了几种广泛知道PHP编码器,以及其发展现状的背景信息。我们也给这些编码器的性能进行比较。在3节中,我们提出了更多的细节,随机统计测试,特别是涉及到我们所关心的问题。在第4节,我们描述了如何根据我们的新方法基于统计随机测试PHP编码器的安全检测。在第5节,我们专注于几个PHP编码器的应用在大多数应用中,深入分析了在本文。在第6节,我们开展实验几个PHP编码器与我们的方法,并比较其结果。第7节总结本文
1.相关的工作
有几个PHP编码器现在。有些是免费的,而另一些则是免费的。目前最流行的授权PHP加密软件市场上主要是这两个:(1)Zend Guard由Zend公司(2)Ioncube PHP编码器其他轻量级编码器包括PHP螺钉和phpcodelock。微屏蔽PHP加密专家phpcodelock优良的PHP脚本加密软件,无需安装任何第三方组件在服务器端。加密文件可以运行在任何普通的PHP环境。这个软件不需要额外的费用。加密的脚本可以运行在普通的PHP 4和PHP 5环境在您的计算机上没有安装其他组件的服务器;加密的脚本可以在Windows,Linux,运行良好,无任何变化的Unix Web服务器。PHP的安全模式运行良好,提供足够的混乱,这可以保护敏感信息的泄露,如MySQL的密码。该算法从一个独特的目录,子目录遍历的几个深度直到覆盖所有文件和子目录完成。在指定目录的子目录的加密包括文件加密支持。锁的使用,不仅支持单个或多个知识产权函数,而且还支持单个或多个域名称的锁定。一旦配置为支持自动过期时间,就可以使用日期限制许可证的公告。它还保证了系统资源的最小使用和瞬时加密速度。此外,安装和使用都非常基本和人性化。那是因为不需要配置服务器上的任何可写的目录或文件的在线帮助支持。加密的脚本可以包含自定义错误信息,但无法加密配置文件。在脚本中删除的图片文件和其他的注释和空格。PHP螺丝还有一个免费的PHP脚本加密工具。当你利用PHP开发一个商业软件包,脚本可以是分布式加密直到临刑,保护你的知识产权。PHP螺钉可实现以下功能。首先是PHP文件加密程序。另一个是解析加密的PHP文件并运行得到结果。前者是比较简单的程序实现。后者是由PHP模块的主要实现形式。另一个PHP编码器称为Web老虎可以保护任何类型的文件,不仅PHP。例如,附加的扩展文件,包含用户名和数据库连接的密码的配置文件。网络老虎是可靠和容易使用。它提供了无声的安装,这样用户就可以将网络包装到自己的产品安装过程中。它具有简单的用户操作和易于维护。根据不同的要求,网络老虎有三个版本。第一个版本并不限制机器的PHP应用软件安装。通过绑定适配器时,一套软件,限制只在一台机器上安装用户写的关键加密狗,加密是保护它所需的PHP文件。然后加密的文件,这狗,虎Web客户端是向客户发布安装。网络老虎客户端运行在终端用户的机器上,使用窗口驱动。在授权工作状态的传输器,PHP应用程序和系统获得实时保护。二次版本有点不同于第一个版本。所有受保护的文件都被打包成一个文件,最终用户无法看到任何加密的目录结构。该版本进一步提高了安全性能,消除了传统的系统主流应用程序,如PHP的保护。它也可以提供安全保护静态文件。注意,后写作的关键thedongle,放入虚拟磁盘的所有受保护的文件,然后(包含所有protectedfiles这个虚拟磁盘文件),Web客户端安装老虎发送给最终用户。第三个版本具有以下特点:最快的加密和部署速度;便宜;被授权的可接受的只有一个机器。
2. 随机统计检验
在网络和密码学领域,输出序列的随机性是安全的一个重要的测量。的输出序列的缺陷可以通过统计检验。每一个随机试验的重点是统计量及其分布。随机性是判断基于假设检验理论。
A.假设检验
假设检验是一类重要的检验和区间估计问题。其基本思想是小概率原理。也就是说,如果一个假设是真的,那么在这个假设下一个很小的概率就不会发生。如果这个事件发生,那么我们有理由怀疑这个假设的正确性。从这个基本思想,使根据实际问题第一:零假设H0表示,和假设表示为H1的两个假设。然后,统计方案,其分布是已知的。在这种分布的基础上,p {拒绝H0 | H0真} =alpha;H第一:零假设H0表示,和假设表示为H1的两个假设。然后,,统计的拒绝区域被决定。序列进行测试,此统计值的计算和检查,以确定是否应该被接受或拒绝H0。在实际情况下,如何确定被试的排斥区域是关系到假设检验中的2类错误。一类错误是拒绝H0时,它是真实的。这种“放弃真”的错误被称为我的错误。另一类错误是接受H0,当它是假的。这种“伪”的错误被称为第二类错误,类型错误的发生概率是前面提到的重要一级。类型错误的发生概率是由。当样本大小是固定的,我的错误的概率的减少,通常会导致类型的错误概率的增加。一般情况下,我们会选择样本大小和控制值,以确定适当的抑制区域最小。这种测试也被称为测试的意义,它只专注于类型的错误,我没有第二类。
B.正态分布
这是使用最广泛的分布统计。其定义如下。定义。1。让xhas连续随机变量的概率密度为其中为常数。X称为服从的异常分布,用均值和方差,表示为X(X)。如果~ N(0,1),我们认为Chi;服从标准正态分布。
C.卡方分布和卡方检验
为伽玛分布的一种特殊情况,卡方分布是另一个重要的连续分布的统计和概率论领域,这也标志着chi;分布。一个正态分布的正态分布与正态分布的平方和独立变量的总和。通常情况下,卡方分布在基本卡方假设检验测量的距离之间的观察或经验分布和理论分布,这也被称为拟合试验的善良。除了在假设检验中的应用,chi;-分布是也用于构建置信域。卡方分布包括两种:非中心卡方分布的中心卡方分布。这种分布也利用许多其他的统计测试,如弗里德曼方差分析的队伍。此外,它是用于分类的两个标准的定性数据,估计总体标准差的正态分布从采样的标准偏差,确定置信区间场独立。卡方分布的详细定义如下。定义。2。让连续的随机变量的概率密度如下其中V是一个正整数,Gamma;是伽玛函数,则X服从卡方分布与自由度V,由x表示。
3.提出方案
如前所述,有许多用于测试输出的随机性的统计检验。这些输出的随机水平可以反映算法的安全性。鉴于物业PHP的编码器,我们也可以使用这个想法测试他们的安全。PHP编码器将PHP代码到一些毫无意义的和非理想情况下的可预测的输出文件。一旦一些非随机的行为被发现在这些输出文件,PHP代码可以被恢复的PHP编码器被认为是不安全的。我们选择适当的统计测试测试套件,这是最适合测试这些非随机行为PHP的输出形式。我们专注在几个广为人知的试验,选择其中一些形成我们的套房,并解释他们适合PHP编码器。皮埃尔lecuyer提到[ 13 ],测试可以分为初步统计和二次统计。主要的数据是计算整个序列,关于序列的完整性。二次统计是对每个子序列进行相同的统计,将原来的序列分为非重叠子序列。通过对所获得的数据进行卡方检验,我们可以比较实际分布和理论分布的偏差。为了方便起见,我们首先给出了一些常用的符号,在本文中,我们首先给出了一些常用的符号。N:{0,1}序列T的长度:的t统计量:{0,1}序列长度为n的是测试,,x:{ 1 }序列对应到N:分为N组的序列。对于我们选择的统计测试,我们分为两节介绍他们。首先介绍了测试的数学和加密原理。然后,我们简要介绍的步骤:预处理和预计算的序列,计算统计和分布。
- 频率测试
该测试计算了一个序列的汉重权重,即1的数量,因为随机二进制序列应该以相等的概率取0和1,如果输出是随机的,则应该大约等于0和1的数。所以测试计算数的0和1的序列,并消除了过量的0或1的序列。该试验是进行其他试验的基础,每一次都应首先采取。通过这个测试消除的序列通常在其他测试中失败。具体步骤如下:1.计算X对应的测试序列,其中,1le;ile;N 。2.序列统计。3.计算基于T p值来判断序列是否随机。
B.运行测试
测试的重点是在一个序列中的运行数。连续0个或连续1个部分被称为运行。对于具有相同的汉重权重的序列,太大的运行长度或太小的运行长度都表明非随机性。运行的次数也反映了0、1的变化频率。具体步骤如下:1.计算。2.检查2 =1。3.计算基于T p值来判断序列是否随机。
C.子序列的频率测试
这是一个用二次统计检验。也就是说,它是频率测试的二级版本。本次试验是检验每个子序列中的0和1的数是否满足要求。当氮= 1时,这个测试是相同的基本频率测试。具体步骤如下:1。将被测序列分为两组,每组各2个。计算3。计算基于T值来判断序列是随机的
D.在子序列中的最长运行测试
同样,这也是一次二次统计检验。它是运行测试的二级版本。本次试验是检验每个子序列中的0和1的数是否满足要求。当1,这个测试是相同的基本运行测试。对于子序列与已知的汉重权重,最长的运行1应该满足一定的分布。本试验检验了实际分布和理论分布的偏差程度。具体步骤如下:1. 将被测序列分为两组,每组各2个。计算为每个组的最长的运行1.例如,最长的1个序列中的11010111个序列。3.不同的运行的长度分为不同的范围,并且有全钾1范围。3.计算数序列VI落入每一距离I,I = 0,1,4 .计算K。5.计算基于T p值来判断序列是否随机。
E.非重叠检验
这个测试通过非重叠的方式来检测特定模式的次数过多。例如,这种模式可以是一个“1”运行的固定长度。具体步骤如下:1.将被测序列分为两组,每组各2个。2.确定模式B 。3.从每个子序列的第一位,取连续
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[148469],资料为PDF文档或Word文档,PDF文档可免费转换为Word