T

Text Machine

強力なテキストツールを、ブラウザで

PII除去ツール

問い合わせ、ログ、チャット履歴など何でも貼り付けて、共有する前にその中に潜む個人情報や秘密鍵を取り除きます。処理はすべてブラウザ内で行われるため、テキストが端末の外に出ることはありません。

元のテキスト

検出対象:

このツールはブラウザ上で動く単純なスクリプトです。入力したテキストはこのタブ内だけで処理され、サーバーに送信されることも、どこかに保存・記録されることもありません。タブを閉じれば消えます。

PII除去ツール の使い方

  1. 1

    テキストを貼り付ける

    これから共有する問い合わせ内容、チャットログ、エラーダンプ、表の一行、文書をそのまま貼り付けます。文字数制限はなく、アップロードもされません。

  2. 2

    置き換え方を選ぶ

    黒塗りバーは元の形を保つのでスクリーンショット向きです。[REDACTED]は最も見慣れた文書表記です。[EMAIL]のような種別ラベルは何が削除されたかを読み手に伝え、[EMAIL_1]のような連番プレースホルダは同じ値の繰り返しを結び付けたまま残します。

  3. 3

    検出項目を切り替える

    9種類の検出器はすべて既定でオンです。残して問題ない種類はオフにしてください。たとえばバグ報告でURLは残しつつ、その隣のAPIキーだけを削除できます。

  4. 4

    件数を確認してコピー

    種別ごとに何件削除されたかが表示されます。想定した数と合っているか確認してから、整理されたテキストをコピーしてください。

テキストから個人情報と秘密鍵を取り除くということ

確認される前に共有されてしまう理由

個人情報の漏えいはほとんどの場合、悪意のない、ごく普通の貼り付けから始まります。サポート担当者が対応を相談するために顧客のメッセージをグループチャットにコピーする。開発者がスタックトレースをイシュートラッカーに貼る。誰かが表の一行をチャット欄に、ログの断片をAIアシスタントに貼り付けて「このエラーは何ですか」と尋ねる。どの場合も、住所やカード番号やアクセスキーといった機密の部分はメッセージの目的ではありませんでした。ただ一緒に付いてきただけです。

解決策はもっと注意することではなく、2秒で終わる一手順です。このツールはその一手順であるために存在します。貼り付け、何件見つかったかを一目確認し、整理された結果をコピーする。守るべきルールだと感じないくらい速いことが要点です。

何を探しているのか

9つの種類を検出します。メールアドレスとURLは構造で判定します。IPv4アドレスは各オクテットの範囲まで検査するので、999.1.1.1や5節のバージョン文字列はアドレスとみなしません。米国社会保障番号はハイフン付きの形式だけを対象とします。電話番号は国際接頭辞か実際の区切り文字が必要です。カード番号とIBANはチェックサムで検証します。APIキーはベンダー接頭辞で、JWTは3部構成のbase64構造で判定します。

この一覧は、実際に貼り付けられるテキストによく現れるものから選びました。典型的な個人情報の種類が人の側を、資格情報の種類が機械の側をカバーします。実務で最も高くつく事故は後者で起きます。クラウドの鍵が1本漏れる代償は、電話番号が1件漏れる代償とは比べものになりません。

網羅性より精度が重要

除去ツールを作るとき最も魅力的に見えるのは、積極的にマッチさせるやり方です。長い数字の並びはすべてカード番号、ハイフン入りの数字はすべて電話番号として扱う。デモでは見栄えのする結果が出ますが、実際の文書は静かに壊れます。注文IDが黒いバーになり、行数が消え、バージョン番号が[PHONE]に変わります。さらに悪いのは、その損傷が目に見えないことです。出力をコピーして貼り付け、相手が本当に必要としていた部分が消えていたと後から気付くことになります。

そのためここでの検出器は、構造的に曖昧さがないか、チェックサムで検証されるかのどちらかです。カード番号は全カードブランドが使うLuhn mod-10検査を通過しなければなりません。無作為に選んだ16桁が通る確率は10分の1程度で、確実ではないという意味です。IBANはISO 13616のmod-97検査を通過する必要があります。数字が並んでいるだけの文字列は決して電話番号ではありません。結果として拾える量はわずかに減りますが、残したいテキストを壊すことはほぼなくなります。出力をそのままどこかへ送ることになる道具には、この取引が正しいのです。

置き換え方の選び方

黒塗りバーは元の視覚的な重みを保ちます。スクリーンショットや、文書らしく見せたい成果物に向いています。[REDACTED]は法務や情報公開請求でおなじみの表記で、プレーンテキストでも意味が明確です。[EMAIL]や[CREDIT_CARD]といった種別ラベルは何が削除されたかを伝えます。データの種類そのものが説明の一部になる場面では特に重要で、バグ報告に[API_KEY]と書かれているのと、正体不明の黒いバーがあるのとでは読み手に伝わる話がまるで違います。

連番プレースホルダは最も有用でありながら最も知られていない方式です。同じ値が繰り返されると同じ番号が割り当てられるので、ある顧客が4回登場するスレッドは、区別のつかない空白4つではなく[EMAIL_1]が4つになります。文書の筋道が保たれるのです。人であれ言語モデルであれ、同じ人物が通して登場していることが分かりますし、元のテキストを残しておけば後からプレースホルダを実際の値に戻すこともできます。

AIプロンプトに入れる前の整理

ログや問い合わせ内容や社内文書をチャットアシスタントに貼り付けるのは既に日常になっており、いまや機密データが組織の外へ出ていく最も一般的な経路の一つです。プロンプトは第三者に渡り、保持される可能性があり、設定によっては人間がレビューしたり学習に使われたりすることもあります。しかしほとんどの場合そこまでは不要です。モデルに必要なのは問題の形であって、顧客の実際のメールアドレスではないからです。

先に除去ツールを通せば、役に立つ部分は残り、危険な部分だけが抜けます。ここでは連番モードが最も適しています。同一性は区別可能かつ一貫して保たれるので、モデルは誰が何をしたかを推論でき、実際の値はプロンプトに一度も現れません。回答を受けて実際に対応する必要があるなら、プレースホルダを自分の端末で戻せば済みます。

PDFや画像で黒塗りが失敗する理由

黒塗りしたつもりが黒塗りになっていなかった事例には、長く気まずい歴史があります。裁判所への提出書類、政府報告書、企業資料のいずれもが、PDFビューアで文字の上に黒い長方形を描いただけの状態で公開されたことがあります。元の文字は下に残ったままで選択もコピーもでき、公開から数分で復元されました。スクリーンショットに黒い筆を走らせ、レイヤーやサムネイルが残る形式で保存したときにも同じことが起きます。

理由は単純で、黒い長方形は描画命令であって削除ではないからです。プレーンテキストで作業すれば、この種の失敗はまるごと消えます。文字列の中で文字が本当に置き換わるので、コピーしたものが存在するすべてです。どうしてもPDFを黒塗りする必要があるなら、下地のテキストごと削除するツールを使い、黒いバーの上をドラッグして選択し、別の場所に貼り付けて何が出てくるかを必ず確認してください。

ツールには分からないこと

決まった形式を持つ識別子は、形があるからこそ検出できます。氏名、肩書、病歴、社内プロジェクトのコードネーム、そして「彼女は診療所から二軒隣に住んでいる」といった文には形がなく、どんなパターンマッチングでも見つけられません。除去ツールが取り除くのは機械的に分類できる機密情報であって、文書を代わりに読んでくれるわけではありません。

出力は明らかな項目を確実に片付ける一次処理と考え、送る前に一度目を通してください。削除件数を表示しているのは、まさにその確認を助けるためです。メールアドレスが2件あるはずなのに1件しか見つからなかったなら、その差は見直す価値があります。

よくある質問

ここで言うPIIとは何を指しますか?
9種類です。メールアドレス、電話番号、クレジットカード番号、米国社会保障番号(SSN)、IPv4アドレス、URL、APIキーとトークン、JWT、IBAN銀行口座番号。前半5つは典型的な個人識別情報で、残りは漏れたときの被害が同じくらい大きく、しかも同じ貼り付けに一緒に紛れ込みがちな秘密情報です。
テキストはどこかに送信されますか?
いいえ。検出と置換のコードはブラウザのタブ内で動くJavaScriptモジュールです。アップロードもAPI呼び出しも、内容を含む解析イベントもありません。それがこのツールの存在理由です。機密テキストを整えるためにどこかへ送らなければならないなら、その時点で既に漏らしています。ブラウザのネットワークパネルを開いたまま入力すれば、通信が発生しないことをご自身で確認できます。
普通の数字まで壊してしまいませんか?
そうならないように作られています。カード番号はLuhnチェックサム、IBANはISO 13616のmod-97検査を通過して初めて対象になります。ですから注文番号、ポート番号、行数、バージョン文字列はそのまま残ります。数字が並んでいるだけの文字列を電話番号として扱うことは決してなく、国番号が付いているか実際の区切り文字がある場合だけ電話番号と判定します。再現率より精度を優先しているのは、誤検出が残したかったテキストを黙って消してしまい、送った後になって気付くことになるからです。
ChatGPTなどのAIに貼り付ける前に使えますか?
はい、それが主な用途の一つです。先にこのツールを通せば、モデルは文書の構造と意味をそのまま読み取れる一方で、実際の住所やカード番号や鍵は目にしません。この用途には連番モードが最適です。同じ人物への言及はすべて同じ[EMAIL_1]になるため、モデルは誰が誰なのかを追い続けられますし、後からプレースホルダを実際の値に戻すこともできます。
どのAPIキーやトークンを認識しますか?
形が明確なベンダー接頭辞付きの資格情報です。OpenAIのsk-キー、Stripeの本番およびテストキー、GitHubのパーソナルアクセストークン、AWSアクセスキーID、Google APIキー、Slackトークン、GitLab PAT、npmトークン、SendGridキー、さらにすべてのJWTとAuthorization: Bearerヘッダー内のトークンです。接頭辞のある形式のみを対象とするため、本文中の普通の単語やランダムなハッシュを資格情報と誤認することはありません。
PDFの黒塗りは本当に消えていますか?
たいてい消えていません。PDFビューアで文字の上に黒い長方形を描いても、元の文字はその下に残ったままで、選択もコピーもできます。有名な黒塗り失敗事例はまさにこうして起きました。プレーンテキストで作業すればこの種の失敗は起こりません。文字列の中で文字が実際に置き換わるので、コピーしたものが存在するすべてです。
黒塗りテキストジェネレーターとの違いは?
黒塗りテキストジェネレーターは見た目のための道具です。単語をランダムに塗りつぶして機密文書風の雰囲気を作り、投稿やミームに使います。このツールはその逆で、本当に機密性のある部分だけを見つけて取り除き、それ以外は読める状態で残すので、文書は本来の役目を果たし続けます。
元の値を復元できますか?
出力からは復元できません。置換は一方向で、対応表もどこにも保存されないので、必要なら元のテキストを保管してください。後から手作業で対応付けたい場合は連番モードを使ってください。文書内で値ごとに固定の番号が振られます。

関連ツール

こちらの便利なツールもどうぞ

黒塗りテキスト生成ツール

ケース変換

テキスト検索と置換

バイオニックリーディング

先頭文字大文字化

各単語の先頭文字を大文字にする