2 安装和配置 ICSF

本章介绍如何安装和配置 ICSF。

IBM 大型机

要配置 z/OS 系统以将其用作 OKM 群集的外部密钥库,需要执行多个步骤。

安装和配置 CEX2C 加密卡

请参阅此卡随附的文档。

安装 Sun ELS 或 NCS PTF

与 Sun ELS 7.0 和 NCS 6.2 关联的 PTF 可在 Oracle 软件下载站点上获得:

http://www.oracle.com/technetwork/indexes/downloads/index.html

系统程序员可下载相应的 PTF,并遵循标准过程进行安装。

ELS 7.0 设置

对于 ELS 7.0,OKM-ICSF 功能通过 ELS PTF 提供。OKM-ICSF 代理是 HTTP 服务器 CGI 例程。在 ICSF PKCS11 功能处于活动状态的系统上,SMC HTTP 服务器必须处于活动状态。

OKM 命令只从 SMCPARMS 数据集中有效。

周围文本对 kms_token.png 进行了说明。
KMS

命令名称。

TOKEN
tokenname

指定 OKM-ICSF 接口的 PKCS11 令牌名称。名称的第一个字符必须是字母或国家字符(#、$ 或 @)。其余每个字符可以是字母数字、国家字符或句点 (.)。最大长度为 32 个字符。

KMS2.TOKEN.MASTERKEYS

指定默认 PKCS11 令牌名称。

NCS 6.2 设置

对于 NCS 6.2,OKM-ICSF 功能通过 SMC PTF 提供。OKM-ICSF 代理是 HTTP 服务器 CGI 例程。SMC loadlib 必须包含在 HTTP 服务器 (SSKY500) 的 STEPLIB 中。PKCS11 令牌名称是 KMS2.TOKEN.MASTERKEYS,此名称无法更改。

请将以下内容添加到 SSKY500 HTTP 服务器启动参数中:

LOADMODULE SMCGCSF

有关 HTTP 服务器启动参数的其他信息,请参见《Storage Management Component (SMC) 6.2 Configuration and Administration Guide》。

准备 ICSF

以下项目可激活 ICSF PKCS#11 功能:

  • 确保 ICSF 为 HCR7740 或更高。

  • 在 MVS 中定义令牌数据集 (Token Data Set, TKDS)。TKDS 是 PKCS#11 所用密钥的系统信息库。TKDS 是密钥排序的 VSAM 数据集。

    令牌数据集中的密钥未加密。因此,安全管理员务必创建 RACF 配置文件来保护令牌数据集免受未经授权的访问。

  • ICSF 安装选项数据集包含两个与令牌数据集相关的选项:

    • TKDSN(datasetname)

      标识包含令牌数据集的 VSAM 数据集。必须指定此选项,才能使 ICSF 提供 PKCS#11 服务。

    • SYSPLEXTKDS(YES|NO,FAIL(YES|NO)

      指定令牌数据集是否应该具有系统综合体范围的数据一致性。

有关 ICSF 初始化的其他信息,请参见《IBM z/OS Cryptographic Services ICSF System Programmer's Guide (SA22-7520)》。

ICSF 使用 SAF CRYPTOZ 类中的配置文件控制对 PKCS#11 令牌的访问。HTTP 服务器启动任务的用户 ID 对定义的 PKCS#11 令牌必须具有以下级别的 SAF 访问权限:

  • SO.token_name CONTROL

  • USER.token_name UPDATE

配置 AT-TLS

文档《Using AT-TLS with Sun Microsystems HSC Client/Server z/OS Solution, Implementation Example (October 2008)》显示了在 IBM 大型机上配置 AT-TLS 的示例。

AT-TLS 是 TCP/IP 应用程序的加密解决方案,对应用程序服务器和客户机完全透明。包的加密和解密在 TCP 协议层的 z/OS TCP/IP 地址空间中进行。

要为 OKM 到 NCS/ELS HTTP 服务器的连接实施 AT-TLS 加密,通信服务器所需的最低级别是 z/OS 1.9。为了获得最佳性能,应该应用以下 IBM PTF(针对 APAR PK69048):

  • 发行版 1A0:UK39417-08/10/07 z/OS 1.10

  • 发行版 190:UK39419-08/10/07 z/OS 1.9

有关 IBM z/OS 通信服务器策略代理配置和 AT-TLS 的 RACF 定义的详细信息,请参见以下 IBM 出版物:

  • 《IP Configuration Guide》,SC31-8775

  • 《IP Configuration Reference》,SC31-8776

  • 《Security Server RACF Security Administrator's Guide》,SA22-7683

  • 《Security Server RACF Command Language Reference》,SA22-7687

  • 《IBM Redbook Communications Server for z/OS V1R7 TCP/IP Implementation》,第 4 册;《Policy-Based Network Security》,SG24-7172

TCPIP OBEY 参数

在 TCPIP 配置文件数据集中指定以下参数可激活 AT-TLS 功能:

TCPCONFIG TTLS

可将此语句放置到 TCP OBEY 文件中。

策略代理 (PAGENT) 配置

策略代理地址空间控制加密的 TCP/IP 通信流量。下面是一个 PAGENT 配置样例。

PAGENT JCL

PAGENT 启动的任务 JCL:

//PAGENT PROC
//*
//PAGENT EXEC PGM=PAGENT,REGION=0K,TIME=NOLIMIT,
// PARM='POSIX(ON) ALL31(ON) ENVAR("_CEE_ENVFILE=DD:STDENV")/-d1'
//*
//STDENV DD DSN=pagentdataset,DISP=SHR//SYSPRINT DD SYSOUT=*
//SYSOUT DD SYSOUT=*
//*
//CEEDUMP DD SYSOUT=*,DCB=(RECFM=FB,LRECL=132,BLKSIZE=132)

pagentdataset 数据集包含 PAGENT 环境变量。

PAGENT 环境变量

下面是一个 PAGENT 环境变量文件样例:

LIBPATH=/lib:/usr/lib:/usr/lpp/ldapclient/lib:.
PAGENT_CONFIG_FILE=/etc/pagent.conf
PAGENT_LOG_FILE=/tmp/pagent.log
PAGENT_LOG_FILE_CONTROL=3000,2
_BPXK_SETIBMOPT_TRANSPORT=TCPIP
TZ=MST7MDT

/etc/pagent.conf 包含 PAGENT 配置参数。

PAGENT 配置

下面是一个 PAGENT 配置样例:

TTLSRule           KMS-TO-ZOS
{
   LocalAddr       localtcpipaddress
   RemoteAddr      remotetcpipaddress
   LocalPortRange  localportrange
   RemotePortRange remoteportrange
   Jobname         HTTPserverJobname
   Direction       Inbound
   Priority        255
   TTLSGroupActionRef gAct1~KMS_ICSF
   TTLSEnvironmentActionRefeAct1~KMS_ICSF
   TTLSConnectionActionRef cAct1~KMS_ICSF
}
TTLSGroupAction    gAct1~KMS_ICSF
{
   TTLSEnabled     On
   Trace           2
}
TTLSEnvironmentAction eAct1~KMS_ICSF
{
   HandshakeRole Server
   EnvironmentUserInstance 0
   TTLSKeyringParmsRef keyR~ZOS
}
TTLSConnectionAction cAct1~KMS_ICSF
{
   HandshakeRole  ServerWithClientAuth
   TTLSCipherParmsRef cipher1~AT-TLS__Gold
   TTLSConnectionAdvancedParmsRefcAdv1~KMS_ICSF
   CtraceClearText Off
   Trace           2
}
TTLSConnectionAdvancedParmscAdv1~KMS_ICSF
{
   ApplicationControlled Off
   HandshakeTimeout      10
   ResetCipherTimer      0
   CertificateLabel      certificatelabel
   SecondaryMap          Off
}
TTLSKeyringParms  keyR~ZOS
{
   Keyring        keyringname
}
TTLSCipherParms   cipher1~AT-TLS__Gold
{
   V3CipherSuites TLS_RSA_WITH_3DES_EDE_CBC_SHA
   V3CipherSuites TLS_RSA_WITH_AES_128_CBC_SHA
}

其中:

localtcpipaddress

本地 TCP/IP 地址(HTTP 服务器地址)

remotetcpipaddress

远程 TCP/IP 地址(OKM 客户机地址),对于所有 TCP/IP 地址,可以是 ALL

localportrange

HTTP 服务器的本地端口(在 HTTP 或 SMC 启动配置中指定)

remoteportrange

远程端口范围(对于所有临时端口,为 1024-65535)

HTTPserverJobname

HTTP 服务器的作业名称

certificatelabel

来自证书定义的标签

keyringname

来自 RACF 密钥环定义的名称
RACF 定义

激活以下 RACF 类。可使用 RACF 面板或 CLI。

  • DIGTCERT

  • DIGTNMAP

  • DIGTRING

SERVAUTH CLASS 必须使用 RACLIST 处理,以防止 PORTMAP 和 RXSERV 异常终止 TTLS。请参见下面的“RACF 命令”。

RACF 命令

可实现以上操作的 RACF 命令:

  • SETROPTS RACLIST(SERVAUTH)

  • RDEFINE SERVAUTH ** UACC(ALTER) OWNER (RACFADM)

  • RDEFINE STARTED PAGENT*.* OWNER(RACFADM) STDATA(USER(TCPIP) GROUP(STCGROUP)

  • RDEFINE FACILITY IRR.DIGTCERT.LISTRING UACC(NONE) OWNER(RACFADM)

  • RDEFINE FACLITY IRR.DIGTCERT.LIST UACC(NONE) OWNER(RACFADM)

  • RDEFINE FACILITY IRR.DIGTCERT.GENCERT UACC(NONE) OWNER (RACFADM)

RACF 证书创建命令

《IBM Communications Server for z/OS V1R10 TCP/IP Implementation Volume 4: Security and Policy-Based Networking》文档概述了在 z/OS 系统上创建和导出数字证书所需的过程。

RACDCERT 实用程序可以在 RACF 中创建和管理数字证书。请验证 RACDCERT 是否在 SYS1.PARMLIB 中 IKJTSOxx 成员的 AUTHCMD 部分中。

下面是可创建密钥环和证书以供 AT-TLS 功能使用的 RACF 命令:

  • RACDCERT ID(stcuser) ADDRING(keyringname)

其中:

stcuser

与 TCPIP 地址空间关联的 RACF 用户 ID

keyringname

密钥环的名称,必须与在 PAGENT 配置中指定的密钥环匹配
  • RACDCERT ID(stcuser) GENCERT CERTAUTH SUBJECTSDN(CN('serverdomainname') O('companyname') OU('unitname') C('country')) WITHLABEL('calabel') TRUST SIZE(1024) KEYUSAGE(HANDSHAKE,DATAENCRYPT,CERTSIGN)

其中:

stcuser

与 TCPIP 地址空间关联的 RACF 用户 ID

serverdomainname

z/OS 服务器的域名(例如 MVSA.COMPANY.COM)

companyname

组织名称

unitname

组织单位名称

country

国家/地区

calabel

证书颁发机构的标签(例如 CAKMSSERVER)

注:

这是 OKM 系统的 CA 证书。
  • RACDCERT ID(stcuser) GENCERT SUBJECTSDN(CN('serverdomainname') O('companyname') OU('unitname') C('country')) WITHLABEL('serverlabel') TRUST SIZE(1024) SIGNWITH(CERTAUTH LABEL('calabel'))

其中:

stcuser

与 TCPIP 地址空间关联的 RACF 用户 ID

serverdomainname

z/OS 服务器的域名(例如 MVSA.COMPANY.COM)

companyname

组织名称

unitname

组织单位名称

country

国家/地区

serverlabel

服务器证书的标签(例如 KMSSERVER)

calabel

证书颁发机构的标签,在 CA 证书定义中指定

注:

这是服务器证书。
  • RACDCERT ID(stcuser) GENCERT SUBJECTSDN(CN('clientdomainname') O('companyname') OU('unitname') C('country')) WITHLABEL('clientlabel') TRUST SIZE(1024) SIGNWITH(CERTAUTH LABEL('calabel'))

其中:

stcuser

与 TCPIP 地址空间关联的 RACF 用户 ID

serverdomainname

z/OS 服务器的域名(例如 MVSA.COMPANY.COM)

companyname

组织名称

unitname

组织单位名称

country

国家/地区

clientlabel

服务器证书的标签-KMSCLIENT

calabel

证书颁发机构的标签,在 CA 证书定义中指定

注:

这是客户机证书。

以下命令可以将 CA、服务器和客户机证书连接到在 PAGENT 配置中指定的密钥环:

  • RACDCERT ID(stcuser) CONNECT(CERTAUTH LABEL('calabel') RING('keyringname') USAGE(CERTAUTH))

其中:

stcuser

与 TCPIP 地址空间关联的 RACF 用户 ID

calabel

证书颁发机构的标签,在 CA 证书定义中指定

keyringname

密钥环的名称,必须与在 PAGENT 配置中指定的密钥环匹配
  • RACDCERT ID(stcuser) CONNECT(ID(stcuser) LABEL('serverlabel') RING('keyringname') DEFAULT USEAGE(PERSONAL)

其中:

stcuser

与 TCPIP 地址空间关联的 RACF 用户 ID

serverlabel

服务器证书的标签

keyringname

密钥环的名称,必须与在 PAGENT 配置中指定的密钥环匹配
  • RACDCERT ID(stcuser) CONNECT(ID(stcuser) LABEL('clientlabel') RING('keyringname') USEAGE(PERSONAL)

其中:

stcuser

与 TCPIP 地址空间关联的 RACF 用户 ID

clientlabel

客户机证书的标签

keyringname

密钥环的名称,必须与在 PAGENT 配置中指定的密钥环匹配

以下命令可以导出 CA 和客户机证书以便传输到 OKM:

  • RACDCERT EXPORT (LABEL('calabel')) CERTAUTH DSN('datasetname') FORMAT(CERTB64)

其中:

calabel

证书颁发机构的标签,在 CA 证书定义中指定

datasetname

接收导出的证书的数据集
  • RACDCERT EXPORT (LABEL('clientlabel')) ID(stcuser) DSN('datasetname') FORMAT(PKCS12DER) PASSWORD('password')

其中:

clientlabel

客户机证书的标签

stcuser

与 TCPIP 地址空间关联的 RACF 用户 ID

datasetname

接收导出的证书的数据集

password

数据加密的密码。在 OKM 上接收证书时需要此密码。此密码必须包含 8 个或更多字符。

导出数据集现已传输到 OKM,可以使用 FTP。CA 证书通过 EBCDIC 到 ASCII 的转换进行传输。客户机证书作为二进制文件进行传输,包含客户机证书及其私钥。

RACF 列表命令

以下 RACF 命令可以列出各种 RACF 对象的状态:

  • RLIST STARTED PAGENT.* STDATA ALL

  • RLIST DIGTRING * ALL

  • RLIST FACILITY IRR.DIGTCERT.LISTRING ALL

  • RLIST FACILITY IRR.DIGCERT.LST ALL

  • RLIST FACILITY IRR.DIGCERT.GENCERT ALL

  • RACDCERT ID(stcuser) LIST

  • RACDCERT ID(stcuser) LISTRING(keyringname)

  • RACDCERT CERTAUTH LIST

更新 OKM 群集信息

配置 IBM 大型机后,z/OS 系统程序员必须向 OKM 群集管理员提供以下信息:

  • 大型机的主机名或 IP 地址

  • 端口号(例如 9889)

  • Web 应用程序路径(例如 "/cgi/smcgcsf")

  • 包含客户机“用户证书”的文件(从大型机中导出和传输出去)

  • 包含客户机私钥的文件(从大型机中导出和传输出去)

  • 创建客户机私钥时使用的密码

  • 包含根 CA 证书的文件(从大型机中导出和传输出去)

OKM 群集管理员将在 OKM GUI 的 "Security Parameters" 面板中输入此信息作为主密钥提供程序设置。

周围文本对 secparams.jpg 进行了说明。

客户机“用户证书”和客户机私钥在从 IBM 大型机中导出时可能会出现在同一个文件中。如果确实如此,则管理员应该在主密钥提供程序设置的 "OKM Certificate File Name" 和 "OKM Private Key File Name" 字段中指定相同的文件。

周围文本对 master_key_sets.jpg 进行了说明。

字段及其描述如下所示:

Master Key Mode

选择 "Off"、"All Keys" 或 "Recover Keys Only"。值 "Off" 表示此 OKM 群集中的 KMA 创建自己的密钥,而不从主密钥提供程序派生密钥。值 "All Keys" 表示此 OKM 群集中的 KMA 联系在此屏幕上的设置中定义的主密钥提供程序,以便创建和检索主密钥,然后使用这些主密钥为代理派生密钥。值 "Recover Keys Only" 表示此 OKM 群集中的 KMA 联系在此屏幕上的设置中定义的主密钥提供程序,以便检索(但不创建)主密钥,然后使用这些主密钥为代理派生密钥。仅当复制版本至少为 11 时,才能设置 "All Keys" 和 "Recover Keys Only" 值。

Master Key Rekey Period

键入一个时间长度,用于定义此 KMA 应该多久联系一次主密钥提供程序来创建和检索新主密钥。默认值是 1 天。最小值是 1 天,最大值是 25,185 天(大约 69 年)。

Master Key Provider Network Address

键入主密钥提供程序所在主机的主机名或 IP 地址。

Master Key Provider Port Number

键入主密钥提供程序在其上侦听来自此 OKM 群集中 KMA 的请求的端口号。

Master Key Provider Web App Path

键入构成用于联系主密钥提供程序的 URL 一部分的 Web 应用程序路径(例如 "/cgi/smcgcsf")。

OKM Certificate File Name

指定包含从主密钥提供程序主机导出的 OKM 证书的文件的名称。主密钥提供程序使用此证书验证来自此 OKM 群集中 KMA 的请求。

OKM Private Key File Name

指定包含从主密钥提供程序主机导出的 OKM 私钥的文件的名称。主密钥提供程序使用此私钥验证来自此 OKM 群集中 KMA 的请求。

OKM Private Key Password

键入在主密钥提供程序主机上生成的 OKM 私钥密码。主密钥提供程序使用此私钥密码验证来自此 OKM 群集中 KMA 的请求。

CA Certificate File Name

指定包含导出的 CA(Certificate Authority,证书颁发机构)证书的文件的名称。