É seguro fornecer minha chave pública SSH para o trabalho?

56

Atualmente, trabalho remotamente para várias organizações que precisam de mim para acessar seus servidores regularmente para manutenção e atualizações. É seguro para mim adicionar minha chave SSH pública RSA ao arquivo .ssh/authorized_keys para permitir que eu faça o login muito mais rápido / sem ter que procurar senhas? Eu operei sob a presunção de que seria impossível gerar a chave privada da pública, mas estou certo em minha suposição?

Levando isso um passo adiante, haveria algum risco de segurança em postar o conteúdo da minha chave pública RSA na Internet? Eu sei que, se minha chave privada for obtida, estou com muitos problemas, mas além disso, existem ameaças de segurança realmente possíveis?

    
por Naftuli Kay 13.07.2011 / 01:26

2 respostas

70

Sim, é impossível recuperar a chave privada da chave pública. Se fosse possível, a RSA seria fundamentalmente quebrada, e isso seria uma notícia importante (quebrar a RSA não só prejudicaria a segurança da comunicação na Internet, mas também permitiria todos os tipos de fraude bancária, entre outros).

Fazer login com uma chave pública em vez de uma senha, na verdade, tende a aumentar a segurança. Se a sua senha não for strong o suficiente, ela poderá ser forçada por um invasor com largura de banda suficiente. Se o invasor não tiver uma cópia do seu arquivo de chave privada, a chave RSA não poderá ser bruta forçada (uma chave de 1024 bits é equivalente a uma senha de 160 caracteres feita de letras e dígitos com distinção entre maiúsculas e minúsculas aleatórias) . Alguém que cuide de seu ombro pode ver sua senha e sua frase secreta, mas com uma chave eles também precisam obter a chave.

As chaves privadas nem sempre são mais seguras que as senhas. Se o invasor obtiver uma cópia de seus arquivos de chave privada (por exemplo, roubando seu laptop ou sua mídia de backup), ela pode tentar forçar a senha, e ela pode fazê-lo em alta velocidade, pois você não tem como limitar a senha. taxa (ao contrário de adivinhações de senha que precisam ser feitas online). Se a sua senha for boa o suficiente e você perceber o roubo imediatamente, ainda terá tempo para revogar a chave.

Uma chave pública introduz um elemento de exposição de privacidade: se alguém souber que você usou a mesma chave pública para logar em A e entrar em B, eles saberão que a mesma pessoa fez o login em A e B. Apenas possuindo o público chave faz você suspeitar que você também tem a chave privada, então você perde alguma anonimidade. Mas isso geralmente é menor, especialmente se você está apenas armazenando a chave em ~/.ssh , onde apenas os administradores do sistema (que também sabem de qual endereço IP você fez login) podem vê-la.

Estas considerações de segurança à parte, uma chave privada tem muitas vantagens práticas. Você não precisa digitar sua senha com tanta frequência e, em particular, pode executar scripts automatizados que não solicitam uma vez que você digitou sua chave em ssh-agent ou algo semelhante. Você não precisa digitar sua senha com tanta frequência, então você pode se dar ao luxo de torná-la com maior entropia (mais longa, mais difícil de digitar). Você não precisa digitar sua senha com tanta frequência, portanto, há menos risco de ser detectada por um observador humano ou por uma câmera.

    
por 13.07.2011 / 02:09
16
resposta geralmente é boa, exceto

...especially if you're just storing the key in ~/.ssh where only system administrators (who also know what IP address you logged in from) can see it.

Suas chaves ssh em ~/.ssh também podem ser lidas por qualquer software executado em sua própria conta. Qual é provavelmente mais do software que você executa. Então você deve confiar nesse software e naqueles que o escreveram.

    
por 17.01.2014 / 18:02