How do SPP database servers use SSL
Some database servers use Secure Socket Layer (SSL) when communicating with SPP. Depending on the platform type, version, and configuration, the database server can either use SSL for only encrypting the session or it can use SSL for encrypting and verifying the authenticity of the database server.
ODBC Transport
The following platforms use the ODBC transport. SPP installs the appropriate software driver on the appliance to communicate with the platform. The configuration data that SPP uses to initialize a connection with the server is in the form of a connection string consisting of a colon-separated list of driver-specific options.
By default, the database servers encrypt the login data, but not the subsequent data passed on the connection. You must configure SSL and enable it on the database server to enable encryption for the session data.
Microsoft SQL Server
MicrosoftSQL Serveris always capable of encrypting the connection with SSL. It listens on a single port for both SSL and non-SSL connections.
If you have set the Force Encryption option to yes on the SQL server, then it uses SSL to encrypt the data, regardless of whether the SPP client requests it or not.
You can set the Force Encryption option to yes on the SQL server without configuring a server certificate. In this case, the SQL server transparently generates a self-signed certificate to use when a SPP client requests encryption. This makes it possible for the SQL server to use SSL only to provide encryption for the session without verifying the server certificate.
NOTE: It is not possible from within a running session to detect whether the SQL server is using SSL for encryption.
SPP Client Options | Microsoft SQL Server Configuration |
Result | ||
Use SSL Encryption | Verify SSL Cert | Force Encryption | Server Cert Configured | |
No | n/a | No | n/a | The SQL Server does not encrypt the session. |
Yes | No | n/a | No | SPP requests that the SQL server encrypt the session using a generated self-signed certificate. |
Yes | No | n/a | Yes | SPP requests that the SQL server encrypt the session using the server certificate. |
Yes | Yes | n/a | No | The SQL server rejects the connection as there is no certificate to verify against. |
Yes | Yes | n/a | Yes | SPP requests that the SQL server encrypt the session and verify the server certificate against the trusted CA certificates in SPP. |
MySQL Server
To support SSL you must compile the MySQL server software with SSL support and correctly configure it with a CA certificate and server certificate. If there is any problem with the certificate, the MySQL server may log an error and start up without SSL support. In this case the MySQL server rejects the request to enable SSL for a session as there is no certificate to verify against and does not encrypt the session. The MySQL server listens on a single port for both types of connections.
The behavior of the MySQL server depends on the server version and configuration. In some versions of MySQL, the server enables SSL by default on all SPP client sessions once it is configured.
If the MySQL server defaults to using SSL, or requires SSL for a user, the MySQL server encrypts the session even if the SPP client does not request it. However, the SPP client cannot request to use SSL just for encryption; it can only request SSL if you have imported the correct CA certificate to SPP.
NOTE: It is possible to detect that SSL is in use from within a session by examining the session variables. That is, the SPP client can detect if a request to use SSL has not been honored and displays an error.
SPP Use SSL Encryption Option | SSL Supported on MySQL Server |
Result |
---|---|---|
No | No | Unencrypted session. |
No | Yes | Determined by the MySQL server. The server encrypts the session if it defaults to using SSL or requires it for this user. |
Yes | No | SPP client detects this and reports a failure. |
Yes | Yes | SPP requests that the MySQL server encrypt the session and verity the server certificate against the trusted CA certificate in SPP |
For more information, see Preparing MySQL servers..
Sybase ASE Server
To support SSL you must correctly configure the Sybase server with a CA certificate and server certificate. The Sybase server listens on different ports for SSL and non-SSL connections, and rejects a mismatched request from a SPP client to a particular port.
The SPP client cannot request to use SSL just for encryption; it can only request SSL if you have imported the correct CA certificate to SPP.
SPP Use SSL Encryption Option | Sybase Server Listening Port Uses SSL |
Result |
---|---|---|
No | No | Unencrypted session. |
No | Yes |
The Sybase server rejects the connection attempt. NOTE: The ODBC driver cannot detect that this is an SSL error and displays a client cannot connect error. |
Yes | No | The Sybase server rejects the session with an SSL error. |
Yes | Yes | SPP requests that the Sybase server encrypt the session and verify the server certificate against the trusted CA certificates in SPP. |
For more information, see Preparing Sybase (Adaptive Server Enterprise) servers..