CN106228040B - 一种网页源码三层加密方法 - Google Patents

一种网页源码三层加密方法 Download PDF

Info

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
Application number
CN201610550722.3A
Other languages
English (en)
Other versions
CN106228040A (zh
Inventor
罗意
王小虎
石涵
王春鹏
赵晨晖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chengdu Zhidaochuangyu Information Technology Co Ltd
Original Assignee
Chengdu Zhidaochuangyu Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Chengdu Zhidaochuangyu Information Technology Co Ltd filed Critical Chengdu Zhidaochuangyu Information Technology Co Ltd
Priority to CN201610550722.3A priority Critical patent/CN106228040B/zh
Publication of CN106228040A publication Critical patent/CN106228040A/zh
Application granted granted Critical
Publication of CN106228040B publication Critical patent/CN106228040B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/125Restricting 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个。
CN201610550722.3A 2016-07-13 2016-07-13 一种网页源码三层加密方法 Active CN106228040B (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113761486B (zh) * 2021-09-10 2023-09-05 上海熙菱信息技术有限公司 一种基于语法糖解析的一键式代码混淆方法

Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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.