BitLocker 構成: 既知の問題
この記事では、BitLocker の構成と一般的な機能に影響する一般的な問題について説明します。 この記事では、これらの問題に対処するためのガイダンスも提供します。
Windows 10 および Windows 11 での BitLocker 暗号化の速度が低下する
BitLocker はバックグラウンドで実行され、ドライブを暗号化します。 ただし、Windows 11 と Windows 10 では、BitLocker は以前のバージョンの Windows よりもリソースの要求に対してあまり積極的ではありません。 この動作により、BitLocker がコンピューターのパフォーマンスに影響を与える可能性が低くなります。
これらの変更を補正するために、BitLocker は Encrypt-On-Write という変換モデルを使用します。 このモデルにより、BitLocker が有効になるとすぐに、新しいディスク書き込みが確実に暗号化されます。 この動作は、すべてのクライアント エディションと内部ドライブで発生します。
重要
下位互換性を維持するために、BitLocker は以前の変換モデルを使用してリムーバブル ドライブを暗号化します。
新しい変換モデルを使用する利点
以前の変換モデルを使用すると、BitLocker 変換が 100% 完了するまで、内部ドライブを保護され、データ保護標準に準拠しているとみなすことはできません。 プロセスが完了する前に、暗号化が開始される前にドライブに存在していたデータ (つまり、侵害された可能性があるデータ) は、暗号化なしで読み取りおよび書き込みを行うことができます。 そのため、データを保護対象と見なしてデータ保護標準に準拠するには、機密データがドライブに格納される前に暗号化プロセスを完了する必要があります。 ドライブのサイズによっては、この遅延が大幅に発生する可能性があります。
新しい変換モデルを使用すると、BitLocker がオンになるとすぐに機密データをドライブに格納できます。 暗号化プロセスは最初に完了する必要はありません。暗号化はパフォーマンスに悪影響を与えません。 トレードオフは、既存のデータの暗号化プロセスに時間がかかるということです。
その他の BitLocker の機能強化
Windows 7 以降にリリースされた Windows のバージョンでは、BitLocker の他のいくつかの領域が改善されました。
新しい暗号化アルゴリズム XTS-AES - Windows 10 バージョン 1511 で追加されたこのアルゴリズムは、暗号テキストの操作に依存する暗号化されたデータに対する攻撃のクラスからの追加の保護を提供し、プレーン テキストの予測可能な変更を引き起こします。
既定では、このアルゴリズムは連邦情報処理標準 (FIPS) に準拠しています。 FIPS は、暗号化ソフトウェアを実装するためのベンチマークを提供する米国 Government 標準です。
管理機能の改善。 BitLocker は、次のインターフェイスを使用して、PC またはその他のデバイスで管理できます。
- BitLocker ウィザード
- manage-bde.exe
- グループ ポリシー オブジェクト (GPO)
- モバイル デバイス管理 (MDM) ポリシー
- Windows PowerShell
- Windows 管理インターフェイス (WMI)
Microsoft Entra ID (Microsoft Entra ID) との統合 - BitLocker は回復情報を Microsoft Entra ID に格納して、回復を容易にすることができます。
ダイレクト メモリ アクセス (DMA) ポート保護 - MDM ポリシーを使用して BitLocker を管理することで、デバイスの DMA ポートをブロックし、起動時にデバイスをセキュリティで保護できます。
BitLocker ネットワークのロック解除 - BitLocker 対応のデスクトップまたはサーバー コンピューターがドメイン環境の有線企業ネットワークに接続されている場合、システムの再起動時にそのオペレーティング システム ボリュームのロックを自動的に解除できます。
暗号化されたハード ドライブのサポート - 暗号化されたハード ドライブは、ハードウェア レベルで自己暗号化され、ディスク全体のハードウェア暗号化を可能にする新しいクラスのハード ドライブです。 そのワークロードを引き受けることで、暗号化ハード ドライブによって BitLocker のパフォーマンスが向上し、CPU 使用率と電力消費量が削減されます。
HDD/SSD ハイブリッド ディスクのクラスのサポート - BitLocker は、Intel Rapid Storage Technology などの HDD の前面にある不揮発性キャッシュとして小さな SSD を使用するディスクを暗号化できます。
Hyper-V 第 2 世代 VM: BitLocker 暗号化後にボリュームにアクセスできない
以下のシナリオについて考えてみます。
BitLocker は、Hyper-V 上で実行される第 2 世代仮想マシン (VM) を有効にします。
データは暗号化時にデータ ディスクに追加されます。
VM が再起動され、次の動作が観察されます。
システム ボリュームは暗号化されていません。
暗号化されたボリュームにはアクセスできません。コンピューターはボリュームのファイル システムを Unknown として一覧表示します。
次のようなメッセージが表示されます。
使用する前に、ディスクを <drive_letter:> ドライブにフォーマットする必要があります
Hyper-V 第 2 世代 VM で BitLocker 暗号化後にボリュームにアクセスできない原因
この問題は、サードパーティのフィルター ドライバー Stcvsm.sys (StorageCraft から) が VM にインストールされているために発生します。
Hyper-V 第 2 世代 VM で BitLocker 暗号化後にボリュームにアクセスできない問題の解決策
この問題を解決するには、サード パーティ製ソフトウェアを削除します。
BitLocker で暗号化されたディスクを使用する仮想化ドメイン コントローラーの運用スナップショットが失敗する
以下のシナリオについて考えてみます。
Windows Server 2019 または 2016 Hyper-V Server は、Windows ドメイン コントローラーとして構成されている VM (ゲスト) をホストしています。 ドメイン コントローラーのゲスト VM では、BitLocker によって、Active Directory データベースとログ ファイルを格納するディスクが暗号化されています。 ドメイン コントローラーのゲスト VM の "運用スナップショット" が試行されると、ボリューム スナップショット (VSS) サービスによってバックアップが正しく処理されません。
この問題は、環境の次のバリエーションに関係なく発生します。
- ドメイン コントローラー ボリュームのロック解除方法。
- VM が第 1 世代か第 2 世代か。
- ゲスト オペレーティング システムが Windows Server 2019、2016、2012 R2 のいずれであるか。
ゲスト VM ドメイン コントローラー Windows Logs>Application イベント ビューアー ログで、VSS イベント ソースレコード イベント ID 8229:
ID: 8229
レベル: 警告
ソース: VSS
メッセージ: VSS ライターがエラー 0x800423f4を含むイベントを拒否しました。 ライターで一過性ではないエラーが発生しました。 バックアップ プロセスが再試行されると、エラーが繰り返し発生する可能性があります。イベントの処理中にライターがライター コンポーネントに加えた変更は、リクエスターでは使用できません。
VSS ライターをホストしているアプリケーションからの関連イベントのイベント ログを確認します。
操作:
PostSnapshot イベントコンテキスト:
実行コンテキスト: ライター
ライター クラス ID: {b2014c9e-8711-4c5c-a5a9-3cf384484757}
ライター名: NTDS
ライター インスタンス ID: {d170b355-a523-47ba-a5c8-732244f70e75}
コマンド ライン: C:\Windows\system32\lsass.exeプロセス ID: 680
ゲスト VM ドメイン コントローラー アプリケーションとサービス ログ>Directory Service イベント ビューアー ログには、次のようなイベントがログに記録されます。
エラー Microsoft-Windows-ActiveDirectory_DomainService 1168
内部処理内部エラー: Active Directory ドメイン サービス エラーが発生しました。追加データ
エラー値 (10 進数): -1022エラー値 (16 進数): fffffc02
内部 ID: 160207d9
Note
このイベントの内部 ID は、オペレーティング システムのリリース バージョンとパッチ レベルによって異なる場合があります。
この問題が発生すると、vssadmin.exe list writers
コマンドを実行すると、Active Directory ドメイン サービス (NTDS) VSS ライターに次のエラーが表示されます。
Writer name: 'NTDS'
Writer Id: {b2014c9e-8711-4c5c-a5a9-3cf384484757}
Writer Instance Id: {08321e53-4032-44dc-9b03-7a1a15ad3eb8}
State: [11] Failed
Last error: Non-retryable error
さらに、VM は再起動されるまでバックアップできません。
BitLocker で暗号化されたディスクを使用する仮想化ドメイン コントローラーの運用スナップショットの原因が失敗する
VSS がボリュームのスナップショットを作成すると、VSS ライターは "スナップショット後" アクションを実行します。 ホスト サーバーから "運用スナップショット" が開始されると、Hyper-V はスナップショットボリュームのマウントを試みます。 ただし、暗号化されていないアクセスのためにボリュームのロックを解除することはできません。 Hyper-V サーバー上の BitLocker はボリュームを認識しません。 そのため、アクセス試行は失敗し、スナップショット操作は失敗します。
この動作は仕様によるものです。
BitLocker で暗号化されたディスクを使用する仮想化ドメイン コントローラーの運用スナップショットの回避策が失敗する
仮想化ドメイン コントローラーのバックアップと復元を実行するためにサポートされている方法は、ゲスト オペレーティング システムで Windows Server Backup を実行することです。
仮想化ドメイン コントローラーの運用スナップショットを作成する必要がある場合は、実稼働スナップショットが開始される前に、ゲスト オペレーティング システムで BitLocker を中断できます。 ただし、この方法はお勧めしません。
仮想化ドメイン コントローラーのバックアップの詳細と推奨事項については、「 Hyper-V を使用したドメイン コントローラーの仮想化: 仮想化ドメイン コントローラーのバックアップと復元に関する考慮事項」を参照してください。
詳細
VSS NTDS ライターが暗号化されたドライブへのアクセスを要求すると、ローカル セキュリティ機関サブシステム サービス (LSASS) によって次のようなエラー エントリが生成されます。
\# for hex 0xc0210000 / decimal -1071579136
STATUS\_FVE\_LOCKED\_VOLUME ntstatus.h
\# This volume is locked by BitLocker Drive Encryption.
この操作により、次の呼び出し履歴が生成されます。
\# Child-SP RetAddr Call Site
00 00000086\`b357a800 00007ffc\`ea6e7a4c KERNELBASE\!FindFirstFileExW+0x1ba \[d:\\rs1\\minkernel\\kernelbase\\filefind.c @ 872\]
01 00000086\`b357abd0 00007ffc\`e824accb KERNELBASE\!FindFirstFileW+0x1c \[d:\\rs1\\minkernel\\kernelbase\\filefind.c @ 208\]
02 00000086\`b357ac10 00007ffc\`e824afa1 ESENT\!COSFileFind::ErrInit+0x10b \[d:\\rs1\\onecore\\ds\\esent\\src\\os\\osfs.cxx @ 2476\]
03 00000086\`b357b700 00007ffc\`e827bf02 ESENT\!COSFileSystem::ErrFileFind+0xa1 \[d:\\rs1\\onecore\\ds\\esent\\src\\os\\osfs.cxx @ 1443\]
04 00000086\`b357b960 00007ffc\`e82882a9 ESENT\!JetGetDatabaseFileInfoEx+0xa2 \[d:\\rs1\\onecore\\ds\\esent\\src\\ese\\jetapi.cxx @ 11503\]
05 00000086\`b357c260 00007ffc\`e8288166 ESENT\!JetGetDatabaseFileInfoExA+0x59 \[d:\\rs1\\onecore\\ds\\esent\\src\\ese\\jetapi.cxx @ 11759\]
06 00000086\`b357c390 00007ffc\`e84c64fb ESENT\!JetGetDatabaseFileInfoA+0x46 \[d:\\rs1\\onecore\\ds\\esent\\src\\ese\\jetapi.cxx @ 12076\]
07 00000086\`b357c3f0 00007ffc\`e84c5f23 ntdsbsrv\!CVssJetWriterLocal::RecoverJetDB+0x12f \[d:\\rs1\\ds\\ds\\src\\jetback\\snapshot.cxx @ 2009\]
08 00000086\`b357c710 00007ffc\`e80339e0 ntdsbsrv\!CVssJetWriterLocal::OnPostSnapshot+0x293 \[d:\\rs1\\ds\\ds\\src\\jetback\\snapshot.cxx @ 2190\]
09 00000086\`b357cad0 00007ffc\`e801fe6d VSSAPI\!CVssIJetWriter::OnPostSnapshot+0x300 \[d:\\rs1\\base\\stor\\vss\\modules\\jetwriter\\ijetwriter.cpp @ 1704\]
0a 00000086\`b357ccc0 00007ffc\`e8022193 VSSAPI\!CVssWriterImpl::OnPostSnapshotGuard+0x1d \[d:\\rs1\\base\\stor\\vss\\modules\\vswriter\\vswrtimp.cpp @ 5228\]
0b 00000086\`b357ccf0 00007ffc\`e80214f0 VSSAPI\!CVssWriterImpl::PostSnapshotInternal+0xc3b \[d:\\rs1\\base\\stor\\vss\\modules\\vswriter\\vswrtimp.cpp @ 3552\]