Sto cercando di programmare con la funzione Intel Software Guard Extensions (SGX)
di recente. L'idea di SGX è creare un'enclave in cui il codice sensibile alla sicurezza sia caricato ed eseguito. Soprattutto l'accesso alla memoria (e molte altre restrizioni) a quell'enclave viene applicato dall'hardware.Che cosa implica disabilitare syscall in Intel SGX
Nel suo manual, ho trovato che l'istruzione syscall
è illegale all'interno di un'enclave (vedere la Tabella 3-1), insieme a molte altre istruzioni potrebbe modificare il livello di privilegi. Mi chiedo cosa implichi questo. Poiché il servizio del kernel come open
, socket
termina con l'aumento delle chiamate di sistema, significa che vietare l'istruzione syscall
proibisce effettivamente il codice all'interno dell'enclave da qualsiasi servizio del kernel, come file e socket? Mi sembra abbastanza poco convincente perché in questo modo ciò che può fare un enclave sarebbe severamente limitato. Quindi penso che abbia frainteso o che ci sia del lavoro in giro.
Grazie mille per la risposta! Sì, quello che hai detto ha senso e la chiamata di sistema dovrebbe essere vietata. Ma ho ricevuto alcune domande di follow-up. 1) Nella carta che hai indicato, è spesso menzionato che abbiamo un * canale fidato * tra enclave e server remoto. Ma se le cose 'socket' non sono permesse, come fa un'enclave a comunicare con il server remoto? 2) In che modo un'enclave comunica con le enclave locali? Il manuale dice che è necessario passare "REPORT" a un altro per attestare, ma come si fa senza l'aiuto del sistema? – qweruiop
In generale, in che modo enclaves IPC senza l'aiuto della guida del sistema? Grazie in anticipo. – qweruiop
Ora mi sembra chiaro .. Il cosiddetto * percorso di fiducia * è stabilito in cima al * percorso non affidabile * offerto dal sistema operativo (IPC tradizionale tra le applicazioni), con protezione crittografica (le chiavi sono conosciute solo dalle enclave). – qweruiop