BitLocker適用下のWOL (1) – 概要と事前準備

はじめに

出先からリモートデスクトップで作業可能なことは、デスクトップPCの利点の一つと言えます。Wake On LAN (WOL)へ対応すれば、必要なタイミングで出先から電源を入れることができ、電気代も最小限に抑えることができるでしょう。
一方で、BitLockerにて起動時のPIN入力を有効化している場合、WOLのみでは暗号化解除ができず、PCを起動させることができません。
今回はWOL送信用のデバイスにて、Windows Serverで使用可能なBitLocker ネットワークロック解除機能をエミュレートし、PIN有りBitLocker環境における遠隔での電源投入を実現します。

システム構成

構成は極めてシンプルです。24/365のデバイス (今回はNASを利用) をサーバ側とし、WOLのMagic PacketとBitLockerネットワークロック解除プロトコル1を扱えるプログラムを置きます。


このプログラムはを実行すると、Magic Packetを送信した後NKPUの受信待ちをします。PCはMagic Packetにより起動した後、NKPUでBitLockerを解除し、無事立ち上がるというわけです。

証明書の用意

まずは使用する証明書を用意します。
幸い Microsoft Learn にて証明書の詳細パラメータが紹介されていますので、これに則って作成しました。
概ね以下のパラメータに気を付ければよさそうです(2023/10時点)。

  • 秘密鍵長:2048bit
  • 署名アルゴリズム:SHA512
  • キー使用法:keyEncipherment
  • 拡張キー使用法:1.3.6.1.4.1.311.67.1.1

参考まで、OpenSSLでの発行手法を載せておきます。

#秘密鍵生成
openssl genrsa -aes512 -passout pass:hogehoge -out BitLocker.key 2048

# 署名要求作成
openssl req -batch -new -key BitLocker.key -out BitLocker.csr -subj "/CN= BitLocker Network Unlock"

# 自己署名
openssl x509 -req -in BitLocker.csr -signkey BitLocker.key -sha512 -days 365 -out BitLocker.crt -extfile Option.txt -outform DER

なお、使用した拡張情報ファイル Option.txt の内容は以下の通りです。

keyUsage = keyEncipherment
extendedKeyUsage = 1.3.6.1.4.1.311.67.1.1
subjectKeyIdentifier = hash

事前準備はこのあたりでおしまいです。
次回以降、NKPUのエミュレートを中心に記載します。


  1. Network Key Protector Unlock (NKPU)プロトコル
    Microsoftの公式ドキュメント↗

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です