磨人的小妖精——验证码

提到验证码,我想每个人都体验过被验证码支配的恐惧,比如这样的:

还有这样的:

更有这样的:

老铁,是不是扎心了。在验证码面前,我们就仿佛摇篮里无知的孩子。

今天我们就来说说这个磨人的小妖精——验证码

验证码(CAPTCHA)是“Completely Automated Public Turing test to tell Computers and Humans Apart”的缩写,是一种区分用户是计算机还是人的公共全自动程序。验证码发明者正是路易斯·冯·安,这位天才在21岁时就创造出人类第一个验证码,其本质是针对“黑客”的绝地反击。“黑客”通过编写恶意的计算机程序,让电脑伪装成用户,按照他们的意图大量地对外散布垃圾信息,例如在论坛里大量“灌水”、打广告。这种恶意的垃圾信息发布严重影响了人类利用网络的效率,而验证码的出现,成功抵御了这种恶意的攻击。在这场“反黑客”战役中,验证码取得了完胜。

随着近几年的发展,验证码家族日益壮大,充斥在人们日常生活中的方方面面。下面就用我们安全人员的一天,来告诉大家,这个小妖精到底有多磨人。

没有一点点防备,你就这样出现,一长串语音验证码

阳光明媚的清晨,准时在班车停靠点等待班车,迎面走来一个手拿诺基亚的阿姨,略显焦急地问我:“小伙子,能不能帮我听个验证码啊,我岁数大了,记不住”。我很清楚,二十多岁的我,一直是中老年妇女的偶像,有粉丝求助,偶像怎能袖手旁观?况且作为一名合格的研究生,区区语音验证码,能奈我何?顺手拿起电话,按下了接听键:您的验证码是1,5,8,7,4,3……我说程序员兄弟啊,验证码设置多少位是多啊,这么长一串,你确定是给人听的?吓得我赶紧拿出了手机,又听了一次语音验证码,边听边记,最后发现一共有12位,可怕可怕。

由此可见,语音验证码确实够安全,只会给唯一的手机号发送唯一的语音验证码,能够有效防止脚本程序的自动化攻击,抵御过于频繁的请求,而且能够保证高到达率,特别是在偏远地区,语音验证码因其高到达率特性更是不可替代。同时呢,如果验证码位数少一点,用户体验还是很不错的。

盗刷、绕过、爆破,验证码被我们玩坏了

俗话说,道高一尺,魔高一丈,验证码既然出现了,我们安全人员绝不能退缩,就要想破脑袋,尝试破解验证码。大家放心,我们是白帽子,之所以寻找验证码的漏洞,就是怕被其他别有用心的人利用了,我们要及时发现问题、修复问题,做新时代的优秀公民。

一整天的工作拉开了序幕,当然,每次新接触一个系统的安全测试项目,最先关注的就是验证码。首先,注册一个新用户,需要填写手机号,发送短信验证码,进行身份确认。此处“咔”一下,既然系统想发短信验证码,我就一次让你发个够,随手丢给系统一个python脚本,同一个手机号,先发送20回短信验证码,看看系统听不听话。果然,系统按部就班地发了20条短信验证码,系统居然对手机号、对接口频率没有任何限制,那岂不任人宰割,几万个短信验证码,分分钟就全给你浪费了,这一大笔钱,我都替项目组感到心疼。

接着呢,用注册过的用户进行登录,故意输错登录密码,看看系统是否有防护措施。呦吼,连续输错5次,系统提示需要输入图形验证码,看来还是有防范意识的嘛。但防不防得住,还得另说。还是刚才的脚本,引入开放的OCR图片识别接口,智能识别图形验证码,嘿嘿嘿,我得意的笑了,可以对用户密码进行无休止的暴力破解喽。

最后呢,咱们再来看看“忘记密码”功能。假装自己忘记密码的样子,点击“忘记密码”,系统会给我的手机号发送一条短信验证码,当我多次尝试输入错误的验证码数字,再次输入正确的验证码,结果发现仍然能够成功重置密码。这就好办了,只有四位的短信验证码,写个脚本,从1到9999进行遍历,唰唰唰,转眼就爆破成功,只要是系统的注册用户,不用知道短信验证码的内容,便可随意修改他们的登录密码。

至此,验证码彻底被我们玩坏了,盗刷短信验证码、破解其他用户密码甚至是修改其他用户密码,你说可怕不可怕。所以说,开发人员,针对验证码,一定要保证:

短信验证码接口频率进行限制,或者添加图形化验证码,防止机器盗刷

图形验证码一定要保证复杂度,不能够被OCR技术轻易识别。(脑袋里马上浮现出12306的验证码,即使作为人脑,我也几乎没有一次性成功的经历)

为验证码设置有效次数,或者增加验证码长度,并缩短验证码的有效时长

别人家的滑动验证码

工作一天,何以解忧,唯有“剁手”。打开电子商城,习惯性的去触发该系统的验证码机制,顺便欣赏学习一下别人家的验证码——滑动验证码。首先用户滑动验证码到指定位置,完成后会给服务端回传各种加密信息,为了做风控规则来判断是否异常,个人猜测其规则会包含滑块的响应时间、拖拽速度、时间、位置、轨迹、重试次数等,如果没有命中异常规则,就会放行校验通过,如果命中异常规则就会弹出二次校验,只有通过校验后才可以放行。

滑动验证码最大特点即无需人类思考,从而不会打断用户操作,进而提供更好的用户体验;而且也可以做到抵御脚本自动化攻击,因此渐渐成为一种流行趋势。但是也有几点使用前要考虑的地方,比如响应延迟,当大量并发过来的时候是不是撑得住;最高响应时间是否有上限,如果超过是否会降级,如何降级等等。

不知不觉中,给大家介绍了五花八门的验证码:语音验证码,短信验证码,图形验证码,滑动验证码,想必大家对验证码都有了更进一步的认识和了解。说不定有些手痒的朋友们,已经在动手尝试破解验证码去了,千万要记得,适可而止哦,对我们的小妖精,手下留情。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 201,784评论 5 474
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,745评论 2 378
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,702评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,229评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,245评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,376评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,798评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,471评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,655评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,485评论 2 318
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,535评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,235评论 3 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,793评论 3 304
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,863评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,096评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,654评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,233评论 2 341

推荐阅读更多精彩内容