What is FTPS?
FTPS (FTP Secure, also called FTP over TLS) is an extension of the File Transfer Protocol (FTP) that encrypts the control and data connections with TLS and lets the server identify itself with an X.509 certificate. The standard is defined in RFC 4217 (October 2005), which builds on the general FTP security extensions of RFC 2228 (1997). FTPS keeps the structure of FTP, with text commands, a separate data connection per transfer and active or passive mode, but ensures that passwords and files no longer travel in readable form across a TCP/IP network.
In OT environments, FTPS matters mainly when a device or application supports FTP variants but not SFTP. Many PLC communication modules and older software packages fall into that category.
π§ How does FTPS work?
In the common explicit variant, the session starts as an ordinary FTP connection on TCP port 21, after which the client asks for encryption:
-
Connect - the client opens the control connection to port 21 and receives the greeting
code
220. -
AUTH TLS- the client requests TLS; the server replies234if it accepts the request. The TLS handshake follows. - Verify the server certificate - the client checks the serverβs X.509 certificate. Only if it is valid can the client be sure it is talking to the intended server.
-
Log in -
USERandPASSnow travel through the encrypted tunnel. Optionally, the server can also require a client certificate. -
PBSZ 0andPROT P- these two commands switch on protection of the data connections.PROT P(Private) means every data connection is also set up with TLS;PROT C(Clear) leaves the data unencrypted. -
Transfer - each
RETR,STORorLISTopens a new data connection with its own TLS handshake.
According to RFC 4217, data connections start in Clear by default. A client that forgets PROT P therefore encrypts the password but not the files. The Safe (S) and Confidential (E) protection levels from RFC 2228 are not used with TLS.
π What is the difference between explicit and implicit FTPS?
| Feature | Explicit FTPS (FTPES) | Implicit FTPS |
|---|---|---|
| TLS starts | After the AUTH TLS command |
From the very first byte |
| Control port | 21 (same as FTP) | 990 |
| Standard | RFC 4217 (2005) | No RFC, older practice; IANA reserves 990 and 989 |
| Fallback to plaintext | Possible if server or client does not enforce encryption | Impossible, no TLS means no connection |
| Support | Virtually all modern clients and servers | Many servers, often as an option that is off by default |
| Advice | Preferred, with mandatory TLS | Only for existing integrations that require it |
The drawback of explicit FTPS is that a misconfigured server also accepts plain FTP logins. Always
configure the server so that encryption is mandatory. In vsftpd, a widely used FTP server on Linux, this
is done with force_local_logins_ssl and force_local_data_ssl; implicit FTPS is
off by default there (implicit_ssl=NO).
π What is the difference between FTPS, SFTP and FTP?
| Feature | FTP | FTPS | SFTP |
|---|---|---|---|
| Basis | RFC 959 (1985) | FTP with TLS (RFC 4217, 2005) | Subsystem of SSH |
| Encryption | None | TLS for control and, with PROT P, data |
Everything via SSH |
| Ports | 21 plus data ports | 21 or 990, plus data ports | One port, 22 by default |
| Server identity | Not verified | X.509 certificate | SSH host key |
| Firewall-friendly | Moderate | Difficult, helper cannot read encrypted commands | Good, one connection |
| Use in OT | Phase out | Where only FTP variants are possible | Preferred for new integrations |
FTPS and SFTP have similar names but are not interchangeable: an SFTP client cannot connect to an FTPS server and vice versa. FTPS fits well in an environment that already has a PKI and certificate management; SFTP fits better where administrators already work with SSH keys. For new integrations between applications, HTTPS with a REST interface is often a third, simpler alternative.
π§± Why is FTPS difficult with firewalls and NAT?
With plain FTP, a firewall with an
FTP helper reads the serverβs PASV reply and temporarily opens the right data port. With FTPS
that reply is encrypted, so the helper sees nothing. The same applies to NAT: the server itself must put the correct external IP address in its reply.
The usual solution consists of three settings:
- Passive mode - let the client set up the data connection; active mode is barely workable behind firewalls.
-
Fixed passive port range - restrict the server to a small range, for example
50000-50100, and allow only that range through the firewall (in vsftpd with
pasv_min_portandpasv_max_port). - External address - configure the public or routed IP address on the server when it sits behind NAT.
RFC 4217 also describes the use of CCC (Clear Command Channel, originally from RFC
2228), a command that returns the control connection to plaintext after login so a firewall can read the
commands. The RFC itself warns about the security implications; in an OT network, a fixed port range is
almost always the better choice.
π Where is FTPS used in OT?
- PLC communication modules - Siemens describes in an application example how the CP 1543-1 for the S7-1500 works as an FTPS server and client. Siemens communication processors are designed for FTP and FTPS rather than SFTP, so FTPS is the encrypted option there.
- HMI and SCADA - export of recipes, alarm logs and reports to a central server.
- Data exchange with third parties - measurement data from a historian to a laboratory, grid operator or supplier, often via an FTPS server in the DMZ.
- Firmware and configurations - retrieval of files by devices that do not support SFTP.
- IT servers - Microsoft IIS and vsftpd offer FTPS built in, so existing FTP integrations can be encrypted without new software.
Because PLCs and panels in legacy systems often stay in service for twenty years or more, FTPS is in practice often the only feasible step between unencrypted FTP and a completely new interface.
π What are the risks and pitfalls of FTPS?
FTPS is only as strong as its configuration. The most common mistakes:
- No certificate validation - clients that accept any certificate, or a self-signed certificate without a pinned fingerprint, allow a Man-In-The-Middle attack and spoofing.
-
PROT Cor noPROT P- the password is protected, the files are not. Wireshark shows this immediately. - Outdated TLS versions - TLS 1.0 and 1.1 were deprecated in 2021 (RFC 8996). Older embedded FTPS implementations sometimes support nothing newer.
-
Data connection takeover - without TLS session reuse or client certificates, an
attacker could in theory hijack a data connection, similar to session hijacking. Servers such as vsftpd therefore require by default that the data connection
resumes the TLS session of the control connection (
require_ssl_reuse=YES); some clients do not support this, which results in error code522. - Weak accounts - encryption does not help against default passwords or shared accounts without access control.
IEC 62443 and ISO 27001 do not mention FTPS by name, and like other security standards they set requirements rather than prescribe protocols. IEC 62443-3-3 requires communication confidentiality (SR 4.1) and integrity (SR 3.1), and ISO 27001:2022 contains controls for information transfer (A.5.14) and the use of cryptography (A.8.24). A properly configured FTPS connection helps meet those requirements.
π οΈ How do you configure FTPS securely?
| Setting | Recommended value | Why |
|---|---|---|
| Mode | Explicit, TLS mandatory for login and data | Prevents fallback to plaintext |
| TLS version | TLS 1.3, at least TLS 1.2 | Follows the TLS guidelines of the Dutch NCSC |
| Data connection | PROT P, TLS session reuse required |
Files encrypted, no hijacking |
| Certificate | Issued by an internal or public CA, with monitored expiry date | Client can verify the server |
| Passive ports | Small fixed range, for example 100 ports | Limits the firewall rules |
CCC |
Disabled | Keeps the control connection encrypted |
| Accounts | Unique per system, no anonymous login | Least privilege |
A practical approach for an OT environment:
- Inventory - determine which devices use FTP today and whether their firmware supports FTPS, SFTP or neither.
- Choose - SFTP where possible, FTPS where only FTP variants are possible, and isolation where even FTPS is missing.
- Segment - place the FTPS server in a separate zone following the zones and conduits model and restrict traffic with network segmentation.
- Harden - disable unused functions as part of hardening and verify hashes of transferred firmware.
- Monitor - enable logging of logins and transfers and watch for expiring certificates.
For organisations covered by the Dutch Cybersecurity Act, the national implementation of NIS2, encrypted file transfer and certificate management are part of the appropriate measures for network and information security.
β Frequently asked questions
Is FTPS the same as SFTP?
No, FTPS and SFTP are two different protocols. FTPS is classic FTP with TLS encryption and X.509 certificates, whereas SFTP is a subsystem of SSH that works over a single connection on port 22.
Which ports does FTPS use?
Explicit FTPS uses TCP port 21 for the control connection, implicit FTPS uses port 990. FTPS also needs data ports, which in passive mode are usually a fixed range of high ports that the administrator sets on the server.
Is FTPS secure?
FTPS is secure when TLS 1.2 or 1.3 is mandatory, the client verifies the server certificate and the data
connection is encrypted with PROT P. With weak settings, such as accepting any certificate or
unencrypted data, FTPS offers far less protection than its name suggests.
Why does FTPS not work through my firewall?
FTPS often fails through a firewall because the firewall cannot read the encrypted commands and therefore does not know which data port to open. The solution is passive mode with a fixed port range on the server and a firewall rule for exactly that range.
What is the difference between FTPS and FTPES?
FTPES is a common name for explicit FTPS, where the connection starts on port 21 and switches to TLS with
AUTH TLS. Implicit FTPS starts TLS immediately on port 990 and is not defined in an RFC.
Should I choose FTPS or SFTP in an OT environment?
In an OT environment, SFTP is usually the first choice because it uses one port and is easy to segment. FTPS is the right choice when PLC modules, HMIs or existing applications only support FTP variants, as with many Siemens communication processors.
π In summary
FTPS secures the existing FTP protocol with TLS without changing how commands and data connections work.
That makes it a practical step for industrial equipment that does not support SFTP, but it requires
attention to certificates, PROT P, TLS versions and firewall ports.
FTPS is FTP with TLS encryption and server certificates: choose explicit FTPS with mandatory encryption, a fixed passive port range and certificate validation, and use it mainly where SFTP is not an option in OT.
