论文部分内容阅读
验证码是现今互联网应对在线攻击的一种主要防御机制,其中动态认知游戏(Dynamic Cognitive Game,DCG)验证码是一种很有前景的新型验证码,它要求用户进行一系列游戏式的认知任务以通过验证,相比文字验证和图像验证在用户体验上有了很大改善。滑块式验证码作为一种具有代表性的动态认知游戏验证码,它要求用户拖动滑块到目标位置,相比于肉眼识别字符或图片,这种验证方式的交互过程更为有趣,因此在很多主流平台上,滑动验证日渐替代了先前流行的字符和图片验证方式。本文对现今流行的滑块验证方式做了详细地探究,发现目前的滑块验证方式区分人机所依据的滑动轨迹可以人为生成,因此我们提出了基于机器学习方法进行轨迹模拟的破解方案,以此为提升和优化网络信息安全策略提供借鉴,为建设安全和谐的互联网信息生态环境提供参考。目前方案采用的普遍流程分为“识别目标位置”和“生成滑动轨迹”这两个步骤。对于前者,可以采取形状匹配的方法,针对滑块验证的特殊场景,我们进行了限定位置、去除缩放和旋转等改进。对于后者,本文尝试设计了以下几种方案进行效果对比:(1)数据库法,将大量真实的人工拖动轨迹建立数据库,在解析出目标位置后从数据库中直接取出相应轨迹进行模拟;(2)曲线拟合法,分析人工拖动轨迹的规律,以分段函数曲线的思路来模拟拖动轨迹;(3)深度强化学习法,设计深度Q网络(Deep Q Network,DQN)模型,让其自动生成路径;(4)尝试使用循环神经网络(Recurrent Neural Networks,RNN),依据现有滑动轨迹学习滑动序列模型。对于以上不同方案,本文分别设计模型进行了仿真实验,将实验结果进行比较,发现数据库法的验证码通过率和测试次数与数据库的轨迹数量有关,曲线拟合法通过率相对较低,深度强化学习法和RNN法在训练一定次数后通过率分别稳定在了0.80和0.75左右,验证了机器学习的方法在破解滑动验证方向上的可行性和有效性。