在 CICS 中启用 TLS 1.3

TLS 1.3 与较早版本的协议不同。 要从较低版本迁移到 TLS 1.3 ,需要先更新资源定义以使用密码套件规范文件,然后再启用 TLS 1.3。

开始之前

要启用 TLS 1.3,必须确保:
  • 您位于 z/OS® 2.4 或更高版本。
  • ICSF 必须处于活动状态。
  • 如果使用 RSA 证书,那么必须使用 ECC 主密钥来保护 PKDS 中保存的 RSA 密钥。
  • 您位于 CICS® TS 6.1 或更高版本。
    重要:如果您的 CICS 版本早于 CICS TS 6.1,在您完成升级到 CICS TS 6.1 之前,请务必避免启用 TLS 1.3 。 然后,您就可以将注意力集中在启用 TLS 1.3 上,而无需进行任何其他工作。
建议: TLS 1.3 提供的增强安全性可能比较早版本的 TLS 具有更高的 CPU 成本。 为了避免性能问题,建议您在生产中启用 TLS 1.3 之前满足以下需求:

关于此任务

TLS 1.3 与早期版本的协议有如下不同。 更多信息,请参见 RFC 8446 The Transport Layer Security (TLS) Protocol Version 1.3
  • TLS 1.3 与 TLS 协议的较低版本之间不存在公共密码。
  • TLS 1.3 的密码是 4 数字密码,只能使用 TLS 密码套件规范文件 (即 XML 文件) 在 CICS 中定义。
  • 启用 TLS 1.3 可能会影响性能。
  • 与使用 TLS 1.2时相比,使用 TLS 1.3 时执行的 CWXN 事务数有所增加。

过程

准备 TLS 密码套件规范文件:

  1. 将样本缺省密码套件规范文件 (defaultciphers.xml) 从 usshome/security/ciphers 复制到 ussconfig/security/ciphers
    其中
    USSHOME
    是在 USSHOME SIT 参数上指定的目录。
    USSCONFIG
    是在 USSCONFIG SIT 参数上指定的目录。 它必须与 USSHOME上的值不同。

    如果没有文件夹,那么需要在 ussconfig 中创建文件夹。

    defaultciphers.xml 文件用作需要 CIPHERS 选项的新资源定义的缺省密码套件规范文件。 在 CICS TS 5.6 及更低版本中,缺省为两位数密码。

  2. ussconfig/security/ciphers中,定制 defaultciphers.xml 文件以确保所使用的密码符合合规性规则。
    注: 此示例中使用 defaultciphers.xml 文件来显示简单路径。 您可以为不同的连接定义多个密码套件规范文件。

为 TLS 准备资源定义 1.3:

  1. 在密码套件规范文件中至少指定下列其中一个新的 TLS 1.3 密码,在本例中为 ussconfig/security/ciphers/defaultciphers.xml
        <cipher number="1301">
           <!-- TLS_AES_128_GCM_SHA256 -->
        </cipher>
        <cipher number="1302">
           <!-- TLS_AES_256_GCM_SHA384 -->
        </cipher>
        <cipher number="1303">
           <!-- TLS_CHACHA20_POLY1305_SHA256 -->
        </cipher>
    

    如果您有多个密码套件规范文件,请确保除现有 TLS 1.2 密码外,它们都至少具有一个 TLS 1.3 密码。

  2. 请确保所有 IPCONNTCPIPSERVICEURIMAP 资源定义中的 CIPHERS 选项都引用了密码套件规范文件,在这种情况下, defaultciphers.xml无论是否将 TLS 1.3 用于连接。

    由于只能在密码套件规范文件中定义 TLS 1.3 密码,因此必须在 CIPHERS 选项上更新任何使用密码的定义以使用密码套件规范文件。

    如果使用 CEDA 来变更定义,那么可以将资源定义中的密码清空。 CEDA 将现有密码替换为 defaultciphers.xml

    如果将应用程序与 WEB OPEN 命令配合使用,那么您可能仍会定义一些密码,并看到消息 DFHWB0767 ,指示命令中不推荐使用 CIPHERSNUMCIPHERS 选项。 对于 TLS 1.3,将忽略 WEB OPEN 上的 CIPHERSNUMCIPHERS 选项。 WEB OPEN 连接从 WEB OPEN 命令的 URIMAP 选项上定义的 URIMAP 获取密码,或者如果未定义该选项,那么从 defaultciphers.xml获取密码。 确保正在使用的密码套件规范密码文件包含适合于此连接的密码。

    只要启用了 TLS 1.3 ,使用 CIPHERS() 定义的任何现有 URIMAP 资源都将使用 defaultciphers.xml 文件中的密码。

    如果需要特定连接的特定密码,请确保在 ciphers 子目录中具有相应的密码套件规范文件,并且在匹配的 IPCONN , TCPIPSERVICE 和 URIMAP 资源定义的 CIPHERS 选项中正确引用了该文件。

更新您的证书:

  1. TLS 1.3 要求证书的最小密钥大小为 2048。

    检查密钥环中的任何证书是否至少为 SIZE (2048)。 如果它们较小,那么需要重新发放。

    您可以使用 RACDCERT 命令列出密钥环和证书。

启用 TLS 1.3:

  1. 设置 SIT 参数 MAXTLSLEVEL=TLS13

    SIT 参数 MAXTLSLEVEL 缺省为 TLS12。 此值允许升级到 CICS TS 6.1 或更高版本,而不会影响任何现有 TLS 连接或打开 TLS 连接的程序。

  2. 检查是否已建立所有连接。 该连接使用双方支持的最高 TLS 级别。 如果任何连接不使用 TLS 1.3,那么需要重新配置或升级该客户机或服务器。

    您可以通过使用诊断来查看哪些客户机或服务器未使用 TLS 1.3 。 请参阅 安全地更改 TLS 协议级别或密码

禁用早期版本的 TLS:

  1. 如果您确定所有连接都在使用 TLS 1.3,请通过设置 MINTLSLEVEL=TLS13来禁用较低版本的 TLS。
  2. 在所有区域中完成设置 MINTLSLEVEL=TLS13 之后,请从所有密码套件规范文件中除去非 TLS 1.3 密码。