Entendendo SFTP vs. FTPS vs. FTP

Publicados: 2022-08-18

FTP ou File Transfer Protocol é um dos métodos de transferência de dados mais populares disponíveis para vários casos de uso.

O FTP tem diferentes variações seguras disponíveis, conhecidas como FTPS e SFTP, que incorporam algumas diferenças sutis e outras não tão sutis em como eles funcionam. Essas diferenças estão relacionadas a como os dados são trocados, o nível e o tipo de segurança na comunicação e as considerações de firewall.

Saber como esses protocolos funcionam e as diferenças entre esses mecanismos de transferência populares podem ajudá-lo a escolher qual deles funciona melhor para suas necessidades.

FTP

FTP é o protocolo de transferência de arquivos de décadas originalmente proposto sob a RFC 114. Posteriormente, evoluiu como RFC 959, que é o padrão em uso hoje.

O FTP funciona em dois canais para troca de informações: um para comandos e outro para dados. Isso requer duas portas para o FTP funcionar – o canal de comando e o canal de dados.

O canal de comando funciona na porta 21, que aceita conexões de clientes e trata da passagem de comandos. O canal de comando permanece aberto durante toda a sessão FTP até que o cliente envie o comando QUIT ou o servidor se desconecte forçosamente devido à inatividade ou qualquer outro motivo possível.

O canal de dados usa uma porta temporária sob demanda que escuta no servidor (modo passivo) ou no cliente (modo ativo). Este canal é responsável por compartilhar dados reais entre servidor e cliente na forma de listas de diretórios e transferências de arquivos.

Ao contrário do canal de comando, o canal de dados permanece aberto apenas durante a transferência de arquivos e, assim que termina, o canal de dados é fechado. Para transferência simultânea de vários arquivos ou listagens de diretório, são necessárias várias portas de canal de dados.

O FTP é um protocolo inerentemente inseguro, pois os canais de comando e de dados transferem informações de forma não criptografada, o que é facilmente suscetível à interceptação por qualquer pessoa que use ataques man-in-the-middle.

Conforme discutido anteriormente, o FTP requer uma conexão de entrada na porta 21/tcp no lado do servidor para o canal de comando. Um intervalo de portas passivas é definido para transferências de arquivos e listagens de diretórios e permite conexões de entrada. Esse processo de definição pode variar de acordo com o servidor FTP em uso. Consulte sua documentação para obter mais detalhes. No lado do cliente, a conexão de saída na porta 21/tcp deve ser permitida junto com o intervalo de porta passivo definido no servidor.

Autenticação em FTP

As informações de autenticação FTP são transmitidas pelo canal de comando durante o estabelecimento da conexão inicial. O FTP pode usar um nome de usuário e senha para autenticação ou pode ser anônimo para permitir que qualquer pessoa faça login e acesse o servidor.

Modos FTP Ativo e Passivo

O FTP usa o modo Ativo ou Passivo para configurar conexões.

No modo ativo , um usuário se conecta de uma porta aleatória no cliente FTP à porta FTP 21/tcp no servidor e envia o comando PORT, especificando a porta cliente à qual o servidor deve se conectar. Esta porta será usada para o canal de dados.

O servidor então se conecta da porta 20/tcp à porta cliente especificada anteriormente com o comando PORT pelo cliente. Este canal de dados é então usado para transferências de arquivos entre servidor e cliente.

No modo passivo , o cliente se conecta de uma porta aleatória do cliente FTP à porta 21/tcp no servidor e envia o comando PASV. O servidor então responde com uma porta aleatória que deve ser usada para o canal de dados. O cliente então usa outra porta aleatória para se conectar à porta respondida por um servidor na etapa anterior. Essa conexão de canal de dados é então usada para transferência de arquivos entre o servidor e o cliente.

Assim, no modo ativo, a solicitação de conexão inicial é iniciada pelo cliente enquanto a solicitação de conexão do canal de dados é iniciada pelo servidor.

Por outro lado, no modo passivo, as solicitações de conexão inicial e as solicitações de canal de dados subsequentes são iniciadas pelo cliente ao servidor. Essa diferença sutil às vezes afeta como um firewall permite/bloqueia solicitações de FTP tradicionais devido à direção do tipo de conexão de entrada/saída.

FTPS

Mesmo se você estiver disposto a correr riscos associados ao FTP com transmissão de dados não criptografada e ataques main-in-the-middle, os requisitos do setor o obrigam a usar uma alternativa mais segura, como FTPS e SFTP, que são comparativamente muito mais seguras.

Em 1990, com a mudança do cenário de segurança, a Netscape criou o protocolo SSL ou Secure Sockets Layer (SSL, agora conhecido como TLS) para proteger a comunicação em uma rede. SSL foi aplicado ao FTP que se tornou FTPS ou File Transfer Protocol Secure . FTPS ou FTP/S geralmente são executados na porta 990/tcp , mas também podem ser vistos na porta 21/tcp. Da mesma forma, para o canal de dados, a porta 989/tcp é a porta comum usada para FTPS. Se a porta de comando for 21/tcp , espera-se que sua porta de dados seja 20/tcp .

Assim como o FTP, o FTPS usa dois canais para comunicação: canal de comando e canal de dados. O canal de dados pode ser criptografado com FTPS ou os canais de comando e de dados podem ser criptografados para maior segurança.

O FTPS, como o FTP, também usa várias portas para canais de comando e dados. Assim, a porta 21/tcp é usada para a conexão inicial e transmissão de informações de autenticação. Posteriormente, serão necessárias portas diferentes para configurar canais de dados para cada solicitação de transferência de arquivo ou listagem de diretório do cliente. Assim, como o FTP, ele precisa de um intervalo de portas para ser permitido em seu firewall.

Autenticação em FTPS

A autenticação para FTPS funciona usando um nome de usuário e senha junto com um certificado de servidor para criptografia. Quando o cliente FTPS se conecta a um servidor, ele verifica se o certificado do servidor é confiável para prosseguir com a conexão. Este certificado pode ser solicitado ao cliente e ao servidor.

SFTP

Ao contrário de FTP e FTPS, SFTP (SSH File Transfer Protocol) é um protocolo completamente diferente construído em SSH (ou Secure Shell). O SFTP, por padrão, funciona na porta 22/tcp, da mesma forma que o SSH, embora possa ser configurado para usar uma porta gratuita personalizada no servidor.

SFTP é um protocolo FTP seguro que usa SSH para enviar e receber arquivos. Sendo o SSH completamente criptografado, o SFTP é um método robusto e seguro para transferir arquivos em uma rede.

O SFTP, ao contrário do FTP e do FTPS, usa um único canal de comunicação para transferir comandos e tráfego de dados, todos os quais são transmitidos de forma criptografada junto com a autenticação inicial.

Autenticação em SFTP

A autenticação no SFTP pode ser feita por meio de um simples nome de usuário e senha, mas, diferentemente do FTP, todas as informações, incluindo detalhes de autenticação, são passadas criptografadas pela rede.

O SFTP também suporta autenticação usando par de chaves SSH, combinação de chaves privada e pública, onde o cliente fornece a chave privada para o usuário especificado e o servidor deve ter a chave pública correspondente para que a autenticação seja bem-sucedida. É mais seguro do que usar uma combinação de nome de usuário/senha. É possível autenticar o mesmo usuário usando senha e chaves SSH se ambos os métodos estiverem configurados no servidor SFTP.

Resumo

Este artigo resume os recursos básicos de diferentes protocolos de transferência de arquivos populares, como FTP, FTPS e SFTP, e destaca as diferenças sutis e principais entre esses protocolos. Ele cobre as portas que é necessário permitir em um firewall para configurar um servidor FTP/FTPS/SFTP em funcionamento, ao mesmo tempo em que destaca a necessidade de alternar para protocolos mais seguros, como FTPS e SFTP.

Quando digo FTP aqui, estou me referindo a qualquer protocolo discutido neste artigo. A razão é que o FTP tem décadas de idade, e até mesmo as versões seguras mais recentes são às vezes chamadas de FTP em vez de seu nome designado para uso diário.

Você também pode estar interessado em conhecer o melhor software de servidor FTP e clientes FTP/SFTP.