Por que uma chave pública SSH fica no servidor e não no cliente?

12

Eu não entendo muito bem a teoria por trás da manutenção de chaves públicas no servidor. Na analogia do lockbox de chaves públicas / privadas, para desbloquear a caixa Alice , Alice mantém a chave privada enquanto a chave pública é distribuída para Bob. Parece que o servidor desempenha o papel de lockbox, então por que ele mantém a chave pública?

    
por Connor Glosser 29.01.2010 / 01:55

5 respostas

20

Tenha em mente que o servidor tem uma chave pública e privada que é completamente separada do par de chaves que você gera como usuário. A chave privada do servidor geralmente é armazenada com a configuração do servidor e a chave pública é transmitida pelo servidor quando você tenta se conectar. Você cliente compara a chave pública do servidor com o seu arquivo known_hosts. Se usado corretamente, isso evita ataques MITM.

Você tem a chave privada da sua conta pessoal. O servidor precisa da sua chave pública para poder verificar se sua chave privada da conta que você está tentando usar está autorizada.

Então, use o seu exemplo. Bob e Alice têm chaves privadas e chaves públicas. As chaves públicas que foram compartilhadas antes ou como parte da conexão são usadas para verificar se os dados criptografados pelas chaves privadas são legítimos. Se o cliente não tiver a chave pública ou tiver uma chave pública diferente, você receberá um aviso assustador. Se o servidor não tiver a chave pública do cliente, você não poderá entrar.

    
por 29.01.2010 / 02:25
4

Você, como usuário, é o único a fornecer as informações que você é quando faz o login. Assim, para fins de autorização, você precisa da chave privada porque o servidor perguntará a qualquer um que pretenda ser você (tentativas de registrar com o seu nome) para provar isso.

A maneira como funciona é que o servidor envia um pequeno texto, pede para você criptografá-lo e descriptografá-lo com sua chave pública. Somente a pessoa com sua chave privada pode fazer isso.

    
por 09.02.2010 / 18:55
1

Ele contém a chave pública por conveniência. Caso contrário, você precisa criar uma PKI - algo semelhante à SSL CA.

A ideia seria verificar a impressão digital da chave pública quando o cliente ssh lhe pedir para aceitar a chave do servidor remoto.

    
por 29.01.2010 / 02:07
1

Eu diria que uma analogia melhor é que a chave pública do servidor é o lockbox aberto com uma trava que você pode fechar (mas não abrir), apenas o servidor pode abri-lo. A verdadeira questão é se você confia na chave pública (é realmente a Alice's Box?), Onde quer que você a obtenha é pública por definição, e é disso que se trata a PKI.

    
por 29.01.2010 / 02:22
1

Uma chave pública é um número muito grande, derivado matematicamente da sua chave privada.

It is derived in such a way that the two numbers are linked,

mas para que a chave privada não possa ser descoberta por qualquer pessoa que apenas conheça a chave pública. A chave pública é o que você envia para outras pessoas, para quem deseja se autenticar ou para quem deseja enviar mensagens criptografadas. A chave pública não é sensível e não precisa ser protegida. Pode ser divulgado publicamente. [email protected]

    
por 22.01.2015 / 13:20