Capítulo 4. Tópicos avançados


Esta seção cobre tópicos que estão além do escopo do tutorial introdutório, mas que são úteis em embalagens RPM do mundo real.

4.1. Assinatura de pacotes

Os pacotes são assinados para garantir que nenhum terceiro possa alterar seu conteúdo. Um usuário pode adicionar uma camada adicional de segurança usando o protocolo HTTPS ao fazer o download do pacote.

Há três maneiras de assinar um pacote:

Para poder assinar um pacote, você precisa criar uma chave GNU Privacy Guard (GPG), conforme descrito em Seção 4.1.1, “Criando uma chave GPG”.

4.1.1. Criando uma chave GPG

Procedimento

  1. Gerar um par de chaves GNU Privacy Guard (GPG):

    # gpg --gen-key
  2. Confirmar e ver a chave gerada:

    # gpg --list-keys
  3. Exportar a chave pública:

    # gpg - export -a '<Key_name>' > RPM-GPG-KEY-pmanager
    Nota

    Inclua o nome real que você selecionou para a chave em vez de <Key_name>.

  4. Importar a chave pública exportada para um banco de dados RPM:

    # rpm --importar RPM-GPG-KEY-pmanager

4.1.2. Acrescentar uma assinatura a um pacote já existente

Esta seção descreve o caso mais usual quando um pacote é construído sem uma assinatura. A assinatura é adicionada imediatamente antes do lançamento do pacote.

Para adicionar uma assinatura a um pacote, use a opção --addsign fornecida pelo pacote rpm-sign.

Ter mais de uma assinatura permite registrar o caminho de propriedade do pacote desde o construtor do pacote até o usuário final.

Procedimento

  • Adicione uma assinatura a um pacote:

    $ rpm --blather-addsign-7.9-1.x86_64.rpm
    Nota

    Você deve inserir a senha para desbloquear a chave secreta para a assinatura.

4.1.3. Verificação das assinaturas de um pacote com múltiplas assinaturas

Procedimento

  • Para verificar as assinaturas de um pacote com múltiplas assinaturas, execute o seguinte:

    $ rpm --checksig blather-7.9-1.x86_64.rpm
    blather-7.9-1.x86_64.rpm: size pgp pgp md5 OK

    As duas cordas pgp na saída do comando rpm --checksig mostram que o pacote foi assinado duas vezes.

4.1.4. Um exemplo prático de como adicionar uma assinatura a um pacote já existente

Esta seção descreve um exemplo de situação em que adicionar uma assinatura a um pacote já existente pode ser útil.

Uma divisão de uma empresa cria um pacote e o assina com a chave da divisão. A sede da empresa então verifica a assinatura do pacote e adiciona a assinatura corporativa ao pacote, declarando que o pacote assinado é autêntico.

Com duas assinaturas, a embalagem chega a um varejista. O varejista verifica as assinaturas e, se corresponderem, adiciona também sua assinatura.

O pacote agora chega a uma empresa que quer implantar o pacote. Após verificar cada assinatura no pacote, eles sabem que se trata de uma cópia autêntica. Dependendo dos controles internos da empresa implantadora, eles podem optar por adicionar sua própria assinatura, para informar seus funcionários que o pacote recebeu sua aprovação corporativa

4.1.5. Substituindo a assinatura em um pacote já existente

Este procedimento descreve como mudar a chave pública sem ter que reconstruir cada pacote.

Procedimento

  • Para mudar a chave pública, execute o seguinte:

    $ rpm --reinscrição blather-7.9-1.x86_64.rpm
    Nota

    Você deve inserir a senha para desbloquear a chave secreta para a assinatura.

A opção --resign também permite alterar a chave pública para vários pacotes, como mostrado no procedimento a seguir.

Procedimento

  • Para mudar a chave pública para vários pacotes, execute:

    $ rpm - resignar b*.rpm
    Nota

    Você deve inserir a senha para desbloquear a chave secreta para a assinatura.

4.1.6. Assinatura de um pacote no momento da construção

Procedimento

  1. Construa o pacote com o comando rpmbuild:

    R$ rpmbuild blather-7.9.spec
  2. Assine o pacote com o comando rpmsign usando a opção --addsign:

    $ rpmsign --addsign blather-7.9-1.x86_64.rpm
  3. Opcionalmente, verificar a assinatura de um pacote:
$ rpm --checksig blather-7.9-1.x86_64.rpm
blather-7.9-1.x86_64.rpm: size pgp md5 OK
Nota

Ao construir e assinar vários pacotes, use a seguinte sintaxe para evitar a entrada da senha Pretty Good Privacy (PGP) várias vezes.

$ rpmbuild -ba --sign b*.spec

Observe que você deve digitar a senha para desbloquear a chave secreta para a assinatura.

Red Hat logoGithubRedditYoutubeTwitter

Aprender

Experimente, compre e venda

Comunidades

Sobre a documentação da Red Hat

Ajudamos os usuários da Red Hat a inovar e atingir seus objetivos com nossos produtos e serviços com conteúdo em que podem confiar.

Tornando o open source mais inclusivo

A Red Hat está comprometida em substituir a linguagem problemática em nosso código, documentação e propriedades da web. Para mais detalhes veja oBlog da Red Hat.

Sobre a Red Hat

Fornecemos soluções robustas que facilitam o trabalho das empresas em plataformas e ambientes, desde o data center principal até a borda da rede.

© 2024 Red Hat, Inc.