IBM Cloud: Bare Metal Server for VPCで、TPM+BitLockerを試してみる

# 1. はじめに

TPM（Trusted Platform Module）は、コンピュータやデバイスに組み込まれたセキュリティチップの一種で、暗号化キーやパスワード、証明書などの重要なデータをハードウェアレベルで保護するために設計されている。 IBM CloudのBare Metal Server for VPC(BM for VPC)でも利用可能である。

本稿では、Windowsに標準搭載されているディスク暗号化機能であるBitLockerを使用してディスクを暗号化する。BitLockerは、TPMを利用して暗号化キーを安全に保管できる。しかし、TPMがない場合は、BitLockerは暗号化キーを保護するためのハードウェアが存在しないため、外部デバイス（通常はUSBフラッシュドライブ）に暗号化キーを保存し、システム起動時にそのUSBドライブを挿入してディスクの暗号化を解除することも可能である。ただし、この方法をクラウド環境で実現することはできない。そのため、BitLockerを利用したい場合は、TPMをサポートしている環境を使用するのが望ましいだろう。

> https://learn.microsoft.com/ja-jp/windows/security/operating-system-security/data-protection/bitlocker/faq
> **TPM が取り付けられていないオペレーティング システム ドライブで BitLocker を使用できますか。**
はい。BIOS または UEFI ファームウェアがブート環境の USB フラッシュ ドライブから読み取ることができる場合は、TPM を使用しないオペレーティング システム ドライブで BitLocker を有効にすることができます。 BitLocker は、BitLocker の独自のボリューム マスター キーがコンピューターの TPM またはそのコンピューターの BitLocker スタートアップ キーを含む USB フラッシュ ドライブによって最初に解放されるまで、保護されたドライブのロックを解除しません。 ただし、TPM を持たないコンピューターでは、BitLocker でも提供できるシステム整合性検証を使用できません。 ブート プロセス中に USB デバイスから読み取る機能がコンピューターにあるかどうかを判断するには、BitLocker のセットアップ プロセスの一部として、BitLocker システム チェックを使用します。 このシステム チェックは、コンピューターが適切なタイミングで USB デバイスから正常に読み取れること、および BitLocker の他の要件をコンピューターが満たしていることを、テストして確認します。



# 2. BM for VPCの注文

1. サーバー名やリソースグループを入力
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/a38352be-4e31-b517-551c-9e634bbf1b09.png)
2. Windows Server 2022を選択。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/05ae507a-ed99-ca2e-1add-0ed572f1a569.png)
3. Networkなどを選択。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/9739e373-db51-29e7-240b-993a82bfa6b4.png)
4. TPMを有効化する。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/9398c966-061a-eca9-c783-82a63dd0fa58.png)

# 3. 構成確認


## 3-1. device security

1. device securityの起動 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/2f522152-e7bf-1f67-af8e-2d4f6b49bca3.png)
2. Security Processor Detailsを選択 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/ce8b2775-2883-f95a-e374-6367aca92acb.png)
3. Security processor troubleshootingを選択 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/57ea2b18-60af-68da-09dd-1c71c2d1c8ff.png)
4. Clear TPMが選択可能。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/310e7c39-0372-4a36-deb3-ebbd897d1217.png)



## 3-2. device manager

1. device managerの起動![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/71a5abb9-f655-b1e0-2e8e-3a914d6e90eb.png)
2. TPMが認識されている。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/d7cec174-9f8e-9397-e8d3-cdade8143019.png)

# 4. BitLockerのインストール

Server ManageからBitLockerをインストール（詳細ステップは省略）
1. `Add Roles and Features`にて、`Bitlocker Drive Encryption`を追加すれば良い。以後、再起動が発生する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/0a7835c7-85e8-015e-b422-c32d9744e72a.png)
2. 再起動後の画面
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/41a44ca2-0fb5-4e56-d0d4-0a2f395ed2bf.png)

# 5. BitLockerの構成

1. BitLockerの起動 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/cdae9228-405d-5533-2d88-ca255bbeed03.png)
2. Turn on BitLocker ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/2da14635-1a88-4ece-06c0-feecbf65a230.png)
3. Next ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/940c7248-01b8-a64c-37c3-7fa618642aa6.png)
4. Next ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/46716246-c0f8-e523-884a-62c889fa0ed0.png)
5. Next ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/6c5225f9-df56-68b6-3164-de82fe1ccb4b.png)
6. Recovery Keyを保管する。保管できたらNext。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/0dccf483-1397-fa0f-8b60-caf514b52ea7.png)
    - 補足１）暗号化対象のディスクは保管先として選択できない（当たり前）。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/84d2c62c-c792-6beb-349b-6816a7a7124c.png)
    - 補足２）別ドライブであってもrootディレクトリには保管できないので、何かしらディレクトリを作成してそこに保管する必要がある。ただし、同じサーバー内に保管することはできても、このリカバリーファイルはWindows起動の時に将来必要になるかもしれないのだから、必ずリモート環境に保管しておくこと。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/5f037d49-3a32-3c29-043e-c44139655d04.png) Remote Desktopでは容易に端末のファイルシステムとディスク共有ができるので、直接Remote Desktop端末に配置しても良い。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/561ce8ec-1b02-0086-ee07-9df00e677b15.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/31d0e6b3-f5ea-1d9e-7642-f8584f53b305.png)
7. 利用領域のみを暗号化するか、ドライブ全体を暗号化するかどうか。今回は、ドライブ全体を暗号化する。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/3f2572da-7583-0b6f-62dc-12e86a8ad4d8.png)
8. 新しいEncryption modeを利用する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/bafa20cf-494b-d074-157b-f61ca761cbcd.png)
9. BitLocker system checkを実行する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/f980f933-8129-9569-8915-a9dc2901f64a.png)
10. 再起動を行う![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/c1bb104d-6f78-ebcc-91d9-8776f8167580.png)

再起動後の状態は以下の通り。

- 暗号化中 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/6649f94b-2fbe-9a76-f94c-b6400163f461.png)
- CドライブはBitLocker Encryptedとなっている。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/58719b17-7e2c-37a5-97b2-c3bd5bd77da1.png)

```txt:進捗状況
PS C:\Users\Administrator.SYASUDA-TPM> manage-bde -status
BitLocker Drive Encryption: Configuration Tool version 10.0.20348
Copyright (C) 2013 Microsoft Corporation. All rights reserved.

Disk volumes that can be protected with
BitLocker Drive Encryption:
Volume C: []
[OS Volume]

    Size:                 98.25 GB
    BitLocker Version:    2.0
    Conversion Status:    Encryption in Progress
    Percentage Encrypted: 75.4%
    Encryption Method:    XTS-AES 128
    Protection Status:    Protection Off
    Lock Status:          Unlocked
    Identification Field: Unknown
    Key Protectors:
        TPM
        Numerical Password

Volume D: []
[Data Volume]

    Size:                 795.20 GB
    BitLocker Version:    None
    Conversion Status:    Fully Decrypted
    Percentage Encrypted: 0.0%
    Encryption Method:    None
    Protection Status:    Protection Off
    Lock Status:          Unlocked
    Identification Field: None
    Automatic Unlock:     Disabled
    Key Protectors:       None Found
```

-  暗号化完了の状態
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/1aa3d446-4399-a995-47a2-c2f1b0b67dc4.png)


```txt:暗号化完了の状態
PS C:\Users\Administrator.SYASUDA-TPM> manage-bde -status
BitLocker Drive Encryption: Configuration Tool version 10.0.20348
Copyright (C) 2013 Microsoft Corporation. All rights reserved.

Disk volumes that can be protected with
BitLocker Drive Encryption:
Volume C: []
[OS Volume]

    Size:                 98.25 GB
    BitLocker Version:    2.0
    Conversion Status:    Fully Encrypted
    Percentage Encrypted: 100.0%
    Encryption Method:    XTS-AES 128
    Protection Status:    Protection On
    Lock Status:          Unlocked
    Identification Field: Unknown
    Key Protectors:
        TPM
        Numerical Password

Volume D: []
[Data Volume]

    Size:                 795.20 GB
    BitLocker Version:    None
    Conversion Status:    Fully Decrypted
    Percentage Encrypted: 0.0%
    Encryption Method:    None
    Protection Status:    Protection Off
    Lock Status:          Unlocked
    Identification Field: None
    Automatic Unlock:     Disabled
    Key Protectors:       None Found
```

# 6. TPM検証

## テスト1: TPMを無効にする

- サーバーを停止すれば、TPMを無効にすることが可能。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/ca6b9f25-6958-b76e-a9b8-294b47246c5c.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/f471f7c3-39cb-6f99-cf59-838e4c27b221.png)
- そこで、サーバーを起動しても、Windowsが起動しない。VNC Consoleから確認すると、以下のような画面が現れている。これは、ディスクを復号するための鍵が見つからないからである（期待通り）。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/3a9ed959-3a69-4cb9-c152-050e40a92197.png)
- 先ほど保存したRecovery keyを入力すると無事起動する。![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/3a3422e2-8627-4dcc-e4c2-04580bf66400.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/84f28a1d-d0c9-32c7-0a01-672e1d5bd007.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/f8b4eac9-da9b-e22b-8666-fb90e0611722.png)


## テスト2: TPMを再度有効化する


- サーバーを停止し、再度TPMを有効にしてみる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/d5d1910f-7ad0-4cfd-4601-b69f5a0e8589.png)
- 今度は何事もなく起動できた。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62127/f97fe507-72e2-e27d-532e-f5180b9237ec.png)