Tanto o SFTP como o FTPS cifram as transferências FTP. Ambos têm um "S" no nome. São frequentemente confundidos - e essa confusão tem consequências, porque são tecnologias completamente diferentes que funcionam de formas completamente distintas.

Escolher o protocolo errado ao configurar uma ligação resulta numa falha de ligação. Escolher o certo exige perceber o que cada um é de facto. Eis a explicação clara.

FTP: a base

Antes de chegar às variantes seguras, ajuda perceber o FTP simples. O File Transfer Protocol foi criado no início dos anos 70 - muito antes de a internet ter qualquer semelhança com o que é hoje. Não tem qualquer cifração. As credenciais (utilizador e password) viajam em texto simples pela rede. O mesmo acontece com o conteúdo dos ficheiros.

O FTP ainda é amplamente usado em redes internas onde o tráfego nunca sai de um ambiente de confiança, em alojamentos antigos ou em situações controladas onde a cifração não é uma preocupação. É simples, funciona e é suportado por praticamente todos os servidores. Mas pela internet pública, enviar credenciais em texto simples não é algo que queira fazer.

É aqui que entram as duas variantes seguras - e onde a confusão começa.

SFTP (SSH File Transfer Protocol)

Apesar do nome, o SFTP não é FTP com segurança adicionada. É um protocolo completamente diferente, desenvolvido de forma independente como parte da família de protocolos SSH (Secure Shell).

O SFTP corre sobre SSH na porta 22. Tudo - autenticação, comandos, conteúdo dos ficheiros - é cifrado pela camada SSH. Um cliente SFTP e um cliente FTP normal falam protocolos fundamentalmente diferentes ao nível da rede, mesmo que o resultado (transferir ficheiros) pareça igual para o utilizador.

Características principais do SFTP:

  • Corre sobre SSH. Se um servidor tem SSH ativo, quase certamente tem SFTP disponível também - sem configuração adicional.
  • Porta única (22). Toda a comunicação acontece numa porta, o que simplifica a configuração de firewalls.
  • Autenticação por chave. Em vez de uma password, pode autenticar-se com um par de chaves SSH. A chave privada nunca sai do seu computador; o servidor guarda apenas a pública. É significativamente mais seguro do que a autenticação por password.
  • Cifração ponta a ponta. Credenciais e conteúdo dos ficheiros são sempre cifrados, independentemente da rede em que esteja.
  • Sem certificados TLS. A autenticação é feita por chaves SSH ou passwords via SSH - sem autoridade de certificação, sem renovação de certificados.
Na prática: quem tem acesso SSH a um servidor Linux tem SFTP. Na maioria dos casos, não é necessária qualquer configuração adicional no servidor.

FTPS (FTP sobre TLS)

O FTPS é FTP real com cifração TLS por cima. Uma abordagem diferente: pegar no protocolo FTP existente e envolvê-lo em TLS, a mesma camada de cifração usada pelo HTTPS.

Existem dois modos de FTPS:

FTPS Explícito (FTPES)

O cliente liga ao servidor na porta 21 (a porta FTP padrão) e envia imediatamente o comando AUTH TLS para atualizar a ligação para cifrada. O servidor tem de suportar este comando. Este modo chama-se "explícito" porque o cliente pede explicitamente a atualização TLS.

FTPS Implícito

O cliente liga à porta 990 e o handshake TLS acontece imediatamente - antes de qualquer comunicação FTP. Não há fase não cifrada. Este modo é menos comum mas ainda usado em alguns servidores.

Características principais do FTPS:

  • Baseado em FTP. Mesmo conjunto de comandos, mesmas considerações sobre modo passivo/ativo, mesmo comportamento multi-porta para transferências de dados.
  • Requer certificado TLS. O servidor precisa de um certificado SSL/TLS válido, que tem de ser renovado periodicamente.
  • Complexidade com firewalls. O FTP em modo passivo abre um intervalo de portas de dados dinâmicas. As firewalls precisam de perceber FTP para inspecionar estas ligações corretamente. Com cifração TLS, a firewall não consegue inspecionar o tráfego FTP, o que pode complicar o modo passivo.
  • Apenas por password. O FTPS não suporta autenticação por chave - autentica-se com utilizador e password (que, no entanto, é cifrada pelo TLS).
  • Alta compatibilidade. Muitos ambientes empresariais e de alojamento oferecem FTPS porque é uma atualização direta de uma configuração FTP existente.

Comparação lado a lado

Comparação lado a lado
Característica FTP SFTP FTPS
Baseado emFTPSSHFTP + TLS
Porta padrão212221 (explícito) / 990 (implícito)
CifraçãoNenhumaSempre (SSH)Sim (TLS)
Autenticação por chaveNãoSimNão
Certificado necessárioNãoNãoSim
Firewall-friendlyComplexoSimples (1 porta)Complexo
DisponibilidadeUniversalQualquer servidor SSHRequer configuração

Qual deve usar?

Use SFTP se: controla o servidor (ou é um servidor Linux/Unix com SSH), a segurança é prioritária e quer uma configuração de firewall simples. O SFTP é o padrão moderno. Se não houver razão particular para outra coisa, SFTP é a escolha certa.

Use FTPS se: o seu fornecedor de alojamento ou o servidor de um cliente o exige, ou está a adicionar cifração a uma configuração FTP existente sem poder alterar a infraestrutura. Muitos ambientes empresariais que operam servidores FTP há anos escolhem o FTPS como caminho de atualização porque exige menos mudanças na configuração existente.

Use FTP simples se: está numa rede interna de confiança onde a cifração não é necessária, ou a trabalhar com um sistema antigo que não suporta nenhuma das variantes seguras. Evite-o completamente para qualquer coisa pela internet pública.

FTPSuite suporta os três

FTPull (para descarregamentos automáticos) e FTPush (para envios automáticos) suportam FTP, SFTP e FTPS de forma nativa. Selecionar o protocolo nas definições da ligação é um clique - a aplicação trata automaticamente das diferenças técnicas. Insere o host, porta, credenciais e protocolo; o resto fica a cargo da app.

Se não tiver a certeza de qual o protocolo que o seu servidor usa, consulte o nosso guia: FTP, SFTP ou FTPS: qual é o protocolo do seu servidor?