Skip to content

Commit 1ded355

Browse files
committed
Correct Qubes TPM requirements
1 parent dd4941b commit 1ded355

1 file changed

Lines changed: 28 additions & 39 deletions

File tree

‎articles/qubes-os.html‎

Lines changed: 28 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ <h2 id="qubes-contents-heading">Contents</h2>
100100
</li>
101101

102102
<li class="toc-level-2">
103-
<a href="#qubes-7">TPM 1.2/2.0 requirements</a>
103+
<a href="#qubes-7">Anti Evil Maid and TPM 1.2 requirements</a>
104104
</li>
105105

106106
<li class="toc-level-2">
@@ -663,7 +663,7 @@ <h2 id="qubes-6">6 - Hardware support and compatibility problems</h2>
663663
when stable IOMMU, SLAT, and all Qubes OS features are required without
664664
workarounds. Having 100% compatibility with the Linux kernel in its
665665
latest version + Qubes OS in its latest version + IOMMU + SLAT + HVM (+
666-
TPM 2.0 if you want it) is a real Russian roulette.</p>
666+
TPM 1.2 and Intel TXT if you use AEM) is a real Russian roulette.</p>
667667

668668
<p><a href="https://www.qubes-os.org/hcl/">Qubes OS community hardware
669669
compatibility list (HCL)</a>
@@ -856,52 +856,41 @@ <h2 id="qubes-6">6 - Hardware support and compatibility problems</h2>
856856
</section>
857857

858858
<section aria-labelledby="qubes-7">
859-
<h2 id="qubes-7">7 - TPM 1.2/2.0 requirements</h2>
859+
<h2 id="qubes-7">7 - Anti Evil Maid and TPM 1.2 requirements</h2>
860860

861-
<p>Qubes OS needs TPM 1.2 support to implement the basics of AEM (Anti
862-
Evil Maid). Without it, the system is presented as highly vulnerable to
863-
physical attacks. My criticism is simple: a system praised as secure
864-
can become very weak once physical compromise enters the threat model,
865-
yet it "requires" more proprietary and vulnerable code to "protect"
866-
itself?</p>
861+
<p>Qubes OS itself does not require a TPM. Its optional Anti Evil Maid
862+
(AEM) package requires a TPM 1.2 interface and a working Intel TXT
863+
engine; it does not use TPM 2.0. Without AEM, Qubes OS remains
864+
vulnerable to physical attacks such as an Evil Maid attack.</p>
867865

868866
<p><a href=
869867
"https://doc.qubes-os.org/en/latest/user/security-in-qubes/anti-evil-maid.html">
870868
Anti Evil Maid (AEM) package</a>
871869
</p>
872870

873-
<p>But that is not the problem. The real problem is that TPM2 adds more
874-
code, firmware, and initrd complexity (tpm2-tss, stack integration,
875-
dracut/hooks, crypttab, signed UKIs and operational dependencies). That
876-
raises the boot-time attack surface and operational fragility.
877-
Misconfiguration can also break boot or weaken security. TPM2 relies on
878-
vendor (closed-source) firmware and tpm2-tss implementations. Firmware
879-
or vendor backdoors/bugs in TPM microcode are a single point of
880-
persistent compromise. If TPM firmware (or Intel PTT/ME interactions)
881-
is compromised (even remotely), TPM attestation/sealing can be
882-
subverted and used to hide persistent tampering from the user.</p>
883-
884-
<p>Many TPM vulnerabilities have already emerged and require more
885-
patches from vendors. If you don't have supported hardware, you will be
886-
out of date in security fixes (this happens sooner or later).</p>
871+
<p>But that is not a defense. AEM adds a dependency on TPM 1.2, Intel
872+
TXT, firmware, and a separate boot-time security workflow. That adds
873+
proprietary code, operational complexity, and more ways for
874+
misconfiguration to break boot or weaken security. Firmware or vendor
875+
bugs in the TPM or Intel TXT chain can become a persistent compromise
876+
point and can subvert the measurements AEM relies on.</p>
877+
878+
<p>Many TPM vulnerabilities have already emerged, which require more
879+
patches from vendors, and if you don't have supported hardware, you will
880+
be out of date in security fixes sooner or later.</p>
887881

888882
<p>The TPM acts more like a backdoor than anything else. TPM
889-
manufacturers/suppliers have a unique identification key (EK) that, if
890-
linked to an actual identity or shared with third parties, could allow
891-
device identification or correlation. These keys can be easily
892-
discovered through the operating system (especially Windows), and
893-
malware could use this to totally deanonymize a Qubes OS user in the
894-
future through the TPM unique ID, which consists of hardware
895-
identifiers. That is, if you did not buy your device in a 100%
896-
anonymous way, it's over. Not to mention all the other remote
897-
vulnerabilities involving TPM.</p>
898-
899-
<p>This could easily be mitigated if Qubes OS did not support TPM or
900-
most TPM-based features (like OpenBSD, whose TPM "Functionality is
901-
limited to instructing the device to save its state before a system
902-
suspend."), so it would be impossible to access such keys without
903-
physical access. And TPM 2.0 is even worse than 1.2: much more code and
904-
complexity (in other words, much more attack surface).</p>
883+
manufacturers and suppliers have a unique endorsement key (EK) that, if
884+
linked to an actual identity or shared with third parties, can allow
885+
device identification or correlation. A privileged attacker may be able
886+
to access TPM material through the operating system; this creates an
887+
additional privacy and persistence risk for a Qubes OS user.</p>
888+
889+
<p>Qubes OS could avoid this dependency by providing a physical-attack
890+
mitigation that does not require TPM or Intel TXT. Instead, AEM
891+
requires hardware and firmware that ordinary users cannot meaningfully
892+
audit. That is more code and complexity, and therefore more attack
893+
surface.</p>
905894

906895
<p>More on this topic from an authority in the field: <a href=
907896
"https://www.youtube.com/watch?v=t1eX_vvAlUc">Rob Braxman video: "Your

0 commit comments

Comments
 (0)