互联网安全防火墙(1)--网络验证码的科普
1 戏言部分
为了在网络上吸引大家读这个文章,在想标题的时候,也是够了。本来是严肃的科普学术帖,但是却一股强烈的“不转不是中国人,让男孩沉默女孩流泪” 这种段子文的气息了。希望大家能够顺利 “上钩” 吧,也不枉我想了好久的噱头标题了。进来之后,请看副标题,这才是正儿八经的学术标题。
2 概述
在网络越来越普及的今天,关于验证码,大家肯定已经见过很多了。对于这东西,大家肯定是咬牙切齿,骂过不下千百遍了吧。因为它一般的表现形式如下:
如果你想学习自动化测试,我这边给你推荐一套视频,这个视频可以说是B站播放全网第一的自动化测试教程,同时在线人数到达1000人,并且还有笔记可以领取及各路大神技术交流:798478386
【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)_哔哩哔哩_bilibili【已更新】B站讲的最详细的Python接口自动化测试实战教程全集(实战最新版)共计200条视频,包括:1、接口自动化之为什么要做接口自动化、2、接口自动化之request全局观、3、接口自动化之接口实战等,UP主更多精彩视频,请关注UP账号。https://www.bilibili.com/video/BV17p4y1B77x/?spm_id_from=333.337&vd_source=488d25e59e6c5b111f7a1a1a16ecbe9a
都可以想像到看这些人都认不出来的验证码时的抓狂的表情了吧。
但是这个东西对于网站主(网络服务提供商)来说,却是必须的,因为没有它之后,互联网服务就相当于没有了最基本的防火墙,会产生很多我们不希望发生的麻烦事情出来。鉴于很多人都不了解这个,所以有必要进行一下科普。
先引用一段来自wiki的关于 验证码 的描述:
全自动区分计算机和人类的公开图灵测试(英语:Completely Automated Public Turing test to tell Computers and Humans Apart,简称CAPTCHA),俗称验证码,是一种区分用户是计算机和人的公共全自动程序。在CAPTCHA测试中,作为服务器的计算机会自动生成一个问题由用户来解答。这个问题可以由计算机生成并评判,但是必须只有人类才能解答。由于计算机无法解答CAPTCHA的问题,所以回答出问题的用户就可以被认为是人类。
熟悉网络的人,肯定熟悉这个东西,在注册的时候需要,在登录的时候需要,在买东西 下订单的时候也需要。
在正式阐述其功能时,先解释两个概念:
-
自然人
实际的信息获取者和应用交互操作的主体是具有生物学上的特点的真实人类
-
机器人
没有生物学特征,仅仅是通过编码来完成一系列的信息处理的应用程序
验证码的主要功能就是:区分 自然人 和 机器人。
对于自然人,大家都很好理解,但是关于机器人,可能一般人不会有什么概念,不清楚它到底有什么能力。下面将简单的对机器人的信息处理能力进行介绍。
3 机器学习领域
由于计算机技术的大力发展,机器人已经在越来越多的地方具有人的一些认知能力,甚至超过人的认知能力了。比较典型的技术领域有(引自wiki):
-
图像识别
光学字符识别(英语:Optical Character Recognition, OCR)是指对文本资料的图像文件进行分析识别处理,获取文字及版面信息的过程。
-
语音识别
语音识别(speech recognition、语音辨识/言语辨别)技术,也被称为自动语音识别(英语:Automatic Speech Recognition, ASR)、电脑语音识别(英语:Computer Speech Recognition)或是语音转文本识别(英语:Speech To Text, STT),其目标是以电脑自动将人类的语音内容转换为相应的文字。与说话人识别及说话人确认不同,后者尝试识别或确认发出语音的说话人而非其中所包含的词汇内容。
图像识别想必大家一定不陌生。它在目前正面应用场景众多:
- 从书本扫描件里面识别出文字,并转化成文本输出。被广泛地应用于图书馆的纸质书电子化的工程中。
- 车牌识别。目前的交通系统里面利用摄像头进行全自动化地违章取证,停车场进出车辆自动登记车牌。
- 一维码 和 二维码。这个更不用说了,前者在上个世纪改变了整个零售行业,而后者则在本世纪打通了线上线下,带出了移动互联网的 O2O 的产业。
语音识别由于技术难度比较大,比图像识别的应用要晚,但是目前的移动互联网时代却开始蓬勃发展起来。比较典型的应用场景有:
- 语音输入法。目前手机上输入法基本上都支持了。
- 语音转文字。类似微信这样支持语音通讯的工具都提供了语音转文字的功能。
- 语音机器人。从苹果的 Siri 到微软的 小娜,能够对人的语音进行语义理解,并执行相应的操作或者应答。
以上的例子,主要是为了说明:目前的科技条件下,机器人 的认知能力已经相当高了,即它具备智能化处理事情的能力了。然后机器人还具有如下几个特点:
- 永不知疲倦。在目前的用电环境和硬件设备下,基本上可以保证分分秒秒都用于信息处理上面。
- 单体计算能力惊人。例如:一个正常的成年人,徒手计算类似于 23456/12345 的除法,大概需要至少5分钟;但是目前一个普通的家用电脑2.4GH主频的CPU可以 1秒 内完成几千几万的这样的计算不成问题。
- 可扩展性强。计算机的单体计算能力已经惊人,但是在目前的云计算环境下,计算机可以 抱团 以集群的方式进行批量大规模信息处理,这个时候,提供的计算能力上限又得到了极大的提高。
总之,处理程式化的信息,机器人已经把人秒得连渣都不剩了。
试想这么恐怖的属性下,再带一些前面提到的 智能认知 能力,那将是怎样的一种光景。
4 机器人案例
因为计算机处理信息的能力是相当恐怖的,如果不对 自然人 和 机器人 进行区分。那么普通人在网上使用一些网络资源的时候,你的竞争对手就都是那些开了 作弊器 的机器人了,人类在机器人的网络资源争夺战里面有机会胜出么。具体有如下几个案例大家可以感一下。
4.1 火车购票
在国内唯一的一家火车票网站 12306 里面。每到春运的时候,铁路部门承诺在 8:00 准时放出某车型号票 1000 张,但是 0.1 秒被抢光,然后到处都是人抱怨买不到票,这些票都集中在少数几个 票贩子 手中了。
当然即使是 散户 抢票,也为不同了情况,有人会利用一些各大互联网公司提供的 刷票 插件来自动留意页面信息变化,并自动完成购票。
在寒冬,火车票代售点排几十米长队的辛苦的普通劳动人民;会上网,但只会徒手按照正常流程在网上购票的普通网民,大家有信心抢到票么?
4.2 新浪微博
在新浪微博早期各种技术体系不成熟的时候(没有验证码,也没有手机绑定),有个计算机专业的在校学生写了一段程序,注册了10万微博号,在后期微博红火起来之后,他利用程序来操纵来10万账号可以做如下事情:
- 批量转发
- 批量加粉
- 批量投票
也就是后面大家所说的 僵尸账号 ,操纵如此庞大的 用户 ,必然会影响到整个微博的信息生态的平衡。
4.3 其它案例
关于机器人打破信息竞争平衡的案例还有如下几种:
-
网络投票
有专业的刷票公司,能够在规则相当严格(IP限制,地域限制,人数限制)的投票系统里面,仍然可以将指定的参选对象的票数刷得高得离谱。
-
网络优惠券或者游戏道具
有些游戏平台在页面上发布一些免费道具和优惠券的时候,本意是让用户比较均衡地得到优惠,但是有机器人参与后,这些资源往往很快被少数的人收入囊中。
-
网络视频主播
如果手上掌控了大量的 僵尸账号 ,可以批量投票,刷出主播室同时在线人数的人气等等。
-
网络垃圾发帖
在论坛上面,如果没有技术管制手段。可以通过机器人,让整个论坛的版块全部是高密集时间发的广告图文或者垃圾水帖。
总之,在信息世界里面,机器人的参战后,如果不加以区分,就不会有信息世界的自由竞争了。
下面是一个网络注册机,注册了大量账号之后,利用程序来发垃圾帖子的截图:
显然这些场景都是正常的人不愿意看到的,这个时候就需要验证码隆重登场了。
5 本部分小结
由于这个系列的文章比较长,所以准备分几个部分介绍,此部分,先介绍验证码的作用及机器人的一些漫谈。后续会从一些相应的防范产品的表现形式和主要的攻防技术手段上来进行介绍。