Protocolo de Transferência de Arquivos (FTP)

O que é FTP?

O Protocolo de Transferência de Arquivos (do inglês: File Transfer Protocol, abreviado FTP) é um protocolo de comunicação padronizado utilizado para transferir arquivos de computador entre um cliente e um servidor através de uma rede. Desenvolvido no início dos anos 1970, o FTP emergiu como um protocolo fundamental da internet. Seu framework operacional segue um modelo cliente-servidor, onde o cliente inicia uma conexão com o servidor para facilitar a transferência de arquivos. Notavelmente, o FTP utiliza conexões de controle e dados distintas para otimizar o processo de transferência.

Uma ilustração de como o FTP funciona, mostrando como um cliente FTP envia arquivos por meio de um servidor FTP central e outro cliente FTP os recebe
Diagrama: O papel do FTP em facilitar a transferência de arquivos entre clientes e um servidor, representando o processo de upload e download em um formato simplificado

Visão Geral do Protocolo

O FTP opera através de duas conexões separadas para facilitar a transferência de arquivos entre o cliente e o servidor: a conexão de controle e a conexão de dados.

  • Conexão de Controle: Essa conexão é estabelecida inicialmente e gerencia a troca de comandos e respostas entre o cliente e o servidor. Normalmente, opera na porta 21.
  • Conexão de Dados: Ao contrário da conexão de controle, a conexão de dados é estabelecida dinamicamente para transferir os dados reais do arquivo.

O FTP opera em dois modos para transferências de arquivos:

Modo AtivoModo Passivo
O cliente especifica o endereço IP do servidor e o número da porta para se conectarO servidor fornece um endereço IP e número de porta, permitindo que o cliente estabeleça uma conexão para transferência de arquivos

A decisão de usar o modo ativo ou passivo depende da configuração da rede e da capacidade de estabelecer conexões de dados através de firewalls e dispositivos NAT.

Travessia de NAT e Firewall

As conexões FTP frequentemente encontram obstáculos ao atravessar dispositivos de tradução de endereços de rede (NAT) e firewalls. Dispositivos NAT alteram os endereços IP e números de porta dos pacotes à medida que passam, o que pode interromper o estabelecimento da conexão de dados no FTP. Da mesma forma, os firewalls podem bloquear solicitações de conexão de entrada para a conexão de dados.

Para enfrentar esses desafios, o FTP incorpora um comando PASV (Passivo), permitindo que o servidor designe um endereço IP e número de porta para que o cliente se conecte para a transferência de dados. Esse mecanismo ajuda a contornar as restrições impostas por firewalls e dispositivos NAT. Além disso, alguns firewalls suportam gateways de nível de aplicação capazes de inspecionar o tráfego FTP e abrir e fechar portas dinamicamente conforme necessário para a transferência de dados.

Suporte de Software para FTP

Com o tempo, as transferências de arquivos FTP foram facilitadas por meio de várias aplicações de software. Inicialmente, os clientes FTP eram predominantemente interfaces de linha de comando. No entanto, com os avanços tecnológicos, surgiram aplicações de cliente FTP mais amigáveis. Essas aplicações oferecem recursos como funcionalidade de arrastar e soltar, suporte para retomar transferências interrompidas e interfaces gráficas de usuário (GUIs) para navegação simplificada.

Além disso, muitos navegadores da web incorporaram funcionalidade de cliente FTP, permitindo aos usuários acessar diretamente servidores FTP. No entanto, devido a preocupações de segurança e ao declínio na prevalência do protocolo, os principais navegadores têm eliminado progressivamente o suporte para FTP.

Considerações de Segurança

Embora o FTP sirva como um protocolo prático para transferências de arquivos, suas vulnerabilidades de segurança são uma preocupação notável. Entre elas está a transmissão de credenciais de login e dados de arquivos em texto simples, tornando-o suscetível a interceptações e acessos não autorizados.

Para enfrentar essas deficiências de segurança, várias alternativas seguras ao FTP tradicional foram desenvolvidas:

  • FTPS (FTP sobre SSL/TLS): Esta solução aprimora o protocolo FTP ao incorporar uma camada adicional de criptografia. Aproveitando certificados SSL/TLS, o FTPS autentica o servidor e criptografa a transmissão de dados, aumentando significativamente a segurança em comparação com o FTP simples.
  • SFTP (Protocolo de Transferência de Arquivos SSH): O SFTP utiliza SSH (Secure Shell) para transferências de arquivos seguras. Estabelecendo uma conexão criptografada entre o cliente e o servidor, o SFTP garante a integridade e confidencialidade dos dados transferidos. Ao contrário do FTPS, o SFTP simplifica a configuração eliminando a necessidade de números de porta separados para as conexões de controle e dados.

FTP vs. HTTP: Diferenças Chave

Enquanto ambos, FTP e HTTP, são usados para transferir arquivos pela internet, eles diferem em vários aspectos chave.

CaracterísticaFTPHTTP
ConexãoCanais de controle e dados separadosConexão única para controle e dados
EstadoEstado (mantém informações de sessão)Stateless (cada solicitação é independente)
AdequaçãoArquivos grandes, transferências retomáveisArquivos menores, simplicidade e facilidade de uso
SegurançaMenos seguro (FTP tradicional)Pode ser seguro com HTTPS
CacheNãoSim (melhora o desempenho para repetições)

Referências

  1. Active FTP vs. Passive FTP, a Definitive Explanation”. Slacksite.com.
  2. RFC 959 (Standard) File Transfer Protocol (FTP). Postel, J. & Reynolds, J. (October 1985).
  3. FTP”. docs.kde.org.
  4. File Transfer Protocol – Wikipedia
  5. What is File Transfer Protocol (FTP) meaning | Fortinet
  6. What Is File Transfer Protocol (FTP) and What Is It Used for?
  7. What is FTP: File Transfer Protocol Explained for Beginners

Additional Resources