没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
转帖|行业资讯|编辑:龚雪|2017-02-07 14:05:28.000|阅读 468 次
概述:说起“验证码”,恐怕大部分人都会流露一脸便秘的表情。在搜索引擎里输入“验证码” “发明”这两个关键字,搜索页面会弹出成千上万个表达群众不满的结果:“谁发明了万恶的验证码?”“发明验证码的人你出来,我保证不打死你”,当然这里面很大程度上是某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@evget.com
Parasoft dotTEST凭借其即插即用的内置安全标准和直观的规则映射能力,为C#/VB.NET 开发者提供了强大的支持。它有效消除了理解复杂标准与配置规则的障碍,让开发者能够专注于编写高质量代码,而非耗费精力在标准解读与工具映射上。这不仅显著提升了开发效率,缩短了交付周期,更从源头系统性地降低了安全风险,确保了软件符合严苛的行业合规要求。
Parasoft Virtualize以智能复用和轻量存储为核心,不仅解决了传统测试数据管理的冗余与性能瓶颈,更通过技术创新释放了团队的生产力。它让开发者摆脱重复劳动的束缚,将精力聚焦于更复杂的业务逻辑与质量验证,从而在快节奏的开发周期中保持敏捷与精准。无论是应对高并发的性能挑战,还是满足数据合规的严苛要求,Virtualize都以优秀的解决方案为技术团队提供了坚实的支撑。
imScale近期与 西门子PLM软件公司 和Tech Soft 3D达成技术合作,将行业领先的几何建模内核Parasolid及多格式CAD数据解析引擎HOOPS Exchange深度集成至平台中,全面增强CAD数据处理与互操作能力。
今天为大家介绍Kotlin 开发者如何在 Android Studio 中使用 JetBrains AI Assistant ,欢迎下载工具体验!
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@evget.com
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢
慧都科技 版权所有 Copyright 2003-
2025 渝ICP备12000582号-13 渝公网安备
50010702500608号