Procesory
Artykuł
Mateusz Brzostek, Wtorek, 20 czerwca 2017, 22:00

W procesorach Epyc AMD udostępnia dwie ważne funkcje związane z bezpieczeństwem danych w serwerach.

Szyfrowanie pamięci – SME

Pierwszą jest sprzętowe szyfrowanie pamięci, umożliwione przez umieszczone w kontrolerze pamięci układy szyfrujące. Pozwala ono na zaszyfrowanie całej lub części komunikacji między procesorem a pamięcią RAM. Szyfrowanie może działać w trybie przezroczystym dla oprogramowania (TSME – Transparent Secure Memory Encryption), w którym po włączeniu go w UEFI podczas uruchamiania komputera cała komunikacja i cała zawartość pamięci są zaszyfrowane. Ten tryb nie wymaga współpracy ze strony systemu operacyjnego i oprogramowania – można go wykorzystać również w połączeniu ze starszymi systemami. Ta funkcja chroni przed fizycznymi atakami na pamięć RAM, na przykład opisaną lata temu metodą polegającą na wyjęciu modułu RAM zaraz po wyłączeniu serwera, przeniesieniu go w warunkach chłodniczych (zmniejsza to ruchliwość elektronów i spowalnia utratę zawartości RAM-u) do innego komputera i odczytaniu danych ostatnio przechowywanych w kościach pamięci. Takie ataki są szczególnie łatwe, jeśli serwer wykorzystuje pamięć nieulotną (NVDIMM), która przechowuje dane nawet po odłączeniu zasilania.

Przy współpracy systemu operacyjnego można za pomocą SME zaszyfrować wybraną część pamięci. (Umożliwia to na przykład Ubuntu). To pozwala zabezpieczyć pamięć wykorzystywaną przez jeden program przed odczytaniem przez inne programy lub system operacyjny. Ten mechanizm wykorzystuje najstarszy bit adresu do oznaczenia, czy zawartość tego adresu powinna być zaszyfrowana. To inaczej niż w technice SGX Intela (mówiliśmy o niej w opisie architektury Skylake): w jej przypadku zaszyfrowane obszary pamięci tworzy się specjalnymi instrukcjami dla procesora. SGX wymaga więc modyfikacji programów, które chcemy zabezpieczyć, podczas gdy AMD SME – jedynie systemu operacyjnego; można zabezpieczyć starsze lub niezaprojektowane z myślą o SGE programy.

Szyfrowanie wirtualnych maszyn – SEV

Pokrewne tej technice jest szyfrowanie wirtualnych maszyn (SEV – Secure Encrypted Virtualisation). SEV pozwala zaszyfrować pamięć należącą do oddzielnych maszyn wirtualnych uruchomionych na jednym serwerze. Każda maszyna wirtualna jest zaszyfrowana oddzielnym kluczem. Nadzorca (hypervisor) oraz każda maszyna wirtualna mają dostęp wyłącznie do swojego własnego obszaru pamięci oraz do opcjonalnego wspólnego obszaru. Dzięki temu zawartość maszyn wirtualnych jest chroniona przed:

  • nieuczciwym administratorem – operator serwera mający kontrolę nad nadzorcą oraz fizyczny dostęp do serwera nie ma dostępu do danych w maszynie wirtualnej;
  • lukami bezpieczeństwa w nadzorcy – szkodliwy kod, który mógłby wydostać się z jednej z maszyn wirtualnych i przejąć kontrolę nad nadzorcą, i tak nie będzie miał dostępu do pozostałych maszyn wirtualnych.

SEV wymaga, żeby nadzorca oraz systemy operacyjne działające w maszynach wirtualnych były przygotowane na obsługę szyfrowania. 

Dzięki zastosowaniu SEV dostawcy usług chmurowych mogą zagwarantować maszynom wirtualnym wyższy stopień bezpieczeństwa w inny sposób niż przez przydzielenie każdemu klientowi serwera dedykowanego.

Kluczami szyfrującymi w technikach SEV i SME zarządza PSP, wbudowany w każdy procesor AMD osobny mikroprocesor ARM Cortex-A5. PSP jest stosowany w procesorach AMD od wielu lat (począwszy od APU Llano) i wcześniej udostępniał technikę TrustZone. Dopiero teraz, dzięki dodatkowym układom szyfrującym w kontrolerze pamięci, umożliwia szyfrowanie RAM-u i szyfrowaną wirtualizację. Szyfrowanie pamięci powiększa opóźnienie w dostępie do pamięci o mniej więcej 7 ns; jak twierdzi AMD, w praktycznych zastosowaniach pogarsza to wydajność średnio o 1,5%, a maksymalnie – o 3%.

Warto zauważyć, że chociaż techniki SME i SEV różnią się funkcjonalnie od SGX Intela, dotyczą ich te same zastrzeżenia z dziedziny bezpieczeństwa. Gdy Intel wprowadzał do sprzedaży procesory Skylake, rozległy się głosy, że może mieć znane tylko sobie furtki w oprogramowaniu chipsetu (który zarządza kluczami szyfrującymi), pozwalające na odczytanie rzekomo sekretnych kluczy. Intel mógłby takie furtki udostępnić agencjom rządowym albo dostawcom oprogramowania antywirusowego. Choć w technice AMD klucze szyfrujące nigdy nie opuszczają obudowy procesora (są generowane, używane i zarządzane w procesorze), rozwiązanie AMD podobnie opiera się na zaufaniu do dostawcy procesora. Oczywiście, nie jest to ostateczne remedium na wszystkie problemy bezpieczeństwa, ale może służyć jako dodatkowa warstwa zabezpieczeń.

Ocena artykułu:
Ocen: 19
Zaloguj się, by móc oceniać
Artykuły spokrewnione
Facebook