Fortinet white logo
Fortinet white logo

Administration Guide

FortiGate encryption algorithm cipher suites

FortiGate encryption algorithm cipher suites

FortiGates use SSL/TLS encryption for HTTPS and SSH administrative access, and SSL VPN remote access. When establishing an SSL/TLS or SSH connection, you can control the encryption level and the ciphers that are used in order to control the security level.

HTTPS access

HTTP administrative access encryption is controlled using the following commands:

config system global
    set strong-crypto {enable | disable}
    set admin-https-ssl-versions {tlsv1-1 tlsv1-2 tlsv1-3}
    set admin-https-ssl-ciphersuites {<cipher_1> ... <cipher_n>}
    set admin-https-ssl-banned-ciphers {<cipher_1> ... <cipher_n>}
end

When strong encryption is enabled, only TLS 1.2 and TLS 1.3 are allowed. If strong encryption is then disabled, TLS 1.1 has to be manually enabled.

Setting admin-https-ssl-ciphersuites controls which cipher suites are offered in TLS 1.3. TLS 1.2 and lower are not affected by this command. To disable all TLS 1.3 cipher suites, remove TLS1-3 from admin-https-ssl-versions.

Setting admin-https-ssl-banned-ciphers controls which cipher technologies will not be offered for TLS 1.2 and lower.

Specific cipher suites are supported by each TLS version:

TLS version

Supported cipher suites

TLS 1.11

ECDHE-RSA-AES256-SHA1

AES256-SHA1

ECDHE-RSA-AES128-SHA1

AES128-SHA1

TLS 1.2

ECDHE-RSA-AES256-GCM-SHA384

AES256-GCM-SHA3841

ECDHE-RSA-AES128-GCM-SHA256

AES128-GCM-SHA2561

ECDHE-RSA-CHACHA20-POLY1305

AES256-SHA256

ECDHE-RSA-AES256-SHA384

AES128-SHA256

ECDHE-RSA-AES128-SHA256

AES256-SHA1

ECDHE-RSA-AES256-SHA1

AES128-SHA1

ECDHE-RSA-AES128-SHA1

TLS 1.3

TLS-AES-128-GCM-SHA256

TLS-AES-128-CCM-8-SHA256

TLS-AES-256-GCM-SHA384

TLS-CHACHA20-POLY1305-SHA256

TLS-AES-128-CCM-SHA256

1 Disabled if strong encryption (strong-crypto) is enabled.

SSH access

SSH access encryption is controlled using the following command:

config system global
    set admin-ssh-v1 {enable | disable}
    set strong-crypto {enable | disable} 
    set ssh-enc-algo <algo_1> [<algo_2> ... <algo_n>]
    set ssh-kex-algo <algo_1> [<algo_2> ... <algo_n>]
    set ssh-mac-algo <algo_1> [<algo_2> ... <algo_n>]
end

The algorithms available when configuring set ssh-enc-algo are affected by set strong-crypto as follows:

Strong encryption setting

Supported ciphers

Enabled

chacha20-poly1305@openssh.com

aes256-ctr

aes256-gcm@openssh.com

Disabled

chacha20-poly1305@openssh.com aes128-ctr
aes192-ctr aes256-ctr
arcfour256 arcfour128
aes128-cbc 3des-cbc

blowfish-cbc

cast128-cbc

aes192-cbc

aes256-cbc

arcfour

rijndael-cbc@lysator.liu.se

aes128-gcm@openssh.com

aes256-gcm@openssh.com

The following options are available for the ssh-kex-algo algorithm based on the strong encryption setting:

Strong encryption setting

Supported ciphers

Enabled

diffie-hellman-group-exchange-sha256

curve25519-sha256@libssh.org

ecdh-sha2-nistp256

ecdh-sha2-nistp384

ecdh-sha2-nistp521

Disabled

diffie-hellman-group14-sha1

diffie-hellman-group-exchange-sha1

diffie-hellman-group-exchange-sha256

curve25519-sha256@libssh.org

ecdh-sha2-nistp256

ecdh-sha2-nistp384

ecdh-sha2-nistp521

The following options are available for the ssh-mac-algo algorithm based on the strong encryption setting:

Strong encryption setting

Supported ciphers

Enabled

hmac-sha2-256

hmac-sha2-256-etm@openssh.com

hmac-sha2-512

hmac-sha2-512-etm@openssh.com

Disabled

hmac-md5

hmac-md5-etm@openssh.com

hmac-md5-96

hmac-md5-96-etm@openssh.com

hmac-sha1

hmac-sha1-etm@openssh.com

hmac-sha2-256

hmac-sha2-256-etm@openssh.com

hmac-sha2-512

hmac-sha2-512-etm@openssh.com

hmac-ripemd160

hmac-ripemd160@openssh.com

hmac-ripemd160-etm@openssh.com

umac-64@openssh.com

umac-128@openssh.com

umac-64-etm@openssh.com

umac-128-etm@openssh.com

SSL VPN

For SSL VPN connections, the TLS versions and cipher suites are controlled using the following commands:

config vpn ssl setting
    set algorithm {high | medium | low}
    set ssl-max-proto-ver {tls1-0 | tls1-1 | tls1-2 | tls1-3}
    set ssl-min-proto-ver {tls1-0 | tls1-1 | tls1-2 | tls1-3}
    set ciphersuite {TLS-AES-128-GCM-SHA256 TLS-AES-256-GCM-SHA384 TLS-CHACHA20-POLY1305-SHA256 TLS-AES-128-CCM-SHA256 TLS-AES-128-CCM-8-SHA256}
end

Cipher suites (ciphersuite) can only be selected when the SSL maximum version is TLS 1.3.

When the SSL VPN security level (algorithm) is set to high, only high levels are allowed. When it is set to medium, high and medium levels are allowed. When it is set to low, any level is allowed.

The strong encryption (strong-crypto) command has no effect on the SSL VPN encryption level or ciphers.

Specific cipher suites are supported by each TLS version:

TLS version

Supported cipher suites

TLS 1.0

ECDHE-RSA-AES256-SHA

DHE-RSA-CAMELLIA128-SHA

DHE-RSA-AES256-SHA

AES128-SHA

DHE-RSA-CAMELLIA256-SHA

SEED-SHA1

AES256-SHA

CAMELLIA128-SHA

CAMELLIA256-SHA

ECDHE-RSA-DES-CBC3-SHA1

ECDHE-RSA-AES128-SHA

EDH-RSA-DES-CBC3-SHA1

DHE-RSA-AES128-SHA1

DES-CBC3-SHA1

DHE-RSA-SEED-SHA

TLS 1.1

ECDHE-RSA-AES256-SHA

DHE-RSA-CAMELLIA128-SHA

DHE-RSA-AES256-SHA

AES128-SHA

DHE-RSA-CAMELLIA256-SHA

SEED-SHA1

AES256-SHA

CAMELLIA128-SHA

CAMELLIA256-SHA

ECDHE-RSA-DES-CBC3-SHA1

ECDHE-RSA-AES128-SHA

EDH-RSA-DES-CBC3-SHA1

DHE-RSA-AES128-SHA

DES-CBC3-SHA1

DHE-RSA-SEED-SHA1

TLS 1.2

ECDHE-RSA-AES256-GCM-SHA384

ECDHE-RSA-AES128-SHA

ECDHE-RSA-AES256-SHA384

DHE-RSA-AES128-GCM-SHA256

ECDHE-RSA-AES256-SHA

DHE-RSA-AES128-CCM8

DHE-RSA-AES256-GCM-SHA384

DHE-RSA-AES128-CCM

ECDHE-RSA-CHACHA20-POLY1305

AES128-CCM8

DHE-RSA-CHACHA20-POLY1305

AES128-CCM

DHE-RSA-AES256-CCM8

DHE-RSA-AES128-SHA256

DHE-RSA-AES256-CCM

DHE-RSA-AES128-SHA

DHE-RSA-AES256-SHA256

ECDHE-RSA-CAMELLIA128-SHA256

DHE-RSA-AES256-SHA

DHE-RSA-CAMELLIA128-SHA256

ECDHE-RSA-CAMELLIA256-SHA384

DHE-RSA-SEED-SHA1

DHE-RSA-CAMELLIA256-SHA256

DHE-RSA-CAMELLIA128-SHA

DHE-RSA-CAMELLIA256-SHA

AES128-GCM-SHA256

AES256-GCM-SHA384

AES128-SHA256

AES256-CCM8

AES128-SHA

AES256-CCM

CAMELLIA128-SHA256

AES256-SHA256

SEED-SHA1

AES256-SHA

CAMELLIA128-SHA

CAMELLIA256-SHA256

ARIA128-GCM-SHA256

CAMELLIA256-SHA

DHE-RSA-ARIA128-GCM-SHA256

ARIA256-GCM-SHA384

ECDHE-ARIA128-GCM-SHA256

DHE-RSA-ARIA256-GCM-SHA384

ECDHE-RSA-AES256-GCM-SHA384

ECDHE-ARIA256-GCM-SHA384

ECDHE-RSA-DES-CBC3-SHA1

ECDHE-RSA-AES128-GCM-SHA256

EDH-RSA-DES-CBC3-SHA1

ECDHE-RSA-AES128-SHA256

DES-CBC3-SHA1

TLS 1.3

TLS_AES_256_GCM_SHA384

TLS_AES_128_CCM_SHA256

TLS_CHACHA20_POLY1305_SHA256

TLS_AES_128_CCM_8_SHA256

TLS_AES_128_GCM_SHA256

1 This cipher is not available when the SSL VPN security level (algorithm) is set to high.

FortiGate encryption algorithm cipher suites

FortiGate encryption algorithm cipher suites

FortiGates use SSL/TLS encryption for HTTPS and SSH administrative access, and SSL VPN remote access. When establishing an SSL/TLS or SSH connection, you can control the encryption level and the ciphers that are used in order to control the security level.

HTTPS access

HTTP administrative access encryption is controlled using the following commands:

config system global
    set strong-crypto {enable | disable}
    set admin-https-ssl-versions {tlsv1-1 tlsv1-2 tlsv1-3}
    set admin-https-ssl-ciphersuites {<cipher_1> ... <cipher_n>}
    set admin-https-ssl-banned-ciphers {<cipher_1> ... <cipher_n>}
end

When strong encryption is enabled, only TLS 1.2 and TLS 1.3 are allowed. If strong encryption is then disabled, TLS 1.1 has to be manually enabled.

Setting admin-https-ssl-ciphersuites controls which cipher suites are offered in TLS 1.3. TLS 1.2 and lower are not affected by this command. To disable all TLS 1.3 cipher suites, remove TLS1-3 from admin-https-ssl-versions.

Setting admin-https-ssl-banned-ciphers controls which cipher technologies will not be offered for TLS 1.2 and lower.

Specific cipher suites are supported by each TLS version:

TLS version

Supported cipher suites

TLS 1.11

ECDHE-RSA-AES256-SHA1

AES256-SHA1

ECDHE-RSA-AES128-SHA1

AES128-SHA1

TLS 1.2

ECDHE-RSA-AES256-GCM-SHA384

AES256-GCM-SHA3841

ECDHE-RSA-AES128-GCM-SHA256

AES128-GCM-SHA2561

ECDHE-RSA-CHACHA20-POLY1305

AES256-SHA256

ECDHE-RSA-AES256-SHA384

AES128-SHA256

ECDHE-RSA-AES128-SHA256

AES256-SHA1

ECDHE-RSA-AES256-SHA1

AES128-SHA1

ECDHE-RSA-AES128-SHA1

TLS 1.3

TLS-AES-128-GCM-SHA256

TLS-AES-128-CCM-8-SHA256

TLS-AES-256-GCM-SHA384

TLS-CHACHA20-POLY1305-SHA256

TLS-AES-128-CCM-SHA256

1 Disabled if strong encryption (strong-crypto) is enabled.

SSH access

SSH access encryption is controlled using the following command:

config system global
    set admin-ssh-v1 {enable | disable}
    set strong-crypto {enable | disable} 
    set ssh-enc-algo <algo_1> [<algo_2> ... <algo_n>]
    set ssh-kex-algo <algo_1> [<algo_2> ... <algo_n>]
    set ssh-mac-algo <algo_1> [<algo_2> ... <algo_n>]
end

The algorithms available when configuring set ssh-enc-algo are affected by set strong-crypto as follows:

Strong encryption setting

Supported ciphers

Enabled

chacha20-poly1305@openssh.com

aes256-ctr

aes256-gcm@openssh.com

Disabled

chacha20-poly1305@openssh.com aes128-ctr
aes192-ctr aes256-ctr
arcfour256 arcfour128
aes128-cbc 3des-cbc

blowfish-cbc

cast128-cbc

aes192-cbc

aes256-cbc

arcfour

rijndael-cbc@lysator.liu.se

aes128-gcm@openssh.com

aes256-gcm@openssh.com

The following options are available for the ssh-kex-algo algorithm based on the strong encryption setting:

Strong encryption setting

Supported ciphers

Enabled

diffie-hellman-group-exchange-sha256

curve25519-sha256@libssh.org

ecdh-sha2-nistp256

ecdh-sha2-nistp384

ecdh-sha2-nistp521

Disabled

diffie-hellman-group14-sha1

diffie-hellman-group-exchange-sha1

diffie-hellman-group-exchange-sha256

curve25519-sha256@libssh.org

ecdh-sha2-nistp256

ecdh-sha2-nistp384

ecdh-sha2-nistp521

The following options are available for the ssh-mac-algo algorithm based on the strong encryption setting:

Strong encryption setting

Supported ciphers

Enabled

hmac-sha2-256

hmac-sha2-256-etm@openssh.com

hmac-sha2-512

hmac-sha2-512-etm@openssh.com

Disabled

hmac-md5

hmac-md5-etm@openssh.com

hmac-md5-96

hmac-md5-96-etm@openssh.com

hmac-sha1

hmac-sha1-etm@openssh.com

hmac-sha2-256

hmac-sha2-256-etm@openssh.com

hmac-sha2-512

hmac-sha2-512-etm@openssh.com

hmac-ripemd160

hmac-ripemd160@openssh.com

hmac-ripemd160-etm@openssh.com

umac-64@openssh.com

umac-128@openssh.com

umac-64-etm@openssh.com

umac-128-etm@openssh.com

SSL VPN

For SSL VPN connections, the TLS versions and cipher suites are controlled using the following commands:

config vpn ssl setting
    set algorithm {high | medium | low}
    set ssl-max-proto-ver {tls1-0 | tls1-1 | tls1-2 | tls1-3}
    set ssl-min-proto-ver {tls1-0 | tls1-1 | tls1-2 | tls1-3}
    set ciphersuite {TLS-AES-128-GCM-SHA256 TLS-AES-256-GCM-SHA384 TLS-CHACHA20-POLY1305-SHA256 TLS-AES-128-CCM-SHA256 TLS-AES-128-CCM-8-SHA256}
end

Cipher suites (ciphersuite) can only be selected when the SSL maximum version is TLS 1.3.

When the SSL VPN security level (algorithm) is set to high, only high levels are allowed. When it is set to medium, high and medium levels are allowed. When it is set to low, any level is allowed.

The strong encryption (strong-crypto) command has no effect on the SSL VPN encryption level or ciphers.

Specific cipher suites are supported by each TLS version:

TLS version

Supported cipher suites

TLS 1.0

ECDHE-RSA-AES256-SHA

DHE-RSA-CAMELLIA128-SHA

DHE-RSA-AES256-SHA

AES128-SHA

DHE-RSA-CAMELLIA256-SHA

SEED-SHA1

AES256-SHA

CAMELLIA128-SHA

CAMELLIA256-SHA

ECDHE-RSA-DES-CBC3-SHA1

ECDHE-RSA-AES128-SHA

EDH-RSA-DES-CBC3-SHA1

DHE-RSA-AES128-SHA1

DES-CBC3-SHA1

DHE-RSA-SEED-SHA

TLS 1.1

ECDHE-RSA-AES256-SHA

DHE-RSA-CAMELLIA128-SHA

DHE-RSA-AES256-SHA

AES128-SHA

DHE-RSA-CAMELLIA256-SHA

SEED-SHA1

AES256-SHA

CAMELLIA128-SHA

CAMELLIA256-SHA

ECDHE-RSA-DES-CBC3-SHA1

ECDHE-RSA-AES128-SHA

EDH-RSA-DES-CBC3-SHA1

DHE-RSA-AES128-SHA

DES-CBC3-SHA1

DHE-RSA-SEED-SHA1

TLS 1.2

ECDHE-RSA-AES256-GCM-SHA384

ECDHE-RSA-AES128-SHA

ECDHE-RSA-AES256-SHA384

DHE-RSA-AES128-GCM-SHA256

ECDHE-RSA-AES256-SHA

DHE-RSA-AES128-CCM8

DHE-RSA-AES256-GCM-SHA384

DHE-RSA-AES128-CCM

ECDHE-RSA-CHACHA20-POLY1305

AES128-CCM8

DHE-RSA-CHACHA20-POLY1305

AES128-CCM

DHE-RSA-AES256-CCM8

DHE-RSA-AES128-SHA256

DHE-RSA-AES256-CCM

DHE-RSA-AES128-SHA

DHE-RSA-AES256-SHA256

ECDHE-RSA-CAMELLIA128-SHA256

DHE-RSA-AES256-SHA

DHE-RSA-CAMELLIA128-SHA256

ECDHE-RSA-CAMELLIA256-SHA384

DHE-RSA-SEED-SHA1

DHE-RSA-CAMELLIA256-SHA256

DHE-RSA-CAMELLIA128-SHA

DHE-RSA-CAMELLIA256-SHA

AES128-GCM-SHA256

AES256-GCM-SHA384

AES128-SHA256

AES256-CCM8

AES128-SHA

AES256-CCM

CAMELLIA128-SHA256

AES256-SHA256

SEED-SHA1

AES256-SHA

CAMELLIA128-SHA

CAMELLIA256-SHA256

ARIA128-GCM-SHA256

CAMELLIA256-SHA

DHE-RSA-ARIA128-GCM-SHA256

ARIA256-GCM-SHA384

ECDHE-ARIA128-GCM-SHA256

DHE-RSA-ARIA256-GCM-SHA384

ECDHE-RSA-AES256-GCM-SHA384

ECDHE-ARIA256-GCM-SHA384

ECDHE-RSA-DES-CBC3-SHA1

ECDHE-RSA-AES128-GCM-SHA256

EDH-RSA-DES-CBC3-SHA1

ECDHE-RSA-AES128-SHA256

DES-CBC3-SHA1

TLS 1.3

TLS_AES_256_GCM_SHA384

TLS_AES_128_CCM_SHA256

TLS_CHACHA20_POLY1305_SHA256

TLS_AES_128_CCM_8_SHA256

TLS_AES_128_GCM_SHA256

1 This cipher is not available when the SSL VPN security level (algorithm) is set to high.