Melhor resposta
Ele usa uma criptografia híbrida. A criptografia assimétrica é usada para estabelecer uma chave de sessão que por sua vez é usada como uma chave para uma cifra simétrica.
Essas cifras simétricas são cifras de bloco (mais comumente AES) ou mais raras (mas preferidas por vocês) cifras de fluxo, como Salsa20, também conhecido como ChaCha.
O uso de cifras de bloco merece um pouco mais de explicação, pois tem implicações significativas no que diz respeito à confidencialidade da comunicação.
Cifras de bloco são MUITO bons para criptografar blocos de tamanhos fixos – daí seu nome. O problema quando usado como cifra de carga útil para SSH é que os comandos geralmente não vêm em um bloco de tamanho predeterminado, no caso do AES 128 bits. Agora, vamos supor que você digite o comando
$ ls
Não exatamente 128 bits. Portanto, para poder usar uma cifra de bloco, algo chamado preenchimento entraria em ação – os 104 bits restantes seriam zerados (simplificados).
Isso impõe um problema, no entanto: assumir que um único pacote enviado contém preenchendo pelo menos até certo grau, teríamos um texto simples parcialmente conhecido. A partir disso, seria possível com o tempo (e muitos pacotes capturados) calcular a chave de sessão.
Para evitar que certos modos de cifra fossem inventados. Por muito tempo, o encadeamento de blocos de criptografia foi usado:
O que este diagrama basicamente diz a você é o seguinte:
- Para o primeiro bloco a ser criptografado, um bloco pré-negociado de dados aleatórios é usado como o chamado vetor de inicialização.
- O texto simples e o IV estão sujeitos a um Operação exclusiva ou (XOR) : uma operação bastante fácil de reverter se você tiver o IV, mas muito, muito difícil se você não tiver.
- Agora , a chave é usada para criptografar o resultado da operação XOR.
- O texto cifrado resultante é então usado como o IV para o próximo bloco.
Já que o texto simples agora será fortemente modificado antes de entrar na criptografia, não há mais texto simples conhecido. Bem, em teoria. Bem, nem mesmo isso. CBC não é mais considerado o estado da arte, principalmente porque um ataque bem-sucedido foi publicado por Serge Vaudenay . Hoje em dia, o modo Contador ou os modos Contador Galois são usados . Explicá-los está um pouco fora do escopo desta questão, mas basta dizer que eles cumprem o mesmo propósito do CBC, mas são considerados seguros.
Portanto, seria correto dizer que um híbrido a criptografia é usada, com cifras assimétricas usadas para autenticação do servidor e, opcionalmente, do cliente, bem como a troca de chaves, com a chave trocada sendo usada para uma cifra de fluxo simétrico ou uma cifra de bloco no modo CBC ou (G) CTR.
Resposta
A2A Qual é a principal alternativa ao SSH?
Francamente, eu não acho que não há um. Isso é como perguntar qual é a principal alternativa para a roda. O protocolo é tão útil, seguro e de código aberto que não faz sentido desenvolver mais nada. O Telnet está para o SSH assim como o Travois está para a roda.
Concordo com grande parte da resposta de Neil Richins em teoria, mas o NFS é não uma alternativa segura para SSH / SCP (é um protocolo LAN, não um protocolo de Internet pública) e Mosh usa SSH para transporte.
Se houver problemas no SSH, eles serão corrigidos. Ninguém abandona tudo. É por isso que estamos usando SSH 2 em vez de SSH 1, e muitas das cifras originais foram obsoletas. Mais ou menos como SSL / TLS.
Achei que o FTP morria com Telnet, morto por HTTP (opcionalmente usando SSL), SCP, SFTP e Rsync (usando transporte SSH). Mas então descobri que ele se recusou a morrer e que as pessoas criou uma versão segura FTPS. Isso é para transferências de arquivos. Pessoalmente, eu uso SCP e Rsync. Outra alternativa para transferência de arquivos é HTTP com SSL / TLS. Para fazer download, HTTP GET funciona facilmente para retirar qualquer arquivo de um servidor da web. Para fazer upload, HTTP POST funciona se você escrever um manipulador, e H TTP PUT funciona se for implementado em, por exemplo WebDAV. Portanto, para manter um espaço compartilhado sobre um protocolo seguro, o WebDAV é uma alternativa ao Rsync / SSH. O problema é que o SCP / Rsync mantém a propriedade do arquivo, enquanto no WebDAV ou POST qualquer coisa carregada pertence ao processo do servidor da web. Os sistemas CMS são inerentemente inseguros, pois se o servidor da web for hackeado, o processo do servidor da web terá acesso de gravação a todo o conteúdo – não há separação do usuário.