Red Hat e Google apresentam Sigstore, um serviço para verificação de código criptográfico

A Red Hat e o Google, em conjunto com a Purdue University, fundaram o projeto Sigstore, que visa criar ferramentas e serviços para verificação de software por meio de assinaturas digitais e manutenção de log público para confirmação de autenticidade (log de transparência). O projeto será desenvolvido sob os auspícios da organização sem fins lucrativos Linux Foundation.

O projeto proposto irá melhorar a segurança dos canais de distribuição de software e proteger contra ataques que visam substituir componentes e dependências de software (cadeia de fornecimento). Um dos principais problemas de segurança no software de código aberto é a dificuldade de verificar a origem do programa e o processo de construção. Por exemplo, a maioria dos projetos usa hashes para verificar a integridade de uma versão, mas muitas vezes as informações necessárias para autenticação são armazenadas em sistemas desprotegidos e em repositórios de código compartilhados, como resultado dos quais os invasores podem comprometer os arquivos necessários para verificação e introduzir alterações maliciosas. sem levantar suspeitas.

Apenas uma pequena proporção de projetos utiliza assinaturas digitais ao distribuir versões devido às dificuldades no gerenciamento de chaves, na distribuição de chaves públicas e na revogação de chaves comprometidas. Para que a verificação faça sentido, é também necessário organizar um processo confiável e seguro para distribuição de chaves públicas e somas de verificação. Mesmo com uma assinatura digital, muitos usuários ignoram a verificação porque precisam gastar tempo estudando o processo de verificação e entendendo qual chave é confiável.

Sigstore é considerado equivalente ao Let's Encrypt para código, fornecendo certificados para assinatura digital de código e ferramentas para automatizar a verificação. Com o Sigstore, os desenvolvedores podem assinar digitalmente artefatos relacionados a aplicativos, como arquivos de lançamento, imagens de contêiner, manifestos e executáveis. Uma característica especial do Sigstore é que o material usado para assinatura é refletido em um registro público à prova de falsificação que pode ser usado para verificação e auditoria.

Em vez de chaves permanentes, a Sigstore utiliza chaves efêmeras de curta duração, que são geradas com base em credenciais confirmadas por provedores OpenID Connect (no momento de gerar chaves para uma assinatura digital, o desenvolvedor se identifica através de um provedor OpenID vinculado a um e-mail). A autenticidade das chaves é verificada por meio de um log público centralizado, que permite verificar se o autor da assinatura é exatamente quem afirma ser e se a assinatura foi formada pelo mesmo participante responsável pelos lançamentos anteriores.

A Sigstore oferece um serviço pronto que você já pode usar e um conjunto de ferramentas que permitem implantar serviços semelhantes em seu próprio equipamento. O serviço é gratuito para todos os desenvolvedores e fornecedores de software e é implantado em uma plataforma neutra – a Linux Foundation. Todos os componentes do serviço são de código aberto, escritos em Go e distribuídos sob a licença Apache 2.0.

Dentre os componentes desenvolvidos podemos destacar:

  • Rekor é uma implementação de log para armazenar metadados assinados digitalmente que refletem informações sobre projetos. Para garantir a integridade e proteger contra a corrupção de dados após o fato, é usada uma estrutura semelhante a uma árvore “Merkle Tree”, na qual cada ramificação verifica todas as ramificações e nós subjacentes, graças ao hashing conjunto (semelhante a uma árvore). Tendo o hash final, o usuário pode verificar a exatidão de todo o histórico de operações, bem como a exatidão dos estados anteriores do banco de dados (o hash de verificação raiz do novo estado do banco de dados é calculado levando em consideração o estado passado ). Para verificar e adicionar novos registros, é fornecida uma API Restful, bem como uma interface CLI.
  • Fulcio (SigStore WebPKI) é um sistema para criação de autoridades certificadoras (Root-CAs) que emitem certificados de curta duração baseados em e-mails autenticados via OpenID Connect. A vida útil do certificado é de 20 minutos, durante os quais o desenvolvedor deve ter tempo para gerar uma assinatura digital (se o certificado posteriormente cair nas mãos de um invasor, ele já estará expirado).
  • Сosign (Container Signing) é um kit de ferramentas para gerar assinaturas para containers, verificar assinaturas e colocar containers assinados em repositórios compatíveis com OCI (Open Container Initiative).

Fonte: opennet.ru

Adicionar um comentário