在了解 2FA 双因子身份认证的技术原理前,我们需要先了解什么是 2FA 双因子身份认证。双因子身份认证是一种采用时间同步技术的系统,采用了基于时间、事件和密钥三种变量而产生的一次性动态密码(OTP动态口令)来代替传统的静态密码。


每个 OTP 动态口令载体(即令牌)都有一个唯一的密钥,该密钥同时存放在服务器端,每次认证时令牌与服务器分别根据同样的密钥,同样的随机参数(时间、事件)和同样的算法计算了认证的动态口令,从而确保密码的一致性,实现用户的二次身份校验。


每次认证时的随机参数不同,所以每次产生的 OTP 动态口令也不同。由于每次计算时参数的随机性保证了每次密码的不可预测性,从而在最基本的密码校验这一环节保证了系统的安全性。解决因口令被盗而导致的重大损失,防止恶意入侵者或人为破坏,解决由口令泄露导致的网络攻击问题。


2FA 双因子身份认证技术如今已经广泛应用于 C 端用户和 B 端用户,类型涵盖短信验证码、动态口令、生物识别、推送认证等,动态口令类型的令牌又包括了硬件令牌、手机APP令牌、H5令牌、小程序令牌等等,其中时间型令牌(硬件令牌、APP令牌、小程序令牌)与消息型令牌(短信验证码)技术原理会有所不同,接下来就详细剖析下这两类令牌的技术原理。


时间型令牌


时间型令牌需要用到时间、种子,按照特定算法来生成动态口令,然后发给服务端进行认证校验。

聊一聊2FA双因子身份认证(OTP动态口令)的技术原理_短信验证码

宁盾动态口令原理


访问流程


聊一聊2FA双因子身份认证(OTP动态口令)的技术原理_短信验证码_02

以天融信VPN登录为例


用户打开VPN输入用户名和密码后,点击连接会触发二次动态口令认证,输入硬件令牌上的6位随机动态码即可校验通过。用户的账号密码可以去VPN本地校验,也可以由宁盾RADIUS认证服务器来校验。动态密码则是由宁盾来校验。


消息型令牌


消息型令牌需要借助短信通道,这时企业客户就需要向运营商采购短信包,用以发送短信。也可以借助企业微信、飞书、钉钉的消息通知来进行。消息令牌是先向服务端申请动态口令,然后服务端生成后通过第三方服务发给用户端,最后再发给服务端申请认证校验。


动态口令的优势:

1、动态口令可以设置4位数或者6位数,每1位由“0-9”10个数字组成,随机组合有上万种可能,不易被破解;

2、宁盾 2FA 双因子身份认证系统后台可以设置错误尝试次数,比如当输错5次后,就会锁定当前账号,此时服务端拒绝验证动态口令;

3、动态码每隔30S或者60S变换一次;

4、每个动态口令是一次性的,只能使用一次。


消息型令牌与时间型令牌各有优势,适合的场景不同,企业可以根据自身需求灵活选择。


消息型令牌优缺点:

1、无需下载APP或者携带额外的硬件设备,直接与用户手机结合,使用无感知,方便。

2、国外用户可能无法使用。

3、手机信号不好时,无法及时接收短信验证码。

4、手机没电或者损坏时,也无法使用短信验证码。


时间型令牌优缺点:

1、硬件令牌可随身携带,适合不能携带手机的场景,且抗暴力破解,防拆卸。

2、APP令牌需要用户下载手机APP,并激活才能使用。

3、动态码离线生成,不受网络影响。


综合来看,因此综合来看,时间型令牌侧重于安全性,能够抵御各种暴力破解和恶意攻击;而消息型令牌则更注重用户体验和便利性,适合于普通用户的日常使用


随着移动互联网的快速发展,OTP 动态口令作为一种安全认证方式也得到了广泛应用。相信在未来的发展中,2FA 双因子身份认证技术将会迎来更加广泛的应用场景和更加多样化的实现方式。只有不断加强技术研发和优化用户体验,才能更好地保障企业信息安全。

(本文来源于宁盾,仅供学习和参考,未经授权禁止转载和复制。如欲了解更多内容,可前往宁盾官网博客解锁更多干货)