O que é um protocolo SSH

O que é um protocolo SSH e por que é tão importante?

A moderna “empresa confiável” é sinônimo de uma tecnologia quase universal chamada Secure Shell (SSH). Em vez de fazer login em um servidor com um nome de usuário e senha tradicionais, que são difíceis de lembrar e sujeitos a perda, roubo ou comprometimento, os administradores de servidor normalmente se autenticam em suas máquinas de destino usando uma chave SSH confiável. 

A chave substitui as credenciais do usuário, permitindo que o administrador efetue login no sistema por meio da chave. A segurança sempre desempenha um papel importante na Internet: é por isso que o procedimento de segurança SSH está firmemente ancorado na pilha de protocolos TCP / IP. 

Sumario


O que é protocolo SSH

O protocolo SSH permite que os usuários estabeleçam uma conexão segura entre dois computadores. O protocolo de rede está em uso desde 1995 e foi revisado várias vezes desde então. Explicamos a terminologia mais importante do protocolo SSH e como funciona a criptografia.


Como o SSH funciona

O SSH seguro usa várias técnicas de criptografia e autenticação. Por um lado, isso garante que os fluxos de dados não possam ser lidos ou manipulados. Por outro lado, apenas participantes autorizados podem entrar em contato uns com os outros.

Autenticação

A primeira etapa é que o servidor SSH e o cliente se autentiquem um ao outro. O servidor envia um certificado ao cliente para verificar se é o servidor correto. Ao fazer o contato, existe o risco de que um terceiro fique entre os dois participantes e, portanto, intercepte a conexão. 

Como o próprio certificado também é criptografado, não pode ser imitado. Uma vez que o cliente sabe qual é o certificado correto, nenhum terceiro pode contatar o servidor relevante.

Após a autenticação do servidor, no entanto, o cliente também deve se identificar como autorizado a acessar o servidor. Uma senha pode ser usada para esse propósito. Isso (ou o valor de hash criptografado dele) é armazenado no servidor. 

Como resultado, os usuários devem inserir sua senha sempre que fizerem logon em um servidor diferente durante a mesma sessão. Por esse motivo, existe um método alternativo de autenticação do lado do cliente usando o par de chaves chave pública e chave privada.

A chave privada é criada individualmente para seu próprio computador e protegida com uma senha que deve ser mais longa do que uma senha comum. A chave privada é armazenada exclusivamente no seu computador e sempre permanece secreta. Se você deseja estabelecer uma conexão SSH, basta inserir a senha e você terá acesso à chave privada.

Também existem chaves públicas no servidor (assim como no próprio cliente). O servidor cria um problema criptográfico com sua chave pública e a envia ao cliente. O servidor então descriptografa o problema com sua própria chave privada, envia a solução de volta e informa ao servidor que tem permissão para estabelecer uma conexão legítima.

Durante uma sessão, você só precisa digitar a senha uma vez para se conectar a qualquer número de servidores. No final da sessão, os usuários devem fazer logoff de seus computadores locais para garantir que nenhum terceiro com acesso físico ao computador local possa se conectar para o servidor.

Encriptação

Após a autenticação mútua, os dois participantes da comunicação estabelecem uma conexão criptografada. Para fazer isso, uma chave é gerada para a sessão, que expira quando a sessão termina. 

Isso não deve ser confundido com os pares de chaves pública / privada, que são usados ​​apenas para troca de chaves. A chave usada para criptografia simétrica só é válida com esta sessão. 

O cliente e o servidor têm a mesma chave, portanto, todas as mensagens trocadas podem ser criptografadas e descriptografadas. O cliente e o servidor criam a chave simultaneamente, mas independentemente um do outro. No chamado algoritmo de mudança de chave, ambas as partes usam certas informações públicas e secretas para criar a chave.

Outra forma de criptografia ocorre em SSH por meio de hashing. Um hash é uma forma de assinatura dos dados transmitidos. Um algoritmo gera um hash exclusivo dos dados. Se os dados forem manipulados, o valor do hash muda automaticamente. 

Dessa forma, o destinatário pode saber se os dados foram alterados por terceiros ao longo do caminho. Os valores hash são projetados de tal forma que não podem ser facilmente simulados. Não é possível criar duas transmissões diferentes com o mesmo hash – isso é conhecido como proteção contra colisão.


SSH vs. OpenSSH

O Secure Shell foi originalmente criado em 1995 como um projeto de código aberto. No mesmo ano, entretanto, o desenvolvedor Tatu Ylönen fundou uma empresa que desenvolveu ainda mais o protocolo. 

Portanto, o projeto inicialmente aberto tornou-se cada vez mais um software proprietário . No entanto, a comunidade da rede não aceitou isso e desenvolveu uma divisão aberta baseada no protocolo SSH-1: OpenSSH . 

No entanto, como a segurança da comunidade SSH também continua a funcionar no shell seguro, dois protocolos concorrentes agora existem lado a lado. Existe o protocolo SSH-2 proprietário (um desenvolvimento adicional, uma vez que vulnerabilidades de segurança foram encontradas no SSH-1) e OpenSSH.

OpenSSH e SSH comercial são relativamente semelhantes quando se trata de funcionalidade e escopo. A diferença está principalmente com o custo e o suporte. Se você escolher o produto de segurança de comunicação SSH, também receberá suporte 24 horas nos sete dias da semana. 

Isso pode ser particularmente útil para grandes empresas com alternância de gerentes de TI. O OpenSSH, por outro lado, oferece a vantagem de uma comunidade de código aberto, o que significa que o projeto está constantemente sendo desenvolvido por muitos participantes.


Portas SSH

As portas TCP são terminais que abrem servidores e clientes para permitir a comunicação. Como acontece com uma porta, os parceiros de comunicação recebem e enviam os pacotes de dados por meio dessas portas. O TCP tem um espaço de endereço de 16 bits e, portanto, 65535 portas estão disponíveis. 

No entanto, a autoridade de números atribuídos da Internet (IANA) atribuiu um número de portas (exatamente 1024) para determinados aplicativos, incluindo a porta SSH. Por padrão, todas as conexões SSH são executadas na porta 22.

Como a porta pela qual as conexões SSH passam é amplamente conhecida e transmite dados confidenciais, a porta SSH é um destino favorito para os cibercriminosos. Portanto, alguns usuários acham que faz sentido realocar a porta SSH. No entanto, isso só oferece proteção de curto prazo. Com um scanner de porta, é possível encontrar todas as portas usadas por um computador.

Com o SSH, o encaminhamento de porta também é possível: a porta SSH de um cliente ou servidor é usada por outro participante em uma rede local para criar uma conexão segura via Internet. Os participantes criam um túnel para isso: Os dados são recebidos pela porta 22 e encaminhados ao cliente na rede local.

Clientes SSH

O cliente SSH geralmente é o seu próprio PC que você deseja usar para estabelecer uma conexão com o servidor. Para conseguir isso, você pode ou deve (dependendo do sistema operacional) instalar um software separado que estabeleça uma conexão SSH. 

Esses programas também são chamados de clientes SSH. O Tectia SSH pago  vem da segurança de comunicação SSH e, adicionalmente, contém um software de servidor. Mas também existem várias alternativas gratuitas, como o software de código aberto PuTTy  para Windows e Linux, ou lsh , que funciona em todos os sistemas operacionais baseados em Unix. 

Alguns programas fornecem aos usuários uma interface gráfica que simplifica a configuração e implantação do SSH. Em princípio, o shell seguro também pode ser executado a partir da linha de comando – mesmo sem instalação adicional no macOS e outros sistemas operacionais Unix.

Servidor SSH

O servidor SSH é a contraparte do cliente. O termo também é usado aqui para o software. Muito do software cliente também funciona em servidores. Além disso, existe um software desenvolvido exclusivamente para servidores SSH. É normal iniciar o SSH nos servidores ao inicializar o computador. Isso garante que você possa acessar o servidor de fora a qualquer momento via SSH.

A rigor, não é necessário que o servidor SSH esteja localizado em um data center remoto. Os usuários também podem instalar um servidor SSH em seu próprio PC em casa para se beneficiar das vantagens do encaminhamento de porta, por exemplo.

Para que você precisa do SSH?

O SSH permite que dois computadores estabeleçam uma conexão segura e direta em uma rede potencialmente não segura, como a Internet. Isso é necessário para que terceiros não possam acessar o fluxo de dados, o que resultaria em dados confidenciais caindo em mãos erradas. 

Mesmo antes do Secure Shell, havia maneiras de estabelecer conexão direta entre dois computadores, mas os aplicativos correspondentes, como Telnet, Remote Shell ou rlogin, eram todos inseguros. O SSH criptografa a conexão entre dois computadores e permite que um segundo seja operado a partir de um computador.

O SSH não apenas fornece uma conexão criptografada , mas também garante que apenas conexões sejam estabelecidas entre os computadores designados (ou seja, nenhum ataque man-in-the-middle é possível) e que os dados correspondentes não possam ser manipulados em seu caminho para o destinatário. 

O computador remoto sempre foi acessado por meio da linha de comando. Eles são usados ​​para enviar comandos ao dispositivo remoto. No entanto, agora também é possível usar a computação de rede virtual (VNC) para espelhar uma interface gráfica do usuário (que nem sempre está disponível nos servidores) para seu próprio computador e, portanto, controlar o outro computador.

SSH tem muitas áreas diferentes de aplicação:

  • Gerenciando servidores que não podem ser acessados ​​localmente;
  • Transmissão segura de arquivos;
  • Criação segura de backups;
  • Conexão entre dois computadores com criptografia ponta a ponta;
  • Manutenção remota de outros computadores.

O desenvolvimento do SSH também influenciou outros protocolos. Por exemplo, o protocolo FTP não seguro, usado para baixar arquivos de e para um servidor, foi desenvolvido no protocolo de transferência de arquivos SSH (SFTP).

Uma vantagem do SSH é que o protocolo é executado em todos os sistemas operacionais comuns. Originalmente um aplicativo Unix, ele também é implementado em todas as distribuições Linux e macOS. Mas o SSH também pode ser usado no Windows, se você instalar um programa relevante.