En este capítulo, se describe cómo instalar y configurar ICSF.
Deben seguirse varios pasos para configurar un sistema z/OS y utilizarlo como un almacén de claves externo para un cluster de OKM.
Consulte la documentación que acompaña a esta tarjeta.
Las PTF asociadas con Sun ELS 7.0 y NCS 6.2 están disponibles en el sitio de descargas de software de Oracle:
http://www.oracle.com/technetwork/indexes/downloads/index.html
Los programadores del sistema pueden descargar la PTF adecuada e instalar los siguientes procedimientos estándar.
Para ELS 7.0, la función de OKM-ICSF se proporciona mediante una PTF de ELS. El proxy de OKM-ICSF es una rutina CGI del servidor HTTP. El servidor HTTP de SMC debe estar activo en un sistema con la función PKCS11 de ICSF activa.
El comando de OKM es válido desde el conjunto de datos SMCPARMS únicamente.
El nombre del comando.
Especifica el nombre del token PKCS11 para la interfaz OKM-ICSF. El primer carácter del nombre debe ser alfabético o un carácter nacional (#, $ o @). Cada uno de los caracteres restantes puede ser alfanumérico, nacional o un punto (.). La longitud máxima es 32 caracteres.
Especifica el nombre predeterminado del token PKCS11.
Para NCS 6.2, la función de OKM-ICSF se proporciona mediante una PTF de SMC. El proxy de OKM-ICSF es una rutina CGI del servidor HTTP. La función loadlib de SMC debe estar incluida en STEPLIB para el servidor HTTP (SSKY500). El nombre del token PKCS11 es KMS2.TOKEN.MASTERKEYS y no se puede cambiar.
Agregue lo siguiente a los parámetros de inicio del servidor HTTP de SSKY500:
LOADMODULE SMCGCSF
Consulte la Guía de configuración y administración de Storage Management Component (SMC) 6.2 para obtener información adicional sobre los parámetros de inicio del servidor HTTP.
Los siguientes elementos activan la función PKCS#11 de ICSF:
Asegúrese de que ICSF ejecute HCR7740 o posterior.
Defina el conjunto de datos de token (TKDS) en MVS. El TKDS es el repositorio para las claves utilizadas por PKCS#11. El TKDS es un conjunto de datos VSAM con secuencia de claves.
Las claves dentro del conjunto de datos de token no están cifradas. Por lo tanto, es importante que el administrador de seguridad cree un perfil RACF para proteger el conjunto de datos de token contra el acceso no autorizado.
El conjunto de datos de opciones de instalación de ICSF contiene dos opciones relacionadas con el conjunto de datos de token:
TKDSN(datasetname)
Identifica el conjunto de datos VSAM que contiene el conjunto de datos de token. Debe especificarse para ICSF a fin de brindar servicios PKCS#11.
SYSPLEXTKDS(YES|NO,FAIL(YES|NO)
Especifica si los datos del conjunto de datos de token deben ser coherentes en todo el sysplex.
Consulte IBM z/OS Cryptographic Services ICSF System Programmer's Guide (Guía del programador del sistema ICSF de servicios criptográficos de z/OS de IBM) (SA22-7520) para obtener información adicional sobre la inicialización de ICSF.
ICSF utiliza perfiles en la clase SAF CRYPTOZ para controlar el acceso a los tokens PKCS#11. Userid de la tarea iniciada del servidor HTTP debe tener el siguiente nivel de acceso SAF para el token PKCS#11 definido:
SO.token_name CONTROL
USER.token_name UPDATE
El documento sobre el uso de AT-TLS con la solución z/OS de cliente/servidor de HSC de Sun Microsystems (ejemplo de implementación) de octubre de 2008 muestra ejemplos de configuración de AT-TLS en el mainframe de IBM.
AT-TLS es una solución de cifrado para las aplicaciones TCP/IP que es completamente transparente para el cliente y el servidor de la aplicación. El cifrado y el descifrado de paquetes se realiza en el espacio de direcciones TCPIP de z/OS, en el nivel de protocolo TCP.
Para implementar el cifrado AT-TLS para la conexión de OKM al servidor HTTP de NCS/ELS, el nivel mínimo necesario del servidor de comunicaciones es z/OS 1.9. Para un mejor rendimiento, se deben aplicar las siguientes PTF de IBM disponibles (para APAR PK69048):
Versión 1A0: UK39417 disponible 08/10/07 z/OS 1.10
Versión 190: UK39419 disponible 08/10/07 z/OS 1.9
Consulte las siguientes publicaciones de IBM para obtener información detallada sobre la configuración del agente de políticas del servidor de comunicaciones de z/OS de IBM y las definiciones de RACF para AT-TLS:
IP Configuration Guide (Guía de configuración de IP), SC31-8775
IP Configuration Reference (Referencia de configuración de IP), SC31-8776
Security Server RACF Security Administrator's Guide (Guía del administrador de seguridad RACF del servidor de seguridad), SA22-7683
Security Server RACF Command Language Reference (Referencia de idioma del comando RACF del servidor de seguridad), SA22-7687
IBM Redbook Communications Server for z/OS V1R7 TCP/IP Implementation, Volumen 4, Policy-Based Network Security (Servidor de comunicaciones de IBM Redbook para la implementación de z/OS V1R7 TCP/IP, volumen 4, Seguridad de red basada en políticas), SG24-7172
Especifique el siguiente parámetro en el conjunto de datos de perfil de TCPIP para activar la función AT-TLS:
TCPCONFIG TTLS
Esta declaración debe realizarse en el archivo OBEY de TCP.
El espacio de dirección del agente de políticas controla qué tráfico TCP/IP se cifra. A continuación, se presenta un ejemplo de configuración de PAGENT.
JCL de tarea iniciada de PAGENT:
//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)
El conjunto de datos pagentdataset contiene las variables del entorno de PAGENT.
A continuación, se presenta un ejemplo de archivo de variables del entorno de 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 contiene los parámetros de configuración de PAGENT.
A continuación, se presenta un ejemplo de configuración de 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 }
Donde:
localtcpipaddress
remotetcpipaddress
localportrange
remoteportrange
HTTPserverJobname
certificatelabel
keyringname
Active las siguientes clases de RACF. Se pueden utilizar los paneles de RACF o la CLI.
DIGTCERT
DIGTNMAP
DIGTRING
La clase SERVAUTH debe usar el procesamiento RACLIST para impedir que PORTMAP y RXSERV finalicen TTLS de forma anormal. Consulte "Comandos RACF" a continuación.
Comandos RACF para realizar lo antes mencionado:
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)
El documento IBM Communications Server for z/OS V1R10 TCP/IP Implementation Volume 4: Security and Policy-Based Networking (Servidor de comunicaciones de IBM para la implementación de z/OS V1R10 TCP/IP, volumen 4: redes basadas en políticas y seguridad) describe el procedimiento requerido para crear y exportar certificados digitales en el sistema z/OS.
La utilidad RACDCERT crea y gestiona certificados digitales dentro de RACF. Verifique que RACDCERT se encuentre en la sección AUTHCMD del miembro IKJTSOxx en SYS1.PARMLIB.
A continuación, se presentan los comandos RACF para crear patrones de claves y certificados para usar la función AT-TLS:
RACDCERT ID(stcuser) ADDRING(keyringname)
Donde:
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)
Donde:
stcuser
serverdomainname
companyname
unitname
country
calabel
Nota:
Se trata del certificado de la autoridad de certificación para el sistema OKM.RACDCERT ID(stcuser) GENCERT SUBJECTSDN(CN('serverdomainname') O('companyname') OU('unitname') C('country')) WITHLABEL('serverlabel') TRUST SIZE(1024) SIGNWITH(CERTAUTH LABEL('calabel'))
Donde:
stcuser
serverdomainname
companyname
unitname
country
serverlabel
calabel
Nota:
Se trata del certificado del servidor.RACDCERT ID(stcuser) GENCERT SUBJECTSDN(CN('clientdomainname') O('companyname') OU('unitname') C('country')) WITHLABEL('clientlabel') TRUST SIZE(1024) SIGNWITH(CERTAUTH LABEL('calabel'))
Donde:
stcuser
serverdomainname
companyname
unitname
country
clientlabel
calabel
Nota:
Se trata del certificado del cliente.Los siguientes comandos conectan los certificados de la autoridad de certificación, del servidor y del cliente al patrón de claves especificado en la configuración de PAGENT:
RACDCERT ID(stcuser) CONNECT(CERTAUTH LABEL('calabel') RING('keyringname') USAGE(CERTAUTH))
Donde:
stcuser
calabel
keyringname
RACDCERT ID(stcuser) CONNECT(ID(stcuser) LABEL('serverlabel') RING('keyringname') DEFAULT USEAGE(PERSONAL)
Donde:
stcuser
serverlabel
keyringname
RACDCERT ID(stcuser) CONNECT(ID(stcuser) LABEL('clientlabel') RING('keyringname') USEAGE(PERSONAL)
Donde:
stcuser
clientlabel
keyringname
Los siguientes comandos exportan los certificados de la autoridad de certificación y del cliente para la transmisión a OKM:
RACDCERT EXPORT (LABEL('calabel')) CERTAUTH DSN('datasetname') FORMAT(CERTB64)
Donde:
calabel
datasetname
RACDCERT EXPORT (LABEL('clientlabel')) ID(stcuser) DSN('datasetname') FORMAT(PKCS12DER) PASSWORD('password')
Donde:
clientlabel
stcuser
datasetname
password
Los conjuntos de datos de exportación ahora se transmiten a OKM, y se puede utilizar FTP. El certificado de la autoridad de certificación se transmite con una conversión de EBCDIC a ASCII. El certificado del cliente se transmite como un archivo binario y contiene el certificado del cliente y la clave privada.
Los siguientes comandos RACF enumeran el estado de los diversos objetos de 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
Una vez que se configuró el mainframe de IBM, el programador del sistema de z/OS debe proporcionar la siguiente información al administrador del cluster de OKM:
Nombre de host o dirección IP del mainframe
Número de puerto (como 9889)
Ruta de la aplicación web (como "/cgi/smcgcsf")
Archivo que contiene el "certificado de usuario" del cliente (exportado y transferido fuera del mainframe)
Archivo que contiene la clave privada del cliente (exportada y transferida fuera del mainframe)
Contraseña utilizada cuando se creó la clave privada del cliente
Archivo que contiene el certificado de autoridad de certificación root (exportado y transferido fuera del mainframe)
El administrador del cluster de OKM introduce esta información en Master Key Provider Settings (Configuración del proveedor de claves maestras), en el panel Security Parameters (Parámetros de seguridad) de la GUI de OKM.
Es posible que el "certificado de usuario" del cliente y la clave privada del cliente aparezcan en el mismo archivo cuando se exportan desde el mainframe de IBM. En ese caso, el administrador debe especificar el mismo archivo en los campos OKM Certificate File Name (Nombre de archivo de certificado de OKM) y OKM Private Key File Name (Nombre de archivo de clave privada de OKM) en Master Key Provider Settings (Configuración del proveedor de claves maestras).
A continuación, se presentan los campos junto con sus descripciones:
Master Key Mode (Modo de claves maestras)
Master Key Rekey Period (Período de regeneración de claves maestras)
Master Key Provider Network Address (Dirección de red del proveedor de claves maestras)
Master Key Provider Port Number (Número de puerto del proveedor de claves maestras)
Master Key Provider Web App Path (Ruta de la aplicación web del proveedor de claves maestras)
OKM Certificate File Name (Nombre de archivo de certificado de OKM)
OKM Private Key File Name (Nombre de archivo de clave privada de OKM)
OKM Private Key Password (Contraseña de clave privada de OKM)
CA Certificate File Name (Nombre de archivo de certificado de la autoridad de certificación)