Interactive

個人情報・認証・決済

個人情報、ログイン、支払いのいずれかを扱った時点で、製品は「動けばよい」段階を離れ、法律上の義務と、失敗が他人の実害になる領域に入ります。弊社では、この領域に入る製品を一人の判断で公開せず、進める前に、法律面を確認できる人(顧問弁護士や法務の担当者)への相談を挟むことをルールにしています。

持っていないデータは漏れない

個人情報を守るいちばん確実な方法は、そもそも集めないことです。フォームの項目は「あると便利」ではなく「ないと成立しない」で選びます。

持つ情報が漏れたときの量を決める

集めた時点で、個人情報保護法の義務(利用目的の明示、安全な管理、漏洩時の対応など)が関わり始めます。どこまでの対応が必要かは集め方と規模で変わるため、公開前に法律面を確認できる人へ相談します。弊社では、集めるなら何をなぜ集めるかを書いたプライバシーポリシーを用意することを基本にしています。

プロンプトの例
このフォームの項目のうち、目的に対して必須でないものを挙げて

必要がなくなったら消す

集める項目だけでなく、持つ期間も最小にします。利用目的を終えた個人情報を「いつか使うかもしれない」で残すと、漏洩時の被害と管理する場所だけが増えます。

弊社では、個人情報を集める時点で、利用目的、保持期間、削除方法を決めます。データベースだけでなく、ログ、バックアップ、書き出したCSVなど、複製が残る場所も対象にします。すぐに消せないバックアップは、保持期限を過ぎれば消えることを確認します。

プロンプトの例
この製品が保存する個人情報ごとに、利用目的、保持期間、複製される場所、削除方法を一覧にして

個人情報は、渡そうとしなくても混ざる

「個人情報をAIに渡さない」という標語は、実際の事故の形と合っていません。事故は、渡そうと決めて渡す形では起きず、Claudeが作業のために読んだものへ混ざっている形で起きます。エラーログの中の氏名、データベースのdumpファイル、問い合わせメールの貼り付け、画面のスクリーンショット。Claudeは依頼を果たすために自分でファイルを読むので、「渡さない」と決めるだけでは足りず、読める場所に置かないこと、そもそも書き込まないことで防ぎます。

  • ログとエラー通知には特定用のIDだけを残し、名前や連絡先そのものを書かない。データベースを守っていても、ログの転送先や閲覧者という漏洩経路が増えるため
  • 開発と動作確認は架空のデータで行い、実データは本番環境にだけ置く(環境の分離)。実データを開発で使うと、会話、ログ、テストコード、スクリーンショットへ複製されていく
  • 実データの入ったファイル(dump、CSV、書き出したスクリーンショット)を、作業用のディレクトリへ置いたままにしない
プロンプトの例
ログとエラー通知に個人情報が含まれない形にして
開発とテストには架空の個人情報を使って。実在のデータは使わないで

学習に使われるかは、サービス名ではなく契約で決まる

実在の個人情報を扱う作業をAIへお願いしてよいかは、「AIだから危険」でも「大手だから安全」でもなく、使っているプランの規約で決まります。同じClaudeでも、事業者向けの規約と個人向けのプランでは入力データの扱いが異なり、アカウントの設定でも変わります。確認する点は2つ、入力が学習に使われるかと、どれだけの期間保持されるかです(Anthropicの商用利用規約、プライバシーポリシー)。

規約を確認した上でも、顧客から預かった個人情報を外部のサービスへ入力することには、個人情報保護法上の整理(委託への該当や利用目的との関係)が必要になります。個人情報保護委員会も、生成AIサービスへの個人情報の入力について注意喚起を出しています。弊社では、この整理を済ませる前に実在の個人情報をAIの作業対象へ含めません。迷う状態のまま進めず、相談へ回します。

認証を自作しない

ログイン機能には、パスワードの保存方法、総当たり攻撃への対応、パスワードリセットの安全な手順など失敗点が多く、失敗は全利用者へ一度に波及します。弊社では認証を自作せず、実績のある認証サービスやライブラリに任せます。

プロンプトの例
ログインは自作せず、実績のある認証の仕組みを使う構成にして。候補と理由を説明して

認証と認可は別

認証は「誰か」を確かめる仕組みで、認可は「その人が何を読んだり変更したりしてよいか」を決める仕組みです。認証サービスを使っても、認可は製品ごとに実装が必要です。

弊社では、ボタンやリンクが見えないことだけで、操作が制限されているとは判断しません。他人のデータへのURLを直接開いた場合なども含め、許可のない閲覧や変更が拒否されることを確認します。実装する場所と確認方法は、開発者向けのアーキテクチャとテスト戦略で扱います。

プロンプトの例
一般の利用者で、別の人のデータや管理者だけの操作にアクセスできないか確認して。画面にボタンがない場合も確かめて

カード情報を自分のシステムに通さない

決済は決済代行サービスを使い、カード番号の入力画面ごと預けます。カード情報が自分のサーバーを経由・保存される構成には専門の安全基準(PCI DSS)への準拠が求められ、個人や小規模チームで担う範囲を超えます。販売には特定商取引法の表記など開発以外の義務もあるため、公開前に法律面を確認できる人へ相談します。

参考資料