Como ter uma frase secreta diferente para uma subchave gpg?

14

Eu preciso automatizar um processo de implantação e a ferramenta assinará os artefatos de release automaticamente. Meu anel de chave tem uma chave primária que eu uso apenas para criar subchaves e duas subchaves. Uma subchave para assinatura e outra para criptografia.

Atualmente, há uma frase única para todas as chaves. Não quero especificar essa frase secreta em um arquivo de configuração, pois isso também arriscaria a chave primária.

Então, pensei em definir uma frase secreta diferente para a subchave fazendo:

$ gpg --edit-key [subkey-id]
gpg> passwd
gpg> save

Mas isso também mudou a frase secreta para outras chaves.

Como posso definir uma frase secreta para chaves individuais?

    
por Kshitiz Sharma 19.02.2015 / 15:40

2 respostas

12

A configuração de senhas individuais para subchaves não é possível com o GnuPG. Mas há uma solução alternativa, que até parece uma boa ideia prática neste caso:

  1. Exporte a subchave de escolha (no exemplo, a subchave possui ID 0xDEADBEEF ). Não se esqueça do ponto de exclamação, ele garante que o GnuPG realmente funciona com a subchave e não com a chave primária a que pertence!

    gpg --export-secret-subkeys 0xDEADBEEF! >subkeys.pgp
    

    A subchave terá a chave primária pública e um "stub-chave" primário anexado, mas não a chave primária privada em si.

  2. Importe a subchave para outro diretório inicial do GnuPG. O exemplo espera que você esteja no diretório-raiz do seu projeto e tenha uma pasta etc para coisas como este chaveiro lá dentro.

    gpg --homedir ./etc/gnupg --import subkeys.pgp
    
  3. Altere a frase secreta da subchave separada.

    gpg --homedir ./etc/gnupg --edit-key 0xDEADBEEF
    
  4. Em vez de usar seu chaveiro "normal", sempre consulte o diretório separado do GnuPG como mencionado acima.

Como alternativa, você pode querer considerar a criação de uma chave de projeto que você assina com sua própria chave. Isso pode ter a vantagem de outros contribuidores / usuários também poderem assinar a chave (e, assim, certificar que essa é a chave usada no projeto), e entregar o projeto pode ser mais fácil no caso de alguém assumir a manutenção.

    
por 19.02.2015 / 18:24
2

Um arquivo de mensagens muito antigo (2013) gnupg.org explica uma solução inábil para criar uma senha separada para uma subchave .
Isso implica que a restrição não está dentro da estrutura de dados do conjunto de chaves (ou seja, o agrupamento de subchaves mestre), mas apenas na interface de software para construir e modificar o conjunto de chaves.

Uma citação da referência:

Hi,

is it possible to have a master key and several subkeys with the subkeys having a different (e.g. shorter) passphrase than the master key?

     

O que você provavelmente está procurando é um mainkey offline (veja   --export-secret-subkeys). Mas a resposta é: sim. O gpg-agent não se importa com a conexão de chaves. Ele te pergunta mesmo pelo mesmo   passphrase várias vezes (para diferentes componentes da mesma chave).

     

Mas o GnuPG não suporta isso diretamente.

     

1) Exporte a chave secreta (--export-secret-keys sem --armor)

     

2) altere a senha

     

3) Exporte novamente (para um arquivo diferente, é claro)

     

4) Use o gpgsplit nos dois arquivos (em diferentes diretórios). O resultado   é assim:

     

000001-005.secret_key 000002-013.user_id 000003-002.sig   000004-007.secret_subkey 000005-002.sig

     

5) Agora você mistura os componentes dos dois grupos: mkdir combined mv   a / 000001 * a / 000002 * a / 000003 * combinado / mv b / 000004 * b / 000005 *   combinado / cd combinado / cat * > different_passphrases.gpg

     

6) Exclua a chave de secring: --delete-secret-key

     

7) Importe o novo: gpg --import different_passphrases.gpg

     

Hauke Laging

Eu pessoalmente não confirmei esta operação - apenas relato o que li.

A falta de especificação e discussão na documentação do GnuPG relativa a este tópico importante é decepcionante.

    
por 02.05.2018 / 23:51