JOURNAL OF NETWORKS, VOL. 8, NO. 10, OCTOBER 2013
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
2353
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 people’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
I. 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.
ฉ 2013 ACADEMY PUBLISHER
doi:10.4304/jnw.8.10.2353-2360
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
2354
involved in this suite: the birthday space test, the
overlapping test, the permutation test, the binary matrix
test, the matrix test, the DNA test, the minimum distance
test, and so on. Gustafson published the CryptXS test
suite in [4] to measure the strength of some cryptographic
primitives. In [5], National Institute of Standards and
Technology proposed a test suite which is accepted by
most usage now [6, 7]. This test suite contains 16 tests:
the frequency test within a block, the discrete Fourier
transform test, the overlapping template, the matching
test, the Lempel-Ziv compression test, the linear
complexity test. It is also known that some tests have
some flaws so that we should use them more carefully
[18] [19].
A. Our Contribution
In this paper, we first analyze the security level of
some well-known encoders. We compare these encoders
from different aspects. We consider the security from a
new point of view by using random statistical tests. As
we know, this has not been done so far. By comparing the
randomness of the output of the encoders based on
different tests, we give more insight into several widely-
used PHP encoders. This is never done before. We also
demonstrate the soundness and effect of our method.
From some different kinds of test suite, we work out the
test suite which is the fittest to measure the PHP encoders.
Finally, we take the experiments on some PHP encoders
and explain the results. Based on the results, we draw a
more detailed and clearer conclusion about existing PHP
encoders.
B. The Organization
In Section 2, we introduce the background information
about several widely-know PHP encoders, as well as their
state-of-the-art developments. We also give a comparison
of the performances of these encoders. In Section 3, we
present more details about the random statistical tests,
especially related to what we concern in this paper. In
Section 4, we describe how to measure the security of
PHP encoders according to our new method based on the
statistical random tests. In Section 5, we focus on several
PHP encoders which are used in most applications and
analyzed deeply in this paper. In Section 6, we carry out
the experiments on several PHP encoders with our
method, and compare their results. Section 7 concludes
this paper.
II. RELATED WORK
There are several PHP encoders now. Some of them
are free of charge, while others are not. Currently the
most popular authorized PHP encryption software on the
market is mainly these two:
(1) Zend Guard by Zend Company
(2) Ioncube PHP Encoder
Other lightweight encoders include PHP screw and
PHPCodeLock. Micro-shield PHP encryption expert
(PHPCodeLock) is good PHP script encryption software,
without having to install any third-party components in
the server-side. The encrypted files can be run on any
ordinary PHP environment. This software requires no
ฉ 2013 ACADEMY PUBLISHER
JOURNAL OF NETWORKS, VOL. 8, NO. 10, OCTOBER 2013
additional costs: encrypted script can run in the ordinary
PHP 4 or PHP 5 environment on your computer and the
server without installing other components; encrypted
script can run well in Windows, Linux, and UNIX
without any changes in the Web server. The PHP safe
mode can run well and provide enough confusion, which
can defend leakage of sensitive information, such as the
password of MySQL. The algorithm starts from a unique
directory, traverse to several depth subdirectories until
the completion of covering all the files and subdirectories.
The encryption of subdirectories in a specified directory
includes file encryption support. The usage of locking the
encryption key does not only support for single or
multiple IP functions, but also
วารสารของเครือข่าย, VOL 8, NO 10 ตุลาคม 2013 การวิเคราะห์ความปลอดภัยของ PHP Encoder ยาว Chunlong หยิน Fengjiao หลี่เสี่ยวและพัดลม Fenglong ข้อมูลโรงเรียนวิทยาศาสตร์และวิศวกรรม, ต้าเหลียนมหาวิทยาลัยโพลีเทคนิค, ต้าเหลียน 110634, จีน2353 บทคัดย่อ-ในฐานะที่เป็นโอเพนซอร์สด้านเซิร์ฟเวอร์ภาษาสคริปต์PHP ถูกนำมาใช้มากขึ้นอย่างกว้างขวางโดยนักพัฒนาเว็บในขณะนี้. ปกป้องโค้ด PHP จากการถูกลอกเลียนยังเป็นร้อนปัญหาการวิจัยโดยเฉพาะอย่างยิ่งกับการพัฒนาอย่างรวดเร็วของอุตสาหกรรมเว็บแบบไดนามิกและการคุ้มครองลิขสิทธิ์ของผู้คนมีสติ โดยปกตินักพัฒนาใช้เข้ารหัส PHP ในการเข้ารหัสรหัส PHP ก่อนที่จะขายพวกเขาออก มีหลายชนิดที่แตกต่างกันของการเข้ารหัส PHP กับที่แตกต่างกันแสดง ในบทความนี้เราจะวิเคราะห์และเปรียบเทียบระดับความปลอดภัยของบางเข้ารหัสที่รู้จักกันดี จากอย่างเต็มที่ด้านใหม่ที่เราพยายามที่จะวิเคราะห์การส่งออกของเครื่องเข้ารหัสที่มีการทดสอบทางสถิติสุ่มซึ่งไม่เคยทำมาก่อน. นอกจากนี้เรายังแสดงให้เห็นถึงความเหมาะสมของวิธีการของเรา เราคิดออกชุดทดสอบซึ่งเป็นที่เหมาะสมที่สุดสำหรับ PHP เข้ารหัสและอธิบายเหตุผล สุดท้ายเราดำเนินการทดลองและวาดข้อสรุปเกี่ยวกับการรักษาความปลอดภัยของเครื่องเข้ารหัส PHP ขึ้นอยู่กับผลของเรา. ดัชนีข้อกำหนด-PHP, ionCube, Zend, สถิติทดสอบRandomness I. บทนำกับความคืบหน้าของเว็บมากขึ้นและแบบไดนามิกมากขึ้นหน้าเว็บที่มีการพัฒนาที่จะใช้ในทุกแง่มุมของของเราทุกชีวิตเช่นเว็บไซต์เครือข่ายสังคมการค้าอิเล็กทรอนิกส์ช้อปปิ้ง, ระบบการจัดการและการธนาคารอิเล็กทรอนิกส์ หลายเว็บไซต์เหล่านี้จะดำเนินการโดยใช้ PHP ในเซิร์ฟเวอร์. ในฐานะที่เป็นฝั่งเซิร์ฟเวอร์ภาษาสคริปต์ PHP ถูกออกแบบมาสำหรับการผลิตหน้าเว็บแบบไดนามิกด้วยโอเพนซอร์ส แทนการเรียกฟังก์ชันภายนอก, PHP จะถูกฝังอยู่กับซอร์สโค้ด HTML สำหรับการประมวลผลข้อมูล มันเป็นครั้งแรกที่นำเสนอในปี 1994 โดย Rasmus Lerdorf เขียนด้วย C การเขียนโปรแกรมภาษา ตั้งแต่รุ่นแรก, PHP พัฒนาอย่างรวดเร็ว หลังจากการปรับปรุงจำนวนมากและการเพิ่มประสิทธิภาพในรุ่นเดิมได้ในขณะนี้ได้เติบโตขึ้นไปรุ่น 5. PHP ถูกแปลโดยหน่วยประมวลผล PHP ในเว็บเซิร์ฟเวอร์ นอกจากนี้ยังสามารถนำมาใช้เป็นเปลือกเป็นอิสระเกี่ยวกับการใช้งานด้านกราฟิกอื่น ๆ แพลตฟอร์มและการดำเนินงานระบบ PHP สามารถใช้ในการจัดการแบบไดนามิกเนื้อหาสนับสนุนฐานข้อมูลการประมวลผลการติดตามเซสชั่น, และแม้กระทั่งการสร้างสถานีทั้งหมดสำหรับ E-commerce มันสนับสนุนฐานข้อมูลที่นิยมจำนวนมากรวมทั้ง MySQL, PostgreSQL, Oracle, Sybase, Informix และ Microsoft SQL Server. ซึ่งแตกต่างจากคนอื่น ๆ สคริปต์ฝั่งเซิร์ฟเวอร์ที่คล้ายกันเช่น ASP พัฒนาโดยไมโครซอฟท์, PHP เป็นอิสระและได้รับมากขึ้นให้ความสนใจและอื่น ๆ คนมีความตระหนักในการปฏิบัติจริงของมันค่อยๆ ตอนนี้ PHP มีการใช้กันอย่างแพร่หลายในโลก ที่มีชื่อเสียงการใช้งานของ PHP เป็น Word กด, Drupal, วีโอไอพีและอื่น ๆ . ฉ 2013 ACADEMY PUBLISHER ดอย: 10.4304 / jnw.8.10.2353-2360 เนื่องจากทรัพย์สินของสคริปต์ซอร์สโค้ดของPHP เป็นแนวโน้มที่จะเปิดเผยหลังจากที่ปล่อย . ดังนั้น PHP รหัสแหล่งที่มาจำเป็นต้องมีกลไกบางอย่างหรือการประมวลผลหมายถึงการป้องกันจากมุมมองของ decompiling, การปรับเปลี่ยนที่กำหนดเองไม่ได้รับอนุญาตการใช้งานไม่ได้รับอนุญาตและ re-ปล่อย เข้ารหัส PHP ได้รับการออกแบบมาเพื่อปกป้องโปรแกรม PHP ในการวิศวกรรมย้อนกลับไม่ได้รับอนุญาตศุลกากร, การใช้งานที่ไม่มีใบอนุญาตและการกระจาย Zend Encoder เป็นหนึ่งในเครื่องเข้ารหัสดังกล่าว. ป้องกันโค้ด PHP ได้รับความกังวลหลักของหลาย บริษัท เช่นบางส่วนของฟอรั่มที่รู้จักกันดีเช่น vBulletin, Discuz, PHPWind และ ShopEx. อย่างไรก็ตามการเกิดขึ้นของ PHP decompiling ได้อย่างรวดเร็วทำให้เกิดความตื่นตระหนกใน บริษัท Zend เหมือนและแม้ทั้งกลุ่มผู้ใช้ PHP ทุกผลิตภัณฑ์ที่เกี่ยวข้องรวมทั้งเกือบทั้งหมดของผลิตภัณฑ์ PHP ขนาดใหญ่จะแตก. และรหัสแหล่งที่มาที่มีการตีพิมพ์ ในสถานการณ์เช่นนี้บริษัท Zend มีการยอมรับว่าการเข้ารหัสทั้งหมดเทคโนโลยีมีวิธีที่จะทำลายและสัญญาที่ดีในการปรับปรุงเพื่อให้การป้องกันที่ดีกว่าสำหรับการเข้ารหัสผลิตภัณฑ์. ในด้านการเข้ารหัส, การทดสอบทางสถิติสุ่มจะใช้ในการตรวจสอบการสุ่มของลำดับ . แต่ละสุ่มทดสอบสอดคล้องกับชนิดของสถานที่ให้บริการของลำดับ การส่งออกของลำดับการผลิตที่มีความน่าจะเป็นขนาดเล็กในการจัดจำหน่ายก่อนกำหนดจะถือเป็นไม่สุ่ม หลักของแต่ละการทดสอบความน่าจะเป็นการจัดจำหน่ายและสถิติ การทดสอบทางสถิติสามารถสร้างตามความต้องการจึงมีการทดสอบทางสถิติจำนวนมากที่เป็นไปได้ ลำดับที่ถูกตรวจพบโดยการทดสอบทุก หากมีโหมดที่ถูกพบในลำดับลำดับนี้ได้รับการยกย่องที่จะถูกตัดสิทธิ์โดยการทดสอบ. โดยปกติบางส่วนของจำนวนมากของการทดสอบจะหยิบออกมาในรูปแบบแพคเกจการทดสอบ [8] ซึ่งควรจะเป็นเพียงเป็นไปได้ แต่ พอที่จะตรวจสอบคุณสมบัติพอที่สุ่มลำดับ เพราะการปรากฏตัวของจำนวนมากดังนั้นการทดสอบ [9-11] เลือกชุดทดสอบที่เหมาะสมตามความต้องการรายละเอียดเป็นสิ่งสำคัญมาก ดังนั้นนักวิจัยจะต้องตรวจสอบว่าการทดสอบควรจะรวมอยู่เช่นชุดทดสอบเพื่อให้แน่ใจว่ามีเหตุผลของมัน [12] [20] ในบ้านจะประกอบบางห้องทดสอบรู้จักกันอย่างกว้างขวาง Knuth เสนอหลายการทดสอบเชิงประจักษ์ใน "ศิลปะของการเขียนโปรแกรมคอมพิวเตอร์" [1] ซึ่งรวมถึงการทดสอบอนุกรมทดสอบโป๊กเกอร์, การทดสอบการเปลี่ยนแปลง, ทดสอบการทำงานทดสอบช่วงเวลาและการทดสอบพื้นที่วันเกิด Menezes พัฒนาห้าการทดสอบหลักใน "คู่มือประยุกต์การเข้ารหัส" [2] รวมทั้งการทดสอบความถี่การทดสอบอนุกรมทดสอบโป๊กเกอร์วิ่งทดสอบและทดสอบอัต Marsaglia ให้ทดสอบซีดีชุดที่เรียกว่า DIEHARD ใน [3] การทดสอบหลายคน2354 มีส่วนร่วมในห้องสวีท: การทดสอบพื้นที่วันเกิด, การทดสอบที่ทับซ้อนกัน, การทดสอบการเปลี่ยนแปลง, เมทริกซ์ไบนารีการทดสอบการทดสอบเมทริกซ์, ตรวจดีเอ็นเอ, ระยะทางขั้นต่ำการทดสอบและอื่น ๆ กุสตาฟที่ตีพิมพ์ CryptXS ทดสอบในห้องสวีท [4] ในการวัดความแข็งแรงของการเข้ารหัสลับบางพื้นฐาน ใน [5], สถาบันมาตรฐานและเทคโนโลยีที่นำเสนอชุดทดสอบที่เป็นที่ยอมรับโดยการใช้งานมากที่สุดในขณะนี้ [6, 7] ชุดทดสอบนี้มี 16 การทดสอบ: ทดสอบความถี่ภายในบล็อก, ฟูริเยร์ต่อเนื่องแปลงทดสอบแม่แบบที่ทับซ้อนกันจับคู่ทดสอบ Lempel-Ziv ทดสอบการบีบอัดเชิงเส้นทดสอบความซับซ้อน เป็นที่รู้จักกันว่าการทดสอบบางคนมีข้อบกพร่องบางอย่างที่เราควรใช้พวกเขาอย่างระมัดระวังมากขึ้น[18] [19]. A. เงินสมทบของเราในบทความนี้เราวิเคราะห์ระดับความปลอดภัยของบางเข้ารหัสที่รู้จักกันดี เราเปรียบเทียบเข้ารหัสเหล่านี้จากลักษณะที่แตกต่างกัน เราพิจารณาการรักษาความปลอดภัยจากมุมมองใหม่โดยใช้การทดสอบทางสถิติแบบสุ่ม ในฐานะที่เรารู้ว่านี้ยังไม่ได้รับการดำเนินการเพื่อให้ห่างไกล โดยการเปรียบเทียบแบบแผนของการส่งออกของเครื่องเข้ารหัสบนพื้นฐานของการทดสอบที่แตกต่างกันเราให้เข้าใจมากขึ้นเป็นหลาย widely- ใช้เข้ารหัส PHP นี้ไม่เคยทำมาก่อน นอกจากนี้เรายังแสดงให้เห็นถึงความเหมาะสมและผลกระทบของวิธีการของเรา. จากบางชนิดที่แตกต่างกันของชุดทดสอบเราทำงานออกชุดทดสอบซึ่งเป็น fittest การวัดเข้ารหัส PHP. สุดท้ายเราใช้ทดลองในบางเข้ารหัส PHP และอธิบายผล จากผลที่เราวาดข้อสรุปรายละเอียดเพิ่มเติมและชัดเจนเกี่ยวกับที่มีอยู่ PHP เข้ารหัส. B. องค์การในส่วนที่ 2 เราแนะนำข้อมูลพื้นฐานเกี่ยวกับหลายอย่างแพร่หลายรู้เข้ารหัส PHP, เช่นเดียวกับที่พวกเขาพัฒนารัฐของศิลปะ นอกจากนี้เรายังให้การเปรียบเทียบของการแสดงของเครื่องเข้ารหัสเหล่านี้ ในส่วนที่ 3 เรานำเสนอรายละเอียดเพิ่มเติมเกี่ยวกับการทดสอบทางสถิติสุ่มโดยเฉพาะที่เกี่ยวข้องกับสิ่งที่เรากังวลในบทความนี้ ในหมวดที่ 4 เราจะอธิบายวิธีการวัดความปลอดภัยของPHP ตัวเข้ารหัสตามวิธีการใหม่ของเราอยู่บนพื้นฐานของการทดสอบแบบสุ่มทางสถิติ ในมาตรา 5 ที่เรามุ่งเน้นหลายเข้ารหัส PHP ซึ่งจะใช้ในการใช้งานมากที่สุดและการวิเคราะห์อย่างลึกซึ้งในบทความนี้ ในมาตรา 6 ที่เราดำเนินการทดลองในเข้ารหัส PHP หลายกับเราวิธีการและเปรียบเทียบผลของพวกเขา มาตรา 7 สรุปบทความนี้. ครั้งที่สอง งานที่เกี่ยวข้องมีการเข้ารหัสหลาย PHP ตอนนี้ บางส่วนของพวกเขามีค่าใช้จ่ายขณะที่คนอื่นไม่ได้ ขณะนี้ผู้มีอำนาจที่นิยมมากที่สุด PHP ซอฟต์แวร์การเข้ารหัสในตลาดเป็นส่วนใหญ่ทั้งสอง: (1) Zend ยามโดย Zend บริษัท(2) IonCube PHP Encoder อื่น ๆ รวมถึงการเข้ารหัสที่มีน้ำหนักเบากรู PHP และPHPCodeLock Micro-โล่ผู้เชี่ยวชาญการเข้ารหัส PHP (PHPCodeLock) เป็นสิ่งที่ดี PHP ซอฟต์แวร์การเข้ารหัสสคริปต์ได้โดยไม่ต้องติดตั้งอุปกรณ์ของบุคคลที่สามใด ๆ ในฝั่งเซิร์ฟเวอร์ ไฟล์ที่เข้ารหัสสามารถทำงานใด ๆสภาพแวดล้อม PHP สามัญ ซอฟต์แวร์นี้ไม่จำเป็นต้องฉ 2013 ACADEMY PUBLISHER วารสารของเครือข่าย, VOL 8, NO 10 ตุลาคม 2013 ค่าใช้จ่ายเพิ่มเติม: สคริปต์เข้ารหัสสามารถทำงานในสามัญPHP 4 หรือ PHP 5 สภาพแวดล้อมในคอมพิวเตอร์ของคุณและเซิร์ฟเวอร์โดยไม่ต้องติดตั้งส่วนประกอบอื่น ๆ ; เข้ารหัสสคริปต์สามารถทำงานได้ดีใน Windows, Linux และ UNIX โดยไม่มีการเปลี่ยนแปลงใด ๆ ในเว็บเซิร์ฟเวอร์ PHP ปลอดภัยโหมดสามารถทำงานได้ดีและให้ความสับสนพอซึ่งสามารถป้องกันการรั่วไหลของข้อมูลที่สำคัญเช่นรหัสผ่านของ MySQL ขั้นตอนวิธีการเริ่มต้นที่ไม่ซ้ำกันไดเรกทอรีไดเรกทอรีย่อยสำรวจความลึกหลายจนกว่าจะเสร็จสิ้นการครอบคลุมทุกไฟล์และไดเรกทอรี. การเข้ารหัสของไดเรกทอรีย่อยในไดเรกทอรีที่ระบุรวมถึงการสนับสนุนการเข้ารหัสไฟล์ การใช้งานของล็อคคีย์เข้ารหัสไม่เพียง แต่สนับสนุนสำหรับเดียวหรือหลายฟังก์ชั่นไอพี แต่ยัง
การแปล กรุณารอสักครู่..