2 ICSF のインストールと構成

この章では、ICSF のインストールと構成方法について説明します。

IBM メインフレーム

OKM クラスタ用の外部キーストアとして使用されるように z/OS システムを構成するには、さまざまな手順が必要です。

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 ルーチンです。SMC HTTP サーバーは、ICSF PKCS11 関数がアクティブなシステムでアクティブである必要があります。

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 の構成および管理に関するガイドを参照してください。

ICSF の準備

次の項目が ICSF PKCS#11 関数をアクティブ化します。

  • ICSF が HCR7740 以上であることを確認します。

  • MVS でトークンデータセット (TKDS) を定義します。TKDS は、PKCS#11 で使用される鍵のリポジトリです。TKDS は、キー順 VSAM データセットです。

    トークンデータセット内の鍵は暗号化されません。そのため、トークンデータセットを承認されていないアクセスから保護するために、セキュリティー管理者は RACF プロファイルを作成することが重要です。

  • ICSF インストールオプションデータセットには、トークンデータセットに関連する 2 つのオプションが含まれます。

    • TKDSN(datasetname)

      トークンデータセットを含む VSAM データセットを識別します。これは、ICSF が PKCS#11 サービスを提供するために指定する必要があります。

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

      トークンデータセットに Sysplex 全体のデータ整合性が必要かどうかを指定します。

ICSF の初期化に関する追加情報については、IBM z/OS 暗号化サービスの ICSF システム?向けガイド (SA22-7520) を参照してください。

ICSF は、SAF CRYPTOZ クラス内のプロファイルを使用して PKCS#11 トークンへのアクセスを制御します。HTTP サーバーで開始したタスクのユーザー ID には、定義された PKCS#11 トークンに次の SAF アクセスレベルが必要です。

  • SO.token_name CONTROL

  • USER.token_name UPDATE

AT-TLS の構成

Sun Microsystems HSC クライアント/サーバー z/OS ソリューションにおける AT-TLS の使用の実装例に関するドキュメント (2008 年 10 月) は、IBM メインフレームで AT-TLS を構成する場合の例を示しています。

AT-TLS は、アプリケーションサーバーおよびクライアントに完全に透過的な、TCP/IP アプリケーションの暗号化ソリューションです。パケットの暗号化および復号化は、z/OS TCPIP アドレス空間で TCP プロトコルレベルで行われます。

OKM と NCS/ELS HTTP サーバーとの接続に AT-TLS 暗号化を実装する場合、Communication Server に必要な最小レベルは z/OS 1.9 です。最高のパフォーマンスには、次の入手可能な IBM PTF (APAR PK69048 の場合) を適用してください。

  • Release 1A0: UK39417 (2008/10/07)、z/OS 1.10

  • Release 190: UK39419 (2008/10/07)、z/OS 1.9

IBM z/OS Communications Server ポリシーエージェント構成および AT-TLS の RACF 定義の詳細情報については、次の IBM のドキュメントを参照してください。

  • IP 構成ガイド』、SC88-8926

  • IP 構成解説書』、SC88-8927

  • Security Server RACF セキュリティー管理者のガイド』、SA88-8613

  • Security Server RACF コマンド言語解説書』、SA88-8617

  • IBM Redbook Communications Server for z/OS V1R7 の TCP/IP 実装に関するガイド第 4 巻のポリシーベースのネットワークセキュリティーに関するドキュメント、SG24-7172

TCPIP OBEY パラメータ

AT-TLS 機能をアクティブ化するには、TCPIP プロファイルデータセットで次のパラメータを指定します。

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

PORTMAP および RXSERV が TTLS を異常終了させないように、SERVAUTH クラスで RACLIST 処理が使用されている必要があります。下記の「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 実装に関するガイド第 4 巻のセキュリティーおよびポリシーベースのネットワーキングに関するドキュメントでは、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 証明書定義で指定された認証局のラベル

注:

これは、クライアント証明書です。

次のコマンドは、PAGENT 構成で指定された鍵リングに CA、サーバー、およびクライアント証明書を接続します。

  • 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 に変換して転送されます。クライアント証明書は、バイナリファイルとして転送され、クライアント証明書とその非公開鍵の両方を含みます。

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」など)

  • クライアント「ユーザー証明書」(メインフレームからエクスポートおよび転送されたもの) が含まれるファイル

  • クライアント非公開鍵 (メインフレームからエクスポートおよび転送されたもの) が含まれるファイル

  • クライアント非公開鍵が作成されたときに使用されたパスワード

  • ルート認証局証明書 (メインフレームからエクスポートおよび転送されたもの) が含まれるファイル

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がそれぞれの鍵を作成し、マスター鍵プロバイダから鍵を導出しないことを意味します。値「All Keys」は、この OKM クラスタ内の KMA がマスター鍵を作成および取得するためにこの画面の設定で定義されたマスター鍵プロバイダに接続し、それらのマスター鍵を使用してエージェントの鍵を導出します。値「Recover Keys Only」は、この OKM クラスタ内の KMA がマスター鍵を (作成せず) 取得するためにこの画面の設定で定義されたマスター鍵プロバイダに接続し、それらのマスター鍵を使用してエージェントの鍵を導出します。「All Keys」および「Recover Keys Only」値は、Replication Version が少なくとも 11 である場合のみ設定できます。

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 (認証局) 証明書が含まれるファイルの名前を指定します。