{"id":7782,"date":"2025-11-29T05:51:22","date_gmt":"2025-11-29T04:51:22","guid":{"rendered":"https:\/\/web-dev-weissblau.de\/microconsult\/?p=7782"},"modified":"2026-02-13T16:29:06","modified_gmt":"2026-02-13T15:29:06","slug":"tpm-2-0-policies-in-practice","status":"publish","type":"post","link":"https:\/\/www.microconsult.de\/en\/tpm-2-0-policies-in-der-praxis\/","title":{"rendered":"TPM 2.0 Policies in Practice"},"content":{"rendered":"<h2>Einfach zum sicheren Rechtemanagement f\u00fcr Embedded Systems<\/h2>\n<p style=\"text-align: left;\" align=\"center\">Autor: Markus Wamser, Mixed Mode GmbH<\/p>\n<h3>Beitrag &#8211; Embedded Software Engineering Kongress 2018<\/h3>\n<p><strong>Trusted Platform Modules (TPMs) sind seit vielen Jahren fest am Markt etabliert. Mittlerweile haben Module nach der aktuellen Version 2.0 des Standards \u00e4ltere Module weitgehend abgel\u00f6st. Dennoch bleiben viele der Neuerungen und Funktionen dieser Module ungenutzt. Ein prominentes Beispiel ist das Konzept der Extended Authorization Policies. Damit sind nicht nur sichere und vertrauensw\u00fcrdige Boot- und Update-Konzepte m\u00f6glich. Mit wenig Aufwand l\u00e4sst sich auch ein Konzept zum Rechte- bzw. Lizenzmanagement umsetzen, zum Beispiel in einem Fahrzeug.<\/strong><\/p>\n<p>Im Alltag verbinden viele den Begriff Digitales Rechtemanagement (DRM) mit dem Kauf und Konsum von Mediendateien. Tats\u00e4chlich macht Videostreaming mehr als die H\u00e4lfte des gesamten Internetverkehrs aus [1], davon ist ein Gro\u00dfteil per DRM gesch\u00fctzt. Im Embedded-Umfeld sind die Einsatzm\u00f6glichkeiten f\u00fcr ein Rechte- und Lizenzmanagement aber weit vielf\u00e4ltiger. So lassen sich Nutzungsrechte f\u00fcr einzelne Softwarefunktionen kryptographisch sicher an eine Autorisierung binden. Diese Autorisierungen wiederum k\u00f6nnen mit einem TPM 2.0 Modul flexibel und nahezu beliebig komplex gestaltet werden. Gleichzeitig ist aber die Implementierung im eingebetteten System kosteng\u00fcnstig realisierbar, da lediglich ein TPM 2.0 Modul als hardwarebasierter Vertrauensanker vorhanden sein muss.<\/p>\n<p>Dieser Zugewinn an Flexibilit\u00e4t und Sicherheit entstammt wesentlich dem Konzept der Extended Authorization und darauf aufbauender Policies, das beim \u00dcbergang zu Version 2.0 Einzug in den TPM-Standard gefunden hat.<\/p>\n<h2>TPM 2.0: Motivation und \u00c4nderungen zu TPM 1.2<\/h2>\n<p>Trusted Platform Modules (TPMs) wurden aus der Not geboren, einen m\u00f6glichst g\u00fcnstigen, aber dennoch sicheren Vertrauensanker in Ger\u00e4ten zu haben. Einfache, auf eine Hauptplatine aufl\u00f6tbare Chips, die grundlegende Funktionen zur Generierung und zur sicheren Aufbewahrung von kryptographischem Schl\u00fcsselmaterial boten, fanden kurz nach der Jahrtausendwende zum ersten Mal weite Verbreitung. Inkompatibilit\u00e4ten im Detail verhinderten aber eine tats\u00e4chliche intensivere Verwendung, mit Ausnahme einzelner gro\u00dfer Unternehmen mit homogenen Umgebungen. Ein Wendepunkt war die Verabschiedung der Version\u00a01.2 des TPM-Standards durch die Trusted Computing Group (TCG) im Jahr 2009. Sie brachte neben Verbesserungen am Sicherheitskonzept vor allem eine weitgehende Harmonisierung von Schnittstellen und Funktionen. Trotz des kleinen Versionssprunges war dies ein Meilenstein f\u00fcr die Akzeptanz und Verwendung von TPMs. Eines des prominentesten Anwendungsszenarien \u2013 TPM-gest\u00fctzte Festplattenverschl\u00fcsselung \u2013 wurde fester Bestandteil von Betriebssystemen und kann seither ohne weitere Software oder aufw\u00e4ndige Konfiguration genutzt werden.<\/p>\n<p>Die intensivere Nutzung von TPMs offenbarte aber auch Schw\u00e4chen dieser Version: Der Standard war \u00fcber mehrere Versionen entsprechend der W\u00fcnsche von Anwendern gewachsen, behielt aber stets eine Abw\u00e4rtskompatibilit\u00e4t. Dadurch war er komplex und schwer lesbar geworden, was die Entwicklung weitere Einsatzszenarien hemmte. Ebenso wirkte sich das Fehlen weiterer Funktionen hemmend aus. Als gr\u00f6\u00dfter Mangel offenbarte sich schlie\u00dflich die enge Festlegung auf bestimmte (wenige) kryptographische Verfahren. Sollte sich auch nur eines dieser Verfahren als schwach oder unsicher erweisen, so gab es keine M\u00f6glichkeit auf Alternativen auszuweichen. Dass diese Furcht nicht nur theoretischer Natur war, zeigte sich noch w\u00e4hrend der Entwicklung der Version 2.0. Erste praktikable Angriffe auf SHA-1, das in Version 1.2 festgeschriebene Hashverfahren, zeichneten sich am Horizont ab.<\/p>\n<p>Die Entwicklung von Version 2.0 des Standards war deswegen von drei grundlegenden Gedanken gepr\u00e4gt:<\/p>\n<ul>\n<li>Der Standard sollte von Grund auf neu konzipiert und geschrieben werden, um die Lesbarkeit zu verbessern und Mehrdeutigkeiten oder Widerspr\u00fcche zu vermeiden.<\/li>\n<li>Im Standard sollten statt konkreter kryptographischer Primitiven nur Klassen von Primitiven definiert werden. Diese\u00a0<em>Agilit\u00e4t<\/em>\u00a0erm\u00f6glicht eine schnelle und effiziente Reaktion, falls neue Angriffe auf die verwendeten Algorithmen bekannt werden. Ebenso erh\u00f6ht es die Einsetzbarkeit von TPMs, etwa im staatlichen Umfeld, wo regional verschiedene Verschl\u00fcsselungsalgorithmen zum Einsatz kommen. Agilit\u00e4t in der Auswahl der kryptographischen Primitive war der prim\u00e4re Grund f\u00fcr Renovierung des Standards,<\/li>\n<li>Das Konzept von Administrator- und Benutzerrollen sollte stark \u00fcberarbeitet werden um mehr Einsatzszenarien zu erm\u00f6glichen. Gleichzeitig sollten alle mit einem TPM der Version\u00a01.2 realisierbaren Use Cases weiterhin darstellbar bleiben.<\/li>\n<\/ul>\n<p>Die pr\u00e4gendste \u00c4nderung war die Einf\u00fchrung symmetrische Kryptographie. Auf diese war in den 1.x-Versionen bewusst verzichtet worden, um einen Konflikt mit eventuellen Exportrestriktionen zu vermeiden. Flexibilit\u00e4t in der Auswahl von Kryptoverfahren und die Verwendung moderner Primitiven (etwa asymmetrischer Verfahren auf Basis von Elliptischen Kurven) machten die Einf\u00fchrung hybrider Verfahren und damit symmetrischer Primitiven notwendig. Zwischenzeitlich gelockerte Exportrestriktionen vereinfachten diese Entscheidung.<\/p>\n<p>Die zweite zentrale und nicht zu untersch\u00e4tzende \u00c4nderung war die Vereinheitlichung der verschiedenen Autorisierungsverfahren zur sogenannten\u00a0<em>Enhanced Authorization<\/em>. Diese Vereinheitlichung erweiterte das Spektrum an Einsatzm\u00f6glichkeiten, etwa im Sinne von Extended Authorization Policies, welche in diesem Artikel n\u00e4her beleuchtet werden. Gleichzeitig wurde der Implementierungsaufwand f\u00fcr Hersteller und Anwender von TPMs reduziert.<\/p>\n<p>Das Ziel der einfachen Lesbarkeit wurde schlie\u00dflich der Eindeutig untergeordnet. Im Gegenzug ist es m\u00f6glich aus der Spezifikation einen TPM\u00a02.0-Simulator zu erzeugen, dessen Verhalten letztendlich als autoritative Referenz herangezogen werden kann.<\/p>\n<p>In Erg\u00e4nzung zur Spezifikation\u00a0[2] entstand schlie\u00dflich\u00a0<em>A\u00a0Practical Guide to TPM\u00a02.0\u00a0<\/em>[3] als frei verf\u00fcgbares Buch um den Zugang zu Technologie und Spezifikation zu vereinfachen. Kapitel\u00a03 dieses Buchsnennt weitere, f\u00fcr diesen Artikel nicht relevante Neuerungen in TPM\u00a02.0, die im Wesentlichen der Benutzerfreundlichkeit dienen.<\/p>\n<h2>Extended Authorization Policies<\/h2>\n<h3>Grundlagen<\/h3>\n<p>Kern der \u00a0Extended Authorization Policies ist das Hash-extend-Verfahren um eine Art revisionssicheres Protokoll zu erzeugen. Allerdings werden nicht die zu protokollierenden Daten selbst gespeichert, sondern nur ein aktueller Statuswert. Durch das verwendete Hashverfahren ist sichergestellt, dass es praktisch unm\u00f6glich ist, einen zweites Protokoll zu erzeugen, das zu demselben Statuswert f\u00fchrt. Ebenso ist es nicht m\u00f6glich, bei vorgegebenem aktuellem Statuswert das Protokoll<em>\u00a0(beliebig)<\/em>\u00a0so fortzuschreiben, dass ein bestimmter Statuswert erreicht wird. Dies entspricht, salopp gesprochen, einer in das TPM integrierten Blockchain, wobei nur der jeweils aktuelle Block gespeichert wird. Genauer handelt es sich sogar nur um dessen Hashwert.<\/p>\n<p>Das Fortschreiben dieser Hash-Kette geschieht nun folgenderma\u00dfen: Ist im TPM ein Statuswert\u00a0<em>S<\/em>\u00a0hinterlegt und sollen die Daten\u00a0<em>D<\/em>\u00a0dort mit hinterlegt werden (die Spezifikation spricht hier davon, dass\u00a0<em>D<\/em>\u00a0<em>extended<\/em>\u00a0wird), so wird zuerst\u00a0<em>D<\/em>\u00a0an\u00a0<em>S<\/em>\u00a0angeh\u00e4ngt. Mit einer Hashfunktion\u00a0<em>hash<\/em>\u00a0wird dann ein neuer Statuswert\u00a0<em>S\u2018<\/em>\u00a0berechnet:<\/p>\n<p style=\"text-align: left;\" align=\"center\"><em>S\u2018<\/em>\u00a0\u2190\u00a0<em>hash<\/em>(<em>S<\/em>\u00a0||\u00a0<em>D<\/em>)<\/p>\n<p>Diese Statuswerte werden meist in sogenannten Platform Configuration Registers (PCRs) hinterlegt. Namensgebend war dabei der urspr\u00fcngliche und auch heute noch h\u00e4ufigste Einsatzzweck, n\u00e4mlich die Absicherung und Protokollierung des Bootvorganges (<em>Secure Boot<\/em>\u00a0resp.\u00a0<em>Trusted Boot<\/em>). Die PCRs eines TPMs lassen sich nicht direkt beschreiben. Ausgehend von einem wohldefinierten Anfangswert sind sie nur durch die\u00a0<em>extend<\/em>-Operation ver\u00e4nderbar. Damit ist ein Zur\u00fcckstellen auf einen vorherigen Wert oder das gezielte Schreiben eines Statuswertes praktisch unm\u00f6glich.<\/p>\n<p>Die\u00a0<em>extend<\/em>-Operation selbst ist auch ein zentraler Baustein der Extended Authorization Policies.<\/p>\n<h3>Konzept<\/h3>\n<p>Um einen st\u00f6rungsfreien und sicheren Betrieb zu gew\u00e4hrleisten, pr\u00fcft das TPM bei jedem erhaltenen Befehl, ob der Sender des Befehls auch zu dessen Ausf\u00fchrung, genauer zur Nutzung der im Befehl referenzierten Ressourcen (entities), berechtigt ist. Im einfachsten Fall geschieht dieser Nachweis \u00fcber die Eingabe eines Kennwortes oder das Verwenden eines mit dem TPM vereinbarten Sitzungsschl\u00fcssels.<\/p>\n<p><em>Extended Authorization Policies<\/em>, manchmal auch als\u00a0<em>Enhanced Authorization Policies<\/em>\u00a0und oft einfach kurz als\u00a0<em>Policies<\/em>\u00a0bezeichnet, stellen eine weitere und deutlich m\u00e4chtigere M\u00f6glichkeit dar, Rechte zu vergeben und zu pr\u00fcfen. Die einschl\u00e4gige Literatur wagt sogar die Behauptung: &#8222;Clever policy designs can allow virtually any restriction on key use that you can envision,[\u2026]&#8220; [3, p. 33] Dies nat\u00fcrlich mit der Einschr\u00e4nkung, dass der ben\u00f6tigte Implementierungsaufwand eine nat\u00fcrliche Schranke darstellt.<\/p>\n<p>Als einfaches Beispiel kann folgendes Szenario dienen: In einem Unternehmen werden die Schl\u00fcssel f\u00fcr die Kommunikation per eMail von TPMs verwaltet. Erh\u00e4lt ein Anwender eine verschl\u00fcsselte eMail, so kann er diese vom TPM nach Eingabe seiner Passphrase entschl\u00fcsseln lassen. Im Interesse des Unternehmens soll aber auch ein Zugriff auf die eMails ohne Kenntnis dieser Passphrase m\u00f6glich sein, etwa nach dem Ausscheiden des Mitarbeiters oder bei pl\u00f6tzlicher Erkrankung. F\u00fcr diesen Fall werden Passw\u00f6rter f\u00fcr Betriebsrat, Gesch\u00e4ftsf\u00fchrer und Administrator hinterlegt. Mittels einer Policy kann nun geregelt werden, dass der Zugriff auf das Schl\u00fcsselmaterial und damit auf die eMails ebenfalls m\u00f6glich ist, wenn mindestens zwei dieser drei Passw\u00f6rter korrekt eingegeben wurden. Damit sind sowohl die Interessen des Unternehmens als auch die Privatsph\u00e4re des Mitarbeiters gewahrt.<\/p>\n<h3>Funktionsweise<\/h3>\n<p>Policies attestieren einen bestimmten Systemzustand, eine bestimmte Eigenschaft oder ein bestimmtes Ereignis. Dies kann z.B. das Vorhandensein eines bestimmten Wertes oder Wertebereichs in einem PCR oder im nichtfl\u00fcchtigen Speicher des TPMs sein. Aber auch komplexere Bedingungen, wie ein bestimmter Wert in einem zweiten TPM, das in einem Fingerabduckleser verbaut ist.<\/p>\n<p>Der Zweck einer Policy ist dabei immer die Freigabe des Zugriffs aufs eine\u00a0<em>entity<\/em>\u00a0des TPMs, meist ein geheimer Schl\u00fcssel oder ein Bereich des nichtfl\u00fcchtigen Speichers. Eine Policy ist also ein Satz von Restriktionen, die den Zugriff beschr\u00e4nken.<\/p>\n<p>Zur \u00dcberpr\u00fcfung der Restriktionen wird ein spezielles\u00a0<em>policyDigest<\/em>-Register verwendet. Ist die Policy erf\u00fcllt, wird das\u00a0<em>policyDigest<\/em>-Register mittels\u00a0<em>extend<\/em>-Funktion und einem speziellen Fingerabdruck der Policy (und der Bedingung) aktualisiert. Die Freigabe der\u00a0<em>entity<\/em>\u00a0ist dann an einen bestimmten Wert des\u00a0<em>policyDigest<\/em>-Registers gebunden. Dieser Wert muss bei der Erzeugung der\u00a0<em>entity<\/em>\u00a0bekannt sein.<\/p>\n<p>Es sind dabei zwei Arten von Policies zu unterscheiden: Policies mit unmittelbarer (<em>immediate assertion<\/em>) \u00dcberpr\u00fcfung der Bedingungen und Policies mit zur\u00fcckgestellter (<em>deferred assertion<\/em>) \u00dcberpr\u00fcfung der Bedingungen. W\u00e4hrend erstere wie bereits beschrieben funktioniert, findet bei letzterer die \u00dcberpr\u00fcfung der Bedingungen bei Zugriff auf die durch die Policy gesch\u00fctzte\u00a0<em>entity<\/em>\u00a0statt. Das\u00a0<em>policyDigest<\/em>\u00a0wird aber bereits zum Zeitpunkt der Vormerkung mit einem speziellen Wert aktualisiert. Die \u00dcberpr\u00fcfung der Bedingungen unmittelbar beim Zugriff auf die\u00a0<em>entity<\/em>\u00a0wird dann durch das TPM sichergestellt.<\/p>\n<p>Policies mit zur\u00fcckgestellter \u00dcberpr\u00fcfung erm\u00f6glichen das Vorverarbeiten komplexer Policy-Kombinationen, die statische Bedingungen (z.B. bestimmte Hardwarekonfigurationen) und externe\/dynamische Ereignisse (z.B. bestimmte Zeitr\u00e4ume) koppeln. Das typischste Beispiel ist aber die einfache Autorisierung per Passwort. Hierbei flie\u00dft in den\u00a0<em>policyDigest<\/em>\u00a0lediglich ein, dass eine solche Autorisierung beim Zugriff auf die entsprechende entity zu pr\u00fcfen ist, nicht das Passwort selbst. (Das TPM stellt die \u00dcberpr\u00fcfung beim tats\u00e4chlichen Zugriff sicher.)<\/p>\n<p>Generell ist es m\u00f6glich, den Referenz-<em>policyDigest<\/em>\u00a0offline, d.h. ohne TPM und rein in Software zu berechnen, da nie Geheimnisse in diesen Wert einflie\u00dfen. In der Praxis verwendet man aber meist eine sogenannten\u00a0<em>trial policy session<\/em>. Dabei werden die Policies auf dem TPM in gleicher Weise wie bei der \u00dcberpr\u00fcfung angewandt, allerdings wird stets die Erf\u00fcllung der Policy angenommen. Am Ende kann der ben\u00f6tigte\u00a0<em>policyDigest-Wert<\/em>\u00a0ausgelesen oder direkt zur Erzeugung einer entity verwendet werden.<\/p>\n<h2>Hierarchien<\/h2>\n<p>Die logische und-Verkn\u00fcpfung mehrerer Policies ergibt sich trivial: Die Policies m\u00fcssen lediglich nacheinander abgepr\u00fcft werden. Wichtig ist hierbei die Einhaltung der Reihenfolge. Der TPM\u00a02.0-Standard erm\u00f6glicht aber auch die Verbindung von Policies mit einer (nicht-)exklusiven oder- Verkn\u00fcpfung.<\/p>\n<p>Dadurch lassen sich komplexe Hierarchien in Form von Policy-B\u00e4umen erzeugen. Noch mehr Flexibilit\u00e4t ergibt sich durch die Verwendung von digitalen Signaturen. Innerhalb einer Policy-Hierarchie l\u00e4sst sich die Bedingung &#8222;Policy A ist erf\u00fcllt&#8220; ersetzen durch &#8222;Policy X ist erf\u00fcllt und es liegt eine g\u00fcltige Signatur f\u00fcr Policy X vor.&#8220; Damit lassen sich Policies dynamisch austauschen oder erg\u00e4nzen, insbesondere wenn die konkreten Werte zur Erf\u00fcllung von Policy X bei der Erstellung der Hierarchie noch nicht bekannt sind.<\/p>\n<p>Was in der theoretischen Beschreibung noch kompliziert klingt, wird schnell klar wenn ein tats\u00e4chlich implementiertes Beispiel betrachtet wird.<\/p>\n<h2>Beispiel: Rechte-Management<\/h2>\n<p>Zur Veranschaulichung der Konzepte sei nun folgendes Szenario gegeben: F\u00fcr ein Fahrzeug (etwa einen Mietwagen), sollen verschiedene Benutzerrollen (Gruppen von Fahrern) definiert werden. Neben dem normalen Fahrer, der das Analogon eines Schl\u00fcssels besitzt, soll es eine alternative M\u00f6glichkeit zur Autorisierung f\u00fcr einen Hotelportier geben. Dieser darf das Fahrzeug zum Parken nur mit reduzierter Geschwindigkeit bewegen. Die dritte Rolle bildet einen Servicetechniker ab, der Zugriff auf erweiterte Funktonalit\u00e4t hat, sich daf\u00fcr aber mittels Zweifaktor-Authentifizierung legitimieren muss. Unabh\u00e4ngig von der Rolle soll die gesamte Policy an ein Fahrzeugmerkmal gebunden sein. Dazu wird im nichtfl\u00fcchtigen Speicher des TPMs das Kennzeichen oder die Fahrgestellnummern hinterlegt.<\/p>\n<h2>Policy-Hierarchie<\/h2>\n<p>Aus diesen Anforderungen ergibt sich initial die in Abbildung 1 (siehe\u00a0<a title=\"Fachinfo_ESE_tpm2.0_mixed-mode_wamser\" href=\"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/12\/fachinfo_ese_du-kommst-hier-net-rein_verifysoft_poehler.pdf\" target=\"_blank\" rel=\"noopener\">PDF<\/a>) dargestellte Policy-Hierarchie. Die KFZ-ID wird bei der Provisionierung des Systems im nichtfl\u00fcchtigen Speicher des TPMs hinterlegt. Sei f\u00fcr den Moment angenommen, alle darunterliegenden Policies seien erf\u00fcllt, wird \u00fcber das SAPI-Kommando\u00a0<em>TPM_PolicyNV<\/em>\u00a0gepr\u00fcft ob der angegebene Bereich im NV-RAM des TPMs den gew\u00fcnschten Wert enth\u00e4lt.<\/p>\n<p>Die darunterliegende ODER-Verkn\u00fcpfung kann mit dem Kommando\u00a0<em>TPM2_PolicyOR<\/em>\u00a0realisiert werden. Hierbei pr\u00fcft das TPM ob der aktuelle\u00a0<em>policyDigest<\/em>\u00a0einem der in der Policy hinterlegten Werte entspricht. (Im Standard ist die Zahl der m\u00f6glichen Werte auf acht begrenzt. Es lassen sich aber beliebig viele\u00a0<em>TPM2_PolicyOR<\/em>-Bedingungen verketten.) Ist die Policy erf\u00fcllt, d.h. der aktuelle\u00a0<em>policyDigest<\/em>\u00a0entspricht einem g\u00fcltigen Wert, wird die Policy\u00a0<em>konvertiert<\/em>: Es wird ein Hashwert \u00fcber die Policy berechnet und dieser in (einen frischen)\u00a0<em>policyDigest<\/em>\u00a0erweitert. Damit ergibt sich stets der gleiche Folgewert f\u00fcr den\u00a0<em>policyDigest<\/em>, unabh\u00e4ngig davon welche Teilbedingung erf\u00fcllt ist.<\/p>\n<p>Die unterste Ebene der Hierarchie kann beispielsweise durch sequentielles Ausf\u00fchren von\u00a0<em>TPM_PolicyNV<\/em>\u00a0und<em>\u00a0TPM2_PolicyAuthValue<\/em>\u00a0realisiert werden.<\/p>\n<p>F\u00fcr den praktischen Einsatz erweist sich diese Hierarchie aber als noch nicht ausreichend flexibel, denn jede Rolle ist starr mit einer einzigen ID verkn\u00fcpft. Dar\u00fcber hinaus sind alternative Methoden zur Authentifizierung noch nicht explizit abgebildet.<\/p>\n<p>Die L\u00f6sung findet sich in Konzept der Wildcard-Policies. Konkret wird in der initialen Hierarchie jede Benutzer-ID durch eine solche Wildcard-Policy ersetzt. Mittels\u00a0<em>TPM2_PolicyAuthorize<\/em>\u00a0wird ein (Fingerabruck) des \u00f6ffentlichen Teils eines asymmetrischen Schl\u00fcsselpaares in den\u00a0<em>policyDigest\u00a0<\/em>erweitert. An dieser Stelle kann nun jede Policy eingesetzt werden, zu derem abschlie\u00dfenden Wert eine g\u00fcltige Signatur mit diesem Schl\u00fcsselpaar vorliegt. Die \u00dcberpr\u00fcfung der Policy-Hierarchie erfolgt dann in zwei Schritten, zuerst wird die Signatur durch das TPM \u00fcberpr\u00fcft. Das TPM erzeugt daraufhin ein Ticket mit dem es sich selbst gegen\u00fcber die erfolgreiche Signaturpr\u00fcfung attestiert. Damit wird, bildlich gesprochen, die konkrete Policy anstelle der Wildcard-Policy in die Policy-Hierarchie eingeh\u00e4ngt. Schlussendlich ergibt sich die Hierarchie aus Abbildung 2 (siehe\u00a0<a title=\"Fachinfo_ESE_tpm2.0_mixed-mode_wamser\" href=\"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/11\/fachinfo_ese_tpm2.0_mixed-mode_wamser.pdf\" target=\"_blank\" rel=\"noopener\">PDF<\/a>). Jede der dort gestrichelt markierten Sub-Hierarchien kann mehrfach existieren. Damit k\u00f6nnen dynamisch Benutzer-IDs f\u00fcr die verschiedenen Rollen aktiviert und deaktiviert werden.<\/p>\n<h2>Umsetzung<\/h2>\n<p>Die Erzeugung und \u00dcberpr\u00fcfung der vorgestellten Policy-Hierarchie wurde bei MixedMode sowohl mit Skripten auf einem RaspberryPi, als auch f\u00fcr die hauseigene M2Control Demonstratorplattform als QT-App umgesetzt. Als TPM-Modul kam dabei in beiden F\u00e4llen ein Infineon SLB 9670-Baustein zum Einsatz, der per SPI angebunden wurde.<\/p>\n<p>Die Policies werden durch die Demo direkt per\u00a0<em>trial-session<\/em>\u00a0auf dem TPM generiert (Abbildung 3, siehe\u00a0<a title=\"Fachinfo_ESE_tpm2.0_mixed-mode_wamser\" href=\"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/12\/fachinfo_ese_du-kommst-hier-net-rein_verifysoft_poehler.pdf\" target=\"_blank\" rel=\"noopener\">PDF<\/a>), das Schl\u00fcsselpaar f\u00fcr die Wildcard-Policies wird mit OpenSSL erzeugt. \u00dcber die QT-Oberfl\u00e4che lassen sich schlie\u00dflich User-IDs registrieren und Authentifizierungen durchf\u00fchren.<\/p>\n<h2>Ausblick: Weitere Einsatzszenarien<\/h2>\n<p>Das vorgestellte Beispiel l\u00e4sst sich leicht auf ein allgemeineres Rechtemanagement \u00fcbertragen. Dies kann f\u00fcr ein reines Software-Lizenzmanagement (Freigabe von Funktionalit\u00e4ten on-demand und im pay-per-use-Modell) bis zu einem integrierten Produktionsmanagement (Lizensierung von Produktionsdaten, Limitierung produzierter Einheiten, Echtheitszertifizierung etc.) ausgebaut werden, da Policies auch einfache numerische Vergleichsoperationen und \u00fcber das TPM realisierte irreversible Z\u00e4hler umfassen k\u00f6nnen.<\/p>\n<p>Extended Authorizations erm\u00f6glichen auch, Policies zu zertifizieren. Damit l\u00e4sst sich etwa das Vertrauen in Signaturschl\u00fcssel erh\u00f6hen, da das TPM zus\u00e4tzlich zur Signatur auch einen kryptographischen Nachweis dar\u00fcber liefern kann, welche Form der Zugriffskontrolle auf den Signaturschl\u00fcssel realisiert ist.<\/p>\n<p>Schlussendlich erm\u00f6glichen Wildcard-Policies ein sicheres Systemupdate. Sie liefern die ben\u00f6tigte Indirektion um eine\u00a0<em>TPM_PolicyPCR<\/em>\u00a0ohne tempor\u00e4ren Bruch der Vertrauenskette zu aktualisieren. Ein auf diese Weise realisiertes SecureBoot\/TrustedBoot-Konzept kann dann sogar mit der vorgestellten L\u00f6sung kombiniert werden.<\/p>\n<h2>Zusammenfassung<\/h2>\n<p>Mit der Einf\u00fchrung von Policies wurde ein m\u00e4chtiges Werkzeug geschaffen, um komplexe und gleichzeitig flexible Rechtemanagement-Architekturen auf Basis von TPM 2.0 Modulen zu realisieren.<\/p>\n<p>Die weite Verbreitung der Module und standardisierte Programmierschnittstellen erlauben eine schnelle, sichere und nachhaltige Umsetzung eines Rechtemanagements in verschiedensten Einsatzszenarien.<\/p>\n<p>Die Verkn\u00fcpfung verschiedener Arten von Teil-Policies zu einer komplexen Policy wurde am Beispiel des Mixed Mode M2Control Embedded Demonstrators aufgezeigt. Hier wurden an einem (fiktiven) Fahrzeug Funktionalit\u00e4t auf Basis von Benutzerrollen freigegeben. Die Authentifizierung der einzelnen Benutzer war dabei f\u00fcr jede f\u00fcr jede Rolle individuell gestaltet.<\/p>\n<h2>Literatur- und Quellenverzeichnis<\/h2>\n<table border=\"0\" cellspacing=\"3\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td valign=\"top\" width=\"1%\">[1]<\/td>\n<td valign=\"top\">O. B\u00fcnte, &#8222;heise online&#8220;\u201c 05 10 2018. [Online]. Available: https:\/\/heise.de\/-4181988. [Zugriff am 12 10 2018].<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"1%\">[2]<\/td>\n<td valign=\"top\">Trusted Computing Group, TPM Library Specification 2.0, 1. Oktober 2014.<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"1%\">[3]<\/td>\n<td valign=\"top\">W. Arthur, D. Challener und K. Goldman, A Practical Guide to TPM 2.0, Apress, 2015.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Danksagung<\/h3>\n<p>Ein gro\u00dfer Dank geb\u00fchrt Benedikt Petschkuhn, der das Praxisbeispiel entworfen und initial f\u00fcr den Raspberry Pi implementiert hat.<\/p>\n<h2>Autor<\/h2>\n<p>Markus Wamser arbeitet als Systementwickler und Consultant mit dem Schwerpunkt Embedded Security bei Mixed Mode in Gr\u00e4felfing bei M\u00fcnchen. Zuvor hat er den Lehrstuhl f\u00fcr Sicherheit in der Informationstechnik an der Technischen Universit\u00e4t M\u00fcnchen von seiner Gr\u00fcndung an als Mitarbeiter begleitet. Markus Wamser war Vortragender auf internationalen Konferenzen von Abu Dhabi bis Verona, hat mehr als zehn Jahre Erfahrung in der universit\u00e4ren Lehre und besitzt je ein Diplom in Mathematik und Informatik.<\/p>\n<p><a title=\"Fachinfo_ESE_du-kommst-hier-net-rein_verifysoft_poehler\" href=\"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/12\/fachinfo_ese_du-kommst-hier-net-rein_verifysoft_poehler.pdf\" target=\"_blank\" rel=\"noopener\"><strong>Beitrag als PDF downloaden<\/strong><\/a><\/p>\n<hr \/>\n<h2>Unsere Trainings &amp; Coachings<\/h2>\n<p><strong>Wollen Sie sich auf den aktuellen Stand der Technik bringen?<\/strong><\/p>\n<p>Dann informieren Sie sich\u00a0<a title=\"MicroConsult Trainings: Qualit\u00e4t, Safety, Security\" href=\"https:\/\/www.microconsult.de\/alle-trainings-termine-komplettuebersicht\/\" target=\"_blank\" rel=\"noopener\"><strong>hier<\/strong>\u00a0<\/a>zu Schulungen\/ Seminaren\/ Trainings\/ Workshops und individuellen Coachings von MircoConsult zum Thema\u00a0<strong>Qualit\u00e4t, Safety &amp; Security<\/strong>.<\/p>\n<p><strong>Training &amp; Coaching zu den weiteren Themen unseren Portfolios finden Sie <a title=\"Training &amp; Beratung - alle Themen\" href=\"https:\/\/www.microconsult.de\/training-beratung\/\" target=\"_blank\" rel=\"noopener\">hier<\/a>.<\/strong><\/p>\n<hr \/>\n<h2>Qualit\u00e4t, Safety &amp; Security &#8211; Fachwissen<\/h2>\n<p>Wertvolles Fachwissen zum Thema Qualit\u00e4t, Safety &amp; Security steht\u00a0<a title=\"Qualit\u00e4t und Sicherheit\" href=\"https:\/\/www.microconsult.de\/qualitaet-und-sicherheit\/\" target=\"_blank\" rel=\"noopener\">hier\u00a0<\/a>f\u00fcr Sie zum kostenfreien Download bereit.<\/p>\n<p><a title=\"Qualit\u00e4t und Sicherheit\" href=\"https:\/\/www.microconsult.de\/qualitaet-und-sicherheit\/\" target=\"_blank\" rel=\"noopener\"><strong>Zu den Fachinformationen<\/strong><\/a><\/p>\n<p><strong>Fachwissen zu weiteren Themen unseren Portfolios finden Sie <a title=\"Fachinformationen\" href=\"https:\/\/www.microconsult.de\/fachwissen\/\" target=\"_blank\" rel=\"noopener\">hier<\/a>.<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Einfach zum sicheren Rechtemanagement f\u00fcr Embedded Systems Autor: Markus Wamser, Mixed Mode GmbH Beitrag &#8211; Embedded Software Engineering Kongress 2018 Trusted Platform Modules (TPMs) sind seit vielen Jahren fest am Markt etabliert. Mittlerweile haben Module nach der aktuellen Version 2.0 des Standards \u00e4ltere Module weitgehend abgel\u00f6st. Dennoch bleiben viele der Neuerungen und Funktionen dieser Module [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","inline_featured_image":false,"footnotes":""},"categories":[],"tags":[],"class_list":["post-7782","post","type-post","status-publish","format-standard","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>TPM 2.0 Policies in der Praxis - MicroConsult Academy GmbH<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.microconsult.de\/en\/tpm-2-0-policies-in-practice\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"TPM 2.0 Policies in der Praxis - MicroConsult Academy GmbH\" \/>\n<meta property=\"og:description\" content=\"Einfach zum sicheren Rechtemanagement f\u00fcr Embedded Systems Autor: Markus Wamser, Mixed Mode GmbH Beitrag &#8211; Embedded Software Engineering Kongress 2018 Trusted Platform Modules (TPMs) sind seit vielen Jahren fest am Markt etabliert. Mittlerweile haben Module nach der aktuellen Version 2.0 des Standards \u00e4ltere Module weitgehend abgel\u00f6st. Dennoch bleiben viele der Neuerungen und Funktionen dieser Module [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.microconsult.de\/en\/tpm-2-0-policies-in-practice\/\" \/>\n<meta property=\"og:site_name\" content=\"MicroConsult Academy GmbH\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-29T04:51:22+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-13T15:29:06+00:00\" \/>\n<meta name=\"author\" content=\"weissblau media\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"weissblau media\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"16 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/tpm-2-0-policies-in-der-praxis\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/tpm-2-0-policies-in-der-praxis\\\/\"},\"author\":{\"name\":\"weissblau media\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#\\\/schema\\\/person\\\/b6d4c4ae959b068fbe8d9416ed019a0a\"},\"headline\":\"TPM 2.0 Policies in der Praxis\",\"datePublished\":\"2025-11-29T04:51:22+00:00\",\"dateModified\":\"2026-02-13T15:29:06+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/tpm-2-0-policies-in-der-praxis\\\/\"},\"wordCount\":2950,\"commentCount\":0,\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.microconsult.de\\\/tpm-2-0-policies-in-der-praxis\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/tpm-2-0-policies-in-der-praxis\\\/\",\"url\":\"https:\\\/\\\/www.microconsult.de\\\/tpm-2-0-policies-in-der-praxis\\\/\",\"name\":\"TPM 2.0 Policies in der Praxis - MicroConsult Academy GmbH\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#website\"},\"datePublished\":\"2025-11-29T04:51:22+00:00\",\"dateModified\":\"2026-02-13T15:29:06+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#\\\/schema\\\/person\\\/b6d4c4ae959b068fbe8d9416ed019a0a\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/tpm-2-0-policies-in-der-praxis\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.microconsult.de\\\/tpm-2-0-policies-in-der-praxis\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/tpm-2-0-policies-in-der-praxis\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.microconsult.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"TPM 2.0 Policies in der Praxis\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#website\",\"url\":\"https:\\\/\\\/www.microconsult.de\\\/\",\"name\":\"MicroConsult Academy GmbH\",\"description\":\"Professionelle Schulungen, Beratung und Projektunterst\u00fctzung\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.microconsult.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#\\\/schema\\\/person\\\/b6d4c4ae959b068fbe8d9416ed019a0a\",\"name\":\"weissblau media\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bbb409da4970da9446f6c49465d453cb8a0dae301e4d4f465b5c4e62408daa2e?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bbb409da4970da9446f6c49465d453cb8a0dae301e4d4f465b5c4e62408daa2e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bbb409da4970da9446f6c49465d453cb8a0dae301e4d4f465b5c4e62408daa2e?s=96&d=mm&r=g\",\"caption\":\"weissblau media\"},\"sameAs\":[\"https:\\\/\\\/www.microconsult.de\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"TPM 2.0 Policies in Practice - MicroConsult Academy GmbH","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.microconsult.de\/en\/tpm-2-0-policies-in-practice\/","og_locale":"en_GB","og_type":"article","og_title":"TPM 2.0 Policies in der Praxis - MicroConsult Academy GmbH","og_description":"Einfach zum sicheren Rechtemanagement f\u00fcr Embedded Systems Autor: Markus Wamser, Mixed Mode GmbH Beitrag &#8211; Embedded Software Engineering Kongress 2018 Trusted Platform Modules (TPMs) sind seit vielen Jahren fest am Markt etabliert. Mittlerweile haben Module nach der aktuellen Version 2.0 des Standards \u00e4ltere Module weitgehend abgel\u00f6st. Dennoch bleiben viele der Neuerungen und Funktionen dieser Module [&hellip;]","og_url":"https:\/\/www.microconsult.de\/en\/tpm-2-0-policies-in-practice\/","og_site_name":"MicroConsult Academy GmbH","article_published_time":"2025-11-29T04:51:22+00:00","article_modified_time":"2026-02-13T15:29:06+00:00","author":"weissblau media","twitter_card":"summary_large_image","twitter_misc":{"Written by":"weissblau media","Estimated reading time":"16 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.microconsult.de\/tpm-2-0-policies-in-der-praxis\/#article","isPartOf":{"@id":"https:\/\/www.microconsult.de\/tpm-2-0-policies-in-der-praxis\/"},"author":{"name":"weissblau media","@id":"https:\/\/www.microconsult.de\/#\/schema\/person\/b6d4c4ae959b068fbe8d9416ed019a0a"},"headline":"TPM 2.0 Policies in der Praxis","datePublished":"2025-11-29T04:51:22+00:00","dateModified":"2026-02-13T15:29:06+00:00","mainEntityOfPage":{"@id":"https:\/\/www.microconsult.de\/tpm-2-0-policies-in-der-praxis\/"},"wordCount":2950,"commentCount":0,"inLanguage":"en-GB","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.microconsult.de\/tpm-2-0-policies-in-der-praxis\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.microconsult.de\/tpm-2-0-policies-in-der-praxis\/","url":"https:\/\/www.microconsult.de\/tpm-2-0-policies-in-der-praxis\/","name":"TPM 2.0 Policies in Practice - MicroConsult Academy GmbH","isPartOf":{"@id":"https:\/\/www.microconsult.de\/#website"},"datePublished":"2025-11-29T04:51:22+00:00","dateModified":"2026-02-13T15:29:06+00:00","author":{"@id":"https:\/\/www.microconsult.de\/#\/schema\/person\/b6d4c4ae959b068fbe8d9416ed019a0a"},"breadcrumb":{"@id":"https:\/\/www.microconsult.de\/tpm-2-0-policies-in-der-praxis\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.microconsult.de\/tpm-2-0-policies-in-der-praxis\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.microconsult.de\/tpm-2-0-policies-in-der-praxis\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.microconsult.de\/"},{"@type":"ListItem","position":2,"name":"TPM 2.0 Policies in der Praxis"}]},{"@type":"WebSite","@id":"https:\/\/www.microconsult.de\/#website","url":"https:\/\/www.microconsult.de\/","name":"MicroConsult Academy GmbH","description":"Professional training, consulting and project support","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.microconsult.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Person","@id":"https:\/\/www.microconsult.de\/#\/schema\/person\/b6d4c4ae959b068fbe8d9416ed019a0a","name":"weissblau media","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/secure.gravatar.com\/avatar\/bbb409da4970da9446f6c49465d453cb8a0dae301e4d4f465b5c4e62408daa2e?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/bbb409da4970da9446f6c49465d453cb8a0dae301e4d4f465b5c4e62408daa2e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/bbb409da4970da9446f6c49465d453cb8a0dae301e4d4f465b5c4e62408daa2e?s=96&d=mm&r=g","caption":"weissblau media"},"sameAs":["https:\/\/www.microconsult.de"]}]}},"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/posts\/7782","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/comments?post=7782"}],"version-history":[{"count":7,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/posts\/7782\/revisions"}],"predecessor-version":[{"id":11774,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/posts\/7782\/revisions\/11774"}],"wp:attachment":[{"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/media?parent=7782"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/categories?post=7782"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/tags?post=7782"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}