Freschezza per enclave SGX

6

I futuri processori Intel supporteranno SGX (Software Guard Extensions), che consente di eseguire software di sicurezza critico sul processore in modo isolato da tutto il resto del codice. L'hardware fornisce un isolamento sicuro, quindi nessun altro codice può interferire con il codice di sicurezza in esecuzione nell'enclave SGX. Anche il kernel del sistema operativo non è affidabile e non può manomettere il codice nell'enclave SGX. L'enclave stessa è stateless, ma c'è un modo in cui può salvare i dati su storage esterno in modo sicuro: l'hardware supporta lo storage sealed, dove i dati vengono crittografati e MAC prima di essere scritti su disco.

Esistono garanzie per la freschezza dei dati sigillati? In altre parole, sono preoccupato per un attacco di rollback, in cui un sistema operativo malevolo tenta di riportare lo stato dell'enclave a un momento precedente: ad esempio, il checkpoint dello stato salvato, eseguire l'enclave per un po ', quindi eventualmente ripristinare di nuovo al checkpoint. Il codice SGX può difendersi da tali attacchi rollback? Se sì, come?

    
posta D.W. 30.07.2015 - 21:09
fonte

2 risposte

4

No, non direttamente.

Come hai notato, SGX garantisce la freschezza e l'integrità dello stato transitorio in memoria, ma non fornisce alcun meccanismo (come un contatore monotono) per garantire la freschezza dello stato persistente. Quindi, se vuoi semplicemente affidarti a SGX sulla CPU locale, non puoi proteggerti dagli attacchi di rollback di stato. La soluzione generale a questo problema è la comunicazione con un'altra parte fidata che può fornire il meccanismo di base per garantire la freschezza. Quello potrebbe essere un servizio / macchina fidato sull'altro lato di una rete, o potrebbe essere un altro hardware affidabile come un TPM. In entrambi i casi, poiché si comunica su un canale non attendibile, è necessario proteggerlo (ad esempio, crittografia). Se il tuo carico di lavoro è pesantemente aggiornato, ti imbatterai anche nel confuso compromesso tra la conservazione delle scritture mentre aspetti la comunicazione con la parte fidata e la possibilità di aprire una finestra per gli attacchi di rollback.

    
risposta data 28.08.2015 - 06:43
fonte
1

SGX fornisce contatori monotonici per prevenire i rollback, ma questi non sono disponibili su tutte le macchine. Intel applica un limite di frequenza alle operazioni di scrittura per evitare che la memoria si esaurisca, dopodiché i contatori diventano inutilizzabili. Questo è indicato nella documentazione ufficiale .

Creating a monotonic counter (MC) involves writing to the non-volatile memory available in the platform. Repeated write operations could cause the memory to wear out during the normal lifecycle of the platform. Intel® SGX prevents this by limiting the rate at which MC operations can be performed. If you exceed the limit, the MC operation may return SGX_ERROR_BUSY for several minutes.

Ci sono altri problemi secondo questo articolo ,

  • i contatori monotonici sono lenti,
  • si logorano dopo poco più di 1M di scrittura nei loro test (5 laptop, uno non supporta MC),
  • e forse peggio i contatori spariscono se la batteria del BIOS viene rimossa o la PSW viene reinstallata. Non vengono ripristinati, è come se non fossero mai stati creati per iniziare.
risposta data 03.11.2017 - 12:14
fonte

Leggi altre domande sui tag