Sistema de verificação criptográfica Sigstore anunciado

O Google anunciou a formação das primeiras versões estáveis ​​dos componentes que formam o projeto Sigstore, que é declarado adequado para a criação de implementações funcionais. A Sigstore desenvolve ferramentas e serviços para verificação de software utilizando assinaturas digitais e mantendo um log público confirmando a autenticidade das alterações (log de transparência). O projeto está sendo desenvolvido sob os auspícios da organização sem fins lucrativos Linux Foundation pelo Google, Red Hat, Cisco, vmWare, GitHub e HP Enterprise com a participação da organização OpenSSF (Open Source Security Foundation) e da Purdue University.

O Sigstore pode ser considerado um análogo do 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. O material da assinatura é refletido em um registro público inviolável 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 pelos provedores OpenID Connect (no momento de gerar as chaves necessárias para criar uma assinatura digital, o desenvolvedor se identifica através do provedor OpenID vinculado a um e-mail). A autenticidade das chaves é verificada através de um log público centralizado, que permite verificar se o autor da assinatura é exatamente quem afirma ser, e a assinatura foi gerada pelo mesmo participante responsável pelos lançamentos anteriores.

A prontidão da Sigstore para implementação se deve à formação de lançamentos de dois componentes principais - Rekor 1.0 e Fulcio 1.0, cujas interfaces de software são declaradas estáveis ​​​​e continuarão compatíveis com versões anteriores. Os componentes do serviço são escritos em Go e distribuídos sob a licença Apache 2.0.

O componente Rekor contém 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 de árvore Merkle Tree, na qual cada ramificação verifica todas as ramificações e nós subjacentes por meio de hashing conjunto (á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 ). Uma API RESTful é fornecida para verificação e adição de novos registros, bem como uma interface de linha de comando.

O componente Fulcio (SigStore WebPKI) inclui um sistema para criação de autoridades de certificação (CAs raiz) que emitem certificados de curta duração com base em e-mails autenticados através do 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). Além disso, o projeto está desenvolvendo o kit de ferramentas Cosign (Container Signing), projetado para gerar assinaturas para containers, verificar assinaturas e colocar containers assinados em repositórios compatíveis com OCI (Open Container Initiative).

A implementação do Sigstore permite aumentar a segurança dos canais de distribuição de programas e proteger contra ataques que visam a substituição de bibliotecas e dependências (supply chain). 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.

O uso de assinaturas digitais para verificação de liberação ainda não se generalizou 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, é adicionalmente 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 aprendendo o processo de verificação e entendendo qual chave é confiável. O projeto Sigstore tenta simplificar e automatizar esses processos, fornecendo uma solução pronta e comprovada.

Fonte: opennet.ru

Adicionar um comentário