Atualização do Fedora 25: não instala chaves para atualizações de pacotes, o que está acontecendo?

0

O Fedora 24 mostra esta adorável atualização para o Fedora 25 (usando o gnome-software). As instruções para atualizar a estação de trabalho do Fedora simplesmente listam as etapas para clicar na GUI. Bom trabalho!

Quando fui instalar algum software, fiquei surpreso ao encontrar este prompt / aviso:

$ sudo dnf upgrade
...
warning: /var/cache/dnf/updates-1d34501737ae01ab/packages/NetworkManager-openconnect-1.2.4-3.fc25.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fdb19c98: NOKEY
Importing GPG key 0xFDB19C98:
 Userid     : "Fedora 25 Primary (25) <[email protected]>"
 Fingerprint: C437 DCCD 558A 66A3 7D6F 4372 4089 D8F2 FDB1 9C98
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-25-x86_64
Is this ok [y/N]:

Isso significa que as atualizações automáticas (notificações) estão falhando silenciosamente, a menos que eu instale manualmente algo e aceite a chave ??

    
por sourcejedi 20.12.2016 / 15:40

1 resposta

3

Não, porque as notificações automáticas de atualização no Fedora Workstation usam o PackageKit. Eles não usam dnf.

Você pode ver que o pkcon instala pacotes com sucesso (ou atualizações com pkcon -c 1 refresh && pkcon update (explicação de -c aqui )). Não avisa sobre a chave. Nem instala a chave na loja usada pelo dnf; se você rodar o dnf novamente, ele continuará solicitando a chave.

Isso foi surpreendente, porque o keystore usado pelo dnf é na verdade rpm . O PackageKit atua como um frontend para o rpm, mas aparentemente ele não preenche o chaveiro do rpm ou depende dele para verificação.

Você pode ver que o PackageKit, em vez disso, salva as chaves em, por exemplo, %código%. Provavelmente isso faz mais sentido do que a organização tradicional. Dessa forma, é possível saber quais chaves foram baixadas para qual repositório.

Diferente do dnf, o PackageKit não solicita a aceitação de chaves do URL configurado. É correto dizer que isso é puramente um cache.

EDIT: Acredito que o PackageKit não está me avisando porque as transações que o SO executa para atualizações geralmente são executadas como não-"interativas". Se você executou uma atualização interativa, por exemplo, usando /var/cache/PackageKit/25/metadata/fedora/gpgdir/ sem a opção pkcon update , você veria o prompt. No entanto, fazer uma atualização online com o PackageKit não é documentado como uma forma confiável de atualizar entre as versões do Fedora.

A falta de aviso não afeta a segurança do Fedora, porque e. /etc/yum.repos.d/fedora.repo diz para carregar a chave de um arquivo, que já foi instalado (pelo pacote -y ). O aviso por dnf também seria ignorado se você usasse scripts com fedora-release - essa é a maneira padrão de evitar solicitações quando o pacote instalado tiver requisitos adicionais. (O módulo Ansible dnf -y install faz a mesma coisa).

Eu concluo que este aviso por dnf não é considerado para servir a um propósito importante. Considerando o cenário da questão, provavelmente seria melhor remover o prompt que diz "aviso" e perguntar "está tudo ok".

Outros repos como google-chrome.repo podem depender do download de chaves de atualização por HTTPS. Isso tem propriedades de segurança diferentes. Em particular, parece menos provável que a fixação de chaves e as HSTS (usadas pelos principais clientes HTTPS) tenham sido implementadas para o PackageKit. Não estou claro por que isso foi implementado em primeiro lugar: o download de chaves atualizadas usando um método com propriedades de segurança diferentes.

    
por 20.12.2016 / 15:40