Trotz aller zu Recht (z.B. von
@hikaru) vorgebrachten Einwände gegen TPM gibt es durchaus nachdenkenswerte Einsatzszenarien für TPMs (die Rede ist im folgenden von TPM 2.0).
Einer der großen Vorteile einer solchen Security-Enklave ist, dass in ihr Inhalte gespeichert werden können, die man so nicht wieder auslesen kann.
Ein solches Einsatzszenario möchte ich im folgenden kurz beschreiben, weil es im Alltag wirklich einen signifikanten Sicherheitsgewinn bringen kann: Es geht um tpm2d ("daemon to physically bind keys to the local machine"), eingeführt von gnupg in Version 2.3 im April 2021 (
https://lists.gnupg.org/pipermail/gnupg-announce/2021q2/000458.html).
Ein großes Problem beim Einsatz von GPG war (und ist): wohin mit den privaten Schlüsseln? Selbst wenn diese in einem kryptographisch gut abgesicherten Container auf der Festplatte liegen: unter ungünstigen Bedingungen können sie von einem Angreifer kopiert werden, und damit ist die eigene GPG-Infrastruktur "verbrannt". Wenn man, unwahrscheinlich genug, einen solchen Abgriff unmittelbar bemerkt – der Schaden ist da, und es ist stets mit großem Aufwand und einigem Ärger verbunden, GPG-Schlüssel zurückzuziehen und neue auszurollen.
Glücklicherweise gibt es sogenannte SmartCards (breiter bekannt sind z.B. Yubikey oder Nitrokey), auf denen man private Schlüssel so speichern kann, dass man zwar mit ihnen die gewünschten kryptographischen Operationen durchführen kann – der private Schlüssel aber NIE wieder von niemandem, auch von mir selbst nicht, wieder ausgelesen werden kann (weswegen es ratsam ist, eine offline-Sicherungskopie irgendwo an einem sicheren Ort abzulegen).
Der große Vorteil von SmartCards (vor allem jener mit USB-Schnittstelle) ist, dass man sie überallhin mitnehmen kann. Der große Nachteil von SmartCards ist, dass man sie überall leicht verlieren kann. Und: man kann nur eine sehr begrenzte Anzahl von GPG-Schlüsseln darauf speichern, in der Regel nur einen Hauptschlüssel und mehrere Unterschlüssel.
Mit dem tpm2d-Daemon lassen sich private GPG-Schlüssel nun auf einem vergleichbaren Sicherheitsniveau wie bei SmartCards auf jenem Rechner speichern, der das TPM auf dem Mainboard hat (und die Schlüssel selbst sind, wie bei SmartCards, auch hier nie wieder auslesbar – also auch hier ist eine offline-Sicherungskopie keine schlechte Idee ...).
Vorteil gegenüber SmartCards: Es können prinzipiell unbegrenzt viele Schlüssel auf dem TPM abgelegt werden (weil die Derivate der privaten Schlüssel während des Konvertierungsprozesses nicht im TPM, sondern auf dem Rechner abgelegt werden). Nachteil: die Schlüssel sind an exakt diesen einen Rechner gebunden und müssen auf jedem anderen Rechner (mit einem anderen TPM) neu erzeugt werden.
Wenn der Rechner weg ist, sind natürlich auch die privaten Schlüssel weg (wenngleich nicht auslesbar). Natürlich sind bei einem defekten Mainboard die Schlüssel dann ebenfalls weg. Ob das jetzt ein Vorteil ist gegenüber den USB-SmartCards (die kleiner und leichter verlierbar sind, aber eben auch nicht physikalisch an einen Rechner gebunden): das muss jeder/jede für sich entscheiden.
Schön dokumentiert ist das Ganze in folgendem Artikel:
https://gnupg.org/blog/20210315-using-tpm-with-gnupg-2.3.html
Dort wird auch ohne Umschweife angesprochen, was ein uneingeschränktes Vertrauen in TPMs noch schwierig macht:
"[…] that’s when we ask it for its public key and trust the result. This transaction could be made secure if we used the Manufacturer certificate to certify the public key, but such a transaction requires infrastructure that currently doesn’t exist in the average Linux distribution."
Und: "The TPM isn’t secure against every attack: in particular it’s not certified against physical intrusion meaning someone can theoretically slice the chip apart and extract the secret wrapping keys from the internal NVRam."
Aber wenn ich damit rechnen müsste, dass jemand den Aufwand betreibt, den TPM-Chip meines Rechners abzuschleifen, um an dessen kryptographisch gesicherte Inhalte zu kommen: dann müsste ich ohnehin darüber nachdenken, welche anderen organisatorischen Maßnahmen für mich vielleicht sinnvoller sind, als meine privaten GPG-Schlüssel in ein TPM zu hacken ...