<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Parag Mali - tag: firmware-security</title><description>Posts tagged firmware-security.</description><link>https://paragmali.com/</link><language>en-US</language><lastBuildDate>Sun, 07 Jun 2026 04:13:11 GMT</lastBuildDate><atom:link href="https://paragmali.com/tags/firmware-security/rss.xml" rel="self" type="application/rss+xml"/><item><title>Below the OS: The Pre-Boot Trust Chain Where Secure Boot Inherits Its Trust From</title><link>https://paragmali.com/blog/below-the-os-the-pre-boot-trust-chain-where-secure-boot-inhe/</link><guid isPermaLink="true">https://paragmali.com/blog/below-the-os-the-pre-boot-trust-chain-where-secure-boot-inhe/</guid><description>Walk the eleven rungs from CPU reset to winload.efi -- Intel Boot Guard, AMD PSB, CSME, the PSP, KB5025885, and why the April 2023 MSI OEM-key leak is structurally permanent.</description><pubDate>Wed, 03 Jun 2026 00:00:00 GMT</pubDate><content:encoded>
**Secure Boot is not where trust begins on a modern PC.** It is the fifth rung in an eleven-rung pre-OS chain that starts with a one-time-programmable fuse inside the chipset and travels through Intel Boot Guard or AMD Platform Secure Boot, through an on-die security processor (Intel CSME on MINIX 3, or AMD&apos;s ARM Cortex-A5 Secure Processor), through UEFI and Measured Boot, before it ever loads `winload.efi`. Every rung&apos;s verifier inherits the trust of the rung below it -- and the chain&apos;s revocation surface narrows monotonically as you descend. The April 2023 MSI / Money Message OEM-key leak [@binarly-msi] and the May 9, 2023 KB5025885 boot-manager revocation programme [@kb5025885] are the two worked examples that make the asymmetric-revocation argument concrete: at the fuse layer, there is no revocation primitive at all.

flowchart TD
    R0[&quot;Rung 0: CPU reset vector at 0xFFFFFFF0&quot;]
    subgraph IL[&quot;Intel path&quot;]
        I1[&quot;Rung 1: Microcode loads from SPI patch area&quot;]
        I2[&quot;Rung 2: Authenticated Code Module verified vs silicon-fused Intel key&quot;]
        I3[&quot;Rung 3: ACM reads Field Programmable Fuse, verifies KM and BPM&quot;]
        I4[&quot;Rung 4: Initial Boot Block hashed and compared to BPM&quot;]
    end
    subgraph AL[&quot;AMD path&quot;]
        A1[&quot;Rung 1: ARM Cortex-A5 PSP comes out of reset before x86 cores&quot;]
        A2[&quot;Rung 2: PSP boot ROM verifies PSP firmware vs AMD root key hash&quot;]
        A3[&quot;Rung 3: PSP reads OEM-key fuse, verifies signed BIOS image&quot;]
        A4[&quot;Rung 4: PSP releases x86 BSP from reset&quot;]
    end
    R5[&quot;Rung 5: SEC and PEI phases, memory init, cache as RAM&quot;]
    R6[&quot;Rung 6: DXE drivers loaded, UEFI variable services online&quot;]
    R7[&quot;Rung 7: Secure Boot evaluates Authenticode against PK, KEK, db, dbx&quot;]
    R8[&quot;Rung 8: Boot Device Selection picks bootmgfw.efi&quot;]
    R9[&quot;Rung 9: Boot Manager loads, Measured Boot extends PCR 4 through 7&quot;]
    R10[&quot;Rung 10: bootmgfw.efi verifies winload.efi&quot;]
    R11[&quot;Rung 11: Hand-off to winload.efi&quot;]
    R0 --&amp;gt; I1
    R0 --&amp;gt; A1
    I1 --&amp;gt; I2 --&amp;gt; I3 --&amp;gt; I4 --&amp;gt; R5
    A1 --&amp;gt; A2 --&amp;gt; A3 --&amp;gt; A4 --&amp;gt; R5
    R5 --&amp;gt; R6 --&amp;gt; R7 --&amp;gt; R8 --&amp;gt; R9 --&amp;gt; R10 --&amp;gt; R11
&lt;h2&gt;1. Permanently Downgraded to a Weaker Trust Model&lt;/h2&gt;
&lt;p&gt;On April 6, 2023, the Money Message ransomware actor published roughly 1.5 TB of MSI source code to a TOR-hosted leak site after MSI declined to pay a reported $4M ransom [@helpnet-msi-leak]. A month later, on May 5, Binarly&apos;s efiXplorer team opened the archive. Inside, they found something worse than source code. They found the Intel Boot Guard Key Manifest and Boot Policy Manifest private keys covering roughly 116 MSI systems, plus image-signing keys for 57 more products, with cross-OEM contamination across HP, Lenovo, AOPEN, CompuLab, and Star Labs [@binarly-msi] [@helpnet-msi-leak] [@register-msi-alt]. The affected platform generations spanned Tiger Lake, Alder Lake, and Raptor Lake [@register-msi-alt]. Binarly published a per-device impact catalogue in their &lt;code&gt;SupplyChainAttacks&lt;/code&gt; repository for triage by the affected vendors [@binarly-supply-chain].&lt;/p&gt;
&lt;p&gt;Those private keys correspond to public-key hashes that have already been burned, one-time-programmably, into a fuse inside the chipset of every affected machine. There is no revocation primitive at that fuse layer. Intel cannot patch this. MSI cannot patch this. Microsoft cannot patch this.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Every Intel system whose Field Programmable Fuse holds the hash of a leaked MSI OEM public key is now in a permanent state of reduced assurance against firmware tampering. The leak does not require a successful in-the-wild exploit to count as damage. The capability transfer happened the moment Money Message published the archive [@binarly-msi].&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This story matters because most public writing about &quot;the boot security chain on a Windows PC&quot; stops at Secure Boot. The popular framing -- that the Platform Key (PK) is the trust anchor and the rest of the chain hangs from it -- is not just incomplete. It is upside down. Secure Boot&apos;s PK is a tenant of UEFI authenticated NVRAM stored in the SPI flash chip soldered next to the chipset [@uefi-specs]. PK&apos;s integrity depends on the SPI flash being unwritable to attackers. That property is what the rung below Secure Boot enforces. Without the lower-rung silicon-fused verifier, PK is just bytes in flash.&lt;/p&gt;
&lt;p&gt;A &lt;strong&gt;bootkit&lt;/strong&gt; is malware that survives in the pre-OS firmware boot path. It runs before the kernel exists and outlives both reboots and clean OS installs. Two recent ones bracket the operational threat.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;BlackLotus&lt;/strong&gt; [@eset-blacklotus]. Analysed by ESET researcher Martin Smolar on March 1, 2023, sold on hacking forums since October 2022. It was the first public UEFI bootkit observed bypassing Secure Boot on fully-patched Windows 11, via CVE-2022-21894 [@cve-2022-21894-nvd].&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bootkitty&lt;/strong&gt; [@bootkitty] [@helpnet-bootkitty]. Disclosed by ESET on November 27, 2024. It was the first analogue for Linux.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;These are the threats the pre-boot chain exists to defeat. And the pre-boot chain works only as well as the layer below it.&lt;/p&gt;

Why is the most permanent layer of the trust chain also the layer with no recovery surface?
&lt;p&gt;To answer that question, we have to walk down from the rung you know -- Secure Boot -- to the rung you probably do not: the fuse.&lt;/p&gt;
&lt;p&gt;That walk is the article. The eleven-rung diagram in the TLDR is the map. Along the way we will visit Intel Boot Guard, AMD Platform Secure Boot, the Intel Converged Security and Management Engine, and the AMD Platform Security Processor. We will see what gets verified, by what, and against what trust anchor. And we will see, three times at three increasing levels of compression, why the chain&apos;s revocation surface narrows monotonically as you descend, until at the bottom there is no revocation at all. Companion articles on &lt;a href=&quot;https://paragmali.com/blog/secure-boot-in-windows-the-chain-from-sector-zero-to-userini/&quot; rel=&quot;noopener&quot;&gt;Secure Boot&lt;/a&gt;, &lt;a href=&quot;https://paragmali.com/blog/measured-boot-the-tcg-event-log-from-srtm-to-pcr-bound-bitlo/&quot; rel=&quot;noopener&quot;&gt;Measured Boot&lt;/a&gt;, &lt;a href=&quot;https://paragmali.com/blog/pluton-a-tpm-on-silicon-microsoft-can-patch/&quot; rel=&quot;noopener&quot;&gt;Pluton&lt;/a&gt;, &lt;a href=&quot;https://paragmali.com/blog/the-acpi-tables-that-quietly-secure-your-windows-machine/&quot; rel=&quot;noopener&quot;&gt;ACPI Tables&lt;/a&gt;, and Secured-core PCs cover the rungs &lt;em&gt;above&lt;/em&gt; this one. This article&apos;s lane is everything below them.&lt;/p&gt;
&lt;h2&gt;2. From &quot;BIOS Is Trusted Because Nobody Can Write to It&quot; to &quot;BIOS Has Its Own SoC&quot;&lt;/h2&gt;
&lt;p&gt;On September 13, 2011, Symantec analyst Liam Ge published an early analysis of Trojan.Mebromi on Symantec Connect [@symantec-bios-threat]; Liam O&apos;Murchu&apos;s contemporaneous Symantec Threat Intelligence writeup is the source MITRE catalogues at ATT&amp;amp;CK ID S0001 as the canonical primary [@mitre-mebromi-s0001]. Mebromi was the first in-the-wild BIOS rootkit observed on shipping consumer PCs. It rewrote the Award BIOS Master Boot Record code so that it reinjected itself into the OS on every boot. The Wikipedia BIOS security section preserves the same provenance [@wiki-bios-security].&lt;/p&gt;
&lt;p&gt;Four months earlier, in April 2011, NIST had published SP 800-147 (&quot;BIOS Protection Guidelines&quot;) attempting to mandate the cure: signed BIOS updates with an authenticated update mechanism rooted in immutable code [@nist-sp-800-147]. The cure arrived just as the disease made its in-the-wild debut. That four-month gap captures the entire history of pre-boot security on the PC platform: the defensive architecture always lags the attacker by roughly one generation, and each generation moves the trust anchor one layer closer to the silicon.&lt;/p&gt;
&lt;h3&gt;Generation 1 -- Trust by physical inaccessibility (pre-2011)&lt;/h3&gt;
&lt;p&gt;The implicit model from the IBM PC through the late 2000s was that nobody could write to the BIOS ROM, so the BIOS was trusted because it was unreachable. That model held only as long as nobody bothered. By 2011 the protections that had compensated for writable flash (the &lt;strong&gt;BIOSWE&lt;/strong&gt;, &lt;strong&gt;BLE&lt;/strong&gt;, &lt;strong&gt;SMM_BWP&lt;/strong&gt;, and &lt;strong&gt;FLOCKDN&lt;/strong&gt; chipset configuration bits described in the contemporary CHIPSEC literature [@c7zero-chipsec]) were widely misconfigured on shipping platforms. Academic SPI-rewrite research predated Mebromi by nearly a decade. Mebromi simply demonstrated that the field had caught up.&lt;/p&gt;
&lt;h3&gt;Generation 2 -- Signed BIOS updates anchored in BIOS (2011-2013)&lt;/h3&gt;
&lt;p&gt;NIST SP 800-147 [@nist-sp-800-147] and OEM responses to Mebromi produced a generation of platforms that signed BIOS updates and verified the signature before flashing. The structural flaw was immediate: the verifier lived in the region it was verifying. Burn the verifier with the update payload and you owned the next boot. Seven years later NIST SP 800-193 (&quot;Platform Firmware Resiliency Guidelines&quot;) explicitly raised the bar from Protection alone to Protection plus Detection plus Recovery [@nist-sp-800-193], implicitly conceding that Gen 2 had not closed the loop.&lt;/p&gt;
&lt;h3&gt;Generation 3 -- The trust anchor moves into silicon (2013-2015)&lt;/h3&gt;
&lt;p&gt;In the second quarter of 2013, Intel shipped Boot Guard alongside the Haswell CPU family. In the first half of 2014, AMD shipped the Platform Security Processor with the Family 16h &quot;Beema&quot; and &quot;Mullins&quot; mobile parts [@wiki-amd-psp]. The Wikipedia entry for AMD PSP records the architecture cleanly: &quot;The PSP itself represents an ARM core (ARM Cortex-A5) with the TrustZone extension ... inserted into the main CPU die as a coprocessor&quot; [@wiki-amd-psp]. With Gen 3, the trust anchor moved out of mutable storage entirely. The verifier was no longer a region of flash; it was a piece of silicon that could not be rewritten without replacing the chip.&lt;/p&gt;
&lt;p&gt;In 2015, the Skylake CPU family shipped with ME 11, the first ME generation built on the Intel Quark x86 core (replacing the ARC-based predecessors) and running a modified MINIX 3 microkernel as its on-die runtime [@wiki-ime] [@wiki-ime-history]. The Converged Security and Management Engine (CSME) brand name folded ME, TXE, and SPS into a single architectural label.&lt;/p&gt;

In November 2017, Andrew S. Tanenbaum -- the creator of MINIX 3 -- published an open letter to Intel that read in part: *&quot;Thanks for putting a version of MINIX inside the ME-11 management engine chip used on almost all recent desktop and laptop computers in the world&quot;* [@tanenbaum-letter]. The hosted letter at cs.vu.nl carries no explicit publication date; the early-November dating derives from contemporaneous press coverage. Intel had never consulted him; he learned about MINIX&apos;s role only when independent researchers reverse-engineered the ME runtime.&lt;p&gt;The cultural moment mattered because it surfaced something the architecture had hidden: every modern Intel PC ships a second operating system, on a second processor, that boots before yours does. The trust chain you are reading about exists in part because that second OS exists.&lt;/p&gt;
&lt;p&gt;ME 11 ran MINIX. Earlier ME generations (ME 1 through ME 10) ran ThreadX on ARC cores. Later CSME generations from Ice Lake forward moved to a Tremont-class x86 core but kept the MINIX 3 runtime [@wiki-ime] [@wiki-ime-history].
&lt;/p&gt;&lt;p&gt;&lt;/p&gt;

Thanks for putting a version of MINIX inside the ME-11 management engine chip used on almost all recent desktop and laptop computers in the world. -- Andrew S. Tanenbaum, November 2017 [@tanenbaum-letter]
&lt;p&gt;A month after Tanenbaum&apos;s letter, on December 7, 2017, Mark Ermolov and Maxim Goryachy presented &quot;How to Hack a Turned-Off Computer&quot; at Black Hat Europe 2017 [@ermolov-goryachy-2017]. The talk demonstrated unsigned-code execution in the CSME via the JTAG / Direct Connect Interface chain that became Intel security advisory INTEL-SA-00086 [@intel-sa-00086]. Intel&apos;s CSME security white paper postdates the disclosure and treats the same architecture from the vendor side [@intel-csme-whitepaper]. A year later, in 2018, Yuriy Bulygin presented &quot;A Tale of Disappearing SPI and the Intel Boot Guard Enchanted Dance&quot; at Black Hat Europe 2018 [@eclypsium-publications], the canonical reverse engineering of the Boot Guard IBB-verification flow.&lt;/p&gt;

flowchart LR
    G1[&quot;Gen 1: Trust by physical inaccessibility, pre-2011&quot;]
    G2[&quot;Gen 2: Signed BIOS update anchored in BIOS, 2011 to 2013&quot;]
    G3[&quot;Gen 3: Silicon root of trust via Boot Guard and PSP, 2013 onward&quot;]
    G4[&quot;Gen 4: Secure Boot and discrete TPM, 2012 onward&quot;]
    G5[&quot;Gen 5: fTPM on CSME and PSP, 2015 onward&quot;]
    G6[&quot;Gen 6: Microsoft Pluton, 2020 onward&quot;]
    G7[&quot;Gen 7: Open multi-signer root of trust via Caliptra, prospective&quot;]
    G1 --&amp;gt; G2 --&amp;gt; G3 --&amp;gt; G4 --&amp;gt; G5 --&amp;gt; G6 --&amp;gt; G7
&lt;p&gt;The genealogy is a chain of trades, not a chain of unambiguous improvements. Gen 2 added a revocation surface and unanchored it. Gen 3 anchored the chain in silicon and removed the revocation surface. Gen 4 (Secure Boot, parallel to Gen 3) restored revocation above the firmware layer via the &lt;code&gt;dbx&lt;/code&gt; deny-list but did not extend revocation to the fuse. Every move from one generation to the next migrated the failure surface to a different layer. The chain that ships in 2026 is the live composition of Gens 3 through 7, not a clean replacement.&lt;/p&gt;
&lt;p&gt;If the trust anchor is now a silicon fuse, what exactly does the silicon do at boot -- and why does Intel&apos;s path differ from AMD&apos;s?&lt;/p&gt;
&lt;h2&gt;3. The Two-Vendor Stack: Intel Boot Guard plus CSME, AMD PSP plus PSB&lt;/h2&gt;
&lt;p&gt;Here is a fact that surprises most x86 engineers the first time they read it carefully. On a modern AMD desktop, an ARM Cortex-A5 with TrustZone boots &lt;em&gt;before&lt;/em&gt; the x86 cores are released from reset. The x86 bootstrap processor (BSP) only comes out of reset after the on-die ARM core has verified the BIOS image in SPI flash and decided the platform is allowed to start [@wiki-amd-psp] [@amd-psb-whitepaper]. The &quot;x86 PC&quot; is, at boot, an ARM system-on-chip pretending to be an x86 PC for the first few hundred milliseconds.&lt;/p&gt;
&lt;p&gt;Intel takes the opposite architectural shape. On an Intel system the BSP comes out of reset first, but the very first instructions it executes are an Intel-signed binary called the Authenticated Code Module (ACM) which runs inside the CPU package itself, gated by microcode that verifies the ACM signature against a public-key hash that has been fused into the silicon at manufacturing time [@eclypsium-publications]. The first thing your CPU does is verify a manifest signed by Intel that tells it where the OEM&apos;s keys live.&lt;/p&gt;

A small, Intel-signed binary that the CPU loads from a known SPI region into the CPU cache as private memory and executes before any unsigned code can run. The ACM is verified against a public key whose hash is fused into the chipset Field Programmable Fuse at silicon manufacturing time. The Boot Guard ACM is the verifier that walks the OEM-signed Key Manifest and Boot Policy Manifest. The TXT SINIT ACM is a separate, later-stage ACM used by Intel TXT for dynamic root-of-trust measurement.

An array of one-time-programmable polysilicon fuses inside Intel&apos;s PCH (or, on Skylake and later, integrated into the CPU package) that the OEM blows during board manufacturing to record the hash of the OEM&apos;s Boot Guard public key, the chosen Boot Guard profile (verified-only, measured-only, or both), and the lock state. Once blown, the FPF cannot be unblown. The FPF is the bottom of the OEM-controlled portion of the Intel trust chain; below it sits the silicon-fused Intel public key that authenticates the ACM itself.

An OEM-signed manifest that tells the Boot Guard ACM which SPI regions form the Initial Boot Block, what cryptographic hash to expect over those regions, which Boot Guard profile to enforce, and (on profile 4 or 5) what to do on verification failure. The BPM is signed with the OEM Boot Policy Key, which is itself authenticated against the Key Manifest, which is itself authenticated against the FPF.

An ARM Cortex-A5 with TrustZone, integrated as a coprocessor on the AMD CPU die from Family 16h forward, that boots before the x86 cores are released from reset [@wiki-amd-psp]. The PSP runs its own boot ROM (immutable silicon), loads PSP firmware from a known SPI directory, verifies that firmware against the AMD root-key hash, and (on platforms with PSB enforced) verifies the OEM-signed BIOS image before releasing the x86 BSP from reset.

The AMD architectural feature that has the PSP measure and verify the BIOS image against an OEM-key fuse before releasing the x86 cores [@amd-psb-whitepaper]. PSB ships in two activation states: PSB-capable (PSP runs but does not enforce verification) and PSB-enforced (the OEM has burned the OEM-key hash into the PSP fuse, and the PSP will halt the platform on verification failure). PSB-enforced on EPYC is widely deployed; on Ryzen it has historically been opt-in per platform.
&lt;h3&gt;Intel: Boot Guard, CSME, and the manifest chain&lt;/h3&gt;
&lt;p&gt;Inside an Intel platform the verifier walk is precise enough to render as a list:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;The Boot Guard ACM loads into a protected region of CPU cache and executes inside the CPU package.&lt;/li&gt;
&lt;li&gt;It reads the FPF for the OEM key hash and the active profile bits.&lt;/li&gt;
&lt;li&gt;It pulls the Key Manifest (KM) from SPI and verifies the KM signature against the FPF-stored hash.&lt;/li&gt;
&lt;li&gt;It pulls the Boot Policy Manifest (BPM) and verifies the BPM signature against the KM public key.&lt;/li&gt;
&lt;li&gt;It hashes the SPI regions declared by the BPM as the Initial Boot Block (IBB) and compares the hash against the BPM-declared expected value.&lt;/li&gt;
&lt;li&gt;On a match, it transfers control to the IBB and the chain proceeds.&lt;/li&gt;
&lt;li&gt;On a mismatch, it halts (profile 4 and profile 5) or extends PCR 0 with the measurement and continues (profile 3) [@eclypsium-publications].&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;The Bulygin BH EU 2018 reverse engineering remains the most readable primary on the actual code path [@eclypsium-publications].&lt;/p&gt;
&lt;p&gt;Separately, while the CPU is doing the Boot Guard walk, the CSME runs its own startup sequence on its own core, with its own MINIX 3 runtime [@intel-csme-whitepaper]. Once stable, it exposes three optional services [@intel-csme-whitepaper]:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Intel Active Management Technology (AMT).&lt;/strong&gt; Out-of-band management; only on systems where the OEM has enabled it in firmware.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Intel Platform Trust Technology (PTT).&lt;/strong&gt; A TPM 2.0 endpoint implemented in CSME firmware, so the platform does not need a discrete TPM chip.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Intel Identity Protection Technology (IPT).&lt;/strong&gt; Hardware-rooted one-time-password generation.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Each service depends on CSME being trustworthy. And CSME&apos;s own runtime is verified, at boot, by the chain we have just walked.&lt;/p&gt;
&lt;h3&gt;AMD: PSP boot ROM, PSP firmware, and the OEM-key fuse&lt;/h3&gt;
&lt;p&gt;The AMD walk is structurally simpler and architecturally cleaner. The PSP boot ROM is silicon -- it cannot be modified after fabrication. It reads the PSP directory from a known SPI offset, validates the directory header, loads the PSP firmware image, and verifies that image against the AMD root-key hash that is part of the PSP boot ROM itself [@amd-psb-whitepaper]. On a PSB-enforced platform, the PSP then loads the OEM PSB key, verifies it against the OEM-key hash fused in the PSP, and uses the OEM PSB key to verify the OEM-signed BIOS image before releasing the x86 BSP from reset.&lt;/p&gt;
&lt;p&gt;The &quot;separate core boots first&quot; architectural primitive is a different kind of isolation than Intel&apos;s &quot;microcode plus signed ACM.&quot; Intel&apos;s verifier runs in the CPU package but inside a protected cache region. AMD&apos;s verifier runs on a physically separate core with its own memory map. Neither is obviously better. Both shift the trust anchor out of writable storage and into silicon.&lt;/p&gt;
&lt;p&gt;The ARM Cortex-A5 implements ARMv7-A and ships TrustZone. TrustZone partitions execution into a Non-Secure World (the Rich Execution Environment, REE) and a Secure World (the Trusted Execution Environment, TEE) with hardware-enforced isolation. The PSP runs its boot ROM and firmware in the Secure World [@wiki-amd-psp].&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;CSME generation&lt;/th&gt;
&lt;th&gt;Core&lt;/th&gt;
&lt;th&gt;Runtime&lt;/th&gt;
&lt;th&gt;Era&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;ME 1 -- ME 10&lt;/td&gt;
&lt;td&gt;ARC&lt;/td&gt;
&lt;td&gt;ThreadX&lt;/td&gt;
&lt;td&gt;2006 -- 2014&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;ME 11 (Skylake)&lt;/td&gt;
&lt;td&gt;Intel Quark x86&lt;/td&gt;
&lt;td&gt;MINIX 3&lt;/td&gt;
&lt;td&gt;2015 -- 2018&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;CSME (Ice Lake+)&lt;/td&gt;
&lt;td&gt;Tremont-class x86&lt;/td&gt;
&lt;td&gt;MINIX 3&lt;/td&gt;
&lt;td&gt;2019 -- present&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;Sources: [@wiki-ime] [@wiki-ime-history].&lt;/p&gt;
&lt;p&gt;The generational table for the Intel side has been the source of several recurring errors in secondary literature: claims that &quot;every CSME runs MINIX&quot; are wrong (the ARC-based ME 1 through ME 10 ran ThreadX), and claims that &quot;CSME still runs on Quark&quot; are equally wrong (Ice Lake and later moved to a Tremont-class x86 core but kept the MINIX 3 runtime) [@wiki-ime] [@wiki-ime-history].&lt;/p&gt;
&lt;p&gt;AMD has not published a complete PSP architectural document. The PSB whitepaper [@amd-psb-whitepaper] covers the PSB-flow at a marketing-architecture level; the PRO security whitepaper [@amd-pro-whitepaper] is the broadest vendor primary. Everything else about the PSP -- the runtime, the directory layout, the soft-fuses, the glitch surface -- flows through community reverse engineering. The most useful primaries are Buhren and Werling&apos;s voltage-glitching corpus at TU Berlin (now indexed via the Fraunhofer publication record) [@fraunhofer-amd], the Buhren / Jacob / Krachenfels / Seifert &quot;One Glitch to Rule Them All&quot; CCS 2021 paper [@one-glitch-2021], the Jacob / Werling / Buhren / Seifert &quot;faulTPM&quot; USENIX Security 2024 paper (arXiv v1 submitted April 28, 2023) [@faultpm-2023], the open &lt;code&gt;PSPReverse&lt;/code&gt; toolchain on GitHub [@pspreverse-org] [@psp-glitch-repo], and Matthew Garrett&apos;s 2022 reverse engineering of the PSP directory entry 0xB BIT36 &quot;soft fuse&quot; that gates Pluton on Ryzen 6000 [@garrett-pluton-2022]. The &quot;AMD has not published&quot; caveat travels with every architectural claim about the PSP in this article.&lt;/p&gt;
&lt;p&gt;The hedge matters for one specific premise: the ARM Cortex-A5 + TrustZone architectural claim is well-attested for Family 15h and Family 17h via the Buhren / Werling / Jacob / Seifert reverse-engineering corpus [@one-glitch-2021] [@faultpm-2023] [@wiki-amd-psp]. The specific core in Family 19h+ is not publicly documented. The widely-repeated &quot;Cortex-A7&quot; claim is unsupported by any vendor primary I could verify. This article uses &quot;Cortex-A5 with TrustZone&quot; only where Family 15h / 17h is in scope and says &quot;the PSP&quot; generically elsewhere.&lt;/p&gt;
&lt;p&gt;Now that we know who the verifiers are, let us watch them work -- one rung at a time -- from CPU reset to &lt;code&gt;winload.efi&lt;/code&gt;.&lt;/p&gt;
&lt;h2&gt;4. The Chain Walk: From CPU Reset to winload.efi&lt;/h2&gt;
&lt;p&gt;Eleven rungs. We will walk each one in order. By the end you will know exactly what gets verified, by what, against what trust anchor, and what happens when that verification fails.&lt;/p&gt;

flowchart TD
    R[&quot;CPU reset, vector at 0xFFFFFFF0&quot;]
    subgraph IB[&quot;Intel Boot Guard&quot;]
        I1[&quot;Microcode loads ACM from SPI&quot;]
        I2[&quot;ACM verified vs silicon-fused Intel key&quot;]
        I3[&quot;ACM reads FPF: OEM key hash plus profile bits&quot;]
        I4[&quot;KM signature verified vs FPF hash&quot;]
        I5[&quot;BPM signature verified vs KM public key&quot;]
        I6[&quot;IBB regions hashed and compared to BPM&quot;]
        I7[&quot;Profile 4 or 5 halts on mismatch, Profile 3 extends PCR 0&quot;]
        I1 --&amp;gt; I2 --&amp;gt; I3 --&amp;gt; I4 --&amp;gt; I5 --&amp;gt; I6 --&amp;gt; I7
    end
    subgraph AP[&quot;AMD PSP plus PSB&quot;]
        A1[&quot;PSP boot ROM (silicon, immutable) executes&quot;]
        A2[&quot;PSP firmware loaded from SPI PSP directory&quot;]
        A3[&quot;PSP firmware verified vs AMD root key hash&quot;]
        A4[&quot;OEM PSB key loaded from SPI&quot;]
        A5[&quot;OEM PSB key verified vs OEM-key fuse&quot;]
        A6[&quot;BIOS image verified vs OEM PSB key&quot;]
        A7[&quot;x86 BSP released from reset&quot;]
        A1 --&amp;gt; A2 --&amp;gt; A3 --&amp;gt; A4 --&amp;gt; A5 --&amp;gt; A6 --&amp;gt; A7
    end
    R --&amp;gt; I1
    R --&amp;gt; A1
    I7 --&amp;gt; H[&quot;Hand-off to IBB and SEC phase&quot;]
    A7 --&amp;gt; H
&lt;h3&gt;4.1 Reset and microcode bootstrap&lt;/h3&gt;
&lt;p&gt;The x86 CPU starts executing at physical address &lt;code&gt;0xFFFFFFF0&lt;/code&gt; per the Intel SDM Volume 3A §9.1.4 (&quot;First Instruction Executed&quot;) specification [@intel-sdm-vol3a], which the chipset aliases into the SPI flash region containing the reset vector.That address is sixteen bytes below the top of 32-bit physical memory; the first instruction is typically a near jump down into the bulk of the firmware. The very first action is a microcode load: the CPU executes its built-in microcode, which then loads any microcode patches from a known SPI region. On Intel platforms the microcode patch is itself signed against an Intel public key burned into silicon. On AMD platforms the equivalent step is the PSP boot ROM execution, which happens slightly earlier in wall-clock time because the PSP starts before the x86 BSP is released [@wiki-amd-psp].&lt;/p&gt;
&lt;h3&gt;4.2 Intel ACM execution and AMD PSP first-stage boot&lt;/h3&gt;
&lt;p&gt;The Intel ACM is signed by Intel and stored in SPI. The microcode loader verifies the ACM signature against the silicon-fused Intel public key and runs the ACM inside a protected region of cache. The AMD analogue is the PSP boot ROM, which is silicon and therefore cannot be modified after fabrication. Both architectures share the invariant: the first executable code path is anchored in silicon, not flash.&lt;/p&gt;
&lt;h3&gt;4.3 FPF and OEM-fuse policy read&lt;/h3&gt;
&lt;p&gt;On Intel, the ACM reads the FPF to learn the hash of the OEM Boot Guard public key and the active Boot Guard profile. It then verifies the Key Manifest (KM) signature against the FPF hash, and the Boot Policy Manifest (BPM) signature against the KM public key. The KM and BPM together form a two-level OEM signing structure: the KM authenticates a set of permitted Boot Policy signing keys, and the BPM names the IBB regions and their expected hash.&lt;/p&gt;
&lt;p&gt;On AMD, the PSP reads the PSP directory from a known SPI offset, authenticates the directory entries against the AMD root key, and (on PSB-enforced platforms) authenticates the OEM PSB public key against the PSP-fused OEM-key hash before validating the BIOS image [@amd-psb-whitepaper].&lt;/p&gt;
&lt;h3&gt;4.4 IBB verification and SEC phase&lt;/h3&gt;

The first chunk of UEFI firmware that the lower-rung silicon verifier cryptographically covers. On Intel platforms with Boot Guard, the IBB regions are declared by the BPM and hashed by the ACM. On AMD platforms with PSB, the equivalent role is played by the PSP-verified BIOS image as a whole. The IBB is where UEFI&apos;s own code path begins.
&lt;p&gt;After IBB verification succeeds, control transfers to the IBB itself. The IBB executes the &lt;strong&gt;SEC&lt;/strong&gt; (Security) phase of the EDK II firmware lifecycle: it sets up the cache as RAM, enables initial CPU features, and prepares to hand off to PEI.&lt;/p&gt;

Intel&apos;s umbrella term, introduced with Skylake (ME 11) in 2015, for the on-die security processor that runs alongside the x86 cores and provides services to the platform: firmware TPM (PTT), AMT, identity protection, secure storage, and the runtime verifier for some pre-OS measurements [@intel-csme-whitepaper] [@wiki-ime]. CSME runs its own RTOS on its own core and is the single most complex piece of pre-OS firmware on a modern Intel platform.
&lt;h3&gt;4.5 PEI and DXE phases&lt;/h3&gt;
&lt;p&gt;The PEI (Pre-EFI Initialization) phase completes memory controller initialisation and discovers the platform&apos;s DRAM. The DXE (Driver eXecution Environment) phase then loads UEFI drivers (storage, USB, network, video, and platform-specific drivers) and brings the UEFI services online. The TianoCore EDK II reference UEFI implementation [@edk2-repo] is the canonical open-source codebase for studying PEI and DXE in detail, and every commercial vendor BIOS is structurally a fork of EDK II with proprietary platform code.&lt;/p&gt;
&lt;p&gt;&quot;SPI flash&quot; on a modern platform is not one trust domain. The main BIOS SPI region is what Boot Guard / PSB verify. But a modern PC may also have separate SPI or NVRAM regions for the Embedded Controller (keyboard, battery, lid sensor), the Thunderbolt controller, the fingerprint reader, and on servers the baseboard management controller (BMC). Each of those has its own update mechanism, its own verifier (if any), and its own attack surface. The article will revisit this in section 8.&lt;/p&gt;
&lt;h3&gt;4.6 DXE Secure Boot variable evaluation&lt;/h3&gt;
&lt;p&gt;During DXE the UEFI runtime brings the Secure Boot variable services online. The Platform Key (PK), Key Exchange Keys (KEK), Authorized Signature Database (db), and Forbidden Signature Database (dbx) are stored as UEFI authenticated variables in NVRAM, per UEFI Specification §8 [@uefi-specs]. When DXE loads a UEFI binary, the verifier compares the binary&apos;s Authenticode signature against db entries, refuses to load binaries whose hash appears in dbx, and (in the default policy) refuses to load binaries that do not match any db entry.&lt;/p&gt;
&lt;p&gt;The companion article on Secure Boot covers the PK / KEK / db / dbx model and the SBAT generation-number deny-list in detail. The point for this chain walk is that Secure Boot itself does not start until DXE has set up the UEFI variable services, and DXE itself only runs because the IBB verified by Boot Guard / PSB executed correctly.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; This is rung 5 of 11. The rungs above this one -- Secure Boot policy, TPM PCR semantics, Pluton silicon enumeration, ACPI table integrity, Secured-core PC configuration -- are covered in the companion articles. The lane of this article is the rungs &lt;em&gt;below&lt;/em&gt; Secure Boot. From here forward we summarise the upper rungs only enough to show where the trust chain hands off.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;4.7 Boot Device Selection and bootmgfw.efi&lt;/h3&gt;
&lt;p&gt;After DXE completes, the BDS (Boot Device Selection) phase enumerates the boot variables stored in NVRAM, finds the first valid &lt;code&gt;EFI_LOAD_OPTION&lt;/code&gt;, and loads the EFI binary it points to. On Windows that is &lt;code&gt;\EFI\Microsoft\Boot\bootmgfw.efi&lt;/code&gt;. On Linux estates running shim it is &lt;code&gt;\EFI\&amp;lt;distro&amp;gt;\shimx64.efi&lt;/code&gt;, which is the first non-Microsoft binary the chain consents to load and which then verifies a distro-signed second-stage loader (GRUB2 in most cases) [@garrett-shim-19448].&lt;/p&gt;
&lt;h3&gt;4.8 Boot Manager verifies winload.efi; Measured Boot extends PCR 0 through 7&lt;/h3&gt;
&lt;p&gt;The Windows Boot Manager (&lt;code&gt;bootmgfw.efi&lt;/code&gt;) verifies &lt;code&gt;winload.efi&lt;/code&gt; against its built-in trust anchor, then asks &lt;a href=&quot;https://paragmali.com/blog/the-tpm-in-windows-one-primitive-twenty-five-years-and-the-c/&quot; rel=&quot;noopener&quot;&gt;the TPM&lt;/a&gt; to extend a sequence of PCR measurements covering the chain it has just walked. Per the TCG PC Client Platform Firmware Profile, PCRs 0 through 7 cover (0) the platform SRTM and firmware, (1) host platform configuration, (2) UEFI drivers and option ROMs, (3) UEFI driver and application configuration, (4) the boot manager code and boot attempts, (5) boot manager configuration and the GPT, (6) host-platform-manufacturer-specific events, and (7) the Secure Boot policy [@tcg-tpm-lib]. The companion article on Measured Boot covers the PCR semantics in detail.&lt;/p&gt;
&lt;h3&gt;4.9 Hand-off to winload.efi&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;winload.efi&lt;/code&gt; loads the NT kernel, the early-launch antimalware drivers, and the Code Integrity policy. The Windows OS-side trust chain takes over from here. This article ends its lane at the hand-off.&lt;/p&gt;
&lt;p&gt;{&lt;code&gt;// Toy SHA-256 substitute (NOT cryptographically real -- demonstrates the extend chain only). function hashHex(s) {   let h = 2166136261;   for (const c of s) h = ((h ^ c.charCodeAt(0)) * 16777619) &amp;gt;&amp;gt;&amp;gt; 0;   return h.toString(16).padStart(8, &apos;0&apos;).repeat(8); } function extend(pcr, measurement) {   return hashHex(pcr + measurement); } const pcr0 = &apos;00&apos;.repeat(32); const afterAcm   = extend(pcr0, &apos;ACM-binary@SPI:0x10000&apos;); const afterIbb   = extend(afterAcm, &apos;IBB-region@SPI:0x100000&apos;); const afterDxe   = extend(afterIbb, &apos;DXE-driver-set-vendor-A&apos;); const afterSb    = extend(afterDxe, &apos;SecureBoot-policy:PK=hashA,KEK=hashB,db=hashC,dbx=hashD&apos;); const afterBm    = extend(afterSb, &apos;bootmgfw.efi:authenticode=hashE&apos;); const afterLoad  = extend(afterBm, &apos;winload.efi:authenticode=hashF&apos;); console.log(&apos;PCR0 after ACM    -&amp;gt;&apos;, afterAcm.slice(0, 32) + &apos;...&apos;); console.log(&apos;PCR0 after IBB    -&amp;gt;&apos;, afterIbb.slice(0, 32) + &apos;...&apos;); console.log(&apos;PCR0 after DXE    -&amp;gt;&apos;, afterDxe.slice(0, 32) + &apos;...&apos;); console.log(&apos;PCR7 after PolicyB-&amp;gt;&apos;, afterSb.slice(0, 32) + &apos;...&apos;); console.log(&apos;PCR4 after BootMgr-&amp;gt;&apos;, afterBm.slice(0, 32) + &apos;...&apos;); console.log(&apos;PCR4 after WinLoad-&amp;gt;&apos;, afterLoad.slice(0, 32) + &apos;...&apos;); console.log(); console.log(&apos;Change ANY measurement and the chain hash diverges from quote-expected value.&apos;);&lt;/code&gt;}&lt;/p&gt;
&lt;p&gt;Eleven rungs. Each rung&apos;s verifier inherits the trust of the rung below it. That single property -- inheritance -- is what makes the next section&apos;s argument inevitable.&lt;/p&gt;
&lt;h2&gt;5. The Breakthrough: The Hardware Fuse as Root of Trust, and the Asymmetric Revocation Surface&lt;/h2&gt;
&lt;p&gt;The strongest layer in the chain is the layer you cannot fix. That is not a bug. It is the definition of a hardware root of trust -- and it is also why the MSI 2023 leak is permanent.&lt;/p&gt;
&lt;p&gt;The architectural insight is structural. Trust must be anchored somewhere, and the only place that survives an OS reinstall, a BIOS reflash, an SPI chip swap, and a malicious bootloader is a piece of silicon that the attacker cannot rewrite without replacing the chip. One-time-programmable polysilicon fuses give exactly that property. Burn the OEM key hash into the FPF at manufacturing time, and from that point forward only OEM-signed firmware will run on that board. The fuse is &quot;the bottom&quot; by construction.&lt;/p&gt;
&lt;p&gt;The cost is symmetric. One-time programmable means one-way trust. Once an OEM&apos;s public key hash is burned, it cannot be removed without replacing the chip. If the OEM later loses control of the corresponding private key, the public-key hash that authenticates everything signed by that private key is still in the fuse. The fuse layer has no revocation primitive.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Key idea:&lt;/strong&gt; Trust strength and revocation expressiveness move in opposite directions as you descend the pre-boot trust chain. The fuse layer is the strongest because nothing can change it -- which is exactly why nothing can revoke it. Permanence is the source of both properties, not a side effect of one.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;This is the article&apos;s load-bearing observation, and it is worth making concrete. Going &lt;em&gt;up&lt;/em&gt; the chain from the fuse, the revocation surface gets progressively more expressive.&lt;/p&gt;

A monotonically increasing version number embedded in a signed firmware artifact (boot manager, ACM, microcode patch). When the platform&apos;s stored SVN floor is bumped, the platform refuses to load any artifact whose embedded SVN is below the floor. SVN bumps are an alternative to per-hash revocation that scales better as the number of bad artifacts grows, but they require the firmware vendor to maintain an SVN namespace and to bump it on every revocation event.

A generation-number revocation model introduced by the rhboot shim project to replace per-hash dbx revocation for shim and downstream components [@sbat-md]. Each shim, GRUB2 build, and second-stage component embeds a vendor-specific SBAT generation. When a vulnerability is found, the vendor publishes a new shim with an incremented generation. The shim verifier on the running platform refuses to load any component with a generation lower than the platform&apos;s stored floor. As the SBAT documentation notes, &quot;This single revocation event consumes 10kB of the 32kB, or roughly one third, of revocation storage typically available on UEFI platforms&quot; [@sbat-md], which is exactly the dbx exhaustion problem SBAT is designed to solve.
&lt;p&gt;At the top of the chain, on a Pluton-equipped platform, Microsoft can ship Pluton firmware updates through Windows Update [@pluton-learn]. That is the most expressive revocation surface on the chain: software cadence, OS-mediated delivery, no OEM gating on the runtime channel after initial enrolment. (The SPI-resident Pluton firmware loaded at every boot is still updated through the OEM&apos;s UEFI capsule pipeline; the OS-mediated runtime channel sits on top of it [@pluton-learn].)&lt;/p&gt;
&lt;p&gt;Below Pluton, SBAT denies entire classes of vulnerable shim binaries with one generation bump [@sbat-md]. Below SBAT, &lt;code&gt;dbx&lt;/code&gt; denies individual bootloader hashes (with the ~32 KB capacity constraint that SBAT exists to relieve). Below &lt;code&gt;dbx&lt;/code&gt;, KEK and PK are progressively more permanent because they sit at the root of UEFI&apos;s variable-authentication structure, and any change requires a Platform Key signature. Below the UEFI variables, the OEM Boot Policy Manifest is replaced only by an OEM-signed firmware update. And below the BPM, the FPF / OEM-key fuse is unrecoverable.&lt;/p&gt;

flowchart TD
    L0[&quot;Pluton firmware via Windows Update: software cadence&quot;]
    L1[&quot;SBAT generation bump: revoke an entire class with one entry&quot;]
    L2[&quot;dbx hash list: revoke per-binary, capped at roughly 32 KB&quot;]
    L3[&quot;KEK and PK: revoke only via Platform Key signature&quot;]
    L4[&quot;OEM Boot Policy Manifest: replaced by OEM-signed firmware update&quot;]
    L5[&quot;FPF / OEM-key fuse: NO REVOCATION PRIMITIVE&quot;]
    L0 --&amp;gt; L1 --&amp;gt; L2 --&amp;gt; L3 --&amp;gt; L4 --&amp;gt; L5
&lt;h3&gt;MSI 2023 as the worked example&lt;/h3&gt;
&lt;p&gt;The April 2023 MSI leak is the existence proof. The FPF on every affected Intel platform stores the SHA-256 hash of the OEM Boot Guard public key. The corresponding private key is now public. There is no operational path to revoke that hash at the fuse layer without physical chip replacement. The only &quot;revocation&quot; surfaces available to a platform owner are upper-layer compensations, and each one has a structural limit:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;An OS-level driver block list does not apply at boot, because the OS does not exist yet.&lt;/li&gt;
&lt;li&gt;A &lt;code&gt;dbx&lt;/code&gt; update can deny specific malicious firmware images by hash, but the attacker can sign a new image with the leaked key and rotate around the deny-list, exactly the way per-hash deny-lists always fail against an attacker who controls the signing oracle.&lt;/li&gt;
&lt;li&gt;An Intel BIOS Guard SVN bump can raise the SVN floor, but the OEM has to sign the updated firmware -- using the same Boot Guard signing infrastructure that has been compromised. The leaked key signs the SVN bump too.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Help Net Security&apos;s contemporaneous reporting captured the counts that make the impact concrete: &quot;private code signing keys for firmware images used on 57 MSI products, and private signing keys for Intel Boot Guard used on 116 MSI products ... one of the leaked keys has been detected on devices from HP, Lenovo, AOPEN, CompuLab, and Star Labs&quot; [@helpnet-msi-leak]. The Register confirmed the affected platform generations as Tiger Lake, Alder Lake, and Raptor Lake [@register-msi-alt]. Binarly&apos;s per-device catalogue lists the affected SKUs in detail [@binarly-supply-chain].&lt;/p&gt;

Every Intel chip with the leaked OEM key hash burned in is permanently downgraded to a weaker trust model -- and nothing in the layers above can recover what the fuse layer lost.
&lt;p&gt;SBAT exists for exactly the kind of revocation expressiveness the fuse layer lacks [@sbat-md]. SBAT is the negative-space comparator: this is what fuse-layer revocation could look like if it existed. It does not exist. That is the breakthrough -- and the limit -- of Gen 3 silicon roots of trust on commodity client platforms in 2026.&lt;/p&gt;
&lt;p&gt;If the fuse is unrecoverable, what does the rest of the modern stack do to compensate?&lt;/p&gt;
&lt;h2&gt;6. State of the Art: What a Modern Pre-Boot Trust Chain Looks Like in 2026&lt;/h2&gt;
&lt;p&gt;In 2026 the chain has settled into a recognisable shape on Secured-core PCs and EPYC servers. Here is what is shipping, and what each piece is for.&lt;/p&gt;
&lt;p&gt;The current best-practice configuration is roughly: Boot Guard or PSB enforced at the silicon verifier rung; BIOS Guard for runtime SPI write protection; SMM locked down via Intel TXT or AMD SKINIT; Measured Boot extending PCRs into a TPM 2.0 endpoint (discrete TPM, Intel PTT, AMD fTPM, or Microsoft Pluton); Windows DRTM enabled (extending PCR 17 through PCR 22); and the KB5025885 boot-manager revocation programme applied as it rolls out across 2025 and 2026 [@kb5025885].&lt;/p&gt;
&lt;h3&gt;KB5025885: db plus dbx plus SVN, not &quot;PK rotation&quot;&lt;/h3&gt;

A late-launch primitive (Intel TXT via the SINIT ACM, or AMD SKINIT via the SLB) that re-anchors the trust chain after the static root has done its work. DRTM allows the OS to enter a measured launch environment in which a small, trusted hypervisor or secure kernel is loaded and measured into PCRs 17 through 22, independent of the firmware boot chain. Windows DRTM uses TXT or SKINIT to bring the Secure Kernel and Hypervisor Code Integrity online with a fresh chain of measurements.
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Press coverage frequently described KB5025885 as a &quot;PK rotation&quot; or &quot;Microsoft rotating the Platform Key.&quot; It is neither. The Microsoft support article spells out the actual mechanism: KB5025885 adds the Windows UEFI CA 2023 certificate (PCA2023) to the Database Key (DB) and adds the hashes of vulnerable boot manager binaries to the Forbidden Signature Key (DBX) [@kb5025885]. The Platform Key itself is not modified by KB5025885. The MSRC blog framing is consistent: KB5025885 is a staged-rollout programme for managing the revocation of vulnerable Windows boot manager binaries associated with CVE-2023-24932 [@msrc-blog-2023-24932] [@msrc-cve-2023-24932].&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;KB5025885 was originally published on May 9, 2023 as part of May 2023 Patch Tuesday, in response to CVE-2023-24932 (a Secure Boot Security Feature Bypass) [@cve-2023-24932-nvd] [@kb5025885]. The CVE was the underlying vulnerability that the BlackLotus bootkit had exploited via CVE-2022-21894 several months earlier [@eset-blacklotus] [@cve-2022-21894-nvd]. Microsoft&apos;s response was structurally cautious: a multi-year staged rollout, rather than an immediate forced revocation, because forcing a &lt;code&gt;dbx&lt;/code&gt; update that would brick any unpatched Windows install or any third-party EFI loader still in distribution would have been operationally catastrophic.&lt;/p&gt;

gantt
    dateFormat YYYY-MM-DD
    title KB5025885 boot manager revocation programme
    section Disclosure
    CVE-2023-24932 published         :2023-05-09, 7d
    KB5025885 initial publication    :2023-05-09, 7d
    section Deployment
    Manual deployment phase          :2023-07-11, 270d
    Evaluation phase                 :2024-04-09, 90d
    Automatic enrollment phase       :2024-07-09, 540d
    section Cutover
    Automatic certificate replacement :2026-01-01, 150d
    PCA2011 expiration window         :2026-06-01, 30d
&lt;p&gt;The rollout dates above follow the Microsoft KB5025885 article timeline [@kb5025885]: manual deployment beginning July 11, 2023; evaluation phase beginning April 9, 2024; automatic enrolment of mitigations beginning July 9, 2024; automatic certificate replacement on Windows 11 beginning January 2026; and the PCA2011 / UEFI CA 2011 / KEK CA 2011 expiration window in June 2026. The mechanism throughout is &lt;code&gt;db&lt;/code&gt; + &lt;code&gt;dbx&lt;/code&gt; + SVN, not Platform Key rotation.&lt;/p&gt;
&lt;h3&gt;Pluton&apos;s structural role in the modern chain&lt;/h3&gt;
&lt;p&gt;Microsoft Pluton was announced on November 17, 2020 as a &quot;chip-to-cloud&quot; security processor co-designed with AMD, Intel, and Qualcomm Technologies [@pluton-blog]. The current Microsoft Learn enumeration of Pluton silicon as of 2024 reads: &quot;AMD: Ryzen 6000, 7000, 8000, 9000 and Ryzen AI Series processors; Intel: Core Ultra 200V Series, Ultra Series 3 and Series 3 processors; Qualcomm: Snapdragon 8cx Gen 3 and Snapdragon X Series processors. ... Pluton platforms in 2024 AMD and Intel systems will start to use a Rust-based firmware foundation&quot; [@pluton-learn].&lt;/p&gt;
&lt;p&gt;Pluton&apos;s structural contribution to the chain is the firmware-update channel. Discrete TPMs cannot be patched after manufacturing in any meaningful way. CSME PTT firmware ships through OEM BIOS updates with all the latency that implies. Pluton firmware reaches devices through two channels: the traditional OEM UEFI capsule that updates the SPI-resident Pluton image at boot, and an OS-mediated runtime channel through which Microsoft can ship new firmware via Windows Update [@pluton-learn] [@garrett-pluton-2022-update]. The second channel is the one no other shipping silicon root-of-trust has, and the one that closes the patch-latency gap.&lt;/p&gt;
&lt;h3&gt;Silicon comparison&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Property&lt;/th&gt;
&lt;th&gt;Intel Boot Guard&lt;/th&gt;
&lt;th&gt;AMD PSB&lt;/th&gt;
&lt;th&gt;&lt;a href=&quot;https://paragmali.com/blog/apple-secure-enclave-vs-microsoft-pluton-two-roads-to-hardwa/&quot; rel=&quot;noopener&quot;&gt;Apple Silicon Boot ROM&lt;/a&gt;&lt;/th&gt;
&lt;th&gt;Google Titan-M2&lt;/th&gt;
&lt;th&gt;Microsoft Pluton&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;Trust anchor&lt;/td&gt;
&lt;td&gt;FPF in PCH or package&lt;/td&gt;
&lt;td&gt;OEM-key fuse in PSP / FCH&lt;/td&gt;
&lt;td&gt;Mask ROM on the AP&lt;/td&gt;
&lt;td&gt;On-die in Titan-M2 chip&lt;/td&gt;
&lt;td&gt;On-die in SoC fabric&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Revocation surface&lt;/td&gt;
&lt;td&gt;None at fuse layer&lt;/td&gt;
&lt;td&gt;None at fuse layer&lt;/td&gt;
&lt;td&gt;Vendor seed (Apple)&lt;/td&gt;
&lt;td&gt;Vendor seed (Google)&lt;/td&gt;
&lt;td&gt;Microsoft via Windows Update&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;FW update channel&lt;/td&gt;
&lt;td&gt;OEM BIOS&lt;/td&gt;
&lt;td&gt;OEM BIOS&lt;/td&gt;
&lt;td&gt;macOS updates&lt;/td&gt;
&lt;td&gt;Android updates&lt;/td&gt;
&lt;td&gt;Windows Update [@pluton-learn]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;OS attestation API&lt;/td&gt;
&lt;td&gt;TPM 2.0 quote (PTT)&lt;/td&gt;
&lt;td&gt;TPM 2.0 quote (fTPM)&lt;/td&gt;
&lt;td&gt;DeviceAttestationKey&lt;/td&gt;
&lt;td&gt;KeyMint attestation&lt;/td&gt;
&lt;td&gt;TPM 2.0 + Pluton-specific&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Deployment posture&lt;/td&gt;
&lt;td&gt;Widespread, OEM-gated&lt;/td&gt;
&lt;td&gt;EPYC widespread, Ryzen opt-in&lt;/td&gt;
&lt;td&gt;All Apple Silicon Macs&lt;/td&gt;
&lt;td&gt;All Pixel 6 and later&lt;/td&gt;
&lt;td&gt;Ryzen 6000+, Core Ultra, X-series&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;The asymmetry that matters for the article&apos;s argument is the third row. Apple, Google, and Microsoft control the firmware update channel for their respective trust anchors. Intel and AMD do not -- the OEM does, and the OEM&apos;s release cadence varies by vendor, by product line, and (for end-of-life models) drops to zero.&lt;/p&gt;
&lt;h3&gt;Bootkit comparison: same invariant, different break&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Bootkit / vuln class&lt;/th&gt;
&lt;th&gt;CVE&lt;/th&gt;
&lt;th&gt;Vulnerable layer&lt;/th&gt;
&lt;th&gt;Primitive&lt;/th&gt;
&lt;th&gt;dbx state at disclosure&lt;/th&gt;
&lt;th&gt;Fix mechanism&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;BlackLotus&lt;/td&gt;
&lt;td&gt;CVE-2022-21894&lt;/td&gt;
&lt;td&gt;Windows Boot Manager&lt;/td&gt;
&lt;td&gt;baton drop on unpatched bootmgfw [@eset-blacklotus]&lt;/td&gt;
&lt;td&gt;unpatched bootmgfw hashes not yet in dbx&lt;/td&gt;
&lt;td&gt;KB5025885 dbx + db + SVN programme [@kb5025885]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;BootHole&lt;/td&gt;
&lt;td&gt;CVE-2020-10713 [@cve-2020-10713-nvd]&lt;/td&gt;
&lt;td&gt;GRUB2 BootHole buffer overflow&lt;/td&gt;
&lt;td&gt;GRUB2 cfg parser overflow [@eclypsium-boothole]&lt;/td&gt;
&lt;td&gt;initial dbx update exhausted 10 KB of capacity&lt;/td&gt;
&lt;td&gt;dbx hash list bump (SBAT later introduced to solve scale) [@sbat-md]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;LogoFAIL&lt;/td&gt;
&lt;td&gt;multiple in 2023&lt;/td&gt;
&lt;td&gt;UEFI DXE image-parsing libraries&lt;/td&gt;
&lt;td&gt;malicious BMP / PNG / JPEG in boot logo region&lt;/td&gt;
&lt;td&gt;Boot Guard verifier passed; DXE parser exploited&lt;/td&gt;
&lt;td&gt;per-OEM firmware update + library fixes [@binarly-logofail]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Bootkitty&lt;/td&gt;
&lt;td&gt;(PoC, 2024)&lt;/td&gt;
&lt;td&gt;User-controlled trust posture&lt;/td&gt;
&lt;td&gt;Self-signed bootkit plus in-memory GRUB integrity-check patches before kernel hand-off [@bootkitty]&lt;/td&gt;
&lt;td&gt;dbx unchanged for Bootkitty PoC&lt;/td&gt;
&lt;td&gt;Keep Secure Boot enabled; audit MOK enrolments; SBAT is not the corrective surface for this class [@bootkitty]&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;The common pattern is the same invariant -- &quot;the chain is only as strong as the rung that was broken&quot; -- with four different break points:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;BlackLotus&lt;/strong&gt; broke at rung 9 (Boot Manager); the fix lived at rung 7 (Secure Boot policy via dbx).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;BootHole&lt;/strong&gt; broke at rung 10 (the chain-loaded GRUB2); the fix lived at rung 7 again (dbx, until SBAT replaced the per-hash approach).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;LogoFAIL&lt;/strong&gt; broke at rung 6 (a DXE image-parsing library); the fix had to live at rung 6 as well, because the verifier at rung 7 had already approved the binary.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bootkitty&lt;/strong&gt; did not break at shim or GRUB2; it operated alongside them, under the assumption Secure Boot was either disabled or the attacker&apos;s certificate had been pre-enrolled into MOK. ESET&apos;s primary disclosure confirms it is self-signed and patches GRUB integrity-check functions in memory after being loaded [@bootkitty].&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The LogoFAIL story is especially instructive. Binarly&apos;s December 6, 2023 disclosure showed that Boot Guard validates the firmware image, but the image then parses attacker-controlled logo data through CVE-laden image parsers, executing attacker code in DXE without crossing any signature boundary [@binarly-logofail] [@binarly-logofail-slides] [@hackernews-logofail] [@darkreading-logofail].&lt;/p&gt;
&lt;p&gt;Pluton is the most aggressive structural answer to the asymmetric-revocation problem on shipping silicon. But Pluton is not the only structural answer -- and even Pluton inherits one rung of OEM trust. The next section is the competing-approaches map.&lt;/p&gt;
&lt;h2&gt;7. Competing Approaches: Microsoft Pluton vs the Chipset Fuse Model&lt;/h2&gt;
&lt;p&gt;Pluton and Boot Guard are not competing for the same rung. They compose. Pluton sits in the SoC fabric on supported silicon and provides a TPM 2.0 service plus a Microsoft-controlled firmware-update channel; Boot Guard and PSB continue to verify the BIOS image at the silicon-verifier rung [@pluton-learn]. The interesting design fight is not Pluton-versus-Boot-Guard, it is Pluton-versus-the-OEM-controlled-fuse for the role of &lt;em&gt;trust anchor of last resort&lt;/em&gt;.&lt;/p&gt;
&lt;h3&gt;Pluton&apos;s value proposition&lt;/h3&gt;
&lt;p&gt;Pluton&apos;s pitch, as Microsoft has articulated it since the November 2020 announcement, is to cycle the trust anchor from the OEM&apos;s fuse to a Microsoft-controlled root of trust that also lives in silicon but whose firmware can ship through Windows Update [@pluton-blog].&lt;/p&gt;
&lt;p&gt;The trade is explicit: trust goes from &quot;OEM, with no Microsoft visibility into key-management hygiene&quot; to &quot;Microsoft, with the platform integrated into Microsoft&apos;s signing infrastructure and update cadence.&quot;&lt;/p&gt;
&lt;p&gt;The shift cuts two ways:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;For organisations whose threat model treats OEM-key-management hygiene as the weakest link (and the MSI 2023 leak makes a strong empirical case for that view), Pluton is a structural improvement.&lt;/li&gt;
&lt;li&gt;For organisations whose threat model treats Microsoft as a higher-risk root than the OEM, Pluton makes things worse on net.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;The Pluton-present-is-not-Pluton-enabled trap&lt;/h3&gt;

On April 11, 2022, Matthew Garrett published a reverse engineering of the ROG Zephyrus G14, an AMD Ryzen 6000 laptop, showing that &quot;PSP directory entry 0xB BIT36 have the highest priority... If bit 36 is set, the PSP tells Pluton to turn itself off&quot; [@garrett-pluton-2022].&lt;p&gt;The procurement consequence is easy to miss. Pluton-equipped silicon ships from AMD with Pluton present in the die, but the OEM can flip a single bit in the PSP firmware directory at manufacturing time that gates Pluton entirely. The platform passes &quot;Pluton-equipped&quot; advertising checks while Pluton is functionally disabled.&lt;/p&gt;
&lt;p&gt;Garrett&apos;s December 2022 follow-up documented that Lenovo&apos;s ThinkPad Z13 shipped with Pluton default-disabled and exposed two ACPI device IDs (MSFT0101 and MSFT0200) that platform tooling could use to detect the configuration [@garrett-pluton-2022-update]. The operational lesson: &quot;Has Pluton&quot; is not the same question as &quot;Pluton is enabled and acting as the TPM 2.0 endpoint.&quot;
&lt;/p&gt;&lt;p&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; On Windows, &lt;code&gt;Get-Tpm | Select-Object ManufacturerIdTxt, ManufacturerVersion&lt;/code&gt; returns the TPM 2.0 endpoint vendor and version. A Pluton-active platform reports &lt;code&gt;MSFT&lt;/code&gt; as the manufacturer; a CSME PTT platform reports &lt;code&gt;INTC&lt;/code&gt;; an AMD fTPM platform reports &lt;code&gt;AMD&lt;/code&gt;; a discrete TPM reports the dTPM vendor (Infineon, Nuvoton, STMicroelectronics, etc.). This is the simplest field-confirmable check for which endpoint is actually serving as the TPM.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;AMD PSB on EPYC versus Ryzen&lt;/h3&gt;
&lt;p&gt;AMD Platform Secure Boot has a deployment split that maps onto the consumer-versus-datacenter market structure. On EPYC, PSB-enforced is widely deployed: the datacenter customer wants the silicon-rooted verifier and is willing to accept the cost.&lt;/p&gt;
&lt;p&gt;The cost on EPYC is sharp. Once an OEM has burned its key hash into the PSP fuse on a given CPU, that CPU is irreversibly locked to that OEM. The chip cannot be resold into another OEM&apos;s platform that uses a different OEM key. Secondary-market liquidity for fused EPYC parts is essentially zero. This is not a hypothetical liability. Datacenter operators who refresh hardware on a 3-5 year cycle find that PSB-fused EPYC parts have markedly lower resale value than equivalent non-fused parts. The &quot;right answer&quot; depends on the customer&apos;s threat model, but the trade is real.&lt;/p&gt;
&lt;p&gt;On Ryzen client parts, PSB has historically been opt-in per platform; many consumer Ryzen systems ship with PSB unfused and Pluton (where present) gated by the soft-fuse [@amd-psb-whitepaper] [@garrett-pluton-2022].&lt;/p&gt;
&lt;h3&gt;Caliptra: the open multi-signer answer&lt;/h3&gt;
&lt;p&gt;The most ambitious structural answer to the MSI-leak problem currently in active development is Caliptra, a CHIPS Alliance project announced on December 13, 2022 [@chipsalliance-caliptra]. Caliptra is &quot;the specification, silicon logic, ROM and firmware for implementing a Root of Trust for Measurement (RTM) block inside an SoC&quot; [@caliptra-repo]. The full RTL is open at &lt;code&gt;chipsalliance/caliptra-rtl&lt;/code&gt; [@caliptra-rtl] and the firmware at &lt;code&gt;chipsalliance/caliptra-sw&lt;/code&gt; [@caliptra-sw], both under Apache 2.0. The founding members include AMD, Google, Microsoft, and NVIDIA.&lt;/p&gt;
&lt;p&gt;The structural properties Caliptra targets, which neither Boot Guard, PSB, nor Pluton currently provide on commodity client silicon, are: (1) open RTL so the trust anchor&apos;s silicon implementation is auditable gate-by-gate; (2) multi-signer support so a single OEM key compromise does not unilaterally compromise the trust chain; (3) datacenter-class scope first, with the design choices that follow from that target. Caliptra is not yet on shipping client silicon. It is the negative-space answer to the MSI leak: the structural fix that the chipset-fuse model does not have, but that the architecture community has now spent four years designing in the open.&lt;/p&gt;
&lt;p&gt;Pluton closes the patch-latency gap. Caliptra closes the single-signer gap. Neither closes the supply-chain-of-silicon gap. That is the next section.&lt;/p&gt;
&lt;h2&gt;8. Theoretical Limits: Where the Chain Cannot Reach&lt;/h2&gt;
&lt;p&gt;Every defensive chain has a payload at the bottom -- the thing the chain ultimately protects against. The pre-boot trust chain protects against five attack classes. Here are the five it does not.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Key idea:&lt;/strong&gt; The chain closes three threat classes well (OS-level rootkit persistence; signed-but-revoked bootloader chain-loading; remote firmware reflash without physical access) and structurally cannot close two others (physical-SPI-access before the platform is fused and locked; leaked OEM key on already-shipped silicon). Naming both sets is the precondition for any honest threat-model claim.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;Limit 1 -- Physical SPI access bypasses everything above it&lt;/h3&gt;
&lt;p&gt;Even with Boot Guard or PSB enforced, an attacker who can write to SPI flash before the platform is fused and locked can overwrite the IBB and the BPM and own the next boot. Access vectors: manufacturing, repair, or certain integrated circuits that expose SPI on a debug header.&lt;/p&gt;
&lt;p&gt;CHIPSEC [@chipsec-repo] [@chipsec-page] -- originated by Bulygin and colleagues at CanSecWest 2014 [@c7zero-chipsec] -- is the canonical pre-deployment audit framework for verifying the chipset write-protect bits on shipping platforms. Trammell Hudson&apos;s Thunderstrike, presented at 31C3 in December 2014 [@thunderstrike] [@ccc-31c3], is the canonical real-world demonstration: SPI substitution via a Thunderbolt Option ROM on Apple Mac EFI. It is the existence proof that &quot;physical access plus the right bus&quot; can bypass the silicon-rooted verifier when the platform&apos;s write-protections are not fully engaged.&lt;/p&gt;
&lt;h3&gt;Limit 2 -- A leaked OEM key cannot be revoked at the fuse layer&lt;/h3&gt;
&lt;p&gt;The MSI 2023 incident, recompressed: the FPF stores the &lt;em&gt;hash&lt;/em&gt; of the OEM Boot Guard public key, not a revocation list against that hash. There is no fuse-layer primitive for marking the hash as &quot;revoked.&quot; Once the corresponding private key leaks, every chip carrying that hash is permanently downgraded to a model in which the attacker can sign new Boot Guard firmware that the platform will accept [@binarly-msi] [@helpnet-msi-leak] [@register-msi-alt].&lt;/p&gt;
&lt;p&gt;The structural fix is per-batch key derivation or multi-signer trust anchors; on commodity client silicon in 2026 this fix exists only as a design specification (Caliptra) and not as a shipped product [@caliptra-repo] [@chipsalliance-caliptra]. Eclypsium&apos;s &quot;Vulnerable Boot Guard implementations&quot; series [@eclypsium-blog] documents that the MSI leak is the third or fourth such incident across the Boot Guard vendor space. Lenovo, HP, Compal, and Quanta have all experienced similar leaks; MSI is simply the most extensively catalogued.&lt;/p&gt;
&lt;h3&gt;Limit 3 -- The trust chain cannot defend against malicious silicon&lt;/h3&gt;
&lt;p&gt;If the verifier chip itself is malicious -- substituted upstream of the customer&apos;s supply chain -- the chain&apos;s invariants do not hold, because the bottom of the chain is what defines the trust model. Defending against this class is the supply-chain-of-silicon problem and is out of scope for this article. The open-RTL property of Caliptra is partial mitigation in the sense that the customer can at least verify that the silicon matches the specification, but verifying that a fabricated die corresponds to its RTL is an entirely separate research programme.&lt;/p&gt;
&lt;h3&gt;Limit 4 -- Thunderbolt SPI is a separate SPI region&lt;/h3&gt;

Bjorn Ruytenberg&apos;s Thunderspy disclosure on May 10, 2020 [@thunderspy-report] [@thunderspy-site] targeted firmware vulnerabilities in the Thunderbolt controller chip on PCs with Thunderbolt 1 / 2 / 3 ports. The controller has its own firmware in its own SPI region, distinct from the main BIOS SPI region that Boot Guard / PSB verify.&lt;p&gt;Thunderspy let an attacker with physical access to the port flash modified Thunderbolt controller firmware, weakening the DMA isolation Thunderbolt 3 was supposed to provide. Thunderspy did &lt;em&gt;not&lt;/em&gt; bypass Boot Guard, PSB, or Secure Boot. It bypassed a different verifier in a different SPI region for a different protocol.&lt;/p&gt;
&lt;p&gt;The conflation -- &quot;Thunderspy broke Secure Boot&quot; -- appeared in early press coverage and persists in some secondary writing. The primary report is unambiguous that the target was Thunderbolt controller firmware [@thunderspy-report].
&lt;/p&gt;&lt;p&gt;&lt;/p&gt;
&lt;p&gt;The structural lesson generalises beyond Thunderbolt: &quot;SPI&quot; on a modern PC is not a single trust domain. The main BIOS region, the Thunderbolt controller, the Embedded Controller, the fingerprint reader, and (on servers) the BMC each have their own SPI regions, their own update mechanisms, and their own verifier (if any). A vulnerability in one does not necessarily affect the others; but inventorying which regions are independently verified is a non-trivial procurement exercise.&lt;/p&gt;
&lt;h3&gt;Limit 5 -- The ME and PSP are themselves attack surface&lt;/h3&gt;
&lt;p&gt;The CSME and PSP exist to verify the platform&apos;s trust chain, but they are themselves programs running on processors. They have bugs. The disclosure record is sobering:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;INTEL-SA-00086 (November 2017).&lt;/strong&gt; Remote code execution in CSME via CVE-2017-5705, CVE-2017-5706, CVE-2017-5708, and CVE-2017-5712, pre-disclosed by the Ermolov / Goryachy BH EU 2017 work [@intel-sa-00086] [@ermolov-goryachy-2017].&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;CVE-2020-8705.&lt;/strong&gt; A Boot Guard ACM vulnerability in the S3-resume code path that Trammell Hudson wrote up [@cve-2020-8705-nvd] [@trmm-sleep].&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;One Glitch to Rule Them All (CCS 2021).&lt;/strong&gt; Buhren, Jacob, Krachenfels, and Seifert demonstrated voltage-glitching attacks against the AMD PSP on Zen 1, Zen 2, and Zen 3 [@one-glitch-2021], with open tooling at &lt;code&gt;PSPReverse/amd-sp-glitch&lt;/code&gt; [@psp-glitch-repo].&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;faulTPM (USENIX Security 2024).&lt;/strong&gt; The follow-up paper (arXiv v1 April 28, 2023) showed the same primitive could extract sealed TPM blobs from AMD fTPM, enabling &lt;a href=&quot;https://paragmali.com/blog/bitlocker-on-windows-architecture-attacks-and-the-limits-of-/&quot; rel=&quot;noopener&quot;&gt;BitLocker&lt;/a&gt; key recovery on devices using AMD fTPM-as-TPM [@faultpm-2023].&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The faulTPM hardware cost is in the low hundreds of US dollars (commodity microcontroller plus voltage-glitching circuit). The capability the cost buys is full extraction of fTPM-sealed blobs. The &quot;expensive nation-state-grade attack&quot; framing does not apply here.&lt;/p&gt;
&lt;p&gt;These attacks do not break the &lt;em&gt;concept&lt;/em&gt; of a silicon-rooted trust chain. They break specific implementations of it. The conceptual chain is sound; the engineering surface inside each implementation has bugs that, once disclosed, get patched and shifted up the cadence. The pattern is structurally similar to OS kernel CVE disclosures. The existence of bugs does not mean the kernel concept fails; it means kernels need patch cadence. The difference at the firmware layer is that patch cadence at the CSME or PSP runs through the OEM BIOS update pipeline, which is slower than the OS pipeline by a factor of roughly ten.&lt;/p&gt;
&lt;p&gt;Five limits. The first three are deep. The last two are open research.&lt;/p&gt;
&lt;h2&gt;9. Open Problems: What Is Still Being Researched&lt;/h2&gt;
&lt;p&gt;Five open problems. Three are about the chain. Two are about who gets to see inside it.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;OEM key-management hygiene at industry scale.&lt;/strong&gt; The Eclypsium series on leaked Boot Guard keys covers Compal, Quanta, Lenovo, and MSI across multiple disclosures [@eclypsium-blog]. The structural fix -- per-batch keys, multi-signer trust anchors, hardware-bound signing services -- exists as Caliptra in specification [@caliptra-repo] but not in shipping client silicon. The 2026 research question is not &quot;do we know how to solve this&quot; but &quot;when and on which silicon families does Caliptra (or an equivalent) actually ship to consumer platforms.&quot;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Pluton firmware-runtime transparency.&lt;/strong&gt; Microsoft has committed to a &quot;Rust-based firmware foundation&quot; for Pluton on 2024+ AMD and Intel systems [@pluton-learn] but has not publicly named the specific runtime. Community speculation around Tock OS [@tockos] (an embedded Rust kernel designed for security-critical microcontrollers) remains speculation; the connection has not been confirmed by Microsoft. Microsoft also has not published gate-level documentation of the Pluton silicon. The accountability gap -- &quot;we asked you to trust this runtime; what is it&quot; -- is itself an open problem and is the single most-cited objection to Pluton in the open-firmware community.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;The Linux side of the KB5025885 transition.&lt;/strong&gt; Shim distributions must coordinate with the PCA2011 to PCA2023 cutover or face boot failures on enforced-Secure-Boot multi-OS estates [@garrett-shim-19448] [@garrett-shim-17872] [@sbat-md]. Matthew Garrett&apos;s 2012 first-hand description of shim remains the cross-vendor architectural reference, and his 2022 / 2023 follow-ups document the operational hazards. The risk is not theoretical: a distribution that ships a shim signed only by PCA2011 and does not coordinate the migration to PCA2023 will not boot on Windows 11 systems that have completed the KB5025885 cutover.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Vendor-level attestation incompatibility.&lt;/strong&gt; TCG TPM 2.0 quotes [@tcg-tpm-lib] are widely supported, but vendor-level attestation (Intel SGX DCAP [@sgx-dca], AMD SEV-SNP attestation, Pluton attestation) remain three incompatible schemes with three sets of root certificates, three quote formats, and three verifier libraries. A relying party that wants to attest a &lt;a href=&quot;https://paragmali.com/blog/inside-azure-confidential-vms-sev-snp-intel-tdx-and-the-para/&quot; rel=&quot;noopener&quot;&gt;Confidential VM&lt;/a&gt; running on a mixed-vendor fleet must integrate against all three. The TPM 2.0 quote covers only the rungs visible to the TPM; it does not attest the CSME runtime, the PSP runtime, or the Pluton runtime in a vendor-neutral way.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;DRTM deployment and revocation maturity.&lt;/strong&gt; Windows 11 Secured-core requires DRTM via Intel TXT or AMD SKINIT, but mature revocation for DRTM-measured payloads is nascent. AMD fTPM glitch resistance on Zen 4+ is not yet publicly gate-level documented; the faulTPM team explicitly left Zen 4+ for future work [@faultpm-2023], and the absence of vendor disclosure leaves the question open at the level of public knowledge.&lt;/p&gt;
&lt;p&gt;That is the research frontier. What follows is the practitioner&apos;s manual.&lt;/p&gt;
&lt;h2&gt;10. Practical Guide: How to Audit, Configure, and Reason About the Chain&lt;/h2&gt;
&lt;p&gt;Three audiences. Three checklists. One decision tree.&lt;/p&gt;
&lt;h3&gt;For the procurement architect: the seven-question silicon checklist&lt;/h3&gt;

flowchart TD
    Q1{&quot;Boot Guard enforced (profile 4 or 5) on Intel, or PSB-enforced on AMD?&quot;}
    Q2{&quot;PSB-fused to the correct OEM (not another OEM&apos;s key)?&quot;}
    Q3{&quot;Pluton present AND not gated by the OEM soft fuse?&quot;}
    Q4{&quot;DRTM-capable, Intel TXT or AMD SKINIT?&quot;}
    Q5{&quot;KB5025885 cumulative update applied?&quot;}
    Q6{&quot;PCA2023 present in db?&quot;}
    Q7{&quot;dbx SVN current per Microsoft January 2026 baseline?&quot;}
    OK[Procurement-grade Secured-core posture]
    BAD[Reject or remediate before deployment]
    Q1 -- yes --&amp;gt; Q2
    Q1 -- no --&amp;gt; BAD
    Q2 -- yes --&amp;gt; Q3
    Q2 -- no --&amp;gt; BAD
    Q3 -- yes --&amp;gt; Q4
    Q3 -- no --&amp;gt; BAD
    Q4 -- yes --&amp;gt; Q5
    Q4 -- no --&amp;gt; BAD
    Q5 -- yes --&amp;gt; Q6
    Q5 -- no --&amp;gt; BAD
    Q6 -- yes --&amp;gt; Q7
    Q6 -- no --&amp;gt; BAD
    Q7 -- yes --&amp;gt; OK
    Q7 -- no --&amp;gt; BAD
&lt;h3&gt;For the firmware engineer: SBAT versus dbx revocation capacity&lt;/h3&gt;
&lt;p&gt;The asymmetric-revocation point gets sharper when you run it as code. The shim SBAT documentation makes the capacity claim concrete: &quot;This single revocation event consumes 10kB of the 32kB, or roughly one third, of revocation storage typically available on UEFI platforms&quot; [@sbat-md]. The block below shows what a single SBAT generation bump replaces in dbx storage.&lt;/p&gt;
&lt;p&gt;{&lt;code&gt;const DBX_CAPACITY_BYTES = 32 * 1024; const SHA256_HASH_BYTES  = 32; const SBAT_ENTRY_BYTES   = 40; const dbxCapacityHashes  = Math.floor(DBX_CAPACITY_BYTES / SHA256_HASH_BYTES); const sbatCapacityEntries = Math.floor(DBX_CAPACITY_BYTES / SBAT_ENTRY_BYTES); console.log(&apos;dbx capacity in SHA-256 hashes  :&apos;, dbxCapacityHashes); console.log(&apos;Equivalent SBAT generation rows :&apos;, sbatCapacityEntries); console.log(); const vulnerableShimBuilds = 256; const dbxBytesForShim  = vulnerableShimBuilds * SHA256_HASH_BYTES; const dbxFractionUsed  = (dbxBytesForShim / DBX_CAPACITY_BYTES * 100).toFixed(1); const sbatBytesForShim = 1 * SBAT_ENTRY_BYTES; const sbatFractionUsed = (sbatBytesForShim / DBX_CAPACITY_BYTES * 100).toFixed(1); console.log(&apos;Revoking&apos;, vulnerableShimBuilds, &apos;distinct vulnerable shim builds:&apos;); console.log(&apos;  via dbx hashes :&apos;, dbxBytesForShim, &apos;bytes -&apos;, dbxFractionUsed + &apos;% of capacity&apos;); console.log(&apos;  via SBAT bump  :&apos;, sbatBytesForShim, &apos;bytes -&apos;, sbatFractionUsed + &apos;% of capacity&apos;); console.log(); console.log(&apos;SBAT is roughly 256x more capacity-efficient at revoking entire vulnerability classes.&apos;);&lt;/code&gt;}&lt;/p&gt;
&lt;h3&gt;For the detection engineer: CHIPSEC modules per chain rung&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Chain rung&lt;/th&gt;
&lt;th&gt;CHIPSEC module&lt;/th&gt;
&lt;th&gt;What it audits&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;SPI access policy (rung 1-2)&lt;/td&gt;
&lt;td&gt;&lt;code&gt;common.spi_access&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;SPI controller access permissions and region descriptors&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SPI descriptor lockdown&lt;/td&gt;
&lt;td&gt;&lt;code&gt;common.spi_desc&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;SPI flash descriptor lock bit (FLOCKDN)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;BIOS write-protect&lt;/td&gt;
&lt;td&gt;&lt;code&gt;common.bios_wp&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;BIOSWE / BLE / SMM_BWP configuration&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;BIOS timestamp&lt;/td&gt;
&lt;td&gt;&lt;code&gt;common.bios_ts&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;BIOS update timestamp consistency&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SMM lockdown&lt;/td&gt;
&lt;td&gt;&lt;code&gt;common.smm&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;System Management Mode protections including SMM_BWP&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SPI controller lockdown&lt;/td&gt;
&lt;td&gt;&lt;code&gt;spi.spi_lock&lt;/code&gt;&lt;/td&gt;
&lt;td&gt;Per-region SPI write-protect and SPI controller lock&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;The full CHIPSEC module catalogue is in the &lt;code&gt;chipsec/modules&lt;/code&gt; directory of the project repository [@chipsec-repo] [@chipsec-page]. A typical pre-deployment audit runs &lt;code&gt;chipsec_main&lt;/code&gt; with the platform-specific module set and produces a per-module pass / fail report; any FAIL on the modules above maps directly to a known CVE class.&lt;/p&gt;

On a CHIPSEC-supported platform (Linux or Windows, with the kernel driver installed), `sudo chipsec_main` runs the full default module set against the current platform and prints a per-module PASS / FAIL summary. To restrict to the SPI / BIOS protection subset above, use `sudo chipsec_main -m common.bios_wp -m common.spi_desc -m common.spi_access -m spi.spi_lock -m common.smm -m common.bios_ts`. Read the CHIPSEC manual at [@chipsec-page] before running on production hardware; some modules touch SMI handlers and can wedge a misconfigured platform.
&lt;h3&gt;For the threat-model architect: three closed, three open&lt;/h3&gt;
&lt;p&gt;The chain closes three threat classes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;OS-level rootkit persistence below the kernel&lt;/strong&gt; (Mebromi-class attacks against unprotected SPI).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Signed-but-revoked bootloader chain-loading&lt;/strong&gt; (BlackLotus-class attacks against bootmgfw + Secure Boot).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Remote firmware reflash without physical access&lt;/strong&gt; (driver-class attacks against poorly-locked SPI controllers).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The chain does &lt;em&gt;not&lt;/em&gt; close three other classes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Physical-SPI-access before the platform is fused and locked&lt;/strong&gt; (Thunderstrike-class attacks via debug headers or controller ports).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Leaked OEM key on already-shipped silicon&lt;/strong&gt; (MSI 2023-class capability transfers).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Supply-chain compromise of the silicon itself&lt;/strong&gt; (the most-cited but operationally rarest class).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Practitioner alternative stacks&lt;/h3&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; If the OEM trust chain does not meet your threat model, the open-firmware community has an alternative for many platforms. - &lt;strong&gt;coreboot&lt;/strong&gt; [@coreboot-org] [@wiki-coreboot] (originated as LinuxBIOS at Los Alamos National Laboratory in 1999) is the most widely deployed open firmware, shipping by default on every Chromebook. - &lt;strong&gt;Heads&lt;/strong&gt; [@heads-repo] (Trammell Hudson&apos;s payload) runs on top of coreboot to provide TPM-measured boot with second-factor attestation (typically a YubiKey). It is the high-assurance Linux deployment baseline of choice for several investigative-journalism shops. - &lt;strong&gt;EDK II&lt;/strong&gt; [@edk2-repo] is the reference open-source UEFI implementation if you need UEFI semantics rather than coreboot semantics. None of these magically restore revocation at the fuse layer, but they remove the OEM signing infrastructure as a single point of failure for everything above the fuse.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;You now have the chain, the limits, and the controls. The FAQ kills the recurring misconceptions.&lt;/p&gt;
&lt;h2&gt;11. Frequently Asked Questions&lt;/h2&gt;

Secure Boot in the abstract protects against unsigned-bootloader execution; it does not by itself protect against signed-but-vulnerable bootloader execution. BlackLotus exploited CVE-2022-21894 against a Microsoft-signed boot manager [@cve-2022-21894-nvd] [@eset-blacklotus]. The vulnerable binary was still signed -- and &quot;patched&quot; is not the same as &quot;revoked.&quot; Until Microsoft adds the vulnerable binary&apos;s hash to dbx (which is what KB5025885 does, on a multi-year staged rollout to avoid bricking unpatched systems [@kb5025885]), Secure Boot will continue to load and execute the vulnerable binary.

No -- see §6 Callout. KB5025885 modifies DB (PCA2023 added) and DBX (vulnerable bootmgfw hashes added); the Platform Key is untouched [@kb5025885].

This is a threat-model question, not a factual one. The Intel ME (now CSME on Skylake and later) runs MINIX 3 [@wiki-ime] [@tanenbaum-letter] and provides a set of services that the OEM may or may not have enabled: Active Management Technology, PTT firmware TPM, and Identity Protection Technology, among others [@intel-csme-whitepaper]. Whether you call that &quot;a backdoor&quot; depends on whether you consider remote attestation, hardware-rooted identity, and out-of-band management to be services or threats. The factual content is that the CSME runs, has its own runtime, has had CVEs (INTEL-SA-00086 [@intel-sa-00086] [@ermolov-goryachy-2017]), and ships on essentially every consumer Intel platform since Skylake.

No. The name appears to be a confabulation that does not correspond to any verifiable primary research. The real SPI-write research bases for the pre-boot chain are Thunderstrike (Trammell Hudson, 31C3, December 2014 [@thunderstrike] [@ccc-31c3]), CHIPSEC (Bulygin et al., CanSecWest 2014 [@c7zero-chipsec]), and LogoFAIL post-exploitation (Binarly, December 2023 [@binarly-logofail]). If you see &quot;Hudson Hammer&quot; cited, treat it as a hallucinated reference.

No -- Thunderspy targets a separate SPI region for the Thunderbolt controller. See §8 Limit 4 for the full mechanism [@thunderspy-report].

Cortex-A5 with TrustZone is the well-attested answer for Family 15h and Family 17h (see §3 hedge for the reverse-engineering corpus). Cortex-A7 is unsupported by any vendor primary or community reverse engineering. Family 19h and later is not publicly documented.

No -- pre-Skylake ME (1 through 10) ran ThreadX on ARC; ME 11 (Skylake) introduced MINIX 3 on Intel Quark; Ice Lake and later CSME moved to Tremont-class x86 but kept MINIX 3. See the §3 generational table [@wiki-ime].

Because capability transfer is permanent regardless of when it gets operationalised. The leaked keys correspond to public-key hashes that have already been burned into the FPF on every affected chip [@binarly-msi] [@helpnet-msi-leak]. There is no fuse-layer revocation primitive [@register-msi-alt]. The chips are permanently downgraded to a model in which an attacker who has the leaked keys can sign new Boot Guard firmware that the platform will accept. The waiting time between disclosure and operationalisation is the only variable; the structural condition is not recoverable.
&lt;h3&gt;Closing thought&lt;/h3&gt;
&lt;p&gt;You came in believing Secure Boot was the trust anchor. You leave knowing it is the fifth rung. The four rungs below it -- microcode, ACM or PSP boot ROM, FPF or OEM-key fuse policy read, IBB verification -- are the ones that actually anchor the chain. The most permanent of those is the bottom rung, and the most permanent rung is also the one with no revocation surface. Read those two sentences together and you have the whole article in a paragraph. Read them with the MSI 2023 leak in mind and you have the reason this article needed to exist.&lt;/p&gt;
&lt;p&gt;&amp;lt;StudyGuide slug=&quot;below-the-os-pre-boot-trust-chain&quot; keyTerms={[
  { term: &quot;ACM&quot;, definition: &quot;Authenticated Code Module -- the Intel-signed binary that the CPU verifies against a silicon-fused public key and runs inside the CPU package as the first stage of Boot Guard.&quot; },
  { term: &quot;FPF&quot;, definition: &quot;Field Programmable Fuse -- the one-time-programmable polysilicon fuse array inside Intel&apos;s PCH or CPU package that stores the OEM Boot Guard public-key hash and profile bits.&quot; },
  { term: &quot;BPM&quot;, definition: &quot;Boot Policy Manifest -- the OEM-signed manifest that names the Initial Boot Block regions, the expected hash, and the active Boot Guard profile.&quot; },
  { term: &quot;PSP&quot;, definition: &quot;AMD Platform Security Processor -- an ARM Cortex-A5 with TrustZone, on-die coprocessor that boots before the x86 cores and runs the PSP boot ROM.&quot; },
  { term: &quot;PSB&quot;, definition: &quot;AMD Platform Secure Boot -- the AMD architectural feature in which the PSP verifies the OEM-signed BIOS image against an OEM-key fuse before releasing the x86 cores from reset.&quot; },
  { term: &quot;IBB&quot;, definition: &quot;Initial Boot Block -- the first chunk of UEFI firmware cryptographically covered by the lower-rung silicon verifier (ACM on Intel, PSP on AMD).&quot; },
  { term: &quot;CSME&quot;, definition: &quot;Converged Security and Management Engine -- Intel&apos;s on-die security processor running MINIX 3 from ME 11 / Skylake forward.&quot; },
  { term: &quot;SVN&quot;, definition: &quot;Secure Version Number -- a monotonically increasing version number used as a revocation primitive when the platform refuses to load any artifact below its stored SVN floor.&quot; },
  { term: &quot;SBAT&quot;, definition: &quot;Secure Boot Advanced Targeting -- a generation-number revocation model for shim and downstream components, replacing per-hash dbx revocation for entire vulnerability classes.&quot; },
  { term: &quot;DRTM&quot;, definition: &quot;Dynamic Root of Trust for Measurement -- a late-launch primitive (Intel TXT or AMD SKINIT) that re-anchors the trust chain after the static root has done its work.&quot; }
]} questions={[
  { q: &quot;Why is the FPF the bottom of the Intel pre-boot trust chain?&quot;, a: &quot;Because it is the only layer that cannot be rewritten without replacing the chip, so it must be the layer that anchors all other verifications.&quot; },
  { q: &quot;What is the load-bearing structural difference between the fuse layer and the SBAT layer?&quot;, a: &quot;The SBAT layer has an expressive revocation primitive (generation-number deny-list); the fuse layer has none, because the fuse stores the hash of an OEM public key and cannot be modified.&quot; },
  { q: &quot;Why is KB5025885 not a Platform Key rotation?&quot;, a: &quot;Because the mechanism is db (PCA2023 added) plus dbx (vulnerable bootmgfw hashes added) plus SVN, not Platform Key modification. The Platform Key itself is unchanged.&quot; },
  { q: &quot;What does the MSI 2023 OEM-key leak demonstrate about the chain&apos;s structural properties?&quot;, a: &quot;That a leaked OEM Boot Guard private key cannot be revoked at the fuse layer because the FPF stores the public-key hash, not a revocation list, so every chip carrying that hash is permanently downgraded.&quot; },
  { q: &quot;Does Thunderspy bypass Boot Guard?&quot;, a: &quot;No. Thunderspy targets Thunderbolt controller firmware in a separate SPI region. The main BIOS SPI region verified by Boot Guard / PSB is not affected.&quot; }
]} /&amp;gt;&lt;/p&gt;
</content:encoded><category>firmware-security</category><category>uefi</category><category>secure-boot</category><category>intel-boot-guard</category><category>amd-psp</category><category>csme</category><category>pluton</category><category>trusted-computing</category><author>noreply@paragmali.com (Parag Mali)</author></item><item><title>Pluton: A TPM On Silicon Microsoft Can Patch</title><link>https://paragmali.com/blog/pluton-a-tpm-on-silicon-microsoft-can-patch/</link><guid isPermaLink="true">https://paragmali.com/blog/pluton-a-tpm-on-silicon-microsoft-can-patch/</guid><description>How Microsoft moved the TPM onto the SoC die, ran it on Rust firmware, and patched it through Windows Update -- and what that cost in trust centralisation.</description><pubDate>Sat, 09 May 2026 00:00:00 GMT</pubDate><content:encoded>
**Microsoft Pluton is the architectural answer to a TPM threat model that broke between 2019 and 2024.** It moves the TPM onto the application SoC die, runs Microsoft-authored Rust firmware on a dedicated TEE, and ships updates through Windows Update -- closing every attack surface that defeated discrete TPM (Andzakovic 2019), Intel PTT (TPM-Fail 2019), and AMD fTPM (faulTPM 2023). Each design choice retires a 2014-2024 attack class and places a new trust in Microsoft: silicon supply chain, firmware compiler, signing key, update channel. The chip is the cheapest part of the system; the cost is a single Microsoft signing key as the trust anchor for every Pluton-equipped Windows 11 client.
&lt;h2&gt;1. The question Microsoft answered architecturally before the prior article posed it&lt;/h2&gt;
&lt;p&gt;&lt;em&gt;&quot;The TPM was supposed to be the part of the system you didn&apos;t have to trust anyone for. Twenty-five years later, the trust question is back -- and the answer is now political.&quot;&lt;/em&gt; That was the closing line of the previous article in this series [@prior-tpm-in-windows]. The counterintuitive fact: by the time that question was asked, Microsoft had been shipping its architectural answer to it for twelve years already, inside an Xbox.&lt;/p&gt;
&lt;p&gt;The Xbox One launched in November 2013 with an on-die, Microsoft-signed security processor and a Microsoft-controlled firmware update path. Microsoft&apos;s own announcement seven years later named the lineage explicitly: &lt;em&gt;&quot;the Pluton design was introduced as part of the integrated hardware and OS security capabilities in the Xbox One console released in 2013 by Microsoft in partnership with AMD&quot;&lt;/em&gt; [@ms-pluton-blog-2020]. The November 17, 2020 announcement that Pluton would ship on Windows PCs was not the introduction of a new design. It was a decision to apply a console design pattern to the general-purpose PC, with all the political and supply-chain consequences that come with that decision.&lt;/p&gt;
&lt;p&gt;The prior article ended with three sets of broken engineering. A NZ$40 iCE40 FPGA on an LPC bus defeats discrete TPM in the time it takes a laptop to finish Trusted Boot [@andzakovic-2019-tpm-sniffing]. A network packet defeats Intel PTT through a 5-hour timing side channel against the ECDSA implementation in CSME [@tpmfail-microsite]. A few hours of physical access defeats AMD fTPM via a voltage glitch on the SVI2 power-management bus, walking out with the entire fTPM internal state [@jacob-2023-faultpm]. All three are documented in the prior article&apos;s section 5 and will not be re-derived here.&lt;/p&gt;
&lt;p&gt;This article is what those three results forced into shape. Microsoft&apos;s reply is structural: move the TPM onto the SoC die so the bus disappears; run it on a dedicated TEE so a faulTPM-class glitch cannot drop everything; rewrite the firmware in a memory-safe language so the next decade of TPM-Fail-class CVEs has somewhere shorter to live; and route updates through Windows Update so the patch latency stops being measured in OEM-capsule quarters and starts being measured in Patch Tuesday weeks. Each design choice closes a specific 2014-2024 attack class. Each design choice also names a new trust. &lt;em&gt;The bus is closed by trusting the silicon supply chain. The TEE is dedicated by trusting Microsoft&apos;s chip-level isolation. The firmware is memory-safe by trusting Microsoft&apos;s compiler and SDLC. The update path is fast by trusting Microsoft&apos;s signing key and Windows Update infrastructure.&lt;/em&gt; That is the article in five sentences.&lt;/p&gt;
&lt;p&gt;The route from here is historical, then technical, then practical. Section 2 traces the design pattern from Xbox One (2013) through Project Sopris (2015), the &lt;em&gt;Seven Properties of Highly Secure Devices&lt;/em&gt; paper (2017), Project Cerberus (2017), and Azure Sphere (2018). Section 3 shows why every other architectural option for &quot;where the TPM lives&quot; was systematically broken in public between 2019 and 2024. Section 4 walks the five generations of Microsoft security silicon side by side. Section 5 takes the four design choices in the November 17, 2020 announcement one at a time. Section 6 lists what is shipping in 2026, who has it on by default, and how to verify. Section 7 puts Pluton next to Apple&apos;s Secure Enclave Processor, Google&apos;s Titan M2 / OpenTitan, Caliptra, and the still-shipping Project Cerberus. Section 8 is what Pluton still cannot do, including the worked example of CVE-2025-2884. Section 9 is the open problems Pluton has named but not solved. Section 10 is the Monday-morning checklist. Section 11 is the FAQ and the closing.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Key idea:&lt;/strong&gt; A single design pattern -- on-die security processor, Microsoft-signed firmware, online firmware updates -- migrating across product domains for thirteen years until it lands on the general-purpose PC. That migration is the subject of this article. Its cost is the subject of its closing.&lt;/p&gt;
&lt;/blockquote&gt;

gantt
    title Microsoft on-die security silicon 2013-2025
    dateFormat YYYY-MM
    axisFormat %Y
    section Lineage
    Xbox One on-die security processor :2013-11, 2018-12
    Project Sopris (Codename 4x4) :2015-01, 2017-04
    Seven Properties paper (MSR-TR-2017-16) :2017-03, 2017-12
    Project Cerberus (OCP) :2017-11, 2025-12
    Azure Sphere (MT3620, Pluton MCU) :milestone, 2018-04, 1d
    section Pluton on PC
    November 17 2020 announcement :milestone, 2020-11, 1d
    AMD Ryzen 6000 first silicon :milestone, 2022-01, 1d
    Linux 6.3 tpm_crb merged :milestone, 2023-02, 1d
    Caliptra 1.0 (parallel path) :milestone, 2024-04, 1d
    Rust-based firmware foundation :2024-01, 2026-12
    section Stress test
    CVE-2025-2884 (TCG ref code OOB) :milestone, 2025-06, 1d
&lt;p&gt;Where did the design pattern come from, and why was it ready for the PC in 2020 and not earlier?&lt;/p&gt;
&lt;h2&gt;2. Origins -- Xbox One (2013), Sopris (2015), Seven Properties (2017), Cerberus (2017), Azure Sphere (2018)&lt;/h2&gt;
&lt;p&gt;The November 2020 announcement is retroactive. The &lt;em&gt;design&lt;/em&gt; dates to Xbox One in 2013; the &lt;em&gt;name&lt;/em&gt; &quot;Pluton&quot; first appears publicly in April 2018, in an Azure Blog post on the Azure Sphere MCU [@azure-blog-anatomy-secured-mcu]. The five-year gap is the architecture maturing from &quot;console-only thing the SoC team built&quot; to &quot;thing Microsoft Research thinks every device should have.&quot;&lt;/p&gt;
&lt;h3&gt;2013 -- Xbox One&lt;/h3&gt;
&lt;p&gt;A console adversary has full physical access, unlimited time, and an economic incentive measured in hundreds of thousands of pirated units. Microsoft and AMD co-designed the Xbox One SoC with an on-die security subsystem, Microsoft-signed firmware, and a hardware-enforced separation between the Game OS and the System OS. The 2020 Pluton announcement [@ms-pluton-blog-2020] names the lineage explicitly. The architectural shape that the Pluton-on-PC program would later put under TCG TPM 2.0 wire compatibility was already running in production at consumer-console scale by 2014. The motivation matters because it is the &lt;em&gt;only&lt;/em&gt; domain where Microsoft had hands-on experience deploying an on-die security processor against an adversary who owned the hardware. (Note: that the design was driven specifically by RGH-class console-modding adversaries is architectural inference, not a Microsoft statement.)&lt;/p&gt;
&lt;h3&gt;2015 -- Codename 4x4 / Project Sopris&lt;/h3&gt;
&lt;p&gt;In 2015, a small team in Microsoft AI+Research NExT, led by Galen Hunt, began exploring whether the same architectural shape could secure a $4 microcontroller [@msr-blog-azure-sphere]. The internal codename was &lt;em&gt;Codename 4x4&lt;/em&gt; -- a reference to the technical requirements that the chip would have at least 4 MB of RAM and 4 MB of Flash [@msr-blog-azure-sphere]. The Microsoft Research blog post is the surviving primary source on Sopris [@msr-blog-azure-sphere].The &quot;Codename 4x4&quot; name was internal team shorthand. Hunt&apos;s MSR Blog post records both the meaning and the constraint: &lt;em&gt;&quot;This was the origin of the project, internally called &apos;Codename 4x4&apos;, referring to the technical requirements that the chip will have at least 4 MB of RAM and 4 MB of Flash&quot;&lt;/em&gt; [@msr-blog-azure-sphere]. The point was not the storage budget; the point was that a $4 MCU must afford the same architectural properties as a console SoC.&lt;/p&gt;
&lt;h3&gt;March 2017 -- Seven Properties of Highly Secure Devices&lt;/h3&gt;
&lt;p&gt;Hunt, George Letey, and Edmund Nightingale published &lt;em&gt;The Seven Properties of Highly Secure Devices&lt;/em&gt; as Microsoft Research Technical Report MSR-TR-2017-16 in March 2017 [@msr-2017-seven-properties]. The paper makes a single normative claim: &lt;em&gt;&quot;This paper makes two contributions to the field of device security. First, we identify seven properties we assert are required in all highly secure devices&quot;&lt;/em&gt; [@msr-2017-seven-properties]. The seven are: hardware-based root of trust, small trusted computing base, defense in depth, compartmentalisation, certificate-based authentication, &lt;em&gt;renewable security&lt;/em&gt;, and failure reporting. Property #6 is the one the rest of this article turns on. &lt;em&gt;Renewable security via online firmware updates&lt;/em&gt; is precisely the property that distinguishes Pluton-on-PC from a 2014 dTPM. The chip is allowed to be wrong, as long as the chip can be made right again, fast.&lt;/p&gt;

A 2017 Microsoft Research framework (Hunt, Letey, Nightingale; MSR-TR-2017-16) listing the architectural properties any &quot;highly secure device&quot; must satisfy: hardware-based root of trust, small TCB, defense in depth, compartmentalisation, certificate-based authentication, *renewable security via online updates*, and failure reporting [@msr-2017-seven-properties]. Renewable security is the property the Pluton-on-PC update path operationalises; it also names the new trust the program places in Microsoft.
&lt;h3&gt;November 9, 2017 -- Project Cerberus&lt;/h3&gt;
&lt;p&gt;Microsoft announced Project Cerberus at the OCP Summit on November 9, 2017 [@siliconangle-2017-cerberus]. Kushagra Vaid, then Microsoft Azure GM, described the architecture as &lt;em&gt;&quot;a cryptographic microcontroller running secure code which intercepts accesses from the host to flash over the SPI bus (where firmware is stored), so it can continuously measure and attest these accesses to ensure firmware integrity&quot;&lt;/em&gt; [@siliconangle-2017-cerberus]. Microsoft contributed a five-PDF specification set to OCP under Project Olympus [@ocp-cerberus]: Architecture Overview, Challenge Protocol, Firmware Update, Host Processor Firmware Requirements, and Processor Cryptography. The reference implementation lives at &lt;code&gt;Azure/Project-Cerberus&lt;/code&gt; on GitHub [@azure-cerberus-github] -- platform-agnostic core, FreeRTOS and Linux ports, &lt;em&gt;&quot;designed to be a hardware root of trust (RoT) for server platforms&quot;&lt;/em&gt; [@azure-cerberus-github]. Microsoft Learn describes Cerberus as &lt;em&gt;&quot;a NIST 800-193 compliant hardware root-of-trust with an identity that cannot be cloned&quot;&lt;/em&gt; [@ms-learn-cerberus] [@nist-sp-800-193]. This was Microsoft&apos;s first public commitment to publishing a hardware-RoT design and to running it in production at fleet scale.&lt;/p&gt;
&lt;p&gt;Cerberus matters here for what it &lt;em&gt;cannot&lt;/em&gt; do, not what it can. It is a discrete chip. It needs board area, a BOM line, and per-OEM design-in cost. It works on a $20,000 server motherboard. It does not work on a $700 ultrabook -- and putting it on one would reintroduce the very external-bus surface that Andzakovic 2019 showed to be sniffable [@andzakovic-2019-tpm-sniffing]. Cerberus solves the server problem definitively. It does not solve the PC problem, and its existence makes the PC-side need explicit.&lt;/p&gt;
&lt;h3&gt;April 16, 2018 -- Azure Sphere preview at RSA 2018&lt;/h3&gt;
&lt;p&gt;Hunt&apos;s announcement of Azure Sphere at the 2018 RSA Conference is the first public, named appearance of &quot;Pluton.&quot; The Azure Blog launch post promised &lt;em&gt;&quot;custom silicon security technology from Microsoft, inspired by 15 years of experience and learnings from Xbox, to secure this new class of MCUs and the devices they power&quot;&lt;/em&gt; [@azure-blog-2018-azure-sphere]. The companion &lt;em&gt;Anatomy of a Secured MCU&lt;/em&gt; post is the first technical description: &lt;em&gt;&quot;our Pluton Security Subsystem is the heart of our security story&quot;&lt;/em&gt; [@azure-blog-anatomy-secured-mcu]. Three components, one trust anchor: the MediaTek MT3620 MCU with the Pluton subsystem on die; the Microsoft-managed Linux-based Azure Sphere OS; and the Azure Sphere Security Service (AS3) cloud, which signed firmware updates and consumed device attestations. Wikipedia records the general-availability date as February 24, 2020 [@wikipedia-azure-sphere], also describing Pluton as &lt;em&gt;&quot;a Microsoft-designed security subsystem that implements a hardware-based root of trust for Azure Sphere&quot;&lt;/em&gt; [@wikipedia-azure-sphere].&lt;/p&gt;

Each chip includes custom silicon security technology from Microsoft, inspired by 15 years of experience and learnings from Xbox, to secure this new class of MCUs and the devices they power. -- Galen Hunt, Azure Blog, April 16, 2018 [@azure-blog-2018-azure-sphere]
&lt;p&gt;By April 2018, Microsoft had three architectural pieces in production. Xbox One proved the on-die security processor. Project Cerberus proved that Microsoft could publish an open RoT design and operate the back end at hyperscale. Azure Sphere proved that the Pluton block could be licensed onto a third-party SoC, attested to a Microsoft-operated cloud service, and serviced over the air. &lt;em&gt;None of those three pieces was on a Windows PC.&lt;/em&gt;&lt;/p&gt;

flowchart LR
    Xbox[Xbox One 2013&lt;br /&gt;on-die security processor&lt;br /&gt;console form factor]
    Sopris[Project Sopris 2015&lt;br /&gt;4 MB RAM + 4 MB Flash&lt;br /&gt;research prototype]
    Seven[Seven Properties 2017&lt;br /&gt;MSR-TR-2017-16&lt;br /&gt;renewable security]
    Cerberus[Project Cerberus 2017&lt;br /&gt;discrete RoT&lt;br /&gt;server BMC]
    Sphere[Azure Sphere 2018&lt;br /&gt;Pluton-on-MCU&lt;br /&gt;MediaTek MT3620]
    PC[Pluton-on-PC 2020&lt;br /&gt;general-purpose Windows PC]
    Xbox --&amp;gt; Seven
    Sopris --&amp;gt; Seven
    Seven --&amp;gt; Sphere
    Xbox --&amp;gt; Sphere
    Cerberus --&amp;gt; PC
    Sphere --&amp;gt; PC
&lt;p&gt;Microsoft had a working architecture by 2018. Why did it take until November 17, 2020 to put it on a PC, and what changed between 2018 and 2020 that made the PC mandatory?&lt;/p&gt;
&lt;h2&gt;3. The threat model that closed every other door (2019-2024)&lt;/h2&gt;
&lt;p&gt;The answer to &quot;what changed between 2018 and 2020&quot; is that, between 2019 and 2024, every alternative architecture for &lt;em&gt;where the TPM lives&lt;/em&gt; was systematically broken in public. Not by intention. By research. By the time Microsoft made the November 17, 2020 announcement, Pluton-on-PC was the only architectural option that simultaneously closed the bus, contained the TEE blast radius, and gave Microsoft a fast firmware-patch path. This section is the prior article&apos;s section 5, recast as the story Microsoft was watching unfold while the Pluton design was being prepared for PC.&lt;/p&gt;
&lt;h3&gt;March 13, 2019 -- Andzakovic&apos;s $40 LPC sniffer&lt;/h3&gt;
&lt;p&gt;Denis Andzakovic, working at Pulse Security, published an end-to-end attack on the Trusted Boot path of an HP business laptop [@andzakovic-2019-tpm-sniffing]. A NZ$40 iCE40 FPGA, seven wires (LFRAME, LAD0-LAD3, LCLK, GND) soldered to the LPC bus between the CPU and the discrete TPM, the BitLocker Volume Master Key falling off the wire in plaintext during boot. The prior article walks the bit-level details. What matters here is that the November 17, 2020 Pluton announcement names this attack class as motivation: &lt;em&gt;&quot;attackers have begun to innovate ways to attack [the TPM], particularly in situations where an attacker can ... gain physical access to a PC ... target[ing] the communication channel between the CPU and TPM&quot;&lt;/em&gt; [@ms-pluton-blog-2020]. Discrete TPM as a class is broken against a determined adversary with physical access. The bus is the surface.&lt;/p&gt;
&lt;h3&gt;November 12, 2019 -- TPM-Fail&lt;/h3&gt;
&lt;p&gt;Daniel Moghimi and colleagues published &lt;em&gt;TPM-Fail&lt;/em&gt; later in 2019 [@tpmfail-microsite]: timing side channels in the ECDSA implementation in Intel PTT (CVE-2019-11090) and the STMicro ST33 dTPM (CVE-2019-16863). Local key recovery in 4-20 minutes; remote, over the network, in approximately 5 hours. The fixes shipped as firmware patches. The lesson Microsoft took from TPM-Fail is not in the bug, it is in the &lt;em&gt;deploy mechanism&lt;/em&gt;. PTT lives in CSME; CSME ships through the OEM&apos;s UEFI capsule path. ST33 lives behind the TPM vendor&apos;s signed flash and ships through the OEM&apos;s UEFI capsule path. The OEM UEFI capsule path is measured in quarters to years for high-volume client OEMs. &lt;em&gt;A fix existed but the deploy mechanism was insufficient.&lt;/em&gt; This is the architectural lesson that the next generation has to internalise: the patch path is part of the security property.The deploy-mechanism lesson is the one that gets quietly swallowed into Pluton&apos;s design. The bug count in firmware-TPM territory is not zero; it is steady. What changes is whether a fix can reach the fleet before its dwell time becomes a procurement problem. TPM-Fail&apos;s structural lesson is therefore not &quot;ECDSA timing leaks&quot; -- it is &quot;the channel that delivers the fix is the security property that matters.&quot;&lt;/p&gt;
&lt;h3&gt;April 28, 2023 -- faulTPM&lt;/h3&gt;
&lt;p&gt;Hans Niklas Jacob, Christian Werling, Robert Buhren, and Jean-Pierre Seifert published &lt;em&gt;faulTPM: Exposing AMD fTPMs Deepest Secrets&lt;/em&gt; at IEEE EuroS&amp;amp;P 2023 [@jacob-2023-faultpm]. &lt;em&gt;&quot;In this paper, we analyze a new class of attacks against fTPMs: Attacking their Trusted Execution Environment can lead to a full TPM state compromise. We experimentally verify this attack by compromising the AMD Secure Processor&quot;&lt;/em&gt; [@jacob-2023-faultpm]. The mechanism: a voltage glitch on the SVI2 power-management bus, against the AMD PSP (an ARM TrustZone Cortex-A5 inside modern Ryzen SoCs [@wikipedia-amd-psp]), in 2-3 hours of physical access. The output: the entire fTPM internal state, including the EK and any sealed material.&lt;/p&gt;
&lt;p&gt;The structural failure in faulTPM is not the glitch. It is that the PSP is a &lt;em&gt;shared&lt;/em&gt; TEE. The same coprocessor that runs the fTPM service also runs SEV memory-encryption setup, secure-boot enforcement, and platform initialisation. One fault drops everything. &lt;em&gt;Shared-TEE fTPM is broken because the TEE is shared.&lt;/em&gt; The architectural conclusion that this forces is hard: a fTPM that lives next to memory-encryption services, alongside boot-policy enforcement, in a coprocessor that also handles fuse provisioning, is not separable in failure. To restore TEE isolation, you need a &lt;em&gt;dedicated&lt;/em&gt; TEE.&lt;/p&gt;
&lt;h3&gt;The architecture cascade&lt;/h3&gt;
&lt;p&gt;Three results in five years close every architectural option Microsoft had on the PC.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Realization&lt;/th&gt;
&lt;th&gt;Structural failure&lt;/th&gt;
&lt;th&gt;First public proof&lt;/th&gt;
&lt;th&gt;What survives the failure&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;Discrete TPM (LPC / SPI)&lt;/td&gt;
&lt;td&gt;External bus is sniffable&lt;/td&gt;
&lt;td&gt;Andzakovic 2019 [@andzakovic-2019-tpm-sniffing]&lt;/td&gt;
&lt;td&gt;Hardened dTPM with encrypted bus (TPM 2.0 ENC sessions); not retrofittable to existing fleets&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Intel PTT in CSME&lt;/td&gt;
&lt;td&gt;Slow OEM UEFI capsule patch path&lt;/td&gt;
&lt;td&gt;TPM-Fail 2019 [@tpmfail-microsite]&lt;/td&gt;
&lt;td&gt;The cryptographic primitive; not the deploy channel&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AMD fTPM in PSP&lt;/td&gt;
&lt;td&gt;Shared TEE -- one fault drops everything&lt;/td&gt;
&lt;td&gt;faulTPM 2023 [@jacob-2023-faultpm]&lt;/td&gt;
&lt;td&gt;The compatibility surface; not the secrets the chip held&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Pluton on the SoC die&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;(subject of sections 5-8)&lt;/td&gt;
&lt;td&gt;--&lt;/td&gt;
&lt;td&gt;--&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;The reasoning chain that lands the design is short. dTPM is broken because the bus is sniffable. Shared-TEE fTPM is broken because the TEE is shared. Therefore: dedicated TEE on the SoC die, with a deploy channel that is not the OEM UEFI capsule. That is Pluton-on-PC. &lt;em&gt;On-die&lt;/em&gt; is not a Microsoft engineering preference. It is the only shape left after every other architecture has been broken in public.&lt;/p&gt;

flowchart TD
    dTPM[Discrete TPM&lt;br /&gt;external LPC/SPI bus]
    PTT[Intel PTT&lt;br /&gt;fTPM inside CSME]
    fTPM[AMD fTPM&lt;br /&gt;fTPM inside PSP]
    AND[Andzakovic 2019&lt;br /&gt;\$40 FPGA bus sniff]
    TF[TPM-Fail 2019&lt;br /&gt;5-hour ECDSA recovery]
    FT[faulTPM 2023&lt;br /&gt;SVI2 voltage glitch]
    Forced[On-die dedicated TEE&lt;br /&gt;OS-channel update path&lt;br /&gt;= Pluton-on-PC]
    dTPM --&amp;gt; AND
    PTT --&amp;gt; TF
    fTPM --&amp;gt; FT
    AND --&amp;gt; Forced
    TF --&amp;gt; Forced
    FT --&amp;gt; Forced
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; By 2024, all three production options for the TPM realization had been defeated by public research. dTPM by the bus surface (Andzakovic 2019). Intel PTT by the patch latency of CSME (TPM-Fail 2019). AMD fTPM by the shared-TEE blast radius (faulTPM 2023). On-die is not an aesthetic choice; it is the only architectural shape left after every other option has been demonstrably broken. The &quot;Pluton design&quot; is the negative space these three results leave behind.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;If Microsoft had a working on-die-RoT architecture as early as 2013, and the threat model demanded it on PC by 2020, why did Microsoft go through Cerberus and Azure Sphere first? What did each generation contribute that the previous one could not?&lt;/p&gt;
&lt;h2&gt;4. Five generations of Microsoft security silicon&lt;/h2&gt;
&lt;p&gt;Microsoft&apos;s path to Pluton-on-PC was not linear. The architecture took shape across five generations of Microsoft security silicon -- three direct predecessors, the PC deployment itself, and one parallel path. Each generation contributed a piece the next one needed. The shape of Pluton-on-PC was determined by what Xbox One &lt;em&gt;was&lt;/em&gt;, what Cerberus &lt;em&gt;could not be on a client&lt;/em&gt;, what Azure Sphere &lt;em&gt;proved at scale&lt;/em&gt;, and what Caliptra &lt;em&gt;would later make visible as a choice rather than a technical necessity&lt;/em&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; This article counts Microsoft on-die security-silicon programs (Generations 3-7 = Xbox One, Cerberus, Azure Sphere Pluton, Pluton-on-PC, Caliptra). The prior article counts TPM realisations (Generations 1-3 = standalone hardware TPM, firmware TPM, on-die TPM) [@prior-tpm-in-windows]. The two schemes share an index space but count different things. Project Cerberus appears as Generation 4 here even though it is &lt;em&gt;discrete&lt;/em&gt; (not on-die), because the count is over Microsoft security-silicon programs, not over TPM realisations.&lt;/p&gt;
&lt;/blockquote&gt;

A hardware element that anchors three separable services: Root of Trust for Storage (the chip can hold private keys that never leave it), Root of Trust for Reporting (the chip can sign attestations of its own state and of code it measured), and Root of Trust for Measurement (the chip records integrity hashes of code as it loads). The TPM 2.0 specification names all three; Pluton, Apple SEP, Caliptra, and OpenTitan implement subsets and combinations of them.
&lt;h3&gt;Generation 3 -- Xbox One on-die security processor (2013)&lt;/h3&gt;
&lt;p&gt;Existence proof. Microsoft and AMD co-designed the Xbox One SoC with an on-die security subsystem [@ms-pluton-blog-2020]. Console signing key. Hardware-enforced separation between Game OS and System OS. The Xbox One demonstrated, at consumer-console scale, that Microsoft and a chip vendor could ship an on-die security processor that survived a determined adversary with full physical access. Limitation: console-only. No TCG TPM 2.0 wire surface. Microsoft did not commit publicly that this design would ever leave the Xbox.&lt;/p&gt;
&lt;h3&gt;Generation 4 -- Project Cerberus (November 9, 2017)&lt;/h3&gt;
&lt;p&gt;Discrete RoT chip on the server BMC. NIST SP 800-193 alignment [@ms-learn-cerberus] [@nist-sp-800-193]. Open spec at OCP [@ocp-cerberus]; reference implementation on GitHub [@azure-cerberus-github]. Architecturally the inverse of Pluton: external chip, separate flash interception, dedicated authority. &lt;em&gt;That&lt;/em&gt; shape is right for a server motherboard. &lt;em&gt;That&lt;/em&gt; shape is wrong for a $700 ultrabook -- BOM cost, board area, and per-OEM design-in cost rule it out, and reintroducing an external bus would re-expose the very Andzakovic-class surface the program is trying to close. Cerberus is not a rejected design; it is the &lt;em&gt;server-side&lt;/em&gt; answer that runs alongside the client-side answer Pluton would later be. The two coexist in the November 17, 2020 announcement, which describes Cerberus as &lt;em&gt;&quot;providing a secure identity for the CPU that can be attested by Cerberus&quot;&lt;/em&gt; [@ms-pluton-blog-2020]. Server-side RoT and client-side RoT compose; they do not compete.&lt;/p&gt;
&lt;h3&gt;Generation 5 -- Azure Sphere Pluton MCU (April 2018)&lt;/h3&gt;
&lt;p&gt;The first public, named appearance of &quot;Pluton.&quot; MediaTek MT3620 SoC; Linux-based MCU OS; Azure Sphere Security Service in the cloud [@azure-blog-2018-azure-sphere] [@azure-blog-anatomy-secured-mcu]. &lt;em&gt;&quot;Our Pluton Security Subsystem is the heart of our security story&quot;&lt;/em&gt; [@azure-blog-anatomy-secured-mcu]. Three things became operationally proven in this generation. First, Microsoft-designed on-die security IP could be licensed to a third-party SoC and taped out under another vendor&apos;s process. Second, Microsoft-operated cloud-side firmware servicing was viable at MCU scale. Third, the &lt;em&gt;Seven Properties&lt;/em&gt; mapped cleanly onto the silicon-plus-firmware-plus-cloud triple. Limitation: MCU-class power and instruction set; not Windows; product retiring in 2027.The precision matters. The &lt;em&gt;design pattern&lt;/em&gt; -- on-die security processor, Microsoft-signed firmware, cloud or OS-channel updates -- dates to Xbox One in 2013. The &lt;em&gt;name&lt;/em&gt; &quot;Pluton&quot; first appears publicly in the April 2018 &lt;em&gt;Anatomy of a Secured MCU&lt;/em&gt; Azure Blog post [@azure-blog-anatomy-secured-mcu]. The 2020 PC announcement uses the name retroactively for the 2013 design. When narrating: the design is Xbox-era, the name is Azure-Sphere-era.&lt;/p&gt;
&lt;h3&gt;Generation 6 -- Pluton on Windows-PC SoCs (November 17, 2020)&lt;/h3&gt;
&lt;p&gt;The subject of section 5. Brief hand-off here. Microsoft, AMD, Intel, and Qualcomm announced that the Pluton design would ship on Windows-PC SoCs [@ms-pluton-blog-2020]. AMD Ryzen 6000 was the first silicon to actually ship, at CES 2022 [@phoronix-2022-amd-ryzen-pluton]. Microsoft Learn currently lists AMD Ryzen 6000 / 7000 / 8000 / 9000 / Ryzen AI; Intel Core Ultra 200V Series, Ultra Series 3, and Series 3; and Qualcomm Snapdragon 8cx Gen 3 and Snapdragon X Series [@ms-learn-pluton]. This is the generation the rest of the article lives in.&lt;/p&gt;
&lt;h3&gt;Generation 7 -- Caliptra 1.0 (April 2024)&lt;/h3&gt;
&lt;p&gt;Open-source datacenter Root of Trust. Co-designed by Microsoft, Google, AMD, and NVIDIA. Specification, RTL, ROM, and runtime all public on CHIPS Alliance [@caliptra-github] [@caliptra-spec]. &lt;em&gt;&quot;Caliptra targets datacenter-class SoCs like CPUs, GPUs, DPUs, TPUs. It is the specification, silicon logic, ROM and firmware for implementing a Root of Trust for Measurement (RTM) block inside an SoC&quot;&lt;/em&gt; [@caliptra-github]. Caliptra is not a successor to Pluton. It is a &lt;em&gt;parallel path&lt;/em&gt;, and that distinction is what makes Caliptra structurally important for this article: it makes the single-signer choice in Pluton visible as a choice, not a technical necessity. Caliptra exists. The single-signer property of Pluton-on-PC is therefore not the only design that 2024 hardware can support; it is the one Microsoft chose for the client.&lt;/p&gt;
&lt;p&gt;The five generations side by side:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Generation&lt;/th&gt;
&lt;th&gt;Year&lt;/th&gt;
&lt;th&gt;On-die?&lt;/th&gt;
&lt;th&gt;Discrete?&lt;/th&gt;
&lt;th&gt;Open RTL?&lt;/th&gt;
&lt;th&gt;Multi-signer?&lt;/th&gt;
&lt;th&gt;Trust anchor&lt;/th&gt;
&lt;th&gt;Where it ships&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;3 -- Xbox One sec proc&lt;/td&gt;
&lt;td&gt;2013&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Microsoft (Xbox CA)&lt;/td&gt;
&lt;td&gt;Xbox One console&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4 -- Project Cerberus&lt;/td&gt;
&lt;td&gt;2017&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Yes (spec/RI)&lt;/td&gt;
&lt;td&gt;No (per-deployment signer)&lt;/td&gt;
&lt;td&gt;Microsoft Azure CA (operator)&lt;/td&gt;
&lt;td&gt;Server BMC&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5 -- Azure Sphere Pluton&lt;/td&gt;
&lt;td&gt;2018&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Microsoft (AS3)&lt;/td&gt;
&lt;td&gt;MCU (MediaTek MT3620)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6 -- Pluton-on-PC&lt;/td&gt;
&lt;td&gt;2020&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Microsoft (Windows Update)&lt;/td&gt;
&lt;td&gt;Windows 11 client SoCs&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;7 -- Caliptra 1.0&lt;/td&gt;
&lt;td&gt;2024&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;Multi-vendor by deployment&lt;/td&gt;
&lt;td&gt;Per-chip integrator&lt;/td&gt;
&lt;td&gt;Datacenter SoCs&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

flowchart TD
    Gen3[Gen 3: Xbox One 2013&lt;br /&gt;existence proof at scale]
    Gen4[Gen 4: Cerberus 2017&lt;br /&gt;open spec + NIST 800-193]
    Gen5[Gen 5: Azure Sphere 2018&lt;br /&gt;Pluton-on-MCU + cloud servicing]
    Gen6[Gen 6: Pluton-on-PC 2020&lt;br /&gt;TCG TPM 2.0 surface + Windows Update]
    Gen7[Gen 7: Caliptra 2024&lt;br /&gt;open-source datacenter RoT]
    Gen3 --&amp;gt;|console-only existence| Gen5
    Gen3 --&amp;gt;|client-side&lt;br /&gt;architecture| Gen6
    Gen4 --&amp;gt;|server-side&lt;br /&gt;composes with Gen 6| Gen6
    Gen4 --&amp;gt;|open governance&lt;br /&gt;refined into| Gen7
    Gen5 --&amp;gt;|MCU-scale to PC-scale| Gen6
    Gen6 -.parallel path.-&amp;gt; Gen7
&lt;p&gt;What, exactly, makes Generation 6 different from the four generations that came before it -- and what new trust does each of its design choices ask the reader to place in Microsoft?&lt;/p&gt;
&lt;h2&gt;5. The breakthrough -- on-die plus dedicated TEE plus Rust plus Windows Update&lt;/h2&gt;
&lt;p&gt;The November 17, 2020 announcement [@ms-pluton-blog-2020] is shorter than its consequences suggest. It makes four design choices explicit. Each one closes a specific architectural gap that 2014-2024 had opened. Each one also names a new trust that is now placed in Microsoft. This section walks the four choices, the gap each one closes, and the trust each one creates.&lt;/p&gt;
&lt;h3&gt;Design choice 1 -- on-die SoC integration&lt;/h3&gt;
&lt;p&gt;There is no off-package bus between the CPU and the Pluton block. The November 2020 announcement names this property as the structural answer to the bus-sniffing class: &lt;em&gt;&quot;attackers have begun to innovate ways to attack [the TPM], particularly in situations where an attacker can ... gain physical access to a PC ... target[ing] the communication channel between the CPU and TPM&quot;&lt;/em&gt; [@ms-pluton-blog-2020]. With Pluton, that communication channel is silicon, not a board trace. Andzakovic-class attacks have nothing to attack [@andzakovic-2019-tpm-sniffing].&lt;/p&gt;
&lt;p&gt;The new trust: the silicon supply chain. Microsoft licenses the IP block; AMD, Intel, and Qualcomm tape it out on TSMC or another foundry; the OEM integrates the resulting SoC into a finished product. None of those steps is on the public record at the bit level. (See open problem 5 in section 9 -- supply-chain integrity beyond firmware signing.)&lt;/p&gt;
&lt;h3&gt;Design choice 2 -- dedicated TEE, not shared&lt;/h3&gt;
&lt;p&gt;Pluton is &lt;em&gt;not&lt;/em&gt; the same coprocessor that runs SEV memory encryption (AMD) or CSME runtime services (Intel). It is a separate block on the SoC die, with its own ROM, its own firmware, and its own boundary. faulTPM-class attacks on the AMD PSP do not transitively drop Pluton secrets [@jacob-2023-faultpm], because Pluton is not running inside the PSP. The structural failure that defeated AMD fTPM -- one fault drops everything because the TEE is shared -- does not apply to Pluton-as-Pluton. (AMD-Ryzen-6000-class chips can ship Pluton silicon next to the existing PSP-based fTPM; the OEM picks which the host advertises as the system TPM via the Pluton (HSP) BIOS toggle and PSP-directory 0xB BIT36 soft fuse Garrett 2022 documents [@garrett-2022-pluton-rev]. Windows TBS exposes one TPM at a time. On systems the OEM exposes as fTPM, faulTPM-class attacks remain valid; on systems exposed as Pluton-as-TPM they no longer reach the chip&apos;s secret state.)&lt;/p&gt;
&lt;p&gt;The new trust: Microsoft&apos;s chip-level isolation engineering. The TEE is dedicated only because Microsoft and the chip vendor agreed to dedicate it. There is no public peer-reviewed audit demonstrating that the Pluton boundary is bit-for-bit non-shared with PSP / CSME on shipping silicon. The independent CHES 2024 study TPMScan [@tpmscan-2024] [@tpmscan-iacr] sampled 78 TPM 2.0 versions across 6 vendors, and the IACR TCHES record states explicitly that the corpus &lt;em&gt;&quot;include[s] recent Pluton-based iTPMs&quot;&lt;/em&gt; alongside dTPM, fTPM, and earlier iTPM variants from Microsoft, AMD, Intel, Infineon, ST, and Nuvoton [@tpmscan-iacr]. The paper&apos;s per-vendor findings centre on RSA / ECDSA nonce-leakage and command-timing observability across the corpus; the paper does not single Pluton out for a per-implementation audit, and it does not characterise Pluton&apos;s specific timing surface as worse or better than the iTPM cohort it sits in. The TPMScan study therefore &lt;em&gt;places&lt;/em&gt; Pluton inside the audited iTPM population without singling it out -- a useful baseline, not a Pluton-specific clean bill of health.&lt;/p&gt;
&lt;h3&gt;Design choice 3 -- Microsoft-authored Rust firmware&lt;/h3&gt;
&lt;p&gt;Microsoft Learn states it explicitly: &lt;em&gt;&quot;Pluton platforms in 2024 AMD and Intel systems will start to use a Rust-based firmware foundation given the importance of memory safety&quot;&lt;/em&gt; [@ms-learn-pluton]. Memory-safe firmware is a direct response to the firmware-CVE history -- TPM-Fail [@tpmfail-microsite], the long Intel ME / AMD PSP CVE backlog, and CVE-2025-2884 (worked example in section 8 below). The class of bug that a memory-safe runtime structurally rules out is large; it is not the entirety of the bug surface (logic bugs survive Rust), but it is the part that has driven the CVE economy in firmware-TPM territory for a decade.&lt;/p&gt;

Microsoft Learn commits to *&quot;a Rust-based firmware foundation&quot;* on 2024+ AMD and Intel platforms [@ms-learn-pluton]. Secondary technology press has named the runtime as Tock OS, the memory-safe embedded operating system maintained by an open community [@tock-github]. Tock is a plausible candidate -- it is the most mature publicly reviewed memory-safe embedded RTOS for the kind of constraints Pluton operates under. But Microsoft has not made the Tock attribution publicly. The honest reading is: Rust on the PC firmware path is committed; the specific runtime has not been named by Microsoft as of 2026. The reader who wants to track this should watch the Microsoft Learn Pluton page for an explicit runtime name.&lt;p&gt;The reason this hedge matters: &quot;Pluton runs Tock&quot; is widely repeated in tech press, and the difference between &quot;memory-safe Rust embedded OS&quot; and &quot;specifically Tock&quot; is the difference between an architectural commitment and a procurement choice. Both are interesting, but they are not the same statement.
&lt;/p&gt;&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Garrett&apos;s April 2022 reverse-engineering [@garrett-2022-pluton-rev] documented that the Pluton firmware blob on the 2022 AMD Ryzen 6000 BIOS he disassembled was an ARM image derived from the TCG TPM 2.0 reference code (section 6 carries the verbatim quote and section 8 carries the CVE-2025-2884 connection). That is the 2022 firmware on a 2022-vintage chip; it is not the 2024+ Rust runtime. Both observations are consistent: the 2022 ARM blob is what existed on the first silicon, and the 2024+ Rust runtime is what Microsoft Learn now commits to. CVE-2025-2884 (section 8) reaches this firmware exactly through the TPM 2.0 reference-code derivation Garrett identified.&lt;/p&gt;
&lt;p&gt;The new trust: Microsoft&apos;s compiler and SDLC. The chip ships running code that Microsoft authored. Whatever the compiler optimised away, whatever the test suite did not catch, whatever subtle un-&lt;code&gt;unsafe&lt;/code&gt;-block reasoning passed code review -- that becomes the property of the chip&apos;s trust anchor.&lt;/p&gt;
&lt;h3&gt;Design choice 4 -- Windows Update servicing path&lt;/h3&gt;
&lt;p&gt;Microsoft Learn: &lt;em&gt;&quot;Pluton platform supports loading new firmware delivered through operating system updates&quot;&lt;/em&gt; [@ms-learn-pluton]. The change in shape is this: from quarters-to-years (the OEM UEFI capsule rollout that TPM-Fail had to crawl through) to days-to-weeks (the Patch Tuesday cadence that already delivers Windows kernel updates to roughly 1.4 billion endpoints, the deployment scale Microsoft itself reports for Windows monthly active devices). Microsoft has not published a numerical SLA for Pluton firmware delivery; this article will not assert one. The change in &lt;em&gt;channel&lt;/em&gt; is the architectural fact.&lt;/p&gt;
&lt;p&gt;The new trust: Microsoft&apos;s signing key and Windows Update infrastructure. Whoever can sign for the Windows Update channel can, in principle, push firmware to every Pluton chip the channel reaches. This is the same trust that already underwrites the rest of Windows; Pluton extends it to the chip itself.&lt;/p&gt;
&lt;h3&gt;The trust shift, named explicitly&lt;/h3&gt;
&lt;p&gt;Pull the four choices together. Each closes a specific 2014-2024 attack class -- bus, shared-TEE, firmware-CVE, OEM-capsule patch latency. Each names a new trust placed in Microsoft -- silicon supply chain, chip-level isolation engineering, compiler and SDLC, signing key and Windows Update infrastructure. &lt;em&gt;On-die alone is not the breakthrough. The breakthrough is the combination.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;The November 2020 announcement also commits to a property beyond TCG TPM 2.0: SHACK. &lt;em&gt;&quot;Pluton also provides the unique Secure Hardware Cryptography Key (SHACK) technology that helps ensure keys are never exposed outside of the protected hardware, even to the Pluton firmware itself&quot;&lt;/em&gt; [@ms-pluton-blog-2020]. The TCG TPM 2.0 specification requires that keys be non-exportable from the chip; SHACK extends the boundary one ring inward, naming a class of keys that the firmware running on Pluton itself cannot read. This is Microsoft&apos;s claim that Pluton offers a &lt;em&gt;stronger&lt;/em&gt; property than the TCG TPM 2.0 spec requires. Verifying that claim from outside Microsoft requires source access Microsoft has not published.&lt;/p&gt;

A Pluton property named in the November 17, 2020 announcement [@ms-pluton-blog-2020]; Microsoft&apos;s claim that Pluton&apos;s non-exportability boundary extends one ring inside the TCG TPM 2.0 boundary, so keys are unreadable even by Pluton firmware. See the §5 prose paragraph above for the verbatim Microsoft quote and the article&apos;s hedge that no external peer-reviewed validation of SHACK exists as of 2026.
&lt;h3&gt;How the chip boots and how the chip gets patched&lt;/h3&gt;
&lt;p&gt;The boot-and-attest sequence below is the public shape of how Pluton starts and how new firmware reaches it. The exact ROM-to-FMC-to-runtime chain is generic to on-die RoT designs (Caliptra exposes this shape openly in its source [@caliptra-github]); Pluton&apos;s specific protocol details are not all on the public record, so the diagram captures the architectural shape rather than a Microsoft-internal protocol.&lt;/p&gt;

sequenceDiagram
    participant SoC as SoC reset
    participant ROM as Pluton ROM
    participant FMC as Pluton FMC
    participant RT as Pluton runtime
    participant Win as Windows + WU
    SoC-&amp;gt;&amp;gt;ROM: power-on, Pluton enters ROM
    ROM-&amp;gt;&amp;gt;ROM: verify FMC signature against on-die public key
    ROM-&amp;gt;&amp;gt;FMC: hand off after measurement
    FMC-&amp;gt;&amp;gt;FMC: verify runtime signature
    FMC-&amp;gt;&amp;gt;RT: hand off, runtime exposes TPM 2.0 CRB
    RT--&amp;gt;&amp;gt;Win: TPM 2.0 commands over CRB
    Win-&amp;gt;&amp;gt;Win: Patch Tuesday delivers signed Pluton blob
    Win-&amp;gt;&amp;gt;RT: stage new firmware via OS update channel
    RT-&amp;gt;&amp;gt;FMC: queue new runtime, reboot to apply
    FMC-&amp;gt;&amp;gt;FMC: verify new runtime signature, commit
&lt;p&gt;The detection logic that follows is the structural shape of the &lt;code&gt;Get-Tpm&lt;/code&gt; PowerShell query that section 10 will revisit. It is mocked here to make the four-letter &lt;code&gt;MSFT&lt;/code&gt; check explicit.&lt;/p&gt;
&lt;p&gt;{&lt;code&gt;// Mock of the Windows TPM Base Services (TBS) manufacturer query. // Real Get-Tpm reads ManufacturerIdTxt from the TPM 2.0 capability // response and matches the four-character ASCII manufacturer. const manufacturers = {   &apos;MSFT&apos;: &apos;Microsoft Pluton&apos;,   &apos;INTC&apos;: &apos;Intel PTT (firmware TPM in CSME)&apos;,   &apos;AMD &apos;: &apos;AMD fTPM (firmware TPM in PSP)&apos;,   &apos;IFX&apos;:  &apos;Infineon discrete TPM&apos;,   &apos;STM&apos;:  &apos;STMicro discrete TPM&apos;,   &apos;NTC&apos;:  &apos;Nuvoton discrete TPM&apos;, }; function classify(mfr) {   return manufacturers[mfr] || &apos;Unknown / non-TCG TPM&apos;; } console.log(&apos;MSFT  =&amp;gt;&apos;, classify(&apos;MSFT&apos;)); console.log(&apos;INTC  =&amp;gt;&apos;, classify(&apos;INTC&apos;)); console.log(&apos;AMD   =&amp;gt;&apos;, classify(&apos;AMD &apos;)); console.log(&apos;IFX   =&amp;gt;&apos;, classify(&apos;IFX&apos;));&lt;/code&gt;}&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Key idea:&lt;/strong&gt; The Pluton breakthrough is the &lt;em&gt;combination&lt;/em&gt;, not on-die alone. On-die plus dedicated TEE plus memory-safe firmware plus OS-channel updates -- four design choices, each closing a different 2014-2024 attack class, each placing a new trust in Microsoft. The chip is the cheapest part of the system. The cost is what those four trusts add up to.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;What is actually shipping in 2026? Hardware lists, default-on / default-off behavior, vendor pushback that survived from 2022 into 2026 -- the gap between marketing claim and shipping reality.&lt;/p&gt;
&lt;h2&gt;6. Pluton in 2026 -- what is shipping, where, and how to verify&lt;/h2&gt;
&lt;p&gt;The 2020 announcement is now five and a half years old. The 2022 first-silicon shipment is four. What is the actual fleet shape in 2026?&lt;/p&gt;
&lt;h3&gt;The Microsoft-published hardware list&lt;/h3&gt;
&lt;p&gt;The current Microsoft Learn Pluton page enumerates the supported silicon: AMD Ryzen 6000, 7000, 8000, 9000, and Ryzen AI; Intel Core Ultra 200V Series, Ultra Series 3, and Series 3; and Qualcomm Snapdragon 8cx Gen 3 and Snapdragon X Series [@ms-learn-pluton]. Every chip on that list ships with Pluton silicon present on the die. &lt;em&gt;Present&lt;/em&gt; and &lt;em&gt;enabled by default&lt;/em&gt; are not the same property, which is the point of the next subsection.&lt;/p&gt;
&lt;h3&gt;Default-on versus default-off varies by OEM SKU&lt;/h3&gt;
&lt;p&gt;The first x86 silicon to ship with Pluton was AMD Ryzen 6000 &quot;Rembrandt&quot;, at CES 2022. Phoronix&apos;s launch coverage [@phoronix-2022-amd-ryzen-pluton] confirms that the CES 2022 keynote disclosed the integration. The vendor responses that followed in March 2022 set the OEM-by-OEM posture that the fleet still reflects in 2026. The Register obtained vendor statements [@register-2022-pluton]. Lenovo deployed the chip on AMD Ryzen 6000 ThinkPads but disabled it: &lt;em&gt;&quot;AMD Ryzen 6000 ThinkPads will include Pluton as it&apos;s present in those AMD chips, though the feature will be disabled by default&quot;&lt;/em&gt;; Intel-powered ThinkPads &lt;em&gt;&quot;will not support Microsoft Pluton at launch&quot;&lt;/em&gt;; the Snapdragon 8cx Gen 3 Lenovo X13s did include Pluton [@register-2022-pluton]. Dell&apos;s reply was the most direct: &lt;em&gt;&quot;Pluton does not align with Dell&apos;s approach to hardware security and our most secure commercial PC requirements&quot;&lt;/em&gt; [@register-2022-pluton] [@pcworld-2022-pluton]. HP declined to comment.&lt;/p&gt;
&lt;p&gt;The 2024 inflection is the Copilot+ PC program. Microsoft Surface and Qualcomm Snapdragon X Elite / Snapdragon X Series Copilot+ devices ship Pluton enabled by default [@ms-learn-pluton]. This is the first product class where retail-bought Windows 11 hardware turns Pluton on at the factory.The 2024 Copilot+ inflection is the first time a high-volume consumer Windows-PC SKU ships Pluton on by default. Prior to Copilot+, Pluton was either off (Lenovo AMD Ryzen 6000 ThinkPads), absent (Dell), or behind a BIOS toggle the user had to find. Copilot+ collapses the discoverability problem because Windows 11 itself depends on the secure-boot and credential-protection primitives that Pluton hosts when the OEM has enabled it.&lt;/p&gt;
&lt;h3&gt;Linux 6.3 -- February 20, 2023&lt;/h3&gt;
&lt;p&gt;The standard TCG Command Response Buffer (CRB) interface that Pluton exposes is reachable from Linux. Phoronix records the merge: &lt;em&gt;&quot;Linus Torvalds merged to Linux 6.3 Git the TPM CRB support for Microsoft&apos;s controversial Pluton security co-processor&quot;&lt;/em&gt; [@phoronix-2023-pluton-linux63] [@kernel-org-pluton-merge]. The driver author was Matthew Garrett [@kernel-org-pluton-merge]. Pluton-as-TPM is now reachable from non-Windows operating systems via the standard TCG CRB transport. This constrains -- although it does not eliminate -- the &quot;Microsoft-only black box&quot; narrative. The chip speaks the open TCG wire protocol that any operating system can talk to.&lt;/p&gt;
&lt;h3&gt;Garrett&apos;s reverse-engineering -- April 2022&lt;/h3&gt;
&lt;p&gt;Matthew Garrett&apos;s April 2022 disassembly of the Asus ROG Zephyrus G14 BIOS [@garrett-2022-pluton-rev] yielded two facts that matter for the rest of this article. First, the user-controllable BIOS Pluton (HSP) toggle on AMD Ryzen 6000 may not be a hardware power-down. Garrett&apos;s reading: &lt;em&gt;&quot;PSP directory entry 0xB BIT36 ... if bit 36 is set, the PSP tells Pluton to turn itself off and will no longer send any commands to it&quot;&lt;/em&gt; [@garrett-2022-pluton-rev]. The toggle is a soft fuse. Inventory queries that report &quot;Pluton present&quot; do not always distinguish enabled from soft-disabled. Second, &lt;em&gt;&quot;there&apos;s a blob starting at 0x0069b610 that appears to be firmware for Pluton -- it contains chunks that appear to be the reference TPM2 implementation, and it broadly decompiles as valid ARM code&quot;&lt;/em&gt; [@garrett-2022-pluton-rev]. The Pluton firmware blob is, on the silicon Garrett looked at, an ARM image derived from the TCG TPM 2.0 reference code. That is the observation that makes CVE-2025-2884 (section 8) reachable inside Pluton firmware too.&lt;/p&gt;

On AMD Ryzen 6000 / 7000 / 8000 platforms, the OEM can set PSP directory entry 0xB bit 36 in the AMD-firmware part of the BIOS to instruct the PSP to *&quot;tell Pluton to turn itself off&quot;* [@garrett-2022-pluton-rev]. This is a soft fuse, not a hardware power-down. The host&apos;s TPM advertisement (`Get-Tpm`) does not always distinguish enabled-Pluton from soft-disabled-Pluton; verification requires inspecting the BIOS-level Pluton (HSP) toggle directly, or correlating against the Plug-and-Play device list.
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Garrett&apos;s PSP-directory soft-fuse documentation [@garrett-2022-pluton-rev] is the practical pitfall of any 2026 Pluton procurement audit. An OEM can ship AMD Ryzen 6000 / 7000 / 8000 silicon with Pluton soft-disabled at boot. Inventory queries that count &quot;Pluton-present&quot; SKUs without correlating against the BIOS-level Pluton (HSP) toggle will overcount by an unknown margin. Section 10 walks the practical detection path.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;The fleet shape, in one comparison table:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Platform&lt;/th&gt;
&lt;th&gt;First shipped&lt;/th&gt;
&lt;th&gt;Default state at launch&lt;/th&gt;
&lt;th&gt;Vendor posture today&lt;/th&gt;
&lt;th&gt;Linux support&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;AMD Ryzen 6000 mobile&lt;/td&gt;
&lt;td&gt;January 2022 [@phoronix-2022-amd-ryzen-pluton]&lt;/td&gt;
&lt;td&gt;Off on Lenovo ThinkPad [@register-2022-pluton]; Dell declined [@pcworld-2022-pluton]&lt;/td&gt;
&lt;td&gt;Per-OEM; soft-fuse trap on Lenovo&lt;/td&gt;
&lt;td&gt;Linux 6.3 CRB driver [@phoronix-2023-pluton-linux63]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AMD Ryzen 7000 / 8000 / 9000 / Ryzen AI&lt;/td&gt;
&lt;td&gt;2023-2025&lt;/td&gt;
&lt;td&gt;Per-OEM SKU&lt;/td&gt;
&lt;td&gt;Microsoft Learn lists as supported [@ms-learn-pluton]&lt;/td&gt;
&lt;td&gt;Same CRB driver&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Intel Core Ultra 200V / Series 3&lt;/td&gt;
&lt;td&gt;2024-2025&lt;/td&gt;
&lt;td&gt;Per-OEM SKU&lt;/td&gt;
&lt;td&gt;Microsoft Learn lists as supported [@ms-learn-pluton]&lt;/td&gt;
&lt;td&gt;Same CRB driver&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Snapdragon 8cx Gen 3 (Lenovo X13s)&lt;/td&gt;
&lt;td&gt;2022&lt;/td&gt;
&lt;td&gt;On at launch [@register-2022-pluton]&lt;/td&gt;
&lt;td&gt;Shipping&lt;/td&gt;
&lt;td&gt;Same CRB driver&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Snapdragon X Series Copilot+ PCs&lt;/td&gt;
&lt;td&gt;2024&lt;/td&gt;
&lt;td&gt;On by default [@ms-learn-pluton]&lt;/td&gt;
&lt;td&gt;Microsoft + Qualcomm core program&lt;/td&gt;
&lt;td&gt;Same CRB driver&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Microsoft Surface Copilot+&lt;/td&gt;
&lt;td&gt;2024&lt;/td&gt;
&lt;td&gt;On by default [@ms-learn-pluton]&lt;/td&gt;
&lt;td&gt;First-party Microsoft hardware&lt;/td&gt;
&lt;td&gt;Same CRB driver&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

flowchart LR
    AMD[AMD Ryzen 6000-9000&lt;br /&gt;+ Ryzen AI]
    Intel[Intel Core Ultra 200V&lt;br /&gt;Series 3]
    Qualcomm[Qualcomm Snapdragon&lt;br /&gt;8cx Gen 3 + X Series]
    Lenovo[Lenovo&lt;br /&gt;ThinkPad / X13s]
    Dell[Dell&lt;br /&gt;commercial]
    HP[HP&lt;br /&gt;commercial]
    Surface[Microsoft Surface&lt;br /&gt;Copilot+]
    OEMx[Snapdragon X&lt;br /&gt;Copilot+ OEMs]
    Off[Default off&lt;br /&gt;at launch]
    Vendor[Vendor declined&lt;br /&gt;to ship]
    On[Default on&lt;br /&gt;at retail]
    AMD --&amp;gt; Lenovo
    AMD --&amp;gt; Dell
    AMD --&amp;gt; HP
    Intel --&amp;gt; Lenovo
    Qualcomm --&amp;gt; Lenovo
    Qualcomm --&amp;gt; Surface
    Qualcomm --&amp;gt; OEMx
    Lenovo --&amp;gt;|2022 Ryzen 6000| Off
    Dell --&amp;gt;|&quot;does not align&quot;| Vendor
    HP --&amp;gt;|declined comment| Vendor
    Lenovo --&amp;gt;|X13s 8cx Gen 3| On
    Surface --&amp;gt; On
    OEMx --&amp;gt; On
&lt;p&gt;The detection logic for the Garrett soft-fuse trap, mocked here so the structural shape is explicit:&lt;/p&gt;
&lt;p&gt;{&lt;code&gt;// Mock of the PSP directory entry 0xB inspection that Garrett 2022 // documented. Real verification reads the AMD-firmware bytes off the // SPI flash; this demonstrates the bit-36 check that decides // &quot;enabled&quot; vs &quot;soft-disabled&quot;. function plutonState(plutonPresent, pspDir0xB_BIT36) {   if (!plutonPresent) return &apos;absent&apos;;   if (pspDir0xB_BIT36 === 1) return &apos;soft-disabled&apos;;  // PSP told to silence Pluton   return &apos;enabled&apos;; } console.log(&apos;Pluton present, BIT36=0 =&amp;gt;&apos;, plutonState(true, 0)); console.log(&apos;Pluton present, BIT36=1 =&amp;gt;&apos;, plutonState(true, 1)); console.log(&apos;No Pluton silicon       =&amp;gt;&apos;, plutonState(false, 0));&lt;/code&gt;}&lt;/p&gt;
&lt;p&gt;Pluton is not the only on-die security processor in 2026. Apple has the Secure Enclave Processor. Google has Titan M2. The OCP coalition has Caliptra. How does Pluton compare, and what does the comparison reveal about Microsoft&apos;s design choices?&lt;/p&gt;
&lt;h2&gt;7. Competing approaches -- Apple SEP, Google Titan M2, OpenTitan, Caliptra, Cerberus&lt;/h2&gt;
&lt;p&gt;Pluton is not alone. The platforms below are its nearest analogues -- the strongest evidence that Microsoft&apos;s design choices were &lt;em&gt;choices&lt;/em&gt;, not technical necessities.&lt;/p&gt;
&lt;h3&gt;Apple Secure Enclave Processor&lt;/h3&gt;
&lt;p&gt;Apple&apos;s &lt;em&gt;Apple Platform Security&lt;/em&gt; documentation describes SEP as &lt;em&gt;&quot;a dedicated secure subsystem integrated into Apple [SoC] ... isolated from the main processor to provide an extra layer of security&quot;&lt;/em&gt; [@apple-sep]. By deployment count it is the most mature single-vendor on-die security processor on the planet -- shipping in every iPhone since the iPhone 5s (2013), every iPad since iPad Air, and every Apple-silicon Mac [@apple-sep] [@wikipedia-apple-silicon]. The architecture has matured generation by generation: a Boot ROM as the hardware root of trust; an Apple-customised L4 microkernel; a Memory Protection Engine that combines AES-XEX with CMAC and an anti-replay tree on A11 / S4 and later; a Boot Monitor on A13 and later that hashes the loaded image and updates the SCIP (System Coprocessor Integrity Protection) settings before transferring control; and on A14 / M1 and later, the Memory Protection Engine &lt;em&gt;&quot;supports two ephemeral memory protection keys&quot;&lt;/em&gt; -- one for SEP-private data and a second one shared with the Secure Neural Engine [@apple-sep].&lt;/p&gt;
&lt;p&gt;The trade-off versus Pluton is not the architecture -- it is the &lt;em&gt;governance model&lt;/em&gt;. Apple owns the silicon, the operating system, the signing key, and the device. The multi-signer political question never arises because there is only one signer for every layer of the stack. The cost: complete lock-in. The Apple T2 line, which shipped in 2017-2020 Intel Macs as a discrete A10-derived security chip running bridgeOS, inherited the A10 Boot ROM [@wikipedia-apple-t2]. The A10 Boot ROM has the structurally important property that no Boot-ROM-resident bug can be patched without silicon respin -- which the &lt;em&gt;checkm8&lt;/em&gt; / &lt;em&gt;blackbird&lt;/em&gt; class of jailbreaks demonstrated end-to-end. T2 was discontinued June 5, 2023 [@wikipedia-apple-t2]. The lesson is direct: &lt;em&gt;renewable security&lt;/em&gt; (Seven Properties #6) is not optional. Even Apple&apos;s vertically integrated stack pays the price when a generation ships without it.&lt;/p&gt;

A dedicated secure subsystem integrated into Apple [SoC] ... isolated from the main processor to provide an extra layer of security. -- Apple, *Apple Platform Security* [@apple-sep]
&lt;h3&gt;Google Titan M / Titan M2 and OpenTitan&lt;/h3&gt;
&lt;p&gt;Google announced Titan M with the Pixel 3 launch in October 2018 [@pixel-3-titan-m]: &lt;em&gt;&quot;This year, with Pixel 3, we&apos;re advancing our investment in secure hardware with Titan M, an enterprise-grade security chip custom built for Pixel 3...&quot;&lt;/em&gt; [@pixel-3-titan-m]. Titan M2 followed with Pixel 6 in October 2021 [@pixel-6-titan-m2]. Both are discrete or in-package security chips on Pixel for Android Verified Boot, StrongBox-grade key storage, anti-rollback, and lock-screen verification. Both are Google-vertical: Google designs the chip, Google operates the cloud back end, Google ships the OS.&lt;/p&gt;
&lt;p&gt;OpenTitan is the open-source descendant. Hosted by lowRISC, it is &lt;em&gt;&quot;the first open source project building a transparent, high-quality reference design and integration guidelines for silicon root of trust (RoT) chips&quot;&lt;/em&gt; [@opentitan-home]. RISC-V Ibex core; hardware AES, HMAC, KMAC, and OTBN big-number engines; full RTL, ROM, and verification stack public; Apache 2.0 license. OpenTitan reached commercial availability on February 13, 2024 [@opentitan-commercial] -- the first open-source silicon project to do so. The press release names the nine coalition members verbatim: &lt;em&gt;&quot;Google, Winbond, Nuvoton, zeroRISC, Rivos, Western Digital, Seagate, ETH Zurich and Giesecke+Devrient, hosted by the non-profit lowRISC CIC&quot;&lt;/em&gt; [@opentitan-commercial]. OpenTitan is the closest existing answer to &quot;what would an open-source Pluton look like?&quot; -- but as of 2026 it is discrete or in-package, not on-die in an application SoC.The lowRISC press release is precise on a point that secondary press has frequently flubbed. lowRISC is the &lt;em&gt;host&lt;/em&gt; organisation for OpenTitan; it is not a member of the nine. The nine commercially announced coalition members on February 13, 2024 are Google, Winbond, Nuvoton, zeroRISC, Rivos, Western Digital, Seagate, ETH Zurich, and Giesecke+Devrient [@opentitan-commercial]. The distinction matters because lowRISC&apos;s role is governance, not deployment.&lt;/p&gt;
&lt;h3&gt;Caliptra&lt;/h3&gt;
&lt;p&gt;The OCP coalition&apos;s open-source datacenter Root of Trust. Specification, RTL, ROM, FMC, and runtime are public on CHIPS Alliance [@caliptra-github] [@caliptra-spec]. Founders: Microsoft, Google, AMD, NVIDIA. Google Cloud&apos;s Caliptra-1.0 announcement reports: &lt;em&gt;&quot;the Caliptra specification and open-source hardware and software implementation is complete, reaching the revision 1.0 milestone.&quot;&lt;/em&gt; The Google Cloud post adds that the Caliptra IP block is being integrated by member companies into chips expected in the market in 2026. Caliptra targets &lt;em&gt;&quot;datacenter-class SoCs like CPUs, GPUs, DPUs, TPUs&quot;&lt;/em&gt; [@caliptra-github]. It is not a Pluton substitute on Windows clients -- the form factor is different and the threat model assumes server-side operators.&lt;/p&gt;

The instinct, on reading that Caliptra is open-source and multi-vendor, is to ask why Microsoft does not just put Caliptra into the next Surface. Three reasons. First, form factor: Caliptra is a datacenter-SoC IP block; the integration target is a CPU / GPU / DPU / TPU package on a \$20,000 server motherboard, not a \$700 ultrabook. Second, signer model: Caliptra is multi-vendor *by deployment*, but each Caliptra-equipped chip still has *one* signer -- the integrating chip vendor (AMD signs AMD&apos;s Caliptra firmware; NVIDIA signs NVIDIA&apos;s). The choice of signer moved; the count of signers per chip did not. Third, threat model: Caliptra&apos;s RTM serves a server attestation flow ending at a fleet operator (Google, Microsoft, NVIDIA, the rack owner), not a client BitLocker flow that has to survive a powered-off laptop on an airport conveyor belt.&lt;p&gt;Caliptra is the right counter-design to the &lt;em&gt;governance&lt;/em&gt; of Pluton, not its &lt;em&gt;form factor&lt;/em&gt;. It is what makes the single-signer-per-chip choice in Pluton-on-PC visible as a choice, not a technical necessity. That visibility is the whole reason this section exists.
&lt;/p&gt;&lt;p&gt;&lt;/p&gt;
&lt;h3&gt;Project Cerberus -- still in production&lt;/h3&gt;
&lt;p&gt;Cerberus has not been retired. Microsoft Learn describes it as &lt;em&gt;&quot;a NIST 800-193 compliant hardware root-of-trust with an identity that cannot be cloned&quot;&lt;/em&gt; [@ms-learn-cerberus] [@nist-sp-800-193] running in Azure datacenters; the GitHub reference implementation [@azure-cerberus-github] is actively maintained. In the November 2020 Pluton announcement, Microsoft framed Cerberus as the &lt;em&gt;server-side&lt;/em&gt; counterpart to Pluton&apos;s client-side root of trust [@ms-pluton-blog-2020] -- the two are designed to compose, with Pluton providing the per-CPU identity that an upstream Cerberus chip (or Caliptra-equipped server) can attest. The distinction between Pluton-as-client-RoT and Cerberus-as-server-RoT is operational, not architectural rivalry.&lt;/p&gt;
&lt;h3&gt;The cross-design comparison&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Dimension&lt;/th&gt;
&lt;th&gt;Pluton-on-PC&lt;/th&gt;
&lt;th&gt;Apple SEP&lt;/th&gt;
&lt;th&gt;Google Titan M2&lt;/th&gt;
&lt;th&gt;Caliptra&lt;/th&gt;
&lt;th&gt;Cerberus&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;Physical location&lt;/td&gt;
&lt;td&gt;On-die in application SoC&lt;/td&gt;
&lt;td&gt;On-die in Apple SoC&lt;/td&gt;
&lt;td&gt;Discrete or in-package on Pixel&lt;/td&gt;
&lt;td&gt;On-die in datacenter SoC&lt;/td&gt;
&lt;td&gt;Discrete on server BMC&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Trust anchor&lt;/td&gt;
&lt;td&gt;Microsoft (chip-firmware signer)&lt;/td&gt;
&lt;td&gt;Apple (vertical)&lt;/td&gt;
&lt;td&gt;Google (vertical)&lt;/td&gt;
&lt;td&gt;Per-chip integrator&lt;/td&gt;
&lt;td&gt;Operator (Microsoft on Azure)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Update channel&lt;/td&gt;
&lt;td&gt;Windows Update [@ms-learn-pluton]&lt;/td&gt;
&lt;td&gt;iOS / macOS update&lt;/td&gt;
&lt;td&gt;Android / Pixel update&lt;/td&gt;
&lt;td&gt;Server-side platform update&lt;/td&gt;
&lt;td&gt;OEM / operator update&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Firmware language&lt;/td&gt;
&lt;td&gt;Rust (2024+) [@ms-learn-pluton]&lt;/td&gt;
&lt;td&gt;Apple-customised L4 [@apple-sep]&lt;/td&gt;
&lt;td&gt;Not publicly disclosed&lt;/td&gt;
&lt;td&gt;Open-source firmware [@caliptra-github]&lt;/td&gt;
&lt;td&gt;C / C++ (open) [@azure-cerberus-github]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Open source&lt;/td&gt;
&lt;td&gt;Closed&lt;/td&gt;
&lt;td&gt;Closed&lt;/td&gt;
&lt;td&gt;Closed (driver public)&lt;/td&gt;
&lt;td&gt;Open (RTL + firmware)&lt;/td&gt;
&lt;td&gt;Open (RI on GitHub)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Multi-signer&lt;/td&gt;
&lt;td&gt;Single&lt;/td&gt;
&lt;td&gt;Single&lt;/td&gt;
&lt;td&gt;Single&lt;/td&gt;
&lt;td&gt;Multi-vendor by deployment&lt;/td&gt;
&lt;td&gt;Per-deployment&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Standards exposure&lt;/td&gt;
&lt;td&gt;TCG TPM 2.0 over CRB&lt;/td&gt;
&lt;td&gt;Apple-private&lt;/td&gt;
&lt;td&gt;Android Verified Boot, StrongBox&lt;/td&gt;
&lt;td&gt;Caliptra spec; SPDM 1.3 in 2.0&lt;/td&gt;
&lt;td&gt;NIST SP 800-193&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Best-known structural attack&lt;/td&gt;
&lt;td&gt;None peer-reviewed Pluton-specific (TPMScan corpus only [@tpmscan-2024])&lt;/td&gt;
&lt;td&gt;T2 inherits A10 Boot ROM (checkm8) [@wikipedia-apple-t2]&lt;/td&gt;
&lt;td&gt;None public on Titan M2&lt;/td&gt;
&lt;td&gt;Reviewed open-source RTL&lt;/td&gt;
&lt;td&gt;Mature; deployed since 2017&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Best suited for&lt;/td&gt;
&lt;td&gt;Windows 11 client procurement&lt;/td&gt;
&lt;td&gt;Apple devices&lt;/td&gt;
&lt;td&gt;Pixel devices&lt;/td&gt;
&lt;td&gt;Datacenter SoC integration&lt;/td&gt;
&lt;td&gt;Server BMC RoT&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Form factor&lt;/td&gt;
&lt;td&gt;General-purpose PC&lt;/td&gt;
&lt;td&gt;Apple devices&lt;/td&gt;
&lt;td&gt;Pixel phones&lt;/td&gt;
&lt;td&gt;Datacenter SoCs&lt;/td&gt;
&lt;td&gt;Server motherboards&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;The political question made architectural. Caliptra and OpenTitan answer &quot;what would multi-signer / open-source look like?&quot; in the &lt;em&gt;datacenter&lt;/em&gt;. Apple SEP demonstrates that the single-vendor / single-signer model is operationally durable at consumer scale -- but only when the vendor owns the entire stack. Pluton sits in the awkward middle: single-signer but multi-OEM, closed-firmware but open-Linux-driver, on-die but the chip vendor is not the firmware vendor. That middle position is what makes the procurement debate hard, and it is what makes the open problems in section 9 unresolved.&lt;/p&gt;
&lt;p&gt;Pluton is the strongest on-die RoT for Windows clients in 2026, with the fastest patch cadence, the broadest hardware list, and the most mature design pedigree. What can it still not do?&lt;/p&gt;
&lt;h2&gt;8. What Pluton still cannot do&lt;/h2&gt;
&lt;p&gt;Two structural limits inherited from the prior article, and a third that is specific to single-signer on-die firmware. The first two say what &lt;em&gt;no&lt;/em&gt; on-die RoT can do. The third says what no &lt;em&gt;Microsoft-only-signer&lt;/em&gt; RoT can do. The worked example is CVE-2025-2884.&lt;/p&gt;
&lt;h3&gt;Limit 1 -- RTS+RTR, not RTE&lt;/h3&gt;
&lt;p&gt;A passive cryptoprocessor -- including Pluton -- cannot detect that the &lt;em&gt;wrong code&lt;/em&gt; measured itself. It can only refuse to release sealed material when PCRs do not match the stored policy. The prior article&apos;s section 7.1 [@prior-tpm-in-windows] walks the bit-level reasoning. On-die does not change this. Pluton implements Root of Trust for Storage and Root of Trust for Reporting; it does not implement a Root of Trust for Execution that runs the code outside the chip on the reader&apos;s behalf.&lt;/p&gt;
&lt;h3&gt;Limit 2 -- The VMK transits OS RAM at unseal&lt;/h3&gt;
&lt;p&gt;The Volume Master Key must enter RAM during Trusted Boot, and once unsealed it lives in OS-controlled memory. An attacker who reads OS RAM at the release moment, or any time after, defeats TPM-only BitLocker regardless of TPM strength (prior article sections 7.2 and 7.3 [@prior-tpm-in-windows]). Pluton&apos;s on-die location eliminates the dTPM &lt;em&gt;bus&lt;/em&gt; surface; it does not change which side of the unseal boundary the VMK lives on. This is why Virtualization-Based Security, Credential Guard, DRTM, and System Guard Secure Launch exist as &lt;em&gt;complements&lt;/em&gt;, not substitutes, to the TPM/Pluton primitive.&lt;/p&gt;
&lt;h3&gt;Limit 3 -- Single-signer revocation impossibility&lt;/h3&gt;
&lt;p&gt;This is the new one. State the result precisely: &lt;em&gt;if the on-die RoT firmware can only be authenticated by a single signer S, then the chip&apos;s trust anchor cannot be retired without bricking the chip&apos;s firmware-update path, regardless of whether S is compromised, coerced, or jurisdictionally constrained.&lt;/em&gt; This is not a cryptographic impossibility. It is a key-management impossibility. Revocation requires either (a) a second trust anchor provisioned at chip manufacture and held outside S&apos;s control -- i.e., multi-signer at the &lt;em&gt;chip&lt;/em&gt; level, not just at the &lt;em&gt;deployment&lt;/em&gt; level -- or (b) physical replacement of the silicon. Caliptra and Cerberus weaken the failure mode by &lt;em&gt;moving&lt;/em&gt; the signer to the integrating chip vendor or to the operator, but they do not eliminate it; each chip still has one signing root.&lt;/p&gt;

A key-management (not cryptographic) impossibility: a chip whose firmware-authentication root has one signer in ROM cannot have that signer retired without bricking the firmware-update path or replacing the silicon. Pluton-on-PC silicon shipping today bakes a Microsoft-rooted public key into ROM. See the §8 prose paragraph above and the Callout below for the precise statement of conditions and the operational reasoning (FIDO2 / threshold-signature analogues; §5 trust-shift cross-anchor).
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; There is no cryptographic objection to multi-signer RoT firmware. The math has been understood since the FIDO2 multi-credential work, and threshold signatures have been a primitive for decades. The objection is operational: replacing public keys after the chip is in the field requires either fab-time multi-signer or hardware replacement. Section 5 named the choice; this Callout names what makes it hard to undo.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;Worked example -- CVE-2025-2884&lt;/h3&gt;
&lt;p&gt;On June 10, 2025, NVD published CVE-2025-2884 [@cve-2025-2884]. The CERT/CC coordination ticket is VU#282450 [@cert-cc-vu-282450]. The vulnerability is an out-of-bounds read in the &lt;code&gt;CryptHmacSign&lt;/code&gt; function of the TCG TPM 2.0 reference implementation, Level 00, Revision 01.83 (March 2024). The CERT/CC document describes the impact: &lt;em&gt;&quot;An authenticated local attacker can send malicious commands to a vulnerable TPM interface, resulting in information disclosure or denial of service of the TPM&quot;&lt;/em&gt; [@cert-cc-vu-282450].&lt;/p&gt;
&lt;p&gt;Crucially for attribution, the CERT/CC ticket is explicit about who reported it and who wrote it up: &lt;em&gt;&quot;Thanks to the reporter, who wishes to remain anonymous. This document was written by Vijay Sarvepalli&quot;&lt;/em&gt; [@cert-cc-vu-282450]. The reporter is anonymous; the CERT/CC document author is Vijay Sarvepalli. Tech press accounts that have attributed the disclosure to Quarkslab are incorrect; the primary CERT/CC record is dispositive.The Quarkslab attribution that some 2025 tech-press accounts use for CVE-2025-2884 is contradicted by the primary CERT/CC record VU#282450, which says verbatim: &lt;em&gt;&quot;Thanks to the reporter, who wishes to remain anonymous. This document was written by Vijay Sarvepalli&quot;&lt;/em&gt; [@cert-cc-vu-282450]. The reporter is anonymous. The document author is Vijay Sarvepalli. This article uses that attribution and only that attribution.&lt;/p&gt;
&lt;p&gt;Multiple downstream products are affected. Intel published Security Advisory SA-01209 [@intel-sa-01209]. Siemens published SSA-628843 [@siemens-ssa-628843]. The libtpms project assigned CVE-2025-49133 [@cve-2025-49133] for its own derivative; the upstream fix landed in libtpms commit &lt;code&gt;04b2d8e9&lt;/code&gt; [@libtpms-commit-04b2d8e9]. The TCG itself coordinated VRT0009 [@tcg-vrt0009-advisory] and a TPM 2.0 Library Specification v1.83 errata (cited via NVD as the verifiable mirror -- the TCG site returns 403 to non-browser User-Agents).&lt;/p&gt;
&lt;p&gt;Why this is the right worked example for Pluton. Garrett&apos;s April 2022 reverse-engineering [@garrett-2022-pluton-rev] documented that the Pluton firmware blob in the AMD Ryzen 6000 BIOS is &lt;em&gt;&quot;firmware for Pluton -- it contains chunks that appear to be the reference TPM2 implementation, and it broadly decompiles as valid ARM code.&quot;&lt;/em&gt; The Pluton firmware blob &lt;em&gt;is&lt;/em&gt; an ARM image derived from the TCG TPM 2.0 reference code. So a &lt;code&gt;CryptHmacSign&lt;/code&gt; OOB read in the TCG reference code &lt;em&gt;was&lt;/em&gt; present in Pluton firmware too, on the silicon Garrett looked at, until the firmware was rebuilt against the patched reference implementation. &lt;em&gt;On-die location did not stop the bug from existing.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;What did matter for outcomes was the &lt;em&gt;dwell time&lt;/em&gt; before the vulnerable code was replaced. The structural change that distinguishes Pluton from a 2014 dTPM is not &quot;where the chip is&quot; but &quot;who can patch it, and how fast.&quot; A discrete TPM with the same bug would wait for the dTPM vendor to push a firmware build, the OEM to package a UEFI capsule, the OEM to test it across its product lines, and the user to install it. Microsoft&apos;s Pluton patch path is the Windows Update channel -- the same channel that already delivers kernel updates to roughly 1.4 billion endpoints on a Patch Tuesday cadence. Section 5 design choice 4 walked the channel-shape change and the no-SLA hedge; this is what makes the channel the security property that matters here.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Realization&lt;/th&gt;
&lt;th&gt;Patch path&lt;/th&gt;
&lt;th&gt;Approximate latency&lt;/th&gt;
&lt;th&gt;Bottleneck&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;Discrete TPM&lt;/td&gt;
&lt;td&gt;dTPM vendor build -&amp;gt; OEM UEFI capsule&lt;/td&gt;
&lt;td&gt;Quarters to years&lt;/td&gt;
&lt;td&gt;OEM fleet test + per-OEM rollout&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Intel PTT (CSME)&lt;/td&gt;
&lt;td&gt;Intel ME firmware -&amp;gt; OEM UEFI capsule&lt;/td&gt;
&lt;td&gt;Months to quarters&lt;/td&gt;
&lt;td&gt;OEM UEFI capsule path (TPM-Fail lesson)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;AMD fTPM (PSP)&lt;/td&gt;
&lt;td&gt;AMD AGESA -&amp;gt; OEM UEFI capsule&lt;/td&gt;
&lt;td&gt;Months to quarters&lt;/td&gt;
&lt;td&gt;Same OEM UEFI capsule path&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Pluton-on-PC&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Microsoft signs -&amp;gt; Windows Update&lt;/td&gt;
&lt;td&gt;Days to weeks (no published SLA)&lt;/td&gt;
&lt;td&gt;Microsoft signing key + WU infrastructure&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

flowchart TD
    Ref[TCG TPM 2.0 reference&lt;br /&gt;Level 00 Rev 01.83&lt;br /&gt;March 2024]
    CVE[CVE-2025-2884&lt;br /&gt;CryptHmacSign OOB read&lt;br /&gt;NVD published 2025-06-10]
    Pluton[Pluton firmware&lt;br /&gt;ARM blob&lt;br /&gt;per Garrett 2022]
    Intel[Intel SA-01209]
    Siemens[Siemens SSA-628843]
    Libtpms[libtpms&lt;br /&gt;CVE-2025-49133&lt;br /&gt;commit 04b2d8e9]
    TCG[TCG VRT0009&lt;br /&gt;+ TPM 2.0 v1.83 errata]
    Ref --&amp;gt; CVE
    CVE --&amp;gt; Pluton
    CVE --&amp;gt; Intel
    CVE --&amp;gt; Siemens
    CVE --&amp;gt; Libtpms
    CVE --&amp;gt; TCG
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Key idea:&lt;/strong&gt; Pluton&apos;s structural advantage is the patch path, not the silicon location. CVE-2025-2884 demonstrates that on-die location does not stop a TCG-reference-code bug from existing on a Pluton chip. What changes between a 2014 dTPM and a 2025 Pluton is not &quot;where the chip is&quot; but &quot;who can patch it, and how fast.&quot; On-die is necessary but not sufficient. The breakthrough is the update path. The cost of the update path is the political question section 1 promised.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;If single-signer revocation is impossible, what would multi-signer Pluton look like? And what other open problems does this design choice leave unsolved?&lt;/p&gt;
&lt;h2&gt;9. Open problems Pluton has named but not solved&lt;/h2&gt;
&lt;p&gt;Five concrete open problems sit in front of any 2026 reader of the Pluton design. Each is mapped below to the closest existing partial result. None has a public solution.&lt;/p&gt;
&lt;h3&gt;Open problem 1 -- Multi-signer firmware for on-die client RoTs&lt;/h3&gt;
&lt;p&gt;No public proposal exists for multi-signer Pluton on a Windows client. Caliptra moves the signer to the integrating chip vendor [@caliptra-github], so the count of signers per &lt;em&gt;chip&lt;/em&gt; remains one even when the count per &lt;em&gt;deployment&lt;/em&gt; is many. There is no public proposal for two simultaneous signers on a single client RoT (e.g., Microsoft &lt;em&gt;and&lt;/em&gt; a sovereign signer; or AMD &lt;em&gt;and&lt;/em&gt; Microsoft for a Pluton-on-AMD chip). The closest existing analogues live elsewhere -- IETF KEYTRANS for transparency-logged keys [@ietf-keytrans-wg], HSM-cluster split-signing for operational continuity -- but none has a hardware-RoT counterpart that has shipped. The unresolved engineering question, named in the prior article&apos;s section 8, is whether multi-signer can be added without losing the timely-update property that motivated Pluton in the first place.The IETF KEYTRANS working group [@ietf-keytrans-wg] is the closest active venue for the multi-signer thread, although KEYTRANS is concerned with end-user identity-key transparency rather than firmware-signing keys. The transparency-log primitive is the same (a Merkle tree of signed claims, auditable by independent verifiers); the hardware-RoT integration is missing. A reader interested in the multi-signer thread should track KEYTRANS and the OpenTitan / Caliptra governance discussions in parallel.&lt;/p&gt;
&lt;h3&gt;Open problem 2 -- Regulatory jurisdiction of single-signer firmware&lt;/h3&gt;
&lt;p&gt;Pluton&apos;s signing key is, in effect, a US export-controlled artifact. The EU Cyber Resilience Act entered into force on December 10, 2024, with the bulk of its security obligations applying from December 11, 2027 and reporting obligations applying from September 11, 2026 [@eu-commission-cra]; from the 2027 date it will require demonstrable security properties for products with digital elements, without specifying &lt;em&gt;who&lt;/em&gt; the signer must be. Sovereign fleets -- the German Federal Office for Information Security (BSI), Singapore, Switzerland -- have varying postures on whether a non-domestic RoT is acceptable. Read in 2026, the Dell and Lenovo statements of March 2022 [@register-2022-pluton] [@pcworld-2022-pluton] are the first public push-back along this axis. The procurement debate is not technical; it is jurisdictional. There is no current proposal for a Pluton variant that satisfies a non-US sovereign procurement requirement.&lt;/p&gt;

The EU Cyber Resilience Act entered into force on December 10, 2024 [@eu-commission-cra]. Reporting obligations apply from September 11, 2026; the main security obligations apply from December 11, 2027 [@eu-commission-cra]. CRA does not name signers; it requires demonstrable security properties, vulnerability handling, and update channels for products sold into the EU. A single-signer foreign-rooted RoT can satisfy CRA. Whether it satisfies *sovereign* procurement requirements is a separate question.&lt;p&gt;The German BSI&apos;s Common Criteria PP-0084 protection profile [@bsi-pp-0084] (used historically for Infineon SLB 9670 / 9672 dTPMs) bakes in expectations of the chip-supplier governance that a US-rooted Pluton does not satisfy without a parallel certification path. Switzerland&apos;s federal IT procurement, Singapore&apos;s CSA, and a number of EU member-state ministries take comparable positions. None of these is a formal ban on Pluton; all of them are formal preferences that procurement officers must navigate.&lt;/p&gt;
&lt;p&gt;The architectural fix -- a sovereign signing-root variant of Pluton -- has not been publicly proposed by Microsoft. The economic incentives for such a variant are not obviously favourable: every additional signer adds operational cost to the Windows Update path that Pluton&apos;s design specifically optimises. The procurement market is, as of 2026, deciding both ways, and the 2022 Dell statement is the most-cited public datapoint of a vendor declining to take the bet.
&lt;/p&gt;&lt;p&gt;&lt;/p&gt;
&lt;h3&gt;Open problem 3 -- SPDM 1.3 component attestation on PC&lt;/h3&gt;
&lt;p&gt;Pluton attests the host SoC. It does not yet attest individual components -- NICs, NVMe SSDs, PCIe accelerators -- on Windows clients. The DMTF&apos;s Security Protocol and Data Model (DSP0274) is the wire protocol for component-to-component attestation: a publication cadence of 1.3.0 in June 2023, 1.3.2 in September 2024, and 1.3.3 in December 2025 [@dmtf-dsp0274]. The Caliptra MCU project&apos;s Rust SPDM responder design page is the most explicit public reference for what an SPDM 1.3 endpoint looks like inside an on-die RoT: SPDM is &lt;em&gt;&quot;a protocol designed to ensure secure communication between hardware components by focusing on mutual authentication and the establishment of secure channels over potentially insecure media... using X.509v3 certificates&quot;&lt;/em&gt; [@caliptra-mcu-spdm], with a fixed message inventory (&lt;code&gt;GetVersion&lt;/code&gt;, &lt;code&gt;GetCapabilities&lt;/code&gt;, &lt;code&gt;NegotiateAlgorithms&lt;/code&gt;, &lt;code&gt;GetDigests&lt;/code&gt;, &lt;code&gt;GetCertificate&lt;/code&gt;, &lt;code&gt;Challenge&lt;/code&gt;, &lt;code&gt;GetMeasurements&lt;/code&gt;, &lt;code&gt;KeyExchange&lt;/code&gt;, &lt;code&gt;Finish&lt;/code&gt;) carried over an MCTP transport binding. Caliptra 2.0&apos;s RTL design freeze in October 2024 [@caliptra-ocp-2024-news] commits SPDM as part of the Caliptra Subsystem reference stack: &lt;em&gt;&quot;Reference Stack: MCTP PLDM, SPDM&quot;&lt;/em&gt; [@caliptra-ocp-2024-news]. That is the server-side commitment.&lt;/p&gt;
&lt;p&gt;The PC-client equivalent is not on the public record as of May 2026. Microsoft Learn&apos;s Pluton page does not mention SPDM, DSP0274, MCTP, or component attestation [@ms-learn-pluton]. There is no Microsoft-published Windows feature or Pluton-firmware milestone that names &quot;SPDM responder&quot; or &quot;component attestation on PC&quot; as a roadmap deliverable. The architectural question -- whether Pluton becomes the platform&apos;s SPDM responder, whether each component (NVMe controller, Wi-Fi card) is its own responder and Pluton aggregates the evidence, or whether Windows Defender System Guard owns the Windows-side appraiser -- is not answered by any published Microsoft document on the public record as of May 2026. The closest existing reference design lives in &lt;code&gt;chipsalliance/caliptra-mcu-sw&lt;/code&gt; (Rust SPDM responder, X.509-anchored mutual auth), and the most likely standards venues for a PC-client profile are the DMTF SPDM WG (the wire protocol owner) and the OCP Security WG (the appraisal-framework owner). Until Microsoft publishes a Windows-feature surface that owns the SPDM responder on PC, &quot;Pluton attests the host SoC, period&quot; is the article&apos;s honest description of the 2026 state.&lt;/p&gt;
&lt;h3&gt;Open problem 4 -- Pluton-Caliptra interoperation&lt;/h3&gt;
&lt;p&gt;A Pluton-rooted client should, in principle, be able to attest to a Caliptra-rooted server in a single end-to-end protocol with both roots of trust visible in the resulting evidence chain. The wire-protocol candidates exist and are largely standardised. What is missing is the &lt;em&gt;composite-attestation profile&lt;/em&gt; that wires them into a single client-to-server flow.&lt;/p&gt;
&lt;p&gt;The candidate stack as of May 2026 lives across three SDOs and one OCP project. The DMTF owns SPDM 1.3 for component-to-component attestation [@dmtf-dsp0274] [@caliptra-mcu-spdm]. The IETF Remote Attestation Procedures (RATS) Working Group owns the architectural primitives for what an evidence-and-results message &lt;em&gt;contains&lt;/em&gt;: RFC 9711 (April 2025, Standards Track) is the Entity Attestation Token (EAT), a CBOR Web Token (CWT) or JSON Web Token (JWT) form for &lt;em&gt;&quot;an attested claims set that describes the state and characteristics of an entity&quot;&lt;/em&gt; [@ietf-rfc9711]; &lt;code&gt;draft-ietf-rats-corim-10&lt;/code&gt; (in WG Last Call as of March 2026) is the Concise Reference Integrity Manifest, the appraisal-time profile for &lt;em&gt;&quot;Endorsements and Reference Values in CBOR format&quot;&lt;/em&gt; [@ietf-corim]; &lt;code&gt;draft-ietf-rats-msg-wrap-23&lt;/code&gt; (in the RFC Editor queue since December 2025) is the Conceptual Message Wrapper, a CBOR-tag / JWT / CWT / X.509-extension envelope for &lt;em&gt;composing&lt;/em&gt; evidence, attestation results, endorsements, and reference values across protocols [@ietf-msg-wrap]. The full RATS WG document inventory at &lt;code&gt;datatracker.ietf.org/wg/rats/documents/&lt;/code&gt; shows additional active drafts on multi-verifier composition, posture-assessment, EAR (an evidence-appraisal-results profile), and PKIX key attestation [@ietf-rats-wg-docs]. The OCP Security WG owns the third-party appraisal framework: OCP S.A.F.E. v2.0 (March 2026) added explicit CoRIM SFR support and is the public mechanism by which a fleet operator certifies that a vendor&apos;s firmware-appraisal evidence has been independently audited [@ocp-safe-framework]. Caliptra 2.0&apos;s reference stack already wires SPDM, MCTP, and PLDM [@caliptra-ocp-2024-news]; the Caliptra MCU Rust responder shows the SPDM endpoint shape [@caliptra-mcu-spdm].&lt;/p&gt;
&lt;p&gt;What is &lt;em&gt;missing&lt;/em&gt; is a single published profile that walks the chain end to end: a Pluton-rooted Windows client emits a &lt;code&gt;Get-Tpm&lt;/code&gt;-derived attestation (Pluton acting as evidence producer); the network carries CMW-wrapped evidence with a CoRIM endorsement set the verifier consumes; the verifier emits an EAT-formatted attestation result; a Caliptra-rooted server consumes the result and gates fleet membership. Each leg has a draft. No public SDO document binds them into a single Pluton-Caliptra composite-attestation profile with reference implementations on both ends. The natural venue is a joint DMTF SPDM WG and OCP Security WG profile, with IETF RATS as the architectural reference; the natural reference implementation pair is &lt;code&gt;chipsalliance/caliptra-mcu-sw&lt;/code&gt; on the responder side and a Windows-feature surface (which Microsoft has not named publicly) on the client side. Until that joint profile exists and ships reference implementations, Pluton-Caliptra interoperation in 2026 is two roots-of-trust deployed, with no published end-to-end protocol that visibly carries both signatures into a single evidence chain.&lt;/p&gt;
&lt;h3&gt;Open problem 5 -- Supply-chain integrity beyond firmware signing&lt;/h3&gt;
&lt;p&gt;The Pluton signing root protects firmware integrity &lt;em&gt;after&lt;/em&gt; the chip ships. Listing the supply-chain steps in chronological order makes the residual trust gap concrete: (1) the IP-licensing handshake from Microsoft to AMD / Intel / Qualcomm; (2) tape-out and process-design-kit integration at TSMC; (3) wafer fabrication; (4) per-vendor package assembly; (5) OEM motherboard integration; (6) OEM firmware integration (BIOS / UEFI vendor code that surrounds the Pluton block); (7) retail distribution. None of these steps is presently attested by Pluton itself; the on-die signing root is &lt;em&gt;applied&lt;/em&gt; at step 6 and &lt;em&gt;exercised&lt;/em&gt; from step 7 onward, but steps 1-5 are out of band of the chip&apos;s RoT.&lt;/p&gt;
&lt;p&gt;The closest existing partial answer is a layered combination of three primitives. First, DICE -- TCG&apos;s Device Identifier Composition Engine -- gives every component a &lt;em&gt;Hardware Root of Trust (HRoT) which uniquely identifies the component and attests component firmware&lt;/em&gt; [@tcg-dice], anchored by a per-die Unique Device Secret (UDS) that derives a Compound Device Identifier (CDI) per layer; the Open Profile for DICE v2.6 [@open-dice] is the reference profile and explicitly cites the TCG normative parent. DICE answers step 4-5 (per-package and per-board identity) provided the integrator provisions a UDS on the die. Second, SPDM 1.3 [@dmtf-dsp0274] [@caliptra-mcu-spdm] is the wire protocol that surfaces those DICE identities to a verifier at runtime: a per-component SPDM responder (carried over MCTP / PLDM in Caliptra 2.0&apos;s stack [@caliptra-ocp-2024-news]) emits a measurement set tied to its CDI. Third, OCP S.A.F.E. (Security Appraisal Framework and Enablement) v2.0 [@ocp-safe-framework] is the third-party-audit framework that lets a fleet operator certify that a Device Vendor&apos;s firmware was assessed by a Security Review Provider; the v2.0 March 2026 revision explicitly added CoRIM SFR support, wiring S.A.F.E. into the IETF RATS appraisal stack [@ietf-corim]. Together, DICE + SPDM + S.A.F.E. answer &quot;is each component what its vendor said it was, and has the firmware been independently appraised?&quot;&lt;/p&gt;
&lt;p&gt;What is &lt;em&gt;not&lt;/em&gt; built is the verifier infrastructure that consumes that evidence end to end. There is no public per-component-EK transparency log analogous to Certificate Transparency for the web PKI; there is no Pluton-rooted client-side appraiser that consumes per-component SPDM evidence and gates Windows boot on it; there is no shipping fleet-side hardware-bill-of-materials (HBOM) audit pipeline that ingests S.A.F.E. reports and Caliptra-rooted server attestations together. The supply-chain trust is &lt;em&gt;named&lt;/em&gt; by DICE + SPDM + S.A.F.E.; it is not &lt;em&gt;operationalised&lt;/em&gt; end to end on a 2026 Windows 11 client. The honest framing is: Pluton&apos;s signing root closes step 6 and step 7; DICE + SPDM + S.A.F.E. are the public standards that, if implemented in the Windows feature stack, would close steps 4-5; steps 1-3 (IP licensing, tape-out, wafer) remain out of band of any of the public standards above.&lt;/p&gt;
&lt;h3&gt;The 10-property scoreboard for an ideal client-PC on-die RoT&lt;/h3&gt;
&lt;p&gt;Five open problems converge onto a single scoreboard. This article&apos;s SOTA review enumerates ten properties an ideal client-PC on-die Root of Trust in 2026 would satisfy (expanding the prior article&apos;s six TPM-ideal properties [@prior-tpm-in-windows] with multi-signer governance, public RTL, native PQC, and component attestation): (1) on-die location with no off-package bus; (2) an isolated TEE shared with nothing else; (3) memory-protected DRAM with AES + authenticated + anti-replay protection; (4) OS-channel firmware updates; (5) memory-safe firmware language; (6) multi-signer firmware authentication; (7) public RTL and verification flow; (8) native post-quantum primitives (ML-DSA, ML-KEM); (9) component attestation across PCIe / NVMe / NIC via SPDM 1.3; (10) high-assurance certification depth (Common Criteria EAL4+ and FIPS 140-3). No shipping method satisfies all ten; the matrix below shows where each design sits.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Property&lt;/th&gt;
&lt;th&gt;Pluton-on-PC 2026&lt;/th&gt;
&lt;th&gt;Apple SEP (A14/M1+)&lt;/th&gt;
&lt;th&gt;OpenTitan (Earl Grey / Darjeeling)&lt;/th&gt;
&lt;th&gt;Caliptra 2.0 (RTL freeze Oct 2024)&lt;/th&gt;
&lt;th&gt;Cerberus (current production)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;1. On-die, no bus&lt;/td&gt;
&lt;td&gt;Yes [@ms-pluton-blog-2020]&lt;/td&gt;
&lt;td&gt;Yes [@apple-sep]&lt;/td&gt;
&lt;td&gt;Discrete or in-package&lt;/td&gt;
&lt;td&gt;Yes [@caliptra-github]&lt;/td&gt;
&lt;td&gt;No (discrete on BMC)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2. Isolated TEE&lt;/td&gt;
&lt;td&gt;Yes (dedicated)&lt;/td&gt;
&lt;td&gt;Yes [@apple-sep]&lt;/td&gt;
&lt;td&gt;Yes (whole chip)&lt;/td&gt;
&lt;td&gt;Yes (RTM block)&lt;/td&gt;
&lt;td&gt;Yes (whole chip)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3. AES + authenticated + anti-replay DRAM&lt;/td&gt;
&lt;td&gt;Not on public record&lt;/td&gt;
&lt;td&gt;Yes (A14/M1+) [@apple-sep]&lt;/td&gt;
&lt;td&gt;Limited (chip-internal SRAM)&lt;/td&gt;
&lt;td&gt;N/A (no DRAM responder role)&lt;/td&gt;
&lt;td&gt;N/A (server BMC)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4. OS-channel firmware updates&lt;/td&gt;
&lt;td&gt;Yes (Windows Update) [@ms-learn-pluton]&lt;/td&gt;
&lt;td&gt;Yes (iOS / macOS) [@apple-sep]&lt;/td&gt;
&lt;td&gt;Project-managed&lt;/td&gt;
&lt;td&gt;Server platform updates&lt;/td&gt;
&lt;td&gt;OEM / operator updates&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5. Memory-safe firmware&lt;/td&gt;
&lt;td&gt;Yes (Rust 2024+) [@ms-learn-pluton]&lt;/td&gt;
&lt;td&gt;Apple-customised L4 [@apple-sep]&lt;/td&gt;
&lt;td&gt;Rust runtime in OpenTitan codebase&lt;/td&gt;
&lt;td&gt;Rust [@caliptra-github] [@caliptra-mcu-spdm]&lt;/td&gt;
&lt;td&gt;C / C++ [@azure-cerberus-github]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6. Multi-signer&lt;/td&gt;
&lt;td&gt;No (Microsoft only)&lt;/td&gt;
&lt;td&gt;No (Apple only)&lt;/td&gt;
&lt;td&gt;No (per-deployment)&lt;/td&gt;
&lt;td&gt;Multi-vendor by deployment, single per chip [@caliptra-github]&lt;/td&gt;
&lt;td&gt;Per-deployment signer&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;7. Public RTL and verification&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;Yes [@opentitan-home] [@opentitan-commercial]&lt;/td&gt;
&lt;td&gt;Yes [@caliptra-github]&lt;/td&gt;
&lt;td&gt;Yes (reference impl) [@azure-cerberus-github]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;8. Native PQC (ML-DSA, ML-KEM)&lt;/td&gt;
&lt;td&gt;No public commitment date&lt;/td&gt;
&lt;td&gt;No public commitment date&lt;/td&gt;
&lt;td&gt;On roadmap [@opentitan-home]&lt;/td&gt;
&lt;td&gt;Yes (RTL freeze incl. Dilithium + Kyber) [@caliptra-ocp-2024-news]&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;9. Component attestation (SPDM 1.3)&lt;/td&gt;
&lt;td&gt;No (open problem 3)&lt;/td&gt;
&lt;td&gt;Apple-private equivalents&lt;/td&gt;
&lt;td&gt;Not yet&lt;/td&gt;
&lt;td&gt;Yes (Reference Stack: MCTP PLDM, SPDM) [@caliptra-ocp-2024-news] [@caliptra-mcu-spdm]&lt;/td&gt;
&lt;td&gt;NIST SP 800-193 framing [@ms-learn-cerberus]&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;10. EAL4+ and FIPS 140-3&lt;/td&gt;
&lt;td&gt;No equivalent posture in 2026 [@bsi-slb-9670-cc]&lt;/td&gt;
&lt;td&gt;Not pursued for SEP&lt;/td&gt;
&lt;td&gt;In assessment&lt;/td&gt;
&lt;td&gt;Not pursued&lt;/td&gt;
&lt;td&gt;Some certifications via OEM&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Properties satisfied&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;4 (1, 2, 4, 5)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;4 (1, 2, 3, 4)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;2 (5, 7)&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;3 (5, 7, 8) -- on track for 9&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;1-2 (7 + partial 9)&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;The matrix says two things at once. First, no shipping on-die RoT in 2026 satisfies more than four of the ten properties; the scoreboard is sparse on purpose. Second, the closest &lt;em&gt;trajectory&lt;/em&gt; to the ten-property ideal is not any single design; it is the union of Pluton&apos;s properties (1, 2, 4, 5), Caliptra&apos;s open RTL and PQC commitments (7, 8, 9), and OpenTitan&apos;s open RTL (7). A hypothetical Pluton variant that adopted Caliptra-style multi-signer governance, OpenTitan-style RTL transparency, and the Caliptra 2.0 SPDM responder reference stack would satisfy 1, 2, 4, 5, 6, 7, 8, 9 -- eight of the ten -- with high-assurance certification (10) the residual procurement question. That hypothetical Pluton has not been publicly proposed by Microsoft. It is, however, the design the matrix names as the destination if all five open problems above were closed.&lt;/p&gt;
&lt;h3&gt;The shape of the unanswered question&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Open problem&lt;/th&gt;
&lt;th&gt;Why it matters&lt;/th&gt;
&lt;th&gt;Closest existing partial result&lt;/th&gt;
&lt;th&gt;Outstanding gap&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;Multi-signer client RoT&lt;/td&gt;
&lt;td&gt;Single-signer revocation impossibility&lt;/td&gt;
&lt;td&gt;Caliptra (multi-vendor by deployment, single-signer per chip) [@caliptra-github]&lt;/td&gt;
&lt;td&gt;No two-signer-per-chip proposal for client&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Regulatory jurisdiction&lt;/td&gt;
&lt;td&gt;Sovereign procurement, EU CRA (in force Dec 10 2024, reporting from Sep 11 2026, main obligations from Dec 11 2027) [@eu-commission-cra]&lt;/td&gt;
&lt;td&gt;March 2022 Dell / Lenovo posture [@register-2022-pluton] [@pcworld-2022-pluton]&lt;/td&gt;
&lt;td&gt;No sovereign Pluton variant&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SPDM 1.3 on PC&lt;/td&gt;
&lt;td&gt;Component attestation beyond the SoC&lt;/td&gt;
&lt;td&gt;Caliptra 2.0 reference stack with SPDM [@caliptra-ocp-2024-news] [@caliptra-mcu-spdm]&lt;/td&gt;
&lt;td&gt;No PC-client SPDM responder named on Microsoft Learn&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pluton-Caliptra interop&lt;/td&gt;
&lt;td&gt;Composite client-to-server attestation&lt;/td&gt;
&lt;td&gt;RATS EAT [@ietf-rfc9711] + CoRIM [@ietf-corim] + CMW [@ietf-msg-wrap] + S.A.F.E. [@ocp-safe-framework]&lt;/td&gt;
&lt;td&gt;No joint DMTF / OCP / RATS profile binding the chain end to end&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Supply-chain integrity beyond firmware signing&lt;/td&gt;
&lt;td&gt;Pre-ship trust (steps 1-5 of the chain)&lt;/td&gt;
&lt;td&gt;DICE [@tcg-dice] [@open-dice] + SPDM [@dmtf-dsp0274] + S.A.F.E. [@ocp-safe-framework]&lt;/td&gt;
&lt;td&gt;Verifier infrastructure (per-component-EK transparency, HBOM appraiser) not built&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;All five share the same shape. Pluton has &lt;em&gt;narrowed&lt;/em&gt; but not eliminated structural classes of trust. On-die narrowed but did not eliminate the silicon supply chain trust. Microsoft-rooted firmware servicing narrowed but did not eliminate the firmware-signing trust. Component attestation, when it ships on PC, will narrow but not eliminate the per-component supply-chain trust. Each Pluton design choice trades one trust for another; the residual trusts are the ones the article cannot answer technically and must label politically.&lt;/p&gt;
&lt;p&gt;On Monday morning, what does the Windows engineer reading this actually do?&lt;/p&gt;
&lt;h2&gt;10. The Pluton checklist for 2026&lt;/h2&gt;
&lt;p&gt;Five questions. Each has a one-paragraph answer and a verifiable command or check. The reader who skipped sections 6 and 8 will still avoid the most expensive mistake -- counting &quot;Pluton present&quot; as &quot;Pluton enabled.&quot;&lt;/p&gt;
&lt;h3&gt;Q1 -- Is Pluton present on this device?&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;Get-Tpm&lt;/code&gt; in PowerShell reports &lt;code&gt;ManufacturerIdTxt&lt;/code&gt;. The four-character ASCII manufacturer string distinguishes the realisation. &lt;code&gt;MSFT&lt;/code&gt; is Pluton; &lt;code&gt;INTC&lt;/code&gt; is Intel PTT; &lt;code&gt;AMD &lt;/code&gt; (with trailing space) is AMD fTPM; &lt;code&gt;IFX&lt;/code&gt;, &lt;code&gt;STM&lt;/code&gt;, and &lt;code&gt;NTC&lt;/code&gt; cover Infineon, STMicro, and Nuvoton discrete TPMs respectively. The prior article&apos;s section 9 [@prior-tpm-in-windows] documents the broader manufacturer-string discovery path. The new Pluton-specific check is the four-letter &lt;code&gt;MSFT&lt;/code&gt; value.&lt;/p&gt;

Open PowerShell as administrator and run:&lt;pre&gt;&lt;code class=&quot;language-powershell&quot;&gt;Get-Tpm | Select-Object ManufacturerIdTxt, ManufacturerVersion, TpmPresent, TpmReady
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;A &lt;code&gt;ManufacturerIdTxt&lt;/code&gt; of &lt;code&gt;MSFT&lt;/code&gt; indicates Microsoft Pluton. &lt;code&gt;INTC&lt;/code&gt; is Intel PTT (the firmware TPM in CSME). &lt;code&gt;AMD &lt;/code&gt; (with the trailing space) is AMD fTPM (the firmware TPM in the PSP). The same logic is captured in the JavaScript &lt;code&gt;&amp;lt;RunnableCode&amp;gt;&lt;/code&gt; mock in section 5 above. For richer detail, run &lt;code&gt;tpm.msc&lt;/code&gt; -- the Microsoft Management Console snap-in shows the full TPM identity.
&lt;/p&gt;&lt;p&gt;&lt;/p&gt;
&lt;h3&gt;Q2 -- Is Pluton &lt;em&gt;enabled&lt;/em&gt;, not just &lt;em&gt;present&lt;/em&gt;?&lt;/h3&gt;
&lt;p&gt;This is the §6 soft-fuse trap. On AMD Ryzen 6000 / 7000 / 8000 silicon, &lt;code&gt;Get-Tpm&lt;/code&gt; returning &lt;code&gt;MSFT&lt;/code&gt; proves Pluton is &lt;em&gt;exposed&lt;/em&gt; as the TPM but does not, on its own, prove Pluton is &lt;em&gt;enabled&lt;/em&gt; in firmware (§6&apos;s Definition + Callout walk the PSP directory 0xB BIT36 mechanism Garrett 2022 documents [@garrett-2022-pluton-rev]). The procurement-relevant action is to audit BIOS-level Pluton (HSP) toggles and correlate &lt;code&gt;Get-Tpm&lt;/code&gt;&apos;s manufacturer string with &lt;code&gt;Get-PnpDevice&lt;/code&gt; / Device Manager before counting an AMD-Ryzen-6000-class device as Pluton-protected. On Lenovo AMD Ryzen 6000 ThinkPads specifically, the launch posture was Pluton present but disabled by default [@register-2022-pluton] -- so a 2022 ThinkPad inventory query that finds Ryzen 6000 silicon will not, on its own, tell the operator whether Pluton is doing any work.&lt;/p&gt;
&lt;h3&gt;Q3 -- Is Pluton firmware current?&lt;/h3&gt;
&lt;p&gt;Microsoft publishes Pluton firmware via Windows Update [@ms-learn-pluton]. Microsoft does not publish a per-release notes feed for Pluton firmware, so the operator must rely on the general Windows Update history and the chip vendor&apos;s advisory feed (Intel SA-* for Intel-Pluton silicon; AMD&apos;s security bulletins for AMD-Pluton silicon). The procurement-relevant property is that the channel exists and ships. The procurement-relevant &lt;em&gt;question&lt;/em&gt; is whether the operator&apos;s organisation is willing to depend on that channel.&lt;/p&gt;
&lt;h3&gt;Q4 -- When to &lt;em&gt;prefer&lt;/em&gt; Pluton over dTPM, PTT, or AMD fTPM&lt;/h3&gt;
&lt;p&gt;Three procurement scenarios where Pluton is the right answer in 2026.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Default Windows 11 client procurement.&lt;/strong&gt; Pluton on AMD Ryzen 6000 and later, Intel Core Ultra 200V Series and Series 3, and Snapdragon X Series [@ms-learn-pluton]. The Microsoft-supported configuration; the path of least administrative resistance; the only realisation that ships memory-safe firmware on the Patch Tuesday cadence.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Adversary model includes physical access.&lt;/strong&gt; Andzakovic-class bus sniffing [@andzakovic-2019-tpm-sniffing], faulTPM-class voltage glitching [@jacob-2023-faultpm]. Pluton (on-die, dedicated TEE) closes both surfaces structurally.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Need fast firmware updates for security responses to TCG-reference-code bugs.&lt;/strong&gt; CVE-2025-2884 is the worked example [@cve-2025-2884]. Pluton&apos;s Windows Update servicing is the only realisation in 2026 that does not depend on the OEM UEFI capsule path.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Q5 -- When to &lt;em&gt;not&lt;/em&gt; prefer it&lt;/h3&gt;
&lt;p&gt;Three procurement scenarios where Pluton is not the right answer.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Regulated fleets requiring a non-US trust anchor.&lt;/strong&gt; German BSI PP-0084-class procurement [@bsi-pp-0084], EU sovereign workloads. Hardened dTPM (Infineon SLB 9670 / 9672, STMicro ST33TPHF) has the certified posture [@bsi-slb-9670-cc]; Pluton has no equivalent EAL4+ certification path on the public record as of 2026 [@bsi-slb-9670-cc].&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Air-gapped fleets that cannot accept Windows-Update-delivered firmware.&lt;/strong&gt; Offline UEFI capsule servicing remains the only operationally feasible patch path; dTPM is the mechanically right choice for that fleet.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Multi-vendor sourcing requirements.&lt;/strong&gt; dTPM has multiple silicon vendors (Infineon, STMicro, Nuvoton). Pluton has one signer per chip and only the AMD / Intel / Qualcomm silicon paths Microsoft has licensed. Datacenter operators who need multi-vendor sourcing should look at Caliptra [@caliptra-github] -- not a Pluton substitute on Windows clients, but the right answer for datacenter SoC procurement.&lt;/li&gt;
&lt;/ul&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Choose Pluton when...&lt;/th&gt;
&lt;th&gt;Choose dTPM (or Caliptra) when...&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;&lt;tr&gt;
&lt;td&gt;Default Windows 11 client procurement [@ms-learn-pluton]&lt;/td&gt;
&lt;td&gt;Sovereign procurement (German BSI, EU sovereign)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Adversary model includes physical access&lt;/td&gt;
&lt;td&gt;Air-gapped fleet, no Windows Update channel acceptable&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Need Patch Tuesday firmware response cadence&lt;/td&gt;
&lt;td&gt;Need EAL4+ / FIPS 140-3 certification posture today&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Want memory-safe Rust firmware (2024+ silicon)&lt;/td&gt;
&lt;td&gt;Need multi-vendor silicon sourcing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Want on-die dedicated TEE versus shared PSP/CSME&lt;/td&gt;
&lt;td&gt;Datacenter SoC integration (Caliptra)&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

flowchart TD
    Start[Need a TPM/RoT in 2026?]
    Q1{Datacenter SoC?}
    Q2{Sovereign / non-US RoT required?}
    Q3{Air-gapped fleet?}
    Q4{Default Windows 11 enterprise?}
    Caliptra[Caliptra 1.0]
    DTPM[Hardened dTPM&lt;br /&gt;Infineon SLB 9670/9672&lt;br /&gt;or STMicro ST33TPHF]
    DTPMcap[Hardened dTPM&lt;br /&gt;offline UEFI capsule path]
    Pluton[Pluton on AMD Ryzen 6000+&lt;br /&gt;or Intel Core Ultra 200V+&lt;br /&gt;or Snapdragon X Series]
    Start --&amp;gt; Q1
    Q1 --&amp;gt;|Yes| Caliptra
    Q1 --&amp;gt;|No| Q2
    Q2 --&amp;gt;|Yes| DTPM
    Q2 --&amp;gt;|No| Q3
    Q3 --&amp;gt;|Yes| DTPMcap
    Q3 --&amp;gt;|No| Q4
    Q4 --&amp;gt;|Yes| Pluton
    Q4 --&amp;gt;|No| DTPM
&lt;p&gt;We started with the question Microsoft answered architecturally before the prior article posed it. Where does that leave the political question that even the architectural answer cannot resolve?&lt;/p&gt;
&lt;h2&gt;11. Frequently asked questions, and one more political question&lt;/h2&gt;
&lt;p&gt;The architectural answer to &quot;what is the cost of letting Microsoft sign the chip&apos;s firmware?&quot; is partial and has been answered by every section above. The remaining piece is a set of common misconceptions, then a closing tied to the prior article.&lt;/p&gt;

No. fTPM is a TPM 2.0 task running inside an existing TEE -- Intel CSME (PTT) or AMD PSP. Pluton is a *dedicated* IP block on the SoC die that does not share a TEE with anything else. The threat-model gap that faulTPM exposed [@jacob-2023-faultpm] only closes for Pluton-as-Pluton, not for fTPM running on Pluton-equipped silicon. AMD-Ryzen-6000-class chips can ship Pluton silicon next to the existing PSP-based fTPM; §5 documents the OEM-picks-one mechanism via the Pluton (HSP) BIOS toggle [@garrett-2022-pluton-rev], and faulTPM-class attacks remain valid only on systems the OEM exposes as fTPM.

No. Pluton implements the TCG TPM 2.0 specification plus Microsoft-specific extensions like SHACK [@ms-pluton-blog-2020]. From Windows&apos;s perspective, Pluton *is* a TPM, with a different update story (Windows Update versus OEM UEFI capsule) and a different trust anchor (Microsoft as firmware signer). Whether the OEM exposes Pluton &quot;as the TPM&quot; or alongside a discrete TPM is an OEM choice [@ms-learn-pluton-as-tpm]: *&quot;Microsoft Pluton can be used as a TPM, or with a TPM. Although Pluton builds security directly into the CPU, device manufacturers might choose to use discrete TPM as the default TPM, while having Pluton available to the system as a security processor for use cases beyond the TPM&quot;* [@ms-learn-pluton-as-tpm].

No. Pluton firmware is Microsoft-authored and Microsoft-signed [@ms-learn-pluton]. Caliptra is Microsoft-co-contributed and open source [@caliptra-github] -- but Caliptra is datacenter-class, not a Pluton substitute on Windows clients. The closest open-source on-die RoT for clients is OpenTitan [@opentitan-home] [@opentitan-commercial], which as of 2026 is discrete or in-package, not on-die in an application SoC. Tock OS [@tock-github] is the most mature publicly reviewed memory-safe embedded RTOS that *could* host Pluton-class workloads; whether it is the actual runtime on Pluton-on-PC is not on the public record.

No. Pluton centralises firmware *signing*, not key access. The November 17, 2020 announcement specifies SHACK -- Secure Hardware Cryptography Key -- which states that keys *&quot;are never exposed outside of the protected hardware, even to the Pluton firmware itself&quot;* [@ms-pluton-blog-2020]. Microsoft signs the firmware that runs on Pluton; the keys Pluton creates and seals stay inside Pluton. (The prior article&apos;s FAQ entry on this point [@prior-tpm-in-windows] makes the same observation about the underlying TPM 2.0 non-exportability property.)

Three things, in order. First, no off-package bus to sniff -- Andzakovic-class attacks [@andzakovic-2019-tpm-sniffing] have nothing to attack on Pluton silicon. Second, Patch Tuesday-cadence firmware fixes for TCG-reference-code bugs -- CVE-2025-2884 [@cve-2025-2884] is the worked example; the Pluton Windows Update path collapses the dwell time that a discrete-TPM fix would otherwise spend in OEM UEFI capsule queues. Third, Microsoft-authored Rust firmware on 2024+ AMD and Intel silicon [@ms-learn-pluton]; the bug class that memory-safe firmware structurally rules out is large. The cost of all three is a Microsoft signing key as the chip&apos;s trust anchor.

Pluton inherits the TCG TPM 2.0 algorithm-agility property the prior article documented in section 8.1 [@prior-tpm-in-windows]. Caliptra 2.0 has a stated commitment to ML-DSA and ML-KEM [@caliptra-github]; Pluton-firmware post-quantum migration tracks similar primitives, but no Microsoft public commitment to a specific date for a post-quantum Pluton firmware release exists in 2026. The point of the algorithm-agility property is that the migration is a firmware change, not a silicon respin -- which is precisely the property the Pluton update path is designed to operationalise.

Generally no. Disabling Pluton on AMD Ryzen 6000+ via the BIOS toggle does not return the system to a *stronger* security posture; it returns it to AMD fTPM (or no TPM at all, depending on the OEM&apos;s BIOS design). The faulTPM-class attack surface that motivated the move to Pluton in the first place re-opens [@jacob-2023-faultpm]. The procurement scenarios in section 10 list the narrow cases where dTPM is the right answer; in those cases the right action is to procure dTPM-equipped silicon, not to disable Pluton on Pluton-equipped silicon.
&lt;h3&gt;A closing tied to the prior article&lt;/h3&gt;
&lt;p&gt;Return to the line that opened this article. &lt;em&gt;&quot;The TPM was supposed to be the part of the system you didn&apos;t have to trust anyone for. Twenty-five years later, the trust question is back -- and the answer is now political&quot;&lt;/em&gt; [@prior-tpm-in-windows]. The architectural answer to that question existed inside an Xbox before the question was asked. Twelve years of Microsoft security silicon -- Xbox One in 2013, Project Sopris in 2015, the &lt;em&gt;Seven Properties&lt;/em&gt; paper in 2017, Project Cerberus in 2017, Azure Sphere in 2018, Pluton-on-PC in 2020, AMD Ryzen 6000 silicon in 2022, Linux 6.3 driver in 2023, Caliptra 1.0 in 2024, the CVE-2025-2884 dwell-time test in 2025 -- have shaped the on-die security processor on the modern Windows 11 client.&lt;/p&gt;
&lt;p&gt;The article&apos;s own answer is direct. Pluton makes the political question concrete and unavoidable, but it does not resolve it. On-die closes the bus surface. Dedicated TEE closes the shared-TEE blast radius that defeated AMD fTPM. Memory-safe Rust firmware narrows the bug class that has driven the firmware-CVE economy for a decade. Windows Update collapses the patch latency from OEM-capsule quarters to Patch Tuesday weeks. &lt;em&gt;Each design choice retires a 2014-2024 attack class. Each design choice places a new trust in Microsoft.&lt;/em&gt; The trust question is now visible at every level of the stack: silicon supply chain, firmware language, signing key, update channel, regulatory jurisdiction. It does not go away because Microsoft engineered the chip well. It goes from being a technical question to being a procurement question.&lt;/p&gt;

Pluton makes the political question concrete and unavoidable, but it does not resolve it.
&lt;p&gt;The closing image is operational. An engineer running &lt;code&gt;Get-Tpm&lt;/code&gt; on a Windows 11 laptop in 2026 reads a four-letter token in the manufacturer string. &lt;code&gt;MSFT&lt;/code&gt; is what twelve years of Microsoft security silicon buys you. It is what closed the bus surface that the prior article&apos;s $40 FPGA exploited. It is what closed the shared-TEE surface that faulTPM extracted state from. It is what gives the Patch Tuesday channel something to deliver. It is also what places a single Microsoft signing key as the trust anchor for every Pluton-equipped Windows 11 client. That four-letter token is the article&apos;s subject, the prior article&apos;s epilogue, and the next decade&apos;s procurement question.&lt;/p&gt;
&lt;p&gt;&amp;lt;StudyGuide slug=&quot;microsoft-pluton-continuation&quot; keyTerms={[
  { term: &quot;Pluton&quot;, definition: &quot;Microsoft-designed on-die security processor; named publicly first in April 2018 (Azure Sphere); shipped on Windows-PC SoCs from November 17, 2020 (announcement) and CES 2022 (AMD Ryzen 6000 first silicon). Implements TCG TPM 2.0 plus Microsoft-specific extensions including SHACK.&quot; },
  { term: &quot;On-die Root of Trust (RoT)&quot;, definition: &quot;A hardware Root of Trust integrated as an IP block on the same silicon die as the application processor, with no off-package bus between the CPU and the RoT. Eliminates the bus-sniffing attack surface that defeats discrete TPMs.&quot; },
  { term: &quot;SHACK (Secure Hardware Cryptography Key)&quot;, definition: &quot;Pluton property named in the November 17, 2020 announcement: keys are &apos;never exposed outside of the protected hardware, even to the Pluton firmware itself.&apos; Extends the TCG TPM 2.0 non-exportability boundary inward by one ring.&quot; },
  { term: &quot;Soft-fuse Pluton disable (PSP directory 0xB BIT36)&quot;, definition: &quot;On AMD Ryzen 6000+ platforms, an OEM-controlled bit in the PSP directory that instructs the PSP to silence Pluton without a hardware power-down. Inventory queries that report &apos;Pluton present&apos; may not distinguish enabled from soft-disabled.&quot; },
  { term: &quot;Single-signer revocation impossibility&quot;, definition: &quot;If an on-die RoT firmware can only be authenticated by a single signer S, the chip&apos;s trust anchor cannot be retired without bricking the chip&apos;s firmware-update path, regardless of whether S is compromised, coerced, or jurisdictionally constrained. A key-management impossibility, not a cryptographic one.&quot; },
  { term: &quot;Caliptra&quot;, definition: &quot;Open-source datacenter-class on-die Root of Trust IP, hosted at CHIPS Alliance and co-contributed by Microsoft, Google, AMD, and NVIDIA. Reached 1.0 in April 2024. Multi-vendor by deployment; single-signer per chip.&quot; },
  { term: &quot;OpenTitan&quot;, definition: &quot;Open-source silicon Root of Trust descendant of Google Titan M; commercially available February 13, 2024 with nine coalition members hosted by lowRISC. RISC-V Ibex core with hardware AES, HMAC, KMAC, and OTBN engines.&quot; },
  { term: &quot;SPDM 1.3&quot;, definition: &quot;DMTF DSP0274 wire protocol for component attestation. Caliptra 2.0 commits to it on the server side; the PC-client equivalent is not yet shipping.&quot; },
  { term: &quot;Tock OS&quot;, definition: &quot;Memory-safe Rust embedded operating system for Cortex-M and RISC-V platforms. The most mature publicly reviewed Rust embedded RTOS; whether it is the actual runtime on Pluton-on-PC is not on the public record.&quot; },
  { term: &quot;Seven Properties of Highly Secure Devices&quot;, definition: &quot;Hunt, Letey, Nightingale 2017 framework (MSR-TR-2017-16): hardware-based root of trust, small TCB, defense in depth, compartmentalisation, certificate-based authentication, renewable security via online updates, and failure reporting. Property #6 is the property that distinguishes Pluton-on-PC from a 2014 dTPM.&quot; }
]} /&amp;gt;&lt;/p&gt;
</content:encoded><category>pluton</category><category>tpm</category><category>windows-security</category><category>hardware-security</category><category>caliptra</category><category>on-die-rot</category><category>firmware-security</category><author>noreply@paragmali.com (Parag Mali)</author></item></channel></rss>