Gerando chaves SSH e GnuPG em um servidor remoto. Melhores práticas de gerenciamento de chaves

Gerando chaves SSH e GnuPG em um servidor remoto. Melhores práticas de gerenciamento de chaves

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

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

Enquanto eu digitava as senhas das minhas chaves recém-geradas, percebi que não tenho controle sobre a máquina na qual estou conectado ou sobre o link intermediário. Eu meio que confio nos administradores de sistemas no trabalho, e o SSH é seguro, mas mesmo assim... foi estranho enviar minhas novas senhas pelo link assim.

O que você acha? É mais sensato gerar as chaves (SSH, GnuPG ou outras) localmente e depois transferir as chaves privadas por SSH, ou estou apenas sendo paranóico com a coisa toda?

Além disso, se estou certo em ser pelo menos um pouco paranóico, o que você acha sobre onde armazenar as chaves privadas? Todos eles deveriam estar em um lugar físico? Devo fazer uso pesado gpg-agente ssh-agentsempre?

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

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

Responder1

O que você acha? É mais sensato gerar as chaves (SSH, GnuPG ou outras) localmente e depois transferir as chaves privadas por SSH, ou estou apenas sendo paranóico com a coisa toda?

Isso realmente não faz diferença, pelo menos se os administradores do sistema não mexerem na pilha de software (mas por que deveriam, obtendo as chaves privadas de qualquer maneira?).

Enquanto a chave privada estiver na máquina remota, não hásem diferençacomo chegou lá. Os administradores do sistema podem ter acesso a ele. Uma senha também adicionará um esforço adicional para obter as chaves, pois elas também podem obter acesso à sua entrada.

Além disso, se estou certo em ser pelo menos um pouco paranóico, o que você acha sobre onde armazenar as chaves privadas? Todos eles deveriam estar em um lugar físico? Devo fazer uso intenso do gpg-agent e do ssh-agent sempre?

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

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

A respeito deOpenPGP/GnuPG, as coisas dependem dos seus requisitos. Parece que você deseja assinar software e tenho a sensação de que isso acontece com sua empresa. Se a chave estiver diretamente ligada à empresa e criada apenas para esse fim, 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ê possa pelo menos limitar à assinatura e revogar a qualquer momento sem complicações. De qualquer forma, usar subchaves é uma boa prática! Muitos usuários avançados do OpenPGP armazenam suas chaves primárias privadas off-line e as usam apenas para gerenciamento de chaves.

O soquete do encaminhamento gpg-agentparece 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 removeutodosoperações de chave privada para o agente).

informação relacionada