O Google tem o compromisso de promover a igualdade racial para as comunidades negras. Saiba como.

Trusty TEE

Trusty é um sistema operacional (SO) seguro que fornece um Trusted Execution Environment (TEE) para Android. O sistema operacional Trusty é executado no mesmo processador que o sistema operacional Android, mas o Trusty é isolado do resto do sistema por hardware e software. O Trusty e o Android funcionam paralelamente um ao outro. O Trusty tem acesso a todo o poder do processador principal e da memória do dispositivo, mas está completamente isolado. O isolamento do Trusty o protege de aplicativos maliciosos instalados pelo usuário e vulnerabilidades potenciais que podem ser descobertas no Android.

Trusty é compatível com processadores ARM e Intel. Em sistemas ARM, o Trusty usa o Trustzone ™ da ARM para virtualizar o processador principal e criar um ambiente de execução confiável e seguro. Suporte semelhante também está disponível em plataformas Intel x86 usando a Tecnologia de Virtualização da Intel.

Figura 1 . Diagrama de visão geral confiável.

Trusty consiste em:

  • Um pequeno kernel do sistema operacional derivado do Little Kernel
  • Um driver de kernel Linux para transferir dados entre o ambiente seguro e o Android
  • Uma biblioteca de espaço de usuário do Android para se comunicar com aplicativos confiáveis ​​(ou seja, tarefas / serviços seguros) por meio do driver do kernel

Nota: Trusty e a API Trusty estão sujeitos a alterações. Para obter informações sobre a API Trusty, consulte a Referência da API .

Por que Trusty?

Outros sistemas operacionais TEE são tradicionalmente fornecidos como blobs binários por fornecedores terceirizados ou desenvolvidos internamente. O desenvolvimento de sistemas TEE internos ou o licenciamento de um TEE de terceiros pode ser caro para fornecedores de System-on-Chip (SoC) e OEMs. O custo monetário combinado com sistemas de terceiros não confiáveis ​​cria um ecossistema instável para Android. O Trusty está sendo fornecido a seus parceiros como uma alternativa confiável e gratuita de código-fonte aberto para seu ambiente de execução confiável. O Trusty oferece um nível de transparência que simplesmente não é possível com sistemas de código fechado.

O Android suporta várias implementações de TEE para que você não fique restrito ao uso do Trusty. Cada TEE OS tem sua própria maneira única de implantar aplicativos confiáveis. Essa fragmentação pode ser um problema para desenvolvedores de aplicativos confiáveis ​​que tentam garantir que seus aplicativos funcionem em todos os dispositivos Android. Usar o Trusty como um padrão ajuda os desenvolvedores de aplicativos a criar e implantar aplicativos facilmente sem levar em conta a fragmentação de vários sistemas TEE. O Trusty TEE fornece aos desenvolvedores e parceiros transparência, colaboração, capacidade de inspeção de código e facilidade de depuração. Os desenvolvedores de aplicativos confiáveis ​​podem convergir em torno de ferramentas e APIs comuns para reduzir o risco de introdução de vulnerabilidades de segurança. Esses desenvolvedores terão a confiança de que podem desenvolver um aplicativo e reutilizá-lo em vários dispositivos sem desenvolvimento adicional.

Aplicativos e serviços

Um aplicativo Trusty é definido como uma coleção de arquivos binários (executáveis ​​e arquivos de recursos), um manifesto binário e uma assinatura criptográfica. Em tempo de execução, os aplicativos Trusty são executados como processos isolados em modo sem privilégios no kernel Trusty. Cada processo é executado em sua própria caixa de proteção de memória virtual, utilizando os recursos da unidade de gerenciamento de memória do processador TEE. A construção do hardware muda o processo exato que o Trusty segue, mas, por exemplo, o kernel agenda esses processos usando um agendador round-robin baseado em prioridade conduzido por um tique de cronômetro seguro. Todos os aplicativos Trusty compartilham a mesma prioridade.

Figura 2 . Visão geral do aplicativo confiável.

Aplicativos confiáveis ​​de terceiros

Atualmente, todos os aplicativos Trusty são desenvolvidos por uma única empresa e empacotados com a imagem do kernel Trusty. Toda a imagem é assinada e verificada pelo bootloader durante a inicialização. O desenvolvimento de aplicativos de terceiros não é compatível com o Trusty no momento. Embora o Trusty permita o desenvolvimento de novos aplicativos, isso deve ser feito com extremo cuidado; cada novo aplicativo aumenta a área da base de computação confiável (TCB) do sistema. Os aplicativos confiáveis ​​podem acessar os segredos do dispositivo e realizar cálculos ou transformações de dados usando-os. A capacidade de desenvolver novos aplicativos que rodam no TEE abre muitas possibilidades de inovação. No entanto, devido à própria definição de um TEE, esses aplicativos não podem ser distribuídos sem alguma forma de confiança anexada. Normalmente, isso vem na forma de uma assinatura digital por uma entidade de confiança do usuário do produto no qual o aplicativo é executado.

Usos e exemplos

Ambientes de execução confiáveis ​​estão se tornando rapidamente um padrão em dispositivos móveis. Os usuários contam cada vez mais com seus dispositivos móveis para o dia a dia e a necessidade de segurança está sempre crescendo. Dispositivos móveis com TEE são mais seguros do que dispositivos sem TEE.

Em dispositivos com uma implementação de TEE, o processador principal é frequentemente referido como "não confiável", o que significa que não pode acessar certas áreas de RAM, registros de hardware e fusíveis de gravação única onde os dados secretos (como chaves criptográficas específicas do dispositivo) são armazenados pelo fabricante. O software em execução no processador principal delega quaisquer operações que requeiram o uso de dados secretos para o processador TEE.

O exemplo mais conhecido disso no ecossistema Android é a estrutura DRM para conteúdo protegido. O software em execução no processador TEE pode acessar as chaves específicas do dispositivo necessárias para descriptografar o conteúdo protegido. O processador principal vê apenas o conteúdo criptografado, fornecendo um alto nível de segurança e proteção contra ataques baseados em software.

Existem muitos outros usos para um TEE, como pagamentos móveis, banco seguro, autenticação multifator, proteção de redefinição de dispositivo, armazenamento persistente protegido contra reprodução, PIN seguro e processamento de impressão digital e até detecção de malware.