Steam Guard 手機驗證器原理 - Steam

Table of Contents


Steam所用代碼驗證器是使用非標準的TOTP

詳細可以查查Google Authenticator的原理

但是Steam上因為相容舊有的驗證系統(信箱)

簡單解釋一下 基本原理

當Steam Apps登錄後,雙方會自動取得共享金鑰並儲存下來

雙方利用此共享金鑰加上時間(可能用30-60秒間隔)來做計算

用戶→金鑰+時間→計算當前的驗證碼→Steam伺服器端

伺服器端的驗證方式我不確定,不過基本上就下面二種

1.Steam 伺服器端→收到驗證碼→驗證碼+時間→反推金鑰→驗證金鑰是否正確

2.Steam 伺服器端→收到驗證碼→(共享金鑰+時間)算出驗證碼→比對驗證碼是否正確

我認為第二種可能性比較高

時差部份沒問題,只要計算時用雙方統一使用UTC+0的時區即可同步

手機app無網路也沒關係,你已經有共享金鑰+時間,只要注意時間是否有校正至標準時間



當你手機時間有誤差太大時,所計算出來的驗證碼就會跟Steam端的驗證碼不符合

即使你手上的金鑰是正確的,也會因為時間的關係產生出錯誤的驗證碼


另外提醒一下有用APP驗證的版友們,備用代碼≠救援代碼

備用代碼是你臨時忘了帶手機,要登入STEAM時用的一次性代碼用完就會註銷

而救援代碼是你手機遺失時,要移除掉App驗證時用的

救援代碼取得方式

Steam Mobile的Steam Guard裡取得並保存好

┌────────────┐
│≡ Steam Guard │
├────────────┤
│ S T E A M │
│□□███████□□ │
│ Steam Account │
├────────────┤
╞════════════╡
│設定 │
│Steam 行動驗證器 │
├────────────┤
My Recovery Code
├────────────┤
│幫助 │
├────────────┤
│ │
│ │
│ │
│ │
│ │
│ │
└────────────┘

救援代碼的格式為R+上五個數字

例:R12345

如果手機掉了,還能用救援代碼去取消手機App驗證


備用代碼取得方式

請使用Steam用戶端或是網頁進入下面取得
https://store.steampowered.com/twofactor/manage

--
玩家與遊戲平台的愛恨情仇
Steam :75%off Gabe你讓我好痛苦. GFWL :快死吧!!快死吧!!
Origin:我不要你!!你走!!你走呀!! UPlay:要玩弄我到什麼時候..?
Desura:你是誰?我認識你嗎? DRM-Free:好久不見~近來可好?

--

All Comments

Elma avatarElma2015-12-06
推~~~ 有趣~
Faithe avatarFaithe2015-12-07
hash function 通常是單向的
Aaliyah avatarAaliyah2015-12-07
之前刷手機忘記備份 二十幾個驗證器直接失效lol
最後只好一家一家慢慢打電話請求解除lol
David avatarDavid2015-12-08
所以我後來用第三方的驗證程式,可以直接備份不用怕重灌
比較討厭這種一定要綁自己的驗證器
Freda avatarFreda2015-12-08
刷機不管第幾方都全洗掉呀 如果你是說自動備份到網路帳號
那種 那乾脆不要用驗證器 跟沒用一樣lol
Frederica avatarFrederica2015-12-13
用1password可以僅記錄在本地 也可以用dropbox同步 看需求
Una avatarUna2015-12-17
沒有一定的方式好拉 雲端方便但是有可能被破 本地不小心洗
掉就哭哭
Lucy avatarLucy2015-12-18
BZ很早就在用這東西了
Adele avatarAdele2015-12-21
MS 早就有自己的三方驗證了 但是STEAM不能用
Kelly avatarKelly2015-12-23
Anonymous avatarAnonymous2015-12-23
救援其實在有備份碼後就不用了 等進Steam把驗證換回
來即可
Daniel avatarDaniel2015-12-28
我暈@.@