Perguntas sobre as chaves de sessão usadas no ssh

0

Do processo de handshake do SSH, explicado link

Key Exchange

  1. The client has a public & private key pair. The server has a public & private key pair.
  2. The client and server exchange their public keys.
  3. The client now has its own key pair plus the public key of the server.
  4. The server now has its own key pair plus the public key of the client.
  5. This exchange of keys is done over an insecure network.
  6. The client takes its private key and the server’s public key and passes it through a mathematical equation to produce the shared secret (session key).
  7. The server takes its private key and the client’s public key and passes it through a mathematical equation to produce the shared secret (session key). Both these shared secrets are identical! This is an asymmetrical key.
  8. This encrypted tunnel is used for the remainder of the session, including the next phase: User Authentication.

Os marcadores 6 e 7 dizem que o cliente obtém sua chave privada e a chave pública do servidor e passa-a por uma equação matemática para produzir o segredo compartilhado (chave de sessão) e o servidor recebe sua chave privada e a chave pública do cliente passa-o através de uma equação matemática para produzir o segredo compartilhado (chave de sessão).

  1. Eles dizem que o servidor e o cliente produzem o segredo compartilhado, ou seja, chave de sessão e ambos os segredos compartilhados são idênticos. Isso significa que tanto o servidor quanto o cliente produzem a mesma sessão chave na mesma sessão. Se sim, por que também diz que "Isto é uma chave assimétrica "?

    Será que "Esta é uma chave assimétrica" significa que as chaves de sessão gerado no servidor e no cliente não são os mesmos?

  2. Os marcadores 6 e 7 significam que, no cliente ou no servidor, o entradas para o algoritmo que gera uma chave de sessão são suas chave privada e a chave pública do outro?

    Se sim, como são as chaves de sessão no servidor e no cliente idênticas, dados seus inputs são diferentes?

    Como as chaves de sessão são diferentes para sessões diferentes? Existem entradas que são específicas da sessão?

Eu li a resposta de Jakuje no link , mas ainda não tenho certeza sobre como responder as perguntas acima perguntas.

Obrigado.

    
por Tim 17.06.2016 / 17:55

1 resposta

2

  1. Does it mean that both the server and the client produce the same session key in the same session.?

Sim, como é visível na imagem na questão recente.

If yes, why does it also say that "This is an asymmetrical key"?

Não faço ideia. É melhor você perguntar a um autor do artigo. A criptografia assimétrica é usada para criar um segredo compartilhado, mas não tenho idéia do que significa esta sentença.

Does "This is an asymmetrical key" mean that the session keys generated on the server and client are not the same?

Certamente não. O segredo compartilhado é o mesmo (é chamado de compartilhado).

  1. Do bullets 6 and 7 mean that on either the client or the server, the inputs to the algorithm that generates a session key are its own private key, and the other one's public key?

If yes, how are the session keys on the server and client identical, given their inputs are different?

Este é o ponto da "equação matemática" mencionada. Se as cores não forem suficientemente explicativas, também é uma explicação com números em Wikipedia :

  1. Alice e Bob concordam em usar um módulo p = 23 e base g = 5 (que é um módulo de raiz primitiva 23).
  2. Alice escolhe um inteiro secreto a = 6, depois envia Bob A = ga mod p
    • A = 5 6 mod 23 = 8
  3. Bob escolhe um inteiro secreto b = 15, então envia Alice B = gb mod p
    • B = 5 15 mod 23 = 19
  4. Alice calcula s = B a mod p
    • s = 19 6 mod 23 = 2
  5. Bob calcula s = A b mod p
    • s = 8 15 mod 23 = 2
  6. Alice e Bob agora compartilham um segredo (o número 2).

O princípio matemático por trás disso é "grupo multiplicativo de inteiros modulo p", mas mecanismos semelhantes estão por trás da RSA ou curvas elipticas cryptograpy.

How are the session keys different for different sessions? Are there inputs that are session-specific?

Diferentes chaves de sessão são criadas por diferentes trocas de chaves, que geram basicamente pares de chaves assimétricas aleatórias no cliente e no servidor. Nunca deveria acontecer a você que você iria gerar os mesmos dados aleatórios aleatórios duas vezes, caso contrário, não seria aleatório. Fazer isso no cliente e no servidor elimina o ponto único de falha (gerador aleatório quebrado), porque forçar tanto o servidor quanto o cliente a gerar os mesmos dados é ... bastante impossível.

A entrada para a troca de chaves também varia com base no algoritmo, mas basicamente também há módulo escolhido aleatoriamente (no exemplo acima, o número 23). Estas são três partes de entrada aleatórias para a troca de chaves, o que garante que você obterá um segredo compartilhado diferente para sessões diferentes.

    
por 17.06.2016 / 18:35

Tags