同事說「Claude 額度剛刷新又空了,我沒開過視窗」。密碼管理員裡那一條還是上個月換的,手機驗證碼也沒彈。過了兩天,信箱裡出現 Anthropic 的通知:他們偵測到異常用量,已經強制登出,並撤掉已儲存的付款方式。信裡寫,問題不在 Claude 被攻破,而在這台電腦上的 infostealer 把登入工作階段一併拷走了。

上一篇寫過把密碼貼進 ChatGPT 或 Gemini 之前,哪些字必須先打碼:那是「你主動把明文貼進對話框之後,訓練開關和分享連結還能不能再讀到」。本文換問題:你已經登入之後,瀏覽器裡那份證明「我是本人」的工作階段,還會留在哪些你能打開、也能被本機程式讀走的地方。金鑰如果改走閱後即焚,形態仍是 s.html?id=…#…,建立與閱讀都不用註冊。MyPassGen 的工具開啟即用。下面不講某種木馬怎麼傳播,只對照 Okta 與 Anthropic 已經寫進公開說明的數字,以及你能在「您的裝置」和工作階段清單裡看見的東西。

先分清兩件事

「我換過密碼、開了兩步驟驗證」擋住的是下一次登入畫面。已經發到瀏覽器裡的工作階段 cookie、JWT,以及寫在設定檔裡的 API 金鑰,並不自動跟著作廢。先撤銷工作階段、輪換金鑰,再決定要不要繼續用這台機器登入。不要用改密碼代替「登出所有裝置」。

改完密碼,為什麼帳戶還能被打開

網站不會在你點開每一頁時都再問一次密碼。登入成功後,瀏覽器會留下一份工作階段:可能是 cookie,可能是 JWT,單頁應用程式還可能把權杖放進 localStorage 或 sessionStorage。之後每一次請求,伺服器認的是這份還沒過期的證明,不是你此刻能不能背出密碼。Okta Threat Intelligence 在 2026 年 9 月 9 日的 Signing in without actually signing in 裡把這種證明叫 skeleton key:把還有效的權杖再放進另一個瀏覽器,攻擊者等於已經登入完成,使用者名稱、密碼和 MFA 挑戰都不會再出現。

這和「密碼被猜中」不是同一條路。密碼金鑰、硬體金鑰把登入畫面抬高了,Okta 也寫:它們讓使用者名稱加密碼的接管更難,但擋不住被偷走的工作階段權杖或 API 金鑰。Google 繁體說明把「工作階段」寫成:你在瀏覽器、應用程式或服務裡登入帳戶的一段時間;一部裝置有多個工作階段是正常情況,不認識的那一條可以單獨登出,見查看具有帳戶存取權的裝置。你在設定頁改掉密碼,通常只影響下一次走登入畫面的人;已經發出去的工作階段,要等過期、被伺服器端撤銷,或你在「您的裝置」裡把它們踢掉。只改密碼、不看工作階段清單,等於換了大門鑰匙,卻把還有效的門卡留在桌上。

上一篇寫剪貼簿時,密碼離開的是產生頁,進了系統剪貼簿,見複製密碼之後,剪貼簿還會被誰讀走。工作階段權杖離開的是登入頁,進了瀏覽器設定和記憶體。兩份殘留都在本機,都不等於「我已經點過複製 / 我已經登入成功,事情就結束了」。無痕視窗關掉之後,書籤和下載仍可能留下完整焚鏈,見關掉無痕視窗之後,下載、書籤和剪貼簿裡的密碼還在;工作階段則更常見於你日常用的那個設定檔,關窗不等於作廢。

Okta:一份 7 GB 紀錄裡還活著的權杖

Okta 分析的是 2026 年 8 月 2 日某個 Telegram 頻道放出的免費紀錄,體積約 7 GB,對應 5,871 台被感染的機器,分布在 162 個國家。他們只統計和驗證有關的材料,並單獨數「到發布當天仍未過期」的那一批——理論上這是會被優先拿去重放的。

按 Netscape cookie 格式數出的驗證權杖,Google(含 Workspace 與消費帳戶)有 9,829 個唯一值,其中 9,213 個在發布日仍有效,出現在 4,144 台機器上。Microsoft(含 Entra 與消費帳戶)是 2,491 / 1,763 / 1,753。Anthropic 是 561 / 164 / 404。Cursor 是 32 / 16 / 26。同一張表裡還有 Amazon、Gamma、Notion、Character.ai、Poe.com、Pika AI。Google、Microsoft、Amazon 用同一套單一登入門面,表裡的數字是這道門發出來的主權杖,不是「這個產品更流行」的排名。台灣公司常用 Google Workspace 或 Microsoft 365 當這道門,後面掛 Gemini、Gmail、Claude 網頁版或 Cursor,被偷走的往往是門面上那一枚,不是各個產品各自再問一次密碼。

JWT 是另一疊。資料集裡有 44,791 個唯一 JWT,其中 555 個被他們標成很可能用於 AI 服務驗證。另有 2,937 個驗證相關的 JWE,多數由 OpenAI 的 NextAuth.js 簽發;沒有解密金鑰就讀不出正文,但未過期時仍可能被原樣重放。把 JWT 和 JWE 加在一起,發布當天仍未過期的是 1,843 個。Okta 還寫:17.7% 的 JWT 正文裡帶有姓名、電話或信箱這類明文個人資料。權杖過期之後,這段身分資訊不會跟著消失,仍可用於釣魚。

短壽命的存取權杖常常只有幾分鐘到一小時,由帶 HttpOnly 的重新整理權杖續命,用來防網頁指令碼直接讀。Okta 寫明:木馬不受這條約束。單頁應用程式把 JWT 放進 LocalStorage 或 SessionStorage 時,同樣會被收走。他們在這份紀錄裡沒有看到被盜的 Okta 工作階段,但把「改 IP、換裝置」之後的工作階段再評估寫成企業端的偵測思路。個人帳戶沒有這套閘,就只剩你自己去「您的裝置」裡點登出。

Anthropic:登出舊工作階段,清不掉本機木馬

2026 年 8 月底,Anthropic 開始給部分 Claude 使用者發信。BleepingComputer、SecurityWeek、Help Net Security 和 Malwarebytes 都引過同一封通知。公司寫:有人用常見 infostealer 從別人的電腦偷走 Claude 登入工作階段,再拿這些工作階段進帳戶、把額度用掉;若你看見額度像剛補滿又在自己沒使用時被抽空,多半就是這條路。他們強調,沒有理由認為木馬和 Claude 有關、經 Claude 安裝,或和你在 Claude 裡做的事有關。Help Net Security 還引了一句:手機和平板看起來沒有捲進這一波。

SecurityWeek 列出他們點名的家族:Windows 上的 Vidar、Lumma、StealC、RedLine、Acreed,以及少數 Mac 上的 Atomic Stealer(AMOS)。都是通用竊取器,通常跟著非官方下載或惡意應用程式進來,順手拷瀏覽器裡儲存的密碼、登入 cookie 和其他本機憑證。Claude 工作階段只是收成裡的一項,後來才有人專門把這項揀出來用。台灣開發者常用的 Cursor,在 Okta 那張表裡數量少得多,但仍出現「發布日還有效」的那一欄——不要用「我又沒在用 Claude」跳過核對。

公司側的動作是:強制登出受影響的工作階段,撤掉已儲存的付款方式,並把認定的未經授權扣款退回。通知裡最要緊的一句是:把你從 Claude 登出,能停掉已經被偷走的那些工作階段,但不能清掉木馬。機器還在,下一次登入會再留下一份新的工作階段,仍可能被同樣的方式拿走。他們建議先處理本機,再改綁定信箱的密碼、打開兩步驟驗證,最後才把付款方式加回去。登出是撤門卡,不是給這台電腦消毒。

API 金鑰、LocalStorage 和明文設定是另一層

工作階段 cookie 管的是網頁登入。API 金鑰管的是程式代你呼叫模型。Okta 用 TruffleHog 在同一份紀錄裡找到 24 個發布時仍有效的金鑰,分屬 Google Gemini、OpenAI、Groq 和 OpenRouter。他們舉過三筆被盜金鑰造成的帳單:一家機構接近 100 萬美元,一名軟體架構師 2.5 萬美元,一家做 AI 測試的組織 60 萬美元額度。金鑰寫在設定檔或環境變數裡,是最快能跑起來的做法;被本機程式讀走時,也是最快能換成別人額度的做法。OpenAI、Anthropic 等允許給金鑰加用量上限和 IP 允許清單。沒加這些閘,被拿走就按「已經可以代你扣款」處理。

更穩的做法是 OAuth 2.0:程式只拿到短壽命的存取權杖,重新整理權杖放進系統鑰匙圈或密碼管理員,並盡量縮小權限。Okta 把「不要把明文 API 金鑰寫進設定或環境變數」寫成和密碼同級的要求。金鑰如果還要交給同事,不要寫進會進 Git、會進雲端硬碟同步的明文檔,見把檔案丟進雲端硬碟前,誰拿得到明文、密碼該走哪條路。完整焚鏈寫進設定,同樣是一份憑證:# 後面那一段不進 HTTP 請求列,但本機檔案和物件儲存裡仍是整段字,見一次性把密碼傳給同事時,為什麼要把金鑰放在網址的 # 後面。

瀏覽器自己也在補。Okta 提到 Google 2024 年的 App-Bound Encryption,以及把工作階段密碼學綁定到裝置上的 Device-Bound Session Credentials;他們寫,ABE 很快出現了繞過,DBSC 則還早——網站要在伺服器端接上,Chrome 145 的 Windows 版從 2026 年 3 月起能支援。在網站還沒接 DBSC 之前,個人能核對的仍是:工作階段清單裡有沒有不是你的裝置,金鑰是不是還躺在明文檔裡。

對照表:密碼、驗證碼和工作階段各擋什麼

用同一條測試帳號、同一個你能控制的瀏覽器設定,分別走「只改密碼」「撤銷全部工作階段」「只撤網頁工作階段、金鑰檔不動」。你能打開的頁面並不一樣。下面按「你自己能點開的地方」來寫,不按行銷名稱。

你做了什麼 下一次登入畫面 別人常見結果
只改密碼,不開「登出所有裝置」 舊密碼失效 尚未過期的 cookie / JWT 仍可能讓對方保持已登入
開了兩步驟驗證或密碼金鑰,工作階段已被本機程式拷走 登入畫面會要第二因素 重放工作階段時通常不再出現登入畫面和驗證碼
伺服器端強制登出(如 Anthropic 通知後) 要重新登入 舊工作階段停用;本機未清理時,新工作階段仍可能再被拷走
網頁工作階段都撤了,.env 裡的 API 金鑰沒換 網頁要重新登入 持有金鑰的人仍可按介面扣你的額度
設定裡只寫焚鏈編號,金鑰另走電話 與登入無關 紀錄和檔案搜不到完整憑證;對半拼齊才能解密

第五行和前四行不要混。把完整 s.html?id=…#… 寫進版本庫或聊天,本機檔案和 infostealer 紀錄裡仍是一份憑證,只是托管密文的服務看不到金鑰。編號和金鑰拆開,全文搜尋才搜不到能打開的完整連結。完整連結仍要當密碼本身保管。

當場核對

下面這組步驟不依賴任何品牌承諾。全程使用不會登入真實工作帳戶的測試帳號和測試密碼,例如 orange-lake-7。不要拿正在使用的主密碼、正式環境 API 金鑰或真實焚鏈練手。

  1. 用測試信箱註冊或登入一個你能丟棄的 AI 或 Google 帳戶,在常用瀏覽器裡保持登入。若走 Google,打開 google.com/devices,或「安全性與登入」→「您的裝置」→「管理所有裝置」,記下目前這一條。再換一個瀏覽器或無痕視窗用同一帳戶登入,回到第一個視窗重新整理清單:應能看到兩條。在清單裡登出不是你正在用的那一條,第二個視窗重新整理後應被踢回登入畫面。這一步核的是「工作階段清單是不是真能作廢門卡」,不是木馬。
  2. 仍在第一個視窗保持登入,只改密碼,不要點「登出所有裝置」或 Microsoft 的「在所有地方登出」。看第二個視窗:有的產品會立刻全部踢掉,有的只讓舊密碼失效、已打開的工作階段繼續活著。Microsoft 繁體說明寫,「在所有地方登出」可能要 24 小時才在瀏覽器和應用程式裡生效,見如何在任何地方登出您的 Microsoft 帳戶。把結果記下來。不要用這個觀察去猜所有產品;以你剛才重新整理的那一頁為準。
  3. 若你使用 Google 帳戶給 Gemini 或 Workspace 做門:在「您的裝置」核對有沒有不是你的地點或瀏覽器。Google、Microsoft 在 Okta 那張表裡是數量最高的兩欄,因為一層 SSO 權杖能通向後面一串應用程式。登出陌生裝置後,再看 Gemini 或信箱是否要重新登入。
  4. 若你使用 Claude、ChatGPT 或 Cursor:在帳戶設定裡找工作階段、已登入的用戶端或 API 金鑰清單。能撤銷的撤銷,能刪的金鑰刪掉再新建。Anthropic 的通知寫過:只被網站登出,不等於這台電腦乾淨。本機是否有竊取器,要用你自己的系統安全工具看,MyPassGen 不會代你掃描磁碟。
  5. 在本機搜測試用的金鑰字串:專案目錄、.env、編輯器本機歷程、終端機歷程。網頁工作階段清完之後,明文檔仍是另一份。處理方式見檔案加密那一篇,不要把搜到的正式環境金鑰再貼進聊天。
  6. 另建一條 MyPassGen 閱後即焚連結,寫入同一句測試密碼,過期選 24 小時,閱讀次數保持 1。聊天或工單裡只貼井字號前面的 s.html?id=…,金鑰用電話或當面說。開啟即用,無需註冊。接收方只有編號時應看到連結不完整;兩半湊齊才能解密。讀完後覆蓋剪貼簿,不要把帶 # 的地址存進會同步的瀏覽器設定。

公司帳戶再加半步:問清楚有沒有強制 SSO、有沒有工作階段風險偵測、API 金鑰有沒有用量上限和 IP 允許清單。MyPassGen 不會代你判斷某家閘道有沒有另存副本,核對結果以你剛才那幾扇視窗為準。

必須交接金鑰時怎麼拆

一對一、對方能立刻打開時,不要把 API 金鑰寫進會進版本庫、會進雲端硬碟、會長在聊天紀錄裡的明文。在本機產生密碼,再做成閱後即焚。MyPassGen 的密碼產生器隨機模式 6–128 碼,預設 16,低於 8 碼會提示較弱;開啟即用,產生結果不作為業務資料上傳。建立焚鏈時瀏覽器使用 AES-256-GCM 加密,明文上限 32 KB,閱讀次數預設 1、上限 10,過期可選 1 小時、24 小時、7 天,或只按次數、不設 TTL。伺服器只暫存密文。

必須讓版本庫或工單裡留個入口時,把通道拆開。檔案只發負責人和編號,以及「金鑰走電話」這一句。電話、當面或另一個即時訊息帳號只發 # 後面那一截。沒有兩半就解不開。這是用法,不是產品預設拆分;建立頁產生的仍是一條完整連結,方便一對一交接。會產生預覽卡片的頻道,先用測試連結看預覽會不會計數,見把閱後即焚連結貼到 Slack 或微信,預覽會不會先燒掉一次。台灣常用的 LINE 也用同一套核對:預覽卡片先 GET 一次網址,不要假設「我還沒點,連結就還在」。

超過 32 KB 的金鑰包或匯出表,不要硬塞進焚鏈,走檔案加密盒:瀏覽器裡 AES-256-GCM 串流加密,單檔不超過 5 GB,輸出 .lock / .enc,密碼另傳。本機先加密再同步,對面只看到密文。把未加密的 .env 推進雲端硬碟或留給瀏覽器擴充功能去讀,和把工作階段 cookie 留給本機程式是同一類問題:證明「我是本人」的那一份離開了你以為的視窗。

做完「只改密碼會不會踢掉第二條工作階段」和「工作階段清單裡登出之後另一個視窗是不是回到登入畫面」這兩次核對,你就已經能回答本文的問題:密碼換了、驗證碼也開了,瀏覽器裡尚未過期的 AI 登入工作階段和明文 API 金鑰仍可能讓別人進去。Anthropic 登出的是舊門卡;Okta 數到的是發布日還活著的那一批權杖。工作階段清單適合當核對入口,不適合假設「我改過密碼就結束了」。

常見問題

我改完密碼了,對方是不是也進不去了?

進不了登入畫面,不代表已經發出去的工作階段立刻作廢。以你在「您的裝置」或「已登入的裝置」裡重新整理到的清單為準。Okta 把重放尚未過期的權杖寫成繞過密碼和 MFA。先撤銷工作階段,再換密碼;兩步都做,不要只做你記得住的那一步。Microsoft 帳戶若點了「在所有地方登出」,官方寫可能要 24 小時才全部生效,不要在十分鐘內用「我已經點過」代替重新整理。

開了兩步驟驗證或密碼金鑰,能不能當閱後即焚?

不能等同。兩步驟驗證和密碼金鑰擋的是登入畫面。工作階段權杖證明的是「已經登入完成」。Anthropic 的通知也把問題寫成偷工作階段,而不是猜密碼。要核對「伺服器端有沒有密文以外的東西」,用焚鏈加 Network,不要用「我開了驗證碼」代替。

把完整焚鏈寫進 .env,比寫 API 金鑰原文好在哪?

伺服器紀錄和只抓 HTML 的預覽通常看不到 # 後面的金鑰。本機檔案、編輯器歷程和 infostealer 紀錄裡卻仍可能留下整段網址。誰取出誰就能在焚毀前打開。更穩的是檔案只發編號,金鑰走另一條通道;金鑰本身還是要能撤銷、能加用量上限。

建立和閱讀要註冊嗎?刪錯了有沒有客服能找回?

不需要註冊。建立與閱讀都對訪客公開。密文按次數或過期焚毀之後,沒有伺服器端明文備份,也沒有客服信箱可以找回。發錯通道就重新產生密碼、另建一條連結,不要反覆重新整理同一條碰運氣。