PCR-Banken auf TPM 2.0-Geräten

Schritte zum Wechseln von PCR-Banken auf TPM 2.0-Geräten auf Ihrem PC erhalten Sie bei Ihrem OEM- oder UEFI-Anbieter. Dieser Artikel enthält Hintergrundinformationen dazu, was geschieht, wenn Sie PCR-Banken auf TPM 2.0-Geräten wechseln.

Ein Plattformkonfigurationsregister (Platform Configuration Register, PCR) ist ein Speicherort im TPM, der über einige eindeutige Eigenschaften verfügt. Die Größe des Werts, der in einem PCR gespeichert werden kann, wird durch die Größe eines Digests bestimmt, der von einem zugeordneten Hashalgorithmus generiert wird. Ein SHA-1-PCR kann 20 Bytes speichern – die Größe eines SHA-1-Digests. Mehrere PCRs, die demselben Hashalgorithmus zugeordnet sind, werden als PCR-Bank bezeichnet.

Um einen neuen Wert in einem PCR zu speichern, wird der vorhandene Wert wie folgt mit einem neuen Wert erweitert: PCR[N] = HASHalg( PCR[N] || ArgumentOfExtend)

Der vorhandene Wert wird mit dem Argument des TPM-Erweiterungsvorgangs verkettet. Die resultierende Verkettung wird dann als Eingabe für den zugeordneten Hashalgorithmus verwendet, der einen Digest der Eingabe berechnet. Der berechnete Digest wird zum neuen Wert des PCR.

Die TPM-Profilspezifikation der TCG-PC-Clientplattform definiert die Aufnahme von mindestens einer PCR-Bank mit 24 Registern. Die einzige Möglichkeit zum Zurücksetzen der ersten 16 PCRs besteht darin, das TPM selbst zurückzusetzen. Diese Einschränkung trägt dazu bei, sicherzustellen, dass der Wert dieser PCRs nur über den TPM-Erweiterungsvorgang geändert werden kann.

Einige TPM-PCRs werden als Prüfsummen von Protokollereignissen verwendet. Die Protokollereignisse werden im TPM erweitert, sobald die Ereignisse auftreten. Später kann ein Prüfer die Protokolle überprüfen, indem er die erwarteten PCR-Werte aus dem Protokoll ermittelt und mit den PCR-Werten des TPM vergleicht. Da die ersten 16 TPM-PCRs nicht beliebig geändert werden können, bietet eine Übereinstimmung zwischen einem erwarteten PCR-Wert in diesem Bereich und dem tatsächlichen TPM-PCR-Wert die Zusicherung eines unveränderten Protokolls.

Wie verwendet Windows PCRs?

Um die Verwendung eines TPM-basierten Schlüssels an einen bestimmten Zustand des Geräts zu binden, kann der Schlüssel an einen erwarteten Satz von PCR-Werten versiegelt werden. PCRs 0 bis 7 haben beispielsweise einen klar definierten Wert nach dem Startvorgang, wenn das Betriebssystem geladen wird. Wenn sich die Hardware, Firmware oder das Startladeprogramm des Computers ändert, kann die Änderung in den PCR-Werten erkannt werden. Windows verwendet diese Funktion, um bestimmte kryptografische Schlüssel nur zu bestimmten Zeiten während des Startvorgangs verfügbar zu machen. Beispielsweise kann der BitLocker-Schlüssel zu einem bestimmten Zeitpunkt im Start verwendet werden, jedoch nicht vor oder nach dem Start.

Beachten Sie, dass diese Bindung an PCR-Werte auch den Hashalgorithmus enthält, der für das PCR verwendet wird. Beispielsweise kann ein Schlüssel an einen bestimmten Wert von SHA-1 PCR[12] gebunden werden, wenn die SHA-256-PCR-Bank verwendet wird, auch mit der gleichen Systemkonfiguration. Andernfalls stimmen die PCR-Werte nicht überein.

Was geschieht, wenn PCR-Banken gewechselt werden?

Wenn die PCR-Banken gewechselt werden, wird der Algorithmus geändert, der zum Berechnen der Hashwerte verwendet wird, die während Erweiterungsvorgängen in den PCRs gespeichert sind. Jeder Hashalgorithmus gibt eine andere kryptografische Signatur für dieselben Eingaben zurück.

Wenn die derzeit verwendete PCR-Bank gewechselt wird, funktionieren daher nicht mehr alle Schlüssel, die an die vorherigen PCR-Werte gebunden wurden. Wenn Sie beispielsweise einen Schlüssel an den SHA-1-Wert von PCR[12] gebunden und anschließend die PCR-Bank in SHA-256 geändert haben, stimmen die Banken nicht überein, und Sie können diesen Schlüssel nicht verwenden. Der BitLocker-Schlüssel wird mithilfe der PCR-Banken gesichert, und Windows kann die Versiegelung nicht aufheben, wenn die PCR-Banken gewechselt werden, während BitLocker aktiviert ist.

Wie kann ich PCRs wechseln, wenn BitLocker bereits aktiv ist?

Bevor Sie PCR-Banken wechseln, sollten Sie BitLocker anhalten bzw. deaktivieren oder den Wiederherstellungsschlüssel bereithalten. Schritte zum Wechseln von PCR-Banken auf Ihrem PC erhalten Sie von Ihrem OEM- oder UEFI-Anbieter.

Wie kann ich feststellen, welche PCR-Bank verwendet wird?

Sie können ein TPM so konfigurieren, dass mehrere PCR-Banken aktiv sind. Wenn BIOS Messungen durchführt, erfolgt dies in allen aktiven PCR-Banken, je nachdem, ob diese Messungen durchgeführt werden können. BIOS kann PCR-Banken deaktivieren, die nicht unterstützt werden, oder PCR-Banken, die nicht unterstützt werden, durch Erweitern eines Trennzeichens eingrenzen. Der folgende Registrierungswert gibt an, welche PCR-Banken aktiv sind:

  • Registrierungsschlüssel: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\IntegrityServices
  • DWORD: TPMActivePCRBanks
  • Definiert, welche PCR-Banken derzeit aktiv sind. Dieser Wert sollte als Bitmap interpretiert werden, für die die Bits in der TCG-Algorithmusregistrierungstabelle 21 von Revision 1.27 definiert sind.

Windows überprüft, welche PCR-Banken aktiv sind und vom BIOS unterstützt werden. Windows überprüft auch, ob das gemessene Startprotokoll Messungen für alle aktiven PCR-Banken unterstützt. Windows bevorzugt die Verwendung der SHA-256-Bank für Messungen und wird auf die SHA1-PCR-Bank zurückgreifen, wenn eine der Voraussetzungen nicht erfüllt ist.

Sie können ermitteln, welche PCR-Bank derzeit von Windows verwendet wird, indem Sie sich die Registrierung ansehen:

  • Registrierungsschlüssel: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\IntegrityServices
  • DWORD: TPMDigestAlgID
  • Algorithmus-ID der PCR-Bank, die derzeit von Windows verwendet wird. Dieser Wert stellt einen Algorithmusbezeichner dar, der in der TCG-Algorithmusregistrierungstabelle 3 von Revision 1.27 definiert ist.

Windows verwendet nur eine PCR-Bank, um die Startmessungen fortzusetzen. Alle anderen aktiven PCR-Banken werden mit einem Trennzeichen erweitert, um anzugeben, dass sie nicht von Windows verwendet werden. Messungen, die von Windows zu stammen scheinen, sollten nicht als vertrauenswürdig eingestuft werden.