PMPの流儀

PMPの流儀

エンジニアのページ

MENU

Windows11で必須となったTPMの仕組み(Intel PTT, AMD fTPM)

Windows11 で一躍有名になった TPMですが、あまりなじみがありませんでした。TPMどんな役割がありPC内にどのように組み込まれているかを取り上げます。エンジニアの視点でIntel PTTとAMD fTPMについて掘り下げてみます。

TPMとは

TPM(Trusted Platform Module)は、セキュリティの計算機能や、鍵の保管庫の役割を持った独立したチップです。

セキュリティ対策として暗号化や電子署名の仕組みがありますが、根本的な問題として鍵をどこに置くかという問題があります。
HDD内に鍵を置いたのでは秘密は守れません。探しにくいというだけでいつかは特定されてしまいます。
f:id:ruruucky:20210627160330p:plain

TPMのポイントは、HDDの外部でかつ、CPUが直接見えない場所で、鍵を保管だけでなく、鍵の生成、鍵の照合などの機能を閉じ込めてあるところにあります。
鍵を取り出せてしまったら、ウイルスやPCに侵入したハッカーが取り出してしまう可能性があり、意味がありませんので、鍵を使う機能も持っている点が肝要です。
f:id:ruruucky:20210627160417p:plain

家に例えてみましょう。
TPMは家の管理人です。

管理人(TPM)がいない場合
自分で鍵を持っています。鍵をどこかに落としてしまうかもしれませんね。
酷いケースだと、鍵は庭の石の下に隠しています。見つけられる可能性は低いですがなんとも危険です。遠くから泥棒が見ているかもしれませんよ。

管理人(TPM)がある場合
鍵は管理人が保管しており、自由に出入りはできません。鍵を借りることもできません。出入りする際は管理人に頼んで開けてもらいます。
セキュリティ完備の高級なお屋敷でしょうか。

TPMの物理チップ

第3世代Coreの Ivy Bridge以前は、マザーボード上にTPM専用チップを搭載する仕組みでした。
模試図になりますが、現代のPCはメモリとGPU以外のデバイスチップセットに接続されています。TPMもデバイスの1つとしてチップセットに接続されます。
WindowsはCPU上で動作し、鍵の生成・認証時にはTPMチップに依頼をする形です。 f:id:ruruucky:20210627163306p:plain

マザーボードよっては空きスロットがあり、そこにTPMモジュールを取り付けるものもありました。

TPMファームウェア

Core 第4世代 Core のHaswell 以降はTPMチップの搭載は不要となりました。TPMUEFIの設定項目になっています。
それってメインCPUがFlashにアクセスする事になり、TPMチップで実現していた独立性が達成できないのでは? と疑問を感じていました。

ここでチップセットの機能である Intel ME の出番です。Intel Management Engine の略でシステムのマネジメント全体を司っています。Sky Lake以降はIntel CSME (Converged Security and Management Engine)という名称に改められています。
チップセット内にはサブCPUが組みこまれており、MINIXというUNIX由来のOSが動いています。パソコンの中にIntelのみが把握している別のシステムが同居しているのです。
バイスチップセットが牛耳っているわけですから、実はIntel CPUのPCは、Intelチップセットこそが親玉で、メインCPUは子分」と解釈できます。
サブCPUはデバイスアクセスについてはメインCPUより優先度が高いので、メインCPU(つまりはWindowsやユーザー)が知らないところで、自由に全デバイスにアクセスが可能です。例えばLANの送受信データをメインCPUに渡す前に傍受したり、フィルタリングする事さえ可能です。セキュリティ的には非常に危険なため指摘が入りましたが、それに対してIntel は悪意ある使い方はしていないと声明を出しました。これが危ない国製のチップセットだったらどう思いますか ? 実はかなりリスクがある恐ろしい事なのです。

Intel MEの主な機能として、温度制御、ファン制御、パワーマネジメント、ブートガード等々あります。この機能の1つとしてTPMチップの機能が取り込まれました。
サブCPUのプログラムはUEFIFLASHに格納されています。TPMの鍵の照合などの機能と鍵情報も全てFlashメモリ内に保存されます。
この機能を 「Intel PTT(Platform Trust Technology)」と読んでいます。これがUEFI の設定項目にあるわけです。

f:id:ruruucky:20210627163922p:plain

参考までに2009年当時の資料です。 f:id:ruruucky:20210628234439p:plain

一方のAMDでは、Intel MEの代わりに、AMD Platform security processer (PSP)があります。PSPチップセットではなくCPU内に搭載されています。x64のコアとは別にPSP用のARMコアが1つ搭載されています。

f:id:ruruucky:20210627181728p:plain

AMDではこの機能を 「fTPM」と読んでいます。fは、firmware の意味です。

こうして、外部の物理的チップは不要となり、チップセットファームウェアとしてTPMが実現できました。治外法権のサブCPUの特権で独立性も保たれています。
そのため最近のPCで TPMを利用する際には、UEFIの設定項目の中で有効・無効化が設定できるわけです。

IntelAMDも独自のセキュリティ環境を構築して、根幹部分を支えています。しかし、こうした部分はハッカーの標的になり問題が見つかっています。いつになつてもいたちごっこが続いていくのでしょうか。
インテルのCSMEバグは当初の予想より深刻の可能性--セキュリティ専門家が指摘 - ZDNet Japan

製品版Windows11リリース

2021年10月05日に製品版がリリースされました。アナウンス通りのスペックチェックがかけられていましたが、非適合の古いパソコンへは少し細工をすることをアップグレード可能であることが判明しました。
pmp-style.hatenablog.com