SGX
Intel SGX (Software Guard Extensions) zapewnia mechanizmy wykonywania enklaw z okreslonym modelem zagrozen i interfejsem programowym. Sama obsluga przez procesor nie wystarcza, aby stwierdzic, ze aplikacja enklawowa moze dzialac na danym systemie.
Co musisz wiedzieć
Intel SGX (Software Guard Extensions) zapewnia mechanizmy wykonywania enklaw z okreslonym modelem zagrozen i interfejsem programowym. Sama obsluga przez procesor nie wystarcza, aby stwierdzic, ze aplikacja enklawowa moze dzialac na danym systemie.
Jak to działa
SGX definiuje pamiec enklaw oraz mechanizmy wejscia/wyjscia, z pamiecia podreczna stron enklawy (enclave page cache) zarzadzana dzieki wsparciu platformy i systemu operacyjnego. Aplikacja enklawowa rozdziela komponenty zaufane od niezaufanych i moze wykorzystywac atestacje do potwierdzenia tozsamosci enklawy. Ilosc uzytecznej pamieci enklaw oraz obslugiwana polityka uruchamiania zaleza od platformy.
Gdzie funkcja jest przydatna
Aplikacja moze umiescic scisle zdefiniowane obliczenia oraz sekrety wewnatrz enklawy, traktujac otaczajacego hosta jako znajdujacego sie poza jej granica zaufania. Operacje we/wy, niezaufane dane wejsciowe, obsluga wyjatkow oraz kwestie kanalow bocznych nadal wymagaja swiadomego zaprojektowania.
Jak sprawdzać obsługę i włączenie
Nalezy sprawdzic bit 2 w CPUID.07H.00H:EBX oraz informacje w lisciu 12H CPUID wlasciwym dla SGX, a nastepnie zweryfikowac aprowizacje oprogramowania ukladowego, obsluge przez sterowniki/srodowisko uruchomieniowe oraz wymagania atestacji aplikacji. Nalezy stosowac dokladnie taka konfiguracje, jaka jest obslugiwana przez dana platforme.
Możliwości sprzętowe, stan włączenia oraz egzekwowanie ochrony muszą być sprawdzane osobno. Procesor może obsługiwać zabezpieczenie, podczas gdy system operacyjny, aplikacja lub zasady maszyny wirtualnej go nie aktywują. Pole obsługi w bazie danych nie jest atestacją działającego systemu.
Czego ta funkcja nie określa
Oznaczenie SGX nie precyzuje szczegolow SGX1/SGX2, elastycznej kontroli uruchamiania (flexible launch control), dostepnosci uslugi atestacji ani konkretnej pojemnosci pamieci enklaw. Nie zapewnia ono poufnosci dowolnym, niezmodyfikowanym aplikacjom ani nie eliminuje wszystkich kanalow bocznych.
Zgodność i wydajność w praktyce
Należy dbać o aktualność systemu operacyjnego, oprogramowania układowego i powiązanego środowiska wykonawczego. Jeżeli zabezpieczenie ujawni problem ze zgodnością, należy w pierwszej kolejności skorzystać z diagnostyki producenta i oficjalnych aktualizacji. Zmiana ogólnego przełącznika ochrony może wpłynąć na niepowiązane aplikacje i powinna być prowadzona zgodnie z jednoznacznymi zasadami wdrażania i przywracania.
Praktyczna lista kontrolna weryfikacji
- Zanotuj dokładny model procesora lub platformy oraz wersje używanej aplikacji, systemu operacyjnego i środowiska wykonawczego. Zachowaj dokładne sformułowanie błędu lub wymagania.
- Sprawdź dokumentację producenta dla danego modelu, a następnie zweryfikuj faktyczne możliwości i stan włączenia w środowisku, w którym działa program.
- Porównaj każde wymaganie wybranego pliku binarnego lub backendu. Podobnie nazwana funkcja, alias lub ogólne oznaczenie technologii nie są wystarczające.
- Upewnij się, że aplikacja wybrała zamierzoną implementację. Użyj jej udokumentowanej diagnostyki oraz obsługiwanego mechanizmu fallback, gdy wymagania nie są spełnione.
- Wprowadzaj jednorazowo tylko jedną obsługiwaną zmianę i powtarzaj to samo obciążenie testowe. Zachowaj oryginalną konfigurację oraz dostępną ścieżkę przywracania.
Gdy funkcja jest wymieniona, lecz oprogramowanie nie może z niej skorzystać
Zacznij od elementu, w którym bezpośrednio występuje błąd. Baza danych sprzętu opisuje zarejestrowane możliwości; system operacyjny lub hipernadzorca może udostępniać inne środowisko efektywne. Błąd nieprawidłowej instrukcji (illegal instruction) wymaga także zbadania faktycznej instrukcji powodującej błąd oraz kompilacji pliku binarnego, ponieważ uszkodzenie danych lub inna nieobsługiwana instrukcja może wywołać podobny objaw.
Zainstaluj wersję aplikacji, sterownika lub środowiska wykonawczego obsługiwaną na danej platformie i w razie potrzeby użyj udokumentowanej przez producenta kompilacji bazowej lub awaryjnej. Aktualizacja oprogramowania nie może utworzyć instrukcji, której procesor fizycznie nie posiada. Modyfikacje oprogramowania układowego i zasad bezpieczeństwa powinny przebiegać zgodnie z procedurą producenta systemu i planem przywracania, a nie ogólnikowym schematem optymalizacji.
Źródła i zakres niniejszego opisu
Intel 64 and IA-32 Architectures Software Developer's Manual · Referencyjna implementacja programistyczna Intel SGX
Te źródła definiują zachowanie architektoniczne i wymagania oprogramowania. Nie weryfikują one niezależnie każdej wartości funkcji na powiązanej stronie modelu sprzętu. W celu sprawdzenia obsługi przez model należy skorzystać z materiałów producenta na tej stronie i sprawdzić efektywną konfigurację systemu. Niniejszy artykuł nie zawiera wyników testów wydajnościowych, certyfikacji ani daty niezależnego przeglądu.
Źródła i weryfikacja
Własność redakcyjna: Feex. Nie odnotowano daty niezależnego przeglądu. Jak prowadzimy badania.
- Intel 64 and IA-32 Architectures Software Developer's Manual · Tomy 1 i 2 opisują wymienione rodziny instrukcji oraz CPUID; tom 3 opisuje stan, stronicowanie, VMX i mechanizmy ochrony. Dokumentacja architektury nie przesądza o obsłudze w konkretnym modelu.
- Referencyjna implementacja programistyczna Intel SGX · Oficjalny projekt SDK/runtime oraz materialy referencyjne do wdrazania enklaw. Dokladne wymagania dotyczace platformy i atestacji zaleza od konkretnej aplikacji.
Czy ten artykuł był pomocny?
Wystarczy odpowiedź tak lub nie. Wybierz powód, jeśli chcesz, lub dodaj krótką notatkę.
Dziękujemy. Pomaga nam to ulepszać tę stronę.