验证码的前世今生(今生篇)作文2300字

初三作文

验证码的前世今生(今生篇)

看完《验证码的前世今生(前世篇)》也许第一感觉就是Winter is coming,互联网的人机对抗到了最黑暗的时刻。柳暗花明又一村,最黑暗的时刻也是光明即将来临的时刻——在传统验证码的末日新的反向图灵测试机制浴火重生。

作者:阿里聚安全来源:segmentfault |2016-11-08 19:19

收藏

分享

看完《验证码的前世今生(前世篇) 》也许第一感觉就是Winter is coming,互联网的人机对抗到了最黑暗的时刻。柳暗花明又一村,最黑暗的时刻也是光明即将来临的时刻——在传统验证码的末日新的反向图灵测试机制浴火重生。 0×1 验证码的划代标准

在介绍新的反向图灵测试机制前,首先我们对验证码进行划代对比。通过验证码的划代对比我们能更清楚新型验证码的特性。

验证码划代的标准是人机识别过程中基于对人类知识的应用。

第一代:标准验证码

这一代验证码是即是我们常见的图形验证码、语音验证码,基于机器难以处理复杂的计算机视觉及语音识别问题,而人类却可以轻松的识别来区分人类及机器。这一代验证码初步利用了人类知识容易解答,而计算机难以解答的机制进行人机判断。

第二代:创新验证码

第二代验证码是基于第一代验证码的核心思想(通过人类知识可以解答,而计算机难以解答的问题进行人机判断) 而产生的创新的交互优化型验证码。第二代验证码基于第一代验证码的核心原理--“人机之间知识的差异”,拓展出大量创新型验证码。

如12306的验证码也是对于传统验证码的一种创新:

第三代:无知识型验证码

第三代验证码最大的特点是不再基于知识进行人机判断,而是基于人类固有的生物特征以及操作的环境信息综合决策,来判断是人类还是机器。无知识型验证码最大特点即无需人类思考,从而不会打断用户操作,进而提供更好的用户体验。 如Google 的新版

ReCaptcha:

阿里巴巴的滑动验证:

0×2 无知识型验证码的原理

Step 1:在Web 前端周期性的对Javascript 代码进行混淆和并更新加密算法,将不可信的Web 前端打造成可信的客户端。在用户进行滑动操作时,基于可信的客户端采集用户操作的行为信息以及环境信息,将其加密后提交给后端的风控引擎; Web 前端因为代码都是明文形式的脚本语言,服务端想要从客户端获取可信的数据一直面临“源码面前,了无秘密”的困扰。给一个前端工程师充足的时间,似乎Web 前端真的是了无秘密,如下图:

而随着攻防对抗的持续,安全的补锅匠们总能找到猥琐的方法来进行防御。Web 前端虽然没有客户端防止逆向和调试的安全强度,但是却具备客户端所不具有的hotpatch 能力。

参考Map-Reduce 的原理,单台机器性能不行,把任务分派到多台机器并发执行。如果单份Javascript 混淆的强度不可行,那么周期性的对Javascript 代码自动混淆。即便攻击者能够短时间的对Web 前端进行逆向,但逆向出来的功能短期之后就会在服务端失效,那么也能极大的消耗攻击者的成本。

更可怕的是丧心病狂的Google 基于Javascript 完全的实现一套虚拟机,核心代码使用字节码实现。周期性的对字节码格式更新逆向的成本成几何级数递增。

如果代码逻辑不更新,仅仅重复的混淆原有逻辑,那么仍然没有意义。而对于一个Web 的验证码应用,核心功能只有两部分:

1、事件采集模块,采集用户的行为信息,此部分逻辑简单,也无法自动化更新代码逻辑;2、行为数据加密模块,该部分的核心是加密算法,似乎代码逻辑自动化更新变化有足够空间。

为了保障前端的可信,需要对加密算法进行自动化更新,必须要有一个巨大的对称加密算法可选集合才能保证代码的自动化更新。而所有对称加密算法都基于Feistel 分组密码结构,基于Feistel 分组密码结构可以派生出无数的对称加密算法,从而可以派生出无数的的对称加密算法。

如下图,Festel 分组结构的可逆性不要求加密的核心函数F 可逆,故可以自动的生成任意的F 函数进而派生出无数对称加密算法。

基于自动化的代码更新及混淆机制从而保障整个Web 代码对抗逆向分析和调试的强度,进而将不可信的Web 前端打造成可信的端。

Step 2:后续风控引擎会基于用户操作的行为特征、用户环境信息、用户对应的设备指纹及其设备信誉综合进行决策,判断是否需要对该次操作进行二次判断或者是直接阻断。

0×3 无知识型验证码的优点

无知识型验证码有三大核心优点,分别是用户体验,风险识别,风险拦截。

用户体验:

无知识型验证码针对大多数的用户能够无需思考,直接通过。不存在业务和流程的打断,体验流畅,对用户体验的提升毋庸质疑。

风险识别:

因为随着机器学习的发展让机器掌握人类具有的知识也不再是难点,无知识型验证码不再基于知识来挑战机器,而是基于人类的固有行为特征以及操作的环境信息综合进行风控决策,攻击者难以批量的模拟出可以欺骗风控引擎的正常人类的的操作。

风险拦截:

普通的验证码基于知识对机器发起挑战,无法做到对机器进行阻断。因为知识的挑战还需要兼顾人类的体验,机器通过的概率只能做到无限的降低而无法消除。而无知识型验证码基于后端的风控决策,可以对不同风险的操作提出更高难度的验证码乃至阻断,有更大空间对风险进行消除和拦截。

0×4 总结

目前阿里聚安全提供的滑动验证产品,目前对外提供免费试用,欢迎申请免费试用

最后,希望新型的验证码能够建设更简单和安全的互联网: )

【编辑推荐】

1.

C#联通新版验证码识别的实现 2.

php 如何实现验证码 3.

透过现象看本质—戏说12306验证码 4.

在被12306坑之后 我们聊聊验证码发展史 5. 验证码的前世今生(前世篇)

验证码的前世今生(今生篇)

看完《验证码的前世今生(前世篇)》也许第一感觉就是Winter is coming,互联网的人机对抗到了最黑暗的时刻。柳暗花明又一村,最黑暗的时刻也是光明即将来临的时刻——在传统验证码的末日新的反向图灵测试机制浴火重生。

作者:阿里聚安全来源:segmentfault |2016-11-08 19:19

收藏

分享

看完《验证码的前世今生(前世篇) 》也许第一感觉就是Winter is coming,互联网的人机对抗到了最黑暗的时刻。柳暗花明又一村,最黑暗的时刻也是光明即将来临的时刻——在传统验证码的末日新的反向图灵测试机制浴火重生。 0×1 验证码的划代标准

在介绍新的反向图灵测试机制前,首先我们对验证码进行划代对比。通过验证码的划代对比我们能更清楚新型验证码的特性。

验证码划代的标准是人机识别过程中基于对人类知识的应用。

第一代:标准验证码

这一代验证码是即是我们常见的图形验证码、语音验证码,基于机器难以处理复杂的计算机视觉及语音识别问题,而人类却可以轻松的识别来区分人类及机器。这一代验证码初步利用了人类知识容易解答,而计算机难以解答的机制进行人机判断。

第二代:创新验证码

第二代验证码是基于第一代验证码的核心思想(通过人类知识可以解答,而计算机难以解答的问题进行人机判断) 而产生的创新的交互优化型验证码。第二代验证码基于第一代验证码的核心原理--“人机之间知识的差异”,拓展出大量创新型验证码。

如12306的验证码也是对于传统验证码的一种创新:

第三代:无知识型验证码

第三代验证码最大的特点是不再基于知识进行人机判断,而是基于人类固有的生物特征以及操作的环境信息综合决策,来判断是人类还是机器。无知识型验证码最大特点即无需人类思考,从而不会打断用户操作,进而提供更好的用户体验。 如Google 的新版

ReCaptcha:

阿里巴巴的滑动验证:

0×2 无知识型验证码的原理

Step 1:在Web 前端周期性的对Javascript 代码进行混淆和并更新加密算法,将不可信的Web 前端打造成可信的客户端。在用户进行滑动操作时,基于可信的客户端采集用户操作的行为信息以及环境信息,将其加密后提交给后端的风控引擎; Web 前端因为代码都是明文形式的脚本语言,服务端想要从客户端获取可信的数据一直面临“源码面前,了无秘密”的困扰。给一个前端工程师充足的时间,似乎Web 前端真的是了无秘密,如下图:

而随着攻防对抗的持续,安全的补锅匠们总能找到猥琐的方法来进行防御。Web 前端虽然没有客户端防止逆向和调试的安全强度,但是却具备客户端所不具有的hotpatch 能力。

参考Map-Reduce 的原理,单台机器性能不行,把任务分派到多台机器并发执行。如果单份Javascript 混淆的强度不可行,那么周期性的对Javascript 代码自动混淆。即便攻击者能够短时间的对Web 前端进行逆向,但逆向出来的功能短期之后就会在服务端失效,那么也能极大的消耗攻击者的成本。

更可怕的是丧心病狂的Google 基于Javascript 完全的实现一套虚拟机,核心代码使用字节码实现。周期性的对字节码格式更新逆向的成本成几何级数递增。

如果代码逻辑不更新,仅仅重复的混淆原有逻辑,那么仍然没有意义。而对于一个Web 的验证码应用,核心功能只有两部分:

1、事件采集模块,采集用户的行为信息,此部分逻辑简单,也无法自动化更新代码逻辑;2、行为数据加密模块,该部分的核心是加密算法,似乎代码逻辑自动化更新变化有足够空间。

为了保障前端的可信,需要对加密算法进行自动化更新,必须要有一个巨大的对称加密算法可选集合才能保证代码的自动化更新。而所有对称加密算法都基于Feistel 分组密码结构,基于Feistel 分组密码结构可以派生出无数的对称加密算法,从而可以派生出无数的的对称加密算法。

如下图,Festel 分组结构的可逆性不要求加密的核心函数F 可逆,故可以自动的生成任意的F 函数进而派生出无数对称加密算法。

基于自动化的代码更新及混淆机制从而保障整个Web 代码对抗逆向分析和调试的强度,进而将不可信的Web 前端打造成可信的端。

Step 2:后续风控引擎会基于用户操作的行为特征、用户环境信息、用户对应的设备指纹及其设备信誉综合进行决策,判断是否需要对该次操作进行二次判断或者是直接阻断。

0×3 无知识型验证码的优点

无知识型验证码有三大核心优点,分别是用户体验,风险识别,风险拦截。

用户体验:

无知识型验证码针对大多数的用户能够无需思考,直接通过。不存在业务和流程的打断,体验流畅,对用户体验的提升毋庸质疑。

风险识别:

因为随着机器学习的发展让机器掌握人类具有的知识也不再是难点,无知识型验证码不再基于知识来挑战机器,而是基于人类的固有行为特征以及操作的环境信息综合进行风控决策,攻击者难以批量的模拟出可以欺骗风控引擎的正常人类的的操作。

风险拦截:

普通的验证码基于知识对机器发起挑战,无法做到对机器进行阻断。因为知识的挑战还需要兼顾人类的体验,机器通过的概率只能做到无限的降低而无法消除。而无知识型验证码基于后端的风控决策,可以对不同风险的操作提出更高难度的验证码乃至阻断,有更大空间对风险进行消除和拦截。

0×4 总结

目前阿里聚安全提供的滑动验证产品,目前对外提供免费试用,欢迎申请免费试用

最后,希望新型的验证码能够建设更简单和安全的互联网: )

【编辑推荐】

1.

C#联通新版验证码识别的实现 2.

php 如何实现验证码 3.

透过现象看本质—戏说12306验证码 4.

在被12306坑之后 我们聊聊验证码发展史 5. 验证码的前世今生(前世篇)


相关作文

  • 前世今生来世的事作文800字
  • 中国的神话出现最多的是什么?是前世今生来世. 很多中国的神话都出现了前世今生来世. 如果真的有的话,前世是怎么样的?没有人会知道,因为在传说中:人死后到了地府后要喝下孟婆汤忘却前世的一切记忆,但是在传说中都会给有情人留下一小段记忆,相当于说是在梦中出现的有情人见面后就会想起前世的一切,现在国外有专家 ...

  • 今生你嫁的人,是前世葬你的人作文600字
  • <佛说:今生你嫁的人,是前世葬你的人> 从前有个书生,和未婚妻约好在某年某月某日结婚.到那一天,未婚妻却嫁给了别人. 书生受此打击,一病不起.这时,路过一游方僧人,从怀里摸出一面镜子叫书生看-- 书生看到茫茫大海,一名遇害的女子一丝不挂地躺在海滩上. 路过一人,看一眼,摇摇头,走了. 又 ...

  • 前世今生的梦呓作文1100字
  • 恍然间,已逝去40余载,看镜中人,鬓角未改,青丝依旧,只是眼神,已了无旧时的无牵无挂,不再复旧时的单纯和纯真. 想那时,无邪地真执,在那年夏天的颐和园,着一件天兰的衬衫,穿一双普通的白球鞋,咬着一个一元的冰棍,坐在昆明湖畔,大大的眼睛笑得成了豆荚模样,那个无拘无束的长发少女,依稀就是我的前世梦里的影 ...

  • 透过清水看到前世的我作文500字
  • 在繁星的映衬下,神降临在我的面前,他只是从天而降些清透的水,默默不语,便消失了.我走向前,看到的却是前世的我-- 前世的我,生活在浓郁的森林里,有着神的保护,惊人的奔跑速与尖锐的利牙--前世,我是一只有着深邃灰色眼睛的黑豹. 我在森林里,尽情地奔跑,扑打着蝴蝶,追逐着猎物,享受着自然之美,每天随着日 ...

  • 梦寻作文600字
  • 蓦然回首,原来我早已身处在这片梦的天堂. 在我的梦里,还藏着另一个梦--一个遥远发着金光的梦.我想抓住它,却因为太远.梦里,它浸透了汗水,洒满了血泪,只因一个等待,等待我的追寻. 从来不曾怀想,为何呱呱坠地时要哭泣,为何身为婴儿要永远疲倦,整天沉睡在梦想?难道是因为早已预料到今生的追寻,害怕梦想泡沫 ...

  • 前世今生作文800字
  • 你我的心都是自己的,我们要为了自己而战,千万别存有一点后悔,留下一丝遗憾! --题记 心底的封印被开启,遥远的记忆被唤醒.我,明白了.你呢? 一.前世的记忆 洛和雷是格列特的两位将军,也是同生死,共患难的好兄弟.他们曾经一同在战场上保家卫国,一同在别人敬佩与羡慕的眼光中接受国王的赏赐.但是,敌人来进 ...

  • 前世今生作文200字
  • 前世今生 前缘,你是一只苦命的蝴蝶被我放生救出. 今生,你已化作美丽的仙子与我相伴世俗. 然而,命运让你独走人间之路. 回首,而我漂泊游荡在阴间旅途. 来世,我依旧要与你再叙情爱的酸苦. 前缘,我是一个游侠无意救蝶引福. 今生,我已成为落魄书生功名难入. 然而,仙子送我一世花烛. 回首,灵魂离我不舍 ...

  • 遇上你,是前世写下的宿命,今生的画地为牢作文600字
  • 三千青丝舞尽一世苍凉,盛夏烟火,谁欠谁地老天荒?画地为牢,圈出一世不解宿命. 花下重门,柳边深巷,不堪回首. 走过的旧时光,是浸满城池的鲜血反射的光芒.用鲜血浇灌的曼殊沙华开出血色的花,花生彼岸,指引着不知归路的亡魂.我是你前世错过的回眸,却不是你今生守候的温柔.你用初遇的那抹笑容颠覆了我的青春,我 ...

  • 若有前世今生作文600字
  • 若有前世今生,我们相见何妨?相约月下,看那唯美的花. 花开花,开花落花开花:哪在哪,在哪风筝在哪:答滴答,滴答滴答滴答:你好吗,你们俩都好吗?舍不得的他他他,忘不掉的她她她,眼泪流下嗒嗒嗒,已没有人再给我牵挂.她开着你的花,在每一个晚霞,靠在你的身边秀着枝桠:每一天在挣扎,你给我的惩罚,越来越不清楚 ...

你可能喜欢
聚合