今天聽人說,因為用Authenticator App做亞馬遜兩步驗證造成了帳號關聯……
我給大家解釋一下Authenticator的實現原理,作為計算機專業科班出身的我,此次從各方面了解並經過自己親測。已證實:用Authenticator App做亞馬遜兩步驗證造成關聯的說法確實不成立!
在說Authenticator原理之前,我先科普下亞馬遜的關聯原則:除了賬戶信息資料(身份證明、信用卡、收款帳號、電話號碼、地址等)和 產品信息內容等關聯因素之外,登錄帳號的設備的IP地址、網卡MAC地址、瀏覽器Cookie等也會被亞馬遜識別。
另外關聯又分為強關聯和弱關聯,單純的因為IP或其他某一個點相同一般不會即刻把你的店鋪關閉,很多時候帳號被凍結都是日積月累的問題造成的。所以,當你的賬戶被告知關聯的時候可能是你之前的一些操作行為造成的。
通俗地講,Authenticator的實現原理就跟我們熟悉的網銀的實體動態口令牌的原理差不多。簡單來說,Authenticator的實現原理是基於服務器端(Amazon)隨機生成的密鑰,客戶端(Authentictor)使用服務器端的密鑰和時間戳通過算法生成動態驗證碼。該驗證碼的生成只跟密鑰和時間戳有關,客戶端在飛行模式下都是可以運行的,跟網絡等無關,所以就不用擔心這個關聯問題了。
那么,我再說一下復雜的口令原理:
一、用戶需要開啟Amazon Authenticator服務時,
1.服務器隨機生成一個類似於『DPI45HKISEXU6HG7』的密鑰,並且把這個密鑰保存在數據庫中。
2.在頁面上顯示一個二維碼,內容是一個URI地址(otpauth://totp/賬號?secret=密鑰)
3.客戶端掃描二維碼,把密鑰『DPI45HKISEXU6HG7』保存在客戶端。
二、用戶需要登陸時
1.客戶端每30秒使用密鑰『DPI45HKISEXU6HG7』和時間戳通過一種『算法』生成一個6位數字的一次性密碼,如『401651』。
2.用戶登陸時輸入一次性密碼『401651』。
3.服務器端使用保存在數據庫中的密鑰『DPI45HKISEXU6HG7』和時間戳通過同一種『算法』生成一個6位數字的一次性密碼。大家都懂控制變量法,如果算法相同、密鑰相同,又是同一個時間(時間戳相同),那么客戶端和服務器計算出的一次性密碼是一樣的。服務器驗證時如果一樣,就登錄成功了。
原理就是這么簡單,這種驗證方式,比手機方便多了,特別是賬號多的情況下。
作者:夏_COCO
鏈接:https://www.jianshu.com/p/d4d9a815a3d1
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯系作者獲得授權並注明出處。
