Chrome拡張 SafePrompt JP の設計 — AI送信前にローカルで個人情報を止める仕組み
ChatGPT や Claude に業務文書を貼るとき、「顧客名を消し忘れた」「住所も貼っちゃった」と気付いた経験はありませんか。氏名・住所・電話番号を、AI に送る「前」に自動検知して匿名化する Chrome 拡張が SafePrompt JP(Safe Labs 開発)です。本記事では、この拡張がどのような設計判断で作られているかを、公開情報ベースで解説します。
本記事は Safe Labs の公式 LP( PH0 / PH1 )で確認できる情報のみを扱います。<br>精度・件数などの内部指標は、LP 掲載外の憶測を含めていません。
◯ 「AI送信前に止める」というレイヤーを選んだ理由
企業の情報漏洩対策には、いくつかのレイヤーがあります。
- ①送信後の検知(ログ監査・DLP)
- ②送信中の遮断(プロキシ・ネットワーク層)
- ③送信前の介入(ブラウザ拡張・エディタ拡張)
送信後の検知は、事故が起きたあとで気付く仕組みです。送信中の遮断は、ネットワーク管理者がいる大企業向けで、個人事業主や小規模チームには重い。
SafePrompt JP は ③ の「送信前」を選んでいます。ChatGPT のテキスト入力欄に貼り付ける瞬間、まだ何も送信されていないタイミングで、ローカルのブラウザ内だけで検知と置換を行う設計です。
Safe Labs の LP には次のように書かれています。
監視ではなく、必要な場面での介入を目指します。
過剰に監視する DLP ではなく、危険な貼り付けを「あなた自身が」直せるように支援する立場を取っています。
◯ なぜ Chrome 拡張という形なのか
「送信前に止める」を実現できる技術レイヤーは限られています。
- OS 常駐アプリ:全アプリを監視できるが、ユーザーの心理的抵抗が大きい
- Chrome 拡張:ブラウザ内の入力欄に限定できる。ローカル処理と相性がよい
- Web サービス:貼り付ける先が Web ならまず外部送信が発生してしまう
ChatGPT・Claude・Gemini・NotebookLM など、AI ツールの大半は Web ブラウザで使われます。Chrome 拡張はこの「AI が動く場所そのもの」に居られる唯一の実装です。
SafePrompt JP は Chrome / Edge / Brave / Arc に対応しています(Chromium 系 Manifest V3 拡張)。既にインストール済みの Chrome にワンクリックで追加でき、他のツールを何も入れずに導入が完結します。
◯ Manifest V3 の制約下で「ローカル処理」を守る
ここが技術的にいちばん設計が問われるところです。
Chrome 拡張の現行仕様 Manifest V3 では、バックグラウンドで動くのは Service Worker で、常駐プロセスは持てません。イベント駆動で数十秒アイドルすると停止します。かつ、外部 API 呼び出しは制約が強く、host_permissions を絞る前提です。
SafePrompt JP の LP は「すべての検知・置換処理はお使いのブラウザ内で完結。テキストデータが外部サーバーに送られることはありません。」と明言しています。これを技術的に成立させる条件を並べると次のようになります。
- 検知エンジンはブラウザ内で完結する軽量ロジックである必要がある
- サーバー LLM 呼び出しではなく、正規表現・辞書照合・ヒューリスティックの組み合わせ
- 辞書と設定は PH0 で保持する
storage.syncを使うとクラウド経由になるため、ローカル思想と両立するにはlocalを選ぶ設計になる
- 拡張の権限を最小化する
host_permissionsは貼り付け先の AI サービスドメインに限定し、"all_urls" を要求しない設計が LP の「必要最小限」思想と整合
「LLM で判定すれば精度は上がるがローカル思想は崩れる」「正規表現だけだと精度が伸びない」というトレードオフの中で、正規表現+辞書+業種別テンプレートで「ローカル完結」を選び切ったのが SafePrompt JP の設計判断です。
◯ 日本語の個人情報検知は「なぜ重い」か
英語圏の PII(Personally Identifiable Information)検知は成熟していますが、日本語の個人情報検知には特有の難しさがあります。
- 氏名の境界:スペースなしで書かれる(「佐藤太郎様」)ため、単語区切りが難しい
- 住所の階層:「東京都千代田区丸の内1-1-1」のような複数レベル階層で、末尾番地の数字が電話番号と紛らわしい
- 敬称・肩書きの多様さ:「様・殿・先生・部長・課長」等、氏名前後のヒントが多い
- 法人名と個人名の混在:「株式会社◯◯の佐藤太郎様」のような複合表現
- 業種特有の固有名詞:税理士なら「決算書」「勘定科目」、Web 制作なら「要件定義書」「クライアント名」等、業種で異なる保護対象
SafePrompt JP は「日本語に特化」「業種別辞書テンプレート」を明示しています。LP に列挙されている検知カテゴリは以下です。
- 氏名 / 住所 / 電話番号 / メールアドレス
- マイナンバー / 口座情報 / APIキー
- 生年月日 / URL / 郵便番号
- カスタム辞書 / 法人名検知(有料版)
Before/After の例も LP に掲載されています。
Before:そのまま貼った場合
佐藤太郎 様(090-1234-5678)の確定申告書類を確認しました。
住所:東京都千代田区丸の内1-1-1
メール:[email protected]
After:SafePrompt で安全化
[人名1] 様([電話番号1])の確定申告書類を確認しました。
住所:[住所1]
メール:[メール1]
置換文字列を「マスク(●●●)」ではなく「[人名1]」のようなプレースホルダにしているのは、AI に「これは人名がここにあった」という文脈を伝えつつ、実在の氏名を守るための工夫です。マスクだと文脈が壊れて AI の出力品質が下がるが、プレースホルダなら文書構造は保てます。
◯ 誤検知とどう付き合うか(辞書とプランの分離)
正規表現+辞書で日本語 PII を検知する以上、誤検知は必ず発生します。SafePrompt JP は誤検知を「なくす」のではなく「利用者ごとに削れる」設計を取っています。
- カスタム辞書:無料版 3 件まで、有料版は無制限
- 自分の会社名・案件名・PJ コード等、「これは検知してほしい/除外してほしい」を利用者が定義
- 業種別辞書テンプレート(有料版):税理士・社労士・行政書士・受託開発など、業種ごとの語彙セットを一括投入
- 除外設定:LP に「誤検知は個別に修正するか、辞書で除外設定が可能」と明記
料金プランは次の 3 段構成です。
| プラン | 料金 | 主な違い | |---|---|---| | Free | ¥0 | 1日5回まで、基本検知(氏名・住所・電話・メール)、カスタム辞書3件 | | Personal | ¥980/月(年額¥9,800) | スキャン無制限、全カテゴリ検知、辞書無制限、業種別テンプレート、txt/csv対応、優先サポート | | Team | ¥1,980/人/月(2〜10名) | Personal 全機能+チーム共有辞書、管理者設定、docx/pdf対応 |
無料版で「まず自分の業務が乗るか」を試してから、常用するタイミングで Personal に上げる。チームで運用するなら Team で共有辞書を持つ、という導入経路が想定されています。14日間返金保証付き。
◯ 監査ログを「どう残さないか」の思想
Safe Labs の LP 掲載の 6 つの信頼原則のうち、後半 3 つが監査ログの設計に関わります。
- 03: 必要最小限のログだけを扱います
- 04: マスク済み監査記録を前提に設計します
- 05: 監視ではなく、必要な場面での介入を目指します
「何を残すか」ではなく「何を残さずに安全を保てるか」を出発点にしている設計です。
事業者向けの Guardian Engine SDK では、他社アプリ側で監査ログを取れるように「マスク済み監査ログ」を返せる設計になっています。これは「原文は残さず、マスク後のログだけを事業者側の監査に使える形」で提供する発想です。個人情報を守るためのツールが、皮肉にも大量の個人情報を蓄積してしまう問題(DLP 製品のよくある副作用)を、最初から避ける方針を取っています。
◯ Safe Labs というブランド設計
SafePrompt JP は Safe Labs という保護ツール事業体の「Available」プロダクトの位置付けです。ロードマップ的には次のように整理されています。
| プロダクト | ステータス | 対象 | |---|---|---| | SafePrompt JP | Available(Chrome Web Store 公開済み) | 個人事業主・士業・小規模事業者 | | Guardian Kids | In Development(Android 先行) | 保護者(子どもの危険DM・闇バイト応募・個人情報送信を止める) | | Guardian Senior | Future(構想中) | 家族(高齢者の詐欺・なりすまし・送金誘導を防ぐ) | | Guardian Engine SDK | In Development | 開発チーム・事業者(危険文脈判定を他社アプリに組み込む中核基盤) |
同じ「危険なやり取りを送信前に止める」というエンジンで、対象を変えて展開していく発想です。SafePrompt JP は事業者向けの「情報漏えい阻止」レイヤー、Guardian Kids は保護者向けの「危険接触阻止」レイヤー、Guardian Senior は家族向けの「詐欺阻止」レイヤー。共通する中核(Guardian Engine SDK)を他社アプリに組み込む形で B2B にも展開する構造です。
◯ 個人利用 → 今すぐインストール
SafePrompt JP は Chrome Web Store で公開済みです。無料版は登録不要で使えます。
インストール導線
- Chrome Web Store: https://chromewebstore.google.com/detail/safeprompt-jp/nfmbnekfecniihbnhocgibildbkehlfi
- SafePrompt JP LP: https://safeprompt-jp.netlify.app/
- Safe Labs(ブランド全体): https://safe-labs.netlify.app/
対応ブラウザ:Chrome / Edge / Brave / Arc(Chromium 系 Manifest V3)。
◯ 事業者・開発チーム向けは Guardian Engine SDK
「自社のアプリに、日本語の危険文脈判定を組み込みたい」「見守りアプリを開発しているので、危険接触検知エンジンを外注したい」というチームは、Guardian Engine SDK が対象です。LP に列挙されている提供機能は次の 4 点。
- 日本語危険文脈判定
- 個人情報抽出・マスキング
- 推奨アクション返却
- マスク済み監査ログ
「危険」だけでなく「何をすべきか(推奨アクション)」までを返す設計です。監査に耐えるログも設計に含まれています。
SDK 導入相談は Safe Labs の事業者向け問い合わせから、または ZERO Lab の相談フォームから連携できます。
◯ ZERO Lab の関連プロダクト
Safe Labs は ZERO Lab が運営する保護ツール事業体の 1 つです。ZERO Lab は他にも次のようなプロダクトを開発・運用しています。
- AmazonラベルツールPro — FBAラベルPDFへの一括追記ツール(¥9,800)
- ZEROくん — Bitget自動売買のベースソフト(初期10名 ¥19,800)
- 急変動検知レーダー — TradingView + Bitget Demo での検知検証
- AI業務効率化テンプレ集 — note 販売中(¥980)
- スクレイピング雛形 / GASテンプレ — note 販売中
「AI で動くものを、事前合意の範囲で納品する」姿勢は共通です。
◯ 技術支援を相談したい方へ
「自社のワークフローに個人情報保護を組み込みたい」「AI 利用ルールを社内で標準化したい」といったご相談は、17項目のフォームで即日見積を返信します。Zoom・電話・対面なし、テキストのみで進行します。
- 相談フォーム: https://buy.zero-aibot.com/ja/request/
- 対応範囲・料金目安: https://buy.zero-aibot.com/ja/services/
- Safe Labs 商品詳細: https://buy.zero-aibot.com/ja/works/safe-labs/
投資助言・売買シグナル・利益保証は行いません。個別対応・テキスト密着の技術支援ラボです。