Inżynierowie z firmy Intel zaproponowali nowy protokół HTTPA (HTTPS Attestable), który rozszerza HTTPS o dodatkowe gwarancje bezpieczeństwa dla przeprowadzonych obliczeń. HTTPA umożliwia zapewnienie integralności przetwarzania żądania użytkownika na serwerze oraz potwierdzenie, że serwis internetowy zasługuje na zaufanie, a kod działający w środowisku TEE (Trusted Execution Environment) na serwerze nie został zmieniony w wyniku hakowania lub dywersji administratora.
HTTPS zabezpiecza przesyłane dane na etapie ich transmisji przez sieć, ale nie może wykluczyć naruszenia ich integralności w wyniku ataków na serwer. Izolowane enclave'y, tworzone z wykorzystaniem technologii takich jak Intel SGX (Software Guard Extension), ARM TrustZone oraz AMD PSP (Platform Security Processor) umożliwiają ochronę istotnych obliczeń i zmniejszenie ryzyka wycieków lub zmiany poufnych informacji na końcowym węźle.
HTTPA, aby zapewnić wiarygodność przesyłanych informacji, pozwala na korzystanie z narzędzi atestujących oferowanych przez Intel SGX, które potwierdzają autentyczność enclave'u, w którym dokonano obliczeń. W istocie HTTPA rozszerza HTTPS o możliwość zdalnej atestacji enclave'u i pozwala sprawdzić, czy działa on w autentycznym środowisku Intel SGX, a serwis internetowy można uznać za godny zaufania. Protokół jest rozwijany jako uniwersalny i poza Intel SGX może być również wdrażany dla innych systemów TEE.

Oprócz standardowego dla HTTPS procesu nawiązywania zabezpieczonego połączenia, HTTPA dodatkowo wymaga uzgodnienia zaufanego klucza sesyjnego. Protokół wprowadza nową metodę HTTP „ATTEST”, która umożliwia przetwarzanie trzech typów żądań i odpowiedzi:
- „preflight” do sprawdzenia, czy zdalna strona obsługuje atestację enclave'ów;
- „attest” do uzgodnienia parametrów atestacji (wybór algorytmu kryptograficznego, wymiana unikalnych dla sesji losowych ciągów, generacja identyfikatora sesji oraz przekazanie klientowi publicznego klucza enclave'u);
- „trusted session” — utworzenie klucza sesyjnego do zaufanej wymiany informacji. Klucz sesyjny jest tworzony na podstawie wcześniej uzgodnionej tajnej sekwencji wstępnej (pre-session secret), której klient użył do uzyskania. serwera klucza publicznego TEE oraz losowo generowanych przez każdą stronę sekwencji.

HTTPA zakłada, że klient jest zaufany, a serwer nie, tzn. klient może używać tego protokołu do weryfikacji obliczeń w środowisku TEE. Przy tym HTTPA nie gwarantuje, że pozostałe obliczenia, które odbywają się poza TEE, nie zostały skompromitowane, co wymaga zastosowania odrębnego podejścia do tworzenia usług internetowych. W ten sposób, głównie HTTPA jest ukierunkowane na użycie ze specjalistycznymi usługami, które mają wysokie wymagania dotyczące integralności informacji, takimi jak systemy finansowe i medyczne. serwera www W sytuacjach, gdy obliczenia w TEE muszą być potwierdzone zarówno dla serwera, jak i dla klienta, przewidziano wariant protokołu mHTTPA (Mutual HTTPA), który wykonuje dwustronną weryfikację. Ten wariant jest bardziej złożony z powodu konieczności dwustronnego generowania kluczy sesyjnych dla serwera i klienta.
Inżynierowie z firmy Intel zaproponowali nowy protokół HTTPA (HTTPS Attestable), który rozszerza HTTPS o dodatkowe gwarancje bezpieczeństwa przeprowadzonych obliczeń.
Źródło: opennet.ru
