En Defensa de FTP


FTP es uno de los protocolos de internet atacados con mayor ferocidad en los últimos tiempos. En el siglo XXI ya no hay margen para un sistema tan “inseguro” como FTP, y los grandes navegadores llevan queriendo eliminarlo de su repertorio de soporte desde hace casi un lustro.

Pero me gustaría romper una lanza en favor de FTP, aunque eso suponga ir contra corriente de las tendencias informáticas actuales. FTP es un protocolo cuya transferencia de datos se produce en canales inseguros, como no podía ser de otra forma ya que se inventó hace más de 45 años. Sin embargo eso no supone demasiados problemas de seguridad e incluso puede verse como una mejora de la seguridad si se hace adecuadamente. Que el canal de transmisión no sea seguro no quiere decir que los archivos transferidos sean inseguros. De hecho, APT utiliza habitualmente direcciones http://, igualmente inseguras, porque verifica la autenticidad e integridad de los archivos de forma paralela a la transmisión mediante un mecanismo PGP.

En mi opinión PGP es más seguro que TLS porque no depende de autoridades de certificación externas que validen la cadena de confianza hasta llegar a la clave raíz. Sólo en el caso de claves SSL autofirmadas, la seguridad de sendos protocolos se equiparan.

Por ejemplo, la última versión estable de Ubuntu se encuentra en el servidor FTP ftp://releases.ubuntu.com/releases/18.04.1. Tendríamos que bajar el hash del archivo y su respectiva firma

Para verificar que la imagen .iso que hemos descargado ha sido firmada por Canonical, tenemos que acudir a gpg. La clave pública de descargas de Canonical se encuentra instalada por defecto en Ubuntu, como es obvio, en el directorio /etc/apt/trusted.gpg.d/ubuntu-keyring-2012-cdimage.gpg. Si no queremos importarla a nuestro llavero personal de gpg, ejecutamos directamente

gpg --no-default-keyring --keyring /etc/apt/trusted.gpg.d/ubuntu-keyring-2012-cdimage.gpg --verify SHA256SUMS.gpg SHA256SUMS

que verifica la autenticidad del hash de la imagen.

gpg: Firmado el jue 26 jul 2018 18:56:03 CEST
gpg:                usando RSA clave D94AA3F0EFE21092
gpg: Firma correcta de "Ubuntu CD Image Automatic Signing Key (2012) <[email protected]>" [desconocido]

Con el siguiente comando ya podemos comparar que el hash firmado coincide con el de la imagen que nos hemos descargado por las aguas turbulentas e infestadas de MitMs de FTP.

sha256sum -c SHA256SUMS 2>&1

Nadie dijo que fuera fácil pero se podría programar un script muy sencillo que automatizase estas tareas. En todo el proceso no hay inseguridad por ninguna parte y me temo que se utiliza a aquella como excusa barata para abandonar proyectos que dejan de interesar a los desarrolladores. Unos programadores que por vagancia o desidia tampoco ofrecen alternativas viables como la implementación de FTPS. De todos modos, en la actualidad se está perdiendo el espíritu original de UNIX materializado en la famosa cita de Terry Lambert: “It is not UNIX’s job to stop you from shooting your foot. If you so choose to do so, then it is UNIX’s job to deliver Mr. Bullet to Mr Foot in the most efficient way it knows”. Todo ello en favor de los noobs que utilizan estos sistemas que necesitan ser a prueba de idiotas.