Microsoftは、USBキーとTPMベースのBitLocker復号化プロセスについて this の記事で説明しました。
USBキープロセス:
示されているシーケンスのステップは次のとおりです。
1-オペレーティングシステムが起動し、USBキーを含むUSBデバイスを挿入するようにユーザーに求めます。 2- VMKはUSBデバイスのキーで復号化されます。
3-暗号化されたFVEKがボリュームから読み取られ、復号化されたVMKを使用してそれが復号化されます。
4-ディスクセクターは、アクセス時にFVEKで復号化されます。
5-平文データはアプリケーションとプロセスに提供されます。
TPM初期化プロセス:
示されているシーケンスのステップは次のとおりです。
1- BIOSが起動し、TPMを初期化します。信頼できる/測定されたコンポーネントは、TPMと対話して、コンポーネントの測定値をTPMのプラットフォーム構成レジスタ(PCR)に格納します。
2- PCR値が期待値と一致する場合、TPMはストレージルートキー(SRK)を使用してボリュームマスターキー(VMK)を復号化します。
3-暗号化されたFVEKがボリュームから読み取られ、復号化されたVMKを使用してそれが復号化されます。
4-ディスクセクターは、アクセス時にFVEKで復号化されます。
5-平文データはアプリケーションとプロセスに提供されます。
Windows 8および8.1で、BitLockerは、ユーザーがPINのみを使用してデータを復号化できるようにする新しい機能を取得しました。ボリュームデータを復号化するためにパスワードのようなPIN=のみを使用します。他の方法のようにVMKをデコードしてからFVEKをデコードしますか、それともデータを直接復号化しますか?
USBキーと同じように機能します。
データの暗号化に使用されるキーは、常にユーザーが提供するキーとは別のキーになります。ユーザーは、キープロテクターキーの作成に使用されるキーを提供します。これは、ボリュームマスターキー(VMK)を復号化するために使用されます。 VMKは、ディスク上のデータを実際に暗号化するフルボリューム暗号化キー(FVEK)を復号化するために使用されます。
これは、パスワードを変更した場合に、ハードドライブの内容全体を再暗号化する必要がないようにするためです。
これはかなり上手く説明されています TechNet記事 :
BitLockerキー
暗号化を扱うときはいつでも、キーについて知る必要があり、BitLockerも例外ではありません。 BitLockerは、エレガントですが多少複雑なキーのアーキテクチャを使用しています。
セクター自体は、フルボリューム暗号化キー(FVEK)と呼ばれるキーを使用して暗号化されます。ただし、FVEKはユーザーが使用したり、ユーザーがアクセスしたりすることはできません。 FVEKは、ボリュームマスターキー(VMK)と呼ばれるキーで暗号化されます。このレベルの抽象化にはいくつかのユニークな利点がありますが、プロセスを理解するのが少し難しくなる可能性があります。 FVEKは、セキュリティが侵害された場合、すべてのセクターを再暗号化する必要があるため、厳重に保護された秘密として保持されます。これは時間のかかる操作であるため、避けたい操作です。代わりに、システムはVMKで動作します。
FVEK(VMKで暗号化)は、ボリュームメタデータの一部としてディスク自体に保存されます。 FVEKはローカルに保存されますが、暗号化されていないディスクに書き込まれることはありません。
VMKも暗号化または「保護」されますが、1つ以上の可能なキープロテクターによって保護されます。デフォルトのキープロテクターはTPMです。 TPMの使用については、整合性チェックに関する次のセクションで説明します。緊急時のために、回復パスワードもキープロテクターとして作成されます。回復についても後で説明します。
@ジムが言うように、それはUSBキーオプションに似ています。キープロテクターは、VMKの暗号化されたバージョンを含むボリュームメタデータに格納されます。 VMKを復号化するために、BitLockerはパスワードから派生したキーを使用します。どのキー導出関数が使用されているのかはわかりません(ほとんどのマシンでは0.5秒程度であると思われるため、マシンの機能によって異なる場合があります)。ほぼ間違いなく PBKDF2 、 bcrypt 、または scrypt です。この遅いKDFの出力は、FVEKの復号化に使用されるVMKの復号化に使用されます。
KDFの詳細を誰かが知っている場合は、それらを学ぶことに非常に興味があります。私がオンラインで見つけたすべてのリソースはイライラするほどあいまいでした。