Não é perigoso usar chaves SSH para acessar um servidor desconhecido / comprometido?

9

Digamos que eu ofereça alguém com minha chave SSH pública, o id_rsa.pub e ele / ela o instale em um servidor que está comprometido, e me pedem para fazer o login.

O processo de login envolve o envio da minha chave privada para o servidor comprometido?

Se sim, o atacante agora tem acesso à minha chave SSH privada e isso é assustador.

Se não, então por que vejo essa linha na saída ssh -vvv:

debug1: Server accepts key: pkalg ssh-rsa blen 277

Isso implica que a chave privada foi enviada para o servidor e foi aceita.

Estou entendendo mal o problema?

    
por Gurjeet Singh 20.12.2012 / 16:49

2 respostas

11

Você está entendendo mal o processo.

A chave não é enviada, mas um "desafio" é criado criptografando algo com a chave pública que só pode ser descriptografada com a chave privada correspondente.

Se você for perguntado por sua senha, ou se você encaminhar X para um servidor comprometido, então há um possível risco de segurança.

    
por 20.12.2012 / 16:57
7

NÃO , sua chave privada NUNCA é "enviada" ou transmitida para lugar algum.

Criptografia de chave pública não é como a autenticação tradicional de nome de usuário / senha.

  • Sua chave pública é exatamente isso - pública. É perfeitamente seguro compartilhá-lo. Enviar sua chave pública para alguém pode doar sua identidade (as pessoas podem saber que é de você porque é um número único), mas nunca pode permitir que outra pessoa se passe por você ou se autentique como você. Você também pode postar sua chave pública no SuperUser ou em sua página da Web através do HTTP regular; é perfeitamente seguro e perfeitamente inútil se alguém não tiver sua chave privada.

  • Sua chave privada é exatamente isso - privada. Ele reside apenas em sistemas que você possui e confia (esperançosamente), e deve sempre ser criptografado com uma senha de desbloqueio para máxima segurança, no caso de alguém obter acesso físico ao sistema em que está armazenado. A chave privada nunca é transmitida por nenhum programa de segurança adequadamente implementado que esteja se comportando de acordo com as regras da criptografia de chave pública. Ou seja, a menos que você tenha um programa em seu sistema local que esteja comprometido e seja capaz de ler sua chave privada (e a chave privada não esteja criptografada por uma senha), sua chave privada estará sempre segura.

As mensagens são assinadas com a chave privada, no seu computador , antes de serem enviadas para o servidor remoto. Portanto, em vez de enviar a chave privada para o servidor remoto, você está enviando uma mensagem que foi criptografada com a chave privada. Mas essas duas coisas não são as mesmas: você não pode derivar a chave privada da mensagem assinada; isso faz parte do ponto da criptografia de chave pública.

Em suma, mesmo se um atacante hostil obtiver sua chave pública e obtiver mensagens assinadas por sua chave privada, elas ainda não poderão obter sua chave privada real e, portanto, não poderão se passar por ela. credenciais ou use sua chave privada para autenticar "como você".

    
por 20.12.2012 / 17:02