不在 SSO 裡的工作帳號,換成通行密鑰
核心系統都接了 SSO,但網域註冊商、DNS、雲端根帳號、廣告後台這些權限最大的帳號,常常只靠密碼加一組簡訊驗證碼。這篇講為什麼通行密鑰比較能擋釣魚,以及不花錢就能先換掉哪幾個帳號。
- 核心系統接了 SSO,但網域註冊商、DNS、雲端根帳號這些權限最大的帳號常常不在 SSO 裡,只靠密碼加簡訊驗證碼。
- 密碼和一次性驗證碼都能在假網站被騙走並即時轉送;通行密鑰綁定網站網域,假網站拿不到可用的憑證。
- 不用先買工具:列出 SSO 以外的高權限帳號、查它支援什麼驗證方式、能換通行密鑰或實體金鑰的先換,再開網域轉移鎖定。
一封只差一個字母的續約信
假設有一家十五人的網路服務公司。工程主管 M 收到一封很像網域註冊商寄來的信,說公司網域即將到期,請他登入續約。M 點了連結,照平常的習慣輸入帳號、密碼,再輸入手機收到的簡訊驗證碼。幾小時後,官網的 DNS 設定被改了,部分訪客被導到別的網站。回頭看那封信,網址只差一個字母。
先說清楚,這是示意情境,不是真實事件,公司、人物與經過都是為了說明而設。但它的形狀很常見:公司的郵件、文件、內部系統都接了 SSO,有統一的驗證和管理;偏偏網域註冊商、DNS、雲端主機的根帳號、廣告後台、各種 SaaS 的管理員帳號不在 SSO 裡,多半只靠密碼,頂多加一組簡訊驗證碼。
這篇要講的只有一件事:權限最大的帳號,值得換成假網站騙不走的驗證方式。
權限最大的帳號,保護最弱
第一層是驗證方式本身。密碼和一次性驗證碼都是「使用者看得到、打得出來」的東西,使用者在假網站輸入的,攻擊者可以即時轉送到真網站。簡訊驗證碼擋得住只偷到密碼的人,擋不住一個正在線上等你輸入的人。
第二層是帳號的位置。根帳號、網域、DNS 常常不在 SSO 裡,所以 SSO 上設好的條件式存取、裝置檢查、統一稽核,全都管不到它們。
第三層是共用。這類帳號經常多人共用,為了大家都能登入,驗證方式就被簡化,常見的結果是一組密碼加一支「公司手機」的簡訊。
最後是擴散速度。DNS 一被改,影響的不是一個員工,而是所有連到官網、收發公司郵件的客戶。
這篇示意情境裡,被騙走的是什麼
這是示意情境,沒有實際外洩;下表列的是這類釣魚裡最常被拿走的東西,讓你知道「輸入一次」交出去的是哪些。
| 服務 | 憑證類型 | 用途 | 存在形式 | 放在哪 | 權限範圍 | 狀態 |
|---|---|---|---|---|---|---|
| 網域註冊商管理後台 | 帳號密碼 | 登入註冊商,管理網域續約、DNS、聯絡人與轉移設定 | 使用者在釣魚網站手動輸入的明文字串 | 攻擊者架設的假註冊商網站 | 整個網域與 DNS 設定 | 示意情境;在改密碼前持續有效 |
| 同一個註冊商帳號的第二道驗證 | 簡訊一次性驗證碼(以及登入後的工作階段) | 通過兩步驟驗證 | 六位數字,使用者在假網站輸入後被即時轉送 | 同一個釣魚網站 | 驗證碼本身短時間失效,但換到的登入工作階段可以繼續操作後台 | 示意情境;工作階段何時失效依註冊商設定 |
兩列加起來說明一件事:只要驗證方式是「人看得到、打得出來」的,就能被轉送。
能證明的、只能推論的
這篇是觀點文,情境是示意的,所以能證明的只有官方文件寫明的事;情境裡的經過只能算推論,不知道的就寫成缺口。
不花錢就能做的流程
到這裡,其實已經足夠理解問題在哪。如果你想直接動手,可以跳到「今天就可以來試試」;下面是完整的五步流程。
第一步,列出「SSO 以外、權限最大」的帳號。 網域註冊商、DNS、雲端根帳號、金流、廣告後台、程式碼平台的組織擁有者。這張清單通常不長,但每一列都很重;取名「側門清單 K-k4w」,之後每半年翻一次。
第二步,逐一查它支援什麼驗證方式。 支援通行密鑰或實體安全金鑰的,優先改用;只支援驗證器 App 的,至少從簡訊改成 App。
第三步,理解為什麼通行密鑰比較能防釣魚。 通行密鑰以公私鑰運作,並綁定網站網域;你在只差一個字母的假網站上,根本拿不出對應真網站的憑證,也就沒有東西可以被轉送。這也是 NIST 把抗釣魚列為 AAL3 必要條件的原因。
第四步,每個關鍵帳號至少兩個驗證器。 例如兩把實體金鑰,或通行密鑰加一組妥善保管的備援碼,避免一個人換手機就被鎖在門外。
第五步,網域加註冊商鎖定。 向註冊商確認是否提供轉移鎖定,並開啟。
什麼時候不需要買工具
很多作業系統和瀏覽器已經內建通行密鑰的儲存和同步,個人使用的帳號不一定要另外買工具。需要「多人共用同一個帳號的通行密鑰」或集中管理時,才需要密碼管理器這類工具。
市面上大致分三類。作業系統和瀏覽器內建:主流平台都有內建的通行密鑰管理,適合個人帳號。實體安全金鑰:私鑰不能匯出,適合根帳號這類最高風險的帳號。密碼管理器:例如 1Password,官網的通行密鑰頁說可以跨 Mac、iOS、Windows、Android 使用,也能透過共享保管庫分享給同事;其他密碼管理器的支援程度,要自行確認。
限制也要一起看:網站本身要支援通行密鑰;共享通行密鑰等於多人持有同一把鑰匙,便利和風險要一起評估;可同步的通行密鑰,安全性取決於同步帳號本身的保護。選的時候問三件事:帳號是個人用還是共用(個人用,作業系統內建即可;共用的話,考慮有權限控管的共享方案)、風險等級多高(根帳號、網域優先用實體金鑰)、員工的裝置組合需不需要跨平台同步。
這篇提到的項目要花多少錢
這篇的方法以人力為主,來源沒有列任何價格,表裡的金額大多是估算或未公開,照實標出來。
| 項目 | 用量 | 單價 | 期間 | US$ | NT$ | 舉證 |
|---|---|---|---|---|---|---|
| 列出 SSO 以外的高權限帳號並查驗證方式 估 | IT 一人 | 估 2–4 小時 | 一次性 | — | — | 本站依五步流程估算 |
| 作業系統與瀏覽器內建的通行密鑰 估 | 個人帳號 | 既有裝置內建 | — | 0.00 | 0 | 來源未列價格;本站依「內建、不一定要另外買工具」推估 |
| 實體安全金鑰(每個關鍵帳號至少兩把) | 根帳號、網域等 | 未列價格 | 一次性 | — | — | 本文來源未列價格 |
| 密碼管理器的共享通行密鑰方案 | 依人數 | 未列價格 | 年約 | — | — | 本文來源未列價格 |
| 攻擊者架設釣魚網站 | 一個仿冒網域加一個頁面 | 未公開 | — | — | — | 示意情境,無攻擊端資料 |
| 合計(僅可證明列) | 0.00 | 0 | ||||
最貴的不是金鑰,是 DNS 被改的那幾個小時裡,所有客戶看到的那個假網站。
你可以學到什麼
站在攻擊者那一側看,SSO 是一道修得很好的大門,SSO 以外的高權限帳號是旁邊幾扇只鎖了喇叭鎖的側門。他不用撬鎖,只要做一張很像的門牌,讓你自己把鑰匙和當下的驗證碼一起交出來。大門越厚,側門越值錢。
- 01權限最大的帳號常常不在 SSO 裡:網域註冊商、DNS、雲端根帳號、金流、廣告後台都要單獨列清單。
- 02密碼和簡訊一次性驗證碼都能在假網站被即時轉送,所以它們擋不住正在線上等你輸入的攻擊者。
- 03通行密鑰以公私鑰運作並綁定網站網域,假網站拿不到可用的憑證;NIST 把抗釣魚列為 AAL3 的必要條件。
- 04可同步的通行密鑰私鑰可以匯出,不能用於 AAL3;最高風險的帳號用私鑰不能匯出的實體安全金鑰。
- 05每個關鍵帳號至少設兩個驗證器,並開啟網域轉移鎖定,換手機或被釣魚時才不會一次失守。
- 01通行密鑰(Passkey)這篇的主角:綁定網站網域的公私鑰憑證,假網站騙不走。
- 02抗釣魚(Phishing-resistant)判斷一種驗證方式夠不夠用的關鍵標準,NIST 把它列為 AAL3 必要條件。
- 03AAL3/AAL2NIST 的驗證保證等級,決定哪種帳號該用哪種驗證器。
- 04NIST SP 800-63B-4本文所有「能證明」的依據,明說密碼不具抗釣魚能力。
- 05實體安全金鑰私鑰不能匯出,是根帳號、網域這類最高風險帳號的首選。
- 06可同步的通行密鑰方便但私鑰可匯出,安全性取決於同步帳號,不能用於 AAL3。
- 07即時轉送(中間人釣魚)解釋為什麼簡訊驗證碼擋不住:攻擊者在你輸入的同時就拿去真網站用。
- 08網域轉移鎖定就算後台被登入,也多一道阻止網域被轉走的關卡。
- 09SSO 以外的高權限帳號盤點的對象:不在 SSO 裡,就不受 SSO 上任何保護。
- 10備援驗證器每個關鍵帳號至少兩個,避免換手機就被鎖在門外。
全部唯讀,不改任何設定;做完你會知道自己有沒有同樣的破口。
- 列出 SSO 以外權限最大的十個帳號:網域註冊商、DNS、雲端根帳號、金流、廣告後台、程式碼平台組織擁有者(不用指令)看到什麼代表什麼:寫得出十個,代表你知道側門在哪;寫不出來的那一格,就是還沒盤點的地方。
- 逐一打開這些帳號的安全性設定頁,記下目前用的驗證方式(唯讀,不要改)看到什麼代表什麼:看到「簡訊」或「只有密碼」的,就是這篇示意情境裡那扇門。
- 同一頁看它支援的選項裡有沒有通行密鑰或安全金鑰(唯讀)看到什麼代表什麼:有支援的,列為第一批更換;只支援驗證器 App 的,列為第二批。
- 網域註冊商後台查看網域的轉移鎖定狀態(唯讀)看到什麼代表什麼:顯示未鎖定,代表後台一旦被登入,網域就多一種被轉走的可能。
- 對每個關鍵帳號數一數設了幾個驗證器(唯讀)看到什麼代表什麼:只有一個的,換手機或遺失時就會被鎖在門外。
揭露:本文未受任何廠商贊助,提及的產品僅為舉例。
來源
每篇新文章一封:三點摘要、關鍵字定義、今天能做的一件事。
延伸閱讀
大家都知道不要重複用密碼,但還是重複用
每次資安教育訓練都講密碼要夠長、不要重複用,台下每個人都點頭,回到座位註冊新網站,輸入的還是那組用了好幾年的密碼。問題不在員工不知道,而在安全的做法比方便的做法麻煩太多。這篇講怎麼讓安全變成最方便的那條路。