Estamos transferindo arquivos para um servidor remoto em nosso aplicativo e o método de autenticação necessário é usar chaves SSH.
Então, criei meu par de chaves usando ssh-keygen e enviei minha chave pública para inserção no arquivo allowed_keys do host remoto. No entanto, isso foi rejeitado pela IT Security, que disse que geraria o par de chaves para mim e me enviaria a chave privada. Motivo: "Precisamos que as chaves SSH sejam assinadas pela equipe de segurança de TI. Isso é para garantir que tenhamos alguma liderança em rastreamentos e responsabilidade".
Obviamente, tenho problemas com isso. Ter a chave privada gerada por outra pessoa significa que eu posso ter essa pessoa disfarçada como eu sem que eu saiba. Estou tentando encontrar maneiras de refutar esse argumento.
Tanto quanto eu posso pesquisar no Google, parece não haver nenhuma maneira conhecida de assinar as chaves, de forma que ela ajude a rastrear uma pessoa que fez login. O fato de eu enviar minha chave pública significa que sou o proprietário da chave e qualquer pessoa que fizer logon no servidor remoto com essa chave é, por padrão, identificada como eu. Como a assinatura ajudaria? E como eles assinariam de qualquer maneira?
Alguém por favor me indique se estou errado, obrigado!
Ok, agora que determinamos que não há como as chaves SSH podem ser assinadas, preciso mostrar à segurança de TI como elas podem rastrear quem está efetuando login (acho que deve ser construtivo, se não começar o jogo) ) No meu próprio servidor, defino o LogLevel do sshd como DEBUG. Portanto, agora, quando faço login, posso ver o seguinte trecho:
Found matching DSA key: xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx
Este parece ser um valor de hash. Como relacionar isso com a chave pública no arquivo allowed_keys? Eu sei que há outra linha que diz:
debug1: matching key found: file /home/bofh/.ssh/authorized_keys2, line 1
mas isso não é tão útil quanto os números de linha podem ser facilmente alterados se eu inserir uma tecla na parte superior do arquivo, pressionando as teclas originais.
Obrigado!
Respostas:
Desde que você fez sua pergunta, o universo mudou.
O Openssh5.4 adicionou suporte para exatamente o tipo de certificado que você buscava. Consulte as notas de versão em http://www.openssh.org/txt/release-5.4 (e as páginas de manual) para obter mais informações ou, se você realmente quer ser louco, consulte PROTOCOL.certkeys para obter detalhes sangrentos.
fonte
Minha primeira impressão ao ler sua pergunta é que a pessoa de TI confundiu SSH e SSL (deve ser assinada por nós) e também não entende como a assinatura SSL realmente funciona.
De qualquer forma, não há como assinar uma chave SSH (que eu saiba).
fonte
Algo não está certo neste pedido.
Se estiver entregando arquivos assinados ao servidor,
eu esperaria que isso fosse feito no mínimo.
my-key-private
my-key-pub
para descriptografar o arquivoExistem outras maneiras de fazer essas coisas.
No entanto, obter um par de chaves gerado por outra pessoa é inútil como um esquema de autenticação .
Tem uma forte implicação de que você confia neles tanto quanto em si mesmo.
Essas são as perguntas iniciais que você pode fazer à sua TI.
Se a responsabilidade é uma preocupação para a TI,
Por que se preocupar com pares de chaves nesse caso?
fonte
Não há razão para você não usar certificados X.509 para autenticação SSH em vez de chaves nuas - na verdade, eu preferiria muito se o OpenSSH funcionasse dessa maneira! Mas, a versão de estoque do OpenSSH não, e é a implementação dominante atualmente.
Eu já vi algumas versões corrigidas do OpenSSH flutuando, e a implementação comercial do SSH.com também parece oferecer suporte à autenticação X.509. Portanto, se sua organização estiver usando uma delas, exigir que as chaves sejam assinadas por uma autoridade central faria muito sentido.
Dito isto, não há desculpa para exigir que a chave privada seja gerada por terceiros! Se eles estão seguindo a rota X.509, devem gerar um par de chaves e uma solicitação de assinatura de certificado, assim como faria com qualquer outro certificado X.509 usado para SSL, etc.
fonte