Ingenieure von Intel haben ein neues Protokoll namens HTTPA (HTTPS Attestable) vorgestellt, das HTTPS um zusätzliche Sicherheitsgarantien für durchgeführte Berechnungen erweitert. HTTPA gewährleistet die Integrität der Verarbeitung von Benutzeranfragen auf dem Server und stellt sicher, dass der Webdienst vertrauenswürdig ist und der auf dem Server ausgeführte Code in einer TEE-Umgebung (Trusted Execution Environment) nicht durch einen Angriff oder eine Sabotage des Administrators verändert wurde.
HTTPS schützt die übertragenen Daten während der Übertragung im Netzwerk, kann jedoch nicht ausschließen, dass ihre Integrität durch Angriffe auf den Server beeinträchtigt wird. Isolierte Enklaven, die mittels Technologien wie Intel SGX (Software Guard Extension), ARM TrustZone und AMD PSP (Platform Security Processor) geschaffen werden, ermöglichen es, wichtige Berechnungen zu schützen und das Risiko von Datenlecks oder Änderungen vertraulicher Informationen am Endpunkt zu verringern.
HTTPA gewährleistet die Glaubwürdigkeit der übermittelten Informationen, indem es die in Intel SGX bereitgestellten Attestierungsfunktionen nutzt, die die Authentizität des Enklaven bestätigen, in dem die Berechnungen durchgeführt werden. Im Wesentlichen erweitert HTTPA HTTPS um die Möglichkeit der Remote-Authentifizierung des Enklavens und ermöglicht es, zu überprüfen, dass die Ausführung in einer echten Intel SGX-Umgebung erfolgt und der Webservice vertrauenswürdig ist. Das Protokoll wird ursprünglich als universell entwickelt und kann neben Intel SGX auch für andere TEE-Systeme implementiert werden.

Neben dem standardmäßigen HTTPS-Prozess zur Einrichtung einer sicheren Verbindung erfordert HTTPA zusätzlich eine Vereinbarung über einen vertrauenswürdigen Sitzungsschlüssel. Das Protokoll führt eine neue HTTP-Methode „ATTEST“ ein, die die Verarbeitung von drei Arten von Anfragen und Antworten ermöglicht:
- „preflight“ zur Überprüfung, ob die entfernte Seite die Attestierung von Enklaven unterstützt;
- „attest“ zur Vereinbarung der Attestierungsparameter (Auswahl des kryptografischen Algorithmus, Austausch von für die Sitzung einzigartigen Zufallsfolgen, Generierung einer Sitzungs-ID und Übertragung des öffentlichen Schlüssels des Enklaven an den Client);
- „trusted session“ — Erstellung eines Sitzungsschlüssels für den vertrauensvollen Austausch von Informationen. Der Sitzungsschlüssel wird auf Basis einer zuvor vereinbarten geheimen Vorausreihenfolge (pre-session secret) generiert, die der Client unter Verwendung des erhaltenen von Server dem öffentlichen Schlüssel des TEE und von jeder Partei generierten Zufallssequenzen erstellt.

HTTPA setzt voraus, dass der Client vertrauenswürdig ist, der Server jedoch nicht, d.h. der Client kann dieses Protokoll zur Verifizierung von Berechnungen im TEE-Umfeld verwenden. Dabei garantiert HTTPA jedoch nicht, dass die während der Ausführung Webserver weiteren Berechnungen, die nicht im TEE durchgeführt werden, nicht kompromittiert wurden, was einen separaten Ansatz zur Entwicklung von Webdiensten erfordert. Somit zielt HTTPA hauptsächlich auf die Nutzung mit spezialisierten Diensten ab, die erhöhte Anforderungen an die Integrität von Informationen stellen, wie z.B. Finanz- und medizinische Systeme.
In Situationen, in denen Berechnungen im TEE sowohl für den Server als auch für den Client validiert werden müssen, steht das mHTTPA-Protokoll (Mutual HTTPA) zur Verfügung, das eine bidirektionale Verifizierung durchführt. Diese Variante ist komplexer, da eine bidirektionale Generierung von Sitzungsschlüsseln für den Server und den Client erforderlich ist.
Quelle: opennet.ru
