BT

Disseminando conhecimento e inovação em desenvolvimento de software corporativo.

Contribuir

Tópicos

Escolha a região

Início Notícias PARSEC é uma nova API independente para sistemas seguros

PARSEC é uma nova API independente para sistemas seguros

Apoiada pela Arm and Docker, a plataforma AbstRaction for SECurity (PARSEC) tem como objetivo definir um padrão de software universal para lidar com serviços seguros de armazenamento e criptografia de objetos. A iniciativa se concentra nas arquiteturas modernas de sistemas feitas de serviços que executam em containers e se esforça para facilitar o acesso à tecnologia de segurança com apoio a diversas linguagens.

O PARSEC estabelece um ecossistema de bibliotecas amigáveis para desenvolvedores com uma variedade de linguagens de programação populares. Cada biblioteca foi projetada para ser altamente ergonômica e simples de se consumir. Esse crescente ecossistema colocará instalações seguras na ponta dos dedos dos desenvolvedores em uma ampla gama de casos de uso de segurança em infraestrutura de computação, computação de borda e Internet das Coisas (IoT).

O PARSEC promete cobrir todos os aspectos de sistemas seguros, incluindo provisionamento e gerenciamento de chaves, hash, assinatura, criptografia assimétrica e simétrica, entropia, etc. O componente principal é um serviço de segurança escrito em Rust que roda no host e fornece conectividade com as instalações seguras do servidor nativo. Isso torna possível definir um mecanismo universal para fornecer acesso a recursos seguros a clientes que talvez não conheçam nada sobre os recursos de hardware do host utilizado, nem tenham privilégios suficientes para usá-los.

A extensibilidade do serviço PARSEC é garantida por uma arquitetura em camadas que permite a integração de provedores de segurança que podem ser genéricos ou específicos do fornecedor. Os provedores são acessíveis a clientes externos por meio de uma camada frontend que lida com o protocolo de conexão e a API comum, além de ser responsável por toda a serialização e desserialização dos contratos de serviço.

O InfoQ conversou com Justin Cormack, líder de segurança da Docker e mantenedor do PARSEC, para ter mais informações.

InfoQ: Poderia explicar quando e como nasceu o PARSEC? Qual é o principal objetivo e como visa alcançá-lo?

Justin Cormack: A Docker e a Arm estão trabalhando em parceria há algum tempo, com anúncios, na DockerCon em Abril, focados em fornecer um pipeline de software comum para nuvem, computação de borda e a IoT. Estávamos explorando áreas de interesse comuns, e o gerenciamento de chaves e criptografia de hardware foi a área que surgiu.

Do nosso lado na Docker, ficou claro por algum tempo que os clientes que são líderes em termos de segurança, como empresas de serviços financeiros e o governo, existe um objetivo a longo prazo de que todas as chaves privadas de criptografia e assinatura sejam armazenadas em hardware. Isto é para que, mesmo em caso de comprometimento do host, as chaves privadas não possam ser violadas; no pior caso podem ser potencialmente usadas durante o período de falha do host.

Além disso, à medida que o Docker se acostuma com aplicações de ponta, essa segurança é ainda mais crítica do que nas aplicações de datacenter e nuvem. Sem a segurança física dos servidores, os mecanismos de segurança de hardware são vitais para evitar violações e ataques locais. É por isso que estamos trabalhando com a Arm para desenvolver o Parsec, uma API comum para segurança de hardware.

InfoQ: Como a Parsec espera melhorar o cenário de segurança de software open source?

Cormack: Existem dois problemas que estamos tentando resolver.

Primeiro, há pouca padronização de APIs entre diferentes tipos de chaves de hardware. Os TPMs, Apple e Android têm as próprias APIs, cada fabricante possui uma API diferente para o HSM e todos os provedores de nuvem possuem APIs HSM remotas muito diferentes. Estamos projetando uma API comum, baseada na API Arm PSA, que é um conjunto moderno de software de criptografia. Consideramos outras opções, mas gostamos dessa API, pois não inclui operações de criptografia herdadas e expõe uma interface decente de alto nível. Além disso, vamos resumir ainda mais a API para fornecer operações mais generalizadas. Uma das diferenças com o hardware é que este pode ter um conjunto restrito de operações; portanto, podemos solicitar coisas como "usar uma chave de assinatura aceitável para o TLS 1.3" ou requisições semelhantes, permitindo flexibilidade na implementação, muito melhor do que dizer "use uma chave RSA". Isso tornará as coisas mais fáceis para os projetos usarem chaves de hardware sem precisar codificar o hardware e algoritmos específicos.

A segunda questão é que o gerenciamento de chaves de hardware não vem com recursos internos para multiplexar o armazenamento de chaves para vários clientes, como vários containers em um nó. Supõe-se que um único serviço possua o TPM ou HSM inteiro, ou alguns mecanismos podem ser fornecidos, mas são diferentes para mecanismos diferentes. O compartilhamento pode ser inseguro, pois os clientes podem ter acesso às chaves erradas. Portanto, estamos adicionando um conjunto geral de mecanismos para uso compartilhado, com um daemon Parsec que possui o hardware e os mecanismos para autenticar e fornecer APIs para vários processos. Planejamos reutilizar o trabalho no protocolo SPIFFE (um projeto CNCF) para atestado e emissão de certificados de cliente.

InfoQ: Quais organizações estão mantendo o projeto atualmente?

Cormack: Atualmente o projeto é uma colaboração entre a Arm e o Docker. O objetivo da abertura é facilitar o diálogo com outras partes interessadas, e atualmente estamos no processo de conversar sobre isso com outras partes que, esperamos, estarem interessadas. Estamos abertos a toda colaboração.

InfoQ: Por que escolheram o Rust? Qual foi a experiência geral ao escrever esse tipo de software usando o Rust?

Cormack: Há um número crescente de projetos relacionados à segurança no Rust e uma comunidade crescente em torno dele para aplicações de criptografia. Como engenheiro de segurança, continuo vendo mais projetos de segurança escolhendo o Rust. Queríamos algo que pudesse interagir bem com outras linguagens sem perder a confiabilidade e segurança. O Rust e o Go foram os principais candidatos, mas no final, o Rust acabou ganhando. É o primeiro projeto de Docker em Rust, embora tenhamos falado sobre outras coisas que se encaixavam no passado. Atualmente, estamos trabalhando em bibliotecas voltadas para clientes tanto no Rust quanto no Go, com planos de serem adicionadas no futuro.

InfoQ: Qual é o status atual do Parsec e como imaginam a evolução no futuro?

Cormack: Lançamos o projeto em um estágio muito inicial, com grande parte do trabalho que fizemos até agora sendo o design sem codificação, mas existe um protótipo bom o suficiente para fazer algumas demos e demonstrar grande parte da arquitetura. Todavia, estamos em um estágio inicial, definitivamente não é para qualquer pessoa utilizar, somente aquelas interessadas em contribuir. Vamos trabalhar para integrá-lo a outros projetos, estabilizar as bibliotecas do cliente e adicionar novos backends como o TPM, e implementar versões concretas das implementações de esboço. Fazer tudo isso abertamente deve incentivar outros colaboradores a se juntarem ao projeto.

O core do PARSEC pode ser facilmente construído e instalado no Linux.

Avalie esse artigo

Relevância
Estilo/Redação

Conteúdo educacional

BT