Security Blog Shield

Bookmark and Share

Recent Posts

Pervasive Encryption for z/OS Data in Flight

December 17, 2018

If you’re reading this, you’ve probably heard quite a bit about pervasive encryption over the past year or so. While most of the focus has been on encryption of data at rest, highlighted by z/OS data set encryption support, it’s important to remember that the pervasive encryption vision also includes encryption of data in flight. z/OS supports three robust network security protocols that can provide strong cryptographic protection of your z/OS network traffic. Let’s take a quick look at these protocols and the workloads they can protect.     

z/OS Network Security Protocols 

The three network security protocols available on z/OS are:
  1. Transport Layer Security (TLS, including the old SSL protocols). TLS/SSL protects TCP traffic (most of your TCP/IP-based z/OS workloads). IBM provides a few mechanisms for protecting your TCP-based programs with TLS/SSL on z/OS:
    • You can modify your z/OS application programs to call a z/OS TLS library like System SSL or the Java Secure Sockets Extension (JSSE) directly.
    • You can use z/OS Communications Server’s Application Transparent TLS (AT-TLS) feature, which typically doesn’t require any application changes. AT-TLS is configured through policies built using the z/OSMF Network Configuration Assistant (NCA). The Policy Agent installs those policies into the TCP/IP stack, where they’re enforced as TCP connections are established.
All of these approaches support TLS versions up to TLS v1.2 and a wide variety of strong cipher suites including RSA, Elliptic Curve, AES and SHA-2 algorithms.
  1. IPsec. The z/OS Communications Server provides a full IPsec implementation that can be used to protect TCP, UDP (including Enterprise Extender) or any other IP-based traffic. Since IPsec is implemented at the network (IP) layer, it’s completely transparent to applications and middleware by design. Like AT-TLS, IPsec on z/OS is configured through the Network Configuration Assistant and the generated policies are installed by the policy agent into the TCP/IP stack, which protects application and middleware traffic with IPsec tunnels, and into the z/OS Internet Key Exchange daemon (IKED), which is responsible for negotiating the IPsec tunnels with other nodes. z/OS IPsec supports peer authentication using X.509 digital certificates or pre-shared keys, a variety of strong AES-based encryption algorithms and SHA-2 and AES-based message authentication/integrity algorithms. 
  2. Secure Shell (SSH). z/OS ships with an OpenSSH server and client. In the past, OpenSSH was part of the Ported Tools for z/OS offering, but as of z/OS V2R2, it ships as part of the base OS. SSH is popular for its built-in functions, such as terminal emulation, secure file transfer (SFTP), and secure copy (SCP). It can also be used to protect general TCP traffic through its port forwarding capabilities.
All three of these protocols make good use of IBM Z hardware cryptography features like CPACF and Crypto Express adapters and they all support modern standards for good interoperability with other platforms using the same protocols.

How Do Protocols Compare to Each Other? 

All three protocols use many of the same cryptographic algorithms and modes to exchange keys and protect your data, so what’s the difference between them? There are several comparison points worth examining. Figure 1 summarizes and compares some of those points.
Attribute TLS/SSL IPsec SSH-2
Traffic covered TCP connections All IP traffic (TCP, UDP (including EE), ICMP, etc.) TCP connections
Provides true end-to-end protection (protection is applied at the client and server endpoints) Yes Yes Yes
Can protect specific network segments No Yes No
Protection scope Single TCP connection Flexible (all traffic, by protocol, IP address, ports, etc) One or more TCP sessions
Requires application layer changes Yes (except basic AT-TLS) No No
Endpoints and authentication Application to application IP node to IP node Host to host
Authentication credentials X.509 certificates X.509 certificates or pre-shared keys Public/private key
Authentication frequency Configurable Configurable Once at session startup
Session key refresh Configurable based on time Configurable based on data and time Configurable based on data
Configuration AT-TLS: Policy (via z/OSMF NCA & pagent)
System SSL direct: per application
JSSE: Java properties
Pagent Policy (via z/OSMF NCA & pagent) OpenSSH configuration files as well as on command line invocation
Application transparency AT-TLS: Yes (basic AT-TLS only)
System SSL direct: No
Yes Can be with port forwarding
SAF Keyrings Yes Yes Yes (for keys only)
Secure Keys (CEXn) Yes Yes No
Specialty engine (zIIP) support JSSE only Yes No
Z hardware crypto CPACF, CEXn CPACF, CEXn CPACF, CEXn (for random number generation)
Figure 1: Comparison of protocols: TLS, IPSec and SSH using IBM-provided implementations

Hopefully, this will help you sort through some of the technical factors for choosing between network security protocols. But it’s not all about the protocols themselves. There are plenty of other factors you’ll need to consider when selecting network security protocols for your z/OS workloads. That will be a good topic for my next blog post!
Chris Meyer is the network security architect for z/OS and an IBM senior technical staff member.

Posted December 17, 2018| Permalink

comments powered by Disqus