Trusted Platform Module Services w Windows Vista

Trusted Platform Module Services w Windows Vista

Autor: Maciej Zelwak

Opublikowano: 10/6/2008, 12:00 AM

Liczba odsłon: 13036

Trusted Platform Module (TPM) Services jest nowym mechanizmem w jaki został zaopatrzony system Windows Vista. Specyfikację tego narzędzia napisała grupa TCG (The Trusted Computing Group). Jej współzałożycielem jest Microsoft, a obecnie zrzesza ona znacznie ponad 140 członków. Zadaniem TPM jest umożliwienie administrowania modułem zabezpieczającym sprzęt komputerowy. Jego architektura pozwala na łatwe zarządzanie układem na poziomie aplikacji.

Czym jest Trusted Platform Module?

Moduł TPM jest mikroukładem dla płyt głównych zaprojektowanym do tworzenia, przechowywania i chronienia kluczy kryptograficznych, tak aby można było ich używać za pomocą TPM. Praktycznie wszyscy liczący się producenci dołączają ten moduł do swoich produktów. Fakt integracji z płytami głównymi pozwala również na skuteczną autoryzację urządzeń, bowiem nie ma możliwości podmiany pojedynczego układu.

W skład modułu wchodzą zaawansowane algorytmy kryptograficzne ( np. AES, RSA, SHA1), generator liczb losowych i inne mechanizmy (m. in. sprawdzające sumę kontrolną). Ponadto TPM wykorzystuje zaimplementowane oprogramowanie układowe i układy logiczne do przetwarzania kodu. Informacji o chronionych kluczach nie znajdziemy w żadnym pliku na dysku, bowiem zagrażałoby to bezpośrednio bezpieczeństwu chronionych danych. Klucze chronione przez oprogramowanie można przecież ujawnić poprzez wykrycie luk w aplikacjach lub w systemie operacyjnym.

Niewątpliwie zaletą technologii jest to, że TPM zaczyna pracę jeszcze przed załadowaniem BIOS-u. Praca rozpoczyna się od sprawdzenia głównego klucza weryfikującego autentyczność TMP. Jest on wpisany na stałe, generowany przy wytwarzaniu układu i podpisany kluczem TCG.

Można wyróżnić co najmniej kilka gałęzi zastosowań technologii:

  • szyfrowanie danych
  • podpis cyfrowy
  • szeroko pojęta technologia znaków wodnych
  • interesującym mogłoby być połączenie TPM z polecanym przez Microsoft systemem zabezpieczeń DRM.

Możliwości jest bardzo wiele, a premiera Windows Vista zapewne podsunie nowe. Świadomi szerokiego pola zastosowań opisywanego mechanizmu, przyjrzyjmy się bliżej jego architekturze.

Architektura platformy TPM

Podczas każdego uruchomieniu komputera instrukcje CRTM ładowane są do jednostki centralnej komputera. CRTM znajdują się w tzw. bloku bootującym BIOS-u lub w samym BIOS-ie. CRTM i TMP tworzą wspólnie TBB (Trusted Building Block) i są niezależne od systemu operacyjnego. Bloki te fizycznie występują na płycie głównej i nie mogą być modyfikowane. Sterownika TMP również należy szukać w instrukcjach biosu. Jest on potrzebny przed załadowaniem systemu operacyjnego, jeśli program uruchamiający musi uzyskać dostęp do TPM. TBS (TMP Base Services) pełni rolę mediatora między sterownikiem i aplikacjami. TSS jest implementacją specyfikacji TCG i dostarcza zbiór potrzebnych funkcji i interfejsów umożliwiających komunikację z aplikacjami wyższego rzędu.

Konfiguracja i zarządzanie w systemie Windows Vista

Konfiguracja Trusted Platform Module sprowadza się do wykonania dwóch prostych zadań. Po pierwsze należy uaktywnić moduł w biosie, aby Windows mógł zlokalizować mikroukład (w zależności od wersji do aktywacji mogą do tego służyć od jednej do trzech opcji), a następnie zainicjować działanie w systemie.

Sprawne zarządzanie TPM wspomaga przystawka do programu MMC (Microsoft Management Console). Narzędzie otwieramy uruchamiając tpm.msc (Start\All Programs\Accessories\Run\...). Jeśli nie jesteśmy zalogowani jako administrator, pojawi się okno dialogowe UAC ( User Account Control) z żądaniem akceptacji uprawnień aplikacji. Wydajemy zgodę na uruchomienie klikając Continue.

Okno menadżera dzieli się na trzy panele. Z lewej strony widoczne są tylko dwa węzły: TPM Management on Local Computer i Command Management. Po zaznaczeniu pierwszej z nich widzimy na środkowym panelu informacje określone dla układu na lokalnym komputerze. Po prawej wyświetlają się możliwe akcje, takie jak włączenie, wyłączenie lub zmiana właściciela TPM. Jeśli wybierzemy węzeł Command Management, w centralnym panelu pojawi się pełna lista komend, a po prawej odpowiadające im akcje.

Inicjalizacja TPM

Pierwszą rzeczą, jaką należy zrobić po uaktywnieniu TPM w BIOS-ie, jest inicjalizacja w systemie. Podczas tego procesu użytkownik otrzymuje prawa własności TPM. Uruchamiamy kreatora wybierając z pola akcji Initialize TPM. W pierwszym kroku tworzymy hasło właściciela o długości minimum 8 znaków. Jeśli pozwolimy kreatorowi wygenerować je automatyczne, utworzy on 40 znakowy ciąg, zaszyfruje go i zapisze w pliku XML z rozszerzeniem .tpm.

<?xml version="1.0" encoding="utf-8" ?>
< !--
This page is a backup of Trusted Platform Module (TPM) owner
authorization information. Upon request, use the authorization information
to prove ownership of the computer's TPM.
IMPORTANT: Please keep this file in a secure location away from your
computer's local hard drive.
-->
<tpmOwnerData version="1.0" softwareAuthor="Microsoft Windows
[Version 6.0.6000]" creationDate="2007-03-11T16:56:45-05:00"
creationUser="SYNGRESS\mshepherd" machineName="SYNGRESS">
<tpmInfo manufacturerId="1112687437"/>
<ownerAuth>hVOA6LhVpQ8FOZsrKuxyZVgNy5U=</ownerAuth>
</tpmOwnerData>

Następnie klikamy Initialize, co rozpocznie proces, który może potrwać kilka minut. Po otrzymaniu informacji o zakończeniu operacji zamykamy okno. Moduł TPM został włączony.

Włączanie i wyłączanie modułu TPM

Jeśli moduł jest wyłączony, a my posiadamy już hasło właściciela, możemy go uruchomić ponownie. Zakładając, że jesteśmy już w przystawce MMC zaznaczamy węzeł TPM Management on Local Computer i z panelu akcji wybieramy Turn TPM On. Po pojawieniu się pierwszego okna wybieramy I have a backup file with the TPM owner password jeśli mamy plik z zaszyfrowanym hasłem lub I want to type the TPM owner password, jeśli chcemy wpisać je ręcznie. Jeśli hasło przejdzie pozytywnie test weryfikacji, moduł zostanie włączony.

Istnieje możliwość wykonania tej operacji jeśli zgubimy hasło. Po pojawieniu się pierwszego okna kreatora wybieramy I do not have the TPM password. Kontynuujemy proces po przeczytaniu podstawowych informacji klikając przycisk Restart. Tuż przed załadowaniem BIOS-u, otrzymamy wiadomość o zgłoszeniu żądania zmiany konfiguracji TPM. W zależności od producenta komputera, informacja ta może być sformułowana w inny sposób. Akceptujemy zmianę i komputer zakończy uruchamianie.

Jeśli moduł jest już włączony, możemy w podobny sposób go wyłączyć, wybierając z panelu akcji opcję Turn TPM Off.

Czyszczenie modułu TPM

Operację czyszczenia modułu można przeprowadzić tylko wtedy, gdy wcześniej był on zainicjowany. Proces ten sprowadza go do stanu, w którym nie ma on przypisanego właściciela. Należy więc wcześniej zabezpieczyć się przed utratą danych. Po zaznaczeniu węzła TPM Management on Local Computer wybieramy z prawego panelu Clear TPM. Następnie w zależności od tego czy mamy hasło właściciela lub nie wybieramy jedną z opcji I have a backup file with the TPM owner password, I want to type the TPM owner password lub I do not have the TPM password. Jeśli hasło zgubiliśmy zostaniemy poinformowani o konieczności restartu. Tuż przed załadowaniem BIOS-u zostaniemy poinformowani o zgłoszeniu żądania zmiany konfiguracji. Czyszczenie modułu przebiega podobnie jak proces włączania lub wyłączania.

Każdą z wyżej przedstawionych operacji można przeprowadzić nie posiadając hasła właściciela. Mogłoby się wydawać, że jest to słaby punkt bezpieczeństwa, ale tak nie jest. Aby wykonać te zadania, muszą być spełnione warunki:

  • jeśli maszyna używa mechanizmu zabezpieczającego typu BitLocker Drive Encryption, Windows Vista może zweryfikować poprawność woluminu startowego, a TPM może deszyfrować dane na dysku
  • osoba logująca się do systemu Windows Vista jest proszona o podanie loginu i hasła do konta
  • użytkownik zalogowany do systemu Windows Vista musi mieć odpowiednie prawa dostępu aby uruchomić przystawkę TPM do programu MMC
  • użytkownik musi być fizycznie przy komputerze

Bazując na tych założeniach, system ufa, że wszelkie środki bezpieczeństwa są zachowane, ponieważ aby skorzystać z wyżej opisanych mechanizmów, osoba która ukradła komputer, jednocześnie musiałaby zdobyć nazwę i hasło administratora systemu. Co więcej, jeśli komputer zabezpieczony jest mechanizmem startowym, napastnik musiałby znać PIN dostępu lub posiadać USB z deszyfratorem. W dodatku, napastnik może jedynie wyłączyć TPM, a  co za tym idzie tylko aplikacje zależne od modułu.

Zmiana hasła właściciela

W odróżnieniu od wyłączania, włączania lub czyszczenia TPM, operacja zmiany hasła daje napastnikowi pełną kontrolę nad TPM. Nie może ona zostać przeprowadzona z poza systemu (w zależności od producenta komputera istnieje możliwość wyłączenia lub włączenia TPM z poziomu BIOS).

Oczywiście w sytuacji, gdy istnieje podejrzenie, że hasło właściciela zostało złamane, należy jak najszybciej je zmienić. W celu zmiany uruchamiamy tpm.msc, klikamy węzeł po lewej TPM Management on Local Computer, następnie z panelu akcji wybieramy Change Owner Password. Następnie wybieramy I have a backup file with the TPM owner password, jeśli mamy plik z hasłem lub I want to type the TPM owner password, jeśli chcemy wpisać je sami. Ostatnim krokiem jest podanie nowego hasła, klikamy Create New Password. Przy własnoręcznym podawaniu hasła trzeba pamiętać, że może składać się z samych cyfr, minimalnie 8 znaków. Można wygenerować je automatycznie wykorzystując wbudowany w moduł mechanizm. Przed zakończeniem pracy kreatora, obowiązkowo musimy zapisać hasło do pliku .tpm.

Sterowanie blokowaniem i odblokowywaniem poleceń TPM

Liczba poleceń dostępna w module TPM jest imponująca. Obecnie dostępnych jest 125 poleceń zebranych w 26 funkcjonalnych kategorii. Administrator może je przeglądać i zarządzać nimi. Istnieją trzy listy poleceń, które mogą być blokowe:

  • domyślna lista dostarczana z systemem Windows Vista
  • lista utrzymywana na lokalnej maszynie i zarządzana przez lokalnych administratorów
  • lista komend kontrolowana przez Group Policy Objects (GPOs)

Jeśli komenda TPM istnieje na którejś z tych list, będzie blokowana przez jednostkę kontrolująca wykonanie – TBS. Sprawdza on każdą z nich przed przekazaniem polecenia do sterownika TPM i w razie potrzeby zgłasza błąd. Część zapytań jest blokowana domyślnie po instalacji systemu Windows. Żeby sprawnie zarządzać listami, warto wyświetlić w głównym panelu status komend. W tym celu uruchamiamy tpm.msc, zaznaczamy w lewym panelu Command Management, następnie View\Add/Remove Columns. Pojawia się okno dialogowe, gdzie dodajemy interesujące nas listy.

Warto również wspomnieć, że Lokalne Zasady Komputera (Local Computer Policy) ukrywają cztery funkcje istotne dla TPM. Można je znaleźć klikając Start\All Programs\Accessories\Run i uruchamiając gpedit.msc. Funkcje te pozwalają na ustawienie kopii zapasowej hasła właściciela, zarządzanie listą GPO, a także wyłączenie i  włączenie listy lokalnej oraz domyślnej.

Aby zablokować lub odblokować którąś z komend należy w oknie programu MMC zaznaczyć ją i z prawego panelu wybrać pożądaną akcję – Allow Selected Command lub Block Selected Command.

Podsumowanie

Należy pamiętać, że sam moduł TPM nie zapobiega atakom wirusów, kradzieży danych, mienia, czy nawet samym ich próbom. Jakkolwiek wyposaża administratorów, specjalistów od bezpieczeństwa, jak również zwykłych użytkowników w szeroki wachlarz narzędzi, które mogą chronić ich systemy.

Jak wykorzystać Copilot w codziennej pracy? Kurs w przedsprzedaży
Jak wykorzystać Copilot w codziennej pracy? Kurs w przedsprzedaży

Wydarzenia