6.1. Supported Cryptography

This page describes the cryptography method, protocols, and algorithms supported by SFTPPlus.

6.1.1. SSL/TLS protocol family

The secure file transfer services implemented in FTPS and HTTPS are based on the Transport Layer Security (TLS) protocol, which is the successor of the Secure Sockets Layer (SSL) protocol.

6.1.1.1. SSL/TLS versions

  • SSL v3 (considered not secure)
  • TLS v1.0
  • TLS v1.1 (for OpenSSL 1.0.1 or newer)
  • TLS v1.2 (for OpenSSL 1.0.1 or newer)

Note

SSL version 2 is not supported and it was officially deprecated in 2011 by the RFC 6176.

SSL version 3 is supported in order to provide backward compatibility for older clients, but it is not recommended for new deployments. It was officially deprecated in June 2015 by the RFC 7568.

6.1.1.3. Public-key cryptographic systems

  • DSS/DSA
  • RSA

Note

DSS/DSA key support is provided for backward compatibility.

Newer deployments should be based on RSA, use key size of 4096 or greater.

DSS/DSA key support is scheduled to be removed/deprecated with the future release of TLS v1.3.

6.1.1.4. Hash functions

  • MD5
  • SHA-1 (FIPS 140-2 compatible)
  • SHA-2 (for OpenSSL 0.9.8 or newer) (FIPS 140-2 compatible)

Note

All modern operating systems, still supported by their vendors, provide newer versions of OpenSSL with support for SHA-2. We are aware of Solaris 10 and Red Hat Enterprise Linux 4 which don’t have SHA-2 support.

6.1.1.5. Encryption algorithms

  • 3DES (FIPS 140-2 compatible)
  • AES 128 and AES 256 (FIPS 140-2 compatible)
  • RC4
  • Blowfish

6.1.2. SSH protocol family

Only SSH version 2 is supported.

SFTP is implemented based on draft version 3.

SCP is not a standard protocol, therefore it was implemented based on the public source code of OpenSSH’s implementation.

6.1.2.1. Public-key cryptographic systems

Here is the list of supported public-key cryptographic systems, ordered on the preference of SFTPPlus during the negotiation phase:

  • RSA
  • DSS/DSA

Note

Newer deployments should be based on RSA with key size of 4096 or greater.

6.1.2.2. SSH Key Exchange

Here is the list of supported SSH key exchanges, ordered on the preference of SFTPPlus during the negotiation phase:

  • diffie-hellman-group-exchange-sha256 (FIPS 140-2 compatible)
  • diffie-hellman-group-exchange-sha1 (FIPS 140-2 compatible)
  • diffie-hellman-group14-sha1 (FIPS 140-2 compatible)
  • diffie-hellman-group1-sha1 (FIPS 140-2 compatible)

6.1.2.3. Keyed-hash message authentication code (HMAC)

Here is the list of supported HMAC, ordered on the preference of SFTPPlus during the negotiation phase:

  • hmac-sha2-256 (FIPS 140-2 compatible)
  • hmac-sha1 (FIPS 140-2 compatible)
  • hmac-md5

6.1.2.4. Symmetric encryption algorithms

Here is the list of supported symmetric encryption algorithms, ordered on the preference of SFTPPlus during the negotiation phase:

  • aes256-ctr, aes256-cbc, aes192-ctr, aes192-cbc, aes128-ctr, aes128-cbc (FIPS 140-2 compatible)
  • cast128-ctr, cast128-cbc
  • blowfish-ctr, blowfish-cbc
  • 3des-ctr, 3des-cbc (FIPS 140-2 compatible)

6.1.3. FIPS 140-2 complaince

While SFTPPlus is not FIPS 140-2 certified and does not have a certification number, it can be configured to run with a set of ciphers and cryptographic algorithms that are complaint to the FIPS 140-2 standard.

We believe that we have followed the requirements laid out in the FIPS 140-2 computer security standard for Security Level 1 and that SFTPPlus meets those requirements.