PCR-Banken auf TPM 2.0-Geräten

Wenn Sie schritte zum Wechseln von PCR-Banken auf TPM 2.0-Geräten auf Ihrem PC benötigen, wenden Sie sich an Ihren OEM- oder UEFI-Anbieter. Dieser Artikel enthält Hintergrundinformationen dazu, was passiert, 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 einer PCR gespeichert werden kann, wird durch die Größe eines Digests bestimmt, der von einem zugeordneten Hashalgorithmus generiert wird. Eine 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 einer PCR zu speichern, wird der vorhandene Wert wie folgt um einen 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 der PCR.

Die TCG PC Client Platform TPM Profile Specification 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, wenn die Ereignisse auftreten. Später kann ein Prüfer die Protokolle überprüfen, indem er die erwarteten PCR-Werte aus dem Protokoll berechnet und mit den PCR-Werten des TPM vergleicht. Da die ersten 16 TPM-PCRs nicht willkürlich geändert werden können, bietet eine Übereinstimmung zwischen einem erwarteten PCR-Wert in diesem Bereich und dem tatsächlichen TPM-PCR-Wert die Sicherheit 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.
Die PCRs 0 bis 7 verfügen beispielsweise nach dem Startvorgang beim Laden des Betriebssystems über einen klar definierten Wert. 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 an einem bestimmten Punkt des Startvorgangs verwendet werden, jedoch nicht vor oder nachher.

Es ist wichtig zu beachten, dass diese Bindung an PCR-Werte auch den für die PCR verwendeten Hashalgorithmus enthält. 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 derselben 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 in den PCRs gespeicherten Hashwerte während der Erweiterungsvorgänge verwendet wird. Jeder Hashalgorithmus gibt eine andere kryptografische Signatur für dieselben Eingaben zurück.

Wenn also die aktuell verwendete PCR-Bank gewechselt wird, funktionieren alle Schlüssel, die an die vorherigen PCR-Werte gebunden wurden, nicht mehr. Wenn Sie beispielsweise einen Schlüssel hätten, der an den SHA-1-Wert von PCR[12] gebunden wäre und anschließend die PCR-Bank in SHA-256 geändert hätte, würden die Banken nicht übereinstimmen, und Sie könnten diesen Schlüssel nicht verwenden. Der BitLocker-Schlüssel wird mithilfe der PCR-Banken gesichert, und Windows kann ihn nicht entsiegeln, wenn die PCR-Banken gewechselt werden, während BitLocker aktiviert ist.

Was kann ich tun, um PCRs zu wechseln, wenn BitLocker bereits aktiv ist?

Vor dem Wechseln von PCR-Banken sollten Sie BitLocker anhalten oder deaktivieren oder den Wiederherstellungsschlüssel bereit halten. Wenden Sie sich an Ihren OEM- oder UEFI-Anbieter, um die PCR-Banken auf Ihrem PC zu wechseln.

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

Sie können ein TPM so konfigurieren, dass mehrere PCR-Banken aktiv sind. Wenn das BIOS Messungen durchführt, erfolgt dies in allen aktiven PCR-Banken, abhängig von seiner Fähigkeit, diese Messungen vorzunehmen. DAS BIOS kann PCR-Banken deaktivieren, die nicht unterstützt werden , oder pcR-Banken, die es nicht unterstützt, durch Erweitern eines Trennzeichens zu deaktivieren. 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 verwendet die SHA1-PCR-Bank, 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 Windows derzeit verwendet. (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, und Messungen, die anscheinend von Windows stammen, sollten nicht vertrauenswürdig sein.