Gli ingegneri di Intel hanno proposto un nuovo protocollo HTTPA (HTTPS Attestable), che estende HTTPS con ulteriori garanzie di sicurezza per i calcoli effettuati. HTTPA consente di garantire l'integrità dell'elaborazione della richiesta dell'utente sul server e di verificare che il servizio web sia affidabile e che il codice in esecuzione nell'ambiente TEE (Trusted Execution Environment) sul server non sia stato modificato a causa di un attacco o di una manomissione da parte dell'amministratore.
HTTPS protegge i dati trasmessi durante il trasferimento sulla rete, ma non può escludere la possibilità di violazioni della loro integrità in seguito ad attacchi al server. Gli enclave isolati, creati con tecnologie come Intel SGX (Software Guard Extension), ARM TrustZone e AMD PSP (Platform Security Processor), permettono di proteggere calcoli critici e ridurre il rischio di perdite o alterazioni di informazioni riservate sul nodo finale.
HTTPA, per garantire l'affidabilità delle informazioni trasmesse, sfrutta i meccanismi di attestazione forniti in Intel SGX, che confermano l'autenticità dell'enclave in cui vengono eseguite le elaborazioni. In sostanza, HTTPA amplia HTTPS con la possibilità di attestazione remota dell'enclave e consente di verificare che essa operi in un ambiente autentico Intel SGX, offrendo fiducia al servizio web. Il protocollo è originariamente sviluppato come universale e può essere implementato non solo su Intel SGX, ma anche su altri sistemi TEE.

Oltre al consueto processo di stabilimento di una connessione sicura per HTTPS, HTTPA richiede ulteriormente un accordo su una chiave di sessione attendibile. Il protocollo introduce un nuovo metodo HTTP "ATTEST", che consente di gestire tre tipi di richieste e risposte:
- "preflight" per verificare se la parte remota supporta l'attestazione degli enclave;
- "attest" per concordare i parametri di attestazione (scelta dell'algoritmo crittografico, scambio di sequenze casuali uniche per la sessione, generazione di un identificatore di sessione e invio al cliente della chiave pubblica dell'enclave);
- «trusted session» — generazione di una chiave di sessione per uno scambio fidato di informazioni. La chiave di sessione viene generata sulla base di una sequenza segreta preliminare precedentemente concordata (pre-session secret), creata dal cliente utilizzando la chiave pubblica ricevuta da server TEE, e sequenze casuali generate da entrambe le parti.

HTTPA implica che il cliente è fidato, mentre il server non lo è, cioè il cliente può utilizzare questo protocollo per verificare i calcoli nell'ambiente TEE. Tuttavia, HTTPA non garantisce che altre operazioni eseguite al di fuori del TEE non siano state compromesse, il che richiede un approccio distinto nello sviluppo di servizi web. Pertanto, HTTPA è principalmente orientato all'uso con servizi specializzati che hanno requisiti elevati per l'integrità delle informazioni, come i sistemi finanziari e sanitari. web server le altre elaborazioni non effettuate nel TEE non sono state compromesse, il che richiede l'adozione di un approccio distinto nello sviluppo dei servizi web. Pertanto, HTTPA è principalmente orientato all'uso con servizi specializzati che hanno requisiti elevati per l'integrità delle informazioni, come i sistemi finanziari e quelli medici.
Per situazioni in cui le elaborazioni nel TEE devono essere confermate sia dal server sia dal client, è previsto un protocollo mHTTPA (Mutual HTTPA), che offre una verifica bilaterale. Questa variante è più complessa a causa della necessità di formare in modo bidirezionale le chiavi di sessione per il server e il client.
Fonte: opennet.ru
