Considerations when using inter-daemon system authentication
Before enabling inter-daemon system authentication, take into account these considerations.
Security performance and scalability considerations
When data privacy and integrity using TLS is configured for security, application data between the client and the SSM, the SSM and the SIM, and the client and the SI are encrypted and digitally signed. Because of additional processing power required to encrypt or decrypt data, and generate or verify digital signatures, performance will generally degrade. Three factors can affect the level of degradation:- Scale
- The number of computing slots for the application.
- Application data size
- This factor includes task input and output, and common data.
- Strength of the cryptographic algorithm
- When security is enabled, the default TLS cipher suite is used, which optimizes performance and provides data privacy and integrity requirements.
Performance might be observed through different means, such as through workload bandwidth and latency, CPU and slots utilization.
From simulation test results, using various application patterns, performance degradation typically ranges from 30% to 60% when Common Data Optimization (CDO) is enabled. When CDO is disabled, performance degrades because more data requires TLS processing. In the case of a short workload pattern, the time required for establishing a secure connection will dominate, so relative performance will degrade more significantly. For components where more data is processed, this may increase CPU usage (for example, for SSM and the application client).
| Configuration source | Where to use | Syntax | Description | Default value | Increase to this value |
|---|---|---|---|---|---|
| startUpTimeout | section of the application profile | <SIM startupTime out="1800"></SIM> |
Number of seconds to wait for the service instance manager to start up before the session manager considers it as timed out. | 60 | 1200 |
| SOAM_DIRECT_DATA_CONNECTION_RETRY_LIMIT | section of the application profile | <env
name="SOAM_DIRECT_DATA_CONNECTION_RETRY_LIMIT">10</env> |
Specifies the number of attempts made by SI to reconnect to client. | 0 | 10 |
| SOAM_DIRECT _DATA_CONNECTION_RETRY _INTERVAL | section of the application profile | <env
name="SOAM_DIRECT_DATA_CONNECTION_RETRY_INTERVAL">5</env> |
Specifies how long the SI waits in seconds before the next attempt to reconnect to the client. | 1 | 10 |
Whenever possible, design applications to use a smaller number of slots. This minimizes the that impact to scalability.
Interacting with existing security configuration in sd.xml
In both the sd.xml file and the application profile, you can define the same parameters (for example, both can configure the SDK_TRANSPORT_ARG or SSM_SDK_TRANSPORT_ARG parameters). However, the values from the application profile overrides the values defined in the sd.xml file, and then the values are passed to SSM. Therefore:- Use the sd.xml file to configure cluster-wide TLS configurations.
- Use the application profile to customize the TLS configuration for different applications.
Backward compatibility of secure connection between the client and SD or SSM
Instead of using the security parameters configured in sd.xml or the application profile, the client can also use local TLS configuration. If the client configures the environment variable SSL_COMPATIBILITY_MODE=N, the client uses the security parameters in EGO_CLIENT_TS_PARAMS defined in the local ego.conf file.Backward compatibility of secure connection between the SOAM session director and SSM
Set the SD_SSM_SSL_COMPATIBILITY_MODE environment variable within the sd.xml file to enable or disable backward compatibility of the TLS connection between SD and SSM. By default, backward compatibility is set (SD_SSM_SSL_COMPATIBILITY_MODE=Y).
- Behavior when backward compatibility is disabled (SD_SSM_SSL_COMPATIBILITY_MODE=N)
-
- The SOAM session director uses SD_SDK_TRANSPORT and SD_SDK_TRANSPORT_ARG when creating the listening port for SSM
- SSM uses SD_SDK_TRANSPORT and SD_SDK_TRANSPORT_ARG when creating the listening port for SD
- The SOAM session director uses SD_SDK_TRANSPORT and SDK_TRANSPORT_ARG when connecting to SSM
- SSM uses SD_SDK_TRANSPORT and SDK_TRANSPORT_ARG when connecting to the SOAM session director
The SOAM session director uses SD_SDK_TRANSPORT and SD_SDK_TRANSPORT_ARG when creating the listening port for the client.
The SSM uses SD_SDK_TRANSPORT and SD_SDK_TRANSPORT_ARG when creating the listening port for the client.
- Behavior when backward compatibility is enabled (SD_SSM_SSL_COMPATIBILITY_MODE=Y
-
- The SOAM session director uses SSM_SDK_TRANSPORT and SSM_SDK_TRANSPORT_ARG when creating the listening port for SSM
- SSM uses SSM_SDK_TRANSPORT and SSM_SDK_TRANSPORT_ARG when creating the listening port for the SOAM session director
- The SOAM session director uses SSM_SDK_TRANSPORT and SDK_TRANSPORT_ARG when connecting to SSM
- SSM uses SSM_SDK_TRANSPORT and SDK_TRANSPORT_ARG when connecting to the SOAM session director
The SOAM session director uses SD_SDK_TRANSPORT and SD_SDK_TRANSPORT_ARG when creating the listening port for the client.
The SSM uses SSM_SDK_TRANSPORT and SSM_SDK_TRANSPORT_ARG when creating the listening port for the client.
If backward compatibility of the TLS connection between the SOAM session director and SSM is enabled, then SDK_TRANSPORT_ARG must contain CAFILE or CAPATH, SERVER_AUTH, CERTIFICATE, and PRIVATE_KEY.
Reserved names for the SOAM session director and SSM in SERVER_AUTH
When the IBM® Spectrum Symphony client specifies the SERVER_AUTH parameter in the TLS configuration, the client will verify the CN (common name) in the daemon’s certificate. For example, ifSERVER_AUTH=vemkd{Platform vemkd}egosc{Platform Service Controller}, the client
will check the VEMKD certificate’s common name against Platform vemkd, and
the EGOSC certificate’s common name against Platform Service Controller.
- The reserved name in SERVER_AUTH for the SOAM session director is
sd, and for SSM, it is the application name. For example, ifSERVER_AUTH={Symphony Daemons}sd{Platform Service Director}symping732{Platform Symping}, the client of Symping732 will check the SD againstPlatform Service Director, and check the SSM againstPlatform Sympingand other daemons againstSymphony Daemons. - The CN of the TLS certificate should not contain braces (such as
{or }). For example, a CN of{test}is not valid, but simplytestis.
Configuring authentication using SERVER_AUTH
When configuring authentication for EGO daemons by editing the ego.conf file, ensure that the SERVER_AUTH parameter is set, and that it does not have a value of NONE. No value defaults to NONE, so that the client does not verify the server's certificate.For SOAM daemons, if the SERVER_AUTH parameter is not defined or is set to NONE, the client will still verify the server's certificate, but will ignore the common name in the certificate.