BitLocker

Windows BitLockerドライブ暗号化 （ウィンドウズ ビットロッカードライブあんごうか）は、Microsoft Windowsに搭載されているデータ暗号化機能である。Windows Vistaで初めて搭載された。

 概要 
Windows OS上で、ディスク（の各パーテーション）全体を暗号化することができるセキュリティ機能である。

BitLockerドライブ暗号化を施してあるパーテーションは、そのメディア（HDD,SSD,USBメモリなど）を他のPCにディスクを接続しても、パスワードなどを入力しない限り中身を読むことはできない。コンピューターにTrusted Platform Module(TPM)が搭載されていれば、それを使用して暗号化を行う。

BitLockerドライブ暗号化は、Microsoft Encrypting File System（暗号化ファイルシステム、EFS）とは別の機能で、それぞれ異なる種類の攻撃に対する保護を提供する（詳細は後述）。

Microsoft Encrypting File System（暗号化ファイルシステム、EFS）はユーザーの選択により単独のファイルやディレクトリーごと、またはドライブごとにNTFSファイルシステム上で$EFS代替データストリームに暗号化キーを格納することにより透過的な暗号化を有効にできる（よってFAT32のUSBメモリなどでは使用不可）。一方、BitLockerドライブ暗号化は、単独のファイルやディレクトリーごとの透過的な暗号化はできないものの、FAT32システムフォーマットのUSBメモリも暗号化できる。

BitLockerで暗号化されたディスクはWindows VistaとWindows 7では128ビットまたは256ビットのAES-CBC + Elephant diffuserで暗号化される。Windows 8ではAES-CBCのみで暗号化される。Windows 10バージョン1511ではXTS-AESも使用可能になった。暗号化されたディスクは、一般的に3〜5％のパフォーマンス低下が見られる。また、SSDのTrim機能に対応する。

 機能を使用できるWindowsのバージョン 
BitLockerで、まだ暗号化されていないディスクを暗号化ディスクに変換する機能は、各Windowsの上位エディションに限定されている。

クライアントWindowsでは以下のエディションで使用可能である。
 Vistaと7ではUltimate、Enterpriseエディション
 8と8.1ではPro、Enterpriseエディション
 10と11ではPro、Enterprise、Educationエディション
Windows Server 2008 以降では、いずれのエディションでも使用可能である。

一方で、BitLockerで暗号化されたディスクを読み取る機能は、各Windowsの（無印、Home,starterなどの）下位エディションでも可能である。BitLocker の機能限定版である「デバイスの暗号化」は後述。

 暗号化アルゴリズムの互換性 
2015年11月にリリースされたWindows 10 バージョン 1511（Windows 10 TH2、2018年4月にサポート終了） 以降、マイクロソフトは、BitLocker に新しい FIPS 準拠の XTS-AES暗号化アルゴリズムを追加し、オペレーティング システム ドライブと、固定データ ドライブを暗号化しようとした場合にXTS-AES 128 ビットが規定のアルゴリズムとして選択されるようになった（リムーバブルドライブは既定でAES-CBC 128アルゴリズムが選択される）。
。

 AES-CBC 128 ビット(リムーバブル データ ドライブ既定) 
 AES-CBC 256 ビット
 XTS-AES 128 ビット (オペレーティング システム ドライブ,固定データ ドライブ既定)
 XTS-AES 256 ビット

このため、リムーバブルはもちろんのこと、OSドライブや、データ専用の内蔵HDD,SSDを、特に意識せず（アルゴリズムの指定をせず）にBitLocker暗号化した場合、そのBitLocker暗号化ドライブは（既定値のXTS-AESアルゴリズムで暗号化されるため、これに非対応の）Windows 8.1やWindows 7などでは読み取りできないこととなる。

固定データ ドライブを、Windows 10 (Version 1511) 以降が実行されていない他のデバイスで使用する可能性がある場合、AES-CBC 128 ビットまたは AES-CBC 256 ビットを使用する必要がある。例えばOSドライブとは別の内蔵デバイスとしてSATA接続のデータ専用SSDを（データの移行や復旧作業などのために）一時的にWindows 8.1やWindows 7など、別のOSが稼働する環境に付け替えて読み取りを試みる可能性がある場合、最初にBitLocker暗号化する段階で、暗号化アルゴリズムを意図的に（リムーバブルドライブと同様の）AES-CBC 128 ビットまたは AES-CBC 256 ビットに指定して暗号化しておかねば、読み取りできない。

 BitLocker To Go 
Windows 7以降のエディションでは、USBメモリなどのリムーバブル・ディスクの暗号化を行えるBitLocker To Go機能が追加された。

 BitLocker To Go リーダー 
BitLocker To Go非対応のWindows XPとWindows Vistaで、暗号化されたディスクからデータを読み取るためのアプリケーション。読み取りのみで書き込みは行えない。また、読み取れるのはFAT16、FAT32、またはexFATのみでNTFSや他のファイルシステムは読み取れない。

Windows 7以降では下位エディションでもBitLockerで暗号化されたドライブの読み書きが可能なためリーダーは必要なく上記の制限はない。

 デバイスの暗号化 
Windows RT 8とWindows 8.1(無印)で導入された、システムドライブの暗号化のみが可能な、機能限定版。Homeエディションでも利用可能。
InstantGo
TPM 2.0
Microsoftアカウントと紐づけた管理者アカウント
が必須要件。前述のBitLockerが使用可能なエディションではBitLockerから管理できる。

暗号化モード
BitLocker暗号化実装を構築するものとして次の3つの認証機構が使われている。

 透過動作モード このモードはTPM 1.2ハードウェアの機能を使って透過的ユーザー・エクスペリエンスを提供する。ユーザーは通常通り電源を入れてWindowsにログオンする。ディスク暗号化に使われるキーはTPMチップによって暗号化され、改変されていない最初のブートファイルを読み込むときにOSローダーコードによって解除される。BitLockerのOS起動前コンポーネントは によって規定された手法 "" の実装によって成り立っている。このモードはコールドブートアタックに対して脆弱であり、攻撃者は電源が切れているマシンをブートさせることが可能である。
 ユーザー認証モード このモードではOSのブート前にユーザーがPINやパスワードによる認証を行う必要がある。
 USBキー モード ユーザーは保護されたOSから起動するために、起動用のキーを含むUSBデバイスをコンピューターに接続する必要がある。USBキーは暗号化スマートカードを読み込むデバイスで供給される。ただ単に外部USBドライブにキーファイルを格納するよりも、CCIDを使用することが好ましい。CCIDプロトコルは秘密鍵をスマートカードに組み込まれた暗号化プロセッサによって秘匿し、単純にUSBドライブからコピーして盗まれたキーファイルによってシステムが侵害されることを防ぐからである。

上記の認証方法から次の組み合わせがサポートされており、全てはオプションの回復キー（キーエスクロウ）をサポートする。
 TPMのみ
 TPM + PIN
 TPM + PIN + USBキー
 TPM + USBキー
 USBキー
 パスワードのみ

動作
BitLockerは論理ボリューム暗号化システムである。ボリュームはハードディスクドライブ全体であってもそうでなくても、あるいは複数の物理ドライブでスパン構成されていてもよい。また、有効時にはTPMとBitLockerはオフラインでの物理的攻撃、ブートセクタ感染型マルウェアなどを阻止するために、信頼されたブートパス（BIOSやブートセクタ）の同一性を確保する。

BitLockerが機能するために、少なくとも2つのNTFSフォーマット済みボリュームが必要になる。1つはオペレーティングシステム（通常はCドライブ）で、もう一つはオペレーティングシステムのブート用となる最小100MBのボリュームである。ブートボリュームは暗号化されていない必要がある。Windows Vistaではこのボリュームに必ずドライブ文字が割り当てられるが、Windows 7ではその必要はない。旧バージョンのWindowsと異なり、Windows VistaのDISKPARTコマンドはNTFSボリュームのサイズを縮小する機能があり、BitLockerのためのシステムボリュームは確保済みの空き領域から作成することができる。マイクロソフトよりが提供されており、新しいボリュームのためにWindows Vista上の既存のボリュームを縮小して必要なブートストラップファイルを転送するようになっている。Windows 7ではBitLockerが使われていない場合でも既定でブートボリュームを作成するようになっている。

一度代替ブートパーティションが作成されると、TPM、PINまたはUSBキーなどのディスク暗号化キー保護機構を設定した後にTPMモジュールを初期化する必要がある。それからボリュームはバックグラウンド処理で暗号化される。全ての論理セクタを読み込み、暗号化し、ディスクに再度書き戻すため、サイズの大きいディスクでは時間が掛かる場合がある。全てのボリュームが暗号化されてボリュームが安全であると考えられるとき、キーは保護される。BitLockerは低水準デバイスドライバを用いて全てのファイルを暗号化・復号しており、暗号化ボリュームはプラットフォーム上で動作するアプリケーションに対して透過的に作用する。

一度オペレーティングシステムカーネルが起動すると、BitLockerと共に暗号化ファイルシステム (Encrypting File System ; EFS) によって保護が行われる。オペレーティングシステム上のプロセスやユーザーからのファイルの保護はEFSなどのWindows上で実行されるソフトウェアによってのみ暗号化が行われる。従って、BitLockerとEFSはそれぞれ異なる種類の攻撃に対する保護を提供する。

Active Directory環境ではBitLockerはオプションのキーエスクロウをサポートする。（Windows Server 2008以前のWindowsバージョンでActive Directoryサービスが動いている場合、スキームの更新が必要になることがある。）

BitLockerおよび他の完全ディスク暗号化システムは不正なブートマネージャーによる攻撃を受ける可能性がある。一度悪意のあるブートローダーが秘匿情報を手に入れてしまうと、ボリュームマスターキー () を復号して暗号化済みハードディスクのどんな情報も復号または改変するアクセスが可能になる。BIOSやブートセクタを含む信頼されたブートパスを保護するようにTPMを設定することで、BitLockerはこの脅威を低減できる。（ただ、時によってブートパスに対する正しい変更がPCRチェックの失敗と判断され、警告メッセージを表示させることがある。）