No protocolo SSH, a segurança não se resume a esconder os dados (privacidade); é igualmente vital garantir que a informação chegue ao destino exatamente como foi enviada, sem alterações acidentais ou maliciosas (integridade). Estes dois pilares funcionam em conjunto para criar o que chamamos de “túnel seguro”.
1. Garantia de Privacidade (Confidencialidade)
A privacidade no SSH é alcançada através da cifragem de dados. Uma vez estabelecida a chave de sessão simétrica entre o cliente e o servidor, todo o tráfego é transformado em texto cifrado (ciphertext).
-
Ocultação de Metadados: O SSH cifra não apenas o conteúdo dos comandos (ex:
rm -rf /), mas também os nomes de utilizador e as respostas do sistema. Um atacante que intercepte os pacotes na rede verá apenas um fluxo de dados aleatórios. -
Prevenção de Eavesdropping: Mesmo que um administrador de rede mal-intencionado utilize um sniffer (como o Wireshark) no meio do caminho, ele não conseguirá extrair nenhuma informação útil da sessão.
2. Garantia de Integridade
A integridade assegura que os dados não foram modificados durante o trânsito. O SSH utiliza mecanismos matemáticos para validar cada pacote recebido.
-
MAC (Message Authentication Code): Para cada pacote enviado, o SSH calcula um “valor de verificação” (hash) baseado numa combinação dos dados do pacote, um número de sequência e a chave de sessão partilhada.
-
Verificação no Destino: Quando o servidor recebe o pacote, ele realiza o mesmo cálculo. Se o resultado for diferente do MAC enviado, o SSH assume que o pacote foi corrompido ou adulterado por um terceiro e encerra a ligação imediatamente por razões de segurança.
-
Proteção contra Injeção: Este mecanismo impede que um atacante insira comandos extras numa sessão ativa ou altere o destino de uma transferência de ficheiros.
3. Proteção contra Ataques de Replay
A integridade e a privacidade sozinhas não impedem que um atacante capture um pacote cifrado válido e o envie novamente mais tarde para tentar repetir uma ação (como uma transferência bancária ou um comando de execução).
-
Números de Sequência: O SSH atribui um número de sequência único e incremental a cada pacote dentro da sessão cifrada.
-
Rejeição de Duplicados: Se o receptor receber um pacote com um número de sequência que já foi processado ou que está fora de ordem, o pacote é descartado e a sessão é interrompida. Isto garante a frescura dos dados.
4. Algoritmos de Integridade Comuns
Antigamente, o SSH utilizava algoritmos como o HMAC-MD5 ou HMAC-SHA1. Atualmente, por questões de segurança técnica, as implementações modernas preferem:
-
HMAC-SHA2-256/512: Versões robustas de algoritmos de hash.
-
AEAD (Authenticated Encryption with Associated Data): Cifras modernas como AES-GCM ou ChaCha20-Poly1305 que realizam a cifragem (privacidade) e a autenticação (integridade) simultaneamente num único processo, sendo mais rápidas e seguras.
5. Resumo da Proteção
| Recurso | Técnica Utilizada | Objetivo |
|---|---|---|
| Privacidade | Cifragem Simétrica (AES, ChaCha20) | Impedir a leitura por terceiros. |
| Integridade | MAC ou AEAD | Impedir a alteração dos dados. |
| Autenticidade | Cifragem Assimétrica (RSA, Ed25519) | Garantir a identidade das partes. |
Exportar para as Planilhas
Desta forma, o SSH garante que o administrador possa gerir sistemas remotos com a confiança de que as suas ordens são privadas, exatas e únicas.