データベース用のパスワードを一本作り、Win+Shift+S で撮ってチャットへ貼る。あるいは朝会で「画面全体」を選び、アドレスバーにワンタイムリンクが残ったまま話す。どちらも Network パネルの業務リクエストには出ない。どちらも平文と # の後ろの鍵を、二人目、二台目、あとから再生される録画へ渡せる。前稿はコピーしたあとクリップボードはまだ誰が読めるかを書いた。本稿は経路を替える。秘密がまだ画面にいるとき、スクショと画面共有はそれを誰へ渡すか。

パスワード生成の操作説明でも、ワンタイム作成ページの機能一覧でもない。問いは一つだ。画素になったパスワードと URL 全体が、どのファイル、どの会議、どのアルバムに残るか。MyPassGen の生成結果は見える文字で並び、丸点のマスクではない。ワンタイムを作ると、結果欄に s.html?id=…#… の全体が出る。開いてすぐ使える。登録は要らない。Network はリクエスト行に # の後ろが無いことを示せる。スクショの中が空であることは示せない。

先に仕事を分ける

口頭で読める、またはワンタイムで一人へ渡せるなら、全画面は撮らない。撮るなら結果欄だけを枠に入れ、アドレスバーとタスクバーの通知は外す。会議では今のウインドウか今のタブだけを共有し、ディスプレイ全体は選ばない。以下の手順は、実口座に使わないテスト用の文字列だけで行う。マスターパスワードでは練習しない。

画素の中の秘密:ページとアドレスバー

生成ページのパスワードは type="password" の丸点ではない。結果一覧に書かれている。この矩形を見た人は文字を読める。照合のための表示であり、スクショを止めるための表示ではない。丸点が隠すのは隣席の一目だけだ。画素の複製は「パスワード欄に見えるか」を見ない。

ワンタイムは復号鍵を URL の # の後ろへ置く。形は …/s.html?id={id}#{key} だ。RFC 3986 §3.5 は、フラグメント識別子はユーザーエージェントが解釈するものであり、資源を取りに行くときは送らないと書く。RFC 9110 §10.1.3 はさらに、Referer を作るときフラグメントと userinfo を付けてはならないとする。アクセスログと Referer に鍵が無いことは、画面に鍵が無いことではない。同じ RFC のセキュリティ考慮は率直だ。フラグメントはリクエストに入らない。しかしユーザーエージェント、拡張、応答で動くスクリプトからは見える。

アドレスバーは URI 全体の表示面であり、# を含む。履歴もフラグメント付きの項目を残す。戻るで同じ文字列に戻れる。別稿はなぜ復号鍵を # の後ろに置くのかを書いた。HTTP のリクエスト行へ乗せないためだ。スクショ、画面共有、会議録画は別の層にある。見える画素を写す。HTTP の仕様は読まない。

MyPassGen がワンタイムを作ると、結果欄にリンク全体が書かれる。コピーは navigator.clipboard.writeText を通る。作成も閲覧もログインは要らない。確かめるのは、その文字列がデスクトップの PNG、iPhone の「スクリーンショット」アルバム、会議再生のアドレスバーに出ているかどうかであり、「サーバーは平文を見られない」の一文ではない。

スクリーンショットはどこへ落ちるか

スクショは「チャットの入力欄に出たら終わり」ではない。OS が先にファイルかクリップボードへ書き、そのあとで貼る。ファイルの回収はメッセージより難しい。

Mac:初期値はデスクトップ

Apple サポート(日本)は具体的だ。Shift-Command-3 は画面全体、Shift-Command-4 は範囲指定。初期値では「スクリーンショット[日付][時刻]」という名前の PNG がデスクトップへ落ちる。この Mac の前に座った人は開ける。Time Machine や iCloud の「デスクトップと書類」がオンなら、そこへも乗る。Control を足す、たとえば Control-Shift-Command-3 はデスクトップではなくクリップボードへ書く。その経路は前稿へ回す。

Windows:ピクチャとクリップボードにそれぞれ一枚

Win+PrtScn は画面全体を、今のユーザーの Pictures\Screenshots(ピクチャ\スクリーンショット)へ保存する。Win+Shift+S はまず範囲をクリップボードへ置く。切り取りツールで「スクリーンショットを自動保存する」がオンなら、同じ一枚が Pictures\Screenshots にも残る。クリップボード履歴がオンなら、Win+V は最大 25 件を出し、スクショも一件に数える。ピクチャを OneDrive が預かっていれば、その PNG はアカウントに付いていく。チャット側の一枚だけ消しても、ディスクとクラウドに残ることがある。

iPhone:スクリーンショットアルバム、そして iCloud写真

システムのスクショは「写真」のスクリーンショットアルバムへ入る。iCloud写真がオンなら、撮った写真とビデオはオリジナルのフォーマットのままアップロードされる。スクショも写真だ。同じ Apple Account の別の端末は、しばらくするとアルバムでアドレスバーとパスワードを見られる。手元の一枚を消しても、クラウドと他端末はすぐ消えない。「最近削除した項目」をもう一度空にする必要があることが多い。

ワンタイム URL 全体のスクショをグループへ投げない

リンク全体は資格情報だ。グループの誰でも閲覧ページを開ける。閲覧ページはログインを求めない。最初の成功閲覧で暗号文は破棄される。スクショ自体はチャット履歴に残る。鍵を # の後ろに置くのはサーバーログを止めるためであり、画像を読む人を止めない。一人へ渡すなら、リンクを文字でその人だけへ送る。全画面は撮らない。

画面全体、ウインドウ、タブ

Chrome の Screen Capture API は、共有できる面を三つに分ける。タブ(browser)、ウインドウ(window)、画面全体(monitor)。会議ソフトの選択画面は、だいたいこの三つに対応する。差は「会議ストリームが暗号化されているか」ではない。選んだ画素の矩形がどれだけ広いかだ。

今のタブだけなら、対向が見るのは主にそのページだ。アドレスバーが入るかは、会議クライアントがブラウザの枠を含めるかによる。ページ内容だけを送る実装は多い。ウインドウを共有すれば、タイトルバー、アドレスバー、ブックマークバーも入る。画面全体なら、タスクバー、他のデスクトップ、右下の通知、あとから来る SMS の確認コードまで入る。

Zoom の日本語ヘルプは、デスクトップ共有のときにシステム通知を消音する項目を別に用意している。用意していること自体が、通知は画素に入る、という前提だ。Zoom のアプリ設定には「デスクトップの共有時にシステム通知を消音する(Windowsのみ)」とあり、オフのまま全画面を出せば、受信トレイや認証コードのトーストが会議室へ乗る。Microsoft Teams が発表中に応答不可へ切り替えるのも同じ理由だ。社内の短い朝会でも技術事実は変わらない。画面全体の共有は、パスワード欄を自動で隠さない。

Chrome 119 から、getDisplayMedia は monitorTypeSurfaces: "exclude" を受け付ける。会議ページは「画面全体」の段を出さず、誤選択を減らせる。共有する側の選択画面には、なおその段が出ることがある。習慣で画面全体を選ぶと、生成ページ、アドレスバー、システムの通知が、部屋の全員へ一度に渡る。

録画、アルバム同期、チャット履歴

生の共有が終わっても、画素は残りやすい。クラウド録画、手元の動画、チャットの画像は、30分の会議より長く残る。

会議ソフトのクラウド録画は、共有されたフレームを保存する。散会して再生を送ると、アドレスバーのワンタイム URL も、結果一覧のパスワードも、コマ送りで読める。ホスト側の再生権限が決めるのは「誰がこのファイルを開けるか」だけだ。開いた人が、当時の画素を読めるかは制限しない。手元の収録、Mac の Shift-Command-5、Windows の Xbox Game Bar は、別ファイルとして「ムービー / ビデオ」へ落ちることが多く、同期クライアントが拾うこともある。

スクショをインスタントメッセージへ入れた時点で、相手の履歴、事業者の添付保管、ときには「画像から文字を取り出す」へ入る。自分側を消しても、相手には写しが残る。これは「ページがパスワードを上げたか」とは別の層だ。生成ページは Network で POST に平文が無いことを示せる。自分で出した PNG は、その業務 API を通らない。

もう二つ、抜けやすい部屋がある。会議室のテレビへ AirPlay や HDMI で出した画面は、後列の誰かにとって二台目のカメラだ。クリップボードのリダイレクトがオンのリモートデスクトップなら、スクショファイルは両端に現れうる。どちらも生成ページの Network には出ない。

対照表:見える四つの経路

画面に出したテスト用のパスワード、またはテスト用のワンタイムは、少なくとも四つの「誰が見えるか」に分かれる。アルゴリズム名は変わらない。画素が写された場所が変わる。

経路 誰が見えるか その場でどう見るか
全画面 / ウインドウのスクショ その PNG を開ける人 Mac のデスクトップ、Pictures\Screenshots、スマホのスクリーンショットアルバム
画面共有(画面全体) 会議室の全員。通知も入る 対向がアドレスバーと結果一覧を読めるか
会議録画 / 手元の画面収録 再生ファイルを持てる人 散会後に再生を送り、アドレスバーが入っているか
アルバムとドライブ同期 同じクラウドアカウントの他端末 二台目の「スクリーンショット」または Screenshots フォルダ

生成ページが Web Crypto で乱数を引き、Network にパスワード本文が無いことは、「アップロード」の一本を閉じるだけだ。上表の四本は開いたままになる。パスワードマネージャの自動入力に任せられるなら、他人に見せるために画面へ敷く理由は無い。見せなければならないときは、最小の矩形を枠に入れるか、ワンタイムを文字のリンクで送る。全画面は撮らない。

その場で確かめる

次の手順は、どのブランドの約束にも依らない。実口座に使わないパスワードと、テスト文だけを書いたワンタイムを使う。いま使っているマスターパスワードや、まだ破棄していない本物の秘密では練習しない。

  1. 生成ページを開き、初期値16文字のテスト用パスワードを一本作る。コピーしない。ログインにも使わない。結果一覧を見る。文字は見える。丸点ではない。開発者ツールの Network を開き、「ログを保持」を入れて、生成のあとリクエスト本文にこの文字列が無いことを確かめる。アップロードの見方はブラウザで暗号化したとき、平文が送られていないことをその場で確かめるにある。
  2. システムのスクショで画面全体を一度撮る。デスクトップまたは Pictures\Screenshots でその PNG を開き、テスト用パスワードとアドレスバーが両方入っていることを確認する。次に結果一覧だけを枠に入れ、アドレスバーを外して二枚目を撮る。二枚目にワンタイム URL 全体や無関係なウインドウは出てはいけない。
  3. iPhone、または iCloud写真がオンの端末なら、「写真 → スクリーンショット」に今の一枚があるかを見る。同じ Apple Account の二台目があるなら、同期を待って同じアルバムを開く。
  4. Windows でクリップボード履歴がオンなら、Win+V を押し、スクショが一覧にあるかを見る。ピン留めはしない。「すべてクリア」か、無意味な内容のコピーを続け、一覧からこの画像が見えなくなるまで行う。
  5. 自分だけのテスト会議を開き、先に画面全体を共有する。二台目または同僚から、アドレスバーと結果一覧が入っているかを見る。今のブラウザウインドウ、または今のタブだけに切り替え、通知とタスクバーがまだ画にあるかを比べる。クラウド録画があるなら、散会して10秒再生する。
  6. 遠隔の同僚へ短い秘密を渡すなら、ワンタイムへ移す。平文は 32 KB まで。鍵は # の後ろ。閲覧ページはログイン不要。リンクは文字で送る。アドレスバーが入った全画面は撮らない。作成リクエストにあるべきなのは暗号文であり、テスト文の原文ではない。

MyPassGen のパスワード生成は、この境界で動く。ランダム文字は 6–128、初期値16、8未満は弱いと警告する。結果は見える文字で並ぶ。コピーは writeText を通る。開いてすぐ使える。アカウントもパスワード保管庫も無い。確かめるのはデスクトップの PNG、スクリーンショットアルバム、会議の再生であり、画面の「生成しました」ではない。

撮ったあと、散会したあとの片付け

今日撮らざるを得ない一枚は、この順で片付ける。枠にアドレスバー、タスクバーの通知、別の本物のパスワードが無いことを先に確認してから送る。送ったあと、デスクトップまたは Screenshots の原ファイルをすぐ消し、Win+V を空にし、スマホの「最近削除した項目」を空にする。iCloud写真や OneDrive のピクチャがオンなら、二台目で同期写しが消えたことも確認する。

共有中の会議では、共有を止めてから生成ページやワンタイムの閲覧ページを開く。話しながら見せるなら、今のウインドウだけを共有し、先にブラウザを URL 全体を出さないコンパクトなアドレスバーへ変えるか、ウインドウを結果欄まで小さくする。デモ機と会議室のテレビは、初期値で「後列が写真を撮っている」とみなす。こうした場所で本物のワンタイムを開かない。マスターパスワードを作らない。

「枠を選んで全画面を撮らない」と「散会後に PNG と再生を消す」まで終えると、本稿の問いに答えられる。画面共有とスクショで誰がまだパスワードを見られるかは、選んだ画素の広さ、ファイルの落ち先、録画が残っているかで決まる。生成ページが上げないことは、サーバーログにこの文字列が無いことだけを示す。すでに画像と録画へ書いた一分は、回収しない。

よくある質問

HTTPS なら、スクショの中のパスワードは守られているか。

守られていない。HTTPS が守るのは、ブラウザからサーバーまでの伝送だ。スクショと画面共有が写すのは手元の画素であり、その TLS を通らない。アルバム同期、会議録画、グループへ誤って投げた PNG は、アドレスバーの鍵マークを見ない。

鍵が # の後ろなら、スクショにも写らないか。

写る。# が保証するのは、この部分が HTTP リクエストと Referer に入らないことだけだ。アドレスバー、作成結果欄、ブラウザ履歴は URI 全体を出す。全画面スクショとウインドウ共有は、この部分を画像の中の文字にする。

パスワード生成やワンタイム作成に登録は要るか。スクショはサイトが上げるか。

登録は要らない。生成と作成は、今開いているタブに残るべきだ。システムのスクショは OS がファイルを書くのであり、サイトの POST ではない。Network を開く。撮ったあと、リクエスト本文にそのパスワードが載ってはいけない。自分で PNG をチャットへ入れることが、別の外向きの経路になる。

今のタブだけ共有すれば足りるか。

画面全体より一段安全だ。タスクバーとシステム通知は、たいてい画から外れる。今のページに見えるパスワードと、結果欄のワンタイム URL 全体は、対向からまだ読める。手順を見せるときはテストデータを使う。本物のパスワードは文字の経路か、その場で読む。