Diferenciando FTP y sFTP. Dos protocolos de intercambio de archivos
En los viejos tiempos, la única forma de crear un sitio web era hacerlo en la computadora del desarrollador y subirlo al servidor. Soluciones privativas como Microsoft FrontPage incluían su propio sistema para subir los archivos pero, requerían que el servidor contara con las extensiones apropiadas. La otra alternativa era usar un cliente FTP.
Hoy por hoy, la mayoría de los sitios web utilizan algún tipo de gestor de contenidos (que puede instalarse usando un asistente provisto por el Hosting) o algún creador de sitios web online. Esto hace que FTP y sFTP ya no sean tan usados. Sin embargo, siguen teniendo su utilidad.
Diferenciando FTP y sFTP
El Protocolo de Transferencia de Archivos (FTP) y el Protocolo de Transferencia de Archivos SSH (SFTP), al que también se conoce como Protocolo Seguro de Transferencia de Archivos, hacen muchas de las mismas cosas, pero, con algunas diferencias notables que vale la pena destacar.
Las funciones comunes son:
- Permiten el uso de un cliente con interfaz gráfica para conectar las computadoras de origen y destino.
- Es posible navegar entre los archivos de ambos equipos, modificar, borrar y transferirlos de unos a otros.
Lo que diferencia a ambos protocolos son las formas en que hacen las cosas:
FTP
El Protocolo de Transferencia de Archivos (FTP) estándar utiliza un modelo cliente-servidor que se conectan utilizando dos canales separados para mover los datos entre ellos. Estos dos canales son el canal de comandos y el canal de datos. Ninguno de los dos canales están cifrados (por defecto), esto significa que si alguien pudiera recopilar datos entre el servidor y el cliente implementando un ataque man-in-the-middle, los podría leer fácilmente. El punto débil del protocolo FTP es que los datos se envían como texto plano, lo que hace que sea muy fácil recopilar información de los datos capturados.
Un ataque man-in-the-middle es aquel en que los delincuentes informáticos interceptan la comunicación entre cliente y servidor sin ser detectado.
sFTP
El Secure Shell FTP (SFTP) utiliza un único canal como vehículo de intercambio de datos. Este canal está encriptado, además de estar protegido por una combinación de nombre de usuario y contraseña o por el uso de claves criptográficas SSH. En caso de que sea interceptada la transmisión entre el cliente y el servidor, no será posible leer los datos.
¿Cuál conviene usar?
Para elegir entre uno u otro protocolo la pregunta clave es si los datos contienen información sensible.
Para subir un sitio web que solo tenga contenido HTML, CSS y Javascript,la seguridad no es un factor clave.. Sin embargo, si se sube un gestor de contenidos como WordPress en el cual se incluyen claves de cifrado y datos de bases de datos, hay que tener cuidado.
Otro punto a tener en cuenta es que SFTP trabaja en forma más lenta que FTP debido a la seguridad incorporada en el protocolo. Los datos están encriptados, y solo se trabaja con un canal.
Al utilizar el protocolo SSH, sFTP requiere autenticación. Esto lo descarta para ser utilizado como servidor público de descarga de archivos.
El protocolo SFTP ofrece dos métodos principales para autenticar las conexiones. Uno de ellos es, al igual que en FTP, la utilización de nombre de usuario y contraseña. Sin embargo, con SFTP estas credenciales están encriptadas.
El segundo método de autenticación son las claves SSH. Para esto hay que generar primero una clave privada SSH y una clave pública. La clave pública SSH se carga en el servidor y se asocia con la cuenta. Al momento de conectarse al servidor SFTP, el software cliente transmitirá su clave pública para la autenticación. Si la clave pública coincide con la clave privada, junto con cualquier usuario o contraseña suministrada, entonces la autenticación tendrá éxito.
De más está decir que no son los únicos protocolos que existen. Este es un artículo introductorio que servirá de base para los que siguen.
Existen muchos clientes FTP y sFTP en los repositorios, y ya hablaremos más extensamente de ellos. Mi preferido es FileZila.