毎朝の「ブートパスワード入力」という苦痛
カフェで席に着き、UbuntuノートPCを開いてから、実際にOSが起動するまで、長いパスフレーズを入力するために30秒も待たされる。もしあなたが開発チームのために20〜30台のワークステーションを管理しているなら、この作業は単に面倒なだけでなく、自動化シナリオやサーバーのリモート再起動を妨げる要因にもなります。
現実的なリスクはそれ以上に深刻です。暗号化されていない場合、盗難に遭えば、わずか2分足らずでハードディスクを取り出され、外付けケースに入れられてソースコードや顧客データがすべてコピーされてしまいます。従来のLUKS(Linux Unified Key Setup)はセキュリティ問題を解決しますが、利便性が犠牲になります。
以前のプロジェクトで、ディスク暗号化が義務付けられた際、チーム全員が不満を漏らしていたのを覚えています。毎朝、LUKSパスワードを要求する真っ暗な画面のせいで、仕事への意欲が削がれていました。それが、私がデバイスに搭載されているTPMチップを活用する方向に舵を切った理由です。
なぜ従来のLUKSは依然として不便なのか?
従来の仕組みでは、人間が記憶するパスワードの背後に復号キー(encryption key)を保存します。システム起動時、最小限の環境(initramfs)がロードされ、RAM内のマスターキーを復号するためにパスフレーズの入力待ち状態になります。
この方法には2つの大きな欠点があります:
- 物理的リスク: パスワードを盗み見られたり(ショルダーサーフィン)、単純すぎる設定により解読されたりする可能性があります。
- 運用の切断: 停電後やカーネルのリモートアップデート後に、サーバーが自動で復旧できません。直接人間が介入しない限り、パスワード入力画面で永久に止まってしまいます。
データは、パスワードを記したメモのように簡単に持ち去ることができない「ハードウェア識別子」によって保護されるべきです。
TPM 2.0:マザーボード上のセキュリティキー
現在、ロック解除を自動化する方法はいくつかありますが、TPM 2.0(Trusted Platform Module)が最適な選択肢です。これは、2018年以降のほとんどのノートPCやPCのマザーボードに搭載されている専用チップです。
記憶に頼る代わりに、TPMは暗号化キーを保存し、システムの安全指標(Secure BootやBIOS設定など)が初期状態と完全に一致した場合にのみ,そのキーを解放します。もし誰かがディスクを取り出して別のマシンに接続しても,そのマシンのTPMチップにはキーがないため、データは無意味な文字列のままです。
Ubuntu 24.04 LTSでの実装
Noble Numbat(24.04)では、CanonicalがインストーラーにTPMオプションを統合しました。旧バージョンのように何十行もの複雑なコマンドを入力する必要はありません。社内のDell Latitudeでテストしたところ、15秒足らずでログイン画面まで直接起動しました。
ステップ 1:ハードウェアの確認
BIOS/UEFIで以下の機能が有効になっていることを確認してください:
- TPM 2.0: 通常「Security」セクションにあります。
- UEFI Mode: Legacy/CSMを完全に無効にします。
- Secure Boot: 信頼の連鎖(Chain of Trust)を構築するために有効化します。
ステップ 2:Hardware-backedオプションでの新規インストール
Ubuntu 24.04のインストール中、「Disk Selection(ディスクの選択)」画面で以下の操作を行います:
- Advanced Features…(詳細機能)をクリックします。
- LVM with encryption(暗号化されたLVM)を選択します。
- Hardware-backed encryption (TPM)(ハードウェア支援による暗号化)にチェックを入れます。
システムは自動的に systemd-cryptenroll を使用して、LUKSキーをマシンのTPMチップに関連付けます。
ステップ 3:リカバリキーの管理(必須)
TPMは非常に安全ですが、同時に非常に敏感です。BIOSをアップデートしたりハードウェア構成を変更したりすると、TPMはキーの解放を拒否します。このとき、リカバリキーが唯一の救いとなります。
キースロットの情報を確認するには、以下のコマンドを使用します:
sudo cryptsetup luksDump /dev/nvme0n1p3
(注:nvme0n1p3を実際のパーティション名に置き換えてください)。
リカバリキーの文字列は、パスワードマネージャーにバックアップするか、紙に印刷して金庫に保管してください。暗号化されているそのマシン自体には決して保存しないでください。
ステップ 4:既存のLUKSシステムをアップグレードする
もし既に通常のLUKSでUbuntuをインストールしており、TPMの使用に切り替えたい場合は、サポートツールをインストールしてください:
sudo apt update && sudo apt install tpm2-tools systemd-cryptenroll
その後、以下のコマンドでディスクをTPMに関連付けます:
sudo systemd-cryptenroll --tpm2-device=auto --tpm2-pcrs=0+7 /dev/nvme0n1p3
ここで pcrs=0+7 は、BIOS(PCR 0)とSecure Bootの状態(PCR 7)が変更されていない場合にのみキーを解放することを意味します。悪意のある者がSecure Bootを無効にして不正なOSをロードしようとすると、TPMは即座にキーをロックします。
データ損失を避けるための注意点
多くのシステムに導入してきた経験から得た教訓を以下に示します:
- BIOSアップデートに注意: 新しいファームウェアはPCR値を変更することがよくあります。BIOSの「更新」ボタンを押す前に、必ずリカバリキーを手元に用意しておいてください。OSにログインできたら、再度
cryptenrollコマンドを実行して、新しいPCR値をTPMに更新します。 - デュアルブートの問題: Windows (BitLocker) と Ubuntu を併用している場合、2つのOSがPCR値の書き込みで競合することがあります。最も安全な方法は、2つの独立した物理ディスクを使用することです。
- バックアップの原則: 暗号化は非常に厳格です。TPMチップが故障し、リカバリキーも紛失した場合、データは100%失われます。重要なデータは、必ずクラウドや暗号化されていない外付けHDDにバックアップを取っておいてください。
Ubuntu 24.04でのTPM 2.0の使用は、ユーザー体験における大きな進歩です。エンタープライズレベルのセキュリティを手に入れながら、日常のPC利用における快適さも維持することができます。

