双要素身份认证便是经过你所知道再加上你所能具有的这二个要素组合到一同才干发挥作用的身份认证体系。双要素认证是一种选用时刻同步技能的体系,选用了依据时刻、事情和密钥三变量而发生的一次性暗码来替代传统的静态暗码。每个动态暗码卡都有一个仅有的密钥,该密钥一起存放在服务器端,每次认证时动态暗码卡与服务器别离依据相同的密钥,相同的随机参数(时刻、事情)和相同的算法计算了认证的动态暗码,然后保证暗码的一致性,然后完结了用户的认证。就像咱们去银行办卡送的口令牌.A8站源码交易平台
多要素认证(MFA),是一种计算机拜访操控的办法,用户要经过两种以上的认证机制之后,才干得到授权,运用计算机资源。MFA的意图是树立一个多层次的防护,使未经授权的人拜访计算机体系或网络愈加困难,然后进步安全性。A8站源码交易平台
现在大部分网站或软件现已选用二次加密运用Google Authenticator(谷歌身份验证器)动态暗码。
Google Authenticator项目在github上的地址是:https://github.com/PHPGangsta/GoogleAuthenticator
东西/质料
Google Authenticator(谷歌身份验证器)
办法/过程
百度查找下载或经过三方软件等下载到手机上,完结装置。
运转手机装置后"身份验证器"图标
第一次运转需求设置你的帐户跟密钥(密钥可经过网站或软件获取),保存回来。
此刻主界面现已显现你的动态暗码,动态暗码一分钟改变一次。
【验证完结原理】
敞开Google的登陆二步验证(即Google Authenticator服务)后用户登陆时需求输入额定由手机客户端生成的一次性暗码。
完结Google Authenticator功用需求服务器端和客户端的支撑。服务器端担任密钥的生成、验证一次性暗码是否正确。客户端记载密钥后生成一次性暗码。
现在客户端有:
android版: Google 身份验证器
iOS版:https://itunes.apple.com/cn/app/google-authenticator/id388497605
完结原理:
一、用户需求敞开Google Authenticator服务时,
1.服务器随机生成一个类似于『DPI45HKISEXU6HG7』的密钥,而且把这个密钥保存在数据库中。
2.在页面上显现一个二维码,内容是一个URI地址(otpauth://totp/账号?secret=密钥),如『otpauth://totp/kisexu@gmail.com?secret=DPI45HCEBCJK6HG7』
3.客户端扫描二维码,把密钥『DPI45HKISEXU6HG7』保存在客户端。
二、用户需求登陆时
1.客户端每30秒运用密钥『DPI45HKISEXU6HG7』和时刻戳经过一种『算法』生成一个6位数字的一次性暗码,如『684060』。如下图android版界面:
2.用户登陆时输入一次性暗码『684060』。
3.服务器端运用保存在数据库中的密钥『DPI45HKISEXU6HG7』和时刻戳经过同一种『算法』生成一个6位数字的一次性暗码。我们都懂操控变量法,假如算法相同、密钥相同,又是同一个时刻(时刻戳相同),那么客户端和服务器计算出的一次性暗码是相同的。服务器验证时假如相同,就登录成功了。
Tips:
1.这种『算法』是揭露的,所以服务器端也有许多开源的完结,比方php版的:https://github.com/PHPGangsta/GoogleAuthenticator 。上github查找『Google Authenticator』能够找到更多语言版的Google Authenticator。
2.所以,你在自己的项目能够轻松参加对Google Authenticator的支撑,在一个客户端上显现多个账户的作用能够看上面android版界面的截图。现在dropbox、lastpass、wordpress,乃至vps等第三方使用都支撑Google Authenticator登陆,请自行查找。
3.现实生活中,网银、网络游戏的实体动态口令牌其实原理也差不多,我们能够自行脑补下,谢谢。A8站源码交易平台
【插件下载】
1、Google Authenticator for Android - Download https://google-authenticator.en.softonic.com/android
2、Google Authenticator – WordPress plugin | WordPress.org https://wordpress.org/plugins/google-authenticator/
3、Linux下布置SSH登录时的二次身份验证环境记载(使用Google Authenticator) https://www.cnblogs.com/kevingrace/p/7065255.html <做服务器运维等保的引荐看这个>
4、使用Google Authenticator完结用户双要素认证-https://blog.51cto.com/kbsonlong/2113665
5、python 完结google authenticator 认证- https://blog.51cto.com/12113362/2053673