
Três anos após o início do desenvolvimento publicou a versão Sequoia 1.0. É uma implementação Rust do OpenPGP que contém uma extensa biblioteca de funções e ferramentas de linha de comando. Lançamento publicado após os desenvolvedores terem concluído o trabalho em uma API de baixo nível - ele apenas implementou o padrão OpenPGP completo.
Tudo isso é escrito em Rust, e o pacote é distribuído sob a licença GPLv2 +. Existem versões para todas as principais plataformas - Linux, FreeBSD, Windows, macOS, Android e iOS. A equipe de desenvolvimento é pequena, baseada em três desenvolvedores GnuPG da g10code. O mesmo comando criou o serviço de chave Hagrid, que é usado no serviço keys.openpgp.org.... Sobre o que o pacote é - sob o corte.
O principal objetivo definido pelos desenvolvedores é um redesenho completo da arquitetura e o uso de novas técnicas para melhorar a segurança e confiabilidade da base de código.
Para aumentar o nível de proteção no Sequoia, além das ferramentas de programação seguras usando a linguagem Rust, a proteção de erro de nível de API é aplicada. Um exemplo é a incapacidade de exportar acidentalmente o conteúdo de uma chave privada, uma vez que as operações de exportação padrão requerem seleção explícita. Além disso, a API protege contra a perda de etapas importantes durante a atualização da assinatura digital. Esta operação deve atualizar a hora de criação, algoritmo de hashing e emissor de assinatura.
Além disso, os desenvolvedores estão muito familiarizados com as deficiências do gnuPGP, pois são os autores deste projeto. No novo lançamento, eles tentaram se livrar deles. Por exemplo, medidas foram tomadas para eliminar a dessincronização da funcionalidade das ferramentas de linha de comando com a biblioteca de funções. Algumas ações podem ser executadas apenas na interface do próprio utilitário. Além disso, o problema de acoplamento muito forte entre os componentes desapareceu - era isso que tornava difícil fazer alterações na base de código. Como resultado, há confusão e complexidade na organização dos testes de unidade.
Os desenvolvedores criaram ferramentas de inspeção de pacotes integrando-as ao analisador. Eles permitem que você simplifique o desenvolvimento, a depuração e a análise de incidentes. Além disso, o usuário tem a oportunidade de analisar visualmente a estrutura das mensagens criptografadas, incluindo assinaturas digitais e chaves.
Sequoia também desenvolve o utilitário de linha de comando sq com suporte ao subcomando do estilo Git, o utilitário sqv (substituto para gpgv ) para verificar assinaturas desanexadas, o utilitário sqop (Stateless OpenPGP CLI) e a biblioteca sequoia-openpgp . Os desenvolvedores forneceram ligações para as linguagens C e Python.
A nova versão suporta a grande maioria dos recursos específicos do padrão OpenPGP, incluindo criptografia, descriptografia, criação e verificação de assinaturas digitais. Quanto aos recursos avançados, ele adicionou suporte para verificação por assinaturas digitais fornecidas separadamente (assinatura separada), adaptação para integração com gerenciadores de pacotes (APT, RPM, carga, etc.) e capacidade de limitar assinaturas por valores limite e tempo.
Existem também duas opções de API - baixo nível e, consequentemente, alto nível. Quanto ao primeiro, ele reproduz com mais precisão os recursos do OpenPGP e extensões relacionadas. Além disso, ele fornece chamadas para processamento de mensagens sem buffer, análise e serialização de campos em certificados e chaves. A segunda API, de alto nível, cobre recursos auxiliares e específicos de domínio. Estas são funções de armazenamento de chave pública e acesso à rede. Infelizmente, a API de alto nível ainda será refinada - está apenas em um estágio inicial de desenvolvimento.
Curiosamente, os desenvolvedores não estavam com pressa com o lançamento, embora a maioria dos recursos e capacidades atuais estivessem prontos um ano atrás. Eles preferiram verificar e verificar novamente a base de código em busca de bugs. Além disso, a equipe escreveu uma documentação abrangente com referências ao OpenPGP. Os desenvolvedores não se esqueceram dos casos de uso.
A versão 1.0 agora inclui a caixa sequoia-openpgp e o utilitário de verificação de assinatura digital sqv . E aqui está o sq CLI e APIs de alto nível ainda não estão estabilizadas e estão sendo finalizadas. Em um futuro próximo, a equipe de desenvolvimento planeja integrar serviços para armazenar chaves privadas e públicas, adicionar suporte para assinaturas digitais não criptografadas e a capacidade de usar expressões regulares para determinar assinaturas confiáveis.
