阅读更多
03月16日上午,12306网站更新了自己的验证码形式,将原有的验证码从英文字符变换到8张小图片,用户必须根据问题提示来点击选中正确的图片,然后才能预定车票。紧接着,各路媒体开始发稿,《12306官网放大招:启用图片验证码所有抢票软件将失效》《12306官网推出全新图片验证码抢票软件将失效》等新闻层出不穷。作为一个程序员,看到这样的标题,十分困惑这些媒体是怎么用上帝视角这么直接断定抢票软件将全部失效的,可以想象一大波刷票公司正准备捋起袖子干活就直接听到12306宣布自己胜利了。当然,我们反对一切的黄牛党,本文只是谈谈验证码技术。
重技术的验证码是一场拉锯战

当我们谈论验证码时,不免地提到两个人。第一个是计算机科学之父、人工智能之父艾伦.图灵,图灵对整个计算机科学的贡献和意义在此就不用展开,之前所以提到他,是因为他提出的“图灵测试”,这一理论第一次提到将电脑和人区分开。第二个必须提到的是卡内基梅隆大学的路易斯·冯·安,他在2002年第一次将扭曲的文字用于区别人和计算机,就是我们现在普遍见到的英文字符验证码,后来他将验证码公司Re-CAPTCHA卖给了google。

现在12306同样也用了扭曲的英文字符,但是却抵挡不住黄牛党和刷屏软件机器识别,是因为在这近十年计算机科学技术的发展,OCR(Optical Character Recognition,光学字符识别)等技术发展的已经十分成熟,识别扭曲英文字符并非难事,根据现有实验报告统计及真实调查,普通的验证码的破解率基本在75%以上。说到这里我们看看百度和腾讯是怎么解决的。



腾讯将验证码图片背景直接贴上真实图片做干扰,而且颜色采取的近似值。



被称为百度神兽的九宫格汉字验证码,利用中文的博大精深,在防刷上有较大的提升,但是对人的用户体验上就略差了。
12306的验证码出发点是安全?用户体验?

那么,我们来谈谈12306的图片验证码到底是个什么鬼。12306所采用的图片式验证码的验证形式,并不是什么首创,早在一些游戏网站上也采用过这样的验证形式,请看下图。



这把人都能吓懵的验证码还真出现过,而且很不幸的是,上了一阵子之后就被破解了。

现在12306推出的图片验证码,首先从用户体验上来讲,并没有比之前的文字验证码好用多少。虽然用户不再依靠键盘输入,但是面对小且密集的8张图片,选出“所有”正确的图片,那必须把所有图片仔细看一遍,这一过程带来的不确认型其实是同用户分辨G和9和心里过程是一样的。不信你瞅瞅下面哪些是邮票?重要的是这一过程中带来很大的不确认性,心理负担略重。



用户体验这个标准,不好衡量,我们再来谈谈安全性。从一开始变成图片验证形式,事情就不会像今天新闻标题说的那样,“刷票软件将全部失效“(我本着好奇的态度,搜了一下相关新闻,基本上从2012年起,每次12306更换比较明显的验证码,媒体都是这样报道的),为什么呢?前面我们讲到成熟的OCR技术导致英文字符验证码很难起作用,事实上,图像识别的发展也是趋于成熟。所以,12306的图片验证码被迅速破解也不是什么难事,反而将门槛降低。

下面的具体破解举例引用知乎用户王猫猫在问题“如何评价 12306 的最新版验证码?”下的回答。



直接将图片处理后丢入google、百度的识图接口,返回的数值让人惊讶(第二张图居然能精准识别到是沙县小吃?)。后来根据王同学提供的代码,我进行了下一步的处理工作,再次利用第三方软件识别中文字符,然后将字符与图片字符进行匹配,之后选择图片。整个测试图片大概200张(只是模拟了登录,没有去刷掉一整车票),通过率在85%左右。所以,仅仅是技术爱好者动用一些公用接口就轻松能识别图片类容,而且一旦识别后,还可以将这张出现过的图片存库,再次出现就更加快速准确的定位了。暂且不谈图像识别和机器学习这样高大上的破解方法了。

图片验证码之所以不安全,是因为目前的图片识别技术也是相当的成熟。12306这些图片如果是人工标记,无疑是将自己摆到一个愚公移山的悲壮位置;如果是机器识别,也一样是可以被识别内容,即用图片内容的识别作为验证核心将毫无意义。

从12306这次更新来看,12306的验证思路,还是在玩已经过时的技术,对验证的视野和理解并不是很透彻,才会落到上线不到一天就被破解的尴尬局面。当然,12306有面对黄牛的进行创新的勇气是可嘉的,但是方向走错了,进行购票流程上的全面优化才能让问题得到最终的解决,将赌注放在验证码身上,目前看来不太现实。
走在前面的依然是Google

那么,验证安全的终极奥义是什么呢?我们可以回顾一下去年的关于google的No-CAPTCHA(No-Capthcha是Re-Capthcha的子项目)的文章,google提出了一个概念叫human behavior analysis,大意是将用户的行为做为判断人与计算机的准则。这个理念提出的意义在于,不再依靠图灵测试即单一的答案来判断人机,而是通过用户一系列的上网行为来确定访问者是人,还是机器。但是从google目前的前端代码层和具体流程来看,目前只是试探性的的发展,如果这个理念能够实际操作并完善,那么验证码的安全性将提高的一个史无前例的高水平,至少破解门槛不会低到仅仅调用一下公共接口就瞬间破解。

本文转自虎嗅网
  • 大小: 35.9 KB
  • 大小: 25.7 KB
  • 大小: 44.4 KB
  • 大小: 23.4 KB
  • 大小: 80.6 KB
来自: 虎嗅网
6
0
评论 共 17 条 请登录后发表评论
17 楼 一只懒猫 2015-12-14 16:22
基于用户行为的验证感觉是一个比较新鲜的想法呢?能够从根本上去区分用户和机器,不过这需要很强大而且丰富的样本啊。
16 楼 dsjt 2015-07-17 11:02
dogg 写道
string2020 写道
hanjiangit 写道
grandboy 写道
dsjt 写道
实在不行上大招,短信校验。


这个办法可能行,但毕竟有些场合是信号不行,但又能上网。可以加强识别难度或者短信两者选择一个。体验和安全都可以顾及到。

短信验证早就被破解了


短信验证怎么破解?求科普

有专门网站提供批量手机号码接受验证码,并提供api调用查询收到的码,按条计费,这已经是一个产业了。国人的神通你是想象不到的。


道高一尺魔高一丈.
防不胜防啊。
15 楼 公用1 2015-06-16 13:14
只要不断的改进就行了,破解是需要时间的。
14 楼 shuhen2011 2015-04-28 13:05
string2020 写道
dogg 写道
string2020 写道
hanjiangit 写道
grandboy 写道
dsjt 写道
实在不行上大招,短信校验。


这个办法可能行,但毕竟有些场合是信号不行,但又能上网。可以加强识别难度或者短信两者选择一个。体验和安全都可以顾及到。

短信验证早就被破解了


短信验证怎么破解?求科普

有专门网站提供批量手机号码接受验证码,并提供api调用查询收到的码,按条计费,这已经是一个产业了。国人的神通你是想象不到的。


难道能接受任何一个手机号码的验证码?

哪里需要接受任意手机号的验证码,只要用这些批量手机号注册购票就是了
13 楼 string2020 2015-03-24 11:06
dogg 写道
string2020 写道
hanjiangit 写道
grandboy 写道
dsjt 写道
实在不行上大招,短信校验。


这个办法可能行,但毕竟有些场合是信号不行,但又能上网。可以加强识别难度或者短信两者选择一个。体验和安全都可以顾及到。

短信验证早就被破解了


短信验证怎么破解?求科普

有专门网站提供批量手机号码接受验证码,并提供api调用查询收到的码,按条计费,这已经是一个产业了。国人的神通你是想象不到的。


难道能接受任何一个手机号码的验证码?
12 楼 dogg 2015-03-24 09:33
string2020 写道
hanjiangit 写道
grandboy 写道
dsjt 写道
实在不行上大招,短信校验。


这个办法可能行,但毕竟有些场合是信号不行,但又能上网。可以加强识别难度或者短信两者选择一个。体验和安全都可以顾及到。

短信验证早就被破解了


短信验证怎么破解?求科普

有专门网站提供批量手机号码接受验证码,并提供api调用查询收到的码,按条计费,这已经是一个产业了。国人的神通你是想象不到的。
11 楼 string2020 2015-03-23 14:57
hanjiangit 写道
grandboy 写道
dsjt 写道
实在不行上大招,短信校验。


这个办法可能行,但毕竟有些场合是信号不行,但又能上网。可以加强识别难度或者短信两者选择一个。体验和安全都可以顾及到。

短信验证早就被破解了


短信验证怎么破解?求科普
10 楼 高军威 2015-03-21 16:04
hanjiangit 写道
grandboy 写道
dsjt 写道
实在不行上大招,短信校验。


这个办法可能行,但毕竟有些场合是信号不行,但又能上网。可以加强识别难度或者短信两者选择一个。体验和安全都可以顾及到。

短信验证早就被破解了

怎么破的???
9 楼 loogson 2015-03-20 17:25
hanjiangit 写道
grandboy 写道
dsjt 写道
实在不行上大招,短信校验。


这个办法可能行,但毕竟有些场合是信号不行,但又能上网。可以加强识别难度或者短信两者选择一个。体验和安全都可以顾及到。

短信验证早就被破解了

短信验证怎么破解?求科普
8 楼 hanjiangit 2015-03-20 10:30
grandboy 写道
dsjt 写道
实在不行上大招,短信校验。


这个办法可能行,但毕竟有些场合是信号不行,但又能上网。可以加强识别难度或者短信两者选择一个。体验和安全都可以顾及到。

短信验证早就被破解了
7 楼 vcok 2015-03-19 22:00
以前我不理解为什么要封杀Google,现在明白了,原来它对我国信息安全有很大的威胁,领导有先见这明啊。
6 楼 grandboy 2015-03-19 09:21
dsjt 写道
实在不行上大招,短信校验。


这个办法可能行,但毕竟有些场合是信号不行,但又能上网。可以加强识别难度或者短信两者选择一个。体验和安全都可以顾及到。
5 楼 jack24 2015-03-19 09:00
用个体的起止地点作为判断依据也许可以防止一部分黄牛,再就是靠长期积累的大数据分析了。黄牛的旅行地比较飘忽,呵呵。
4 楼 dsjt 2015-03-18 17:47
实在不行上大招,短信校验。
3 楼 faye.feelcool 2015-03-18 14:00
关键是12306上的门槛比扭曲的文字门槛更低了。
2 楼 3gwind 2015-03-18 13:28
不管怎么来说增加了破解的门槛也是一种功效
1 楼 Comven_eye 2015-03-18 11:59
楼主从技术的角度分析的不错,从12306验证图片改版几小时后已经有公司破解了这个新方式。
其实楼主不用纠结媒体为何武断的在12306发布新图片验证功能后夸大的说所有抢票软件失效,从媒体的角度来说,它必须使用较为有吸引力的标题来吸引读者的眼球,这样才能提高关注度,加大转载的数量。

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 【12306图片验证12小时内被破解,验证安全的出路到底在哪?】

    03月16日上午,12306网站更新了自己的验证码形式,将原有的验证码从英文字符变换到8张小图片,用户必须根据问题提示来点击选中正确的图片,然后才能预定车票。紧接着,各路媒体开始发稿,《12306官网放大招:启用图片...

  • 12306验证码已不再安全 机器准确率99.8%

    4月13日,中国科学院科技战略咨询研究院与腾讯研究院在北京联合举办了“2017人工智能:技术、伦理与法律研讨会”。 会议邀请了中国科学院科技战略咨询研究院院长潘教峰、腾讯研究院院长司晓、中国科学院学部科学...

  • 前淘宝工程师谈12306:做它比做淘宝难

    如果把12306外包给IBM或者阿里巴巴来做,能否比现在做得好? 如果是以前,我肯定会回答:是。因为我们始终认为,一个年投入超3亿元的卖火车票网站,没有什么理由做不好吧?其实不光是小编这样认为,包括众多媒体,...

  • [突发奇想] 验证码 识别人与自动化操作是否可采用 鼠标 停留位置 与 时间 来自动验证 是否是人呢?...

    12306图片验证12小时内被破解,验证安全的出路到底在哪? [突发奇想] 验证码 识别人与自动化操作是否可采用 鼠标 停留位置 与 时间 来自动验证 是否是人呢? 转载于:...

  • 一篇可以让12306考虑的文章

        Martin Fowler最近的一篇文章:LMAX架构。LMAX是一种新型零售金融... 这个系统是建立在JVM平台上,核心是一个业务逻辑处理器,它能够在一个线程里每秒处理6百万订单. 业务逻辑处理器完全是运行在内存中(in-...

  • 数据分析侠A的成长故事

    回忆起数据分析的发展史,在国内被接受也才这么几年,而大家谈的更多的是数据分析、数据挖掘到底是什么,是对过去历史数据的剖析、分析,还是从中发现更多的问题和机会。同学A不在纠结于此,他选择了翻阅大量的国外...

  • 从互联网到云时代,Apache RocketMQ 是如何演进的?

    为了解决电商业务对于消息队列的高性能、一致性、无限扩展等需求,自研消息队列成为了当时阿里唯一的出路,最终互联网消息队列 RocketMQ 应运而生。

  • 软件测试的出路到底在哪?

    Gartner 的一份报告预测,到 2020 年,将有 58 亿个终端被使用。 测试基础架构对于评估物联网系统中的以下问题至关重要: 测试整个物联网系统的可用性 检测连接到物联网中设备的性能 完整地身份验证和隐私控制 测试...

  • 乌云漏洞平台:一枚孢子如何生长成群落

    让安全领域变得公开透明,打破行业的信息不对称,又能得到官方支持——无论怎么看,这样的事都不大可能发生在眼下这片土地上。可乌云做到了。2012 年,CSDN 数据泄露事件让乌云名声大噪,此后优酷接口漏洞、微博控制...

  • 网联下发42号文督促生产测试 银行代扣通道都将关闭 协议支付

    一位行业内人士向我们透露,就在3月20日,网联刚刚下发了42号文督促第三方支付机构接入网联渠道。 42号文称,各相关成员单位应积极配合,完成协议支付、付款、网关支付、商业委托支付、认证支付全业务功能的生产...

  • 《增长黑客》节选与笔记

    它能满足我完全的控制欲,因此也能验证一些在别人的平台上无法完成的想法。当然,对比在国内出书微薄的稿酬收入与不成比例的精力付出,借写作本书之契机,更让我兴奋的是能与形形色色的聪明人交流,交换彼此的人生...

  • 性能测试面面观——HP性能测试专家宗刚访谈

    在QCon开始之前,专题出品人高楼对宗刚就性能测试领域内的许多问题做了深入的访谈。以下是访谈内容:\u0026#xD;高楼:能否先简单谈谈您在测试领域的工作经验?和您对此领域的理解?\u0026#xD;\u0026#xD;宗刚:我的...

  • OpenStack

    这些资源能够被快速提供,只需投入很少的管理工作,戒不服务供应商迚行很少的交互 通常涉及通过互联网来提供劢态易扩展且经常是虚拟化的资源 云计算服务模型 一、IaaS IaaS是Infrastructure as a server的缩写,意思是...

  • go 生成基于 graphql 服务器库.zip

    格奇尔根 首页 > 文件 > gqlgen是什么?gqlgen是一个 Go 库,用于轻松构建 GraphQL 服务器。gqlgen 基于 Schema 优先方法— 您可以使用 GraphQL Schema 定义语言来定义您的 API 。gqlgen 优先考虑类型安全— 您永远不应该看到map[string]interface{}这里。gqlgen 启用 Codegen — 我们生成无聊的部分,以便您可以专注于快速构建您的应用程序。还不太确定如何使用gqlgen?将gqlgen与其他 Go graphql实现进行比较快速启动初始化一个新的 go 模块mkdir examplecd examplego mod init example添加github.com/99designs/gqlgen到项目的 tools.goprintf '//go:build tools\npackage tools\nimport (_ "github.com/99designs/gqlgen"\n _ "github.com/99designs/gqlgen

  • 基于JAVA+SpringBoot+Vue+MySQL的社区物资交易互助平台 源码+数据库+论文(高分毕业设计).zip

    项目已获导师指导并通过的高分毕业设计项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。 包含:项目源码、数据库脚本、软件工具等,该项目可以作为毕设、课程设计使用,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 项目都经过严格调试,确保可以运行!可以放心下载 技术组成 语言:java 开发环境:idea 数据库:MySql8.0 部署环境:maven 数据库工具:navicat

  • 法研杯2021类案检索赛道三等奖方案源码+项目说明+数据.zip

    法研杯2021类案检索赛道三等奖方案源码+项目说明+数据.zip是一个专为计算机相关专业(如计科、信息安全、数据科学与大数据技术等)学生设计的宝贵学习资源。该压缩包包含了完整的项目源码、详细的项目说明文档以及用于训练和测试的数据集,旨在帮助参赛者深入理解并掌握类案检索的相关技术和方法。该项目通过实际案例,展示了如何运用自然语言处理和机器学习技术对法律案件进行智能检索和匹配。项目内容涵盖了从数据预处理、特征提取到模型训练和评估的全过程,为学习和研究类案检索技术提供了全面的参考。本项目不仅适合作为课程设计、期末大作业或毕设项目的参考,也是企业员工提升技能、进行实践操作的优质学习资料。通过实际操作和学习该项目,用户可以加深对类案检索技术的理解,并在实践中不断提升自己的技能水平。请注意,由于该资源包含完整的项目源码和数据集,下载和使用时请确保遵守相关法律法规和道德规范,尊重知识产权和隐私权。同时,建议用户在使用前仔细阅读项目说明文档,了解项目的整体架构和使用方法,以便更好地利用该资源进行学习和研究。

  • 基于Cesium实现的对倾斜摄影模型的单体化分层方案源码.zip

    本资源提供了基于Cesium实现的倾斜摄影模型单体化分层方案的完整源码,旨在帮助开发者深入理解并实践三维地理空间数据的处理与展示。通过Cesium平台,用户能够将倾斜摄影获取的高精度三维模型进行单体化和分层处理,实现对模型中每个独立元素的精细管理和交互操作。该资源适合具备一定计算机编程基础的学习者,特别是对Cesium感兴趣的学生、研究人员及GIS行业从业者。通过下载并学习这些源码,用户可以掌握倾斜摄影模型在Cesium中的加载、单体化以及分层显示等关键技术,进而提升自己在三维地理信息系统开发领域的技能水平。

  • Go 的 PostgreSQL 驱动程序和工具包.zip

    Go 的 PostgreSQL 驱动程序和工具包 pgx - PostgreSQL 驱动程序和工具包pgx 是 PostgreSQL 的纯 Go 驱动程序和工具包。pgx 驱动程序是一个低级、高性能接口,它公开了 PostgreSQL 特定的功能,例如LISTEN/ NOTIFY和COPY。它还包括一个标准database/sql接口的适配器。工具包组件是一组相关的软件包,用于实现 PostgreSQL 功能,例如解析线路协议以及 PostgreSQL 与 Go 之间的类型映射。这些底层软件包可用于实现替代驱动程序、代理、负载均衡器、逻辑复制客户端等。示例用法package mainimport ( "context" "fmt" "os" "github.com/jackc/pgx/v5")func main() { // urlExample := "postgres://username:password@localhost:5432/database_name" conn, err := pgx.Connect(context.B

  • C#ASP.NET中小型超市管理系统源码数据库 SQL2012源码类型 WinForm

    ASP.NET中小型超市管理系统源码 超市管理系统是专门为中小型超市打造的管理系统,可以方便管理时更加准确清晰的查看商品信息, 仓库出售与进货的信息,还有每一个部门员工的信息,也更加直观的体现出每一阶段的商品销售情况; 从而提高项目管理水平,实现了工作的协同化、提高了工作效率 二、功能介绍 1.1 UI Requirements界面要求 (1)界面美观,给用户一种很舒心的感觉。 (2)界面所体现出的功能清晰明了,让用户一目了然。 (3)界面的背景颜色搭配符合超市管理系统界面的设计理念。 1.2 UI Requirements界面要求 (1) 使用ADO.NET与数据库交互制作 (2) 使用Visual Studio设计窗体布局 (3) 使用提供的用控件快速开发 1.3 Development Environment 开发环境 (1) 开发工具:Visua

Global site tag (gtag.js) - Google Analytics