2 ICSF 설치 및 구성

이 장에서는 ICSF를 설치 및 구성하는 방법에 대해 설명합니다.

IBM 메인프레임

OKM 클러스터에 대한 외부 키 저장소로 사용할 z/OS 시스템을 구성하려면 다양한 단계를 수행해야 합니다.

CEX2C 암호화 카드 설치 및 구성

이 카드와 함께 제공되는 설명서를 참조하십시오.

Sun ELS 또는 NCS PTF 설치

Sun ELS 7.0 및 NCS 6.2와 연관된 PTF는 다음 Oracle Software Downloads 사이트에서 사용할 수 있습니다.

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

시스템 프로그래머는 적절한 PTF를 다운로드하여 다음 표준 절차에 따라 설치할 수 있습니다.

ELS 7.0 설정

ELS 7.0의 경우 OKM-ICSF 기능이 ELS PTF를 통해 제공됩니다. OKM-ICSF 프록시는 HTTP 서버 CGI 루틴입니다. SMC HTTP 서버는 활성 ICSF PKCS11 기능을 사용하는 시스템에서 활성 상태여야 합니다.

OKM 명령은 SMCPARMS 데이터 세트에서만 유효합니다.

주위의 텍스트는 kms_token.png을(를) 설명합니다.
KMS

명령 이름입니다.

TOKEN
tokenname

OKM-ICSF 인터페이스에 대한 PKCS11 토큰 이름을 지정합니다. 이름의 첫번째 문자는 영문자 또는 국가 문자(#, $, or @)여야 합니다. 각각의 나머지 문자는 영숫자, 국가 문자 또는 점(.)일 수 있습니다. 최대 길이는 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에서 TKDS(토큰 데이터 세트)를 정의합니다. TKDS는 PKCS#11에서 사용하는 키의 저장소입니다. TKDS는 키 순서가 지정된 VSAM 데이터 세트입니다.

    토큰 데이터 세트 내의 키는 암호화되지 않았습니다. 따라서 보안 관리자가 RACF 프로파일을 만들어 허용되지 않은 액세스로부터 토큰 데이터 세트를 보호하는 것이 중요합니다.

  • ICSF 설치 옵션 데이터 세트에는 토큰 데이터 세트와 연관된 두 가지 옵션이 포함되어 있습니다.

    • TKDSN(데이터 세트 이름)

      토큰 데이터 세트를 포함하는 VSAM 데이터 세트를 식별합니다. PKCS#11 서비스를 제공하도록 ICSF에 대해 지정해야 합니다.

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

      토큰 데이터 세트가 sysplex-wide 데이터 일관성이 있어야 하는지 여부를 지정합니다.

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(2008년 10월) 문서에는 IBM 메인프레임에서 AT-TLS 구성에 대한 예제가 나와 있습니다.

AT-TLS는 응용 프로그램 서버 및 클라이언트에 대해 완전히 투명한 TCP/IP 응용 프로그램을 위한 암호화 솔루션입니다. 패킷 암호화 및 해독은 TCP 프로토콜 레벨의 z/OS TCPIP 주소 공간에서 발생합니다.

NCS/ELS HTTP 서버 연결에 대한 OKM의 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, Volume 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 클래스는 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 인증서 정의에 지정된 인증 기관에 대한 레이블

주:

SERVER 인증서입니다.
  • 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 인증서 정의에 지정된 인증 기관에 대한 레이블

주:

CLIENT 인증서입니다.

다음 명령은 CA, SERVER 및 CLIENT 인증서를 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 구성에 지정된 키 링과 일치해야 합니다.

다음 명령은 OKM으로 전송을 위해 CA 및 클라이언트 인증서를 내보냅니다.

  • 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 변환으로 전송됩니다. CLIENT 인증서가 BINARY 파일로 전송되고 이 파일에 클라이언트 인증서 및 해당 개인 키가 모두 포함되어 있습니다.

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)

  • 웹 응용 프로그램 경로(예: ”/cgi/smcgcsf”)

  • 클라이언트 "사용자 인증서"가 포함된 파일(메인프레임에서 내보내어 전송한 파일)

  • 클라이언트 개인 키가 포함된 파일(메인프레임에서 내보내어 전송한 파일)

  • 클라이언트 개인 키를 만들 때 사용된 암호

  • 루트 CA 인증서가 포함된 파일(메인프레임에서 내보내어 전송한 파일)

OKM 클러스터의 관리자는 OKM GUI의 Security Parameters 패널에 Master Key Provider 설정으로 이 정보를 입력합니다.

주위의 텍스트는 secparams.jpg을(를) 설명합니다.

클라이언트 "사용자 인증서" 및 클라이언트 개인 키는 IBM 메인프레임에서 내보낼 때 같은 파일에 포함될 수 있습니다. 이런 경우 관리자는 Master Key Provider 설정의 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가 고유 키를 만들고 Master Key Provider에서 키를 파생하지 않음을 의미합니다. ”All Keys” 값은 이 OKM 클러스터의 KMA가 이 화면의 설정에 정의된 Master Key Provider에 연결하여 마스터 키를 만들고 검색하고 이 마스터 키를 사용하여 에이전트에 대한 키를 파생함을 의미합니다. ”Recover Keys Only” 값은 이 OKM 클러스터의 KMA가 이 화면의 설정에 정의된 Master Key Provider에 연결하여 마스터 키를 검색하고(만들지는 않음) 이 마스터 키를 사용하여 에이전트에 대한 키를 파생함을 의미합니다. ”All Keys” 및 ”Recover Keys Only” 값은 복제 버전이 11 이상인 경우에만 설정할 수 있습니다.

Master Key Rekey Period

이 KMA가 Master Key Provider에 연결하여 새 마스터 키를 만들고 검색하는 빈도를 정의하는 시간을 입력합니다. 기본값은 1일입니다. 최소값은 1일이고 최대값은 25,185일입니다(약 69년).

Master Key Provider Network Address

Master Key Provider가 있는 호스트의 호스트 이름 또는 IP 주소를 입력합니다.

Master Key Provider Port Number

Master Key Provider가 이 OKM 클러스터의 KMA에서 요청을 수신하는 포트 번호를 입력합니다.

Master Key Provider Web App Path

Master Key Provider에 연결하는 데 사용되는 URL의 일부를 구성하는 웹 응용 프로그램 경로를 입력합니다(예: "/cgi/smcgcsf").

OKM Certificate File Name

Master Key Provider 호스트에서 내보낸 OKM 인증서를 포함하는 파일의 이름을 지정합니다. Master Key Provider는 이 인증서를 사용하여 이 OKM 클러스터에서 KMA의 요청을 확인합니다.

OKM Private Key File Name

Master Key Provider 호스트에서 내보낸 OKM 개인 키를 포함하는 파일의 이름을 지정합니다. Master Key Provider는 이 개인 키를 사용하여 이 OKM 클러스터에서 KMA의 요청을 확인합니다.

OKM Private Key Password

Master Key Provider 호스트에서 생성한 OKM 개인 키 암호를 입력합니다. Master Key Provider는 이 개인 키 암호를 사용하여 이 OKM 클러스터에서 KMA의 요청을 확인합니다.

CA Certificate File Name

내보낸 CA(인증 기관) 인증서를 포함하는 파일의 이름을 지정합니다.