ディスクの暗号化 モデル
ローカルLLMを使うマシンのディスクは、OS標準のツールで暗号化できます。macOSではFileVault、Windows ProではBitLocker、LinuxではLUKSを使います。ただし、優先して保護すべきなのは、公開されているモデルの重みではなく、会話履歴、ドキュメントのインデックス、ログ、スワップファイルです。これらが保存されているディスクを暗号化し、復旧キーはそのマシンとは別の場所に保管してください。
ローカルLLMを動かすコンピューターには、会話履歴、文書のインデックスデータベース、一時ファイルなどの痕跡が平文で残ります。コンピューターを紛失すると、そのディスクを別の機器に接続するだけですべて読み取られてしまいます。このガイドでは、実際に何を暗号化すべきか、FileVault、BitLocker、LUKSを有効にする方法、Ollamaのモデルを暗号化されたボリュームへ移す方法、そして保護を無効にしてしまう鍵の扱いの誤りを説明します。
#ディスク暗号化が保護するものと保護しないもの
保存時の暗号化により、ディスクの内容は鍵なしでは読み取れなくなります。ノートパソコンを盗まれたり、SSDを取り外されたり、電源が切れた端末を押収されたりしても、得られるのは利用できないデータだけです。これはそうした状況に対応する対策であり、それ以外の状況はカバーしません。電源が入っていてロックが解除された端末、ユーザーのセッションで動作するマルウェア、弱いパスワードは、依然としてアクセスの経路になり得ます。規制面では、GDPR第32条は、データ管理者がリスクに応じて検討すべき技術的措置として、個人データの仮名化と暗号化を挙げています。特定のツールを指定しているわけではなく、求められる対応は分野や状況(医療、金融)によって異なります。
| 状況 | 保護されていますか? | 注記 |
|---|---|---|
| 盗難・紛失したノートパソコン(電源オフ) | はい | 暗号化が想定する典型的なケース |
| ディスクを取り外して別のマシンに接続した場合 | はい | キーがなければコンテンツは読み取り不能です |
| 電源がオンで、セッションが開いており、画面がロックされていない状態 | いいえ | ディスクはロック解除されています:セッションをロックしてください |
| 使用中のセッション内のマルウェア | いいえ | あなたと同じようにデータを読み取れます |
| 暗号化されていないディスクへのバックアップ | いいえ | コピーすると、コピー元の保護はコピー先には及びません |
| リカバリーキーが失われました | データの喪失 | バックドアは一切ありません |
#何を暗号化すべきか:重み自体は秘密ではない
職場でのローカルAI導入:GDPR、AI Act、マルチユーザーアーキテクチャ、コスト、経営陣向けメモ。
- 永久に利用できるオンラインスペース
- PDF + ファイル
- 生涯アップデート
OllamaやHugging Faceからダウンロードするモデルは公開されています。非公開データでモデルをファインチューニングした場合を除き、オープンウェイトモデルの重み自体に機密性はありません。機密性があるのは、利用によって生まれるすべてのデータです。そのため、モデルのフォルダだけを暗号化しても、肝心な情報の大部分は保護されないままです。
- 会話履歴
- Ollamaのターミナルは、ユーザープロファイル内の.ollamaフォルダに入力履歴を記録します(Ollamaのコードは.ollama/historyというパスを組み立てます)。Open WebUIなどのウェブインターフェースは、それぞれ独自のデータベースに会話を保存します。
- ドキュメントインデックス
- ChromaDB、Qdrant、Weaviateのデータベースには、文書の一部がそのまま読める形で保存されています。つまり、元のファイルのコピーに相当します。
- ソースドキュメントおよびエクスポート
- RAGのフォルダに置いたPDF、文字起こし、保存された出力。
- スワップファイルとハイバネーション
- メモリがいっぱいになると、システムはメモリのページをディスクに書き出します。そこには会話の一部が含まれる可能性があります。Arch Linuxのドキュメントでは、起動のたびに初期化される暗号化スワップのほうが保護に優れているとしています。上書きされないまま機密情報の断片が残ることを防げるためです。
- ログと一時的なコピー
- サーバーのログ、キャッシュファイル、コピーを作成するエディタなど
ここから二つの方法が考えられます。最も簡単で安全なのは、システムディスク全体を暗号化する方法です。一度の操作ですべてを保護できます。もう一つは、システムを変更できない場合に、データ(インデックス、文書、ファインチューニング済みモデル)を格納する専用ボリュームを暗号化し、それらを保存しているフォルダをそのボリュームに移動する方法です。
#macOS:FileVault
Apple シリコンまたは T2 セキュリティチップを搭載した Mac では、Apple のドキュメントによると、データは自動的に暗号化されます。FileVault を有効にすると、データへのアクセスにログインパスワードの入力を必須とすることで、保護が一段追加されます。T2 チップを搭載していない Intel Mac では、暗号化のために FileVault を有効にする必要があります。技術ドキュメントでは、FileVault は AES-XTS アルゴリズムでボリューム全体を保護し、近年の Mac に搭載されたハードウェア AES エンジンと Secure Enclave を利用すると説明されています。
- 01設定を開くAppleメニュー → システム設定 → プライバシーとセキュリティ → FileVault
- 02FileVaultを有効にする「有効化」をクリックしてください。macOSで2つの復旧方法が提示されます。
- 03復旧方法を選ぶiCloudアカウントを使う方法は、別途キーを保管する必要がなく便利です。一方、復旧キーは文字列で、書き留めてMac以外の場所に保管する必要があります。機密性の高いデータには、復旧キーを使う方法を選んでください。
- 04Macに処理を任せる暗号化はバックグラウンドで継続されます。コンピュータの使用はそのまま続けられます。
#Windows:BitLockerおよびデバイスの暗号化
BitLockerはWindowsのボリューム暗号化機能です。Microsoftのドキュメントによると、Windows Pro、Enterprise、Pro Education/SE、Educationで有効にできます。Windows Homeではこの機能を直接利用できませんが、デバイスの暗号化(device encryption)を利用でき、対応するマシンではBitLockerが自動的に有効になります。Windows 11 24H2以降はハードウェア要件が緩和され、対象となるマシンが増えています。
知っておきたい落とし穴:デバイスの自動暗号化が有効になるのは、Microsoftアカウントまたは職場のアカウントでサインインした後だけです。その際、回復キーはそのアカウントに保存されます(aka.ms/myrecoverykeyで確認できます)。ローカルアカウントでは自動的には有効になりませんが、BitLockerに対応したエディションなら手動で有効にできます。機密性の高いデータを扱う場合は、キーをどこに保存するかを意識して決めてください。オンラインアカウントへの保存は紛失時に便利ですが、キーは自分の手元だけにあるわけではなくなります。
- 01BitLockerを起動するスタートメニューで「BitLockerの管理」を検索してください(Pro以上のエディション)。
- 02システムドライブで有効にするTPMによるロック解除を選んでください。盗まれたマシンをそのまま起動されるのを防ぐため、起動時のPINコードも追加してください。
- 03回復キーを保存する安全な保管庫に保存するか、印刷してください。そのマシンだけに保存しておくのは避けてください。
- 04範囲の選択新品のPCでは、使用済み領域だけを暗号化すれば十分です。すでに使用したことのあるPCでは、古いデータが残っている空き領域も対象になる完全暗号化を選んでください。
#Linux:ディスク全体に対して LUKS を使用
LUKS は Linux の標準的なディスク暗号化方式で、cryptsetup ツールで管理します。そのマニュアルページによると、デフォルトの形式は LUKS2 です。最も簡単なのは、インストール時に選択することです。Ubuntu、Fedora などでは「新規インストールを暗号化する」というチェックボックスが用意されており、パスワードの入力を求められます。これにより、スワップファイルを含むシステムディスク全体が保護されます。後から確認するには、開いているボリュームの名前を指定して cryptsetup status を実行するか、lsblk -f を実行して、種類として crypto_LUKS が表示されることを確認します。
#Linux:データディスクだけを暗号化し、そこにOllamaを配置する
一般的なケースは、暗号化されていないシステムと、AIデータ用に確保された2番目のSSDです。この2番目のディスクをLUKSで暗号化し、モデルフォルダとインデックスフォルダをそこに移動します。Ollamaのドキュメントによると、モデルの保存場所は環境変数OLLAMA_MODELSで設定でき、Linuxの標準インストーラーを使用する場合、ollamaユーザーには選択したフォルダへの読み取りおよび書き込みアクセス権が必要です。
RequiresMountsForの行は、ボリュームがマウントされてからサービスを起動するようsystemdに指示します。この行がないと、Ollamaがロック解除前に起動し、暗号化されていないディスク上に空のフォルダーを作成して、そこにモデルを再ダウンロードする可能性があります。変更後は、sudo systemctl restart ollamaを実行してください。
#パスワードか鍵ファイルか:システムディスクに鍵ファイルを置く落とし穴
起動時にボリュームのロックを解除する方法は2つあります。パスワードを使う場合、起動のたびにシステムが入力を求めます(crypttabのエントリでキーを「none」に設定)。キーファイルを使う場合は自動でロックが解除されますが、その安全性はファイルの保存場所次第です。暗号化されていないシステムの/root/にキーを置くと、保護はほぼ完全に失われます。マシンを盗んだ人は誰でも、システムディスク上のキーファイルを読み取り、それを使ってボリュームのロックを解除できるからです。キーファイルを使う意味があるのは、それを保存するディスク自体が暗号化されている場合だけです。画面のないサーバーでは、暗号化されたシステムをリモートでロック解除するか、再起動のたびに手動でロック解除するのが一般的な妥協案です。
暗号化は、読み取りと書き込みのたびに計算コストを増やします。LLMでは、重みの読み取りは主にモデルの読み込み時に行われるため、影響が最も顕著に現れるのはトークン生成ではなく、読み込み時間です。cryptsetup benchmarkでプロセッサの暗号化スループットを測定し、暗号化の導入前後でモデルの読み込み時間を比較してください。一般的な数値を当てにしないでください。
#NASおよびバックアップ:暗号化を解除しないでください
- NAS
- モデルやバックアップを保存している共有フォルダが暗号化されていることと、暗号化キーの保管場所を確認してください。起動時に自動でボリュームのロックを解除するNASは、ディスクだけが盗まれた場合にはデータを保護できますが、機器全体が盗まれた場合には保護できません。
- バックアップディスク
- 暗号化されていないバックアップ用USBディスクがあると、端末を暗号化していてもその保護が無意味になります。同じツールでそのディスクを暗号化するか、書き込み前に暗号化するバックアップソフトを使ってください。
- クラウド上のバックアップ
- 暗号化が手元で行われ、自分だけが保有する鍵が使われていることを確認してください。そうでなければ、サービス提供元は技術的にはファイルを読むことができます。
- リカバリキー
- 鍵と、その鍵で保護するバックアップは、必ず別々の2か所に保管してください。
| マシン | ツール | 注意点 |
|---|---|---|
| Apple 製チップを搭載した MacBook または Mac mini | FileVault (既にチップで暗号化されたデータ) | 機密データを扱う場合は、iCloudではなく復旧キーで復旧する |
| Windows ProまたはEnterpriseを搭載したPC | TPMおよびPINによるBitLocker | 回復キーはどこに保存されていますか? |
| Windows Home搭載PC | デバイス暗号化、またはVeraCrypt | Microsoftアカウントに紐づくキー |
| PCまたはLinuxサーバー、システムディスク | インストール時にLUKSを有効にする | ヘッダーのバックアップ、起動時のパスワード入力 |
| Linux、暗号化されていないシステム、セカンダリディスク | 2台目のディスクでLUKSを使用 | 暗号化されていないシステムには鍵ファイルを保存しない |
| NAS | NASの暗号化されたボリュームまたはフォルダ | 再起動後に手動で解除 |
#モデルを保存するディスクの暗号化に関するよくある質問
Ollamaのモデルフォルダを暗号化する必要がありますか?+
FileVaultはローカルLLMのパフォーマンスを低下させますか?+
Windows HomeでBitLockerは利用できますか?+
復旧キーを紛失すると、どうなりますか?+
起動時にLUKSボリュームを自動でロック解除できますか?+
ディスクの暗号化だけでGDPRに対応できますか?+
ご意見、誤りのご指摘、補足はありますか?ぜひお知らせください。皆さんにとってより良いガイドにするために役立ちます。