本章介绍如何安装和配置 ICSF。
要配置 z/OS 系统以将其用作 OKM 群集的外部密钥库,需要执行多个步骤。
与 Sun ELS 7.0 和 NCS 6.2 关联的 PTF 可在 Oracle 软件下载站点上获得:
http://www.oracle.com/technetwork/indexes/downloads/index.html
系统程序员可下载相应的 PTF,并遵循标准过程进行安装。
对于 ELS 7.0,OKM-ICSF 功能通过 ELS PTF 提供。OKM-ICSF 代理是 HTTP 服务器 CGI 例程。在 ICSF PKCS11 功能处于活动状态的系统上,SMC HTTP 服务器必须处于活动状态。
OKM 命令只从 SMCPARMS 数据集中有效。
命令名称。
指定 OKM-ICSF 接口的 PKCS11 令牌名称。名称的第一个字符必须是字母或国家字符(#、$ 或 @)。其余每个字符可以是字母数字、国家字符或句点 (.)。最大长度为 32 个字符。
指定默认 PKCS11 令牌名称。
对于 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 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
文档《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
策略代理地址空间控制加密的 TCP/IP 通信流量。下面是一个 PAGENT 配置样例。
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 环境变量文件样例:
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 配置样例:
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
remotetcpipaddress
localportrange
remoteportrange
HTTPserverJobname
certificatelabel
keyringname
激活以下 RACF 类。可使用 RACF 面板或 CLI。
DIGTCERT
DIGTNMAP
DIGTRING
SERVAUTH CLASS 必须使用 RACLIST 处理,以防止 PORTMAP 和 RXSERV 异常终止 TTLS。请参见下面的“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)
《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
keyringname
RACDCERT ID(stcuser) GENCERT CERTAUTH SUBJECTSDN(CN('serverdomainname') O('companyname') OU('unitname') C('country')) WITHLABEL('calabel') TRUST SIZE(1024) KEYUSAGE(HANDSHAKE,DATAENCRYPT,CERTSIGN)
其中:
stcuser
serverdomainname
companyname
unitname
country
calabel
注:
这是 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
serverdomainname
companyname
unitname
country
serverlabel
calabel
注:
这是服务器证书。RACDCERT ID(stcuser) GENCERT SUBJECTSDN(CN('clientdomainname') O('companyname') OU('unitname') C('country')) WITHLABEL('clientlabel') TRUST SIZE(1024) SIGNWITH(CERTAUTH LABEL('calabel'))
其中:
stcuser
serverdomainname
companyname
unitname
country
clientlabel
calabel
注:
这是客户机证书。以下命令可以将 CA、服务器和客户机证书连接到在 PAGENT 配置中指定的密钥环:
RACDCERT ID(stcuser) CONNECT(CERTAUTH LABEL('calabel') RING('keyringname') USAGE(CERTAUTH))
其中:
stcuser
calabel
keyringname
RACDCERT ID(stcuser) CONNECT(ID(stcuser) LABEL('serverlabel') RING('keyringname') DEFAULT USEAGE(PERSONAL)
其中:
stcuser
serverlabel
keyringname
RACDCERT ID(stcuser) CONNECT(ID(stcuser) LABEL('clientlabel') RING('keyringname') USEAGE(PERSONAL)
其中:
stcuser
clientlabel
keyringname
以下命令可以导出 CA 和客户机证书以便传输到 OKM:
RACDCERT EXPORT (LABEL('calabel')) CERTAUTH DSN('datasetname') FORMAT(CERTB64)
其中:
calabel
datasetname
RACDCERT EXPORT (LABEL('clientlabel')) ID(stcuser) DSN('datasetname') FORMAT(PKCS12DER) PASSWORD('password')
其中:
clientlabel
stcuser
datasetname
password
导出数据集现已传输到 OKM,可以使用 FTP。CA 证书通过 EBCDIC 到 ASCII 的转换进行传输。客户机证书作为二进制文件进行传输,包含客户机证书及其私钥。
以下 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
配置 IBM 大型机后,z/OS 系统程序员必须向 OKM 群集管理员提供以下信息:
大型机的主机名或 IP 地址
端口号(例如 9889)
Web 应用程序路径(例如 "/cgi/smcgcsf")
包含客户机“用户证书”的文件(从大型机中导出和传输出去)
包含客户机私钥的文件(从大型机中导出和传输出去)
创建客户机私钥时使用的密码
包含根 CA 证书的文件(从大型机中导出和传输出去)
OKM 群集管理员将在 OKM GUI 的 "Security Parameters" 面板中输入此信息作为主密钥提供程序设置。
客户机“用户证书”和客户机私钥在从 IBM 大型机中导出时可能会出现在同一个文件中。如果确实如此,则管理员应该在主密钥提供程序设置的 "OKM Certificate File Name" 和 "OKM Private Key File Name" 字段中指定相同的文件。
字段及其描述如下所示:
Master Key Mode
Master Key Rekey Period
Master Key Provider Network Address
Master Key Provider Port Number
Master Key Provider Web App Path
OKM Certificate File Name
OKM Private Key File Name
OKM Private Key Password
CA Certificate File Name