Gerando chaves SSH e GnuPG em um servidor remoto. Práticas recomendadas de gerenciamento de chaves

2

Estou perguntando sobre as práticas recomendadas relacionadas à geração, uso e gerenciamento de chaves.

Em algumas ocasiões, e por várias razões, criei chaves SSH e GnuPG enquanto estava conectado via SSH a um servidor multiusuário remoto no trabalho (e à minha máquina desktop no trabalho, de casa).

Pareceu-me enquanto eu estava tocando nas senhas para as minhas chaves recém-geradas que eu não tenho controle sobre a máquina que estou logado, ou sobre o link inbetween. Eu meio que confio nos administradores no trabalho, e o SSH é seguro, mas não deixa de ser ... foi estranho enviar minhas novas senhas sobre o link desse jeito.

O que você acha? É mais sensato gerar as chaves (SSH, GnuPG ou outras) localmente e, em seguida, transferir as chaves privadas através de SSH, ou estou apenas sendo paranóico sobre a coisa toda?

Além disso, se estou certo em ser, pelo menos, ligeiramente paranóico, qual é o seu pensamento sobre onde armazenar chaves privadas? Todos eles deveriam estar em um lugar físico? Devo fazer uso pesado de gpg-agent e ssh-agent sempre?

Estou trabalhando em duas máquinas separadas, fazendo login em alguns servidores multiusuários separados usando o SSH para fazer o trabalho. Eu assino Git commits com o GnuPG de cerca de quatro locais (local e remotamente).

Estou trabalhando em uma mistura de Mac OS X (com MacPorts) e Linux (com o Pkgsrc), mas sempre na linha de comando.

    
por Kusalananda 03.06.2015 / 13:23

1 resposta

2

What do you think? Is it wiser to generate the keys (SSH, GnuPG, or other) locally and then transfer the private keys over SSH, or am I just being paranoid about the whole thing?

Isso não faz diferença, pelo menos se os administradores do sistema não interferirem com a pilha de software (mas por que eles deveriam se apossar das chaves privadas?).

Desde que a chave privada esteja na máquina remota, não há diferença como chegou lá. Os administradores do sistema podem ter acesso a ele. Uma frase secreta também apenas adicionará um esforço adicional para obter as chaves, pois elas também podem obter acesso à sua entrada.

Also, if I'm right to be at least slightly paranoid, what's your thought about where to store private keys? Should they all be in one physical place? Should I make heavy use of gpg-agent and ssh-agent always?

Isso depende de seus requisitos, nível de paranimidade, confiança nos administradores do sistema e, finalmente, uso da chave.

Se você precisar de uma chave SSH privada na máquina para acessar alguns serviços (digamos, GitHub), basta gerar uma nova somente usada nesta máquina, e aceita apenas para autenticação nos serviços. / máquinas necessárias.

Em relação ao OpenPGP / GnuPG, as coisas dependem dos seus requisitos. Parece que você quer assinar um software e tenho a sensação de que isso acontece para a sua empresa. Se a chave está diretamente ligada à empresa e criada apenas para essa finalidade, não vejo objeções em não tê-la em suas máquinas.

Se você precisar usar sua própria chave por qualquer motivo, crie uma subchave que você pode, pelo menos, limitar a assinar e revogar a qualquer momento sem aborrecimentos. Usar subchaves é uma boa prática, de qualquer maneira! Muitos usuários avançados do OpenPGP, na verdade, armazenam suas chaves primárias privadas offline e, na verdade, só o usam para gerenciamento de chaves.

Encaminhar o soquete de gpg-agent parece ser bem possível , e, é claro, reduzirá o acesso do administrador do sistema à chave (eles não têm mais acesso à chave completa, mas só podem usá-la, pelo menos começando com o GnuPG 2.1, que removeu todas as operações de chave privada de all o agente).

    
por 04.06.2015 / 12:18