EMV スクリプティング・サービス (CSNBESC および CSNEESC)
EMV スクリプティング・サービスは、EMV 支払いカードにコマンドを送信するためのメカニズムです。 コマンドは、カード・パラメーターの更新に使用されます。これには PIN が含まれる可能性もあります。 コマンドは機密性のために暗号化されるか、保全性のために MAC 処理されるか、あるいはその両方が行われる場合があります。
スクリプトは、支払いカードからトランザクションを受け取ったときに、発行者または発行者のエージェントによって生成されます。 このサービスは、スクリプトを入力として受け取り、それを暗号化または MAC 処理し (あるいはその両方を行い)、暗号化されたスクリプトまたは MAC のいずれか (あるいはその両方) を返します。 出力は、応答とともに支払いカードに送り返すことを目的としています。
- 保全性を伴うスクリプティング。
メッセージは、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 スクリプティング・サービスにより使用される暗号サービス
- アクション 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 スクリプティング・サービスに対する許可のみが必要です。 さらに、呼び出し側は、必須のアクセス制御点が有効になっている必要があります (必須のアクセス制御点については、以下の情報を参照してください)。
アクセス制御点
- アクション 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 の変更
必須ハードウェア
下表に、各サーバー・タイプに必要な暗号化ハードウェアを示し、この呼び出し可能サービスの制約事項について説明します。
| サーバー | 必須暗号化ハードウェア | 制約事項 |
|---|---|---|
IBM System z9 EC |
Crypto Express2 コプロセッサー | |
IBM System z10 EC |
Crypto Express2 コプロセッサー Crypto Express3 コプロセッサー |
|
IBM zEnterprise 196 |
Crypto Express3 コプロセッサー | |
IBM zEnterprise EC12 |
Crypto Express3 コプロセッサー Crypto Express4 CCA コプロセッサー |
|
IBM z13 |
Crypto Express5 CCA コプロセッサー |