
O lançamento do pacote Sequoia 0.20.0 foi lançado ontem . Ele oferece uma biblioteca de funções e ferramentas de linha de comando com uma implementação dos padrões OpenPGP (RFC-4880). A equipe do projeto consiste em três pessoas - membros do projeto OpenPGP (RFC-4880). Para melhorar a segurança e confiabilidade da base de código, eles decidiram criar uma nova implementação gratuita do OpenPGP no Rust. O código do projeto é distribuído sob a licença GPLv2 +.
O objetivo dos desenvolvedores não é apenas melhorar a segurança do produto, mas também se livrar das deficiências do GnuPG. Sem quebrar a compatibilidade ou fundamentalmente retrabalhar a base do código, eles não podem ser eliminados no projeto principal. Por exemplo, a conexão entre os componentes individuais do GnuPG é forte o suficiente que é difícil fazer alterações, quanto mais criar um sistema de teste de unidade. O kit de ferramentas de linha de comando gpupg não está sincronizado em funcionalidade e biblioteca de funções, portanto, várias ações só podem ser executadas usando o utilitário.
Sequoia tem um utilitário de linha de comando sq com suporte a subcomandos no estilo Git, além de duas opções de API - nível baixo e nível alto. Existem ligações para as linguagens C e Python. A maioria dos recursos descritos no padrão OpenPGP são suportados para criptografia, descriptografia, criação e verificação de assinaturas digitais.
Recursos adicionais incluem suporte de verificação para assinaturas digitais fornecidas separadamente, adaptação para integração com gerenciadores de pacotes e capacidade de limitar assinaturas por valores limite e tempo.
A API de baixo nível reproduz de perto os recursos do OpenPGP e algumas extensões relacionadas, incluindo suporte ECC e elementos do "rascunho" da edição futura do padrão. No que diz respeito às exceções, essas são apenas partes desatualizadas da especificação que podem impactar negativamente a segurança - por exemplo, suporte para hashes MD5. A API também oferece suporte ao tratamento de mensagens sem buffer. Em termos de suas capacidades, ele se aproximou da cobertura total do padrão OpenPGP e está completamente pronto para trabalhar com dados OpenPGP. Uma versão 1.0 estável deve ser lançada em um futuro próximo.
Quanto à API de alto nível, ela está apenas começando a evoluir e até agora abrange recursos como armazenamento de chaves públicas e acesso a funções pela rede. Outros recursos de suporte e específicos de domínio devem ser adicionados à medida que o projeto se desenvolve.
Além disso, o pacote também possui ferramentas de inspeção de pacote muito poderosas que podem ser usadas para desenvolvimento, depuração e análise de incidentes. As ferramentas de inspeção são combinadas com um analisador para que o usuário possa analisar a estrutura de mensagens criptografadas, assinaturas digitais e chaves.
sq packet dump --hex message.pgp
New CTB, 13 bytes: One-Pass Signature Packet
Version: 3
Type: Binary
Pk algo: EdDSA Edwards-curve Digital Signature Algorithm
Hash algo: SHA512
Issuer: 83F8 2E4F E9A5 E098
Last: true
00000000 c4 0d frame
00000002 03 version
00000003 00 sigtype
00000004 0a hash_algo
00000005 16 pk_algo
00000006 83 f8 2e 4f e9 a5 e0 98 issuer
0000000e 01 last
Em termos de suporte de plataforma, o pacote atualmente funciona com as plataformas Linux, FreeBSD, Windows, macOS, Android e iOS. Também existe a possibilidade de trabalhar com os serviços criptográficos prestados por essas plataformas, incluindo coprocessadores para computação em enclaves isolados. Para fornecer isolamento adicional, é praticado separar serviços em processos separados que funcionam com chaves públicas e privadas. Por exemplo, um armazenamento de chaves é desenvolvido na forma de um processo separado. O protocolo Cap'n Proto é usado para garantir a interação de processos individuais.
A nova versão apresentada tem um pacote de baixo nível sequoia-openpgp , o programa sqv (substituição do gpgv) para verificar as assinaturas desanexadas e um utilitário sqop com uma implementação do Stateless OpenPGP CLI. Os requisitos de ferrugem foram aumentados para a versão 1.46. O uso do sistema de integração contínua para verificação de mudanças foi expandido e o conjunto para teste de compatibilidade com OpenPGP foi aprimorado.
Em um futuro próximo, os desenvolvedores estão planejando lançar a versão 1.0, que também incluirá uma API de alto nível, e não apenas uma de baixo nível, como é agora.
