我正在瀏覽Oauth2文檔,並認爲這是一種寬容的安全方式,因此我試圖通過特殊的方案來實現JWT令牌,如圖片中用於與Web API進行通信的移動應用程序。我不喜歡Oauth2刷新標記的想法,因爲它們可能會被盜取,並允許(由合法和惡意用戶)並行使用(除非您通過旋轉它們來實現盜竊檢測(在每次請求時刷新刷新標記),爲什麼使用他們呢?通過JWT進行應用程序認證和授權
的身份驗證流程,工作原理:
- 用戶與憑據登錄享有20分鐘的壽命的JWT。
- 過期後,通過點擊db檢查它是否被列入黑名單(relogin),如果不檢查它是否用於生成新的令牌,則會刷新jwt。
- 如果它從未用於刷新,則會被接受並用於發佈低級別訪問令牌。
- 如果令牌之前使用,或有不同的客戶端+設備+用戶超過其母公司提供了認證檢查(密碼或鎖屏密碼)
- 如果獲得通過,該檢查發出新的第一級令牌列入黑名單的所有父和db上的孩子,就像新的第一個用戶登錄一樣。
- 如果鎖定屏幕失敗,用戶將看到登錄屏幕。
的問題是:
- 什麼是可能的安全漏洞? (我發現了兩個用例:被盜的有效訪問令牌與Oauth令牌持續20分鐘相同,在這裏沒有任何損失,而且被盜的睡眠令牌:用戶沒有登錄說7天,令牌被盜用並被使用直到用戶再次登錄或令牌鏈在持續3個月後恢復 - 我們的政策 - 此盜竊的機會很小,因爲令牌必須在用戶在應用上發出的最後一個請求截獲,比偷取Oauth2更新令牌更苗條)
- 什麼是用戶體驗攻擊者可以在此計劃上針對應用程序引發問題?
您的使用案例:被盜手機會讓惡意用戶抓住所有持久登錄應用程序並冒充你:facebook,google ....所以這個漏洞很常見,這就是爲什麼在這些應用程序儀表板上撤銷設備的原因。 –