Este post estou criando com um apanhado de informações buscadas na internet com o intuito de sanar algumas duvidas que tive durante a criação de uma chave no PuTTygen que estarei explicando em um outro post.  Nesse não estarei falando de todas as funcionalidades.

O SSH (Secure SHell) é ao mesmo tempo um protocolo e uma aplicação para acesso remoto. Os protocolos foram desenvolvidos em 1995 por Tatu Ylonen, fundador da empresa SSH Communications Security. O conjunto permaneceu livre até a sua versão 1.2.12, quando se tornou um produto proprietário desta empresa. Foi desta versão que se originou o aplicativo OpenSSH (uma implementação destes protocolos e várias ferramentas auxiliares), em 1999. Existem também várias outras opções comerciais de implementação do SSH porém, por ser livre, o OpenSSH é a mais popular.

O SSH tem como objetivo principal fazer a autenticação cliente -> servidor de modo seguro através de troca de chave ou senha. Criando entre os dois um tunel de conexão segura. Existem muitas diferenças entre esses dois protocolos, uma vez que o SSH2 não foi apenas uma atualização do SSH1, ele foi reescrito aumentando sua segurança, suas formas de autenticação e funcionalidades que foram criadas a fim de possibilitar um maior grau de segurança.

A primeira versão, conhecida como SSH1, foi desenvolvida principalmente com a intenção de substituir os “comandos r”: rlogin (permite que o usuário logue no sistema remoto utilizando a porta 513/TCP), rsh (que permite executar comandos no shell remoto como outro usuário. Na ponta onde o usuário irá se conectar é necessário que o daemon rshd esteja sendo executado) e rcp (permite fazer uma cópia de arquivos entre sistemas remotos através da Internet). A segunda versão (SSH2, incompativel com a versão SSH1) tem o intuito de resolver falhas de segurança sérias encontradas na primeira versão e melhora o método de transferência de arquivos entre os hosts (através do SFTP).

O protocolo SSH1, já é considerado por muitos como ultrapassado e inseguro, está cada vez mais caindo em desuso, de forma que os novos aplicativos utilizem apenas o SSH2.

O SSH2 tem como principal vantagem, quando comparado ao SSH1, uma maior segurança. As principais mudanças foi a retirada dos algoritmos de criptografia DES e IDEA e a adição do método de autenticação DSA.

Com essas mudanças obtivemos melhora no uso de aplicativos para transferência de arquivos tanto em Linux (SFTP e SCP) e em Windows.

Existem duas falhas mais conhecidas do SSH1. A primeira mais conhecida, permite que a chave de sessão seja recuperada por aquele que está atacando, de modo que deixa vulnerável as próximas conexões. O que acontece, de fato, é que é feita uma escuta de todas as informações que estão sendo transmitidas, e se observa problemas de design ou implementação no cliente ou no servidor que permitam obter a chave de sessão. Apartir daí o texto pode ser decifrado.

A outra falha já documentada é relacionada a um overflow de inteiros no código, que foi criada para detectar ataques contra uma outra falha já detectada no SSH1, envolvendo o CRC checksum dos pacotes de dados. O problema é que esse overflow pode resultar em uma inscrição de dados sobre uma área de memória já utilizada para outros fins. O ataque é feito colocando pacotes maliciosos entre as informações trocadas, permitindo a execução de comandos arbitrários tanto no servidor quanto no cliente. Essa questão se torna ainda mais complexa quando quem está rodando o arquivo é o root, o que pode gerar um dano ainda maior.

Basicamente, ambos os protocolos tem por princípio fazer a autenticação do usuário, e, em seguida, trocar a chave de sessão. Assim, é possível transmitir todas as informações totalmente encriptadas.

Site em inglês para um conhecimento mais aprofundado: SecureShell

Leave a Reply

Your email address will not be published. Required fields are marked *