z/OS Communications Server

z/OS Communications Server

z/OS Communications Server

A high-performance foundation for building and deploying networking applications on z/OS

 View Only

A review of the TLS protocol and its various settings

By Navya Ramanjulu posted Fri December 29, 2023 03:16 AM

  

This article is the fourth in a series that describe the different z/OS TLS providers, how those providers expose their settings, which providers are used by some common IBM z/OS-based products, and some examples of changing very specific TLS settings for each provider and product.   

For a complete listing of all the articles, please refer to the anchor article entitled z/OS TLS/SSL Configuration One-stop information hub

If you have a comment or question about this article or any in the series, please post it to the z/OS Communications Server discussion group on the IBM Z and Linux ONE Community.  For the quickest response, please prefix your discussion subject line with “TLS Settings:”

For details on setting TLS parameters for ISV products, please consult the appropriate vendor documentation.

A quick look at the TLS protocol

Figure 1 provides a conceptual view of a “typical” TLSv1.2 handshake. For a detailed description of the exact TLS protocol flows, messages and formats, see the appropriate IETF requests for comment:

Figure 1 A "typical" TLSv1.2 handshake

Key points worth noting in the handshake:

  1. The TLS client proposes a set of values for each TLS setting that affects the cryptographic strength of the TLS session.
  2. For each setting, the server searches the client’s proposed set of values and selects one if finds acceptable. If the server cannot find an acceptable setting in the client’s list, the handshake fails.
  3. A TLS handshake, regardless of the TLS protocol version, exchanges a lot of information and can potentially use a wide variety of cryptographic algorithms to complete the handshake process.  Refer to the RFCs listed above for detail
  4. Once the TLS handshake completes successfully, the agreed-to cryptographic algorithms and the secret TLS session keys established during the handshake are used to protect the data sent and received across the protected TCP connection.

Types of TLS settings you might need to control

Most enterprises have internal standards regarding all sorts of TLS settings. Often, these standards focus heavily on what we have already called “critical TLS settings” – those settings that directly affect the cryptographic strength of the TLS session, including:

  • Protocol versions
  • Cipher suites, which define a variety of cryptographic algorithms for various function    
  • Signature algorithm pairs  
  • Supported elliptic curves for digital signatures and key exchange
  • Supported Diffie-Hellman groups for key exchange

However, there are many other types of TLS settings that can affect the behavior of your local TLS implementation and what it supports or allows.  For example :

  • Minimum peer end entity certificate key size and version
  • Certificate verification mode
  • FIPS 140 mode  
  • TLS session reuse/caching parameters 
  • Certificate revocation checking    
  • The use of new TLS extensions    
  • …all kinds of other existing parameters, and more coming in the future!

Therefore, when local, industry, or government standards or requirements change for any of these attributes, you need to update the corresponding TLS settings for your z/OS workloads to conform.

Throughout this series of articles, we explore methods for changing TLS setting for the three different z/OS TLS providers, as well as some of the settings that are available in popular z/OS workloads like CICS Transaction Server, WebSphere Application Server and more.  In some cases, we also see how to set specific settings that have become important across the industry due to changing regulations.

Navigation

Next article: Updating System SSL settings (outside of AT-TLS)

Previous article: Risks involved with changing TLS settings

1 comment
35 views

Permalink

Comments

Wed July 17, 2024 10:43 AM

For completeness, there should be a TLS 1.3 figure, illustrating the key differences from TLS1.2.