Enquanto Intel’s Software Guard A funcionalidade de extensões (SGX) está presente em CPUs desde o Skylake. Demorou até o ano passado com o Linux 5.11 para que o suporte SGX fosse finalmente integrado e exigiu mais de 40 rodadas de análises/revisões. Finalmente, hoje a Intel postou patches para trazer o SGX2 como a próxima iteração do Software Guard Extensions e já encontrado nos processadores de remessa.
O Intel SGX trata da definição de regiões de memória privada”enclaves”que são criptografadas e não podem ser lidas/usadas por nenhum outro processo ou pelo host. SGX pode ser usado para alguns cenários interessantes de computação segura, mas o suporte tardio do kernel, bem como várias vulnerabilidades/ataques de segurança possíveis, limitaram seu escopo até agora. No início deste ano, com base no suporte SGX anterior no Linux 5.11, o SGX foi trazido para suporte a convidado KVM na v5.13.
Postados hoje foram patches para trazer o suporte SGX2 no kernel do Linux. O Software Guard Extensions 2 foi introduzido com processadores Gemini Lake, mas aparentemente também suportado pelo Ice Lake, tanto cliente quanto partes escaláveis do Xeon, e também deveria significar Tiger Lake e outros novos processadores. A Intel não teve uma lista conveniente de SGX1 vs. SGX2 SKUs e até mesmo o GitHub citado na série de patches de hoje apenas menciona o Lago Gemini. Enquanto isso, até esta página Intel.com apenas observa Ice Lake e Gemini Lake enquanto afirma”não há uma lista única de processadores ou sistemas que suportam SGX2.”Para complicar ainda mais a situação, é necessário que o suporte SGX seja suportado também pelo BIOS/fornecedor do sistema.
Com SGX2, há a capacidade de modificar as permissões de páginas de enclave regulares pertencentes a um enclave, suporte para a adição dinâmica de páginas de enclave regulares a um enclave, suporte para remover páginas de um enclave e expandir um enclave para permitir mais tópicos. Todas essas são adições úteis para extensões de proteção de software. Com os recursos principalmente relacionados ao manuseio de página expandida para enclaves, o SGX2 também é conhecido como Enclave Dynamic Memory Management (EDMM).
Estes 25 patches enviado hoje alterando 2.6k linhas de código do kernel para colocar o suporte SGX2 no lugar. A mensagem do patch indica que nenhuma alteração adicional é necessária para lidar com SGX2 em um ambiente virtualizado além da habilitação inicial do SGX.
Esperamos que não demore tantas rodadas de revisão para o upstreaming do suporte SGX2 quanto o fez para SGX (1), o que não deveria acontecer agora que o suporte de enclave básico está instalado, então esperamos chegar a um kernel da linha principal em um futuro não muito distante.