GitHub 最近宣布,它正在采用SMS一次性密码(例如,两因素身份验证代码)格式的标准草案,以帮助阻止网络钓鱼攻击。

短信注意事项

在开始详细介绍之前,需要注意的是,使用一次性短信作为SMS的安全性比使用诸如Authy之类的专用应用程序的安全性低,因为该方法容易受到SIM交换攻击的攻击。它们也很不方便 -有时消息会花一些时间才能到达,如果用户不在手机范围内或在出国旅行时更换了SIM卡,则根本不会收到消息。

也就是说,通过SMS一次性获得密码很重要-它们是传递2FA代码的最常见方式,因为它们可以与用户已经拥有的技术一起使用。下载专用于管理2FA代码的专用应用程序超出了许多用户的范围。

这个怎么运作

标准背后的想法是预定义的SMS(文本消息)格式,如下所示:

图片

最后一行必须与上述格式匹配,以@和开头 @origin #code

然后,设备可以将其解释为明确的一次性密码。在Web应用程序上,您指定:

图片

浏览器可以将站点的来源与(example.com)收到的消息进行匹配,然后为用户自动填充此值。

图片

一些移动浏览器已经做到了这一点(例如Safari),但是是通过猜测的方式实现的,并且不能保证您刚收到的一次性密码(OTP)属于正确的站点。如果没有origin,则仿冒网站可能只是autocomplete="one-time-code"在虚假站点上实施来收集OTP。

标准现状

这是Apple和Google今年早些时候发布的标准草案。支持似乎正在增长。GitHub本月初采用了它。标准草案可以并且确实会发生变化,因此请确保在执行之前进行最新评估。(而且,如果您还没有考虑,请考虑使用身份提供者来为您解决此问题。设计和构建安全身份验证很难做得很好,通常也不会使您的应用与众不同。)

阅读更多:

via https://trineo.com/blog/2020/08/phishing-resistant-one-time-codes

通过短信发送的一次性验证码 的标准发布
标签: