Qual é a sobrecarga do SSH comparado ao telnet?

2

Estou curioso: qual é o tamanho da sobrecarga SSH em comparação com telnet ?

Obviamente, existem diferentes partes aqui:

  1. Sobrecarga de tempo de conexão inicial devido a viagens de ida e volta adicionais para criptografia
  2. Existe uma sobrecarga de largura de banda?
    • Existe uma sobrecarga em cada pacote transmitido
    • ou só temos algum preenchimento no final?
  3. sobrecarga de CPU no lado do cliente
  4. sobrecarga de CPU no lado do servidor
    • Qual é o tamanho?
    • Como as CPUs mais novas que possuem módulos AES?
    • E quanto aos servidores com dezenas ou centenas de conexões SSH?
    • a sobrecarga da CPU por conexão de clientes e servidores é simétrica?
  5. Existe uma sobrecarga de memória?
  6. Esqueci alguma coisa?

Esta é mais uma questão teórica. Estou plenamente ciente de que praticamente não faz diferença em cenários típicos em que um servidor mantém apenas algumas conexões ssh.

    
por masgo 03.08.2016 / 10:40

1 resposta

3

Eu lhe darei uma resposta rápida, já que uma explicação longa preencheria facilmente uma palestra de 90 min ou um trailer. Estes são pouco mais do que estimativas, uma vez que é muito dependente da carga do sistema, do tipo de conexões que você joga no servidor e, claro, do hardware usado.

  1. Sim e não. Há uma recriação após 1 GB de dados ou 1 hora de tempo de conexão. Também pode depender se as chaves são usadas para autenticação. Diffie-Hellman é geralmente mais caro do que a troca de chaves RSA, mas como isso só acontece uma vez (ish) não é grande coisa.
  2. Sim, há sobrecarga: você precisa adicionar preenchimento aleatório de pelo menos 4 bytes (SSH2) E cada pacote de dados recebe um HMAC de algum tipo. Dependendo do que é usado. Eu não sei o quanto exatamente, mas é menos no máximo 33 byte (Full sha2 lengt) Max payload é 35000 - preenchimento de 4 bytes. Você obtém cerca de 37/34996 = 0,001% de sobrecarga ou menos.
  3. A sobrecarga da CPU é mínima. Esse foi um dos objetivos do padrão AES.
  4. O mesmo aqui. É aproximadamente simétrico, uma vez que as operações de criptografia são simétricas (semelhante à multiplicação e divisão são simétricas), é claro que isso requer o conhecimento das chaves. Quantas conexões um servidor pode manipular? Depende das conexões. Se você tiver sessões de terminal simples: muitas. Se alguém disparar uma conexão de 1 GBit em você e copiar 10 GB de dados via scp: usando um Intel i7 padrão, provavelmente dois ou três de cada vez. É provável que o seu NIC ou frasco de armazenamento fique em primeiro lugar.
  5. Não tenho certeza. Um pouco provavelmente. Eu diria que não mais que o dobro da memória de uma sessão normal de telnet.
por 03.08.2016 / 12:54