验证码的世界,竟然……如此触目惊心!

本文剖析了当前各类验证码存在的问题,包括短信验证码的安全隐患、图形验证码被破解的风险,以及用户体验不佳等问题,并介绍了中国移动推出的一种新的移动认证技术。

 

 

这年头,无论支付、注册、还是登录各种端口,哪怕是保障用户安全的诸多举措……验证码的“参与”已经成为必不可少”!

可是……细数下来,这些年验证码给我们挖的坑也挺多!

这不,最近就爆出一条新闻。

有不法人士利用短信拦截设备非法获取手机号以及验证码,然后转移卡内资金或者下单消费,竟然成功十余起,直接造成被害人资金损失几百元以及近万元不等。

额……有点儿无法用语言来形容的赶脚!

 

 

图片来源于网络


话说,就算你的验证码没有被有心人拦截,难道就能保证在惊悚的60秒过后,彼此相安无事了吗?答案显然是不能!

这时候小编就要吐槽下自己的亲身经历了。

过节发红包本是司空见惯的娱乐项目,不但可以小小的填充微信钱包,还能活跃节日气氛。

这不,小编刚要拿起手机准备发红包,结果……

第一遍操作输入不太成功,那就按照指令继续操作呗,没想到涉及金额有点儿大,一条短信验证码“如约而至”……

其实,无论是发红包还是部分APP购物付款,因为绑定了个人的银行卡或者支付宝等,短信验证码确实可以帮助保护一下下个人财产安全。

可是这条关键的验证码短信是否可以按时收到呢?

60秒的有效时间内,不是半天收不到,就是一等就等好几个60秒……太心塞的节奏!


如果赶上过节秒杀抢购商品,或者抢位置订票看电影的话,那真是怎一个“急”字了得?

有人会说,短信验证码还是比较容易收到的,小编想说,就算如期收到验证码,你以为在60秒的等待过程中就没事儿发生吗?

据了解,通常钓鱼网站会与一些被热门使用的软件进行捆绑设置。当用户下载完某个被“无辜”捆绑的APP后,在接受短信验证码的60秒等待中,木马病毒会选择性拦截包含验证码的短信,然后就是妥妥的重置账户密码以及篡改个人信息等操作,这个过程熟练到就像文章开头发生的新闻一样一样的。

此外还有一种可能性。当不法分子拦截短信成功后,很有可能会将自己伪装成电商客服甚至是警方,然后就会出现一系列针对订单退款需要回复短信验证码,或者因为重大经济案件需要填补损失金额等套路……

 

 

然后……大家都懂的!如果一旦相信了这些别有用心的花言巧语,你的资产也就彻底不是你的资产了……满脸的悲催!

 

 

图片来源于网络


当然不排除会有一些比较严谨的平台服务,采用语音验证码的方式,可是毕竟骗子历来都是防不胜防,要是监听下验证码也还是比较随意的事儿!

 

图片来源于:https://www.youkuaiyun.com/article/a/2017-03-17/15820334


所以这么分析来看,看似安全的语音验证码也是不够“靠谱”的!

小编此时真想大声说一句:验证码带来的坑坑,请跟我果断说“再见”!

既然短信and语音验证码这么多坑,那其他类型的验证码的体验就一定好吗?

 

 

现在市面上出现的验证码有好几种,最常见的当属随机的数字或者字母,例如:

 

 

图片来源于:gouwu.mediav.com

 

但通常我们遇到是这个版本!

图片来源于:www.d9soft.com


数字、字母的很随机但已经变形到“它认识我,我不认识它”的程度……这样下去不但骗子看不懂,就连我也看不懂了!

除了常规的“数字+字母”组合的验证码外,还有一种验证码也招来了大众版的吐槽,例如:

 

图片来源于网络

还有这种类型的……

 

图片来源于网络


简直是无法愉快的玩耍。图片太相似,根本傻傻分不清,用于防止批量注册的验证码,人眼看起来都费劲,何况是机器?

当然不排除还有一些类型的验证码,例如种类繁多,不容易被恶意识别的折叠Gif动画验证码、普及率不是很高的视频验验证码、有趣的行为验证码以及可以给网站增加额外收入的广告验证码等,确实为验证码自带的“防御功能”增加了点儿力量,不过由于现实原因以及技术水平还有待于深入探讨。

目前到底哪些情况会蹦出恼人的验证码呢?

其实最初,有的网站或者移动端会采取设置“次数限制”的方式来保障入口的安全。


例如,用户输入三次错误密码之后会导致账号在一定时间内被锁定且禁止登陆;或者在规定时间内进行次数限制用来规范某种行为,例如24小时等。

后来由于此类操作并不能给用户带来较好的体验,甚至还让不法分子有机可乘。

比如可能会出现用户真的忘记了预设密码,限制登录之后造成人员流失;不法分子故意试错影响正常用户的合法操作;以及采用多个账号操作,用来突破单一账号登录次数限制等。

其实应对这一系列的问题,最关键的一点就是要识别出行为操作的是人还是机器,如果是人,是不是那个应该进行操作的“人”!

 

图片来源于:www.fxxz.com


这样分析,其实在任何可能影响用户体验或者造成接入平台损失的地方都需要验证码进行二次校验。

所以目前,验证码主要会出现在注册、登录、找回密码以及修改账号中重要的个人信息等涉及个人隐私的范畴;还有最最重要的一个环节就是支付!毕竟关乎财产安全,多验证几次也是理所应当的。

话说回来,验证的安全系数究竟有多高?

谈到这一点小编就要心塞塞一会儿了!

 

图片来源于:www.51offer.com


最近有专业的安全技术团队爆出猛料,其实手机移动网络中的漏洞是完全可以被用来拦截短信中的一次性双因素认证令牌,也就是人们熟知的验证码。

按照实际情况来看,更令人担忧的是,通常短信验证码并不是只发送一次,因为这种验证方式最方便、通用性最强悍,对于敏感账户,如果被劫持,风险太大了,所以运营商需要提请注意哇!

不过有消息称,似乎银行正在着力解决这个问题,寻求既安全还能够保证可用性的好办法。

例如开发个什么应用程序或者提供关于个人身份的便携验证,再或者是其他的有效发明等。

短信验证不安全,那图形呢?

小编遗憾的告诉大家,随着人工智能技术的发展,图形验证码也不再有安全可言了。


这一切都要归功于深度学习技术在图像处理上表现的如此强大。

过去,为了防止重要信息被窃取,图片验证码都增加了背景干扰或者字体多样化的设置等,其实就是为了提升被破解的难度段位。

但这种设计仅仅着眼在图像上,如果利用现在风靡的卷积神经网络,也就是CNN技术,破解也就是分分钟的事儿。

有人会问,CNN技术要实践还需要带标记的数据吧?哪有那么多数据用于训练?

说到这个可就厉害了。

据小编了解,关于带标记的数据,其获取方式的成本还是很便宜的。

网上有很多提供 “人工”打码服务的服务商,基本上也就是几分钱一张吧!

真是听的“惊心动魄”!

验证码的世界实在太复杂,能不能来点儿简单的?


作为交互安全的重要环节之一,验证码保证安全是刚需,但如果做不到“零打扰、无感觉”的话,还是……

请问地球人何时消灭验证码?小编翘首期盼ing。

没有验证码,真的可以吗?

这不,中国移动就推出了一款便利的移动认证技术。

旗下的一键登录广泛面向APP,不用注册,无需键入密码,手指动一动即可获得授权,那叫一个便捷。

 

 

更重要的一点,整个过程不存在账号密码泄露的隐患,安全性能杠杠的,毕竟现在的手机号已经可以高效代表了每个用户的基本信息。

 

 

这项新发明目前已经联手多家企业,例如爱奇艺、猎豹清理大师、同花顺炒股票等。要想体验无感登录,快来了解更多吧!

extends CanvasLayer # 合并原有文本和新增文本(包含换行符) var lines = [ "欢迎来到我的游戏!", "点击空格或鼠标继续...", "游戏正式开始!", "第一章:晦夜长明", "羲和驭日,沐乎汤谷,爰止爰息,是为昼明。", "然‘万古之晦’至,金乌泣血,光耀蒙尘。", "今汝为‘无归之魂’,凭依万类,行于晦夜……唯愿‘长明’。", "传说,日御羲和,生十日,轮值天穹。", "九日陨,余一子。", "其名,金乌。", "", "【画面微亮,映入眼帘的是一片狼藉】", "你“醒”了过来。", "或者说,你“存在”的意识,第一次感受到了自身。", "", "没有身体,没有重量,只有一片虚无的感知,如同一缕被遗弃的青烟。", "", "你正漂浮在一座残破不堪的殿宇中。借着从破损穹顶漏下的、清冷如水的月白色光芒,你能看清这是一座祭祀场所——望舒祠。神台上,那位驭月女神望舒的玉像已然倾颓,半张脸庞破碎,只余下一只清冷的眸子,无声地凝视着这片死寂。", "", "空气中弥漫着浓重的血腥味、木头焦糊味,以及一种……更为深邃的、仿佛源自灵魂腐朽的“晦涩”气息。", "", "你的“目光”扫过地面,三具尸体以一种绝望的姿态陈列其间,显然刚经历了一场如同野兽撕扯般的残酷袭击。", "", "【系统提示:发现可凭依的“躯壳”)】", "", "第一具,倒在神台旁。", "一位身着月白流云袍的年轻女子,心口处是一片触目惊心的撕裂伤。她手中紧紧攥着一枚散发着微弱温润光芒的玉佩,脸上凝固着施法时的专注与惊愕。她的袍角绣着药草与银针的纹样——一位 【沐月医者】。她似乎试图用最后的力量守护着什么,但失败了。", "", "第二具,匍匐在通往大门的路径上。", "这是一个身材魁梧的男性,穿着镶嵌了月光石的残破铁甲,背后的甲胄完全被利爪撕开,深可见骨。他手中紧握着一面几乎断裂的藤盾,盾面上满是深刻的爪痕,至死都保持着护卫的姿态——一位 【守夜人】。他用自己的脊背,为身后的人争取了最后几秒。", "", "第三具,蜷缩在倒塌的书架旁。", "一位戴着单边眼镜、身着青色文士长衫的少年,身体扭曲,脖颈处有诡异的紫黑色瘀痕。他身边散落着几张焦黑的符纸和一个空空如也的符袋——一位 【初阶符师】。他似乎没能成功释放出任何一个像样的攻击法术。", "", "袭击者……不像人类。地面上残留着焦躁的、带有腐蚀性的爪印,以及几缕沾染着不祥暗红色光泽的野兽毛发。", "", "【环境互动提示:感知到躯壳内未散的“执念”)】", "", "当你将意识靠近这三具尸体时,微弱的记忆碎片如同冰针,刺入你的感知:", "", "来自医者:“……光……变了……快启动……‘太阴敛息阵’……”", "", "来自骑士:“……挡住……不能让它们……亵渎神祠……”", "", "来自法师:“……符法……为什么失效了……那红色的光……”", "", "清冷的月光,透过破洞,在你虚无的“身体”上流淌,带来一丝奇异的安宁感。而祠外,透过门缝与墙隙,你能“听”到一种低沉、混乱、充满渴望的嘶吼,以及……那令人心悸的、仿佛能直接灼烧灵魂的暗红色微光。", "", "你,无归的旅魂,于此晦夜苏醒。", "前方,是三具通往现世的钥匙,与一个在疯狂边缘燃烧的世界。", "", "选择,你的第一具“躯壳”。" ] var current_line_index = 0 var char_index = 0 var is_printing = false var timer = Timer.new() var rich_label # 新增:用于存储已完成的文本内容 var accumulated_text = "" # 新增:切换显示模式的阈值(第7行开始) const APPEND_MODE_START = 7 func _ready(): # 创建RichTextLabel rich_label = RichTextLabel.new() rich_label.name = "DialogueLabel" rich_label.bbcode_enabled = true rich_label.scroll_active = false rich_label.autowrap_mode = TextServer.AUTOWRAP_WORD # 启用自动换行 rich_label.fit_content = true rich_label.custom_minimum_size = Vector2(800, 80) # 样式设置 rich_label.add_theme_font_size_override("normal_font_size", 32) # 稍小字号适应多行 rich_label.add_theme_color_override("default_color", Color.WHITE) rich_label.add_theme_constant_override("line_separation", 2) # 增加行间距 # 使用VBoxContainer替代CenterContainer var container = VBoxContainer.new() container.anchor_right = Control.ANCHOR_END container.anchor_bottom = Control.ANCHOR_END container.size_flags_vertical = Control.SIZE_EXPAND_FILL container.add_child(rich_label) add_child(container) # 定时器设置 timer.wait_time = 0.05 # 更快的打印速度适应多行 timer.one_shot = false add_child(timer) timer.timeout.connect(_on_Timer_timeout) # 窗口大小变化处理 get_viewport().size_changed.connect(_on_viewport_size_changed) _on_viewport_size_changed() # 开始打印第一行 start_printing_line() func _on_viewport_size_changed(): var viewport_size = get_viewport().size rich_label.custom_minimum_size = Vector2(viewport_size.x * 0.9, viewport_size.y * 0.65) # 更大的显示区域 rich_label.position.y = viewport_size.y * 0.65 # 固定在屏幕底部65%位置 func start_printing_line(): if current_line_index >= lines.size(): return is_printing = true char_index = 0 # 新增:前6行覆盖显示,第7行开始追加显示 if current_line_index < APPEND_MODE_START: rich_label.text = "" accumulated_text = "" timer.start() func _on_Timer_timeout(): if char_index < lines[current_line_index].length(): # 新增:区分显示模式 if current_line_index < APPEND_MODE_START: # 覆盖模式:单行居中显示 var current_text = lines[current_line_index].substr(0, char_index + 1) rich_label.text = "[center]" + current_text + "[/center]" else: # 追加模式:多行连续显示 accumulated_text += lines[current_line_index].substr(char_index, 1) rich_label.text = accumulated_text char_index += 1 else: # 行结束时处理 timer.stop() is_printing = false # 新增:追加模式时添加换行符 if current_line_index >= APPEND_MODE_START - 1: # 第6行结束时开始准备追加 accumulated_text += "\n" # 添加换行符 func _input(event): var should_advance = ( (event is InputEventKey and event.pressed and event.keycode == KEY_SPACE) or (event is InputEventMouseButton and event.pressed and event.button_index == MOUSE_BUTTON_LEFT) ) if should_advance: if is_printing: # 立即完成当前行 if current_line_index < APPEND_MODE_START: rich_label.text = "[center]" + lines[current_line_index] + "[/center]" else: # 追加模式下完成整行 accumulated_text += lines[current_line_index].substr(char_index) rich_label.text = accumulated_text accumulated_text += "\n" # 添加换行符 timer.stop() is_printing = false elif current_line_index + 1 < lines.size(): # 准备下一行 current_line_index += 1 start_printing_line() 我修改了一些东西,但是我运行时发现有个问题,就是我无法向下滑动滚轮看到下面的文字,下面的文字都被挡住了,请解决一下
11-03
评论 9
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值