没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
转帖|行业资讯|编辑:龚雪|2017-02-07 14:05:28.000|阅读 474 次
概述:说起“验证码”,恐怕大部分人都会流露一脸便秘的表情。在搜索引擎里输入“验证码” “发明”这两个关键字,搜索页面会弹出成千上万个表达群众不满的结果:“谁发明了万恶的验证码?”“发明验证码的人你出来,我保证不打死你”,当然这里面很大程度上是某12**6无良网站给大家留下的心理阴影。那么目前验证码机制究竟发展如何,相对的破解手法有有哪些?我们现在就来一探究竟
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
验证码的诞生,是为了杜绝通过软件设计的“注册机器人”进行恶意注册,进而产生大量的垃圾用户(僵尸用户)以及垃圾点评信息。输入验证码的过程,其实是让机器判断你到底是真人还是软件。“验证码”的英文名字很拗口,叫CAPTCHA(Completely Automated Public Turing test to tell Computers and Humans Apart),翻译过来是“全自动区分计算机和人类的图灵测试”。
yahoo邮箱在九几年的时候,业务深受各种邮箱机器人的困扰,存在着大量的垃圾邮件,于是他们找到了当时仍在读大学的路易斯·冯·安(Luis von Ahn),并设计了经典的图形验证码,即通过简单的扭曲图形文字进行机器的识别。通过这个简单的图形,他们很快的控制住了垃圾邮件的数量,并将大量的机器人据之门外。
最开始的纯数字验证码是很有爱的,后来数字和字母混合二维码成为主流,但这仍然容易被破解,于是各家大法被研究出来,有将数字和字母各种扭曲的,有在背景设置图案和噪点干扰的,从此验证码的发展就走上了一条画风越来越奇特的不归路。
从还算能忍的这样:
变成了这样:
还有这样:
至此,我们不得不提出一个问题:验证码真的是必要的吗?
验证码不是一个功能性的需求,他并不能带来业务的提升,也不能带来任何价值。验证码只是为了解决机器问题才诞生的。在设计和验证码演化的过程中,必须同时考虑安全性和体验。
让我们老考虑验证码的最简化模型,关键点在于:生成的问题能够由人来解答,并且机器难于解答。于是传统的图形验证码的重点就放在了如何生成让机器难于解答的图片上来。
从上图看来,相应的各种方法已经有了相当成熟的一些对抗办法,更不用说现在已经广泛泛滥的打码平台了。
结合我们安全性和体验两方面来讲,传统验证码在两方面来说都已经不能满足要求了。现在验证码识别方式千千万万那,再复杂的验证码机制也禁不住各种野生大神、科班程序员轮番上阵蹂躏。目前来说,最基本的简单验证码识别方式一般按照以下几个步骤:
1.去干扰
把不需要的信息去除或削弱,比如干扰线、噪点等。其中一个原理是利用干扰信息与字符的RGB值的差别来识别干扰信息。而去除干扰线的算法一般都是对图像进行曲线检测,从而识别出图像中的干扰线。毕竟干扰线大部分时间都是连续的小角度曲线或者孤立在字母外的曲线。
2. 文字分割与标准化
为了能够识别出字符,需要把去除干扰信息后的验证码图片进行分割,把每个字符作为单独的一个图片看待。然后对图片进行适度偏转,提高识别率。假如字符偏向角度相同的话,也可以先旋转后切割。
首先对图片像素进行扫描:对于完全没有粘连的验证码来说,分割起来真是十分容易,直接从左到右扫描,在扫描不到文字像素的横坐标处进行分割。
3.识别
单独的字符分离出来后,就要开始训练机器进行识别了。使用比较广泛的是谷歌开发的光学字符识别引擎(Tesseract-OCR):
利用OCR识别的结果,虽然看起来有点傻,但由于是官方调教的,没有针对同类型(同一网站)的验证码进行学习。当然也可以自己去实现这个过程。最霸气侧漏的方法当然就是训练神经网络了,由于这是一种模拟神经元工作的一种算法,由于需要经过足够多的样本学习,因此对扭曲的字符识别率比较高。
除此之外当然还有各种各样的高端识别算法,等待你们探究。
看过了这么多林林总总的外部对抗,目前验证码机制自身存在的问题还有:
如果题库被遍历完成,那么其安全性无法保证。12306为什么后面把问题变成了图片呢? 因为有攻击者将每次的答案与出现的可选问题进行了多次重复遍历,当这个遍历到达一定次数后,会发现某个答案与某张图常常会关联出现(因为问题必定会有正确答案),通过这个出现概率即可得到答案。于是,12306才把文字变成了现在扭曲的图片。 并且还有研究人发现,12306的图片可能大量来自某百科,通过逆向使用该公司的图像识别服务,可以得到该图片的部分标签。
2.体验差
过年的时候,正常人平均都要答3、4次才能答对答案。而且部分图片因为分辨率不高、再加上缩小图片以后,会更加的看不清了。
基于人类用户的行为,具体点就是用户在进行相应操作时,会产生的操作记录和环境信息(详见设备指纹一文)等。
基于人类用户行为这条路是基于以下基础的:
A机器人的环境有别于正常用户
B机器人的动作或频率等有别于正常用户
C机器人的在相应关键业务点的行为逻辑有别于正常用户
但是这个基础在技术对抗上有个更关键的点,在于如何构建一个安全的信道,将这些数据回传回来。如果这个信道的采集机制、加密机制和传输机制被攻击者所探知,那么以上采集的信息将没有秘密可言。(换句话说,攻击者会伪装成正常用户的行为发送数据)
说了这么多,未来验证码会如何发展呢?学院君表示我们只能拭目以待啦。
更多行业资讯,更新鲜的技术动态,尽在。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@ipmdipw.cn
TestComplete作为一款UI测试工具,通过CLI和REST API无缝集成DevOps工具链,支持自动化测试的触发、并行执行和实时监控。其应用场景包括金融、医疗和制造业,显著提升测试效率、实时反馈和报告追溯能力,助力团队实现质量左移与持续交付闭环。
代码质量与安全性是决定软件开发项目成败的关键因素,但是,随着代码规模的增长和合规性要求的提高,仅依靠人工代码审查和传统测试方法已难以满足需求。Parasoft dotTEST作为一款强大的.NET测试工具,通过自动化检测、提供修复建议和深度安全分析,帮助开发团队提升代码质量,降低安全风险。以下是其三大核心优势:
随着高级驾驶辅助系统(ADAS)功能不断增强,其安全性和稳定性也成为行业关注重点。验证与确认(V&V)是保障 ADAS 系统在各种环境下可靠运行的核心环节。本文解析工程师在 ADAS V&V 中面临的主要挑战,并介绍如何借助 Parasoft 测试自动化工具提升效率、确保合规与安全。
本文为从事工业3D Web开发的技术团队推荐4款成熟的Web3D渲染引擎,助力快速构建高效、稳定、可扩展的在线三维可视化应用。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@ipmdipw.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢