O que é o protocolo Secure Shell (SSH)?
- Glossário do IAM
- O que é o protocolo Secure Shell (SSH)?
O protocolo Secure Shell (SSH) é um protocolo de rede criptográfico usado para conectar-se e gerenciar dispositivos de forma segura pela rede. Ele permite que os usuários acessem e controlem uma máquina remota como se estivessem fisicamente presentes, mantendo altos níveis de segurança. O SSH criptografa os dados transferidos entre duas máquinas, garantindo que credenciais e outras informações sensíveis fiquem protegidas contra acesso não autorizado.
SSH x SSL: qual é a diferença?
Embora tanto o SSH quanto o Secure Sockets Layer (SSL) sejam protocolos projetados para proteger dados durante a transmissão, eles são usados em contextos diferentes.
O SSH é usado principalmente para acessar e gerenciar sistemas remotos de forma segura por meio de uma rede. Ele criptografa a comunicação entre um cliente (geralmente o computador do usuário) e um servidor remoto, permitindo acesso seguro via linha de comando, transferência de arquivos e outras tarefas administrativas.
O SSL, agora conhecido como Transport Layer Security (TLS), é projetado para proteger a comunicação entre um servidor web e um navegador, geralmente sobre o protocolo HTTPS. O SSL/TLS garante integridade e confidencialidade dos dados criptografando informações como credenciais de login, dados de cartão de crédito e outros dados sensíveis transmitidos durante atividades online.
Como o protocolo SSH funciona
O protocolo SSH é baseado em um modelo cliente-servidor, no qual o dispositivo do usuário (cliente) se conecta com segurança a uma máquina remota (servidor). Isso permite que os usuários acessem e administrem sistemas remotos por meio de uma rede, mesmo em redes não confiáveis, como Wi-Fi público.
Veja abaixo como ocorre o processo de conexão SSH:
- Solicitação de conexão: O cliente SSH inicia uma solicitação de conexão com o servidor SSH.
- Troca de chaves: Para estabelecer um canal seguro de comunicação, o cliente e o servidor executam um algoritmo de troca de chaves. Esse processo realiza a troca segura de chaves criptográficas, permitindo que ambas as partes concordem sobre um segredo compartilhado usado para criptografar a sessão. Mesmo que alguém intercepte os dados, não será capaz de lê-los sem as chaves corretas.
- Autenticação do servidor: O cliente verifica a identidade do servidor comparando sua chave pública com as chaves conhecidas. Essa etapa impede ataques Man-in-the-Middle (MITM), garantindo que o cliente não esteja se conectando a um servidor malicioso ou falsificado.
- Autenticação do cliente: Após o servidor ser autenticado, o cliente também precisa se autenticar, usando uma senha ou um par de chaves SSH.
- Sessão criptografada estabelecida: Depois que a autenticação é concluída com sucesso, é criada uma sessão segura. Todas as comunicações durante essa sessão são criptografadas, garantindo confidencialidade, integridade dos dados e autenticação segura.
O que é tunelamento SSH?
O tunelamento SSH, também conhecido como redirecionamento de porta SSH, é um método que permite encaminhar tráfego de rede com segurança entre uma máquina local e uma remota por meio de uma conexão criptografada. Isso cria um “túnel” seguro que protege os dados contra interceptação ou manipulação durante a transmissão. O tunelamento SSH é frequentemente usado para acessar serviços internos de forma segura, burlar firewalls ou adicionar criptografia a protocolos não seguros.
Existem três tipos principais de redirecionamento de porta SSH:
- Redirecionamento local de porta: Encaminha uma porta da máquina local para uma porta em uma máquina remota via SSH. Isso permite que o usuário acesse um serviço remoto como se ele estivesse sendo executado localmente.
- Redirecionamento remoto de porta: Encaminha uma porta de uma máquina remota para uma porta na máquina local. Isso permite que um usuário remoto acesse um serviço em execução na máquina local.
- Redirecionamento dinâmico de porta: Cria um proxy SOCKS (Socket Secure) local que encaminha o tráfego dinamicamente para diferentes destinos com base nas solicitações do cliente. Esse método permite um roteamento flexível, em nível de aplicação, do tráfego de rede por meio do túnel SSH.
Casos de uso comuns do protocolo SSH
O protocolo SSH tem uma ampla variedade de aplicações para proteger comunicações remotas, transferências de arquivos e o gerenciamento de acessos. A seguir estão alguns dos casos de uso mais comuns e relevantes:
Transferências seguras de arquivos
Um dos usos mais frequentes do SSH é a transferência segura de arquivos entre sistemas locais e remotos. O SSH fornece um canal criptografado que protege os dados em trânsito, sendo ideal para gerenciar servidores, fazer backup de dados sensíveis e compartilhar documentos de forma segura.
O SSH garante a segurança nas transferências de arquivos por meio dos protocolos SFTP (Secure File Transfer Protocol) e SCP (Secure Copy Protocol). O SFTP opera sobre uma conexão SSH e assegura que todos os dados sejam criptografados durante a transferência, diferentemente do FTP (File Transfer Protocol), que envia informações em texto simples. O SCP, por sua vez, é um protocolo mais simples que o SFTP e se concentra em copiar arquivos entre sistemas de forma rápida e segura. Assim, o SSH desempenha um papel essencial na proteção de transferências de arquivos, oferecendo criptografia e integridade dos dados por meio do SFTP e do SCP.
Gerenciamento de acesso remoto
O SSH possibilita o acesso remoto seguro e criptografado, sendo essencial para administradores de sistemas e profissionais de TI que precisam gerenciar servidores sem estar fisicamente presentes no local. Com o SSH, os usuários podem se conectar remotamente a uma máquina, autenticar-se e executar tarefas administrativas sem risco de acesso não autorizado. Ele também permite gerenciar servidores de qualquer lugar, transferir arquivos com segurança e até acessar serviços internos por meio de tunelamento SSH.
Bypass de firewall
O tunelamento SSH é uma forma eficaz de contornar restrições de firewall e rotear o tráfego de rede com segurança por meio de um servidor remoto. Ele pode burlar o bloqueio de tráfego de entrada ou saída que firewalls normalmente impõem por motivos de segurança. Isso é útil quando o usuário precisa acessar serviços bloqueados pelo firewall, como bancos de dados internos ou aplicativos web corporativos.
Acesso a redes privadas
O tunelamento SSH permite o acesso seguro a serviços internos e redes privadas, especialmente quando essas redes estão protegidas por firewalls ou redes privadas virtuais (VPNs) que bloqueiam o acesso direto. Diferentemente de uma VPN, o tunelamento SSH pode encaminhar tipos específicos de tráfego por meio do túnel para acessar recursos de rede privada de forma seletiva. Por exemplo, se um colaborador trabalha remotamente e precisa acessar um banco de dados em um servidor interno, mas o acesso direto é bloqueado por firewalls, ele pode criar um túnel SSH com redirecionamento local de porta. Assim, o tráfego passa por um servidor confiável e chega ao banco de dados de forma segura, sem comprometer a integridade da rede.
Acesso a serviços em nuvem
Plataformas de nuvem geralmente hospedam aplicativos e infraestrutura em máquinas virtuais remotas. O SSH é o protocolo padrão para interagir com esses ambientes de forma segura. Ele permite que os usuários instalem softwares, gerenciem servidores e resolvam problemas remotamente, mantendo a comunicação protegida.
Riscos de segurança do SSH
Embora o SSH ofereça alto nível de segurança para acesso remoto e transferência de dados, ele não é isento de riscos. Os problemas mais comuns incluem controles de acesso mal configurados, software desatualizado e gestão insegura de chaves.
Controles de acesso mal configurados
A segurança do SSH depende de uma configuração correta. Se os controles de acesso forem configurados incorretamente, o sistema pode ficar vulnerável a invasões ou ataques de força bruta. Para reduzir riscos, é recomendável desativar a autenticação por senha e usar pares de chaves SSH como método de autenticação, dificultando o acesso não autorizado.
Software SSH desatualizado
Um dos aspectos mais importantes da manutenção da segurança do SSH é garantir que tanto o servidor SSH quanto o software cliente sejam atualizados com frequência. Servidores e clientes SSH desatualizados podem conter falhas conhecidas que hackers exploram para obter acesso indevido e comprometer dados. Manter o software atualizado reduz significativamente as chances de um ataque bem-sucedido à infraestrutura do SSH.
Gerenciamento inseguro de chaves
A autenticação baseada em chaves SSH é uma grande vantagem de segurança, mas também traz riscos se as chaves forem mal gerenciadas. Chaves privadas comprometidas podem resultar em acesso não autorizado ou elevação de privilégios. Para mitigar esses riscos, as chaves privadas devem ser armazenadas com segurança, protegidas por frases secretas fortes, rotacionadas periodicamente e nunca compartilhadas. Além disso, é importante controlar rigorosamente a distribuição de chaves entre usuários e sistemas.