Problem
I’ve been asked several times over the past year with how to configure VMware Horizon View to score a high rating on the Qualys SSL Labs (https://www.ssllabs.com/ssltest) portal because of the lack of information available on the internet so I thought I’d write this quick blog post to demonstrate one of the various ways you can achieve this.
Leaving a VMware Horizon View 7.4.0 security server with the default configuration would yield a B rating as shown here:
Note the following reasons why the rating is capped at B:
This server does not support Forward Secrecy with the reference browsers. Grade capped to B.
This server does not support Authenticated encryption (AEAD) cipher suites. Grade capped to B.
Analysis
The way to obtain a better score is to control the Cipher Suites that the security server offers and to review what is currently being offered, scroll down to the Configuration section of the report and review the protocols and suites listed:
Due to the lack of information for this, my first approach was to review the ciphers I use to obtain an A+ rating for NetScaler configurations but realized this would not work because:
- Horizon View does not support all of these ciphers
- The format of the ciphers is not the same between the NetScaler and VMware Horizon (they’re written differently
Solution
Official instructions provided by VMware to control the ciphers allowed by the security server can be found here:
Configure Acceptance Policies on Individual View Servers
https://docs.vmware.com/en/VMware-Horizon-7/7.0/com.vmware.horizon-view.security.doc/GUID-7FA3EE31-2DFD-4979-A972-87B40695FFC5.html
The way to override the default ciphers offered to connections, navigate to the following directory on the security server:
install_directoryVMwareVMware ViewServersslgatewayconf
Create a new file named locked.properties:
Open the file in notepad and paste the following:
# The following list should be ordered with the latest protocol first:
secureProtocols.1=TLSv1.2
secureProtocols.2=TLSv1.1
# This setting must be the latest protocol given in the list above:
preferredSecureProtocol=TLSv1.2
# The order of the following list is unimportant unless honorClientOrder is false:
enabledCipherSuite.1=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
enabledCipherSuite.2=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
enabledCipherSuite.3=TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
enabledCipherSuite.4=TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
Restart the Security Server service to apply the changes.
Using the ciphers listed above would yield a score of A from the scan:
Scrolling down to the Configuration section will show that contains no weak ciphers are supported and TLSv1 is not supported:
It is also possible to support TLSv1 by using the following cipher configuration:
# The following list should be ordered with the latest protocol first:
secureProtocols.1=TLSv1.2
secureProtocols.2=TLSv1.1
secureProtocols.3=TLSv1
# This setting must be the latest protocol given in the list above:
preferredSecureProtocol=TLSv1.2
# The order of the following list is unimportant unless honorClientOrder is false:
enabledCipherSuite.1=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
enabledCipherSuite.2=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
enabledCipherSuite.3=TLS_DHE_RSA_WITH_AES_256_GCM_SHA384
enabledCipherSuite.4=TLS_DHE_RSA_WITH_AES_128_GCM_SHA256
enabledCipherSuite.5=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA
enabledCipherSuite.6=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
enabledCipherSuite.7=TLS_DHE_RSA_WITH_AES_256_CBC_SHA
enabledCipherSuite.8=TLS_DHE_RSA_WITH_AES_128_CBC_SHA
Whether to support TLSv1 will be dependent on the clients connecting and my preference would be to omit it because it is a protocol that the world is deprecating. The same can also be said with TLSv1.1 but I think it is safe to include that for now.
Why isn’t the score A+?
The reason why the score isn’t an A+ is is because of this line item:
Downgrade attack prevention
No, TLS_FALLBACK_SCSV not supported
I have yet to determine what changes to the configuration is required and will update this blog post when I do but the following is an interesting forum post about this topic that is worth reading:
To sum up: not supporting TLS_FALLBACK_SCSV is not necessarily a serious issue, depending on how well the client and server implement TLS 1.0 (by not supporting SSL 3.0 you already avoid the most glaring problems). However, good implementations cannot be guaranteed, and not supporting TLS_FALLBACK_SCSV is formally a weakness, even if it is not necessarily a vulnerability. That the weakness cannot be turned into a full exploit by attackers does not mean it does not exist.
In any case, you won’t implement TLS_FALLBACK_SCSV because you want security; you will implement TLS_FALLBACK_SCSV because you want an A+. If you do not, then you will spend inordinate amounts of time explaining to many people that the “A+” grade is meaningless in that respect and that you can afford not to take it. In the long term, not howling with the wolves is too expensive.
One Response
Thanks for the excellent write up. I modified some of the information for the UAG rather than the Windows version.
Thanks again for pointing me in the right direction.
– Carlo
https://www.vcloudinfo.com/2018/08/how-to-get-a-from-qualys-ssllabs-on.html