Existem duas maneiras pelas quais uma sessão FTPS pode ser estabelecida: explícita (também chamada de FTPES) e implícita.
Ambos executam a mesma coisa (FTP sobre SSL), mas variam em como a conexão é iniciada.
Explícito: O cliente se conecta à porta FTP padrão (21) com uma conexão FTP regular e, em seguida, um comando é enviado pelo cliente solicitando a atualização da conexão com SSL, permitindo a conexão para uma sessão regular de FTP, se solicitado pelo cliente.
Implícito: O cliente se conecta à porta padrão 990 e uma sessão SSL é estabelecida assim que o cliente se conecta ao servidor.
Toda a sessão é criptografada e somente sessões SSL são permitidas.
Editar:
O diagrama abaixo (de: globalscape.com ) ilustra bem as diferenças:
Paraqualescolher,bemistodependedeseusrequirments.Vejaosdoistrechosabaixo:
BothImplicitandExplicitFTPSoffercomparablelevelsofencryption(assumingthatwithExplicitFTPSyouchoosetheoptiontoencryptboththedataandcontrolchannels).
Fromapracticalstandpoint,ExplicitFTPSofferssomeadvantagesthatmakeitasuperiorchoice.Forexample:
Itisthestandard,supportedversionofFTPSandismorelikelytobewidelysupportedwellintothefutureItusesthesameportsasplainFTP,sorequiresnoadditionalfirewallconfiguration(assumingyourfirewallisalreadyconfiguredforplainFTP).
(Fonte: página da Web do Robo-FTP :)
Implicit FTPS consumes a lot of network bandwidth and computational
resources because encryption happens in both the command and data
channels. In a scenario where a user wants to upload non-confidential
files to the FTPS server, an explicit FTPS connection would be used
instead of an implicit FTPS connection.
In Explicit FTPS, the client directly requests security from the FTPS
server. This is an optional request. If a client does not request
security, the FTPS server can either allow the client to continue in
unsecure mode or refuse or limit the connection.
Explicit FTPS can be used in scenarios where the requirement is to
secure only the command channel (which carries the commands and user
authentication,) and not the data channel (which carries
non-confidential FTP data). Port 21 is the default port used by the
FTP server to communicate with the client. This allows both unsecure
FTP and secure FTPS clients to connect to the FTPS server.
For organizations adhering to federal regulatory compliance standards,
implicit FTPS is recommended.
(Fonte: Página web do Serv-U )