As of Virtuoso 7.2, SSL protocol and cipher support is now configurable for connections from all HTTP, ODBC, JDBC, ADO.NET, and OLE-DB clients.
Default binding to
Basic configuration is through the SSL_Protocols
values in the [Parameters]
and [HTTP]
sections of the Virtuoso INI file.
These are comma+space-separated (",
") value lists.
Including a protocol name explicitly enables it; preceding the protocol name with an exclamation point ("!
") explicitly disables it.
SSL/TLS Version | Value for INI file | Notes |
---|---|---|
SSL 2.0 | — | Permanently disabled. |
SSL 3.0 | SSLv3 | Disabled by default. To our knowledge, only required by IE6/Windows XP clients. |
TLS 1.0 | TLSv1 | Enabled by default. |
TLS 1.1 | TLSv1.1 | Enabled by default, supported if available in local openssl library. |
TLS 1.2 | TLSv1.2 | Enabled by default, supported if available in local openssl library. |
The SSL_Cipher_List
values in the [Parameters]
and [HTTP]
stanzas of the Virtuoso INI file may also be adjusted, to disable particular ciphers when there are security reports about some new attack that breaks them.
These are colon-separated (":
") value lists.
Including a protocol name or groupname explicitly enables it; preceding the protocol name with an exclamation point ("!
") explicitly disables it.
You can review the ciphers supported by your local OpenSSL
library with the command
openssl ciphers -v ALL
For instance, we recommend explicitly forbidding anonymous cipher suites (i.e., ones that don?t use certificates, and are therefore susceptible to man-in-the-middle attacks) using !aNULL
.
We also recommend including @STRENGTH
at the end of the list, so that
The sample settings below provide a reasonable tradeoff of security versus flexibility. As shown, we have enabled SSLv3 on the HTTPS ports for IE6 users, but left this disabled on the SQL data port.
[Parameters] SSL_Protocols = TLSv1, TLSv1.1, TLSv1.2 SSL_Cipher_List = HIGH:!aNULL:!eNULL:!RC4:!DES:!MD5:!PSK:!SRP:!KRB5:!SSLv2:!EXP:!MEDIUM:!LOW:!DES-CBC-SHA:@STRENGTH [HTTP] SSL_Protocols = SSLv3, TLSv1, TLSv1.1, TLSv1.2 SSL_Cipher_List = HIGH:!aNULL:!eNULL:!RC4:!DES:!MD5:!PSK:!SRP:!KRB5:!SSLv2:!EXP:!MEDIUM:!LOW:!DES-CBC-SHA:@STRENGTH