個人情報マスキングツール
期待される結果: 8か所が置き換えられます。メールアドレス(2回とも [EMAIL_1])、電話番号、カード番号、IBAN、IPアドレス、Bearerトークン、パスワードです。氏名のAlice Smithは、AI検出をオンにしない限り残ります。
制限事項: パターンが認識するのは、構造が決まった値だけです。氏名、住所、各種番号にはオプションのAI検出が必要で、精度が高いのはラテン文字のテキストです。共有する前に必ず結果を確認してください。
自動検出には見逃しがあります。共有する前に結果を読んでください。
入力した内容が保存・記録・共有されることはありません。
ログ、問い合わせ、AIへのプロンプトを貼り付けると、メールアドレス、電話番号、カード番号、IPアドレス、APIキーを共有前に置き換えます。オプションの端末内AIを使えば、氏名や住所も検出できます。
使い方
- 共有したいテキストを貼り付けます。
- 置き換え方と、検出する項目を選びます。
- 氏名や住所が含まれる場合は、AI検出をオンにします。
- ハイライトされた結果を確認してからコピーします。
パターンとモデルの二層構造
機密性の高い値の多くには決まった形があり、形は検証できます。カード番号はLuhnチェックサム、IBANはISO 13616のmod 97検査、IPv4アドレスはオクテットごと、IPv6アドレスはサブネット計算ツールと同じパーサーで確認します。APIキーは発行元が公開している接頭辞で識別します。GitHub、AWS、Stripe、Slack、Google、npm、そしてAIサービスで使われるsk-形式のキーに加え、秘密鍵ブロック、Authorizationヘッダー、DB_PASSWORD=のような代入も対象です。この層はキー入力のたびに動き、ダウンロードは不要です。
氏名、番地、各種の番号にはそうした形がありません。「森」が地名なのか人名なのかは、前後の文脈でしか判断できないからです。そのため二層目はパターンではなくモデルです。National Design StudioがCC BY 4.0で公開している小型のトークン分類モデルRampartを使用しています。6層のトランスフォーマーで約15 MB、名、姓、番地、納税者番号・パスポート番号・免許証番号などを識別するよう学習されています。オンにした場合にだけ、端末内のバックグラウンドワーカーで動作します。
二つの層が同じ文字について異なる判断をした場合は、パターンが優先されます。チェックサムを通過した番号は、モデルの推測より確かな証拠だからです。また値は必ず丸ごと置き換えます。メールアドレスの半分だけが残るのは、どちらの結果よりも悪いからです。
見逃すもの
自動の伏せ字処理に完全なものはなく、このツールも例外ではありません。モデル自身の公開評価では、ラテン文字のテストデータでの再現率は約98%です。学習データに近い文章でも、個人情報の約60件に1件はすり抜ける計算になります。ラテン文字以外で書かれた名前にはさらに弱く、モデルカードによれば日本語の名前で約46%、韓国語で15%、中国語で9%にとどまります。パターン層はどの言語でも機能しますが、名前はパターンではありません。
個人を特定する情報が、値の形をしているとは限りません。役職、小さな町の名前、日付がそろえば、伏せ字にできる語を一つも含まずに一人を指し示せます。もう一つの死角は組織内部の識別子です。顧客番号、案件番号、ホスト名、プロジェクトのコード名はその組織に固有なので、外部のツールには見分けられません。こうしたものは、このツールの前後に手作業で置き換えてください。
だからこそ結果をハイライト表示しています。置き換えた箇所はすべて印が付き、モデルが見つけたものは一致ではなく判断なので点線で囲まれます。どこかに貼り付ける前に必ず読んでください。このツールの役割は確認を不要にすることではなく、確認を速くすることです。
置き換え方の選び方
既定は番号付きタグです。テキストを読める状態のまま保てるからです。同じ値には大文字・小文字を区別せず常に同じタグが付くので、ログの筋道が残ります。たとえば「[EMAIL_1] が3回ログインに失敗し、その後同じ [IP_1] から [EMAIL_2] が成功した」のように読めます。伏せ字にした文章を読むAIアシスタントも、誰が何をしたかを推論できます。すべてのアドレスが同じ語になってしまうと、それはできません。
番号なしのタグは、その対応関係も消します。障害に関わった顧客が何人いたかといった、繰り返しのパターン自体が機微な場合や、残す情報を最小限にしたい場合に使ってください。
アスタリスクは元の長さと配置を保つので、固定幅の出力やスクリーンショットに向いています。ただし長さそのものがわずかな手がかりになります。2文字の名前と6文字の名前は区別できたままです。
「匿名化」という言葉には注意が必要です。GDPRや日本の個人情報保護法のもとでは、明らかな識別子を取り除いただけのデータは仮名化されたデータにとどまり、多くの場合なお個人情報として扱われます。このツールはタグから元の値への対応表を一切保持しませんが、残った文脈から個人が特定できる可能性は残ります。
テキストの行き先
どこにも行きません。パターン層はページ内で動きます。モデルはオンにしたときに一度だけこのサイトからダウンロードされ、ブラウザにキャッシュされます。容量は約30 MBで、ONNX RuntimeのWebAssemblyエンジンとモデルの重みです。その後はWeb Workerの中で動作し、テキストも結果も端末の外には出ません。ブラウザの開発者ツールのネットワークタブで確認できます。ダウンロード後は、検出を実行してもリクエストは一つも発生しません。
これはほかのツール以上に重要です。テキストを伏せ字にする理由はたいてい、それがAIアシスタント、公開のイシュートラッカー、フォーラム、取引先のサポート窓口など、どこか別の場所へ送られるからです。伏せ字にするために伏せ字前のテキストをアップロードするツールでは、本来の目的を果たせません。
よくある質問
- すべての個人情報を検出できますか?
- いいえ。それができる自動ツールはありません。形式が決まった値は確実に見つかり、氏名や住所はAI検出をオンにすればほとんど見つかりますが、間接的に個人を特定できる文脈は見つかりません。共有する前に、ハイライトされた結果を読んでください。
- 名前が置き換えられないのはなぜですか?
- 名前には照合できるパターンがないからです。AI検出をオンにすると、氏名、住所、各種番号を識別する小型モデルが端末にダウンロードされます。オフのままでは、形式で判別できる値だけが置き換えられます。
- 名前の検出はどの言語に対応していますか?
- 英語、スペイン語、フランス語、ドイツ語、イタリア語、ポルトガル語、オランダ語で、公開されている再現率は約98%です。日本語、中国語、韓国語などラテン文字以外で書かれた名前は、多くが見逃されます。メールアドレス、カード番号、キー、IPアドレスなどのパターン検出は、言語を問わず機能します。
- AIは何をダウンロードしますか?
- このサイトから約30 MBです。ONNX RuntimeのWebAssemblyエンジンと、トークナイザーを含むRampartモデルです。第三者のサーバーからは何も読み込まず、ファイルはキャッシュされます。ダウンロードはチェックボックスをオンにしたときにだけ始まります。
- 注文番号や日付が置き換えられないのはなぜですか?
- 番号は、形式を検証できる場合にだけ置き換えます。カード番号はLuhn、IBANはmod 97を通過する必要があります。長い数字をすべて置き換えると、共有したいログ自体が読めなくなるからです。日付はそれだけでは個人情報として扱いません。組織固有の値は手作業で置き換えてください。
- 伏せ字を元に戻せますか?
- いいえ。タグから元の値への対応表は、設計上どこにも保持していません。元のテキストが必要になる場合は、手元に残しておいてください。
最終更新:
操作手順、期待した結果、実際の結果を記載してください。秘密情報や個人情報は削除してください。
