Protocolo SSH

Esta página é sobre o protocolo SSH. Para a empresa por trás dele, veja SSH Communications Security. Para usar o comando ssh do Linux, veja o uso do comando ssh. Para clientes SSH, servidores e informações técnicas, veja a página inicial do SSH (Secure Shell).

O protocolo SSH (também chamado de Secure Shell) é um método para login remoto seguro de um computador para outro. Ele fornece várias opções alternativas para autenticação forte e protege a segurança e integridade das comunicações com criptografia forte. É uma alternativa segura aos protocolos de login não protegidos (como telnet, rlogin) e métodos de transferência de arquivos inseguros (como FTP).

Usos típicos do protocolo SSH

O protocolo é usado em redes corporativas para:

  • p>p>provendo acesso seguro para usuários e processos automatizados
  • p>p>transferências de arquivos interativas e automatizadas/li>
  • p> emissão de comandos remotos/li>
  • p>p> gestão de infra-estrutura de rede e outros componentes de sistema de missão crítica.

Como funciona o protocolo SSH

O protocolo funciona no modelo cliente-servidor, o que significa que a conexão é estabelecida pelo cliente SSH conectando-se ao servidor SSH. O cliente SSH conduz o processo de configuração da conexão e usa criptografia de chave pública para verificar a identidade do servidor SSH. Após a fase de configuração, o protocolo SSH utiliza criptografia forte e simétrica e algoritmos de hashing para garantir a privacidade e integridade dos dados trocados entre o cliente e o servidor.

A figura abaixo apresenta um fluxo de configuração simplificado de uma conexão shell segura.

Autenticação forte com chaves SSH

Existem várias opções que podem ser utilizadas para autenticação do usuário. As mais comuns são senhas e autenticação de chave pública.

O método de autenticação de chave pública é usado principalmente para automação e às vezes por administradores de sistema para login único. Acabou por ser muito mais utilizado do que alguma vez previmos. A ideia é ter um par de chaves criptográficas – chave pública e chave privada – e configurar a chave pública num servidor para autorizar o acesso e conceder a qualquer pessoa que tenha uma cópia da chave privada de acesso ao servidor. As chaves usadas para autenticação são chamadas chaves SSH. A autenticação de chave pública também é usada com cartões smartcards, como os cartões CAC e PIV usados pelo governo americano.

A principal utilização da autenticação baseada em chaves é para permitir a automatização segura. Transferências seguras automatizadas de arquivos shell são usadas para integrar aplicações sem problemas e também para sistemas automatizados & gerenciamento de configuração.

Descobrimos que grandes organizações têm muito mais chaves SSH do que imaginam, e o gerenciamento de chaves SSH tornou-se muito importante. As chaves SSH garantem acesso como os nomes de usuário e senhas. Elas requerem processos similares de provisionamento e terminação.

Em alguns casos encontramos vários milhões de chaves SSH autorizando acesso a servidores de produção em ambientes de clientes, com 90% das chaves realmente não sendo utilizadas e representando acesso que foi provisionado mas nunca terminado. Garantir políticas, processos e auditorias adequadas também para o uso de SSH é fundamental para uma correta gestão de identidade e acesso. Os projetos tradicionais de gerenciamento de identidade têm negligenciado até 90% de todas as credenciais, ignorando chaves SSH. Nós fornecemos serviços e ferramentas para implementar o gerenciamento de chaves SSH.

SSH fornece criptografia forte e proteção de integridade

Após uma conexão ter sido estabelecida entre o cliente e o servidor SSH, os dados que são transmitidos são criptografados de acordo com os parâmetros negociados na configuração. Durante a negociação o cliente e o servidor concordam no algoritmo de criptografia simétrica a ser utilizado e geram a chave de criptografia que será utilizada. O tráfego entre as partes comunicantes é protegido com algoritmos de criptografia forte padrão da indústria (como AES (Advanced Encryption Standard)), e o protocolo SSH também inclui um mecanismo que garante a integridade dos dados transmitidos usando algoritmos de hash padrão (como SHA-2 (Standard Hashing Algorithm)).

IETF SSH padrão e documentação técnica detalhada

O protocolo central

Quando o protocolo SSH se tornou popular, Tatu Ylonen levou-o para o IETF para padronização. Agora é um padrão da Internet que é descrito nos seguintes documentos:

RFC 4251 – The Secure Shell (SSH) Protocol ArchitectureRFC 4253 – The Secure Shell (SSH) Transport Layer ProtocolRFC 4252 – The Secure Shell (SSH) Authentication ProtocolRFC 4254 – The Secure Shell (SSH) Connection Protocol

SFTP file transfer protocol

The SFTP (SSH File Transfer Protocol) is probably the most widely used secure file transfer protocol today. Ele roda sobre o SSH, e está atualmente documentado em draft-ietf-secsh-filexfer-02

Public key file format

O formato de arquivo de chave pública não é um padrão formal (é um documento informativo), mas muitas implementações suportam este formato.RFC 4716 – The Secure Shell (SSH) Public Key File Format

How to Cite SSH

Para citar SSH num trabalho de pesquisa, por favor use o seguinte:

Tatu Ylonen: SSH - Secure Login Connections over the Internet.Proceedings of the 6th USENIX Security Symposium, pp. 37-42,USENIX, 1996.