• Strona główna
  • Kontakt

Moduły TPM są podstawą zabezpieczeń

Możesz pobrać kopię dokumentu w formacie PDF tutaj.

 

Moduły TPM (Trusted Platform Modules) to niewielkie urządzenia półprzewodnikowe, które są wbudowane we wszystkie komputery PC, a czasami instalowane są nawet wewnątrz samego procesora. Stanowią one bezpieczny magazyn kluczy szyfrowania – przypomina on pod wieloma względami chip karty płatniczej. Moduły TPM są od dawna dostarczane wewnątrz komputerów PC i laptopów, ale nie są odpowiednio wdrażane w sieciach bankomatów, co jest często spowodowane biernością w zakresie wdrażania nowych architektur bezpieczeństwa. Taki stan rzeczy zaskakuje, biorąc pod uwagę, że sieci bankomatów potrzebują architektur bezpiecznych pod względem kryptograficznym bardziej niż ma to miejsce w innych branżach.

Moduły TPM to tak naprawdę o wiele więcej niż po prostu magazyn bezpiecznych kluczy. Stanowią one podstawę zaufania w przypadku wszystkich zabezpieczeń w sieciach komputerowych – i powinno tak być również w sieciach bankomatów.

W tym opracowaniu analizuje się, co banki muszą zrobić podczas projektowania architektury bezpieczeństwa swoich bankomatów i jak branża musi wykorzystać moduły TPM do bezpiecznego zamknięcia sprzętu, oprogramowania i sieci – kryptograficznie.

Wprowadzenie

Każdy się zgodzi, że bankomaty trzeba zabezpieczyć w maksymalnym możliwym zakresie w taki sposób, aby nie utrudniło to ich obsługi. Jednak wydaje się, że trudniej jest dojść do porozumienia w kwestii tego, jak można to osiągnąć. Oczywiście część zamieszania bierze się z faktu, że dostawcy konkurują ze sobą i walczą o klienta, oferując różne produkty zabezpieczające. Ma jednak również miejsce pewna doza dezinformacji, która wpływa na dezorientację klientów, co ostatecznie może prowadzić do słabych wdrożeń podatnych na ataki.

W tym opracowaniu zestawiono ważne podstawy bezpieczeństwa systemu, zaczynając od ogólnego wyjaśnienia, jak powinny być chronione poszczególne systemy komputerowe, a następnie opisu szczególnego przypadku użycia sieci bankomatów, które oczywiście wymagają najwyższego stopnia ochrony. Sieci bankomatów nie tylko odpowiadają za przechowywane w nich wielkie sumy w gotówce, ale są również potencjalnym punktem wejścia do hostowych systemów komputerowych banku, które mogą przekazywać duże ilości pieniędzy na całym świecie. Włamanie do bankomatu może spowodować większe straty dla banku niż utrata gotówki z sejfu.

Najpierw omówmy częste błędne przekonania dotyczące bezpieczeństwa. Być może największym błędnym przekonaniem w kwestii bezpieczeństwa systemu jest niezrozumienie koncepcji zabezpieczeń warstwowych. Prawdą jest, że w przypadku zabezpieczania złożonego systemu nie istnieje pojedyncze rozwiązanie (tzw. „Silver bullet”)  – potrzebnych jest wiele skoordynowanych blokad. Jednak ta koncepcja jest często źle rozumiana, co oznacza, że im bardziej nieznane i złożone zabezpieczenia, tym bezpieczniejszy system.  A tak po prostu nie jest. Istnieją podstawowe techniki kryptograficzne, które mogą być proste, omawiane wprost i dobrze zrozumiane, które muszą tworzyć fundament każdej architektury bezpieczeństwa. Takie techniki nie tylko zapewniają wymierne bezpieczeństwo, ale są również proste w użyciu, a ich działanie nie jest uzależnione od odchyleń podczas użytkowania.

Przedstawmy to, korzystając z krótkiego przykładu. Wszyscy przyzwyczailiśmy się do systemów komputerowych, w przypadku których logowanie wymaga nazwy użytkownika i hasła. Gdy systemy zabezpieczeń oparte na hasłach zaczęły być atakowane przez hakerów, organizacje stworzyły jeszcze bardziej skomplikowane zasady tworzenia haseł, które są bardzo nieprzyjazne dla uprawnionych użytkowników – regularne zmiany haseł, brak możliwości użycia iluś ostatnich haseł, skomplikowane i trudne do zapamiętania konstrukcje haseł itd. Potem firma Microsoft rozprawiła się z tym wszystkim, wprowadzając funkcję „Windows Hello”.

Funkcja „Windows Hello” łączy w sobie bezpieczne pod względem kryptograficznym, zabezpieczone za pomocą modułów TPM rozpoznawanie sprzętu z biometrycznym rozpoznawaniem twarzy. Jest ona tak naprawdę bardzo zbliżona do koncepcji zabezpieczeń, która jest bardzo dobrze znana w branży bankomatowej – polegającej na użyciu chipu i numeru PIN. W przypadku usługi „Windows Hello” chipem jest moduł TPM, który jest procesorem kryptograficznym bardzo podobnym do chipu karty płatniczej, a numer PIN zastępują dane biometryczne. System ten jest nie tylko bezpieczniejszy od dowolnego systemu obejmującego użycie nazwy użytkownika i hasła, ale jest również wyjątkowo przyjazny w użyciu. Nie chodzi tylko o to, że, aby zalogować się na tablecie Surface, wystarczy na niego spojrzeć, ale również o to, że dzieje się to natychmiast – trwa to krócej niż wpisanie jednej litery hasła. Czy system może być zarówno bezpieczniejszy, jak i prostszy w użyciu? Oczywiście. Musimy pozbyć się przekonania, że aby coś osiągnąć, trzeba się namęczyć – prawdziwe bezpieczeństwo nie wymaga zamęczenia użytkownika.

Na pewno zauważyliście, że w poprzednim akapicie wprowadziliśmy pojęcie „modułów TPM”. W tym opracowaniu skupiono się na modułach TPM jako „głównym źródle zaufania” w procesie przetwarzania danych. Moduł TPM jest zabezpieczoną strukturą półprzewodnika obejmującą architekturę zabezpieczeń zaprojektowaną przez grupę Trusted Computing Group (TCG) składającą się z ponad 100 firm, m.in. takich znaczących firm jak Intel, Microsoft, HP i IBM. Praca nad modułami TPM rozpoczęła się już w 1999 roku i miała na celu stworzenie fundamentu zabezpieczeń dla urządzeń komputerowych, aby można było na nim oprzeć całe bezpieczeństwo sieci komputerowych. Dobra wiadomość jest taka, że moduły TPM stanowią normę we wszystkich nowych urządzeniach komputerowych i jest tak już od wielu lat. Zła wiadomość jest taka, że wiele organizacji nawet nie wie, że ma w swoich urządzeniach komputerowych taki skarb, i wcale go nie wykorzystuje. To opracowanie stanowi próbę zmiany tej sytuacji – szczególnie w branży bankomatowej. W końcu bezpieczne przetwarzanie danych jest nam potrzebne bardziej niż ma to miejsce w przypadku innych branż.

Moduły TPM – „główne źródło zaufania”

Co oznacza „główne źródło zaufania” i dlaczego moduł TPM ma kluczowe znaczenie dla bezpieczeństwa przetwarzania danych? Aby to zrozumieć, ważne jest, by uzmysłowić sobie, że całe bezpieczeństwo przetwarzania danych jest uzależnione od mądrego użycia szyfrowania. Szyfrowanie jest metodą przetwarzania danych polegającą na przekształcaniu danych w jawnej postaci w formę przypadkową i na odwrót.

Gdy dane lub informacje są w jawnej postaci, można je wykorzystywać do określonych celów. Gdy dane są zaszyfrowane, nie nadają się do użycia, dopóki nie zostaną odszyfrowane. Bardzo istotne jest, aby w kwestii szyfrowania i odszyfrowywania uzmysłowić sobie, że do szyfrowania i odszyfrowania danych potrzebny jest „klucz” zabezpieczeń. Bez takiego klucza zaszyfrowane dane są bezużyteczne. Oczywiście w tym sensie „klucz” nie różni się od klucza do sejfu. Jeśli dojdzie do utraty klucza do sejfu, nie można dostać się do znajdującego się w nim złota. W przypadku przetwarzania danych, złotem są dane chronione w procesie szyfrowania.

Teraz ważne jest, aby zrozumieć, że aby można było użyć klucza do odszyfrowania wiadomości, musi on być w jawnej postaci. Oznacza to, że trzeba korzystać z metody bezpiecznego przechowywania klucza. Tak, można ten klucz zaszyfrować za pomocą innego klucza. Oryginalny klucz zostałby zabezpieczony, ale wystąpiłby z kolei problem z wyborem miejsca do przechowywania drugiego klucza. Można więc mieć klucze na łańcuchu (i dość często z takiego łańcucha się korzysta). Jednak pierwotny klucz musi być gdzieś bezpiecznie przechowywany w jawnej postaci. Gdzie na komputerze można przechowywać taki niezaszyfrowany klucz główny? Odpowiedź brzmi: „Nie na dysku twardym (ani nie na dysku SSD).” Nie można bezpiecznie przechowywać klucza niezaszyfrowanego na dysku – haker, który może uzyskać fizyczny dostęp do dysku, może zawsze znaleźć niezaszyfrowany klucz. Jeśli osoba atakująca ma fizyczny dostęp, samo oprogramowanie nie może zapewnić ochrony.

Jak dostać się do modułu TPM. TCG zaprojektowała moduł TPM jako magazyn sprzętowy na wpisy tajne i jest on wbudowany w płytę główną. W niektórych strukturach moduł TPM może znajdować się wewnątrz samego chipa CPU. Jest przeznaczony specjalnie do bezpiecznego przechowywania kluczy. Jest to również coś o wiele więcej niż magazyn kluczy – i przejdziemy do tego w kolejnej sekcji. Przez chwilę wyobraź sobie, że system przetwarzania danych może mieć łańcuch kluczy, ale klucz, który znajduje się na jego początku musi być w jawnej postaci i musi być przechowywany w bardzo bezpieczny sposób, aby można go było używać tylko w zaufanych celach. Moduł TPM jest tym kluczowym magazynem.

Główny aparat zaufanych pomiarów (CRTM – Core Root of Trust Measurement)

Moduł TPM nie jest po prostu przereklamowanym magazynem kluczy. Zastanów się, jaki problem może najpierw wystąpić w pierwszy dzień pracy magazynu kluczy zabezpieczeń. Jeśli ktoś spyta moduł TPM „Czy mogę otrzymać klucz niezaszyfrowany?”, skąd wiesz, kto prosi o klucz? Można klucz bezpiecznie przechowywać, ale komu ten klucz podasz? Czy prośba o użycie klucza pochodzi z rzetelnego elementu kodu, czy ze złośliwego oprogramowania? Czy haker zmodyfikował oprogramowanie komputera za pomocą złośliwego oprogramowania i ładnie prosi: „Module TPM, czy mogę użyć klucza?” To jest właśnie problem – nie wystarczy po prostu mieć super bezpieczny magazyn kluczy. Trzeba uwierzytelnić oprogramowanie, które prosi o użycie tych kluczy. Poznaj teraz drugą sztuczkę wykorzystywaną przez moduł TPM – główne źródło sprawdzenia zaufania (core root of trust measurement – CRTM).

CRTM współpracuje z łańcuchem zaufania, który zaczyna się przy uruchomieniu. Sprzęt i moduł TPM ściśle ze sobą współpracują, dokonując „pomiaru” sekwencji uruchomienia komputera od początkowego uruchomienia, a następnie do BIOS/UEFI, aż do uruchomienia systemu operacyjnego. „Pomiar” umożliwia stwierdzenie, czy doszło do modyfikacji oprogramowania komputera lub jego naruszenia podczas uruchomienia. Proces ten jest najczęściej nazywany bezpiecznym rozruchem, który obecnie stanowi standardową funkcję nowych rdzeni komputerowych, które wykorzystują do uruchamiania komputera oprogramowanie układowe UEFI.

Aby ułatwić bezpieczny rozruch, konstrukcja modułu TPM wprowadziła pojęcie PCR (Platform Configuration Registers – rejestry konfiguracyjne platformy). Wartości PCR są obliczane przez moduł TPM w procesie o nazwie „rozszerzanie PCR” w sposób, który trochę przypomina tworzenie łańcucha bloków. Powoduje to, że rejestry PCR mają unikatowy „odcisk palca” (tj. zbiór skrótów) sekwencji uruchamiania komputera. Jeśli rejestry PCR nie zostały w przeszłości zmodyfikowane, oznacza to, że nie zostało również zmodyfikowane oprogramowanie uruchomieniowe komputera – i to jest gwarantowane kryptograficznie. Nie ma takiej możliwości, aby złośliwe oprogramowanie zmodyfikowało choćby jeden bajt mierzonego oprogramowania uruchomieniowego i nie wpłynęło to na wartości PCR.

tpm diagram 1

W dziedzinie kryptografii jest to szalenie istotne pojęcie. To co nazywamy „funkcją bezpiecznego skrótu” to funkcja przypominająca szyfrowanie, która służy do przekształcania bloku danych w ciąg znaków o stałej długości, który pełni rolę odcisku palca oryginalnych danych. Jeśli dojdzie do zmiany danych, zmieni się odcisk palca. Jest to zatem niezawodna metoda wykrywania nawet najdrobniejszej modyfikacji w dużej części oprogramowania. Moduł TPM wykorzystuje wariant wyznaczania wartości skrótu o nazwie HMAC. HMAC jest „skrótem z kluczem”, co oznacza, że wygenerować lub zweryfikować skrót HMAC może tylko osoba, która ma odpowiedni klucz zabezpieczeń. Jest to rodzaj „skrótu zaszyfrowanego”.

Istnieje powód, dla którego podaliśmy tyle szczegółowych informacji. W ten sposób technologia TPM gwarantuje, że podstawowe oprogramowanie bankomatu jest w 100% bezpieczne. W sekwencji rozruchu bankomatu chronionego za pomocą modułu TPM nie ma możliwości modyfikacji nawet jednego elementu oprogramowania bez uznania za błędne wszystkich zasad nowoczesnej kryptografii. Jest to również pojęcie, o którym mówi się w tym opracowaniu więcej, aby umożliwić zabezpieczenie reszty bankomatów.

Teraz mamy bezpieczne oprogramowanie podstawowe – a co z aplikacjami?

W bankomatach z systemem Windows 10 są wykorzystywane dwie ważne technologie firmy Microsoft, które na chwilę obecną dominują. Są to Bitlocker i Device Guard (technologia nazywana obecnie Windows Defender Application Control – WDAC). Bitlocker jest technologią szyfrowania dysku firmy Microsoft. Za jej pomocą można zaszyfrować cały dysk twardy lub dysk SSD, a co najważniejsze zapisać klucz szyfrowania dysku „w module TMP”. Tak naprawdę jest to trochę bardziej skomplikowane niż zwykłe zapisanie klucza w module TPM – jeszcze to wyjaśnimy.

Pamiętajmy o tym, że nie wystarczy po prostu bezpiecznie przechowywać kluczy. Przed przekazaniem klucza trzeba koniecznie ustalić, „kto” o niego prosi. Moduł TPM umożliwia inną nową sztuczkę nazywaną „uszczelnianiem klucza”. Gdy dysk bankomatu jest najpierw szyfrowany w bezpiecznym środowisku i system Windows generuje nowy klucz, klucz ten jest następnie szyfrowany przy użyciu oddzielnego „klucza szyfrowania klucza” („key-encryption-key” – KEK). Sam klucz KEK jest następnie dalej szyfrowany w procesie nazywanym „uszczelnianiem” przy użyciu wartości PCR i prywatnego klucza modułu TPM. Podczas rozruchu bankomatu klucz KEK zostaje udostępniony tylko, jeśli wszystkie „odciski palca” oprogramowania podstawowego zmierzone przez PCR zostały uwierzytelnione – oznacza to, że kod systemów BIOS i Windows jest nienaruszony, jak zostało już wyjaśnione wcześniej. Przy użyciu klucza KEK system Windows odszyfrowuje klucz szyfrowania klucza i dzięki temu może odszyfrować cały dysk. Po pobraniu klucza KEK system Windows zamyka za nim drzwi. Odbywa się to przez „rozszerzenie” rejestru PCR 11 – co oznacza, że rejestr PCR 11 zostaje zmodyfikowany po rozszczelnieniu klucza KEK w taki sposób, aby nikt inny nie mógł potem klucza KEK pobrać. Klucz KEK jest bezpiecznie przechowywany do kolejnej sekwencji rozruchu przez TPM i jest ponownie udostępniany, tylko jeśli rejestry PCR potwierdzą, że żadne oprogramowanie podstawowe nie zostało naruszone, a następnie ponownie blokuje wejście od razu po udostępnieniu klucza KEK funkcji Bitlocker w celu odszyfrowania dysku.

Jak widać, stopniowo załadowaliśmy oprogramowanie podstawowe, sprawdzając poszczególne programy przy użyciu rejestrów PCR, aby upewnić się, że nie doszło do naruszenia, aż zakończyliśmy proces rozruchu i załadowaliśmy system Windows. Teraz musimy uruchomić aplikacje do bankomatów i przed użyciem plików wykonywalnych sprawdzić, czy któryś z uruchamianych plików nie został naruszony. Innymi słowy, przed użyciem poszczególnych elementów oprogramowania podejmujemy dalsze działania w oparciu o te same koncepcje sprawdzania kryptograficznego odcisku palca. Ten ostatni etap łańcucha rozruchowego jest wykonywany przez Windows WDAC (lub oprogramowanie innej firmy z podobną funkcjonalnością). Często jest to nazywane umieszczaniem na białej liście (whitelisting) i powoduje, że zanim zezwoli się na uruchomienie skrótu (tj. komputerowego „odcisku palca”) poszczególnych plików wykonywalnych, jest on sprawdzany.

Umieszczanie bankomatu na białej liście

Najlepszym sposobem na umieszczenie oprogramowania do bankomatów na białej liście przy użyciu Windows WDAC (lub innego oprogramowania do umieszczania na białej liście) jest użycie czegoś, co nazywamy „regułą certyfikatu”. Wymaga to, by oprogramowanie, które wdrażasz w bankomacie, zostało wstępnie podpisane przez dewelopera tego oprogramowania. Na przykład pliki wykonywalne systemu Windows 10 są podpisywane przez firmę Microsoft przy użyciu klucza prywatnego. Oznacza to, że każdy może sprawdzić, czy pliki wykonywalne systemu Windows nie zostały w trakcie przesyłania zmodyfikowane lub naruszone i czy są w takiej samej postaci jak wtedy, gdy były podpisywane przez firmę Microsoft. Wystarczy je zweryfikować przy użyciu klucza publicznego do podpisywania kodu firmy Microsoft. Aby oprogramowanie WDAC to potwierdzało, wystarczy utworzyć „regułę certyfikatu” zawierającą informację o tym, że plików wykonywalnych podpisanych przez firmę Microsoft można bezpiecznie używać. 

Podobnie, oprogramowanie firmy KAL jest zawsze podpisywane przy użyciu klucza prywatnego podpisywania kodu firmy KAL. Nasi klienci mogą sprawdzić, czy oprogramowanie firmy KAL nie zostało naruszone, instalując w każdym bankomacie certyfikat podpisywania kodu KAL.

A co z innym oprogramowaniem, które może nie być wstępnie podpisywane w taki sposób? Bank ma trzy wyjścia:

  1. Dopilnować, aby dostawca podpisał kod.
  2. Zerwać współpracę z dostawcą. (Czy w roku 2020 naprawdę istnieją dostawcy, którzy nie podpisują swojego kodu? Najwyraźniej tak).
  3. Użyć „reguły skrótu”.

Reguła skrótu jest regułą, którą dodajesz do swojej polityki WDAC znajdującej się na białej liście, a bank oblicza skrót dla każdego z plików pochodzących od dostawcy, który nie podpisał swoich plików wykonywalnych. Innymi słowy, dokonujesz za nich podpisu kodu. Oczywiście nie jest to tak dobre rozwiązanie jak podpisanie kodu u źródła, ponieważ nie można wykryć żadnego naruszenia, do którego dochodzi podczas przesyłania między dostawcą a bankiem (chociaż mogą istnieć inne mechanizmy zapewniające bezpieczną transmisję).

Drugim minusem takiego wdrożenia jest to, że bank musi utworzyć „regułę skrótu” dla każdego pliku wykonywalnego. Odbywa się to o wiele mniej sprawnie niż po prostu zainstalowanie w bankomacie certyfikatu publicznego dostawcy, który obejmie następnie wszystkie pliki wykonywalne tego dostawcy, m.in. wszystkie przyszłe aktualizacje tego dostawcy.

Czy to już?

Gdy dochodzimy do tego etapu i bankomat jest gotowy do użycia, całe oprogramowanie zostało kryptograficznie zweryfikowane. Nie może zostać uruchomiony żaden plik wykonywalny, który został w jakikolwiek sposób naruszony lub zmodyfikowany. Nie można włamać się do chociażby jednego bitu z gigabajtów plików wykonywalnych oprogramowania w nowoczesnym bankomacie – atak zostanie wykryty i zablokowany.

Ale to jeszcze nie wszystko. Bankomat chroniony tą metodą jest odporny na nieautoryzowaną modyfikację stosu oprogramowania. Tylko, że to nie jest jedyny problem. Instalacja złośliwego oprogramowania w bankomacie nie jest jedyną metodą atakowania bankomatu. Wyjaśnimy teraz, dlaczego moduł TPM może być przydatny w przypadku ataków innego typu.

Zrozumienie możliwości modułów TPM

Zadanie modułu TPM nie polega tylko na zabezpieczaniu procesu rozruchu bankomatu. Jest to główne źródło zaufania, które umożliwia również zabezpieczenie całej reszty. Trzeba tu wspomnieć o wspaniałej książce napisanej przez członków Trusted Computing Group, Willa Arthura, Davida Challenera i Kennetha Goldmana. Książka „A Practical Guide to TPM 2.0” („Praktyczny przewodnik po module TPM 2.0”) jest wybitna i stanowi skarbiec pomysłów, które zainspirowały mnie do napisania tego opracowania. Książkę można pobrać bezpłatnie tutaj.

Aby szybko streścić tę książkę w tym opracowaniu najlepiej jest skupić się na wymienionych w niej 53 przypadkach użycia. Za zgodą autorów wymieniam je poniżej.

1. Przechowywanie parametrów rozruchu

2. Dostęp za pomocą klucza VPN

3. Podstawowa optymalizacja kluczy

4. Aprowizacja kluczy tożsamości

5. Zezwalanie menedżerowi zasobów na bezpieczne zarządzanie kluczami TPM

6. Osoba atakująca zastępująca klucz na tej samej klamce

7. UEFI

8. Wykrywanie rozruchu między zaświadczeniami

9. Wyznaczanie wartości skrótu dużego pliku

10. Zaufany rozruch – 1

11. Zaufany rozruch – 2

12. Wiele równoczesnych algorytmów porządkowania modułu TPM

13. Przechowywanie haseł logowania

14. Weryfikacja podpisu głównego źródła zaufania

15. Wiele kluczy podstawowych

16. Niestandardowe klucze podstawowe

17. Certyfikowanie klucza cytatu TPM

18. Tworzenie łańcucha certyfikatu

19. Zadbanie o to, by autoryzacja klucza wymagała podpisu cyfrowego

20. Zadbanie o to, by autoryzacja klucza wymagała danych biometrycznych

21. Zadbanie o dane trwałe

22. Odpowiednik cytatu dla trwałego indeksu rozszerzenia

23. Przechowywanie wpisu tajnego

24. Przechowywanie certyfikatu

25. Przechowywanie wspólnego hasła

26. Przechowywanie głównego klucza publicznego

27. Przechowywanie klucza HMAC

 

28. Odwoływanie dostępu do klucza

29. Odwoływanie klucza używanego przez wielu użytkowników

30. Bezpieczny dziennik inspekcji użycia klucza urzędu certyfikacji

31. Dodatkowe rejestry PCR

32. Rejestry PCR z różnymi atrybutami

33. Wirtualizacja

34. Trwały indeks jednokrotnego zapisu

35. Certyfikaty standardowe

36. Indeks NV jednokrotnego zapisu, zawsze do odczytu

37. Zabezpieczanie wpisu tajnego zasad

38. Duplikowanie zestawu kluczy

39. Uszczelnianie klucza szyfrowania dysku twardego do stanu platformy

40. Klucze VPN

41. Bezpieczne przekazywanie hasła ze środowiska obecnego systemu operacyjnego do środowiska systemu operacyjnego nieobecnego

42. Cytat

43. Wykrywanie rozruchu między transakcjami

44. Brak rejestrów PCR atrybutów narastających dla maszyn wirtualnych

45. Brak rejestrów PCR atrybutów narastających dla inspekcji

46. Tworzenie różnych SrK dla różnych użytkowników

47. Zestaw serwerów zachowuje się jak jeden

48. Z jakim modułem TPM występuje połączenie?

49. Jaki jest stan indeksu NV, licznika lub indeksu pola bitowego?

50. Użycie indeksu NV jako rejestru PCR

51. Kontrola modułu TPM używanego jako urząd certyfikacji

52. Korzystanie z modułu TPM w celu zabezpieczenia dziennika inspekcji aplikacji

53. Upewnij się, że w ciągu poleceń nie dojdzie do zmian w rejestrach PCR

 

Proszę spojrzeć na przypadki użycia powyżej. Najpierw trzeba zwrócić uwagę na to, że moduły TPM nie mają za zadanie jedynie zabezpieczać proces rozruchu. Jak zostało powiedziane wcześniej, moduł TPM jest głównym źródłem zaufania, które umożliwia każde działanie niezbędne do zabezpieczenia bankomatów, krok po kroku. Oczywiście poszczególne przypadki użycia powyżej niekoniecznie muszą odnosić się do naszej branży. Należy też pamiętać, że te przypadki użycia dotyczą zabezpieczania elementu w sposób bezpieczny pod względem kryptograficznym.

Zajmijmy się więc jednym z przykładów – #40 „Klucze VPN”. W normalnych warunkach sieć VPN zostałaby postawiona między bankomatem a serwerem przez zainstalowanie certyfikatów cyfrowych (tj. podpisanych kluczy publicznych) w dwóch systemach. A co się stanie, jeśli ktoś uzyska dostęp do certyfikatów? Prawdą jest, że certyfikatów przechowywanych w środowisku systemu Windows chronionym przy użyciu modułu TPM w przypadku blokady opisanej do tej pory w tym opracowaniu nie można by było zmodyfikować. Możemy jednak pójść o krok dalej. Klucze VPN można uszczelnić względem rejestrów PCR przy użyciu modułu TPM. Oznacza to, że w chwili, gdy ma być postawiona sieć VPN, klucze wymagane do postawienia sieci VPN mogą zostać udostępnione tylko, jeśli stan rejestrów PCR jest prawidłowy. Jeśli wystąpi jakaś różnica, połączenie z siecią VPN zostanie odrzucone. Teraz uwzględnijmy, że ta koncepcja może dotyczyć obu stron tunelu VPN. Stan rejestrów PCR musi być prawidłowy nie tylko po stronie bankomatu, może również istnieć wymóg ich prawidłowego stanu dla serwera bankomatu w centrum danych. Jeśli tak jest, przed nawiązaniem połączenia należy mieć potwierdzenie pod względem kryptograficznym, że zarówno stan bankomatu jak i serwera bankomatu jest bezpieczny. Wiemy, że wszystkie pliki wykonywalne, które zostały do tego momentu uruchomione w bankomacie i na serwerze bankomatu są bez zarzutu i nie zostały naruszone, i zezwalamy na połączenie obu jeśli, i tylko jeśli, scenariusz ten jest prawdziwy dla obu systemów.

W tym opracowaniu nie proponuję omówienia wszystkich koncepcji z e-booka. Istnieją wprawdzie inne przypadki użycia, które dotyczą bezpośrednio bankomatów i wymagają omówienia, opracowania i wdrożenia. Mam nadzieję, że branża bankomatowa zajmie się tym za pośrednictwem swoich branżowych komitetów. Ale o tym później.

Zabezpieczanie połączeń sieciowych

W poprzedniej części była mowa o zabezpieczeniach sieci. Przeanalizujmy tę kwestię nieco dokładniej, gdyż jest to przypadek użycia, który w przypadku bankomatów ma szczególne znaczenie. Jasne jest, że zależy nam nie tylko na bezpieczeństwie poszczególnych bankomatów, ale również na tym, by bezpieczny i nienaruszony był każdy system serwerów wewnętrznej bazy danych, z którym mamy do czynienia.  Popatrzmy na wykres poniżej.

 

tpm diagram 2

 

Przedstawia on scenariusz połączenia w typowym dużym banku oferującym wyszukane usługi bankomatowe. Bankomaty łączą się z programem do obsługi terminali, który zarządza usługami z wielu serwerów wewnętrznej bazy danych. Moduł HSM (hardware security module) zapewnia usługi kryptograficzne i pomaga dzielić na strefy/bloki numery PIN. Po rozpoczęciu transakcja wymaga autoryzacji i zostaje odesłana do głównego systemu bankowego, jeśli jest to transakcja typu „On Us” („Do nas”) lub do schematów kartowych, jeśli jest to transakcja „Off Us” („Od nas”).

Teraz wyobraźmy sobie utopię zabezpieczeń, w której każdy bankomat i każdy serwer ma moduł TPM (co ma miejsce w przypadku każdego najnowszego sprzętu), wszystkie systemy zostały zweryfikowane od rozruchu za pomocą pomiarów PCR i wszystkie połączenia TLS i sieci VPN zostały skonfigurowane przy użyciu certyfikatów kontrolowanych przez moduł TPM, a zatem istnieje gwarancja kryptograficzna, że nie zostały one naruszone. To rzeczywiście utopia. Smutne jest to, że w sierpniu 2020 roku bardzo niewiele banków osiągnęło ten poziom zabezpieczeń.

Potencjalnym wyzwaniem w kwestii wdrożenia jest skalowalność i klastrowanie. Jak utworzyć klaster serwerów, jeśli połączenia są powiązane z poszczególnymi modułami TPM? Popatrz na przykład użycia #47 powyżej „Zestaw serwerów zachowuje się jak jeden”. TCG już o tym pomyślała.

Zabezpieczanie połączeń urządzeń sprzętowych do bankomatów

Do tej pory skupiliśmy się na komputerowej części bankomatu oraz na tym, jak zagwarantować, że oprogramowanie jest wolne od złośliwego oprogramowania po uruchomieniu i w trakcie jego obsługi. Zajmijmy się teraz poszczególnymi urządzeniami sprzętowymi w bankomacie – czytnikiem kart, PIN padem i, innymi urządzeniami. Jak wygląda bezpieczeństwo w przypadku połączeń między komputerem a poszczególnymi urządzeniami? W większości bankomatów połączenia te są połączeniami USB, które można naruszyć fizycznie. Jeśli obejmują one dane niezaszyfrowane – bankomat jest narażony na ataki – nawet jeśli nie zainstalowano na nim złośliwego oprogramowania. Wyjaśnijmy to jeszcze raz, korzystając z ilustracji: 

 

tpm diagram 3

 

Jak widać, połączenia USB zostały przedstawione w formie chmury, aby wskazać zagrożenie atakiem. Moduł TPM zabezpiecza komputer, ale przewody USB, jeśli nie będą miały ochrony, są narażone na atak. Prawdopodobnie za ochronę tych połączeń odpowiada dostawca sprzętu bankomatowego. Sytuacja nie jest jednak tak prosta, ponieważ zależy również od wymagań w zakresie współdziałania między urządzeniami sprzętowymi i resztą systemu. Jeśli wiadomości do dyspensera są zaszyfrowane na całej trasie, gdzie powinien być „drugi koniec trasy”? Jeśli, na przykład, drugi koniec trasy kończy się na programie do obsługi terminali, należy omówić i uzgodnić wiele wymogów w zakresie współdziałania.

Jest również jasne, że w wielu bankomatach nawet dyspenser nie jest jeszcze dobrze zabezpieczony – wiadomo to chociażby z mediów, które opisują różne ataki przy użyciu czarnych skrzynek. Atak na bankomat przy użyciu czarnej skrzynki występuje, gdy hakerzy odcinają połączenie z dyspenserem i wypłacają gotówkę za pomocą własnego komputera. Większość nowoczesnych bankomatów ma zaszyfrowane połączenie komputera z dyspenserem, ale firma KAL podejrzewa, że system zabezpieczeń pozostawia wiele do życzenia, ponieważ niektóre z tych bankomatów nie mają modułów TPM. Powiedzmy to otwarcie: brak modułu TPM = brak zabezpieczeń. Jeśli dostawca sprzętu nie może opublikować informacji dotyczących sposobu ochrony kluczy szyfrowania, trzeba sobie powiedzieć wprost, że dzieje się tak, ponieważ klucze nie są odpowiednio chronione.

XFS4IoT i ochrona urządzeń sprzętowych

Dobra wiadomość jest taka, że komisja XFS branży bankomatowej zajmuje się kwestią związaną z tym, jak należy chronić urządzenia bankomatowe nowej generacji. Niektórzy z Was mogli słyszeć o mającej się wkrótce ukazać wersji systemu plików XFS 4.0 o nazwie XFS4IoT. IoT oznacza zamiar przygotowania specyfikacji na nowoczesny świat Internetu rzeczy. XFS4IoT ma osiągnąć kilka głównych celów.

  1. Specyfikacje są niezależne od systemu operacyjnego. Oznacza to, że bankomaty mogą mieć zainstalowany system Windows, Linux lub inny dowolny system operacyjny.
  2. System plików nadaje się do użytku w chmurze. Urządzenia bankomatowe mogą uwidaczniać usługi bezpośrednio w chmurze. Mózg bankomatu może znajdować się w chmurze, a nie w środku samego urządzenia, jak jest obecnie. Na przykład czytnik kart może uwidocznić usługi czytnika kart w chmurze. Dyspenser może uwidocznić usługi wypłaty gotówki w chmurze.
  3. Usługi internetowe uwidocznione w taki sposób muszą być bezpieczne. System plików XFS4IoT będzie miał wbudowane zabezpieczenia, aby zagwarantować urządzeniom bezpieczeństwo na całej trasie. Protokół transportu został wybrany jako gniazda sieci Web zabezpieczone przy użyciu protokołu TLS z certyfikatami po obu stronach. Ponadto każde urządzenie XFS4IoT może mieć bezpieczny element sprzętowy umożliwiający zabezpieczenie połączenia na całej trasie. Połączenie to może zostać przerwane w samym bankomacie (jak dzieje się to często obecnie) lub na serwerze w chmurze.

Koncepcja ta została przedstawiona na ilustracji poniżej:

tpm diagram 4

Bankomaty z systemem plików XFS4 mogą być zaprojektowane jak bankomaty tradycyjne znajdujące się po lewej stronie wykresu, gdzie urządzenia nawiązują połączenie z aplikacją na komputerze, lub mogą uwidaczniać bezpieczną usługę w chmurze, jak po prawej stronie. W drugim przypadku w bankomacie może wcale nie być komputera, a wszystkie urządzenia mogą być całkowicie niezależne od siebie, ale mogą być fizycznie blisko siebie i razem ze sobą współpracować pod nadzorem aplikacji w chmurze.

Najważniejszą rzeczą, na którą należy zwrócić uwagę, są zielone pola oznaczone „HSE”. HSE oznacza „hardware secure element” („bezpieczny element sprzętowy”), a specyfikacja XFS, oczywiście, daje dostawcom sprzętu wolną rękę w zakresie wyboru najlepszej metody jego wdrożenia. Oczywiste jest, że element HSE musi być modułem TPM lub zawierać podzestaw funkcji TPM. Element HSE musi co najmniej:

  • bezpiecznie przechowywać klucze prywatne;
  • wdrażać podstawowy „główny aparat zaufanych pomiarów” (CRTM), aby zagwarantować, że tylko bezpieczne oprogramowanie układowe może używać elementu HSE;
  • wdrażać usługi szyfrowania i podpisywania.

Firma KAL rozmawiała na ten temat z komisją TCG, która zasugerowała, że z przyjemnością pomoże branży bankomatowej rozważyć różne rozwiązania. TCG rzeczywiście poczyniła już pewne postępy w zakresie koncepcji „mini modułów TPM”. Mamy więc projekty firmy TCG DICE i MARS. Czy projekty DICE i MARS są gotowe do użytku w branży bankomatowej? Musimy się tego dowiedzieć.

Ciekawe, czy tradycyjnych modułów TPM można używać w poszczególnych urządzeniach jako elementu HSE. Biorąc pod uwagę koszty, odpowiedź może brzmieć „Tak” – moduły TPM to koszt poniżej 1 USD w produkcji. Rozwiązanie DICE może kosztować jeszcze mniej. W naszej branży, która chroni miliony dolarów funduszy klientów, koszt modułu TPM lub elementu HSE innego typu najprawdopodobniej nie będzie stanowił przeszkody.

Bankomaty mają drugie źródło zaufania – urządzenia EPP

W poprzedniej części omówiliśmy ochronę urządzeń, ale istnieje jedno wyjątkowe urządzenie, które wyróżnia się w kontekście bezpieczeństwa, a jest to EPP (Encrypting PIN Pad – szyfrujący PIN pad). Urządzenie EPP jest tak naprawdę niezależnym źródłem zaufania wewnątrz bankomatu. Jest bardzo bezpieczne, podlega wymaganiom PCI PED i każde urządzenie EPP jest indywidualnie zarządzane i śledzone przez branżę w skali globalnej. Ma własny pomiar CRTM oprogramowania układowego i w przypadku wykrycia naruszenia ulega automatycznemu zniszczeniu. Jest rzeczywiście bardzo bezpieczne.

Jednak urządzenie EPP stanowi dla branży zarówno korzyść jak i wadę. Ze względu na to, że urządzenie EPP zapewnia bankomatom pewien poziom bezpieczeństwa (za chwilę omówimy jego ograniczenia), banki na nim polegają, aby zabezpieczać transakcje bankomatowe. Urządzenie EPP bezpiecznie przechowuje klucz główny i przy użyciu łańcucha kluczy zapewnia bezpieczeństwo bloku PIN oraz szyfrowanie i kontrolę dostępu do nośnika wiadomości między bankomatem a hostem. To zapewnia dobre zabezpieczenie. Nie jest to jednak zabezpieczenie wystarczające.

Urządzenie EPP jest niedostępne podczas rozruchu bankomatu i pozostaje niedostępne, dopóki nie zostanie uruchomiony system Windows i nie zostaną włączone sterowniki XFS SP (sterowniki sprzętowe bankomatu). Oznacza to, że urządzenie EPP nie ma związku z poprawnością oprogramowania w bankomacie. Jeśli aplikacja do bankomatów zainfekowana złośliwym oprogramowaniem chce zaakceptować PIN lub kontrolować dostęp do wiadomości hostowi bankomatu, urządzenie EPP te prośby spełni. Zakres ochrony urządzenia EPP jest zbyt mały, by ułatwiło to zabezpieczenie całego bankomatu.

Jak aktualizować oprogramowanie, gdy występuje ochrona przy użyciu modułu TPM?

Być może na tym etapie czytelnik uważa, że skoro nie ma możliwości zmiany oprogramowania w bankomacie chronionym przy użyciu modułu TPM, trudno będzie przeprowadzić prawidłowe aktualizacje oprogramowania. Należy pamiętać, że oprogramowanie aplikacji jest chronione przy użyciu reguły certyfikatu. Jest ono podpisywane przez dewelopera aplikacji (którym może być sam bank lub zaufany dostawca banku). Jeśli aktualizowane oprogramowanie zostanie podpisane za pomocą bezpiecznego klucza prywatnego organizacji tworzącej oprogramowanie, bankomat zaakceptuje zmianę.

Zmiany podstawowego oprogramowania zmierzone przez rejestry PCR wymagają dodatkowego działania. Podstawowe oprogramowanie może być aktualizowane w sposób całkowicie zdalny i nie wymaga wizyty technika. Jednak w procesie instalacji wymaga utworzenia klucza tymczasowego, który zostaje uszczelniony względem niemienionych rejestrów PCR. Po zakończeniu instalacji nowe klucze są uszczelniane względem pełnego zestawu rejestrów PCR. Proste.

Pamiętajmy o wcześniejszym przykładzie dotyczącym usługi Windows Hello – dobre zabezpieczenia nie są trudne w obsłudze. Tak naprawdę, światowej klasy zabezpieczenia – czyli to co daje bankom ochrona za pomocą modułów TPM – są prostsze w obsłudze, a przy tym bezpieczne pod względem kryptograficznym w porównaniu z metodami tradycyjnymi.

Obrona przed atakami fizycznymi

Chociaż wcześniej nie zostało to powiedziane wprost, znaczna część tego opracowania ma na celu ochronę bankomatu zarówno przed atakami fizycznymi jak i atakami na oprogramowanie. Często spotykana metoda ataku na bankomaty obejmuje usunięcie dysku, modyfikację oprogramowania i wprowadzenie zmian w tym bankomacie oraz w pozostałych. Przeprowadzenie takiego ataku nie jest możliwe, jeśli dysk jest zaszyfrowany, a łańcuch rozruchu jest chroniony przy użyciu modułu TPM.

Podczas ataku innego typu podejmuje się próbę ataku siłowego na moduł TPM, używając serii szybko wpisywanych po sobie losowych kluczy. Moduł TPM ma wbudowaną ochronę „zapobiegającą wielokrotnemu atakowaniu”, która blokuje takie ataki. 

Wreszcie istnieją też inne typy ekstremalnych ataków, które mogą obejmować bezpośrednią ingerencję w elektronikę płyty głównej. Taki atak byłby drogi do przeprowadzenia, ponieważ wymaga specjalistycznego sprzętu, i, o ile wiadomo, do chwili obecnej nie miał jeszcze miejsca. Istnieją jednak tanie sposoby ochrony przed takimi atakami, np. można użyć żywicy do ochrony odkrytych (niezabezpieczonych) połączeń elektronicznych na płycie głównej.

Strzeż się cudownych rozwiązań

Zabezpieczanie bankomatów i komputerów za pomocą modułów TPM w ramach źródła zaufania jest jedynym znanym i opublikowanym sposobem na pełne zabezpieczanie systemów komputerowych. W naszej branży trzeba zadać sobie pytanie, dlaczego zabezpieczenia oparte na modułach TPM nie występują w sieciach bankomatów częściej. Oczywiście różne firmy będą chciały konkurować na rynku i będą chciały pozycjonować swoje produkty zabezpieczające. Należy się tego spodziewać. Bardzo ważne jest jednak, by banki nie dawały się nabierać na iluzoryczne rozwiązania. Oto lista kwestii, na które należy uważać.

Mit: „Nie trzeba korzystać z elementu zabezpieczającego sprzęt”.

Mów wprost, że nie ma możliwości bezpiecznego przechowywania kluczy prywatnych na dysku / dysku SSD bankomatu. Jest to spowodowane tym, że niezależnie od długości łańcucha kluczy musi istnieć niezaszyfrowany klucz początkowy. Jeśli klucz ten jest „ukryty” na dysku, można go zawsze odzyskać. Autorzy niektórych rozwiązań utrzymują, że generowanie klucza ma miejsce przy uruchomieniu. Należy jednak pamiętać, że do wygenerowania tego klucza potrzebny jest kod niezaszyfrowany. Musi on być w jawnej postaci, ponieważ jeszcze nie odszyfrowaliśmy dysku. Jeśli jest on w jawnej postaci, można go po prostu odtworzyć z kodu wykonywalnego, który będzie w jawnej postaci przed odszyfrowaniem dysku.

Pomyślmy o tym w inny sposób. Jeśli bezpieczne przechowywanie kluczy w bankomacie byłoby możliwe przy użyciu samych technik oprogramowania, nasza branża nie zadałaby sobie trudu stworzenia urządzeń EPP...

Mit: „Bezpieczny element sprzętu nie jest wymagany, ponieważ klucze są przechowywane w sieci”.

Jeśli bankomat nie jest wystarczająco bezpieczny, by bezpiecznie przechowywać klucze, bo brakuje modułu TPM, nie można rozwiązać tego problemu, przenosząc klucze do lokalizacji sieciowej. Oto powód: podczas rozruchu bankomat musi uzyskać dostęp do sieci, aby pobrać klucz zabezpieczeń. Nie może on korzystać z kryptograficznie bezpiecznej metody uwierzytelniania w sieci, ponieważ nie ma on magazynu kluczy. Oznacza to, że serwer sieciowy nie wie, „kto prosi o klucz”. Na przykład, gdy funkcja Bitlocker przechowuje klucze w sieci, i tak potrzebuje modułu TPM do uwierzytelniania w sieci. Brak modułu TPM = brak zabezpieczeń.

Mit: „Klucze szyfrowania są niepotrzebne”.

Dostawca utrzymuje, że przechowywanie kluczy nie jest konieczne, ponieważ dysponuje on cudowną technologią, która umożliwia szyfrowanie bez kluczy. Cóż, to by było zbyt piękne, żeby było prawdziwe. Dlaczego świat wciąż się męczy, próbując opanować techniki zarządzania kluczami, skoro klucze są tak naprawdę niepotrzebne? Wszystkie znane techniki szyfrowania, takie jak 3DES, AES i RSA wymagają kluczy prywatnych. Klucze te są nazywane kluczami prywatnymi, ponieważ muszą one być bezpiecznie przechowywane. System szyfrowania jest bezpieczny, ponieważ klucze są wybierane z naprawdę ogromnej liczby możliwości. Na przykład liczba kluczy w 3DES wynosi co najmniej 2112. Wypróbowanie wszystkich kluczy w tempie 5 mld na sekundę zajęłoby 30 lat. W przypadku AES w tym samym tempie zajęłoby to z kolei 1022 lat.

Mit: „Nasz algorytm jest poufny”.

Prawdziwe bezpieczeństwo opiera się na jawnych standardach i jawnych algorytmach oraz kluczach poufnych. W systemie zabezpieczeń poufne powinny być jedynie klucze. Jeśli klucze zostaną naruszone, wystarczy je zmienić, a system będzie znowu bezpieczny.

Mit: „Listy kontroli dostępu (Access Control Lists – ACL) zapewniają bezpieczeństwo”.

Jeśli nie ma blokady modułu TPM, można łatwo obejść zabezpieczenia list kontroli dostępu. Listy ACL mają również wiele innych wad, którymi nie będziemy się tu zajmować, ale wystarczy powiedzieć, że same listy ACL stanowią dla bankomatów niewystarczającą ochronę.

Wnioski

Mam nadzieję, że czytelnik rozumie teraz, dlaczego moduł TPM odgrywa kluczową rolę dla bezpieczeństwa przetwarzania danych, a zatem dla bezpieczeństwa bankomatów. Mam nadzieję, że jest również jasne, że większość banków ma jeszcze wiele do zrobienia w zakresie zabezpieczania swoich sieci w sposób pewny pod względem kryptograficznym. Trzeba również pamiętać o tym, że każdy taki system zabezpieczeń należy projektować z myślą o współdziałaniu. Ze względu na to, że wielu dostawców i wiele rozwiązań produktowych stanowi standardową część na rynku nowoczesnej technologii bankomatowej, poszczególni dostawcy nie mogą wdrażać blokad niezależnie od siebie. W ten sposób powstałby bankomat, który nie nadaje się do użytku.

Mam nadzieję, że ten dokument stanowi początek procesu, który umożliwi opracowanie specyfikacji zabezpieczeń międzyoperacyjnych przy użyciu podstaw kryptograficznych dostępnych w modułach TPM. Swoją pomoc zaoferowała nam organizacja Trusted Computing Group. Dalsze działania zależą teraz od różnych komisji funkcjonujących w naszej branży – XFS4IoT, ATMIA i EAST – oraz banków i dostawców.

Moje podziękowania

Pragnę podziękować następującym osobom za wkład w ten projekt:

  • Michaelowi Moltke (NCC Group Denmark),
  • Kitowi Pattersonowi (KAL),
  • Willowi Arthurowi, Davidowi Challenerowi i Kennethowi Goldmanowi za napisanie e-booka na temat modułów TPM i Davidowi Challenerowi za zorganizowanie wsparcia ze strony firmy TCG.

Aby uzyskać więcej informacji, napisz do nas na adres Ten adres pocztowy jest chroniony przed spamowaniem. Aby go zobaczyć, konieczne jest włączenie w przeglądarce obsługi JavaScript.