EMV スクリプティング・サービス (CSNBESC および CSNEESC)

EMV スクリプティング・サービスは、EMV 支払いカードにコマンドを送信するためのメカニズムです。 コマンドは、カード・パラメーターの更新に使用されます。これには PIN が含まれる可能性もあります。 コマンドは機密性のために暗号化されるか、保全性のために MAC 処理されるか、あるいはその両方が行われる場合があります。

スクリプトは、支払いカードからトランザクションを受け取ったときに、発行者または発行者のエージェントによって生成されます。 このサービスは、スクリプトを入力として受け取り、それを暗号化または MAC 処理し (あるいはその両方を行い)、暗号化されたスクリプトまたは MAC のいずれか (あるいはその両方) を返します。 出力は、応答とともに支払いカードに送り返すことを目的としています。

このサービスは、以下の EMV スクリプティング機能を実行します。
  • 保全性を伴うスクリプティング。

    メッセージは、issuer_integrity_master_key_identifier パラメーターで指定された発行者マスター鍵から導出されるセッション鍵で MAC 処理されます。

  • 機密性を伴うスクリプティング (PIN を含む場合または含まない場合のスクリプトの保護用)。

    メッセージは、issuer_confidentiality_master_key_identifier パラメーターで指定された発行者マスター鍵から導出されるセッション鍵で暗号化されます。

  • 機密性および保全性を伴うスクリプティング (PIN を含む場合または含まない場合のスクリプトの保護用)。

    メッセージは、issuer_confidentiality_master_key_identifier パラメーターで指定された発行者マスター鍵から導出されるセッション鍵で (機密性のために) まず暗号化されます。次に、issuer_integrity_master_key_identifier パラメーターで指定された発行者マスター鍵から導出されるセッション鍵で (保全性のために) MAC 処理されます。

  • PIN 変更/ブロック解除。

    Visa PIN 変更/ブロック解除は、「VISA Integrated Circuit Card Specification v1.4.0」で説明されているとおりに実行されます。 PIN は、新しい PIN のみを指定するか、または現行の PIN と新規 PIN の両方を指定するかのいずれかで変更できます。 詳しくは、new_PIN_encrypting_key_identifier パラメーターおよび current_PIN_encrypting_key_identifier パラメーターを参照してください。 メッセージは、issuer_confidentiality_master_key_identifier パラメーターで指定された発行者マスター鍵から導出されるセッション鍵で暗号化されます。

このサービスは、以下の特定の商標モードで使用できます。
  • Visa
  • MasterCard
  • EMV

AMODE(64) 呼び出しの呼び出し可能サービス名は CSNEESC です。

形式

CALL CSNBESC(
             return_code,
             reason_code,
             exit_data_length,
             exit_data,
             rule_array_count,
             rule_array,
             issuer_integrity_master_key_identifier_length,
             issuer_integrity_master_key_identifier,
             issuer_confidentiality_master_key_identifier_length,
             issuer_confidentiality_master_key_identifier,
             new_PIN_encrypting_key_identifier_length,
             new_PIN_encrypting_key_identifier,
             current_PIN_encrypting_key_identifier_length,
             current_PIN_encrypting_key_identifier,
             new_PIN_block,
             current_PIN_block,
             pan_length,
             pan,
             pan_seq_number,
             atc,
             unpredictable_number,
             input_message_length,
             input_message,
             PIN_offset,
             PIN_format,
             output_message_length,
             output_message,
             mac_length,
             mac,
             reserved1_length,
             reserved1,
             reserved2_length,
             reserved2)

パラメーター

return_code
方向 タイプ
出力 整数

戻りコードは、呼び出し可能サービスの一般的な結果を示しています。 ICSF および暗号化コプロセッサーの戻りコードおよび理由コードに戻りコードがリストされています。

reason_code
方向 タイプ
出力 整数

理由コードは、アプリケーション・プログラムに返される、呼び出し可能サービスの結果を示しています。 戻りコードにはそれぞれ、特定の処理問題を示すさまざまな理由コードが割り当てられています。 ICSF および暗号化コプロセッサーの戻りコードおよび理由コードに理由コードがリストされています。

exit_data_length
方向 タイプ
入出力 整数

インストール・システム出口に渡されるデータの長さ。 データは exit_data パラメーターで識別されます。

exit_data
方向 タイプ
入出力 ストリング

インストール・システム出口に渡されるデータ。

rule_array_count
方向 タイプ
入力 整数

rule_array パラメーターで指定するキーワードの数。 最小値は 3 です。最大値は 5 です。

rule_array
方向 タイプ
入力 ストリング

制御情報を呼び出し可能サービスに提供するキーワード。 キーワードは、連続するストレージ内になければならず、各キーワードはその 8 バイト位置で左寄せされ、右側にブランクが埋め込まれている必要があります。

表 1. EMV スクリプティング・サービスの規則配列キーワード
キーワード 意味
アルゴリズム (必須)
TDES Triple-DES の使用を指定します。
アクション (いずれかが必須)
SMINT 保全性があるセキュア・メッセージング。
SMCON 機密性があるセキュア・メッセージング。 MC 鍵モードと EMV 鍵モードのみがサポートされます。
SMCONPIN PIN を含むコマンド用の、機密性があるセキュア・メッセージング。
SMCONINT 機密性と保全性の両方があるセキュア・メッセージング。 MC 鍵モードと EMV 鍵モードのみがサポートされます。
SMCIPIN PIN を含むコマンド用の、機密性と保全性の両方があるセキュア・メッセージング。
VISAPIN Visa PIN 変更/ブロック解除は、「VISA Integrated Circuit Card Specification v1.4.0」で説明されているとおりに実行されます。
鍵モード (いずれかが必須)。 鍵導出メカニズムを定義します。
VISA Visa Cryptogram バージョン 10 の鍵導出を使用することを指定します。 SMCON および SMCONINT では無効です。
MC MasterCard M/CHIP 2.1 鍵導出を使用することを指定します。 random_number パラメーターが使用されます。 埋め込みは EMV の規則に従います。
EMV セッション鍵導出を使用することを指定します。これについては「EMV Integrated Circuit Card Specification for Payment Systems Version 4.2 (EMV4.2)」の第 2 巻、付録 A1.3 で定義されています。
制御フラグ (オプション)
APPANSEQ カード固有のマスター鍵を導出するときに PAN シーケンス番号を追加することを指定します。 pan および pan_seq_number の説明を参照してください。 デフォルトでは、PAN シーケンス番号を追加しません。
分岐因子 (1 つはオプション。鍵モード EMV でのみ有効)。 分岐因子は EMV セッション鍵導出で使用されます。
TDESEMV2 高さ 16 に分岐因子 2 を指定します。 これがデフォルトです。
TDESEMV4 高さ 8 に分岐因子 4 を指定します。
issuer_integrity_master_key_identifier_length
方向 タイプ
入力 整数

issuer_integrity_master_key_identifier パラメーターの長さ (バイト) を指定します。値は 0 または 64 でなければなりません。アクション・キーワード SMCON または SMCONPIN を指定した場合、値は 0 でなければならず、issuer_integrity_master_key_identifier パラメーターは無視されます。 そうでない場合、値は 64 でなければならず、鍵トークンまたはラベルを issuer_integrity_master_key_identifier パラメーターに指定する必要があります。

issuer_integrity_master_key_identifier
方向 タイプ
入出力 ストリング

保全性があるセキュア・メッセージングに使用される発行者マスター鍵 (アクション SMINT、SMCONINT、および SMCIPIN)、または認証用の発行者マスター鍵 (アクション VISAPIN) の、64 バイト DES 鍵 ID (内部トークンまたは鍵ラベルのいずれか)。

発行者マスター鍵は、スクリプティング用のカード固有鍵およびセッション鍵の導出元の DES 鍵です。

指定されたトークンが旧マスター鍵で暗号化されていた場合、このトークンは現行マスター鍵で暗号化されて返されます。

表 2. EMV スクリプティング・サービス: 鍵要件
鍵モード・キーワード 使用される鍵導出 鍵タイプ サブタイプ 鍵生成ビット
VISA SESS-XOR DKYGENKY 0 '0010' でなければなりません (キーワード DMAC)。
MC MasterCard M/Chip 2.1 DKYGENKY 1 '0010' でなければなりません (キーワード DMAC)。
EMV EMV 鍵導出 DKYGENKY 0 '0010' でなければなりません (キーワード DMAC)。
注: アクション VISAPIN の場合、これは認証用の発行者マスター鍵です。 この鍵は、PIN 変更/ブロック解除のための PIN ブロックの形成に使う素材の準備に使用されます。 その他の発行者マスター鍵については、カード固有の鍵は、同じ PAN データを使用して導出されます。 この鍵は、タイプ DKYGENKY、サブタイプ 0 でなければならず、鍵生成ビットは '0010' (キーワード DMAC) でなければなりません。
issuer_confidentiality_master_key_identifier_length
方向 タイプ
入力 整数

このパラメーターは、issuer_confidentiality_master_key_identifier パラメーターの長さ (バイト) を指定します。 値は 0 または 64 でなければなりません。アクション・キーワード SMINT を指定した場合、値は 0 でなければならず、issuer_confidentiality_master_key_identifier パラメーターは無視されます。 そうでない場合、値は 64 でなければならず、鍵トークンまたはラベルを issuer_confidentiality_master_key_identifier パラメーターに指定する必要があります。

issuer_confidentiality_master_key_identifier
方向 タイプ
入出力 ストリング

機密性があるセキュア・メッセージングに使用される発行者マスター鍵 (アクション SMCON、SMCONPIN、SMCONINT、SMCIPIN、VISAPIN) の、64 バイト DES 鍵 ID (内部トークンまたは鍵ラベルのいずれか)。 発行者マスター鍵は、スクリプティング用のカード固有鍵およびセッション鍵の導出元の DES 鍵です。

指定されたトークンが旧マスター鍵で暗号化されていた場合、このトークンは現行マスター鍵で暗号化されて返されます。

表 3. アクション SMCON および SMCONINT の鍵タイプ要件
鍵モード・キーワード 使用される鍵導出 鍵タイプ サブタイプ 鍵生成ビット
VISA SESS-XOR DKYGENKY 0 '0001' でなければなりません (キーワード DDATA)。
MC MasterCard M/Chip 2.1 DKYGENKY 1 '0001' でなければなりません (キーワード DDATA)。
EMV EMV 鍵導出 DKYGENKY 0 '0001' でなければなりません (キーワード DDATA)。
表 4. アクション SMCONPIN、SMCIPIN、および VISAPIN の鍵タイプ要件
鍵モード・キーワード 使用される鍵導出 鍵タイプ サブタイプ 鍵生成ビット
VISA SESS-XOR DKYGENKY 0 '1001' でなければなりません (キーワード DMPIN)。
MC MasterCard M/Chip 2.1 DKYGENKY 1 '1001' でなければなりません (キーワード DMPIN)。
EMV EMV 鍵導出 DKYGENKY 0 '1001' でなければなりません (キーワード DMPIN)。
new_PIN_encrypting_key_identifier_length
方向 タイプ
入力 整数

new_PIN_encrypting_key_identifier パラメーターの長さ (バイト) を指定します。値は 0 または 64 でなければなりません。 アクション・キーワード VISAPIN を指定した場合、値は 64 でなければなりません。 そうでない場合、値は 0 でなければならず、new_PIN_encrypting_key_identifier パラメーターは無視されます。

new_PIN_encrypting_key_identifier
方向 タイプ
入出力 ストリング

新規 PIN ブロックを暗号化する鍵の、64 バイト DES 鍵 ID (内部トークンまたは鍵ラベルのいずれか)。 鍵タイプは、IPINENC または OPINENC のいずれかにできます。 選択した規則に基づいて必要になる、別個の暗号化コプロセッサー・アクセス・ポイントがあります。 追加情報については、EMV スクリプティング・サービスにより使用される暗号サービスおよび アクセス制御点を参照してください。

指定されたトークンが旧マスター鍵で暗号化されていた場合、このトークンは現行マスター鍵で暗号化されて返されます。

current_PIN_encrypting_key_identifier_length
方向 タイプ
入力 整数

current_PIN_encrypting_key_identifier パラメーターの長さ (バイト) を指定します。値は 0 または 64 でなければなりません。アクション・キーワード SMCONPIN、SMCIPIN、または VISAPIN を指定した場合、値は 64 でなければなりません。 そうでない場合、値は 0 でなければならず、current_PIN_encrypting_key_identifier パラメーターは無視されます。

current_PIN_encrypting_key_identifier
方向 タイプ
入出力 ストリング

現在の PIN がある PIN ブロックを暗号化する鍵の、64 バイト DES 鍵 ID (内部トークンまたは鍵ラベルのいずれか)。

アクション SMCONPIN および SMCIPIN の場合、鍵タイプは IPINENC でなければなりません。 アクション VISAPIN の場合、鍵タイプは IPINENC または OPINENC のいずれかにできます。

選択した規則に応じて必要になる、別個の暗号化コプロセッサー・アクセス・ポイントがあります。 追加情報については、EMV スクリプティング・サービスにより使用される暗号サービスおよび アクセス制御点を参照してください。

指定されたトークンが旧マスター鍵で暗号化されていた場合、このトークンは現行マスター鍵で暗号化されて返されます。

new_PIN_block
方向 タイプ
入力 ストリング

new_PIN_encrypting_key_identifier によって暗号化された 8 バイト PIN ブロック。

VISAPIN の場合、これは新規 PIN です。 すべての PIN ブロック・フォーマットがサポートされます。 他のすべてのアクション・キーワードの場合、このパラメーターは無視されます。

current_PIN_block
方向 タイプ
入力 ストリング

current_PIN_encrypting_key_identifier により暗号化された現在の PIN の 8 バイトの PIN ブロック。

VISAPIN が指定される場合、これが現在の PIN です。 すべての PIN ブロック・フォーマットがサポートされます。

SMCONPIN または SMCIPIN が指定される場合、サポートされる PIN ブロック・フォーマットは ISO-0、ISO-1、および ISO-2 です。

アクション・キーワードが SMCON、SMCONINT、または SMINT の場合、このパラメーターは無視されます。

pan_length
方向 タイプ
入力 整数

pan パラメーターの長さ (バイト)。値は 10 でなければなりません。

pan
方向 タイプ
入力 ストリング

10 バイトの EMV カードの 1 次アカウント番号。 データは、スペースなしの数字フォーマットであり、10 バイト・フィールド内で右寄せされ、左側にゼロが埋め込まれたものでなければなりません。 例えば、PAN 1234567890 は、x'00000000001234567890' と入力する必要があります。

このデータは、カードのマスター鍵を導出するために、PAN シーケンス番号と組み合わせて使用されます。 規則の全セットは、「EMV Integrated Circuit Card Specification for Payment Systems Version 4.2 (EMV4.2)」の第 2 巻、付録 A1.4 で説明されています。

pan_seq_number
方向 タイプ
入力 ストリング

EMV カードの 1 次アカウント番号の 1 バイト・シーケンス番号。 APPANSEQ 制御フラグ規則配列キーワードが指定されている場合、カードのマスター鍵を導出するために、この PAN シーケンス番号は PAN と組み合わせて使用されます。 規則の全セットは、「EMV Integrated Circuit Card Specification for Payment Systems Version 4.2 (EMV4.2)」の第 2 巻、付録 A1.4 で説明されています。

atc
方向 タイプ
入力 ストリング

セッション鍵導出に使用される 2 バイトのアプリケーション・トランザクション・カウンター。 セッション鍵導出の詳細については、鍵モードの規則を参照してください。

このパラメーターは 2 バイトでなければなりません。
注: 最初のバイトは上位バイトで、2 番目のバイトは低位バイトです。
unpredicatable_number
方向 タイプ
入力 ストリング

MasterCard M/CHIP 2.1 処理でのセキュア・メッセージング用の 8 バイトの乱数。 鍵モードが MC の場合にのみ使用されます。 その他の場合、このパラメーターは無視されます。

input_message_length
方向 タイプ
入力 整数

input_message パラメーターで指定されたメッセージの長さ。

この値は 8 から 320 の範囲でなければなりません。 鍵モード規則 VISA の場合、この値は 8 から 255 の範囲でなければなりません。

input_message
方向 タイプ
入力 ストリング
保護されるメッセージ。 埋め込みは次のように実行されます。
アクション VISAPIN の場合:
左側に、PIN ブロックの長さ (8 バイト) を含む 1 バイト、および '80' バイトと、長さが 16 バイトになるまでそれに続くいくつかの '00' バイトとなります。 このアクションの場合、出力 PIN ブロックは 16 バイトです。 暗号化は ECB モードで実行されます。
機密性を伴うスクリプティングの場合:
メッセージは、8 バイトの倍数でない場合にのみ埋め込みが行われます。 EMV 埋め込みが使用されます。
保全性を伴うスクリプティングの場合:
メッセージは、8 バイトの倍数でない場合にのみ埋め込みが行われます。 EMV 埋め込みが使用されます。

EMV カードに合わせたメッセージのフォーマット設定は、アプリケーションにより実行されます。

PIN_offset
方向 タイプ
入力 整数

PIN ブロックが置かれる、保護されるメッセージ内のオフセット。 最初の位置のオフセットは 0 です。

このパラメーターは、VISAPIN、SMINT、および SMCON の各キーワードが指定される場合は無視されます。

PIN_format
方向 タイプ
入力 ストリング

いずれかの PIN フォーマットで埋め込み数字が必要とされる場合には、この 17 バイトは、入力および出力の PIN ブロック・フォーマット用の 2 つの 8 バイト・フィールドに、埋め込み数字用の 1 バイトを加えたもので構成されます。

以下の PIN 形式がサポートされています。
アクション SMCONPIN および SMCIPIN の場合は、次のようになります。
ISO-0、ISO-1、および ISO-2 です。 両方の 8 バイト・ブロックを完全に指定する必要があります。
アクション VISAPIN の場合:
すべての PIN 形式がサポートされています。 「ICSF Application Programmer's Guide」を参照してください。 このアクションでは、先頭の 8 バイト (および場合によっては埋め込み数字) のみが使用されます。

埋め込み数字の指定は、PIN フォーマットに “3624“ を指定する場合に行う必要があります。

このパラメーターは、SMINT キーワードと SMCON キーワードが指定される場合は無視されます。

output_message_length
方向 タイプ
入力 整数

入力では、処理されたメッセージを受け取るバッファーの長さ。 値は少なくとも、入力メッセージに埋め込みを加えた長さにする必要があります。

出力では、output_message_length パラメーターで返されるメッセージの実際の長さ。

このパラメーターはキーワード SMINT が指定されると無視されます。

output_message
方向 タイプ
入力 ストリング

実際のキーワードが SMCON、SMCONPIN、SMCONINT、SMCIPIN、または VISAPIN である場合の暗号化されたメッセージ。

EMV カードに合わせたメッセージのフォーマット設定は、アプリケーションにより実行されます。

mac_length
方向 タイプ
入力 整数

mac パラメーターで返される MAC のバイト数。 MAC は、保全性があるセキュア・メッセージングに対して返されます。 値 4、6、および 8 がサポートされます。

このパラメーターは、キーワード SMCOM、SMCONPIN、または VISAPIN が指定されると無視されます。

mac
方向 タイプ
入力 ストリング

アクション SMINT、SMCONINT、および SMCIPIN に対して計算される MAC 値。

アクション SMCONINT および SMCIPIN の場合、保全性保護の結果の MAC は、このパラメーターで出力され、暗号化の結果は出力メッセージ・パラメーターで出力されます。

reserved1_length
方向 タイプ
入力 整数

reserved1 パラメーターの長さ (バイト)。 値は 0 でなければなりません。

reserved1
方向 タイプ
入力 ストリング

このフィールドは無視されます。

reserved2_length
方向 タイプ
入力 整数

reserved2 パラメーターの長さ (バイト)。 値は 0 でなければなりません。

reserved2
方向 タイプ
入力 ストリング

このフィールドは無視されます。

使用上の注意

呼び出し側がこの呼び出し可能サービス、鍵ラベル、または CKDS に保管された内部セキュア鍵トークンの使用を許可されているかを検査するために、SAF が呼び出される場合があります。

EMV スクリプティング・サービスにより使用される暗号サービス

以下の CCA 暗号サービスは、EMV スクリプティング・サービスにより使用されます。
アクション SMINT の場合:
  • CSNBKTB - 鍵トークン作成
  • CSNBDKG - 変形鍵の生成
  • CSNBMGN - MAC 生成
アクション SMCON の場合:
  • CSNBKTB - 鍵トークン作成
  • CSNBDKG - 変形鍵の生成
  • CSNBENC - 暗号化
アクション SMCONPIN の場合:
  • CSNBKTB - 鍵トークン作成
  • CSNBDKG - 変形鍵の生成
  • CSNBSPN - PIN のセキュア・メッセージ
アクション SMCONINT の場合:
  • CSNBKTB - 鍵トークン作成
  • CSNBDKG - 変形鍵の生成
  • CSNBMGN - MAC 生成
  • CSNBENC - 暗号化
アクション SMCIPIN の場合:
  • CSNBKTB - 鍵トークン作成
  • CSNBDKG - 変形鍵の生成
  • CSNBMGN - MAC 生成
  • CSNBSPN - PIN のセキュア・メッセージ
アクション VISAPIN の場合:
  • CSNBKTB - 鍵トークン作成
  • CSNBPCU - VISA PIN 変更/ブロック解除

呼び出し側は、これらの各サービスに対する許可は必要なく、EMV スクリプティング・サービスに対する許可のみが必要です。 さらに、呼び出し側は、必須のアクセス制御点が有効になっている必要があります (必須のアクセス制御点については、以下の情報を参照してください)。

アクセス制御点

EMV スクリプティング・サービスを使用するには、以下のアクセス制御点を有効にする必要があります。
アクション SMINT の場合:
  • 変形鍵の生成 - TDES-ENC
  • 変形鍵の生成 - TDES-XOR
  • 変形鍵の生成 - SESS-XOR
  • 変形鍵の生成 - TDESEMV2/TDESEMV4
  • MAC 生成
アクション SMCON の場合:
  • 変形鍵の生成 - TDES-ENC
  • 変形鍵の生成 - TDES-XOR
  • 変形鍵の生成 - SESS-XOR
  • 変形鍵の生成 - TDESEMV2/TDESEMV4
  • Encipher - DES
アクション SMCONPIN の場合:
  • 変形鍵の生成 - TDES-ENC
  • 変形鍵の生成 - TDES-XOR
  • 変形鍵の生成 - SESS-XOR
  • 変形鍵の生成 - TDESEMV2/TDESEMV4
  • PIN のセキュア・メッセージング
アクション SMCONINT の場合:
  • 変形鍵の生成 - TDES-ENC
  • 変形鍵の生成 - TDES-XOR
  • 変形鍵の生成 - TDESEMV2/TDESEMV4
  • MAC 生成
  • Encipher - DES
アクション SMCIPIN の場合:
  • 変形鍵の生成 - TDES-ENC
  • 変形鍵の生成 - TDES-XOR
  • 変形鍵の生成 - TDESEMV2/TDESEMV4
  • MAC 生成
  • PIN のセキュア・メッセージング
アクション VISAPIN の場合:
  • PIN 変更/ブロック解除 - OPINENC での EMV PIN の変更
  • PIN 変更/ブロック解除 - IPINENC での EMV PIN の変更

必須ハードウェア

下表に、各サーバー・タイプに必要な暗号化ハードウェアを示し、この呼び出し可能サービスの制約事項について説明します。

表 5. EMV スクリプティング・サービスの必須ハードウェア
サーバー 必須暗号化ハードウェア 制約事項

IBM System z9 EC
IBM System z9 BC

Crypto Express2 コプロセッサー  

IBM System z10 EC
IBM System z10 BC

Crypto Express2 コプロセッサー

Crypto Express3 コプロセッサー

 

IBM zEnterprise 196
IBM zEnterprise 114

Crypto Express3 コプロセッサー  

IBM zEnterprise EC12
IBM zEnterprise BC12

Crypto Express3 コプロセッサー

Crypto Express4 CCA コプロセッサー

 

IBM z13
IBM z13s

Crypto Express5 CCA コプロセッサー