Es uno más seguro que el otro. He escuchado que es difícil hacer que los protocolos FTP bajen de nivel. Entonces, ¿es más segura la implementación de SSL en FTP que a través de FTP?
FTP sobre SSL debería tener en teoría la misma seguridad que HTTP sobre SSL. Pero en la práctica, probablemente este no sea el caso:
- HTTPS se utiliza con mayor frecuencia en los navegadores. Para lidiar con servidores rotos, los navegadores implementan la degradación de SSL si la conexión falla. Tenga en cuenta que este comportamiento no es inherente a HTTPS, sino a una implementación específica dentro de los navegadores. La implementación de HTTPS fuera de los navegadores generalmente no se lleva a la baja de SSL y en su lugar falla en el primer error, al igual que la implementación de SSL en los clientes FTPS.
- FTPS no se utiliza ampliamente. Y si se usa, a menudo con certificados autofirmados o rotos (como certificados de cadena faltantes, falta de coincidencia del nombre de host ...). Los clientes FTPS tienden a ignorar los errores de certificado o permiten que el usuario continúe fácilmente sin la validación adecuada. Algunos incluso no verifican el certificado en absoluto o hacen verificaciones incompletas (como no verificar el nombre en el certificado). En contraste, los navegadores actuales a menudo presentan advertencias sobre errores de certificados que son difíciles de omitir. En cambio, otras aplicaciones que usan HTTPS a menudo tienen los mismos problemas que los clientes FTPS, pero se implementan lentamente en las comprobaciones adecuadas que están habilitadas de forma predeterminada.
- FTPS tiene varios grados de seguridad. El mejor modo es cifrar el control y el canal de datos, pero esto puede entrar en conflicto con los ayudantes de protocolo en los middleboxes (como firewalls o enrutadores NAT) que necesitan verificar o reescribir las respuestas a
PASV
/ EPSV
o PORT
/ EPRT
comandos, para que los puertos necesarios se puedan abrir en el middlebox. Por lo tanto, FTPS puede degradar la conexión de control de SSL a simple nuevamente (con el comando CCC
) y, a partir de ese momento, todo el tráfico en la conexión de control ya no estará cifrado. Esto abre el camino para ataques de intermediarios que incluso podrían intentar degradar los canales de datos a texto sin formato devolviendo un código de error al comando PROT P
que se usa para configurar un canal de datos cifrado.
En resumen, creo que HTTPS es más seguro en la práctica, incluso si los navegadores degradan los protocolos SSL en caso de errores.