Two factor authentication zh TW - IES-Rafael-Alberti/wiki-multi-language-example GitHub Wiki

雙重驗證

不久前,Valve引進了一種叫做「託管」的系統,該系統需要額外的驗證器,才能進行各種與帳號相關的操作。 您可以在​這裡​以及​這裡​閱讀來了解更多相關資訊。 在試圖了解ASF雙重驗證的邏輯之前,首先要了解雙重驗證系統。

如您所知,所有交易都會被託管最多15天。雖然對ASF來說,這並不是個問題,但對於那些想要完全自動化的人來說,仍特別煩人。 幸運的是,ASF擁有解決該問題的辦法,叫做ASF雙重驗證。


ASF 邏輯

不論您是否使用以下所述的ASF雙重驗證,ASF都包含正確的邏輯,且完全了解受標準雙重驗證保護的帳號。 它會在需要時,向您請求所需的詳細資訊(例如在登入期間)。 若您使用ASF雙重驗證,程式能夠跳過這些請求,並自動生成所需的權杖,為您免去麻煩,同時啟用額外功能(如下所述)。


ASF 雙重驗證

ASF雙重驗證是一個內建模組,負責為ASF程序提供雙重驗證功能,例如生成權杖及接受交易確認。 它會複製您現有的驗證器,所以您可以同時使用原有的驗證器與ASF雙重驗證。

您可以執行​2fa指令​來驗證您的Bot帳號是否已啟用ASF雙重驗證。 除非您已將驗證器導入成ASF雙重驗證,否則所有​2fa​指令都沒有作用,也就是說,您的帳號未啟用ASF雙重驗證,因此對於需要此模組的進階功能也無法運作。


匯入

要使用ASF雙重驗證,您應該已經擁有並綁定ASF支援可用的驗證器。 除了您能自行手動提供所需的憑證外,ASF目前還支援幾種不同的官方或非官方雙重驗證來源:Android、iOS、SteamDesktopAuthenticator與WinAuth。 若您還沒有任何驗證器,則需要先選擇一個可用的應用程式,並進行設定。 如果您不知道該選擇哪個,我們建議您使用WinAuth,但只要您依說明操作,上述任何一個都能正常運作。

以下所有指南都需要您已擁有上述工具/應用程式中可使用的驗證器。 若您導入無效資料,ASF雙重驗證會無法正常運作,因此在嘗試導入前,請確認您的身份驗證器運作正常。 這包含測試並驗證下列驗證器功能是否正常運作:

  • 您能生成權杖,且Steam網路接受這些權杖
  • 您能獲得交易確認,且您的行動裝置驗證器能收到它們
  • 您能接受這些交易確認,且Steam網路能夠正確辨識它們為已確認/已拒絕

檢查上述操作是否有效,來保證您的驗證器正常運作──若它們不正常,那麼它們也不會在ASF中運作,您只會浪費時間並給自己帶來額外麻煩。


Android 手機

以下說明適用於​2.X​版本的Steam應用程式,目前還未有從​3.0​及以上版本擷取所需資源的方法。 一旦找到普遍可用的方法,我們將更新本章節。 至今為止,暫時的解決方法是故意安裝舊版的Steam應用程式,註冊雙重驗證,提取所需資訊,最後再將應用程式更新到最新版本──原有的驗證器將繼續運作。

在一般情形下,若要從您的Android手機匯入驗證器,您需要擁有​Root​權限。 不同的設備具有不同的Root方法,所以無法告訴您如何Root您的設備。 可以造訪​XDA​查詢相關指南,及與Root相關的一般資訊。 若您找不到適用於您設備的指南,請在Google中搜尋。

理論上來說,若沒有Root權限,則無法讀取受保護的Steam檔案。 目前唯一正式的不需要Root擷取Steam檔案的方法是,以某種方式來製作未加密的​/data​備份,然後在PC上手動提取所需的檔案,但此種方法高度依賴您的手機製造商,且​不屬於​Android標準,因此我們不會在此討論。 若您幸運擁有這種功能,您可以使用它,但大多數使用者並沒有這樣的機會。

也有無需Root權限的非正式方法,透過安裝或降級您的Steam應用程式到​2.1​(或更早)版本,設定行動驗證器,然後透過​adb backup​建立應用程式快照(與我們所需的​data​檔案一起),來擷取所需的檔案。 但由於這是一個嚴重的安全漏洞,而且擷取檔案的方法完全不受支援,因此我們不會在此詳細說明。Valve在新版本中停用了這個安全漏洞是有原因的,我們只是提到這個方法是種可能。 儘管如此,仍然可以乾淨安裝這個舊版本,綁定新的驗證器,擷取所需檔案,然後升級應用程式,這理論上能夠使用,但需要您自行嘗試。

假設您已成功Root您的手機,接下來您應下載應用程式商店上可用的任何Root檔案總管,例如​這個​(或任何您偏好的)。 您還可以透過ADB(Android Debug Bridge)或其他任何可行的方式存取受保護的檔案。我們使用檔案總管,因為它對使用者來說,絕對是最友好的方式。

打開Root檔案總管後,前往​/data/data​資料夾。 請注意,​/data/data​資料夾受到保護,若您沒有Root權限,將會無法存取。 然後找到​com.valvesoftware.android.steam.community​資料夾,把它複製到您的​/sdcard​中,也就是您的內部儲存空間。 之後,您應該能夠將手機插入至PC上,並像平常一樣從內部儲存空間中複製資料夾。 若您確定已將資料夾複製到正確的位置,但仍無法看到該資料夾,請先嘗試重新啟動手機。

現在,您可以選擇是先將驗證器匯入WinAuth,然後再匯入ASF,或是直接匯入ASF。 第一個選項更加友善,使您在PC上也複製一份驗證器,可以讓您從3個不同的地方(手機、PC與ASF)進行交易確認及生成權杖。 若您想這樣做,只需打開WinAuth,加入新的Steam驗證器,選擇從Android匯入,然後依照說明存取您在上述過程中取得的檔案。 完成後,您可以從WinAuth將此驗證器匯入ASF,這將在下面WinAuth章節有專門的說明。

若您不想或不需要透過WinAuth,那麼只需從受保護的資料夾中複製​files/Steamguard-<SteamID>​檔案,其中​SteamID​是您要加入的帳號的64位元Steam ID(可能有多個。若您只有一個帳號,那麼只有一個檔案)。 您需要將該檔案放在ASF的​config​資料夾中。 完成後,將檔案重新命名成​BotName.maFile​,其中​BotName​是您要加入ASF雙重驗證的Bot名稱。 最後,開啟ASF──它將會偵測到​.maFile​並將其匯入。

[*] INFO: ImportAuthenticator() <1> 正在將 .maFile 轉換成 ASF 格式…
[*] INFO: ImportAuthenticator() <1> 成功匯入行動驗證器!

就是這樣,假設您已匯入具有效密鑰的正確檔案,一切都應該正常運作,您可以使用​2fa​指令來驗證。 若您做錯了,隨時可以刪除​Bot.db​來重新開始。


iOS

對於iOS而言,您可以使用​ios-steamguard-extractor​。 這是能夠做到是因為您可以解密並備份,放到您的PC上,並使用該工具來擷取原本無法獲得的Steam資料(由於iOS的加密機制,至少在沒有越獄的情形下無法做到)。

前往​發布頁面​下載這個程式的最新版本。 擷取資料後,您可以將其放進WinAuth中,然後從WinAuth複製到ASF(但您也可以將生成的.json裡面,從​{​起始到​}​結尾的部分複製到​BotName.maFile​再繼續)。 若您詢問,我會強烈建議先匯入到WinAuth,然後確保生成權杖與接受確認都正常運作,這樣您就能確定到目前為止沒有出問題。 若您的憑證無效,ASF雙重驗證將不會正常運作,所以最好最後再導入至ASF中。

如有任何問題,請造訪​Issues​頁面。

請注意,上面的工具並非官方,您需要自行承擔風險。 若它無法正常運作,我們亦不提供技術支援──我們收到一些跡象表明它匯出無效的雙重驗證憑證──在將資料匯入ASF前,確認一下交易確認在WinAuth等驗證器中是否有效!


SteamDesktopAuthenticator

若您已有執行於SDA中的驗證器,您應該已注意到​maFiles​資料夾中有​steamID.maFile​檔案。 複製該檔案到ASF的​config​資料夾中。 確保​.maFile​是未加密的格式,因為ASF無法解密SDA檔案──未加密的檔案應以​{​字元開頭。

現在您應將ASF的config資料夾中的​steamID.maFile​檔案重新命名成​BotName.maFile​,其中​BotName​是您加入ASF雙重驗證的Bot的名稱。 或者您亦可保持原樣,ASF會在登入後自動偵測到它。 若您協助ASF偵測,就可以在登入前使用ASF雙重驗證,否則只有在ASF登入成功後才能讀取檔案(因為ASF在實際登入前,無法知道您帳號的​steamID​)。

若您做的完全正確,啟動ASF,您應該會看到:

[*] INFO: ImportAuthenticator() <1> 正在將 .maFile 轉換成 ASF 格式…
[*] INFO: ImportAuthenticator() <1> 成功匯入行動驗證器!

從現在開始,您帳號的ASF雙重驗證已經可以使用了。


WinAuth

首先,在ASF的config資料夾中新增一個空的​BotName.maFile​,其中​BotName​是您要加入ASF雙重驗證的Bot的名稱。 記住,檔案名稱應為​BotName.maFile​,而不是​BotName.maFile.txt​,Windows預設會隱藏副檔名。 若您提供錯誤的檔名,ASF將無法偵測到。

現在像平常一樣啟動WinAuth。 右鍵點擊Steam圖示,然後選擇「顯示Steam Guard與恢復代碼」。 然後選擇「允許複製」。 您應該能在視窗底部發現以​{​開頭的JSON結構。 複製整個本文到上一步您所建立的​BotName.maFile​檔案中。

若您做的完全正確,啟動ASF,您應該會看到:

[*] INFO: ImportAuthenticator() <1> 正在將 .maFile 轉換成 ASF 格式…
[*] INFO: ImportAuthenticator() <1> 成功匯入行動驗證器!

從現在開始,您帳號的ASF雙重驗證已經可以使用了。


完成

從此之後,所有​2fa​指令都會像在原本的雙重驗證設備上一樣運作。 您可以使用ASF雙重驗證及其他(Android、iOS、SDA或WinAuth驗證器)來生成權杖及接受交易確認。

若您的手機上有驗證器,您也可以選擇移除SteamDesktopAuthenticator和/或WinAuth,因為我們不再需要它了。 不過,我建議將它們留下以防萬一,而且它們比一般的Steam驗證器更為好用。 請注意,ASF雙重驗證​並不是​一個通用驗證器,您​亦無法​把它當作唯一的驗證器,因為它不包含驗證器所需的所有資料。 無法將ASF雙重驗證轉換回原本的驗證器,因此請永遠確保您在其他地方擁有完整功能的通用驗證器,例如WinAuth/SDA或您的手機。


常見問題

ASF 如何使用雙重驗證模組?

如果ASF雙重驗證可以使用,ASF將用它自動確認由ASF發起/接受的交易提案。 它還能在需要時自動生成雙重驗證權杖,例如在登入的時候。 除此之外,擁有ASF雙重驗證也能讓您使用​2fa​指令。 如果我沒有忘記說,應該就是現在這些了──基本上ASF會依據需要,使用雙重驗證模組。


假如我需要雙重驗證權杖?

您需要雙重驗證權杖才能存取受到雙重驗證保護的帳號,這也包含每個使用ASF雙重驗證的帳號。 您應該在用於匯入的驗證器生成權杖,但您也可以透過聊天向指定Bot傳送​2fa​指令,來生成臨時權杖。 您還可以使用​2fa <BotNames>​指令來為指定的Bot實例生成臨時權杖。 在透過瀏覽器等存取Bot帳號時,這方法應該夠用了,但如上所述──您應該使用更友善的驗證器(Android、iOS、SDA或WinAuth)。


匯入 ASF 雙重驗證後,我可以使用原本的驗證器嗎?

可以,您原有的驗證器依然保有功能,而且能與ASF雙重驗證一起使用。 整個過程的重點是:我們匯入您的驗證器憑證到ASF,使ASF能夠使用它們並代表您接受所選的交易確認。


ASF 行動裝置驗證器儲存在哪裡?

ASF行動驗證器儲存在config資料夾的​BotName.db​檔案中,這個檔案也包含指定帳號的其他關鍵資料。 若您想移除ASF雙重驗證,請閱讀下文。


如何移除 ASF 雙重驗證?

只需要關閉ASF,並刪除想要移除ASF雙重驗證的Bot的​BotName.db​檔案。 這個選項會移除ASF與匯入的雙重驗證的關聯,但不會使您的驗證器解除綁定。 若您打算將您的驗證器解除綁定,除了首先要把它從ASF刪除外,您還需要在原有的設備上(Android、iOS、SDA或WinAuth)解除綁定。若是您因某些原因已無法使用,則應在Steam網站上使用綁定驗證器時收到的恢復代碼。 您不能使用ASF來取消您的驗證器連結,這就是您為什麼要使用通用驗證器。


我將驗證器綁定到 SDA/WinAuth,然後匯入 ASF。 我可以解除綁定,並重新綁定到我的手機上嗎?

不能​。 ASF是為了​匯入​才使用您的驗證器資料。 若您解除綁定驗證器,不論您是否像上文所述將它移除,都會使ASF雙重驗證失效。 若您想在您的手機及ASF上同時使用驗證器(包含SDA/WinAuth),那麼您需要從手機中​匯入​您的驗證器,而不是在SDA/WinAuth中建立新的驗證器。 您只能擁有​一個​綁定的驗證器,這就是為什麼ASF是​匯入​驗證器及其資料來作為ASF雙重驗證──它與原本的驗證器​相同​,只是存在兩個地方。 若您解除綁定您的行動驗證器憑證──不論用何種方法,ASF雙重驗證都會停止運作,因為之前複製的行動驗證器憑證將不再有效。 如上所述,若要同時使用ASF雙重驗證與手機上的驗證器,您必須從Android/iOS匯入它。


使用 ASF 雙重驗證是否比 WinAuth/SDA/其他驗證器更適合接受所有確認?

是的​,有以下幾種原因。 第一個也是最重要的一點:使用ASF 2FA能​顯著​提高安全性,因為ASF 2FA模組會確保ASF只自動接受它自己的交易確認,所以,即使攻擊者發起了有害的交易提案,ASF 2FA也​不會​接受這類交易,因為它不是由ASF生成的。 除了更加安全,使用ASF 2FA還對效能/最佳化有益,因為ASF 2FA在生成交易提案後,會立即擷取並接受交易確認,而不是像SDA或WinAuth一樣,低效地每X分鐘才完成一輪交易確認。 長話短說,若您打算自動確認來自ASF的交易提案,那就沒有理由在ASF 2FA上使用第三方驗證器──這正是ASF 2FA的作用,且您在使用其他驗證器確認交易時,它也不會與其衝突。 我們強烈建議對所有ASF行為使用ASF 2FA──這比任何其他解決方案都更加安全。


進階

若您是進階使用者,您也可以手動生成maFile。 若您想從上述來源以外的其他來源導入驗證器,則可以使用此方法。 它應有的​有效JSON結構​如下:

{
  "shared_secret": "STRING",
  "identity_secret": "STRING"
}

標準的驗證器資料擁有更多欄位──ASF會在匯入過程完全忽略它們,因為它們不是必需的。 您無須刪除它們──只要JSON裡面包含上述2個有效的必填欄位即可,ASF會忽略其他欄位(若存在)。 當然,您需要將上述範例中的​STRING​佔位符取代成您帳號的實際有效值。 每個​STRING​都應是由相應私鑰的Base64編碼形式字元組成。

⚠️ **GitHub.com Fallback** ⚠️