Por que uma chave pública SSH fica no servidor e não no cliente?
12
Não entendo bem a teoria por trás da manutenção de chaves públicas no servidor. Na analogia do cofre das chaves públicas / privadas, para desbloquear a caixa de Alice, Alice mantém a chave privada enquanto a chave pública é distribuída a Bob. Parece que o servidor desempenha o papel de cofre, então por que ele mantém a chave pública?
Lembre-se de 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. Seu cliente compara a chave pública do servidor com 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 a sua chave privada da conta que você está tentando usar está autorizada.
Então, usando o seu exemplo. Bob e Alice têm chaves privadas e 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 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.
Aha! Isso faz muito mais sentido. Eu sabia que havia um método de proteção contra ataques MITM, mas não sabia que havia outro par de chaves :) Obrigado pela ajuda!
Connor Glosser
5
Você, como usuário, é o único a fornecer as informações que você é quando faz login. Portanto, para obter uma autorização, você precisa da chave privada porque o servidor perguntará a quem pretender ser você (tenta fazer login com seu nome) para provar isso.
A maneira como funciona é que o servidor envia um pouco de texto, pede para criptografá-lo e descriptografá-lo com sua chave pública. Somente a pessoa com sua chave privada pode fazer isso.
Eu diria que uma analogia melhor é que a chave pública do servidor é o cofre 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.
Uma chave pública é um número muito grande, matematicamente derivado da sua chave privada.
É derivado de tal maneira que os dois números estão vinculados,
mas para que a chave privada não possa ser descoberta por quem conhece apenas a chave pública. A chave pública é o que você envia para outras partes, 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]
Você, como usuário, é o único a fornecer as informações que você é quando faz login. Portanto, para obter uma autorização, você precisa da chave privada porque o servidor perguntará a quem pretender ser você (tenta fazer login com seu nome) para provar isso.
A maneira como funciona é que o servidor envia um pouco de texto, pede para criptografá-lo e descriptografá-lo com sua chave pública. Somente a pessoa com sua chave privada pode fazer isso.
fonte
Ele contém a chave pública por conveniência. Caso contrário, você precisará criar uma PKI - algo semelhante à SSL SSL.
A idéia seria verificar a impressão digital da chave pública quando o cliente ssh solicitar que você aceite a chave do servidor remoto.
fonte
Eu diria que uma analogia melhor é que a chave pública do servidor é o cofre 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.
fonte
Uma chave pública é um número muito grande, matematicamente derivado da sua chave privada.
mas para que a chave privada não possa ser descoberta por quem conhece apenas a chave pública. A chave pública é o que você envia para outras partes, 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]
fonte