提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
原创|其它|编辑:陈津勇|2019-11-27 15:03:10.177|阅读 973 次
概述:可信Web系统离不开可信的前端环境,所以Java混淆在对抗黑客的过程中是必不可少的,这就是第二代Java代码混淆器Allatori Java obfuscator存在并广泛应用的原因。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
在可信系统中,TPM的一个重要作用就是鉴别消息来源的真实性,保障终端的可信。而在Web系统中,我们的消息来源就是用户。随着撞库、恶意注册、薅羊毛等产业的蓬勃发展,在越来越多的场景中我们需要鉴别请求数据是否来自真实的用户,保护真实用户的数据安全。
所以想要构造一个Web系统中的TPM,首要问题就是需要保证输入数据安全,打造一个相对可信的前端环境。但是由于Web的开放特性,前端作为数据采集的最前线,js代码始终暴露在外,在这种情况下,防止恶意伪造请求变得非常困难,可信前端也就成了无稽之谈。
在反复对抗中,代码保护也就是通常意义上的Java代码混淆的重要性逐渐彰显出来。今天,小编就想和大家聊一聊Java混淆的问题。
为什么需要Java混淆
显而易见,是为了保护前端代码逻辑。
在Web系统发展早期,js在Web系统中承担的职责并不多,只是简单的提交表单,js文件非常简单,也不需要任何的保护。但随着js文件体积的增大,为了缩小js体积,加快http传输速度,开始出现了很多对js的压缩工具,比如uglify、compressor、clouser……它们的工作主要是:
合并多个js文件
去除js代码里面的空格和换行
压缩js里面的变量名
剔除掉注释
下图是压缩后的代码:
虽然压缩工具出发点都是为了减少js文件的体积,但是人们发现压缩替换后的代码比源代码可读性差了很多,间接起到了代码保护的作用,于是压缩js文件成为了前端发布的标配之一。
但是后来市面上主流浏览器Chrome、Firefox等都提供了js格式化的功能,能够很快的把压缩后的js美化,再加上现代浏览器强大的debug功能,单纯压缩过的js代码对于真正怀有恶意的人,已经不能起到很好的防御工作,出现了"防君子不防小人"的尴尬局面。
chrome开发者工具格式化之后的代码:
而在Web应用越来越丰富的今天,伴随着浏览器性能和网速的提高,js承载了更多的工作,不少后端逻辑都在向前端转移,与此同时也让更多不法分子有机可乘。在Web模型中,js往往是不法分子的第一个突破口。知晓了前端逻辑,不法分子可以模拟成一个正常的用户来实施自己的恶意行为。所以,在很多登录、注册、支付、交易等页面中,关键业务和风控系统依赖的js都不希望被人轻易的破解,Java混淆应运而生。
Java混淆是不是纸老虎
这是一个老生常谈的问题。实际上,代码混淆早就不是一个新鲜的名词,在桌面软件时代,大多数软件都会进行代码混淆、加壳等手段来保护自己的代码。Java和.NET都有对应的混淆器。黑客们对这个当然也不陌生,许多病毒程序为了反查杀,也会进行高度的混淆。只不过由于js是动态脚本语言,在http中传输的就是源代码,逆向起来要比打包编译后的软件简单很多,很多人因此觉得混淆是多此一举。
.NET混淆器dotFuscator:
其实正是因为js传输的就是源代码,我们才需要进行混淆。因为暴露在外的代码没有绝对的安全,但是在对抗中,精心设计的混淆代码能够给破坏者带来不小的麻烦,也能够为防守者争取更多的时间。相对于破解来说,混淆器规则的更替成本要小得多,在高强度的攻防中,可以大大增加破解者的工作量,起到防御作用。从这个角度来讲,关键代码进行混淆是必不可少的步骤。
第二代Java代码混淆器Allatori Java obfuscator
现在,Java混淆经过多年升级迭代,大批第二代Java代码混淆器被推向世界,Allatori Java obfuscator也是其中之一。
与其他第二代Java代码混淆器相比,Allatori除保护功能之外,还附加了一系列的功能(如命名混淆、流程混淆、调试信息混淆、增量混淆、J2ME混淆、Android混淆、字符串加密、防止反编译、堆栈追踪、代码优化、水印等),几乎可以抵御一切的代码攻击。并且,Allatori可以让程序体积更小,速度更快,因此在世界范围的应用都很广泛。
免费下载Allatori Java obfuscator正式版>>>
慧都16周年·技术服务月,软件商城优惠券不限量发放,购Allatori立省429元>>>
混淆对性能的影响
由于增加了废代码,改变了原有的AST,混淆对性能肯定会造成一定的影响,但是我们可以通过规则来控制影响的大小:
减少循环混淆,循环太多会直接影响代码执行效率。
避免过多的字符串拼接,因为字符串拼接在低版本IE下面会有性能问题。
控制代码体积,在插入废代码时应该控制插入比例,文件过大会给网络请求和代码执行都带来压力。
通过一定的规则完全可以把性能影响控制在一个合理的范围内。实际上,有一些混淆规则反而会加快代码的执行,比如变量名和属性名的压缩混淆,会减小文件体积,对全局变量的复制会减少作用域的查找等等。在现代浏览器中,混淆对代码的影响越来越小,我们只需要注意合理的混淆规则,完全可以放心地使用混淆。
混淆的安全性
混淆的目的是保护代码,但是如果因为混淆影响了正常功能就舍本逐末了。
由于混淆后的AST已经和原AST完全不同,但是混淆后的文件和原文件执行结果必须一样,如何保证既兼顾了混淆强度,又不破坏代码执行呢?高覆盖的测试必不可少:
对自己的混淆器写详尽的单元测试。
对混淆的目标代码做高覆盖的功能测试,保证混淆前后代码执行结果完全一样。
多样本测试,可以混淆单元测试已经完备了的类库,比如混淆 Jquery 、AngularJS等,然后拿混淆后的代码去跑它们的单元测试,保证和混淆前执行结果完全一样。
通过以上分析可以知道,可信Web系统离不开可信的前端环境,所以Java混淆在对抗黑客的过程中是必不可少的。同时,通过一些规则,混淆器对性能的影响也是可控的。
慧都16周年·技术服务月,购正版Allatori Java obfuscator立省429元>>>
更多Allatori Java obfuscator资源,请点击了解
扫描关注“慧聚IT”微信公众号,及时获取最新动态及最新资讯
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@capbkgr.cn
面对“数字中国”建设和中国制造2025战略实施的机遇期,中车信息公司紧跟时代的步伐,以“集约化、专业化、标准化、精益化、一体化、平台化”为工作目标,大力推进信息服务、工业软件等核心产品及业务的发展。在慧都3D解决方案的实施下,清软英泰建成了多模型来源的综合轻量化显示平台、实现文件不失真的百倍压缩比、针对模型中的大模型文件,在展示平台上进行流畅展示,提升工作效率,优化了使用体验。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
Allatori Java obfuscator是第二代Java代码混淆器,为您的知识产权提供全方位的保护。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@capbkgr.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢