Questão Há algum problema em compartilhar arquivos de chaves privadas entre vários computadores / serviços?


Então, todos nós sabemos como usar chaves públicas / privadas usando SSH, etc. Mas qual é a melhor maneira de usá-las / reutilizá-las? Devo mantê-los em um lugar seguro para sempre? Quer dizer, eu precisava de um par de chaves para acessar o GitHub. Eu criei um par do zero e usei isso por algum tempo para acessar o GitHub. Então eu formatei meu disco rígido e perdi esse par. Grande coisa, criei um novo par e configurei o GitHub para usar meu novo par. Ou é algo que eu não quero perder?

Eu também precisava de um par de chave pública / chaves privadas para acessar os sistemas da nossa empresa. Nosso administrador me pediu minha chave pública e eu criei um novo par e dei a ele. Geralmente é melhor criar um novo par para acessar sistemas diferentes ou é melhor ter um par e reutilizá-lo para acessar diferentes sistemas? Da mesma forma, é melhor criar dois pares diferentes e usar um para acessar os sistemas de nossas empresas de casa e o outro para acessar os sistemas do trabalho, ou é melhor ter apenas um par e usá-lo de ambos os lugares?


105


origem


Esta não é diretamente uma resposta à sua pergunta, mas é aconselhável ter senhas para cada chave também. O ideal é separar senhas para cada chave (use um gerenciador de senhas). A razão é a seguinte: Se uma chave privada for comprometida (o laptop foi roubado, o computador foi invadido), então você tem algum tempo antes que a chave seja forçada e você possa substituir a chave pública em todas as máquinas que a possuem. , antes que seu atacante possa. Fonte: help.ubuntu.com/community/SSH/OpenSSH/… - Xandor Schiefer


Respostas:


Você deve definitivamente ter chaves privadas separadas por origem. Basicamente, isso significa que geralmente deve haver uma única cópia de cada chave privada (sem contar os backups). Não há problema em usar a mesma chave privada de uma máquina intimamente relacionada, em situações em que a invasão em uma basicamente dá acesso a outra (por exemplo, se elas estão na máquina uma da outra) shosts.equiv). Não use a mesma chave privada em máquinas em diferentes regiões (por exemplo, casa e trabalho), nunca compartilhe uma chave privada entre dois usuários e nunca compartilhe uma chave privada entre um laptop e qualquer outra máquina.

Na maioria das vezes, não vejo o ponto em ter chaves privadas diferentes para destinos diferentes. Se uma chave privada for comprometida, todas as outras chaves privadas armazenadas no mesmo diretório certamente serão comprometidas, portanto, haverá complicação adicional sem nenhum benefício de segurança.

Se você seguir esses princípios, cada par de chaves identificará um par (máquina, usuário), o que facilita o gerenciamento de autorização.

Posso pensar em duas exceções à regra geral de uma única chave privada por origem:

  • Se você tiver uma chave sem senha que dê acesso somente a um comando específico em uma máquina específica (por exemplo, um mecanismo automatizado de backup ou notificação), essa chave deve ser diferente da chave geral de acesso ao shell.
  • Se algumas máquinas estiverem conectadas intermitentemente, você poderá ter uma chave privada antiga ao lado de uma nova chave privada, até que você conclua a implantação da nova chave.

83



É assim que sempre usei meu par de chaves. Eu não entendi porque o GitHub estava defendendo a geração de um novo par de chaves em suas instruções de configuração. Eu ignorei isso e usei meu par de chaves padrão. Eu suponho que eles estão sendo conservadores. - toolbear74
Ok, então você diz "Não use a mesma chave privada em máquinas em diferentes regiões", mas e se o DNS resolver um determinado nome de host para qualquer máquina dependendo da sua localização? Sem compartilhar a chave privada, recebo avisos ou falhas quando tento ssh ou rsync para esse nome de host porque o ssh fica confuso ao ter duas chaves separadas para o mesmo nome de host. - Michael
@Michael Eu não entendo o problema que você pode ter com do utilizador chaves no cenário que você descreve, que é o assunto deste tópico. SSH ficaria confuso sobre hospedeiro chaves, mas como um usuário o que você vê é a chave pública do host, não a chave privada do host, e o compartilhamento da chave privada de um host é perigoso - eu só recomendaria se os hosts fossem completamente equivalentes (redundância caso um deles falhasse) ), e provavelmente nem mesmo então. - Gilles
Ah ok. Parece que não há muita distinção clara entre os dois, e é apenas suposto que você sabe qual deles está sendo falado. - Michael
@JSBach Ter chaves separadas por região permite que você defina permissões mais refinadas (a chave armazenada no domínio de baixa segurança A é permitida para uso entre máquinas de A, mas o login em B requer um fator de autenticação mais forte) e permite revocá-las separadamente (o reino A ficou comprometido, mas ainda consigo logar em C de B). O SSO é o caso em que você faz login no sistema de mais alta segurança e, em seguida, você pode efetuar login em outro lugar. Não sei quais riscos eles veem em ter várias chaves por usuário. Este seria um tema para Segurança da Informação. - Gilles


Eu não sei qual é o melhor caminho, mas posso dizer qual é o meu caminho.

Como um administrador de sistemas eu uso uma chave diferente para acessar cada servidor / serviço como root. Dessa forma, se uma chave for perdida ou comprometida, limito o risco a um único servidor e não preciso atualizar todos os meus serviços com chaves novas.

Falando de usuários, eu uso uma chave diferente para cada um deles. Com essa chave, o usuário pode acessar o serviço de que precisa como usuário não privilegiado. Dessa forma, posso conceder ou revogar facilmente o acesso a serviços únicos para cada usuário. Caso o usuário perca sua chave, posso excluí-la de todos os serviços e limitar o risco de acesso não autorizado.


4



Eu vou falar com meu chefe sobre uma nova política de uso de chaves ;-) por servidor / serviço soa ainda mais seguro do que apenas por rede - Diskilla


Na minha empresa, usamos essas chaves específicas do usuário. Isso significa caso dois. O usuário tem sua própria chave e esta é usada para todas as máquinas que ele usa para se conectar ao sistema da empresa. minha opinião é usar uma chave para um sistema. Isso significa que você usa essa chave em todas as máquinas necessárias para se conectar às redes específicas. Para o seu caso, isso seria uma chave para o GitHub e uma chave para o sistema da empresa. Então, se o seu administrador perguntar de novo, eu daria a mesma chave da última vez. não é um novo. Mas, eu não sei se existe uma política de uso comum para essas chaves e estou fazendo errado desde então. Isso com certeza é possível ;-)


0





A chave pública que você gerou é para todos. Isso lhes permitirá a) verificar a autenticidade b) criptografar para você

A chave privada é, bem, privada. É só para você. E é a chave que você deve fazer backup em algum lugar, em um lugar seguro. Você também pode criptografá-lo com uma senha segura, se você salvá-lo em um pen drive, por exemplo.

A chave pública é sua identidade para os outros. Portanto, não há problema / é melhor usar um par de chaves para tudo, pelo menos onde você não quer usar uma nova identidade explícita, para que os outros saibam que é você.


0



Obrigado, mas sua resposta é, na maior parte, não relacionada à minha pergunta. Veja a resposta do @ Diskilla. - Behrang


Acredito que você poderia usar a chave privada em qualquer lugar desde que você tenha colocado uma senha, ou seja, se você gostaria de compartilhar sua chave privada com poucas máquinas, por exemplo, laptop 1, 2, desktop 1, 2, tudo bem.

Pela minha experiência, minha máquina principal é a minha área de trabalho, que faço a maior parte do meu trabalho com seu processador potente, mas às vezes preciso usar meu laptop em dispositivos móveis, solucionar problemas em data centers e coisas assim, ainda posso fazer login em qualquer host em que tenho minha chave pública.


0



Leia a melhor resposta aqui. Você está fazendo isso errado. Não é que você não possa fazer assim, mas você não deveria. - PhilT
Não consigo ver por que todas as downvotes. As redes universitárias (por exemplo) geralmente têm um diretório inicial em rede, portanto, a mesma chave privada é usada em qualquer lugar por um usuário, mesmo em laptops que você recebe. Contanto que você não o copie sem criptografia pela internet, então acho que está tudo bem se você entender o risco. Sangrento mais conveniente assim também, não ter que adicionar sua chave pública a 2.000 lugares diferentes só porque você logou em uma máquina diferente. - Asfand Qazi
Votado porque você não deveria estar perdendo representante por esta resposta. É uma preferência pessoal, obviamente, usar uma chave separada por serviço e a máquina acaba lhe dando mais controle, mas às vezes é apenas uma perda de tempo dependendo do seu caso de uso. - Daniel Dewhurst