Skip to content

Two factor authentication zh TW

ArchiBot edited this page May 15, 2024 · 61 revisions

雙重驗證

Steam含有被稱為「Escrow」的雙重驗證系統,在執行與帳號相關的行為時,需要確認額外的資料。 您可以閱讀​這裡​以及​這裡​來深入了解相關資訊。 本頁面主要介紹雙重驗證系統,與我們對它的整合方案,即ASF雙重驗證。


ASF 邏輯

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


ASF 雙重驗證

ASF雙重驗證是一個內建模組,負責為ASF程序提供雙重驗證功能,例如生成權杖及接受交易確認。 它有多種運作方式,例如獨立運作,或是複製您現有驗證器內的詳細資訊(使您能夠同時使用原有的驗證器與ASF雙重驗證)。

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


建議事項

有很多方式能讓ASF雙重驗證發揮作用,在這裡,我們依據了您的當前情形來提供一些建議:

  • 若您當前使用的是SteamDesktopAuthenticator、WinAuth或其他任何使您能夠輕易地匯出雙重驗證詳細資料的第三方應用程式,則只需將它們​匯入​至ASF中即可。
  • 若您當前使用的是官方應用程式,且您也不在意重置您的雙重驗證憑證,最好的方式就是停用雙重驗證,然後再透過​聯合驗證器​來​建立​一個新的雙重驗證憑證,這會使您能夠同時使用官方應用程式及ASF雙重驗證。 這個方式不需要Root或艱深的知識來達成,只需依說明操作即可。
  • 若您當前使用的是官方應用程式,但您並不想要重置您的雙重驗證憑證,那麼您的選擇並不多。通常,您會需要Root並執行一些額外操作來​匯入​資訊,甚至也有可能會完全無法使用。
  • 若您當前尚未使用雙重驗證,且您並不在意使用何種程式管理,那麼您可以:使用​獨立驗證器​來管理ASF雙重驗證;第三方應用程式​複製​到ASF中(建議#1);或是結合官方應用程式來使用​​聯合驗證器​(建議#2)。

我們將在下方討論所有可供使用的方式,及已知方法。


建立

在一般情形下,我們強烈建議​複製​您現有的驗證器,因為這就是設計ASF雙重驗證的主要目的。 但是,ASF提供了官方​MobileAuthenticator外掛程式​,進一步擴充ASF雙重驗證的功能,使您可以完全重新開始連結一個新的驗證器。 若您無法或不願意使用其他工具,且不介意將ASF雙重驗證做為主要(也可能是唯一)的驗證器,這可能會對您很有幫助。

有兩種使用情境可以使用​MobileAuthenticator外掛程式​作為雙重驗證驗證器:獨立使用,或是與官方的Steam行動裝置應用程式聯合使用。 在第二種情境中,您將會在ASF及行動裝置上獲得相同的驗證器:兩者皆會產生相同的代碼、兩者都能確認交易提案、Steam社群市集交易等等。

所有情境下的通用步驟

不論您打算使用ASF來作為獨立驗證器,或是想要使用與官方Steam行動裝置應用程式上相同的驗證器,您都需要執行下列初始化步驟:

  1. 為目標帳號建立ASF Bot,啟動,並登入它,您可能已經先完成了。
  2. 或者,在​這裡​將能夠正常使用的手機號碼,綁定至給Bot使用的帳號上。 這將使您能夠在需要時收到簡訊代碼並恢復帳號,但這並非強制措施。
  3. 確保您的帳號現在並未啟用著雙重驗證,如果有,請先停用它。
  4. 執行​2fainit [Bot]​指令,將​[Bot]​取代成您的Bot的名稱。

假設您得到成功的回應,就會發生下列兩件事:

  • ASF會在您的​config​資料夾中生成一個新的​<Bot>.maFile.PENDING​檔案。
  • Steam會向您為上述帳號綁定的手機號碼傳送一封簡訊。 若您未設定電話號碼,那麼將改為傳送電子郵件至您帳號所設定的電子郵件地址中。

驗證器的詳細資料還尚未生效,但如果您願意,您可以查看生成的檔案。 若您希望有個雙重保險,那麼,您可以在此時記下恢復代碼。 接下來的步驟,將取決於您的使用情境。

獨立驗證器

若您想要使用ASF做為您主要的(或甚至是唯一的)驗證器,您現在就必須執行以下結尾步驟:

  1. 執行​2fafinalize [Bot] <ActivationCode>​指令,將​[Bot]​取代成您的Bot的名稱;​<ActivationCode>​取代成您在上個步驟中,經由簡訊或電子郵件所收到的驗證碼。

聯合驗證器

若您想要在ASF及官方的Steam行動裝置應用程式中使用相同的驗證器,那麼您現在需要執行下列步驟:

  1. 忽略您在前一個步驟中所收到的簡訊或電子郵件。
  2. 若您還未安裝Steam行動裝置應用程式,請安裝,然後打開它。 前往Steam Guard頁面,並遵循應用程式的指示,建立一個新的驗證器。
  3. 在您於行動裝置應用程式中建立驗證器,並確認能夠使用後,回到ASF。 您現在需要使用下列兩則指令的其中之一,來告訴ASF已建立完成:
  • 等待Steam行動裝置應用程式顯示一個新的雙重驗證代碼,然後使用​2fafinalized [Bot] <2fa_code_from_app>​指令,並將​[Bot]​取代成您的Bot的名稱;​<2fa_code_from_app>​取代成您現在正於Steam行動裝置應用程式中所看到的代碼。 如果ASF生成的代碼與您所提供的代碼相同,ASF會認為驗證器已被成功加入,並繼續匯入您新建立的驗證器。
  • 我們強烈建議您使用上述方式,來確保您的憑證是有效的。 但是,若您不想(或無法)檢查兩者的代碼是否相同,且您也十分清楚您正在做什麼,您可以改用​2fafinalizedforce [Bot]​指令,並將​[Bot]​取代成您的Bot的名稱。 ASF將會認為驗證器已被成功加入,並繼續匯入您新建立的驗證器。

在完成之後

假設一切運作正常,先前生成的​<Bot>.maFile.PENDING​檔案會被重新命名成​<Bot>.maFile.NEW​。 這代表您的雙重驗證憑證現在是有效且正確的了。 我們建議您建立一份備份檔,並儲存在​安全的地方​。 除此之外,我們建議您在偏好的文字編輯器中打開它,並記下​revocation_code​。顧名思義,這能使您可以在遺失驗證器時把它撤銷。

關於其中的技術細節,生成的​maFile​包含了我們在連結驗證器時從Steam伺服器接收到的所有資料,以及其他驗證器可能需要使用的​device_id​欄位。 該檔案完全相容​SDA​,可用於匯入。

一旦完成上述流程,ASF就會自動匯入您的驗證器。至此​2fa​等其他相關指令,現應已對您將驗證器連結到的Bot生效。


匯入

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

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

  • 您能生成權杖,且Steam網路接受這些權杖
  • 您能生成權杖,且Steam網路接受這些權杖
  • 您能接受這些交易確認,且Steam網路能夠正確辨識它們為已確認/已拒絕

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


Android 手機

在一般情形下,若要從您的Android手機匯入驗證器,您需要擁有​Root​權限。 下列說明需要您擁有對Android修改的大量知識,我們無法在這邊詳細解釋每個步驟,請造訪​XDA​或查詢其他網站,以獲得下列說明的額外資訊及幫助。

請先完成下列步驟:

  • 從應用商店安裝官方的​Steam應用程式​,若您還尚未安裝。
  • 指定驗證器至您的帳號上,並確保可以使用⸺生成有效的權杖,且可以接受驗證。

提取資料(您的裝置需有Root權限):

現在您已成功擷取出所需的詳細資訊了,可以將模組停用以防之後每次執行時都會顯示提示視窗,然後複製您想要使用ASF雙重驗證帳號的​shared_secret​及​identity_secret​的值,並貼到一個擁有下列結構的新的文字檔中:

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

將​STRING​值取代成擷取出的詳細資料中的對應私鑰。 完成後,將檔案重新命名成​BotName.maFile​,且​BotName​是您要使用ASF雙重驗證的Bot的名稱,然後將這份檔案放進ASF的​config​資料夾中(若您還未放入)。 最後,開啟ASF⸺它將會偵測到​.maFile​並將其匯入。

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

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


SteamDesktopAuthenticator

若您已有執行於SDA中的驗證器,您應該已注意到​maFiles​資料夾中有​steamID.maFile​檔案。 確保​maFile​是未加密的格式,因為ASF無法解密SDA檔案⸺未加密的檔案應以​{​字元開頭,並以​}​字元結尾。 如果需要,您可以先在SDA的設定中移除加密,然後在您完成使用後重新啟用。 在檔案變成未加密的形式後,將它複製到ASF的​config資料夾中。

現在您可以將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圖示,然後選擇「Show SteamGuard and Recovery Code」。 然後選擇「Allow copy」。 您應該能在視窗底部發現以​{​開頭的JSON結構。 複製整個本文到上一步您所建立的​BotName.maFile​檔案中。

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

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

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


完成

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

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


常見問題

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

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


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

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


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

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


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

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


如何移除 ASF 雙重驗證?

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


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

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


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

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


進階

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

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

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

Clone this wiki locally