Les ingénieurs de la société Intel ont proposé un nouveau protocole HTTPA (HTTPS Attestable), qui étend HTTPS avec des garanties supplémentaires de sécurité pour les calculs réalisés. HTTPA permet d'assurer l'intégrité du traitement de la demande de l'utilisateur sur le serveur et de s'assurer que le service web mérite confiance et que le code fonctionnant dans l'environnement TEE (Trusted Execution Environment) sur le serveur n'a pas été modifié à la suite d'une violation ou d'une manipulation par l'administrateur.
HTTPS protège les données transmises lors de leur transfert sur le réseau, mais ne peut pas exclure la violation de leur intégrité à la suite d'attaques sur le serveur. Les enclaves isolées, créées grâce à des technologies telles qu'Intel SGX (Software Guard Extension), ARM TrustZone et AMD PSP (Platform Security Processor), permettent de sécuriser des calculs critiques et de réduire le risque de fuite ou de modification d'informations confidentielles sur le nœud final.
HTTPA, pour garantir l'authenticité des informations transmises, permet d'utiliser les moyens d'attestation fournis par Intel SGX, qui confirment l'authenticité de l'enclave où les calculs ont été réalisés. En substance, HTTPA étend HTTPS avec la possibilité d'attestation à distance de l'enclave et permet de vérifier qu'elle s'exécute dans un véritable environnement Intel SGX, offrant ainsi une confiance dans le service web. Le protocole est à l'origine développé comme universel et peut être implémenté, en plus d'Intel SGX, pour d'autres systèmes TEE.

Outre le processus habituel d'établissement d'une connexion sécurisée pour HTTPS, HTTPA exige également un accord sur une clé de session digne de confiance. Le protocole introduit une nouvelle méthode HTTP « ATTEST », qui permet de traiter trois types de requêtes et réponses :
- « preflight » pour vérifier si la partie distante prend en charge l'attestation des enclaves ;
- « attest » pour convenir des paramètres d'attestation (choix de l'algorithme cryptographique, échange de séquences aléatoires uniques pour la session, génération d'un identifiant de session et transmission de la clé publique de l'enclave au client) ;
- « trusted session » — formation d'une clé de session pour un échange d'informations de confiance. La clé de session est formée sur la base d'une séquence secrète préliminaire précédemment convenue (pre-session secret), créée par le client à l'aide de celle obtenue de de serveurs de la clé publique TEE, et des séquences aléatoires générées par chaque partie.

HTTPA implique que le client est digne de confiance, tandis que le serveur ne l'est pas, c'est-à-dire que le client peut utiliser ce protocole pour vérifier les calculs dans l'environnement TEE. Cependant, HTTPA ne garantit pas que les calculs effectués lors du fonctionnement serveur web ne soient pas compromis, ce qui nécessite une approche distincte pour le développement de services web. Ainsi, HTTPA est principalement destiné à être utilisé avec des services spécialisés qui ont des exigences élevées en matière d'intégrité des informations, telles que les systèmes financiers et médicaux.
Pour les situations où les calculs dans TEE doivent être vérifiés tant pour le serveur que pour le client, une variante du protocole mHTTPA (Mutual HTTPA) est prévue, réalisant une vérification bidirectionnelle. Cette variante est plus complexe en raison de la nécessité de générer des clés de session de manière bilatérale pour le serveur et le client.
Source : opennet.ru
