Steam 的令牌本質是個 2FA(多因素驗證),使用的 TOTP 算法,所以可以將手機端 TOTP 提取到 Bitwarden 食用
Note
提取手機端 Steam TOTP 需要手機 ROOT 並安裝 LSP
然後安裝 SteamGuardExtractor 或者 SteamGuardDump LSP 模塊並應用到 Steam 後,進入 Steam 會自動複製令牌,如下方所示
{
"accounts": {
"xxxxxxxxxxxxxxxx": {
"shared_secret": "xxxxx+testxxxxxxxxxxxxxx=",
"identity_secret": "/xxxxxxxxxxxxxxxxxxxxx=",
"secret_1": "xxxxxxxxxxxxxxxxxxx=",
"serial_number": "xxxxxxxxxxxxxxxxxx",
"revocation_code": "xxxxxx",
"account_name": "xxxxx",
"token_gid": "xxxxxxxxxxxx",
"steamguard_scheme": 2,
"steamid": "xxxxxxxxxxxxxxxxxx"
}
}
}
根據 SteamTools #2276 說明和提供的 Python 腳本,我們需要將 shared_secret
從 Base64
轉換為 Base32
也就是將 YOUR_SHARED_SECRET
替換為我上方提取出來的令牌示例中 shared_secret
的值
import base64
shared_secret = 'xxxxx+testxxxxxxxxxxxxxx='
print("Secret:", base64.b32encode(base64.b64decode(shared_secret)).decode())
運行這個 python 文件,如果你的電腦沒有安裝 Python,可以使用菜鳥工具的 Python3 在線工具 運行
運行後,終端輸出 Y4OHDR7LL2ZNY4OHDRY4OHDRY4OHC===
那麼我的 Steam TOTP 就是 Base32
格式的 shared_secret
前面添加 steam://
steam://Y4OHDR7LL2ZNY4OHDRY4OHDRY4OHC===
將這個 TOTP 添加到 Bitwarden 的 驗證器密鑰 (TOTP)
中,並確認下生成的 5 位校驗碼與手機端是否同步,如果同步即正確
* 如果你的手機沒有 Root 權限,可以參考下方的教程獲取 shared_secret
- Dogcraft:從 steam 新版 APP (3.5) 中導出令牌 (無需 root)
- SteamTools:#2129 (注入 Javascript 獲取令牌)