Windows DPAPI暗号化キー管理を備えたBitLocker


8

Hyper-V仮想マシン内からアクセス可能なiSCSI LUNに静止暗号化を適用する必要があります。

SAN上のLUNにiSCSIアクセスできるHyper-V仮想サーバーでWindows Server 2012を使用して、BitLockerを使用する実用的なソリューションを実装しています。私たちは正常に定義される「フロッピーディスク鍵記憶」ハックを使用してこれを行うことができたこの記事。しかし、この方法は私には「気さく」に思えます。

私の継続的な調査で、Amazon Corporate ITチームが「フロッピーディスクハック」なしで、よりエレガントなソリューションで私が探していたものを正確に概説するホワイトペーパーを公開していることを知りました。このホワイトペーパーの7ページで、BitLockerキーを安全に管理するためにWindows DPAPI暗号化キー管理を実装したと述べています。これはまさに私がやろうとしていることですが、これを行うにはスクリプトを作成する必要があると彼らは述べましたが、スクリプトやスクリプトの作成方法に関するポインタさえ提供していません。

サーバーのマシンアカウントのDPAPIキーで保護されたサービスとキーストアファイルに関連するスクリプト」(ホワイトペーパーに記載されているとおり)を作成してBitLockerボリュームを管理および自動ロック解除する方法の詳細はありますか?任意のアドバイスをいただければ幸いです。

---編集1 ---

以下のエヴァンの応答に基づいて、これは私が理解したことですが、私はまだ行き詰まっています。

PsExecを使用して次のコマンドを実行し、PowerShellがSystemアカウントで実行されており、Evanが述べたように「マシンアカウントのパスワードで文字列を暗号化」すると想定しています。これは正しいです?

PsExec.exe -i -s Powershell.exe

次に、PS内から(この投稿を参照として使用して)、次のコマンドを実行してSecureStringパスワードを生成します。

ConvertTo-SecureString -String "MyBitLockerPassword" -AsPlainText –Force | ConvertFrom-SecureString | Out-File C:\securestring.txt

これにより、 "01000000d08c…"(合計524文字)の形式で安全な文字列を含むファイルが得られます。次に、起動時に実行するスケジュールタスクを作成して、次を使用してパスワードを(Se​​cureStringとして)ロードし、それをUnlock-BitLockerコマンドに渡します。

$SecureBitLockerPassword = Get-Content C:\securestring.txt | ConvertTo-SecureString
Unlock-BitLocker -MountPoint "E:" -Password $ SecureBitLockerPassword

ただし、暗号化されたパスワードをファイルとしてハードドライブに保存するだけの場合、パスワードの暗号化と復号化の意味は何ですか?これは、パスワードをプレーンテキストで保存し、以下を使用する(セキュリティで保護された文字列ファイルを作成する必要がない)場合と同じくらい安全ではないでしょうか。

$SecureString = ConvertTo-SecureString " MyBitLockerPassword " -AsPlainText –Force
Unlock-BitLocker -MountPoint "E:" -Password $SecureString

他にどのようにこれに取り組みますか?システムアカウントのみがアクセスできるように、SecureStringキーをどこに保存できますか?

回答:


6

Amazonが行っていることはすべて、BitlockerキーをSYSTEMコンテキストのDPAPIに格納しているようです。これは、TPMが仮想マシンに公開されていない場合、TPMにキーを格納するよりもはるかに安全ではありません(TPMに格納されているキーではなく、SYSTEMとして実行されているサービスでプレーンテキストのキーを取得できるため)。これはおそらく唯一の選択肢です。

彼らが説明しているものと同様のことを達成するために、おそらくConvertFrom-SecureString無料のConvertTo-SecureStringPowerShell APIを使用します。Microsoftドキュメントでは、ConvertFrom-SecureString静的キーが指定されていない場合、コマンドレットはDPAPIを使用します。スクリプトをSYSTEMコンテキストで実行すると、DPAPIがマシンアカウントのパスワードを使用して文字列を暗号化します。

その時点から、それは使用しての問題ですmanage-bde(例えば検出したパスワードを使用してドライブのロックを解除するためのツールをmanage-bde -unlock x: -password


エヴァン、あなたのポストをありがとう。あなたは私を正しい方向に向けていますが、私はまだ暗号化されたキーがどこにどのように保存されるかを決定するのに行き詰まっています。上記の元の投稿で私の更新を参照してください。
bigmac 2013

1
@bigmac-私の最初の段落に「はるかに安全性が低い」というフレーズが含まれているのはあなたの編集です。この方法が提供する唯一の保護は、SYSTEM権限を取得する可能性のある攻撃者からキーを保護し、SYSTEMを取得すると、キーの「ゲームオーバー」になります。TPMでは、少なくとも、その鍵を明かすことはできません。Bitlockerキーをメモリから取得することは確かに可能です。コールドブートメモリは物理的なハードウェアを攻撃しますが、TPMのキーを危険にさらすことはありません。アマゾンのホワイトペーパーはセキュリティシアターです。
エヴァンアンダーソン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.