Trusted Platform Module

Z Wikipedii, wolnej encyklopedii
TPM na płycie głównej Asusa P5Q Premium

Trusted Platform Module (TPM) – standard układu scalonego (nazywany jest tak również sam układ) opracowany przez Trusted Computing Group(inne języki). Obowiązuje wersja specyfikacji TPM 2.0[1].

Funkcjonalność[edytuj | edytuj kod]

Układy zgodne z TPM potrafią wykonać najbardziej typowe operacje obliczeniowe związane z kryptografią. Wśród operacji takich wymienić należy:

  • generowanie liczb pseudolosowych
  • generowanie podpisu cyfrowego dla ciągu bajtów
  • generowanie skrótów dla ciągu bajtów
  • szyfrowanie ciągu bajtów
  • generowanie skrótów dla sekwencji operacji wykonywanych przez procesor

Układy TPM mają zaimplementowane następujące algorytmy:

Ponadto każdy układ TPM ma unikatowy numer seryjny oraz prywatny klucz RSA.

Zastosowania[edytuj | edytuj kod]

Układy zgodne z TPM mogą obsługiwać wszystkie działania związane z kryptografią, w tym działania, w których producent rozwiązania nie życzy sobie ingerencji użytkownika w ich przebieg. Ponadto działanie TPM zbliżone jest do działania karty inteligentnej i w efekcie, przechowywany w układzie klucz prywatny nigdy go nie opuszcza, ani nigdzie nie jest wysyłany. Znacząco utrudnia to jego zdalne przechwycenie, czyniąc to w praktyce niemożliwym.

„Nieprzejrzystość” operacji kryptograficznych sprawia, że układy TPM mogą być stosowane w rozwiązaniach DRM. Dobra ochrona klucza i ścisłe związanie z konkretnym egzemplarzem sprzętu pozwalają na tworzenie stosunkowo bezpiecznych rozwiązań szyfrujących dane, w szczególności dane na dyskach twardych. Przykładem implementacji może być mechanizm BitLocker stosowany w systemach Windows, począwszy od wersji Vista.

Producenci[edytuj | edytuj kod]

Układy TPM produkowane są przez następujące firmy:

Implementacje[edytuj | edytuj kod]

Wśród komputerów PC, najczęściej spotyka się układy TPM w laptopach. Wynika to z faktu, że dane na tych komputerach są bardzo mocno narażone na kradzież, a dzięki mechanizmom TPM mogą być chronione. Wśród komputerów typu desktop, układy TPM były do niedawna stosunkowo rzadkie. Spotyka się również rozwiązania serwerowe. Wśród producentów komputerów wyposażonych w układy zgodne z TPM, wymienić należy:

Kontrowersje[edytuj | edytuj kod]

Ponieważ układy zgodne z TPM mogą być wykorzystywane w systemach DRM, budzą kontrowersje we właściwe wszystkich technologiach związanych z ochroną mediów cyfrowych.

Bezpieczeństwo[edytuj | edytuj kod]

Pomimo wysokiego poziomu bezpieczeństwa układy TPM nie stanowią gotowego rozwiązania całościowego problemu bezpieczeństwa systemu, a jedynie implementację specyficznych funkcji, które mogą być w tym celu wykorzystywane. Proponowane techniki obchodzenia zabezpieczeń zapewnianych przez układy TPM obejmują więc głównie wykorzystywanie błędnego zastosowania mechanizmów zapewnianych przez TPM w poszczególnych aplikacjach, wykorzystanie funkcji odtwarzania danych (recovery) lub techniki wirtualizacji[2][3][4].

W 2010 roku firma Flylogic poinformowała o opracowaniu sprzętowej techniki umożliwiającej obejście układu Infineon SLE 66PE. Atak wiąże się z koniecznością dotarcia do fizycznej struktury układu scalonego i obejściem zabezpieczeń, co umożliwia sterowanie sygnałem na pojedynczych ścieżkach[5].

Pomiar PCR[edytuj | edytuj kod]

Układy TPM posiadają rejestr PCR (Platform Configuration Registers), w którym są przechowywane wyniki pomiarów struktury danych, od wyników pomiarów PCR może zależeć działanie modułu TPM – na podstawie wyników pomiarów PCR moduł TPM może stwierdzić, czy działa w zaufanym środowisku. Pomiar PCR obejmuje pomiar struktur danych w postaci sum kontrolnych – zazwyczaj pomiarowi podlegają następujące czynniki:

  • PCR0 – struktura kodu systemu BIOS
  • PCR1 – konfiguracja BIOS
  • PCR2 – struktura kodu opcjonalnej pamięci ROM
  • PCR3 – konfiguracja opcjonalnej pamięci ROM
  • PCR4 – struktura głównego rekordu rozruchowego MBR
  • PCR5 – konfiguracja głównego rekordu rozruchowego MBR
  • PCR6 – przejścia stanów
  • PCR7 – pomiary producenta
  • PCR8-15 – pomiary przeprowadzane przez system (np. struktura jądra systemu, ładowane moduły jądra przy starcie itp.)
  • PCR16 – debug

Pomiar PCR jest wykorzystywany w technologii BitLocker w celu sprawdzenia, czy środowisko, w którym jest uruchamiany system, jest zaufane – ma to na celu utrudnić lub wyeliminować szansę przechwycenia klucza szyfrującego poprzez np. uruchomienie innego systemu przy pomocy LiveCD, dokonania zmian w hardware, modyfikacja jądra, wyłączenie SecureBoot, zmiana firmware BIOS itp.

W skład PCR7 wchodzą też podniesione alarmy w systemie BIOS takie jak wyzwolenie czujnika otwarcia obudowy (chassis intrusion) czy wielokrotne wpisanie błędnego hasła do BIOS – na podstawie tego parametru TPM może odmówić wydania klucza szyfrującego z powodu szansy włamania się do obudowy fizycznego sprzętu.

Przypisy[edytuj | edytuj kod]

  1. Trusted Platform Module – Specifications. Trusted Computing Group.
  2. Sven Tuerpe, Andreas Poller, Jan Steffan, Jan-Peter Stotz, Jan Trukenmueller: Attacking the BitLocker Boot Process. Fraunhofer Institute for Secure Information Technology, 2009.
  3. J. Alex Halderman, Seth D. Schoen, Nadia Heninger, William Clarkson, William Paul, Joseph A. Calandrino, Ariel J. Feldman, Jacob Appelbaum, Edward W. Felten: Lest We Remember: Cold Boot Attacks on Encryption Keys. Princeton University, 2008.
  4. Joanna Rutkowska: Security Challenges in Virtualized Environments. Confidence 2009, 2009. [dostęp 2011-01-26].
  5. Ex-Army man cracks popular security chip. The Register, 2010.