CN106228040B - 一种网页源码三层加密方法 - Google Patents
一种网页源码三层加密方法 Download PDFInfo
- Publication number
- CN106228040B CN106228040B CN201610550722.3A CN201610550722A CN106228040B CN 106228040 B CN106228040 B CN 106228040B CN 201610550722 A CN201610550722 A CN 201610550722A CN 106228040 B CN106228040 B CN 106228040B
- Authority
- CN
- China
- Prior art keywords
- data
- layer
- critical data
- original
- critical
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 17
- 238000006243 chemical reaction Methods 0.000 claims description 9
- 238000012545 processing Methods 0.000 claims description 6
- 101100217298 Mus musculus Aspm gene Proteins 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- -1 element Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/125—Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Multimedia (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Technology Law (AREA)
- Storage Device Security (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种网页源码三层加密方法,主要包括以下步骤:算出原始关键数据的摘要值,抹除原始关键数据中几个字符成为第一关键数据;改写第一层关键数据成第二关键数据;用正则表达式将其中有意义的词语片段替换成无意义的占位字符;将第三层数据传给浏览器;浏览器收到第三层数据后,通过转换对应关系用正则表达式转换为第二层数据;浏览器自身的Javascript引擎将第二层数据中的第二关键数据解析为第一层关键数据;通过第一代码根据摘要值与第一关键数据穷举得到原始关键数据。本发明使用高效灵活的混淆策略、动态生成的极小化字符集以及强制穷举三层技术,在正常访客无感知的前提下,极大增加攻击者分析与破解网页源代码的难度。
Description
技术领域
本发明涉及网络中网页加密领域,特别涉及一种网页源码三层加密方法。
背景技术
网页代码是指在网页制作过程中需要用到的一些特殊的“语言”,设计人员通过对这些“语言”进行组织编排制作出网页,然后由浏览器对代码进行“翻译”后才是最终看到的效果。通常,使用的保护源代码的技术是通过一些软件,将源代码在不改变执行结果的前提下,以一定方式,改写为对真人来说不便于阅读的形式,以此增加攻击者分析代码的难度,达到保护源代码的效果。
网页源代码要交由访客的浏览器来执行,一个网站的页面代码能轻松地被恶意攻击者获取、分析,进而产生出能自动攻击网站的程序,对网站的正常访问造成极大威胁。因为方式单一且通常长期不更新算法,遇到针对性的攻击时,防御效果非常有限。
发明内容
本发明所要解决的技术问题是提供一种网页源码三层加密方法,使用高效灵活的混淆策略、动态生成的极小化字符集以及强制穷举三层技术,在正常访客无感知的前提下,极大增加攻击者分析与破解网页源代码的难度。
为解决上述技术问题,本发明采用的技术方案是:
一种网页源码三层加密方法,包括以下步骤:
页面中的数据分为原始关键数据和原始普通数据,对页面中的原始关键数据,用摘要算法算出摘要值,抹除原始关键数据中几个字符成为第一关键数据;编写通过第一关键数据与摘要值能穷举出原始关键数据的第一代码;此时,经处理后的页面中的数据称为第一层数据;将第一关键数据、摘要值、通过第一关键数据与摘要值能穷举出原始关键数据的第一代码,以及页面原始普通数据传入下一层;
对传入的第一层数据,区分出第一层关键数据和第一层普通数据,用极小化的JavaScript字符集改写第一层关键数据成第二关键数据;此时,经处理后的页面中的数据称为第二层数据;第二关键数据与第一层普通数据传入下一层;
对传入的第二层数据,用正则表达式将其中有意义的词语片段替换成无意义的占位字符,得到混淆数据,并保存这种转换对应关系为转换表;整个页面中的第二层数据经过替换变成了第三层数据;将混淆数据和转换表一起传入下一层;
三层加密完成后,将第三层数据传给浏览器;
浏览器收到第三层数据后,通过转换对应关系用正则表达式转换为第二层数据;浏览器自身的Javascript引擎自动将第二层数据中的第二关键数据解析为第一层关键数据,与第一层普通数据合并为第一层数据;在第一层数据中,通过第一代码根据摘要值与第一关键数据穷举得到原始关键数据,与原始普通数据合并为原始数据。
进一步的,所述摘要算法为SHA1、MD5或者CRC32。
进一步的,所述摘要算法为自定义哈希算法。
进一步的,在穷举出原始关键数据的第一代码时,将穷举难度控制在平均时间1秒内,抹除的原始关键数据的字符为3~4个。
与现有技术相比,本发明的有益效果是:1)混淆能增加人工分析代码的难度,挡住网络上大量使用的没有针对性的自动程序;2)通过极小化JavaScript字符集改写代码中重要数据后,攻击者很难写出针对性的程序让攻击自动化;3)强制客户端对关键数据进行短时间的穷举,能大量消耗攻击者的硬件资源,拖慢攻击速度;4)三层加密中都有可以动态随机生成的部分,攻击者无从分析,分析了也会很快过时。
附图说明
图1是本发明方法中第一层加密强制穷举示意图。
图2是本发明方法中第二层加密最小化Javascript字符集示意图。
图3是本发明方法中第三层加密混淆示意图。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步详细的说明。尽管本发明将结合一些具体实施方式进行阐述和说明,但需要注意的是本发明并不仅仅只局限于这些实施方式。相反,对本发明进行的修改或者等同替换,均应涵盖在本发明的权利要求范围当中。
本发明方法不但沿用现有技术的混淆,抵御无针对性的自动攻击,还使用一种极小化的字符集改写代码中部分重要数据,这种改写不但对人不友好,对除JavaScript以外的计算机语言也极不友好;对代码中小部分的关键数据,可以故意擦除几个字符,但提供数字摘要强制客户端进行短时间的穷举。
页面中的数据分为原始关键数据和原始普通数据,对页面中的原始关键数据,用摘要算法算出摘要值,抹除原始关键数据中几个字符成为第一关键数据;编写通过第一关键数据与摘要值能穷举出原始关键数据的第一代码;此时,经处理后的页面中的数据称为第一层数据;将第一关键数据、摘要值、通过第一关键数据与摘要值能穷举出原始关键数据的第一代码,以及页面原始普通数据传入下一层;
对传入的第一层数据,区分出第一层关键数据和第一层普通数据,用极小化的JavaScript字符集改写第一层关键数据成第二关键数据;此时,经处理后的页面中的数据称为第二层数据;第二关键数据与第一层普通数据传入下一层;
对传入的第二层数据,用正则表达式将其中有意义的词语片段替换成无意义的占位字符,得到混淆数据,并保存这种转换对应关系为转换表;整个页面中的第二层数据经过替换变成了第三层数据;将混淆数据和转换表一起传入下一层;
三层加密完成后,将第三层数据传给浏览器;
浏览器收到第三层数据后,通过转换对应关系用正则表达式转换为第二层数据;浏览器自身的Javascript引擎自动将第二层数据中的第二关键数据解析为第一层关键数据,与第一层普通数据合并为第一层数据;在第一层数据中,通过第一代码根据摘要值与第一关键数据穷举得到原始关键数据,与原始普通数据合并为原始数据。
对本发明方法举例说明如下:
1、对页面中的关键数据K,用任一摘要算法(包括SHA1、MD5、CRC32等常见摘要算法,甚至自定义的哈希算法也可以)算出摘要值D,抹除关键数据K中几个字符(具体几个取决于想要的穷举的难度,为了不影响用户体验,将穷举难度控制在平均时间1秒内比较好,这时抹除3~4个字符就可以)成为数据K2,将K2、D、通过K2与D能穷举出K的代码,以及页面其它数据传入下一层。
2、对传入数据中的部分重要数据,用极小化的JavaScript字符集改写后成为数据F,与页面其它数据传入下一层。
3、对所有传入数据,用正则表达式将其中有意义的词语片段替换成无意义的占位字符,并将这种转换的对应关系保存为T,此时整个页面的数据经过替换变成了R。将R、T以及通过T还原R的代码一起传入下一层(这一步对数据还有压缩效果)。
4、三层加密完成,将数据传给浏览器。浏览器通过转换表T用正则表达式转换得到大部分数据;用极小化JavaScript字符集改写的代码因为本身就是JavaScript代码,所以也能被浏览器正确得到;最后根据数字摘要与部分关键数据穷举还原出整个关键数据。这样就得到了全部数据。
另外,可以按一定条件,如时间、访问者、被访问次数等,重新随机生成或选择摘要算法、极小化JavaScript字符集和正则表达式。
关于极小化JavaScript字符集的说明:因为JavaScript语法强大的兼容性,我们可以只用极少的几个字符写出与原JavaScript代码等效的代码。表1中就展示了使用“+”“-”“~”“[”“]”“{”“}”“/”“!”9个字符表示JavaScript中一些常见值的一种方式(最少可以只用6个字符)。能表示0和1就能表示所有数字,有数字就能用ASCII码转化出所有字符,因此任意JavaScript代码都可以用这种极小化JavaScript字符集表达。
表1JavaScript中的值与用极小化字符集表示后的对应关系
JavaScript中的值 | 用极小化字符集表示 |
0 | ~~[] |
1 | -~[] |
true | !+[] |
false | ![] |
NaN | +{} |
undefined | [][{}] |
Infinity | ~[]/-[] |
[object object] | {} |
这种表示方法非常多变,能生成大量不重复的转换方案供随机选择,且利用了JavaScript的语言特性,其它程序语言根本分析不了。
以上具体实施方式和附图仅为本发明之常用实施例。显然,在不脱离权利要求书所界定的本发明精神和发明范围的前提下可以有各种增补、修改和替换。本领域技术人员应该理解,本发明在实际应用中可根据具体的环境和工作要求在不背离发明准则的前提下在形式、结构、布局、比例、材料、元素、组件及其它方面有所变化。因此,在此披露之实施例仅用于说明而非限制,本发明之范围由后附权利要求及其合法等同物界定,而不限于此前之描述。
Claims (4)
1.一种网页源码三层加密方法,其特征在于,包括以下步骤:
页面中的数据分为原始关键数据和原始普通数据,对页面中的原始关键数据,用摘要算法算出摘要值,抹除原始关键数据中几个字符成为第一关键数据;编写通过第一关键数据与摘要值能穷举出原始关键数据的第一代码;此时,经处理后的页面中的数据称为第一层数据;将第一关键数据、摘要值、通过第一关键数据与摘要值能穷举出原始关键数据的第一代码,以及页面原始普通数据传入下一层;
对传入的第一层数据,区分出第一层关键数据和第一层普通数据,用极小化的JavaScript字符集改写第一层关键数据成第二关键数据;此时,经处理后的页面中的数据称为第二层数据;第二关键数据与第一层普通数据传入下一层;
对传入的第二层数据,用正则表达式将其中有意义的词语片段替换成无意义的占位字符,得到混淆数据,并保存这种转换对应关系为转换表;整个页面中的第二层数据经过替换变成了第三层数据;所述第三层数据包括混淆数据和转换表;
三层加密完成后,将第三层数据传给浏览器;
浏览器收到第三层数据后,通过转换对应关系用正则表达式转换为第二层数据;浏览器自身的Javascript引擎自动将第二层数据中的第二关键数据解析为第一层关键数据,与第一层普通数据合并为第一层数据;在第一层数据中,通过第一代码根据摘要值与第一关键数据穷举得到原始关键数据,与原始普通数据合并为原始数据。
2.如权利要求1所述的一种网页源码三层加密方法,其特征在于,所述摘要算法为SHA1、MD5或者CRC32。
3.如权利要求1所述的一种网页源码三层加密方法,其特征在于,所述摘要算法为自定义哈希算法。
4.如权利要求1或2或3所述的一种网页源码三层加密方法,其特征在于,在穷举出原始关键数据的第一代码时,将穷举难度控制在平均时间1秒内,抹除的原始关键数据的字符为3~4个。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610550722.3A CN106228040B (zh) | 2016-07-13 | 2016-07-13 | 一种网页源码三层加密方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610550722.3A CN106228040B (zh) | 2016-07-13 | 2016-07-13 | 一种网页源码三层加密方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106228040A CN106228040A (zh) | 2016-12-14 |
CN106228040B true CN106228040B (zh) | 2018-11-13 |
Family
ID=57520181
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610550722.3A Active CN106228040B (zh) | 2016-07-13 | 2016-07-13 | 一种网页源码三层加密方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106228040B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113761486B (zh) * | 2021-09-10 | 2023-09-05 | 上海熙菱信息技术有限公司 | 一种基于语法糖解析的一键式代码混淆方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1967553A (zh) * | 2005-11-17 | 2007-05-23 | 翁仁滉 | 网页加密的方法与系统 |
CN103150493A (zh) * | 2013-02-28 | 2013-06-12 | 浙江中控技术股份有限公司 | 一种JavaScript代码的混淆方法和装置 |
CN103377326A (zh) * | 2012-04-13 | 2013-10-30 | 腾讯科技(北京)有限公司 | 一种动态网页程序代码的混淆加密方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110167121A1 (en) * | 2008-09-15 | 2011-07-07 | Ben Matzkel | System, apparatus and method for encryption and decryption of data transmitted over a network |
-
2016
- 2016-07-13 CN CN201610550722.3A patent/CN106228040B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1967553A (zh) * | 2005-11-17 | 2007-05-23 | 翁仁滉 | 网页加密的方法与系统 |
CN103377326A (zh) * | 2012-04-13 | 2013-10-30 | 腾讯科技(北京)有限公司 | 一种动态网页程序代码的混淆加密方法及装置 |
CN103150493A (zh) * | 2013-02-28 | 2013-06-12 | 浙江中控技术股份有限公司 | 一种JavaScript代码的混淆方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106228040A (zh) | 2016-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6138896B2 (ja) | 悪質な脆弱性のあるファイルを検出する方法、装置及び端末 | |
US9027122B2 (en) | Isolation tool for user assistance in solving a captcha test | |
CN103473104B (zh) | 一种基于关键词上下文频率矩阵的应用重打包辨别方法 | |
CN107908933A (zh) | 一种基于中间语言的字符串加密方法 | |
CN104348609B (zh) | 一种非存储的密码管理算法 | |
US9692771B2 (en) | System and method for estimating typicality of names and textual data | |
CN105005718A (zh) | 一种利用马尔可夫链实现代码混淆的方法 | |
CN106815524B (zh) | 恶意脚本文件的检测方法及装置 | |
CN110196718B (zh) | 脚本混淆方法 | |
CN108108349A (zh) | 基于人工智能的长文本纠错方法、装置及计算机可读介质 | |
CN103065069A (zh) | 一种基于壳技术的软件保护方法 | |
US10637643B2 (en) | Methods and apparatuses of digital data processing | |
KR20210051669A (ko) | 악성 코드 탐지 모델 학습 방법 및 이를 이용한 탐지 방법 | |
CN108664791B (zh) | 一种超文本预处理器代码中的网页后门检测方法及装置 | |
CN110750789A (zh) | 解混淆方法、装置、计算机设备和存储介质 | |
US10664648B2 (en) | Webpage rendering using a remotely generated layout node tree | |
CN106228040B (zh) | 一种网页源码三层加密方法 | |
Budiman et al. | White space steganography on text by using lzw-huffman double compression | |
CN109284511A (zh) | 主动学习平行语料构建方法 | |
EP2657873B1 (en) | Electronic book content protection | |
Chou et al. | A Webpage Data Hiding Method by Using Tag and CSS Attribute Setting | |
US20170083481A1 (en) | Method and apparatus for rendering a screen-representation of an electronic document | |
CN103793398B (zh) | 检测垃圾数据的方法和装置 | |
CN106909839A (zh) | 一种提取样本代码特征的方法及装置 | |
CN112199955A (zh) | 反命名实体识别的编码器对抗训练、隐私保护方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP02 | Change in the address of a patent holder | ||
CP02 | Change in the address of a patent holder |
Address after: 9/F, Building C, No. 28, North Tianfu Avenue, China (Sichuan) Pilot Free Trade Zone, Hi tech Zone, Chengdu, 610000, Sichuan Patentee after: CHENGDU KNOWNSEC INFORMATION TECHNOLOGY Co.,Ltd. Address before: 8th Floor, Building 5, No. 801, Middle Section of Tianfu Avenue, High tech Zone, Chengdu City, Sichuan Province, 610000 Patentee before: CHENGDU KNOWNSEC INFORMATION TECHNOLOGY Co.,Ltd. |