Use the TLS Profile to configure a profile for implementing the TLS protocol for SIP over TLS. A TLS profile is assigned to the SIP signaling port and controls behavior of all TLS connections established on that signaling port. An instance of a TLS profile called defaultTlsProfile is present by default, and is used by default by each SIP signaling port; however, additional TLS profile instances may be created and used instead. 

Note

The settings within the default TLS profile are editable. Also, you must set the supported transport protocols on the SIP signaling port to allow SIP over TLS.



Note

If a zone's sipSigPort is configured for transportProtocolsAllowedsip-tls-tcp, the SBC increments the configured portNumber by 1 and uses it as the new port number for SIP over TLS signaling. The SBC then opens a TCP socket for SIP over TLS for the new TCP port number.

Example: When sipSigPort is configured with a portNumber of 5060 and transportProtocolsAllowed = sip-tls-tcp, the SBC listens on TCP port 5061 for SIP over TLS.

Command Syntax

% set profiles security tlsProfile <profile name> 
	acceptableCertValidationErrors <invalidPurpose | none>	
	allowedRoles <clientandserver | server> 
	appAuthTimer <1-60 seconds> 
	authClient <false | true> 
	cipherSuite1 <cipher suite> 
	cipherSuite2 <cipher suite> 
	cipherSuite3 <cipher suite> 
	clientCertName <name> 
    handshakeTimer <1-60 seconds> 
    hashType <md5 | sha1 | sha224 | sha256 | sha384 | sha512>
	ocspProfileName <name>
 	peerCertValidate <false | true> 
	peerNameVerify <disabled | enabled>
	serverCertName <name> 
	sessionResumpTimer <0-86400 seconds>
	suppressEmptyFragments <disabled | enabled>
	v1_0 <disabled | enabled>
    v1_1 <disabled | enabled>
    v1_2 <disabled | enabled>
 	v1_3 <disabled | enabled>

Command Parameters

The TLS Profile Parameters are as shown below:

Parameter

Length/Range

Description

tlsProfile

1-23

<name> - Name assigned to this Transport Layer Security (TLS) profile.

For further details, refer to: SBC Provisioning Limits

acceptableCertValidationErrorsN/A

Use this parameter to specify if certificate chain validation errors are acceptable while validating the peer certificate.

  • invalidPurpose 
  • none (default) 

allowedRoles

N/A

Allowed TLS roles for this TLS profile.

  • clientandserver – (default) Choose to select both a TLS client and server role, depending on the request direction. This is primarily for peering applications.
  • server – The SBC will only be a TLS server. This is primarily for access applications.

appAuthTimer

1-60

The higher layer authentication timer in seconds. (default = 5).

authClient

N/A

Indicates whether or not a TLS client is forced to authenticate itself within TLS. 

  • false
  • true (default)

cipherSuite1

N/A

Use this parameter to specify the first TLS Cipher Suite choice for this profile.

(See Supported TLS/DTLS Crypto Suites table below for the list of cipher suites)

cipherSuite2

N/A

Use this optional parameter to specify the second TLS Cipher Suite choice for this profile.

(See Supported TLS/DTLS Crypto Suites table below for the list of cipher suites)

cipherSuite3

N/A

Use this optional parameter to specify the third TLS Cipher Suite choice for this profile.

(See Supported TLS/DTLS Crypto Suites table below for the list of cipher suites)

clientCertName

1-23

The name of the default Client Certificate to be used by this TLS profile, created using the SECURITY PKI configuration object.

handshakeTimer

1-60

The time (in seconds) in which the TLS handshake must be completed. The timer starts when the TCP connection is established. (default = 5)

hashType N/A

The type of TLS hash function allowed for TLS sessions governed by the specified TLS profile. (default= Sha1).

  • Md5
  • Sha1 
  • Sha224
  • Sha256
  • Sha384
  • Sha512
ocspProfileName1-23

Name of OCSP profile object referenced by TLS profile.

peerCertValidateN/A

This flag indicates whether or not the received peer server certificates are validated.

When set to false, unknown peer Root-CA/self-signed certificates are accepted without any validation. 

  • false
  • true (default)

Modified: for 11.1.2

peerNameVerifyN/A

This flag is used to verify the authenticity of a client certificate. When enabled, the SBC validates the TLS peer name of the SIP peer against either a Common Name (CN) present in the subject or the DNS names or IP addresses in the Subject Alternate Name Extension (SAN) field in the certificate presented by the peer.

For example, if the SBC establishes a TLS session with "sonus.customer.net", this feature verifies the CN in the subject (or a DNS entry in the SAN field) of the certificate contains "sbc.customer.net" as the value.

  • disabled  (default)
  • enabled

NOTE: This flag is used in conjunction with the trunk group parameter, tlsPeerName, which associates the TLS peer name with a trunk group. Refer to SIP TG - Signaling - TLS Peer Name - CLI for details.

serverCertName

1-23

Specifies the name of the Server Certificate to be used by this TLS profile, created using the SECURITY PKI configuration object.

sessionResumpTimer

0-86400

The TLS session resumption period (in seconds) for which cached sessions are retained. TLS allows successive connections to be created within one TLS session (and the resumption of a session after a TLS connection is closed or after a server card failover) without repeating the entire authentication and other setup steps for each connection, except when the space must be reclaimed for a new session. (default = 3600)

suppressEmptyFragmentsN/A

Enable flag to prevent the SBC from inserting empty fragments when sending packets on TLS over TCP connection in support of older versions of TLS implementation.

  • disabled  (default)
  • enabled
v1_0N/A

TLS protocol version 1.0 (see note below)

  • disabled
  • enabled (default)
v1_1N/A

TLS protocol version 1.1 (see note below)

  • disabled  (default)
  • enabled
v1_2N/A

TLS protocol version 1.2 (see note below)

  • disabled (default)
  • enabled
v1_3N/A

TLS protocol version 1.3 (see note below)

  • disabled (default)
  • enabled

Note

Enabling v1_3 requires at least one TLS V1.3 cipher suite, even when v1_3 is enabled in addition to v1_2 or a lower TLS protocol version.


Note
Ribbon recommends using the highest TLS version supported by both the SBC and the peer equipment.


The SBC includes crypto suites that define a set of ciphers (algorithms used for encrypting data) which allow the selection of an appropriate level of security. The crypto suites are supported for both TLS and DTLS (Datagram Transport Layer Security) connections. When a TLS or DTLS connection is established, the client and server exchange information about which cipher suites they have in common. Refer to SBC for WRTC for more  information on DTLS. The following crypto suites are supported.


Supported TLS/DTLS Crypto Suites

Authentication Mechanism

Public/Private Key Pair

Confidentiality Cipher and Mode

Integrity Cipher

RSA-WITH-NULL-SHA

The integrity cipher used for the TLS Record protocol. 

RSANULLSHA-1

RSA-WITH-AES-128-CBC-SHA (default)

Confidentiality cipher and mode for the TLS Record protocol.

RSA

AES-128-CBC

SHA-1

RSA-WITH-AES-128-CBC-SHA-256

Confidentiality cipher and mode for the TLS Record protocol with SHA-256 as the hash function.

RSAAES-128-CBCSHA-256

RSA-WITH-AES-256-CBC-SHA

Confidentiality cipher and mode for the TLS Record protocol with AES 256 encryption.  

RSA

AES-256-CBC

SHA-1

RSA-WITH-AES-256-CBC-SHA-256*

Confidentiality cipher and mode for the TLS Record protocol with AES 256 encryption and SHA-256 as the hash function.

RSA

AES-256-CBC

SHA-256

TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384**

Confidentiality cipher and mode for the TLS Record with AES256 CBC and SHA384 as the hash function.

Note: The SBC 11.1 and later versions do not support tls_ecdh_ecdsa_with_aes_256_cbc_sha384. You must replace it with a valid Cipher before upgrading the SBC.

ECDH-ECDSA

AES-256-CBC

SHA-384

TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384**

Confidentiality cipher and mode for the TLS Record with AES256 GCM and SHA384 as the hash function.

ECDH-ECDSAAES-256-GCMSHA-384

TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA

Confidentiality cipher and mode for the TLS Record protocol using ECDHE (Elliptic Curve Diffie-Hellman key Exchange) with AES128 CBC and SHA as the hash function.

ECDHE-RSAAES-128-CBCSHA-1

TLS_ECDHE-RSA-WITH-AES-256-CBC-SHA-384*

Confidentiality cipher and mode for the TLS Record protocol using ECDHE (Elliptic Curve Diffie-Hellman key Exchange) with AES256 CBC and SHA384 as the hash function.

ECDHE-RSAAES-256-CBCSHA-384

TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256

Confidentiality cipher and mode for the TLS Record protocol using ECDHE (Elliptic Curve Diffie-Hellman key Exchange) with AES128 GCM and SHA as the hash function.

ECDHE-RSAAES-128-GCMSHA-256

TLS_ECDHE-RSA-WITH-AES-256-GCM-SHA-384*

Confidentiality cipher and mode for the TLS Record protocol using ECDHE (Elliptic Curve Diffie-Hellman key Exchange) with AES256 GCM and SHA384 as the hash function.

ECDHE-RSAAES-256-GCMSHA-384

TLS_RSA_WITH_AES_128_GCM_SHA256

Confidentiality cipher and mode for the TLS Record protocol with AES 128 GCM encryption and SHA-256 as the hash function.

RSAAES_128_GCMSHA-256

TLS_RSA_WITH_AES_256_GCM_SHA384

Confidentiality cipher and mode for the TLS Record protocol with AES 256 GCM encryption and SHA-384 as the hash function.

RSAAES_256_GCMSHA-384

TLS_AES_128_GCM_SHA256***

Confidentiality cipher and mode for the TLS Record with AES128 GCM and SHA256 as the hash function.

Unique to each TLS client and serverCTRSHA-256

TLS_AES_256_GCM_SHA384***

Confidentiality cipher and mode for the TLS Record with AES256 GCM and SHA384 as the hash function.

Unique to each TLS client and serverCTRSHA-384

TLS_CHACHA20_POLY1305_SHA256***

Confidentiality cipher and mode for the TLS Record with ChaCha20-Poly1305 and SHA256 as the hash function.

Unique to each TLS client and serverCTRSHA-256

*    To use this cipher, enable TLS version 1.2 in the TLS Profile.

**  To use this cipher, enable TLS version 1.2 in the TLS Profile and create SSL certificates using ECC keys.

*** To use this cipher, enable TLS version 1.3 in the TLS Profile.

Terms used in this table:

RSA – Authentication based on X.509 certificates using RSA public/private key pairs
AES-128 – Advanced Encryption Standard (128-bit key length)
CBC – Cipher Block Chaining
SHA – Secure Hash algorithm

Note

TLS 1.3 does not support RSA. Certificates generated with RSA will not work with TLS 1.3.

Note

When the Fips-140-3 mode is enabled, you cannot use the algorithms whose key exchange method is RSA, including:

  • Rsa-with-null-sha
  • Rsa-with-aes-128-cbc-sha
  • Rsa-with-aes-128-cbc-sha-256
  • Rsa-with-aes-256-cbc-sha
  • Rsa-with-aes-256-cbc-sha-256
  • tls_rsa_with_aes_128_gcm_sha256
  • tls_rsa_with_aes_256_gcm_sha384
  • rsa-with-3des-ede-cbc-sha


FIPS Compliancy

The SBC 7.2.x release supports FIPS-140-2 and the 10.1.3 release supports FIPS-140-3. FIPS-140-2 is not supported in 10.1.3 and later releases and gets automatically converted to FIPS-140-3 as part of the upgrade.

To verify the current status of FIPS certification, contact the Global Support Assistance Center:

Command Examples

> show profiles security tlsProfile defaultTlsProfile
appAuthTimer       5;
handshakeTimer     5;
hashType        Sha1;
sessionResumpTimer 3600;
cipherSuite1       rsa-with-aes-128-cbc-sha;
allowedRoles       clientandserver;
v1_0               enabled;
v1_1               enabled;
v1_2               enabled;
v1_3               disabled;  

% set profiles security tlsProfile defaultTlsProfile ocspProfileName myOcspProfile
% commit
 
> show profiles security tlsProfile defaultTlsProfile
appAuthTimer       5;
handshakeTimer     5;
hashType        Sha1;
sessionResumpTimer 3600;
cipherSuite1       rsa-with-aes-128-cbc-sha;
allowedRoles       clientandserver;
ocspProfileName    myOcspProfile;
v1_0               enabled;
v1_1               enabled;
v1_2               enabled;
v1_3               disabled;
% set profiles security tlsProfile TLS-1 v1_3 enabled
% set profiles security tlsProfile TLS-1 cipherSuite1 tls_aes_128_gcm_sha256
% commit
 
> show profiles security tlsProfile TLS-1
cipherSuite1 tls_aes_128_gcm_sha256;
v1_3      enabled;