Abstract:The Intel Software Guard Extensions (SGX) technology, recently introduced in the new generations of x86 processors, allows the execution of applications in a fully protected environment (i.e., within enclaves). Because it is a recent technology, machines that rely on this technology are still a minority. In order to evaluate the SGX, an emulator of this technology (called OpenSGX) implements and replicates the main functionalities and structures used in SGX. The focus is to evaluate the resulting overhead from running an application within an environment with emulated SGX. For the evaluation, benchmark applications from the MiBench platform were employed. As performance metrics, we gathered the total number of instructions and the total number of CPU cycles for the execution of each application with and without OpenSGX. Keywords: trusted execution environment -software guard extensions -emulator Resumo: Ao permitir a execução de aplicações em um contexto totalmente protegido (i.e., dentro de enclaves), amplia-se as possibilidades para as novas gerações de processadores Intel da família x86 com a extensão Software Guard Extensions (SGX). Por se tratar de uma tecnologia recente, as máquinas que contam com essa tecnologia ainda são minoria. Objetivando avaliar o SGX, utilizou-se um emulador dessa tecnologia denominado OpenSGX, o qual implementa e reproduz as principais funcionalidades e estruturas utilizadas no SGX. O enfoque consistiu em avaliar o overhead, em termos de processamento, resultante da execução de uma aplicação em um ambiente com o SGX emulado. Para a avaliação, empregou-se aplicações de benchmark da plataforma MiBench, modificando-as para compatibilizar a execução em enclaves no OpenSGX. Como métricas de desempenho, coletou-se o número total de instruções e o número total de ciclos de CPU para a execução completa de cada aplicação com e sem o OpenSGX.
IntroduçãoAs tecnologias de hardware voltadasà computação confiável disponibilizam recursos e mecanismos para a criação e manutenção de ambientes de execução confiável (Trusted Execution Environment, TEE). Considera-se, de modo geral, que a execuçãoé confiável em ambientes onde o controle sobre o sistemaé pleno [1]. Recursos de TEE não constam, habitualmente, em processadores populares (e.g., família Intel x86). No entanto, a Intel introduziu, em agosto de 2015, a extensão denominada Software Guard Extensions (SGX) a partir da sexta geração da família x86, propondo-se como uma plataforma padrão de TEE nos processadores Intel.Com o SGX, possibilita-se o isolamento da aplicação no momento de sua execução, utilizando-se estruturas a nível de hardware denominadas de enclaves. Estes são implementados para garantir a integridade e privacidade das informações durante todo o processamento, até mesmo em eventuais comprometimentos do sistema operacional ou do hipervisor. A proposta traz implicações diretas ao paradigma de computação nas nuvens (i.e., cloud computing), possibilitando ofertar garantias de integridade e privacidadeàs aplicações em níveis n...