quinta-feira, 26 de dezembro de 2024

Sequoia quebra os repositórios apt. Como corrigir isso.

For the English version go to: https://www.adilson.net.br/2024/12/sequoia-breaks-apt-repos-how-to-fix-it.html

Depois de muito tempo sem atualizar o blog, vou escrever sobre algo bem recente que aconteceu em alguns dos meus sistemas aqui.

Para quem não sabe, normalmente uso Debian Sid nos desktops e notebooks com várias personalizações e repositórios de terceiros.

E, na semana do Natal, alguns desenvolvedores entregaram um presente para o próprio APT, de acordo com o último changelog.

apt (2.9.19) unstable; urgency=medium


  * Replace GnuTLS and gcrypt with OpenSSL

  * Replace GnuPG with Sequoia on supported Debian platforms

    - methods: Add new sqv method

    - debian: Add default policy to allow SHA-1 self-signatures until 2026

    - debian: Plug sqv into the package build

  * Smaller bits:

    - apt-helper: Add a hash-file helper to debug file hashing

    - Use sq in the test suite, remove apt-key

    - abicheck: Add symbol-merge.py helper

    - Symbols: Merge stable, noble, testing, unstable


 -- Julian Andres Klode <jak@debian.org>  Mon, 23 Dec 2024 12:16:19 +0100

 

 Eles trocaram o GnuPG pelo Sequoia, que é uma implementação alterantiva para o PGP. Só que essa implementação tem umas configurações que, por padrão, bloqueiam o hash inseguro sha-1 para verificar as assinaturas de critografia. 

 Os desenvolvedores até colocaram uma alteração na politica do Sequoia que permite o uso do sha-1 até 2026, para dar tempo dos repositórios se adequarem. 

 Mas sabem como é o Debian Sid.

 

Tem coisas que o Sid quebra

 

 E quebrou com alguns repositórios. Alguns desses erros foram: 

 Err:39 https://packagecloud.io/slacktechnologies/slack/debian jessie InRelease

  Sub-process /usr/bin/sqv returned an error code (1), error message is: Signing key on DB085A08CA13B8ACB917E0F6D938EC0D038651BD is not bound:            primary key   because: No binding signature at time 2024-12-17T17:27:20Z   because: Policy rejected non-revocation signature (PositiveCertification) requiring collision resistance   because: SHA1 is not considered secure since 2013-02-01T00:00:00Z  

  W: Falhou ao buscar https://pkgs.k8s.io/core:/stable:/v1.31/deb/InRelease  Sub-process /usr/bin/sqv returned an error code (1), error message is: Error: Policy rejected packet type  Caused by:     Signature Packet v3 is not considered secure since 2021-02-01T00:00:00Z

    

  Até tentei verificar algo relacionado na explicação abaixo:

  

  apt (2.9.19) unstable; urgency=medium


  This release switches to OpenSSL for hashing and TLS, replacing the

  GnuTLS and gcrypt libraries.


  This release switches to Sequoia for OpenPGP verification on supported

  Debian platforms. A Sequoia policy override enabling SHA1 self-signatures

  until 2026 is included. To override the policy, the following environment

  variables and files are considered:


  * The APT_SEQUOIA_CRYPTO_POLICY environment variable, and failing that:

    - /etc/crypto-policies/back-ends/apt-sequoia.config,

    - /var/lib/crypto-config/profiles/current/apt-sequoia.config

  * The SEQUOIA_CRYPTO_POLICY environment variable, and failing that:

    - /etc/crypto-policies/back-ends/sequoia.config

    - /var/lib/crypto-config/profiles/current/sequoia.config


 -- Julian Andres Klode <jak@debian.org>  Mon, 23 Dec 2024 12:16:22 +0100


 Só que as configurações não deram certo. A documentação do Sequoia https://docs.rs/sequoia-policy-config/latest/sequoia_policy_config/index.html não indicava um local correto para configuração e nem mesmo o ChatGPT conseguia uma configuração correta.

  Se nem a IA sabia como configurar corretamente:

 

 


 

 imagina um humano que só esbarrou no erro. 

 

 Depois de pesquisar muito. Descobri onde foi configurado as politicas do Sequoia no apt:

 

/usr/share/apt/default-sequoia.config


Como não explicam direito outros lugares alternativos 😵‍💫, vai neste mesmo:


Atualização: 9 de janeiro 2025: Um leitor anonimo comentou sobre /etc/crypto-policies/back-ends/apt-sequoia.config. Esta pasta não existe no meu sistema. Então tive que fazer um


mkdir -p /etc/crypto-policies/back-ends/ 

e criar o arquivo apt-sequoia.config para adicionar a configuração abaixo:

Dentro encontra a seguinte configuração:


[hash_algorithms]

sha1.second_preimage_resistance = 2026-01-01


Tenta alterar para 

[hash_algorithms]

#sha1.second_preimage_resistance = 2026-01-01

sha1= 2030-01-01

[packets]

signature.v3 = 2030-01-01


Comentei a primeira linha e adicionei o sha1 com a data para 01/01/2030.


Daí adicionei o campo packets com configuração de signature.v3, que também foi afetada, para 01/01/2030.


Após salvar o arquivo o erro desapareceu.


Esta é apenas uma solução temporária enquanto os desenvolvedores façam as correções no apt ou, quem mantem os repositórios, façam as atualizações nas assinaturas para padrões mais recentes que o Sequoia suporta sem problemas.

Tem que estar em mente que o SHA-1 já não é mais seguro e uma atualização do apt pode sobrescrever o /usr/share/apt/default-sequoia.config. Se o erro voltar, terá que aplicar as alterações novamente no arquivo.


Caso encontrem uma alternativa melhor, me informe nos comentários que será testado.


Agora você pode tentar a solução acima:


Um Feliz Ano Novo para todos.

Nenhum comentário:

Postar um comentário