2 Instalación y configuración de ICSF

En este capítulo, se describe cómo instalar y configurar ICSF.

Mainframe de IBM

Deben seguirse varios pasos para configurar un sistema z/OS y utilizarlo como un almacén de claves externo para un cluster de OKM.

Instalación y configuración de la tarjeta criptográfica CEX2C

Consulte la documentación que acompaña a esta tarjeta.

Instalación de PTF de Sun ELS o NCS

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.

Configuración de ELS 7.0

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 texto alrededor describe kms_token.png.
KMS

El nombre del comando.

TOKEN
tokenname

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.

KMS2.TOKEN.MASTERKEYS

Especifica el nombre predeterminado del token PKCS11.

Configuración de NCS 6.2

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.

Preparación de ICSF

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

Configuración de AT-TLS

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

Parámetro OBEY de TCPIP

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.

Configuración del agente de políticas (PAGENT)

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.

PAGENT JCL

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.

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.

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

Dirección TCP/IP local (dirección del servidor HTTP)

remotetcpipaddress

Dirección TCP/IP remota (dirección del cliente de OKM); puede ser ALL para todas las direcciones TCP/IP

localportrange

Puerto local del servidor HTTP (especificado en el inicio de SMC o HTTP)

remoteportrange

rango de puertos remotos (1024-65535 para todos los puertos efímeros)

HTTPserverJobname

Nombre del trabajo del servidor HTTP

certificatelabel

Etiqueta de la definición del certificado

keyringname

Nombre de la definición del patrón de claves de RACF
Definiciones de RACF

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

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)

Comandos de creación de certificados de RACF

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

ID de usuario de RACF asociado con el espacio de direcciones TCPIP

keyringname

Nombre del patrón de claves, que debe coincidir con el patrón de claves especificado en la configuración de PAGENT
  • 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

ID de usuario de RACF asociado con el espacio de direcciones TCPIP

serverdomainname

Nombre de dominio del servidor z/OS (p. ej., MVSA.COMPANY.COM)

companyname

Nombre de la organización

unitname

Nombre de la unidad organizativa

country

País

calabel

Etiqueta de la autoridad de certificación (p. ej., CAKMSSERVER)

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

ID de usuario de RACF asociado con el espacio de direcciones TCPIP

serverdomainname

Nombre de dominio del servidor z/OS (p. ej., MVSA.COMPANY.COM)

companyname

Nombre de la organización

unitname

Nombre de la unidad organizativa

country

País

serverlabel

Etiqueta del certificado del servidor (p. ej., KMSSERVER)

calabel

Etiqueta de la autoridad de certificación, especificada en la definición del certificado de la autoridad de certificación

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

ID de usuario de RACF asociado con el espacio de direcciones TCPIP

serverdomainname

Nombre de dominio del servidor z/OS (p. ej., MVSA.COMPANY.COM)

companyname

Nombre de la organización

unitname

Nombre de la unidad organizativa

country

País

clientlabel

Etiqueta del certificado del servidor: KMSCLIENT

calabel

Etiqueta de la autoridad de certificación, especificada en la definición del certificado de la autoridad de certificación

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

ID de usuario de RACF asociado con el espacio de direcciones TCPIP

calabel

Etiqueta de la autoridad de certificación, especificada en la definición del certificado de la autoridad de certificación

keyringname

Nombre del patrón de claves, que debe coincidir con el patrón de claves especificado en la configuración de PAGENT
  • RACDCERT ID(stcuser) CONNECT(ID(stcuser) LABEL('serverlabel') RING('keyringname') DEFAULT USEAGE(PERSONAL)

Donde:

stcuser

ID de usuario de RACF asociado con el espacio de direcciones TCPIP

serverlabel

Etiqueta del certificado del servidor

keyringname

Nombre del patrón de claves, que debe coincidir con el patrón de claves especificado en la configuración de PAGENT
  • RACDCERT ID(stcuser) CONNECT(ID(stcuser) LABEL('clientlabel') RING('keyringname') USEAGE(PERSONAL)

Donde:

stcuser

ID de usuario de RACF asociado con el espacio de direcciones TCPIP

clientlabel

Etiqueta del certificado del cliente

keyringname

Nombre del patrón de claves, que debe coincidir con el patrón de claves especificado en la configuración de PAGENT

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

Etiqueta de la autoridad de certificación, especificada en la definición del certificado de la autoridad de certificación

datasetname

Conjunto de datos para recibir el certificado exportado
  • RACDCERT EXPORT (LABEL('clientlabel')) ID(stcuser) DSN('datasetname') FORMAT(PKCS12DER) PASSWORD('password')

Donde:

clientlabel

Etiqueta del certificado del cliente

stcuser

ID de usuario de RACF asociado con el espacio de direcciones TCPIP

datasetname

Conjunto de datos para recibir el certificado exportado

password

Contraseña para el cifrado de datos. Necesaria cuando el certificado se recibe en OKM. La contraseña debe tener 8 caracteres o más.

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.

Comandos de lista de RACF

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

Actualización de información del cluster de OKM

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.

El texto alrededor describe secparams.jpg.

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).

El texto alrededor describe master_key_sets.jpg.

A continuación, se presentan los campos junto con sus descripciones:

Master Key Mode (Modo de claves maestras)

Seleccione "Off" (Desactivado), "All Keys" (Todas las claves) o "Recover Keys Only" (Recuperar claves únicamente). El valor "Off" (Desactivado) significa que los dispositivos de gestión de claves de este cluster de OKM crean sus propias claves y no las derivan de un proveedor de claves maestras. El valor "All Keys" (Todas las claves) significa que los dispositivos de gestión de claves de este cluster de OKM se comunican con el proveedor de claves maestras definido en la configuración de esta pantalla para crear y recuperar claves maestras y, luego, utilizan esas claves para derivar claves para los agentes. El valor "Recover Keys Only" (Recuperar claves únicamente) significa que los dispositivos de gestión de claves de este cluster de OKM se comunican con el proveedor de claves maestras definido en la configuración de esta pantalla para recuperar (pero no crear) claves maestras y, luego, utilizan esas claves para derivar claves para los agentes. Los valores "All Keys" (Todas las claves) y "Recover Keys Only" (Recuperar claves únicamente) pueden configurarse únicamente si la versión de Replication es, al menos, 11.

Master Key Rekey Period (Período de regeneración de claves maestras)

Escriba una cantidad de tiempo para definir la frecuencia con la que este dispositivo de gestión de claves debe comunicarse con el proveedor de claves maestras para crear y recuperar nuevas claves maestras. El valor predeterminado es 1 día. El valor mínimo es 1 día y el valor máximo es 25.185 días (aproximadamente, 69 años).

Master Key Provider Network Address (Dirección de red del proveedor de claves maestras)

Escriba el nombre de host o la dirección IP del host donde reside el proveedor de claves maestras.

Master Key Provider Port Number (Número de puerto del proveedor de claves maestras)

Escriba el número de puerto desde el cual el proveedor de claves maestras escucha las solicitudes de los dispositivos de gestión de claves de este cluster de OKM.

Master Key Provider Web App Path (Ruta de la aplicación web del proveedor de claves maestras)

Escriba la ruta de la aplicación web que forma parte de la URL utilizada para comunicarse con el proveedor de claves maestras (por ejemplo, "/cgi/smcgcsf").

OKM Certificate File Name (Nombre de archivo de certificado de OKM)

Especifique el nombre del archivo que contiene el certificado de OKM que se exportó desde el host del proveedor de claves maestras. El proveedor de claves maestras utiliza este certificado para verificar las solicitudes de los dispositivos de gestión de claves en este cluster de OKM.

OKM Private Key File Name (Nombre de archivo de clave privada de OKM)

Especifique el nombre del archivo que contiene la clave privada de OKM que se exportó desde el host del proveedor de claves maestras. El proveedor de claves maestras utiliza esta clave privada para verificar las solicitudes de los dispositivos de gestión de claves en este cluster de OKM.

OKM Private Key Password (Contraseña de clave privada de OKM)

Escriba la contraseña de la clave privada de OKM generada en el host del proveedor de claves maestras. El proveedor de claves maestras utiliza esta contraseña de clave privada para verificar las solicitudes de los dispositivos de gestión de claves en este cluster de OKM.

CA Certificate File Name (Nombre de archivo de certificado de la autoridad de certificación)

Especifique el nombre del archivo que contiene el certificado de la autoridad de certificación (CA) que se exportó.