Protocolo de Transferencia de Archivos (FTP)

¿Qué es FTP?

El Protocolo de Transferencia de Archivos (en inglés File Transfer Protocol o FTP) es un protocolo de comunicación estandarizado utilizado para transferir archivos de computadora entre un cliente y un servidor a través de una red. Desarrollado a principios de los años 1970, FTP se ha consolidado como un protocolo fundamental de internet. Su marco operativo sigue un modelo cliente-servidor, donde el cliente inicia una conexión con el servidor para facilitar la transferencia de archivos. Es importante destacar que FTP emplea conexiones de control y de datos distintas para agilizar el proceso de transferencia.

Una ilustración de cómo funciona FTP, mostrando cómo un cliente FTP envía archivos a través de un servidor FTP central y otro cliente FTP los recibe
Diagrama: El papel de FTP en facilitar la transferencia de archivos entre clientes y un servidor, representando el proceso de carga y descarga en un formato simplificado

Visión General del Protocolo

FTP opera a través de dos conexiones separadas para facilitar la transferencia de archivos entre el cliente y el servidor: la conexión de control y la conexión de datos.

  • Conexión de Control: Esta conexión se establece inicialmente y maneja el intercambio de comandos y respuestas entre el cliente y el servidor. Típicamente, opera en el puerto 21.
  • Conexión de Datos: A diferencia de la conexión de control, la conexión de datos se establece dinámicamente para transferir los datos reales del archivo.

FTP opera en dos modos para las transferencias de archivos:

Modo ActivoModo Pasivo
El cliente especifica la dirección IP del servidor y el número de puerto para conectarseEl servidor proporciona una dirección IP y un número de puerto, permitiendo al cliente establecer una conexión para la transferencia de archivos

La decisión de usar el modo activo o pasivo depende de la configuración de la red y la capacidad para establecer conexiones de datos a través de firewalls y dispositivos NAT.

Traversía de NAT y Firewall

Las conexiones FTP a menudo encuentran obstáculos al atravesar dispositivos de traducción de direcciones de red (NAT) y firewalls. Los dispositivos NAT alteran las direcciones IP y los números de puerto de los paquetes a medida que pasan, lo que puede interrumpir el establecimiento de la conexión de datos en FTP. De manera similar, los firewalls pueden bloquear solicitudes de conexión entrantes para la conexión de datos.

Para abordar estos desafíos, FTP incorpora un comando PASV (Pasivo), que permite al servidor designar una dirección IP y un número de puerto para que el cliente se conecte para la transferencia de datos. Este mecanismo ayuda a sortear las restricciones impuestas por firewalls y dispositivos NAT. Además, ciertos firewalls admiten pasarelas a nivel de aplicación capaces de inspeccionar el tráfico FTP y abrir y cerrar puertos dinámicamente según sea necesario para la transferencia de datos.

Soporte de Software para FTP

Con el tiempo, las transferencias de archivos FTP se han facilitado a través de varias aplicaciones de software. Inicialmente, los clientes FTP eran predominantemente interfaces de línea de comandos. Sin embargo, con los avances tecnológicos, han surgido aplicaciones de cliente FTP más amigables para el usuario. Estas aplicaciones ofrecen características como funcionalidad de arrastrar y soltar, soporte para reanudar transferencias interrumpidas e interfaces gráficas de usuario (GUI) para una navegación simplificada.

Además, muchos navegadores web han integrado funcionalidad de cliente FTP, permitiendo a los usuarios acceder directamente a los servidores FTP. Sin embargo, debido a preocupaciones de seguridad y la disminución de la prevalencia del protocolo, los principales navegadores han eliminado progresivamente el soporte para FTP.

Consideraciones de Seguridad

Aunque FTP sirve como un protocolo práctico para transferencias de archivos, sus vulnerabilidades de seguridad son una preocupación notable. Entre estas se encuentra la transmisión de credenciales de inicio de sesión y datos de archivos en texto plano, lo que lo hace susceptible a la interceptación y acceso no autorizado.

Para abordar estas deficiencias de seguridad, se han desarrollado varias alternativas seguras al FTP tradicional:

  • FTPS (FTP sobre SSL/TLS): Esta solución mejora el protocolo FTP al incorporar una capa adicional de cifrado. Al aprovechar los certificados SSL/TLS, FTPS autentica al servidor y cifra la transmisión de datos, aumentando significativamente la seguridad en comparación con el FTP simple.
  • SFTP (Protocolo de Transferencia de Archivos SSH): SFTP utiliza SSH (Secure Shell) para transferencias de archivos seguras. Al establecer una conexión cifrada entre el cliente y el servidor, SFTP asegura la integridad y confidencialidad de los datos transferidos. A diferencia de FTPS, SFTP simplifica la configuración al eliminar la necesidad de números de puerto separados para las conexiones de control y datos.

FTP vs. HTTP: Diferencias Clave

Si bien tanto FTP como HTTP se utilizan para transferir archivos a través de internet, difieren en varios aspectos clave.

CaracterísticaFTPHTTP
ConexiónCanales de control y datos separadosConexión única para control y datos
EstadoMantenimiento de estado (información de sesión)Stateless (cada solicitud es independiente)
AdecuaciónArchivos grandes, transferencias reanudablesArchivos más pequeños, simplicidad y facilidad de uso
SeguridadMenos seguro (FTP tradicional)Puede ser asegurado con HTTPS
CachéNoSí (mejora el rendimiento para repeticiones)

Referencias

  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