web-dev-qa-db-ja.com

Linuxサーバーのディスク暗号化のアプローチ

リモートサーバー上のディスクを完全に暗号化するために利用できるアプローチは何ですか(たとえば、データセンターに同じ場所に配置されています)? Windowsでは、TPMを使用してBitlockerをオンにすることができます。その後、サーバーは再起動できます。攻撃するには、ライブ中にマシンを取得してRAMをダンプするか、TPMを破壊する必要があります。 Linuxでは、何が利用できますか?

これまでのところ、DM-cryptキーをTPMに格納する方法を説明するIBMの「青写真」を見つけました。これが最善のアプローチですか?

http://publib.boulder.ibm.com/infocenter/lnxinfo/v3r0m0/topic/liaai/tpm/liaaitpm_pdf.pdf

7
MichaelGG

問題の最善の解決策を理解するには、達成しようとしていることを明確にする必要があります。言い換えれば、あなたの脅威モデルは何ですか?あなたの攻撃者は誰ですか?暗号化を回避するには、「ライブ中にマシンを取得する」必要があるとおっしゃっていますが(これは、ハッキングを意味すると思います)、同じ場所に配置されたサーバーのシナリオとして最も可能性が高いです。ディスク暗号化は、主に物理的な盗難の場合に使用されます。

また、どのデータを保護しているかを考慮する必要があります。 「ディスクを完全に暗号化する」とおっしゃっていますが、これには暗号化が必要ですか。/usr?標準ディストリビューションを実行している場合、そこには何の関心もありません。サーバーに何が含まれるかについて詳しく知らなければ、推奨を行うことは困難です。

しかし、より具体的な提案をするために、次の架空のサーバーを検討してください。これには次のものが含まれます。

  • いくつかの製品を表示する簡単なウェブサイト
  • Rails/Django/whateverで記述された基本的なCRUD注文アプリケーション
  • 顧客情報と注文のためのPostgresDB

これらのコンポーネントのうち、本当に保護する必要があるのはデータベースだけなので、これにアプローチする方法は次のとおりです。

  • マシンの大部分を暗号化しないままにします(ただし、FS読み取り専用)をできるだけ多くします)
  • データベース用に別のパーティションを作成し、利用可能なLinux暗号化システム(ecryptfsなど)のいずれかを使用して強力なパスワードで暗号化します。
  • 再起動するたびに、ログインして、別の場所に保存されているキーを使用してパーティションをマウントします。
  • 再起動時にサーバーに警告してもらいます

TPMについて言及しましたが、攻撃者が管理者権限を取得した場合など、多くの場合、TPMは役に立ちません。 TrueCryptは 拒否されました この理由でTPMをサポートしています。

4
Steve Smith

TPMをdm-cryptとともに使用することもできます。
https://github.com/shpedoikal/tpm-luks
http://code.google.com/p/cryptsetup/wiki/FrequentlyAskedQuestions#2._Setup

Initrd ramdiskに統合されている場合、フットプリントの小さいSSHサーバーでは、パスワードをリモートで入力してドライブのロックを解除できます。

上記のソリューションはいずれも、サーバーに物理的にアクセスできる熟練した攻撃者から適切に保護されていないことに注意してください。

3
JOAT