Questão O que é randomart produzido por ssh-keygen?


Quando você gera uma chave, você obtém "randomart" de versões mais novas do OpenSSH. Não consigo encontrar uma explicação do porquê e para o que devo usá-lo.

Generating public/private rsa key pair.
The key fingerprint is:
05:1e:1e:c1:ac:b9:d1:1c:6a:60:ce:0f:77:6c:78:47 you@i
The key's randomart image is:
+--[ RSA 2048]----+
|       o=.       |
|    o  o++E      |
|   + . Ooo.      |
|    + O B..      |
|     = *S.       |
|      o          |
|                 |
|                 |
|                 |
+-----------------+

Generating public/private dsa key pair.
The key fingerprint is:
b6:dd:b7:1f:bc:25:31:d3:12:f4:92:1c:0b:93:5f:4b you@i
The key's randomart image is:
+--[ DSA 1024]----+
|            o.o  |
|            .= E.|
|             .B.o|
|              .= |
|        S     = .|
|       . o .  .= |
|        . . . oo.|
|             . o+|
|              .o.|
+-----------------+

324


origem




Respostas:


O randomart é uma maneira mais fácil para os humanos validarem chaves.

A validação é normalmente feita por uma comparação de sequências sem sentido (isto é, a representação hexadecimal da impressão digital da chave), cujos humanos são bastante lentos e imprecisos na comparação. O Randomart substitui isso por imagens estruturadas que são mais rápidas e fáceis de comparar.

Este papel "Hash Visualization: uma nova técnica para melhorar a segurança do mundo real", Perrig A. e Song D., 1999, Workshop Internacional sobre Técnicas Criptográficas e E-Commerce (CrypTEC '99) " explica algumas técnicas e vantagens.


241



Se você pudesse simplesmente explicar por que os humanos validam chaves, isso poderia ajudar, porque francamente eu costumo apenas colocar minha chave pública no meu arquivo authorized_keys e acabar com isso. - dlamblin
@ dlamblin: Você geralmente não verificaria suas próprias chaves com isso. Seria, no entanto, útil para verificar a chave do host de uma máquina remota. Uma ideia é que, se você fizer login em uma máquina específica de vários locais (ou não salvar sua chave em seu arquivo known_hosts), poderá reconhecer a “arte” da chave do host. Se essa arte mudou repentinamente, você deve ter cuidado ao digitar sua senha, pois isso pode significar que um ataque man-in-the-middle está em andamento na sua conexão (ou pode significar que o host acabou de alterar suas chaves para alguma outra razão). - Chris Johnsen
Uhm, quando eu poderia ver a arte dos anfitriões? (Eu acho que nunca fiz.) Eu só vi uma imagem assim depois de gerar meu par de chaves. E para o que eu teria que compará-lo para reconhecer a mudança 'súbita'. - DerMike
Eu aposto que o randomart adere a um princípio similar como hashes para verificações de integridade, a saber: uma pequena diferença na entrada gera uma saída altamente diferente. Isso significaria que você teria apenas que memorizar a forma aproximada do esperado randomart para poder perceber que algo está errado. É claro que isso não funciona na prática quando o SSH e outros não mostram o randomart do host ao qual você está se conectando (eles devem fazer isso mesmo quando o host é conhecido). - Alan Plum
Eu imagino que estes são mais úteis quando as chaves públicas estão sendo trocadas pessoalmente para uma verificação de integridade após a conclusão da cópia. - jordanpg


Adicionar

-o VisualHostKey=yes 

na sua linha de comando, ou coloque

VisualHostKey=yes 

na tua ~/.ssh/config.

Você verá o randomart da caixa em que você está se conectando. Se você logar em um dia e a arte aleatória for diferente (seu cérebro deve ir Hey! Eu não reconheço isso!), Então talvez alguém esteja hackeando, ou algo assim.

A ideia é que você não precisa conscientemente fazer isso. Uma das chaves de uma de nossas máquinas parece uma borboleta. Outro meio parece um idiota (sim, nosso cérebro é primitivo). Se você se conecta todos os dias, você se acostuma com as imagens sem sequer tentar.


173



Nada bom. Se você já fez login, é muito melhor que o computador faça o reconhecimento para você usando uma impressão digital armazenada. O recurso só deve ser usado para fazer login em novas máquinas. - Nicholas Wilson
Muito tarde para esta resposta, mas vale a pena ressaltar que isso seria imensamente útil se você estivesse logando de uma máquina diferente que não tivesse todos os seus known_hosts. Nesse caso, o computador não seria capaz de verificar se é conhecido, mas o usuário deve poder ver "Isso parece diferente do normal!" e abortar. - Xkeeper
Deixar o seu computador fazer o reconhecimento é vulnerável aos hosts conhecidos do seu computador que estão sendo invadidos. Assim como você não deve deixar seu computador digitar senhas para você, seria melhor validar a chave do host sozinho. - Marko Topolnik


Anúncio oficial: OpenSSH 5.1 lançado

Introduzir impressões digitais experimentais de SSH   Visualização ASCII para ssh (1) e   ssh-keygen (1). Visual fingerprinnt   display é controlado por um novo   ssh_config (5) opção "VisualHostKey".   A intenção é renderizar chaves de host SSH   em uma forma visual que é passível de   fácil recordação e rejeição de mudanças   chaves de host. Esta técnica inspirada   a visualização gráfica de hash   esquemas conhecidos como "arte aleatória [*]", e   pelas reflexões de Dan Kaminsky em 23C3 em   Berlim.

A visualização de impressões digitais é   atualmente desativado por padrão, como   algoritmo usado para gerar o aleatório   a arte ainda está sujeita a mudanças.


33



Essa última frase é, de fato, vale a pena conhecer. Informações do OpenBSD Journal @ Undeadly.org sobre o lançamento do OpenSSH 6.8 afirma: "Por favor, note que as teclas do host visual também será diferente." O software mais recente mostra imagens diferentes das imagens mostradas pelo software antigo. - TOOGAM


Você pode encontrar uma análise detalhada do VisualHostKey randomart no documento curto O bispo bêbado.


24





O Randomart exibido após a geração do ssh-keygen é uma representação gráfica da chave que você acabou de gerar. Então:

  • o Randomart é não realmente útil para o usuário que gerou a chave ssh 

  • o Randomart pode ser muito útil para um usuário usando uma conexão via SSH para conecte-se com frequência ao mesmo servidor: se ele adicionou a opção "-o VisualHostKey = yes" ao seu comando SSH:

    ssh user@domainname.com -o VisualHostKey = sim

o Randomart correspondente à chave pública do servidor será exibido.

Para ver um exemplo, você pode tentar:

ssh git@github.com -o VisualHostKey = sim

No caso em que o usuário geralmente se conecta ao mesmo servidor, ele pode verificar de forma rápida e fácil se ele reconhece o Randomart correspondendo à chave pública deste servidor ou não. O que é mais fácil e rápido do que verificar a sequência de caracteres da chave pública em si!


8