输出随机中文字符,增加混淆
2016年11月26日
仔细想了下,现在短信验证码容易产生灰色产业链的原因在于——破解短信验证码的成本低(即短信中内容容易识别)以及短信数值易于输入。当然类似于创业者乐于被薅羊毛不在考虑范围之中。
原先考虑的输出随机中文字符与增加混淆是出于前者的考虑,如果换用中文作为验证码,中文与周围内容形态相似,再加上随机根据不同的模板进行发送短信验证码可以让薅羊毛者的验证码获取能力大大降低。
但是通过机器学习和经验搜集,摸清短信模板后依然还是容易获得中文的验证码。
这里就需要再借鉴PC端人机识别的发展历史了——
根据人机之间的差异来设计新一代验证码。我第一个想到的就是12306,如果说,把图片验证和中文短信绑定在一起就简直是天作适合——这样就同时需要机器学习中的自然语言识别和深度学习两大领域的技术方可完成,而且缺一不可,这样就更加增大了破解的成本,复杂了数值输入方式。
简书的验证码选用的是极验,极验的检测方法是让你拖动滑块补全图案,同时这个滑动的过程也受到监控,假如出现类似机器人的僵硬的拖动它便会提示“图案被小怪兽吃掉了”(这个真的让人有点火大,经常自己手拉都被认为是机器人……)
国外普遍采用reCaptcha防机器人,简而言之就是高级点的图片,知乎上的分析
总而言之,就是避免纯数字以及验证输入流程。最好在流程中插入图片。
有想写这个论文的朋友可以联系我~