Projeto Keystone: Ambiente Confiável para Execução de Aplicativos Baseados em RISC-V

Uma equipe de pesquisadores do MIT e da Universidade da Califórnia em Berkeley, com o apoio do Facebook, Google, Microsoft e outros gigantes de TI, apresentou o projeto Keystone . Este é um componente de código aberto que permite organizar um ambiente confiável para a execução de programas (ambiente de execução confiável, TEE ) com base na arquitetura RISC-V.

A seguir - por que uma solução era necessária e como ela funciona.


/ foto Wikimedia CC

Porquê a Keystone


O ambiente de execução confiável é uma área isolada (enclave) do processador principal com um conjunto de mecanismos de segurança. Acredita-se que o código e os dados carregados nessa área sejam protegidos de maneira confiável contra alterações e interferências externas.

A idéia é que nesses enclaves você possa realizar operações com dados pessoais e confidenciais sem medo de comprometer, pois nem o sistema operacional nem outros aplicativos têm acesso a essas áreas do processador.

Existem sistemas e soluções no mercado que protegem os dados no nível do ferro. No entanto, todos eles são proprietários, pois são implementados pelos próprios fabricantes de chips de computador. E há uma opinião de que essas tecnologias não estão bem protegidas (uma vez que não estão disponíveis para avaliação por especialistas independentes em segurança da informação).

Por exemplo, a Intel oferece a extensão de arquitetura SGX ( Software Guard Extensions ), que protege os dados contra acesso e modificação não autorizados. Essa tecnologia também envolve enclaves nos quais o código do aplicativo do usuário é executado. No entanto, recentemente se soube que este sistema é vulnerável a um ataque Foreshadow ( CVE-2018-3615 ). Os invasores podem obter acesso aos dados no enclave SGX usando os recursos da execução especulativa de comandos .

Além da Intel, a AMD oferece suas soluções - seus nomes são Secure Processor e SEV, além de ARM - eles possuem TrustZone. No entanto, os especialistas em segurança também têm perguntas para sua segurança .

De acordo com pesquisadores do MIT e da Universidade da Califórnia, o sistema de código aberto, embora não torne os enclaves invulneráveis, aumentará sua segurança por meio da experiência de muitos especialistas da comunidade.


/ foto Brad Holt CC

Portanto, o sistema Keystone é um projeto de código aberto baseado na arquitetura RISC-V para a construção de TEE. Os pesquisadores escolheram o RISC-V porque é menos vulnerável a ataques através de canais de terceiros que visam a implementação prática de sistemas de criptografia. Em particular, esse tipo de arquitetura não é afetado por vulnerabilidades como Meltdown e Spectre.

Os desenvolvedores do Keystone definiram os seguintes objetivos :

  • Crie uma cadeia de confiança para verificar cada componente de hardware e software (isso inclui sistemas de inicialização segura e verificação de confiabilidade remota de hardware);
  • Isole a memória da interferência externa;
  • Implementar métodos de proteção contra ataques a canais de terceiros;
  • Implemente métodos de criptografia para barramento de memória e endereço.

Componentes da solução


O conceito da Keystone é baseado na tecnologia SGX e na plataforma do enclave Sanctum Processor desenvolvida no MIT .

O último é construído usando a chamada camada de abstração confiável ou TAP (Plataforma Abstrata Confiável). A plataforma (TAP) consiste em um processador com um contador de comandos , registros gerais , um sistema para traduzir endereços virtuais e um conjunto de primitivos para executar código em um enclave seguro.

No sistema SGX, a Keystone “pegou” o mecanismo de criptografia de memória (Mecanismo de Criptografia de Memória, MEE). O núcleo da solução é organizado usando o processador RISC-V BOOM parametrizado (Berkeley Out-Order-Machine) no gerador Rocket SoC .

Em termos gerais, o esquema de implementação de um sistema com um enclave no RISC-V é o seguinte:


Os pesquisadores já realizaram vários testes de sua solução e descobriram que ele isola o ambiente de tempo de execução do código de forma confiável e o protege contra interferências externas (pelo menos contra ataques conhecidos).

Quando liberar


A primeira versão - Keystone v0.1 - aparecerá neste outono e será realizada no FPGA. Os pesquisadores ganham vida que, no futuro, ele poderá substituir o SGX na implementação de plataformas blockchain.



Recursos adicionais do PS do primeiro blog corporativo de IaaS:


PPS Algumas postagens do nosso blog no Habré:

Source: https://habr.com/ru/post/pt423777/


All Articles