Czym jest poufne przetwarzanie?

| Gospodarka Komunikacja

Poufne przetwarzanie (confidential computing) to najnowsza technika ochrony danych przez implementację ich obróbki w zaufanym, odizolowanym środowisku sprzętowym. Pozwala to na zapobieganie nieautoryzowanemu dostępowi do i/lub modyfikacji informacji w czasie ich przetwarzania. W artykule wyjaśniamy, na czym polega ta metoda.

Czym jest poufne przetwarzanie?

Generalnie informacje w postaci cyfrowej mogą występować w jednym z trzech "stanów". Są to: transmisja, kiedy są przesyłane w sieci od nadawcy do odbiorcy, przechowywanie, kiedy zostaną zapisane w jakimś nośniku i przetwarzanie, gdy są poddawane obróbce. Ich ochrona na każdym z tych etapów staje się ważniejsza niż kiedykolwiek. Obecnie bowiem dane elektroniczne, także te wrażliwe, jak informacje z kart kredytowych, dane o naszej lokalizacji i dokumentację medyczną, udostępniamy, zapisujemy oraz przetwarzamy w ogromnych ilościach na niespotykaną wcześniej skalę, coraz częściej nie tylko lokalnie, ale również w urządzeniach mobilnych, Internetu Rzeczy czy zdalnie w chmurze.

Tymczasem dotychczas koncentrowano się przede wszystkim na zapewnianiu poufności przez zapobieganie nieautoryzowanemu podglądowi oraz integralności, dzięki niedopuszczaniu do nieautoryzowanego modyfikowania danych przesyłanych i magazynowanych - ugruntowaną pozycję w tym zakresie mają metody kryptograficzne. W efekcie, w miarę jak zabezpieczenia sieciowe i w urządzeniach pamięci masowej są coraz trudniejsze do złamania, hakerzy zaczęli interesować się etapem obróbki.

Dlatego, chociaż implementacja ochrony podczas transmisji i przechowywania wciąż jest koniecznością, z pewnością już niestety nie wystarczy w przypadku, kiedy dane, które mogą zainteresować przestępców, wymagają przetwarzania. W tym zakresie z pomocą przychodzi tytułowa technika.

Czym jest poufne przetwarzanie?

Jak wyjaśniliśmy we wstępie, poufne przetwarzanie polega na ochronie danych poddawanych obróbce przez wykonywanie obliczeń w zaufanym środowisku sprzętowym (Trusted Execution Environment, TEE). Warto w tym miejscu zaznaczyć, że podana definicja nie ogranicza się do aplikacji w chmurze, lecz ma zastosowanie również m.in. w serwerach lokalnych, bramach, urządzeniach IoT, przetwarzaniu brzegowym (edge), urządzeniach użytkowników. Zaufane środowisko sprzętowe to z kolei nie tylko procesory, lecz także m.in. procesory graficzne czy karty sieciowe. Ponadto nie opiera się wyłącznie na rozwiązaniach wykorzystujących szyfrowanie, chociaż jest to z pewnością najczęściej stosowana technika.

Zaufane środowisko sprzętowe jest wymagane, ponieważ wyłączną gwarancją bezpiecznego przetwarzania danych jest wdrożenie zabezpieczeń na najniższym poziomie ich obróbki. W przeciwnym razie zazwyczaj zabezpieczenia na dowolnej warstwie systemu można obejść, wcześniej łamiąc te, które zaimplementowano na warstwie niższej.

Zapewniając bezpieczeństwo tej najniższej, przy jednoczesnym ograniczeniu do minimum jej zależności z pozostałymi, łatwiej zatem można w dowolnym momencie cyklu życia systemu rozwiązać problemy zagrażające poufności i/lub integralności danych, których źródłem są na przykład: system operacyjny, sterowniki, usługi internetowe.

Cechy podstawowe i dodatkowe TEE

Zaufane środowisko sprzętowe jest definiowane jako to, w którym zagwarantowane są przynajmniej trzy następujące, podstawowe cechy: poufność danych, która oznacza, że nieuprawnione podmioty nie mogą przeglądać danych, kiedy są one używane w TEE, integralność informacji, która oznacza, że nieuprawnione podmioty nie mogą dodawać, kasować ani zmieniać danych, kiedy te są używane w TEE oraz integralność kodu. Dzięki ostatniej nieautoryzowane podmioty nie mogą dodawać, usuwać ani wprowadzać zmian w kodzie wykonywanym w TEE. W kontekście przetwarzania poufnego nieautoryzowane podmioty mogą oznaczać m.in. inne aplikacje, system operacyjny, administratorów systemu, dostawców usług i właściciela infrastruktury lub dowolną inną osobę, która ma fizyczny dostęp do sprzętu. Tutaj warto dodać, że wymienione cechy będące minimum decydującym o zakwalifikowaniu do kategorii TEE gwarantują równocześnie, że wyniki obróbki danych są poprawne.

W zależności od szczegółów implementacji zaufane środowiska sprzętowe mogą także mieć dodatkowe cechy. Przykładem jest zapewnienie poufności kodu. W takim przypadku oprócz ochrony danych TEE uniemożliwia nieupoważnionym podmiotom podgląd kodu. Chroni to algorytm będący własnością intelektualną. Kolejna cecha to uwierzytelnione uruchamianie, uniemożliwiające uruchomienie nieautoryzowanych procesów. Poza tym niektóre zaufane środowiska sprzętowe mogą obsługiwać tylko ograniczony zestaw operacji.

W TEE może również być zaimplementowany mechanizm potwierdzania jego pochodzenia. Dzięki niemu strona sprawdzająca ma pewność, że może zaufać wynikom przetwarzania danych przez kod uruchomiony w danym środowisku. Kolejny opcjonalny mechanizm TEE pozwala na przywrócenie ustawień fabrycznych w razie, gdy wykryte zostanie naruszenie zasad bezpieczeństwa, na przykład nie powiedzie się uwierzytelnienie danego składnika oprogramowania.

Przed czym chroni poufne przetwarzanie?

Istnieją różne rodzaje ataków, które wykorzystują rozmaite luki w atakowanym systemie. Poufne przetwarzanie nie jest środkiem zaradczym na wszystkie z nich - niektóre z zagrożeń mieszczą się w zakresie jego ochrony, a niektóre poza niego wykraczają. Do pierwszych zaliczane są m.in. ataki nakierowane na oprogramowanie, w tym firmware, system operacyjny czy BIOS, zainstalowane w obiekcie ataku. Do tej grupy należą także ataki, w których wykorzystywane są luki w protokołach sieciowych, w zakresie uwierzytelnienia i transmisji danych, jak również ataki, w których wykorzystywane są słabe punktu algorytmów szyfrowania oraz podstawowe typy ataków o charakterze fizycznym (m.in. typu cold DRAM extraction, monitoring cache i magistral, podłączenie urządzeń atakujących do portu obiektu ataku, na przykład PCIe, Firewire, USB-C).

Wśród zagrożeń, które są ogólnie uważane za wykraczające poza zakres ochrony gwarantowanej przez poufne przetwarzanie, wymienia się z kolei zaawansowane ataki fizyczne, które zazwyczaj wymagają długotrwałego i/lub inwazyjnego dostępu do sprzętu i ataki, które przeprowadzane są w łańcuchu dostaw, obejmujące m.in. te przeprowadzane na etapie produkcji układów scalonych.

Podsumowanie

Implementacja poufnego przetwarzania ma na celu ograniczenie możliwości dostępu do danych poddawanych obróbce i kodu uruchamianego w zaufanym środowisku sprzętowym w takim stopniu, aby włamanie tą drogą nie było opłacalne ani nie wydawało się wykonalne. Oczywiście to, co dla jednego atakującego wydaje się nieekonomiczne lub niemożliwe do zrealizowania, w przypadku innego, dysponującego większymi zasobami, może za takie nie zostać uznane. Choć jednak żadne zabezpieczenie nie jest doskonałe, wdrożenie rozwiązań zapewniających poufne przetwarzanie znacząco podnosi hakerom poprzeczkę.

Monika Jaworowska