2.1 Principais conceitos
- Chave de Endosso (Endorsement Key)
A chave de endosso é um par de chaves RSA, pública e privada, de 2.048 bits, que é criado no chip responsável pela Computação Confiável (Trusted Plattform Module - TPM) no momento de sua fabricação. A chave de endosso está permanentemente embutida no hardware do TPM. A chave privada do par de chaves, que constituem a chave de endosso, nunca sai do TPM. Já a chave pública é usada para reconhecer um TPM legítimo.
Operações do TPM que envolvem a assinatura de parte da informação, podem usar a chave de endosso para permitir que os outros componentes verifiquem que os dados são confiáveis. Para assinar um dado, a chave privada é usada para criptografar uma pequena porção da informação. A assinatura pode ser verificada pelo uso da correspondente chave pública para decriptar a mesma parte dos dados. Se puder ser decriptografada com a chave pública, então foi criptografado pela chave privada correspondente. Enquanto a chave privada for mantida em segredo, a assinatura digital será confiável.
- Isolamento de áreas de memória e Execução Segura (Memory curtaining)
Refere-se ao isolamento de memória, usando-se dispositivos de hardware para impedir que um programa consiga ler ou escrever em uma área de memória destinada a outro programa. Atualmente, um programa com código malicioso pode ter acesso a dados sensíveis na memória do PC. Na Computação Confiável, nem mesmo o sistema operacional terá acesso às porções de memória isoladas, destinadas a certo programa. Assim, mesmo que um programa intruso ganhe controle do sistema operacional, ele não conseguirá ter acesso a áreas de memória seguras de outros programas.
Embora o isolamento de memória seja possível de ser implementado por software, isso implicaria na necessidade de reescrever sistemas operacionais, drivers de dispositivos e até mesmo aplicações. A implementação em hardware dessa característica garante uma compatibilidade com software anteriores, necessitando de um número bem menor de programas a serem reescritos. Vale lembrar que grande parte dos ganhos em segurança dessa característica, poderiam ser alcançados através da reescrita dos softwares, contemplando essa característica. Entretanto, isso é considerado inviável.
- E/S Segura (Secure I/O)
Entrada e saída seguras, E/S segura ou Trusted Path, como é tradicionalmente conhecida, lida com as ameaças exemplificadas pelos keyboard loggers e screen-scrapers, softwares que são usados para espionar as atividades dos usuários do computador. Keyboard logger, ou keylogger, é um software capaz de gravar o que o usuário digita. Screen-scraper é um software que armazena o que é mostrado na tela do computador.
E/S segura refere-se a um caminho protegido entre o usuário e o software, que o usuário acredita estar interagindo. Atualmente, há muitos meios de software maliciosos interceptarem os dados durante o percurso entre o usuário e o processo que deve tratar aquela entrada ou saída. E/S segura vai prover um canal assegurado, através de hardware e software protegidos, usando checksums armazenados na TPM para verificar se o software que faz o controle de E/S não tenha sido adulterado. Softwares maliciosos que se injetem nesse caminho podem ser identificados.
- Armazenamento Selado (Sealed Storage)
O armazenamento selado lida com um dos maiores problemas de segurança dos PCs, a incapacidade de armazenar de forma segura as chaves criptográficas. Costumeiramente, as chaves e senhas que protegem os dados privados são armazenadas localmente, nos mesmo disco rígido que os próprios documentos que protegem. As chaves têm que estar disponíveis para os usuários legítimos, para que esses façam uso dessas da forma como quiserem, mas as chaves não podem ficar expostas caso o computador seja invadido, assim o intruso teria acesso a chaves de decriptografia e de assinatura digital.
O armazenamento selado protege a informação privada ligando-a às configurações da plataforma, incluindo informações do software e do hardware usados. Isso significa que os dados só podem ser lidos por uma mesma combinação de software e hardware. O armazenamento é uma invenção que gera as chaves baseado em parte na identificação do software que o chamou para ser usado e em parte no computador no qual esse software está sendo executado. O resultado é que a chaves mesmas não precisam ser armazenadas no disco rígido, mas podem ser geradas sempre que necessário. Se outro programa, diferente do que encriptou a informação, tentar decriptar, é garantido que esse irá falhar. Da mesma forma, se a informação criptografada for copiada para outra máquina, as tentativas para decriptá-la também irão falhar.
- Atestação remota (Remote attestation)
A Atestação Remota permite que alterações não autorizadas em softwares sejam detectadas, o que a torna o mais importante conceito da Computação Confiável. Se um atacante trocar uma de suas aplicações ou parte de seu sistema operacional por uma versão alterada maliciosamente, a atestação será capaz de identificar. Como a atestação é remota, outros indivíduos com os quais você interage, também serão capazes de identificar que houve a alteração. Então, eles podem se negar a enviar dados sensíveis a sistemas comprometidos.
A Atestação Remota funciona gerando, em hardware, um certificado criptográfico que atesta a identidade do software que está sendo executado no PC naquele momento. Essa identidade citada, não leva nenhum critério de julgamento quanto ao comportamento do software em questão, mas somente um hash criptográfico, que permite que se distingam programas diferentes e programas com e sem alterações. Esse certificado pode ser repassado a outras entidades, e a princípio tem o objetivo de provar que a máquina, que o está emitindo, usa o software esperado e sem alterações. Se a máquina estiver usando um programa alterado, o certificado gerado irá refletir esse fato.