Aplicação do protocolo FTP na Internet das Coisas – IOT Parte 43

Aplicação do protocolo FTP na Internet das Coisas – IOT Parte 43

File Transfer Protocol (FTP) é um protocolo padrão para transferência de arquivos entre um cliente e um servidor através de uma rede de Internet. O protocolo FTP foi escrito por Abhay Bhushan (IIT Kanpur) em 1971. Em 1980, foi introduzida uma versão TCP/IP do protocolo como RFC 765, que se tornou o padrão de fato em todo o mundo. em 1998, a pilha de protocolos foi atualizada para suporte IPv6. Dentro deste protocolo, os recursos de segurança foram habilitados por camadas TLS/SSL chamadas FTP Secure (FTPS). Uma nova versão segura do FTP também é amplamente usada, chamada protocolo de transferência de arquivos SSH (SFTP). O SFTP é um protocolo bem diferente do FTPS tradicional.
Imagem Representacional do Protocolo FTP
Fig. 1: Imagem Representacional do Protocolo FTP
O protocolo FTP é baseado no modelo Cliente-Servidor, portanto, o dispositivo em uma extremidade solicita arquivos enquanto o dispositivo na outra extremidade responde à solicitação. Existem conexões de dados e controle separadas entre o cliente e o servidor. Os clientes FTP precisam se autenticar no servidor por meio de um sinal no protocolo. O login geralmente é na forma de nome de usuário e senha. Um cliente FTP também pode entrar como usuário anônimo se for permitido pelo servidor. Os aplicativos clientes FTP anteriores costumavam ser programas de linha de comando, embora agora utilitários clientes com interface gráfica estejam comumente disponíveis.
Conexão FTP
Um cliente FTP pode se comunicar com um servidor FTP em um dos dois modos – modo Ativo ou Passivo. Em conexão ativa, o cliente escuta uma porta (PORT M) e enquanto faz conexão para o servidor ele envia comandos FTP (PORT M) para informar ao servidor qual porta ele está escutando. Então o servidor inicia um canal de dados para cliente naquela porta (PORT M) usando a porta número 20, onde a porta 20 é a porta de dados do servidor FTP e a transferência de dados é iniciada.
Na conexão passiva, o cliente FTP envia um comando PASV ao servidor FTP usando uma conexão de controle. O servidor responde ao comando enviando seu endereço IP e número de porta. O cliente pode então abrir uma conexão de dados usando um número de porta arbitrário para o endereço IP recebido e o número da porta do servidor. O modo passivo foi introduzido para permitir a comunicação com clientes que estão atrás de um Firewall e, portanto, não podem aceitar uma conexão TCP.
No modo passivo, o servidor FTP responde ao cliente na forma de códigos de três dígitos na conexão de controle. A resposta inclui um número e um texto opcional. O número (número de três dígitos) representa o código de resposta enquanto o texto opcional é um legível por humanos explicação do código de resposta. O primeiro dígito no código de resposta indica o tipo de resposta e pode variar de 1 a 6. O primeiro dígito no código de resposta tem os seguintes significados –
Tabela que lista os significados do primeiro dígito no código de resposta do servidor FTP
Fig. 2: Tabela que lista os significados do primeiro dígito no código de resposta do servidor FTP
Tabela que lista os significados do primeiro dígito no código de resposta do servidor FTP
Fig. 3: Tabela que lista os significados do primeiro dígito no código de resposta do servidor FTP
O segundo dígito no código de resposta especifica o tipo de transferência de dados da seguinte forma –
Tabela listando significados do segundo dígito no código de resposta do servidor FTP
Fig. 4: Tabela que lista os significados do segundo dígito no código de resposta do servidor FTP
Tabela listando significados do segundo dígito no código de resposta do servidor FTP
Fig. 5: Tabela que lista os significados do segundo dígito no código de resposta do servidor FTP
Alguns dos códigos de resposta comuns são os seguintes –
Tabela listando códigos de resposta comuns do servidor FTPTabela listando códigos de resposta comuns do servidor FTP
Fig. 6: Tabela listando códigos de resposta comuns do servidor FTP Fig. 7: Tabela listando códigos de resposta comuns do servidor FTP
Assim que o cliente e o servidor estiverem conectados, eles podem transferir as seguintes quatro representações de dados –
1) Modo ASCII – É usado para transferência de texto, os dados são convertidos em “ASCII de 8 bits” antes ou depois da transferência, se necessário, mas não é adequado para outros dados além de texto simples.
2) Modo IMAGEM – É chamado de modo binário, utilizado na transferência de imagens, os dados são enviados em formato binário byte a byte, o receptor recebe esse fluxo de bytes e o armazena em sincronia com o recebimento.
3) Modo EBCDIC – É usado para texto simples entre hosts usando o conjunto de caracteres EBCDIC
4) Modo Local – Permite que duas máquinas com configuração idêntica transfiram dados sem converter para ASCII (em formato proprietário).
A transferência de dados pode acontecer em qualquer um dos três modos a seguir –
1) Modo Stream – Neste modo os dados são enviados como fluxo contínuo sem qualquer processamento no FTP. Em vez disso, o processamento dos dados é feito na camada TCP.
2) Modo Bloco – Neste modo, o FTP divide os dados em blocos e passa esses blocos para a camada TCP.
3) Modo compactado – Neste modo, os dados são primeiro compactados usando um algoritmo de compactação antes de passar para a camada TCP.
Login FTP –
O cliente FTP primeiro precisa fazer login no servidor FTP para transferir dados. O cliente pode autenticar usando nome de usuário e senha se o servidor permitir. Os comandos para autenticação podem ser enviados na porta 21 para login. O nome de usuário pode ser enviado usando o comando USER e a senha pode ser enviada usando o comando PASS. Esta sequência está em formato de texto simples e é respeitável para ataques de detecção (captura de tráfego de rede).
Acesso FTP anônimo –
Um FTP às vezes o servidor tem permissão para Conecte-se sem nome de usuário e senha. Cliente pode Conecte-se para servidor usando um anônimo conta, quando solicitado pelo nome de usuário, o usuário pode digitar “anônimo” e o servidor solicitará um endereço de e-mail em vez de senha (Nenhuma verificação de dados é realizada). Isso pode ser visto em um servidor de atualização que fornece apenas atualizações.
Recursos de FTP –
1) Suporte ao navegador da Web – FTP suporta logins no Web Bowser e navegação de dados. O navegador mais comum e novo pode recuperar arquivos hospedados no servidor FTP. Usando FTP no navegador da web, a maioria dos aplicativos da web avançados estão usando FTP para fornecer downloads e atualizações. Um usuário pode fazer login no servidor FTP usando um navegador da web e navegar pelos dados lá. A sintaxe para fazer login no navegador é semelhante a esta – (ftp://(user(:password)@)host(:port)/url-path)
2) Segurança – A segurança no FTP não é fornecida na versão tradicional. As credenciais de login e comandos transferidos para o servidor estão em texto plano sem qualquer criptografia. Assim, qualquer rede farejador pode ler os dados. Os ataques comuns aos quais o FTP é venerável são os seguintes –
• Ataque de força bruta
• Ataque de rejeição de FTP
• Captura de pacotes
• Roubo de porta (adivinhar a próxima porta aberta e usurpar uma conexão legítima)
• Ataque de falsificação
• Enumeração de nome de usuário
As soluções para essas falhas de segurança são as seguintes –
1. Use a versão segura do FTP – FTPS em vez do FTP tradicional, como em vez do TELNET, use TELNETS.
2. Use um protocolo mais seguro para transferência de dados que possa lidar com criptografia, como o protocolo de transferência de arquivos SSH.
3. Use uma conexão segura com o servidor, como usar VPN, em vez de conectar-se diretamente ao servidor.
Existem algumas variantes de FTP que fornecem comunicação de dados segura, como FTPSSFTP, TFTP, protocolo de transferência de arquivos SSH, que também pode ser usado.
No próximo tutorial, o protocolo FTP será implementado em uma aplicação IoT. No próximo tutorial, um Raspberry Pi será configurado como um FTP cliente e será feito para baixar arquivos de um FTP servidor.

Conteúdo Relacionado

Voltar para o blog

Deixe um comentário

Os comentários precisam ser aprovados antes da publicação.