LLMおよびVector Databaseパイプライン向けコンテキスト暗号化
ある企業AIプラットフォームは、LLMを活用した機能(チャット、検索、文書分析)を有効にする必要がありました。同時に、PII、財務記録、医療情報などの機密データが、Vector Databaseにベクトル埋め込みとして保存されている場合を含め、パイプライン全体で暗号化されたままであることを保証する必要がありました。
プロジェクトを相談する
課題
機密データでLLMとVector Databaseを使用することには、新たなセキュリティリスクが伴いました。
- 埋め込み反転攻撃 — 研究により、ベクトル埋め込みは元のテキストを再構築するために逆解析される可能性があり、Vector DBに保存されたPIIが露呈するリスクがあることが示されました。
- LLMコンテキスト漏洩 — LLMに送信された機密データが、適切に隔離されていない場合、他のユーザーへの応答に表示される可能性があります。
- コンプライアンス要件 — GDPR、HIPAA、およびSOC2は保存時と転送時の暗号化を要求しましたが、Vector Databaseは従来のテキストフィールドではなく数学的表現を保存していました。
- 検索機能 — 埋め込み前にテキストを暗号化すると、意味論が破壊され、類似性検索が無効になります。
- キー管理 — テナントごとの暗号化キーは、データセット全体を再埋め込みすることなくローテーションする必要がありました。
- 監査証跡 — 復号化された機密データへのすべてのアクセスは、コンプライアンスのためにログに記録する必要がありました。
私たちのソリューション
当社は、コンテキスト暗号化アーキテクチャを実装しました。これにより、機密フィールドを保存前に選択的に暗号化し、階層的なアプローチでセマンティックな検索可能性を維持します。具体的には、PIIはメタデータで暗号化し、サニタイズされた非機密コンテンツは埋め込み用に利用可能にします。
アーキテクチャ
- 暗号化エンジン: テナントごとの暗号化キーを使用したAES-256-GCM
- キー管理: キー生成、ローテーション、アクセス制御のためのAWS KMS
- PII検出: NERベース(固有表現認識)のPII分類器
- Vector Database: サニタイズされた埋め込みに対する類似性検索のためのMilvus
- LLMレイヤー: サニタイズされたコンテキストをLLMに送信し、生成後に機密フィールドを再注入
- 監査システム: すべての復号化イベントをユーザー、タイムスタンプ、目的とともにログに記録
- データベース: 暗号化されたメタデータのためのPostgreSQL
コンテキスト暗号化戦略
データ分類
データがパイプラインに入る前に、PII分類器が各フィールドを機密レベルで分類します。
- 高機密(例:政府発行ID、金融口座番号、医療ID) — 暗号化され、埋め込みもLLMへの送信も行われません。
- 機密PII(例:氏名、メールアドレス、電話番号) — 保存時に暗号化され、埋め込み前にプレースホルダーに置き換えられます。
- コンテキスト情報(例:役職、会社名) — 保存時に暗号化され、同意があれば埋め込みに利用可能です。
- 非機密(例:製品説明、公開情報) — そのまま保存および埋め込みされます。
暗号化レイヤー
レイヤー1:保存時のフィールドレベル暗号化機密フィールドは、保存前にAES-256-GCMで暗号化されます。各テナントは、AWS KMSを介したキー階層によって管理される専用のデータ暗号化キー(DEK)を受け取ります。シャドウフィールドには、復号化を必要とせずに正確な一致検索を行うための検索可能なハッシュが保存されます。
レイヤー2:埋め込み前のサニタイズテキストが埋め込みモデルに送信される前に、PIIが検出され、型を保持するプレースホルダーに置き換えられます。これにより、類似性検索のための意味論は維持されつつ、識別可能な情報が削除されます。元の情報からプレースホルダーへのマッピングは、ベクトルレコードとともに暗号化されて保存されます。
レイヤー3:LLM生成後のコンテキスト注入LLMは、応答生成のためにプレースホルダーを含むサニタイズされたコンテキストを受け取ります。生成後、システムは暗号化されたストレージから実際の値を応答に再注入します。これにより、機密データがLLMのトレーニングデータに入ったり、プロバイダーによってキャッシュされたりするのを防ぎます。
Vector Databaseのセキュリティ
コレクション設計
ベクトルコレクションは、サニタイズされた埋め込みと暗号化された元のメタデータをともに保存します。テナント分離はパーティションキーを介して強制され、各テナントのメタデータは独自のキーで暗号化されます。APIレイヤーは、復号化操作の前にテナントの所有権を検証します。
キー管理とローテーション
キー階層
マルチレベルのキー階層が使用されます。AWS KMSのマスターキーがテナントごとのキー暗号化キーをラップし、それがさらにフィールドレベル暗号化に使用されるテナントごとのデータ暗号化キーをラップします。これにより、キーチェーン全体を再暗号化することなく、効率的なキーローテーションが可能になります。
キーローテーションプロセス
- 新しいDEKの生成 — 既存のキー暗号化キーの下に新しいデータ暗号化キーが作成されます。
- 新しい書き込み — すべての新しいデータは新しいキーで暗号化されます。古いキーは読み取りに対して引き続き有効です。
- バックグラウンドでの再暗号化 — バッチジョブが既存のレコードを新しいキーで再暗号化します。
- 古いDEKの廃止 — すべてのレコードが移行された後、古いキーは非アクティブとしてマークされます。
- 監査ログ — ローテーションイベントは、タイムスタンプと影響を受けたレコード数とともにログに記録されます。
監査とコンプライアンス
復号化監査ログ
すべての復号化イベントは、誰が要求したか、何が復号化されたか、いつ、なぜ(リクエストコンテキスト)、どのキーが使用されたかをキャプチャし、完全なコンプライアンス証跡を提供します。
GDPR消去権
このシステムは、リレーショナルデータベースとVector Databaseの両方で完全なデータ削除をサポートし、残留アクセスがないことを暗号学的に保証するためのオプションのキーローテーションを備えています。すべての削除操作はGDPR監査証跡に記録されます。
主要機能
- フィールドレベル暗号化 — レコード全体ではなく、機密フィールドに対するAES-256-GCM暗号化
- PIIサニタイズ — プレースホルダーは埋め込みのセマンティックな意味を維持します。
- LLM生成後の再注入 — 機密データはLLMプロバイダーに送信されません。
- テナントごとのキー — AWS KMS管理による分離された暗号化キー
- キーローテーション — バックグラウンドでの再暗号化によるゼロダウンタイムローテーション
- 埋め込みの安全性 — サニタイズされた埋め込みは、PIIに対する反転攻撃を防ぎます。
- 監査証跡 — コンプライアンスレポートのためにすべての復号化がログに記録されます。
- GDPR準拠 — 暗号化されたストアおよびVector DB全体での自動消去
成果
技術スタック
caseStudyDetail.more ケーススタディ
その他の技術実装事例をご覧ください
Catant HR & ワークフォース管理プラットフォーム
Catantは、企業が従業員、給与計算、勤怠、およびコンプライアンスを単一のダッシュボードから管理できるよう支援する、モジュラー型のHRおよびワークフォース管理プラットフォームです。
Kickly: AIを活用したスタートアップ向けプロジェクトプラットフォーム
Kicklyは、AIを活用したスタートアップ向けプロジェクト管理プラットフォームです。スマートなタスク自動化、チームコラボレーション、リアルタイムの進捗追跡を一つの製品に統合しています。
よくある質問
MicrocosmWorksは、LLMが意味のある情報検索と生成のために必要とする周囲のセマンティックコンテキストを保持しつつ、ドキュメントがvector databaseに入る前に、名前、口座番号、健康データなどの機密性の高いエンティティを特定して暗号化する選択的暗号化パイプラインを開発しました。クエリ時において、システムは要求しているユーザーのアクセスレベルに限定された、応答に必要な特定のエンティティのみを復号化するため、LLMは公開が許可されていない生の機密データを決して見ることはありません。
MicrocosmWorksは、元の暗号化されていないテキスト上でembeddingsを計算しながら、機密性の高いエンティティをトークンレベルで暗号化し、その暗号化されたテキストをセマンティックベクトルとともにベクトルデータベースに保存することで、この問題を解決しました。これにより、検索は高品質のembeddingsを用いてセマンティックに関連性の高いチャンクを取得し、decryption layerは認証されたユーザーにのみ元のコンテンツを再構築します。結果として、data at restを保護しながらも、検索品質を完全に維持することが可能となります。
MicrocosmWorksは、個人識別情報と保護医療情報がベクターストアで保存時に暗号化され、認可されたクエリ処理中のみメモリ内で復号化されることを保証することで、HIPAA、SOC 2、GDPR、およびCCPAにおける特定の要件に対応するために、コンテキスト暗号化アプローチを設計しました。このシステムは、すべての復号化イベントの改ざん防止監査ログを生成し、これはこれらのコンプライアンスフレームワークに共通するアクセス監視と説明責任の要件を満たします。
MicrocosmWorksは、既存のベクターデータベースコレクションを段階的に処理し、保存されているドキュメントチャンク内の機密エンティティを暗号化しながら、そのベクター埋め込みを保持する移行ユーティリティを構築しました。そのため、コーパス全体の埋め込みを再計算する必要はありません。この移行は一時停止および再開が可能なバックグラウンドプロセスとして実行され、移行期間中はクエリパイプラインが暗号化されたチャンクと未移行のチャンクの両方をシームレスに処理します。
MicrocosmWorksは暗号化および復号化の操作を最適化しました。これにより、クエリあたり約15-30msのオーバーヘッドが追加されますが、これは一般的なLLMの生成時間である500ms〜2sと比較すると無視できるレベルです。取り込み時のエンティティ検出と暗号化は、ドキュメントチャンクあたり約100msを追加しますが、取り込みは通常バッチプロセスであるため、これも最小限です。システムは、ハードウェアアクセラレーションされたAES操作を使用し、復号化キーをメモリにキャッシュすることで、暗号化のオーバーヘッドを最小限に抑えています。