同僚が言う。「Claude の枠が補充された直後に空になった。自分は窓を開いていない」。パスワードマネージャのその一行は先月替えた。スマホの認証コードも鳴っていない。二日後、受信箱に Anthropic の通知が来る。異常な利用を検知し、強制ログアウトし、保存していた支払い方法を外した、と書いてある。文面の要点は、Claude が破られたのではない、ということだ。そのパソコン上のインフォスティーラーが、ログイン済みセッションをまとめてコピーした。

前回は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 と呼ぶ。期限切れでないトークンを別のブラウザへ入れれば、攻撃者はすでにログインが終わった状態にいる。ユーザー名、パスワード、二段階認証の挑戦は、もう出ない。

「パスワードを当てられた」とは別の道だ。パスキーやハードウェアキーは、ログイン画面を高くする。Okta も書く。ユーザー名とパスワードの乗っ取りは難しくなる。だが盗まれたセッショントークンや APIキーは止めない。設定ページでパスワードを変えても、次にログイン画面を通る人に効くことが多い。すでに出したセッションは、期限切れか、サーバ側の失効か、「ログイン中の端末」からの切断を待つ。パスワードだけ変えて一覧を開かないのは、玄関の鍵を替えて、まだ効く入館証を机に置いたままにすることだ。

クリップボードの回は、コピーのあとに残る経路を書いた。パスワードは生成欄を出て、システムのクリップボードへ入る。経路はパスワードをコピーしたあと、クリップボードはまだ誰が読めるかにある。セッショントークンが出るのはログイン画面で、入るのはブラウザのプロファイルとメモリだ。どちらもこの端末に残る。「コピーを押した」「ログインが通った」では終わらない。シークレットウィンドウを閉じても、ブックマークとダウンロードに完全なワンタイムURLが残ることがある。経路はシークレットウィンドウを閉じたあと、ダウンロード、ブックマーク、クリップボードにパスワードが残る。セッションは、日常使っているプロファイルのほうに多い。窓を閉じても失効しない。

Okta:7GBのログに残っていたトークン

Okta が読んだのは、2026年8月2日に Telegram のチャンネルへ出た無料ログだ。容量は約 7GB。感染した端末は 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 は同じシングルサインオンの門を使う。表の数字は、その門が出した主トークンであり、「この製品が人気」の順位ではない。

JWT は別の山だ。データセットには一意の JWT が 44,791 個あり、うち 555 個を Okta は AI サービスの認証に使われそうだと印した。別に、認証関連の JWE が 2,937 個。多くは OpenAI の NextAuth.js が発行している。復号鍵が無ければ本文は読めない。期限切れでなければ、そのまま再生できる。JWT と JWE を足すと、公開当日まだ有効なのは 1,843 個。Okta はさらに書く。JWT 本文の 17.7% に、氏名、電話、メールといった平文の個人情報が入っていた。トークンが切れても、この身元の文字列は消えない。フィッシングにはまだ使える。

寿命の短いアクセストークンは、数分から一時間が多い。HttpOnly のリフレッシュトークンで延命し、ページのスクリプトが長いほうを読めないようにする。Okta は明記する。マルウェアはこの約束に縛られない。単一ページのアプリが JWT を LocalStorage や SessionStorage へ置くと、同じコピー作業が拾う。このログに盗まれた Okta セッションは無かった、と彼らは書く。IP や端末が変わったあとにセッションを再評価する、という企業側の見方は書いた。個人アカウントにその門は無い。自分のアクティブセッションで行を切るしかない。

Anthropic:古いセッションを切っても、端末はきれいにならない

2026年8月末、Anthropic は一部の Claude 利用者へメールを送り始めた。BleepingComputer、SecurityWeek、Help Net Security、Malwarebytes は同じ通知を引いている。日本では @IT も「パスワードも 2FA も盗まない。狙われたのはログイン済みセッションだ」と整理した。会社側の文はこうだ。よくあるインフォスティーラーで、他人のパソコンから Claude のログインセッションを盗み、そのセッションでアカウントへ入り、利用枠を使った。枠が補充された直後に、自分では使っていないのに空になるなら、この経路が多い。マルウェアが Claude と関係する、Claude 経由で入る、Claude の中で何をしたかと関係する、と考える理由は無い、とも書いた。Help Net Security はもう一文を引く。スマホとタブレットは、この波に巻き込まれていないように見える。

SecurityWeek が列挙した家族は、Windows の Vidar、Lumma、StealC、RedLine、Acreed、少数の Mac の Atomic Stealer(AMOS)だ。汎用の窃取だ。非公式のダウンロードや悪意のあるアプリに付いて入り、ブラウザに保存したパスワード、ログイン Cookie、ほかの端末内資格情報をまとめてコピーする。Claude のセッションは収穫の一つだ。あとから、その一つだけを取り出して使う人が出た。

会社側の動きは、影響を受けたセッションの強制ログアウト、保存していた支払い方法の削除、不正と認めた請求の返金だ。通知でいちばん大事な一文はこれだ。Claude からログアウトすれば、すでに盗まれたセッションは止められる。マルウェアは消えない。端末は残る。次のログインは新しいセッションを残し、同じ方法でまた持っていかれる。彼らの順番は、先に端末を処理し、紐づいたメールのパスワードを変え、二段階認証を開き、最後に支払い方法を戻す。ログアウトは入館証を無効にする。パソコンの消毒ではない。

自分で切る場所は、公式ヘルプが日本語で書いている。Claude は設定のアクティブセッションで、見知らぬ行の三点メニューから「終了」を選ぶ。終わった端末は、もう一度ログインしないと入れない。ChatGPT は設定 → セキュリティのアクティブセッションで、行を切るか「すべてのセッションからログアウト」を使う。公式は、全端末への反映に最大 30 分かかることがある、と書く。SSO 必須の組織アカウントでは、この画面自体が出ないこともある。画面に無いなら、その組織の門を先に聞く。

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 や同期ドライブへ入る平文ファイルへ書かない。経路はファイルをクラウドに入れる前、平文は誰が読めるか、パスフレーズはどの経路で送るか。設定へ完全なワンタイムURLを書くのも、資格情報だ。# の後ろは HTTP のリクエスト行には入らない。ディスク上のファイルとオブジェクトストレージには、文字列全体が残る。経路は同僚にパスワードを一度だけ渡すとき、なぜ復号鍵を URL の # の後ろに置くのか。

ブラウザ側もブレーキを足している。Okta は、Google が 2024 年に出した App-Bound Encryption と、セッションを端末へ暗号学的に縛る Device-Bound Session Credentials に触れた。ABE はすぐに回避が出た。DBSC はまだ早い。サイトがサーバ側で受け、Chrome 145 の Windows 版は 2026年3月から対応できる、と彼らは書く。使っているサイトが DBSC を話すまでは、個人が確かめられるのはまだ二つだ。アクティブセッションに自分ではない端末があるか。鍵がまだ平文ファイルに寝ているか。

対照表:パスワード、認証コード、セッションが止めるもの

同じ捨てられるテスト用アカウントと、自分で制御できるブラウザプロファイルで、「パスワードだけ変える」「すべてのセッションを切る」「ウェブのセッションだけ切り、鍵ファイルは触らない」を別々に走らせる。まだ開ける画面は同じではない。下の表は、自分で押せる扉から書く。宣伝名からは書かない。

自分がしたこと 次のログイン画面 相手に残りやすいもの
パスワードだけ変え、「すべての端末からログアウト」は押さない 古いパスワードは無効 期限切れでない Cookie / JWT で、相手はログイン済みのままになり得る
二段階認証やパスキーを開いた。セッションは端末のプログラムがコピー済み ログイン画面は第二要素を求める セッションを再生するとき、ログイン画面と認証コードは普通出ない
サーバ側の強制ログアウト(Anthropic の通知のあとなど) もう一度ログインが要る 古いセッションは止まる。端末を掃除していなければ、新しいセッションはまたコピーされ得る
ウェブのセッションは全部切った。.env の APIキーは替えていない ウェブは再ログインが要る 鍵を持つ人は、API の呼び出しどおり枠を減らせる
設定にはワンタイムの番号だけ書き、鍵は電話へ ログインとは無関係 ログとファイルには完全な資格情報が出ない。半分ずつ揃わないと復号できない

五行目と前の四行は混ぜない。完全な s.html?id=…#… をリポジトリやチャットへ書けば、端末のファイルとインフォスティーラーのログには、まだ一枚の資格情報が残る。預かる暗号文のサーバは鍵を見ない、というだけの差だ。番号と鍵を分ければ、全文検索では開ける完全なリンクは出てこない。完全なリンクは、パスワードそのものとして扱う。

その場で確かめる

次の手順は、どのブランドの約束にも依存しない。最初から最後まで、実在の仕事用アカウントへログインしないテスト用アカウントとテスト用の文字列を使う。例は orange-lake-7。いま使っているマスターパスワード、本番の APIキー、実在のワンタイムURLでは練習しない。

  1. 捨てられるメールで、捨てられる AI または Google アカウントを作り、いつものブラウザでログインしたままにする。そのサービスの「ログイン中の端末 / アクティブセッション / セキュリティ」を開き、いまの一行を控える。別のブラウザ、またはシークレットウィンドウで同じアカウントへ入り、最初の窓で一覧を更新する。二行見えるはずだ。使っていないほうを切る。二番目の窓を更新すると、ログイン画面へ戻るはずだ。確かめるのは「一覧が本当に入館証を無効にするか」であり、マルウェアではない。
  2. 最初の窓はログインしたまま、パスワードだけ変える。「すべての端末からログアウト」は押さない。二番目の窓を見る。すぐ全部切る製品も、古いパスワードだけ無効にして開いているセッションは生かす製品もある。結果を控える。この観察で全製品を推測しない。いま更新したその一ページを基準にする。
  3. Google アカウントで Gemini や Workspace の門を通しているなら、Google アカウントの端末のアクティビティを開き、自分ではない場所やブラウザが無いか見る。Okta の表で数が大きい二欄は Google と Microsoft だ。一層の 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にワンタイムリンクを貼ると、プレビューで先に消費されるか。

32 KB を超える鍵の束や書き出し表は、ワンタイムへ無理に入れない。ファイル暗号へ。ブラウザで AES-256-GCM のストリーム暗号化、単一ファイルは 5 GB 以下、出力は .lock / .enc。パスフレーズは別経路。端末で先に暗号化してから同期すれば、先方が見るのは暗号文だけだ。暗号化していない .env を同期ドライブへ押し、ブラウザ拡張に読ませるのは、セッション Cookie を端末のプログラムへ残すのと同じ種類の問題だ。「本人である」という一枚が、自分が思っていた窓を出ている。

「パスワードだけ変えて、二行目のセッションが切れるか」と「一覧で切ったあと、もう一つの窓がログイン画面へ戻るか」の二回を終えれば、見出しの問いに答えられる。パスワードを替え、認証コードも開いた。ブラウザに残った期限切れでない AI のログインセッションと、平文の APIキーは、まだ他人を中へ入れることがある。Anthropic が切るのは古い入館証だ。Okta が数えたのは、公開日にまだ生きていた一群のトークンだ。アクティブセッションは照合の入口には向く。「パスワードを変えたから終わり」の仮定には向かない。

よくある質問

パスワードを変えた。相手ももう入れないか。

ログイン画面へは入れない。すでに出したセッションがすぐ切れる、とは限らない。基準は「ログイン中の端末」で更新した一覧だ。Okta は、期限切れでないトークンの再生を、パスワードと二段階認証の迂回として書いた。先にセッションを切り、それからパスワードを替える。二段ともやる。覚えやすい一段だけでは足りない。

二段階認証やパスキーは、ワンタイムの代わりになるか。

ならない。二段階認証とパスキーが守るのはログイン画面だ。セッショントークンが証明するのは「すでにログインが終わった」ことだ。Anthropic の通知も、問題をパスワード当てではなく、セッションの窃取として書いた。「サーバが暗号文以外を見たか」を確かめるなら、ワンタイムと Network を使う。「認証コードを開いた」では代用しない。

完全なワンタイムURLを .env へ書くのは、APIキー原文より何がよいか。

サーバのログと、HTML だけ取るプレビューは、普通 # の後ろの鍵を見ない。端末のファイル、エディタの履歴、インフォスティーラーのログには、URL 全体が残り得る。取り出した人は、焼却前に開ける。より安定したのは、ファイルには番号だけ、鍵は別の通路。鍵そのものは、失効でき、利用上限を付けられる状態にしておく。

作成と閲覧に登録は要るか。送り先を間違えたら、サポートは取り戻せるか。

登録は要らない。作成も閲覧も、来訪者に公開だ。暗号文が回数または期限で焼却されたあと、サーバ側の平文バックアップは無く、取り戻せる窓口メールも無い。通路を間違えたら、パスワードを作り直し、新しいリンクを作る。同じ URL を何度も更新して戻るのを待たない。