Como importo uma chave RSA SSH para o GPG como a chave privada _primary_?

13

Atualmente, tenho uma chave SSH que usei há algum tempo e gostaria de começar a usar o GnuPG com um novo chaveiro. No entanto, considerando que usei minha chave por muito tempo, ainda gostaria de usar essa chave no GPG como a chave principal / primária. Eu tentei importar a chave por meio de estas instruções .

Mas acabo com o que é considerado uma "subchave". Além disso, se eu tentar importá-lo sem criar uma chave GPG padrão, o GPG nem verá essa subchave. (Estou assumindo que a subchave precisa ser assinada pela chave principal primeiro.)

Como eu uso essa chave como chave principal em secring.gpg?

    
por Brendan Byrd 05.01.2012 / 16:16

4 respostas

13

A resposta simples é: Você não.

As chaves SSH e GnuPG (na verdade, OpenPGP) são completamente diferentes, embora ambos os protocolos possam usar pares de chaves RSA.

E, além disso, por que você gostaria de fazer isso? Mesmo se você usasse o mesmo material-chave para compor sua chave PGP, ainda precisaria distribuir sua chave como um PGP chave. Você provavelmente não distribuiu sua chave pública SSH para as pessoas com as quais você se corresponde, portanto, do ponto de vista da distribuição de chaves, não há diferença: elas precisarão receber uma chave pública de você. E mesmo que você tenha distribuído sua chave pública SSH para outras pessoas, elas precisarão seguir alguns passos adicionais para poder importá-la para a implementação do OpenPGP, o que pode ou não ser fácil.

Como kasperd indicou muito bem, deve haver apenas uma maneira de interpretar (particularmente) uma assinatura. Se você fosse usar a mesma chave para PGP e SSH, se alguém pudesse induzi-lo a assinar uma mensagem especialmente criada (que é um recurso assumido em certos ataques ao sistema de assinatura) em um, então mesmo ambos os sistemas são seguros isoladamente, é possível criar uma mensagem desse tipo de uma forma que tenha um significado em um dos sistemas, mas um significado diferente no outro. Isso, por si só, seria uma vulnerabilidade. (Explorável? Quem sabe. Mas por que arriscar?)

Os pares de chaves PGP e SSH são chaves de longo prazo, que são usadas para proteger chaves simétricas efêmeras (mensagem e sessão), bem como para verificar a autenticidade de uma parte remota. Isso torna a chave privada PGP ou SSH uma meta de valor muito maior para um invasor do que a chave simétrica correspondente. Se você usar o mesmo material de chave para ambos, e um invasor conseguir perceber isso, apenas aumentará o valor de um ataque bem-sucedido a esse par de chaves.

Sem ter olhado para nenhum dos protocolos detalhadamente, imagino que reconhecer que o mesmo material chave está sendo usado em ambos provavelmente seria bastante trivial, já que a chave pública é basicamente transmitida de forma clara.

Basta gerar uma nova chave PGP. Se desejar, crie RSA e da mesma duração que a sua chave SSH. (Nenhuma pessoa sensata vai parecer muito mais próxima do que verificar a impressão digital de qualquer maneira.) Em seguida, distribua a chave pública para as pessoas com as quais deseja se corresponder, como uma chave PGP. Será muito mais fácil para todos e muito provavelmente mais seguro, ao custo de uma pequena quantidade de entropia do conjunto de entropia aleatório do seu sistema, que deve ser rapidamente reabastecido de qualquer maneira.

Se tiver várias chaves no seu chaveiro secreto e quiser especificar qual delas deve ser usada por padrão, use as diretivas default-key e possivelmente default-recipient{,-self} em seu ~ / .gnupg / gnupg .conf.

    
por 15.08.2014 / 10:31
5

Você pode converter uma chave SSH em uma chave OpenPGP com a ferramenta pem2openpgp do projeto monkeysphere . Essa chave pode então ser importada pelo gnupg como um par de chaves privada / pública regular. Como a outra resposta menciona, isso geralmente não é uma boa idéia, porque o ssh não tem nenhum conceito de certificados, então você está efetivamente adicionando uma capacidade a uma chave existente que ela não poderia ter antes. Isto é geralmente um não-go em criptografia.

Eu fiz isso de qualquer maneira com uma das minhas chaves ssh, mas adicionei o par de chaves à minha outra chave OpenPGP como uma subchave que tem apenas um sinalizador de capacidade: autenticação. Esse sinalizador é destinado a situações como essa, em que você não deseja assinar ou criptografar nada com um par de chaves (significando --encrypt e --sign opções para o gnupg), mas deseja tê-lo em seu keybox para autenticação com OpenSSH e o gnupg-agent de qualquer maneira.

Para mais detalhes, consulte a documentação do monkeysphere.

    
por 08.08.2016 / 13:52
2

Pode haver boas razões para converter uma chave regular no formato PKCS para importação em gpg.

Por exemplo, se você quiser colocá-lo em um cartão inteligente. As facilidades que o gpg oferece com seus comandos card-info e card-edit são muito úteis para esse propósito, então porque não utilizá-lo como uma ferramenta? O único obstáculo que alguém precisa superar é ... exatamente: importar a chave do formato padrão PKCS # 8 (ou formato "bruto" RSA PKCS # 1) para o armazenamento de chaves gpg para processamento adicional.

Então - observe minha objeção à resposta aprovada! :)

Uma resposta realmente útil para esse tipo de pergunta é encontrada aqui: link

    
por 12.01.2017 / 20:40
1

Use isso no Ubuntu 16.04 ou no Windows WSL.

sudo apt install -y monkeysphere
cat key.pem | PEM2OPENPGP_USAGE_FLAGS=authenticate pem2openpgp "Key <[email protected]>" > key.pgp

Cartão de importação. Pode ser feito no Windows ou Linux.

gpg --import key.gpg

Mover para o cartão

Encontre o identificador de assinatura principal.

gpg --list-key

Mover a chave de autenticação para o cartão

gpg --edit-key FFFFFFFFFFF
keytocard

Selecione um número para o slot de autenticação.

Você terminou aqui.

Lembre-se de apagar a chave do chaveiro gpg se estiver usando um cartão. Use o identificador de chave acima.

gpg --delete-secret-key FFFFFFFFFFF

Misc

Não é necessário, mas pode ser útil para obter uma chave no formato de texto baseado em pgp.

gpg -a --export FFFFFF > key.asc
    
por 14.11.2017 / 14:55