家庭用AIのトラスト境界は、保存時暗号化、最小権限のアクセス許可、ランタイムのサンドボックス化、コンテキスト分離を組み合わせて構築されます。これらの機能はいずれも、単独では十分に機能しません。
税務記録、医療スキャン、家族の文書を保存する同じNAS上にローカルモデルを置くと、モデルとファイルが1台のマシンを共有することになります。まさにそのとき、境界が最も重要になります。RAGインデックスやツール呼び出しエージェントは、公開するつもりだった範囲をはるかに超えて読み取る可能性があります。決定要因は、AIプロセスと機密データの間に実際に存在するのが、次の4つのレイヤーのどれかという点です。
家庭用AI環境でトラスト境界が実際に分けるもの
トラスト境界とは、AIアプリからの読み取り要求を、ファイルの内容がモデルに届く前に許可または拒否する強制適用地点です。ローカルLLMが動作する家庭用NASでは、その地点はモデル内ではなくOS内部にあります。モデルが認識できるのは、ランタイムがコンテキストに渡したものだけだからです。
AIが処理するたびに、その地点を越えるものが3つあります。ファイルを要求するプロセスのID、そのIDに対してカーネルが適用するアクセス制御の判断、そして復号済みまたは許可されたバイト列を読み取れる状態が続く露出時間です。この3つがすべて適切に連携していれば、境界は役割を果たしています。いずれか1つでも設定を誤ると、境界は気付かないうちに広がります。
境界が弱いことを示す目に見える症状は、検索インデックスの露出です。AIインデックスが、共有するつもりのなかったファイルの断片まで返してしまいます。境界はモデル内ではなくOSで強制されるため、解決策は機能に関する問題になります。つまり、プロセスとファイルの間にどのOS機能とランタイム機能が存在するか、ということです。
保存時暗号化:多くの家庭用AIを破綻させる第一の防御線
LUKSやF2FS暗号化などのフルディスク暗号化およびファイルシステム暗号化は、マシンの電源が切れている間のデータを保護します。これは、ボリュームキーがカーネルによって保持され、ロック解除後にのみ解放されるためです。したがって、保存時暗号化は、物理的な盗難や、別のOSがドライブを直接読み取ることに対する第一の防御線になります。
制限事項は、稼働中のAIサーバーではファイルシステムがマウントされて復号済みの状態にあるため、モデルのランタイムが他のローカルユーザーと同じように平文を読み取れることです。暗号化が保護するのはディスク上のバイト列であり、ページキャッシュやAIインデックス内のバイト列ではありません。そのため実際には、暗号化されたボリュームへの読み取りアクセス権を持つローカルモデルには、保存時暗号化の限界があります。
この違いを実際に確認する方法は、1つのボリュームを暗号化してマウントし、その上でローカル埋め込み処理を実行することです。インデックスは引き続き構築されます。したがって、保存時暗号化はシャットダウン時や盗難時には重要ですが、稼働中のシステムにおけるアクセス判断の代わりにはなりません。
ファイル権限と最小権限:読み取り経路を制限する
POSIXモードビット、アクセス制御リスト、そしてAIランタイムが実行されるプロセスユーザーが、2つ目の境界を形成します。モデルサービスを専用ユーザーとして実行し、許可されたディレクトリだけに読み取り権限を与えれば、そのディレクトリの外にある機密ファイルに触れる要求は、内容が読み取られる前に権限チェックで失敗します。
この関係において、権限の強さはランタイムが使用するID次第です。AIサービスを管理者や普段使っているユーザーとして実行すると、そのプロセスはそのIDが持つすべての読み取り権限を継承するため、境界が失われます。これには、対話型シェルで開けるファイルも含まれます。これは、最小権限が防ごうとしている失敗です。
確認可能なテストは、AIサービスを専用ユーザーで実行し、そのユーザーが読み取れないディレクトリを設定して、モデルまたはそのツールにそこでファイルを開くよう要求することです。正しく構成された権限レイヤーなら「権限が拒否されました」というエラーが返り、読み取り経路が実際に制限されていることを低コストで検証できます。
サンドボックス化とランタイム分離:AIプロセスの実行可能範囲を制限する
権限ビットに加えて、コンテナ、seccompフィルター、AppArmorプロファイル、Landlockルールによって、ユーザーIDに広範な権限がある場合でも、AIプロセスが到達できる範囲を制限できます。許可リストに登録したデータセットだけをマウントするコンテナなら、ランタイムからホストの残りの部分へ続くファイルシステムパスは存在しません。また、システムコールポリシーによって、脱出の試みに使われるパスをブロックできます。
サンドボックス化は、権限に独立した2つ目のチェックを追加することで作用します。カーネルはファイルモードに加えてサンドボックスポリシーも参照します。カーネルレベルの分離に関するガイドは、AIエージェントにも適用されます。この多層化が重要なのは、モデルサーバー、トークナイザー、またはツール呼び出しライブラリの脆弱性によって、1回の読み取り要求がホームディレクトリ全体に対する任意の読み取りへと変わる可能性があるためです。
制限は、サンドボックス化がデータパスだけでなく、AIの負荷処理パスも対象にしなければならないことです。モデルの重み、キャッシュ、ツールプラグインが同じボリューム上にあるため、モデルディレクトリを許可リストに登録してもRAGストアを忘れたポリシーでは、機密性の高いインデックスに引き続きアクセスできてしまいます。そのため、マウントされたすべてのパスが意図的に指定されている場合にのみ、分離が実現しているといえます。
コンテキストとモデルの分離:機密コンテンツをプロンプトから排除する
最も強固な境界とは、機密データをモデルに一切送信しない境界です。スコープ付きRAGインデックス、編集ルール、除外ディレクトリを使用すれば、取得ステップで許可リストに登録されたコーパスからのみ選択されます。そのため、そもそもインデックス化されていないファイルがプロンプトのコンテキストに含まれることはありません。
コンテキスト分離は、その下位にある層を補完する制御として機能します。保存時の暗号化しか行われていない場合、権限チェックが誤設定されている場合、あるいはサンドボックスに抜け道がある場合でも、機密ディレクトリをまったく含まない取得スコープを設定すれば、そのバイト列がモデルのコンテキストに到達することはありません。これは、ローカルLLMのセキュリティに関する指針がベクトルストアについて示している要点です。
ここで優先すべきなのは、モデルが受け取っていないコンテンツを漏えいしたり言い換えたりできないようにすることです。そのため、ホーム環境では通常、コンテキスト分離が最も効果の高い機能となります。コンテキスト分離によって、オープンな読み取り可否の問題が、カーネルポリシーよりもはるかに監査しやすい、限定された取得スコープの問題に変わるためです。
機能の連携方法:ホームAIの信頼性を判断する意思決定表
1つの機能だけで境界全体をカバーすることはできません。それぞれが読み取り経路の異なる箇所を保護するからです。重要なのは、どの機能が最善かではなく、保存時の暗号化、プロセスの読み取り対象、ランタイムの到達範囲、モデルのコンテキストを同時にカバーできる組み合わせは何かという点です。
この意思決定表では、各層が何を保護し、背後にある仕組みは何か、また別の層で補う必要がある弱点は何かを対応付けています。行を横に見ていくと、実際に現れる同じパターンがわかります。ディスクを保護する層は実行中のモデルを保護する層ではないため、表のすべての行を同時に適用して初めて、保護範囲が完全になります。
維持される境界は多層構造です。権限エラーが大半の試行をブロックし、サンドボックスが残りの範囲を制限し、スコープ付きインデックスがモデルからコンテンツを完全に見えなくし、保存時の暗号化がシステムの電源オフ時にディスクを保護します。どれか1つの層を取り除くと、他の層では埋められない隙間が残ります。
| 機能 | 保護対象 | 仕組み | 弱点 |
|---|---|---|---|
| 保存時の暗号化 | 電源オフ中のディスク内容 | カーネルが保持するボリュームキー | マウントされたボリュームは、ローカルユーザーなら誰でも読み取り可能 |
| ファイル権限 | パスを読み取れるID | POSIXモードとACLによるopen時のチェック | ランタイムユーザーと同程度の強度 |
| サンドボックス化 | ランタイムが到達して呼び出せるもの | コンテナのマウント、seccomp、AppArmor | マウントするすべてのパスに明確な意図が必要 |
| コンテキストの分離 | モデルのコンテキストに含まれるもの | 対象を限定したRAGインデックスとマスキング | ユーザーが管理する許可リストが必要 |
家庭用AIサーバーの最小実用トラスト境界
ローカルAIを実行する家庭用NASの実用的な初期設計は、4つの要素にまとめられます。モデルのランタイム専用サービスユーザーを作成すること、そのユーザーにはデータディレクトリへの読み取りアクセスだけを与えること、該当ディレクトリだけをマウントするコンテナ内またはLandlockプロファイル下でサービスを実行すること、そして機密フォルダーを除外した許可リスト内のコーパスをRAGインデックスの対象にすることです。
可視化を可能にする手順は、拒否テストとコンテキストテストです。まず、サービスユーザーが自分のディレクトリ外にあるファイルを開こうとしたときに、権限拒否を受けることを確認します。次に、除外フォルダーにのみ存在する内容について尋ねたとき、検索ステップが何も返さないことを確認します。
悪意のあるモデルやroot権限の侵害に対して完全な設計ではありません。しかし、境界について誠実な設計になっています。偶発的な情報漏えいを防ぎ、バグのあるツール呼び出しを封じ込め、モデルのコンテキストをクリーンに保ちます。家庭内のトラスト境界が担う役割の大部分はこれです。
よくある質問
ローカルAIは同じマシン上の暗号化されたファイルを読み取れますか? はい。ランタイムがマウント済みの復号されたボリュームに対する読み取り権限を持っていれば可能です。保存時の暗号化が保護するのは電源オフ中のディスクであり、稼働中のシステムではないためです。実効性のある防御策は、対象を限定したインデックスに加えて拒否をデフォルトにするサンドボックス化です。
モデルが本当に機密ファイルへのアクセスを必要とする場合はどうなりますか? 元のディレクトリではなく、コピーまたは許可リストで指定したサブセットへのアクセスをランタイムに与え、プロンプトに含める情報が必要最小限になるようにマスキングも追加します。モデルがより広範なデータを見られなければ、この境界は維持されます。これはRAGインデックスのスコープ限定パターンです。
機能を組み合わせるだけで十分ですか、それとも別のマシンが必要ですか? ほとんどの家庭環境では、複数の保護層を組み合わせれば十分です。別のマシンが役立つのは、物理的な分離や管理上の分離が必要な場合だけです。重要なのは、対象を限定した検索、権限を制限したランタイムユーザー、保存時の暗号化を組み合わせ、モデルの重みには読み取り専用マウントを使うことです。
テック&AIハブ
もっと読む

プライベート検索結果が頻繁に編集されたファイルを優先する原因とは?
頻繁に編集されるファイルは、更新のたびに鮮度、チャンク、バージョン、またはインタラクションシグナルが追加され、ソースによる正規化が行われない場合、ランキング上の優位性を獲得します。

スマートホームの在宅検知モデルが来客と住人を混同する原因とは?
システムが世帯の活動パターンを観測していても、その活動を生み出している人物の安定した識別情報がない場合、来訪者が居住者のように見えることがあります。

ローカルAIランタイムがモデルの重複コピーを読み込む原因は何ですか?
独立したワーカーやセッションが、読み込み済みの重みの割り当てを共有して再利用できず、それぞれ独自のランタイム状態を構築すると、モデルの重複コピーが発生します。

