那麼作爲項目的一部分,我想實現一個兩步認證系統(在軌)兩步認證,它是如何工作的?
我理解它的原理,
=>客戶端:用戶名和密碼
< =服務器:生成的PIN碼,並通過短信發送到客戶端/電子郵件
=>客戶端:輸入PIN
< =服務器:驗證客戶端正常
現在我想知道的是在基於Web的應用程序中,例如rails,PIN需要在每個點都保密,所以當從用戶名/密碼部分重定向到PIN部分時,我需要保留PIN碼祕密,同時將它傳遞到系統的下一部分(PIN部分)
是否唯一體面的方法是通過將PIN碼暫時存儲在數據庫中以及用戶ID?
我添加HOTP(基於計數器的OTP)規範:http://tools.ietf.org/html/rfc4226 – Jcs
如果服務器時間和客戶端時間不同步,那意味着當時我該怎麼辦?例如:客戶設置他/她的時間5分鐘快/慢 –
那麼,在我看來,這是客戶的問題,然後;但谷歌有其他意見,並在TOTP應用程序中實現單獨的時間同步(參考[Google Authenticator](https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2)應用程序) – DarkWanderer