Disabling static ciphers for TLS in the vCenter Server appliance
book
Article ID: 322335
calendar_today
Updated On:
Products
VMware vCenter Server
Issue/Introduction
Symptoms:
A security scan reports "static TLS ciphers" or "non-ephemeral TLS ciphers" as an area of concern. This includes, but not limited to, ciphers such as TLS_RSA_WITH_AES_128_CBC_SHA or TLS_RSA_WITH_AES_128_GCM_SHA256. 3rd party security scans or audits request that VMware Administrators disable specific ciphers that are deemed "weak" and "not secure", often having deadlines to complete this request.
Environment
VMware vCenter Server 7.x
VMware vCenter Server 8.x
Cause
This issue occurs as the TLS protocol uses an RSA key within the TLS handshake to affirm identity, and with a "static TLS cipher" the same RSA key is used to encrypt a premaster secret used for further encrypted communication. If the RSA private key were compromised, all previous communication could be decrypted. Newer TLS ciphers use Diffie-Hellman with ephemeral keys (DHE, ECDHE) to negotiate a one-time key so that previous communication cannot be decrypted in the event of key compromise. vSphere products have supported ephemeral key exchange since at least version 6.0.
Resolution
To resolve this issue, disable weak cipher algorithms.
Note: VMware presently does not consider static TLS ciphers as insecure, in alignment with current industry standards. Additionally, many older (legacy) software products in the enterprise Datacenter (For example, Java7) lack support for ephemeral key exchange and interoperability with such products would break if static TLS ciphers were to be disabled. As such, VMware does not recommend disabling static TLS ciphers.
However, VMware will support users who wish to configure a different set of TLS ciphers to comply with their own security policies. It is recommended that backups are taken prior to disabling any ciphers as VMware cannot guarantee full interoperability across all products that interact with vCenter Server after disablement.
Prior to performing the below instructions, it is important backups have been taken for the vCenter Server appliance. At minimum, ensure you have a backup of the following file to restore to - /etc/vmware-rhttpproxy/config.xml
Ciphers to enable/disable are located in the following file: /etc/vmware-rhttpproxy/config.xml
The 'cipherList' tag is not populated by default, and would need to insert the following tags <cipherList></cipherList> within the .xml as below:
If the cipher is disabled, the following output would likely show:
CONNECTED(00000003) 140521094973088:error:140790E5:SSL routines:SSL23_WRITE:ssl handshake failure:s23_lib.c:177: --- no peer certificate available --- No client certificate CA names sent --- SSL handshake has read 0 bytes and written 99 bytes --- New, (NONE), Cipher is (NONE) Secure Renegotiation IS NOT supported Compression: NONE Expansion: NONE
Additional Information
An example of the ciphers to add to the configuration file can be referred to below: