Aplicación del protocolo FTP en el Internet de las Cosas – IOT Parte 43

El Protocolo de transferencia de archivos (FTP) es un protocolo estándar para transferir archivos entre un cliente y un servidor a través de una red de Internet. El protocolo FTP fue escrito por Abhay Bhushan (IIT Kanpur) en 1971. En 1980, se introdujo una versión TCP/IP del protocolo como RFC 765, que se convirtió en el estándar de facto en todo el mundo. En 1998, la pila de protocolos se actualizó para admitir IPv6. Dentro de este protocolo, las funciones de seguridad han sido habilitadas mediante capas TLS/SSL llamadas FTP Secure (FTPS). También se utiliza ampliamente una versión nueva y segura de FTP llamada Protocolo de transferencia de archivos SSH (SFTP). SFTP es un protocolo muy diferente al FTPS tradicional.
Imagem Representacional do Protocolo FTP
Fig. 1: Imagen representacional del protocolo FTP
El protocolo FTP se basa en el modelo Cliente-Servidor, por lo que el dispositivo de un extremo solicita archivos mientras que el dispositivo del otro extremo responde a la solicitud. Existen conexiones de datos y control separadas entre el cliente y el servidor. Los clientes FTP deben autenticarse en el servidor mediante una señal en el protocolo. El inicio de sesión suele realizarse mediante un nombre de usuario y una contraseña. Un cliente FTP también puede iniciar sesión como usuario anónimo si el servidor lo permite. Las aplicaciones de cliente FTP anteriores tendían a ser programas de línea de comandos, aunque ahora se encuentran comúnmente disponibles utilidades de cliente con una interfaz gráfica.
conexión FTP
Un cliente FTP puede comunicarse con un servidor FTP en uno de dos modos: modo activo o pasivo. En una conexión activa, el cliente escucha un puerto (PUERTO M) y mientras se conecta al servidor envía comandos FTP (PUERTO M) para informar al servidor qué puerto está escuchando. Luego, el servidor inicia un canal de datos al cliente en ese puerto (PUERTO M) usando el puerto número 20, donde el puerto 20 es el puerto de datos del servidor FTP y se inicia la transferencia de datos.
En una conexión pasiva, el cliente FTP envía un comando PASV al servidor FTP mediante una conexión de control. El servidor responde al comando enviando su dirección IP y número de puerto. Luego, el cliente puede abrir una conexión de datos utilizando un número de puerto arbitrario para la dirección IP recibida y el número de puerto del servidor. El modo pasivo se introdujo para permitir la comunicación con clientes que están detrás de un firewall y, por lo tanto, no pueden aceptar una conexión TCP.
En modo pasivo, el servidor FTP responde al cliente en forma de códigos de tres dígitos en la conexión de control. La respuesta incluye un número y texto opcional. El número (número de tres dígitos) representa el código de respuesta, mientras que el texto opcional es una explicación legible por humanos del código de respuesta. El primer dígito del código de respuesta indica el tipo de respuesta y puede variar de 1 a 6. El primer dígito del código de respuesta tiene los siguientes significados:
Tabela que lista os significados do primeiro dígito no código de resposta do servidor FTP
Fig. 2: Tabla que enumera los significados del primer dígito en el código de respuesta del servidor FTP
Tabela que lista os significados do primeiro dígito no código de resposta do servidor FTP
Fig. 3: Tabla que enumera los significados del primer dígito en el código de respuesta del servidor FTP
El segundo dígito del código de respuesta especifica el tipo de transferencia de datos de la siguiente manera:
Tabela listando significados do segundo dígito no código de resposta do servidor FTP
Fig. 4: Tabla que enumera los significados del segundo dígito en el código de respuesta del servidor FTP
Tabela listando significados do segundo dígito no código de resposta do servidor FTP
Fig. 5: Tabla que enumera los significados del segundo dígito en el código de respuesta del servidor FTP
Algunos de los códigos de respuesta comunes son los siguientes:
Tabela listando códigos de resposta comuns do servidor FTPTabela listando códigos de resposta comuns do servidor FTP
Fig. 6: Tabla que enumera los códigos de respuesta comunes del servidor FTP Fig. 7: Tabla que enumera los códigos de respuesta comunes del servidor FTP
Una vez que el cliente y el servidor están conectados, pueden transferir las siguientes cuatro representaciones de datos:
1) Modo ASCII: se utiliza para la transferencia de texto, los datos se convierten a “ASCII de 8 bits” antes o después de la transferencia si es necesario, pero no es adecuado para datos que no sean texto sin formato.
2) Modo IMAGEN: se llama modo binario, se utiliza en la transferencia de imágenes, los datos se envían en formato binario byte a byte, el receptor recibe este flujo de bytes y lo almacena en sincronización con el recibo.
3) Modo EBCDIC: se utiliza para texto sin formato entre hosts utilizando el juego de caracteres EBCDIC.
4) Modo local: permite que dos máquinas con configuración idéntica transfieran datos sin convertirlos a ASCII (en formato propietario).
La transferencia de datos puede ocurrir en cualquiera de los siguientes tres modos:
1) Modo de transmisión: en este modo, los datos se envían como una secuencia continua sin ningún procesamiento en FTP. En cambio, el procesamiento de datos se realiza en la capa TCP.
2) Modo de bloque: en este modo, FTP divide los datos en bloques y pasa estos bloques a la capa TCP.
3) Modo comprimido: en este modo, los datos primero se comprimen utilizando un algoritmo de compresión antes de pasar a la capa TCP.
Inicio de sesión FTP –
El cliente FTP primero debe iniciar sesión en el servidor FTP para transferir datos. El cliente puede autenticarse utilizando nombre de usuario y contraseña si el servidor lo permite. Los comandos de autenticación se pueden enviar al puerto 21 para iniciar sesión. El nombre de usuario se puede enviar usando el comando USUARIO y la contraseña se puede enviar usando el comando PASS. Esta cadena está en formato de texto sin formato y es respetable para ataques de rastreo (captura de tráfico de red).
Acceso FTP anónimo –
A veces se permite que un servidor FTP se conecte sin nombre de usuario ni contraseña. El cliente puede conectarse al servidor usando una cuenta anónima ; cuando se le solicita un nombre de usuario, el usuario puede escribir "anónimo" y el servidor le solicitará una dirección de correo electrónico en lugar de una contraseña (no se realiza ninguna verificación de datos). Esto se puede ver en un servidor de actualizaciones que solo proporciona actualizaciones.
Funciones FTP –
1) Compatibilidad con navegador web: FTP admite inicios de sesión web de Bowser y exploración de datos. El navegador más común y nuevo puede recuperar archivos alojados en un servidor FTP. Al utilizar FTP en el navegador web, la mayoría de las aplicaciones web avanzadas utilizan FTP para proporcionar descargas y actualizaciones. Un usuario puede iniciar sesión en el servidor FTP utilizando un navegador web y explorar los datos allí. La sintaxis para iniciar sesión en el navegador se ve así: (ftp://(usuario(:contraseña)@)host(:puerto)/url-path)
2) Seguridad: la seguridad en FTP no se proporciona en la versión tradicional. Las credenciales de inicio de sesión y los comandos transferidos al servidor están en texto sin formato y sin ningún tipo de cifrado. Entonces, cualquier red de rastreo puede leer los datos. Los ataques comunes a los que FTP es venerable son los siguientes:
• Ataque de fuerza bruta
• Ataque de rebote FTP
• Captura de paquetes
• Robo de puertos (adivinar el siguiente puerto abierto y usurpar una conexión legítima)
• Ataque de suplantación de identidad
• Enumeración de nombres de usuario
Las soluciones a estas fallas de seguridad son las siguientes:
1. Utilice la versión segura de FTP: FTPS en lugar del FTP tradicional, como en lugar de TELNET, utilice TELNETS.
2. Utilice un protocolo más seguro para la transferencia de datos que pueda manejar el cifrado, como el protocolo de transferencia de archivos SSH.
3. Utilice una conexión segura al servidor, como una VPN, en lugar de conectarse directamente al servidor.
Existen algunas variantes de FTP que proporcionan una comunicación de datos segura, como FTPS SFTP, TFTP, protocolo de transferencia de archivos SSH, que también se pueden utilizar.
En el próximo tutorial, se implementará el protocolo FTP en una aplicación de IoT. En el siguiente tutorial, se configurará una Raspberry Pi como cliente FTP y se le permitirá descargar archivos desde un servidor FTP .

contenido relacionado

Regresar al blog

Deja un comentario

Ten en cuenta que los comentarios deben aprobarse antes de que se publiquen.