

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Visa 固有の関数
<a name="use-cases-issuers.networkfunctions.visa"></a>

**Topics**
+ [ARQC - CVN18/CVN22](#use-cases-issuers.networkfunctions.visa.cvn18)
+ [ARQC - CVN10](#use-cases-issuers.networkfunctions.visa.cvn10)
+ [3DS CAVV V7](#use-cases-issuers.networkfunctions.visa.cavv-v7)
+ [dCVV (動的カード検証値) - CVN17](#use-cases-issuers.networkfunctions.visa.dcvv)

## ARQC - CVN18/CVN22
<a name="use-cases-issuers.networkfunctions.visa.cvn18"></a>

CVN18 および CVN22 は、キー取得の [CSK メソッド](use-cases-issuers.generalfunctions.arqc.md)を使用します。正確なトランザクションデータは、これら 2 つの方法によって異なります。トランザクションデータフィールドの構築の詳細については、スキームドキュメントを参照してください。

## ARQC - CVN10
<a name="use-cases-issuers.networkfunctions.visa.cvn10"></a>

CVN10 は、EMV トランザクションの古い Visa メソッドであり、セッション (トランザクションごと) 取得ではなく、カードキー取得ごとに を使用し、別のペイロードも使用します。ペイロードの内容の詳細については、スキームにお問い合わせください。

### キーの作成
<a name="use-cases-issuers.networkfunctions.visa.cvn10.setup"></a>

```
$ aws payment-cryptography create-key --exportable --key-attributes KeyAlgorithm=TDES_2KEY,KeyUsage=TR31_E0_EMV_MKEY_APP_CRYPTOGRAMS,KeyClass=SYMMETRIC_KEY,KeyModesOfUse='{DeriveKey=true}' --tags='[{"Key":"KEY_PURPOSE","Value":"CVN10"},{"Key":"CARD_BIN","Value":"12345678"}]'
```

レスポンスには、後続の呼び出し用の ARN やキーチェック値 (KCV) などのリクエストパラメータがエコーバックされます。

```
{
            "Key": {
                "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/pw3s6nl62t5ushfk",
                "KeyAttributes": {
                    "KeyUsage": "TR31_E0_EMV_MKEY_APP_CRYPTOGRAMS",
                    "KeyClass": "SYMMETRIC_KEY",
                    "KeyAlgorithm": "TDES_2KEY",
                    "KeyModesOfUse": {
                        "Encrypt": false,
                        "Decrypt": false,
                        "Wrap": false,
                        "Unwrap": false,
                        "Generate": false,
                        "Sign": false,
                        "Verify": false,
                        "DeriveKey": true,
                        "NoRestrictions": false
                    }
                },
                "KeyCheckValue": "08D7B4",
                "KeyCheckValueAlgorithm": "ANSI_X9_24",
                "Enabled": true,
                "Exportable": true,
                "KeyState": "CREATE_COMPLETE",
                "KeyOrigin": "AWS_PAYMENT_CRYPTOGRAPHY",
                "CreateTimestamp": "2024-03-07T06:41:46.648000-07:00",
                "UsageStartTimestamp": "2024-03-07T06:41:46.626000-07:00"
            }
        }
```

キー`KeyArn`を表す に注意してください。例えば、*arn:aws:payment-cryptography:us-east-2:111122223333:key/pw3s6nl62t5ushfk* です。これは次のステップで行います。

### ARQC を検証する
<a name="use-cases-issuers.networkfunctions.visa.cvn10.validation"></a>

**Example**  
この例では、Visa CVN10 を使用して生成された ARQC の検証を行います。  
 AWS Payment Cryptography が ARQC を検証できる場合、http/200 が返されます。arqc が検証されない場合、http/400 レスポンスが返されます。  

```
$ aws payment-cryptography-data verify-auth-request-cryptogram --auth-request-cryptogram D791093C8A921769 \
  --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/pw3s6nl62t5ushfk \
  --major-key-derivation-mode EMV_OPTION_A \ 
  --transaction-data 00000000170000000000000008400080008000084016051700000000093800000B03011203000000 \
  --session-key-derivation-attributes='{"Visa":{"PanSequenceNumber":"01" \ 
  ,"PrimaryAccountNumber":"9137631040001422"}}'
```

```
{
    "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/pw3s6nl62t5ushfk",
    "KeyCheckValue": "08D7B4"
  }
```

## 3DS CAVV V7
<a name="use-cases-issuers.networkfunctions.visa.cavv-v7"></a>

Visa Secure (3DS) トランザクションの場合、発行者アクセスコントロールサーバー (ACS) によって CAVV (カード所有者認証検証値) が生成されます。CAVV は、カード所有者認証が行われた証拠であり、認証トランザクションごとに一意であり、アクワイアラーによって認可メッセージで提供されます。CAVV v7 は、マーチャント名、購入金額、購入日などの要素を含む、トランザクションに関する追加データを承認にバインドします。このようにして、実質的にトランザクションペイロードの暗号化ハッシュになります。

暗号的には、CAVV V7 は CVV アルゴリズムを使用しますが、入力はすべて変更/再利用されています。CAVV V7 ペイロードを生成する入力を生成する方法については、適切なサードパーティー/Visa のドキュメントを参照してください。

### キーを作成する
<a name="use-cases-issuers.networkfunctions.visa.cavv-v7.setup"></a>

```
$ aws payment-cryptography create-key --exportable --key-attributes KeyAlgorithm=TDES_2KEY,KeyUsage=TR31_C0_CARD_VERIFICATION_KEY,KeyClass=SYMMETRIC_KEY,KeyModesOfUse='{Generate=true,Verify=true}' --tags='[{"Key":"KEY_PURPOSE","Value":"CAVV-V7"},{"Key":"CARD_BIN","Value":"12345678"}]'
```

レスポンスには、後続の呼び出し用の ARN やキーチェック値 (KCV) などのリクエストパラメータがエコーバックされます。

```
{
            "Key": {
                "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/dnaeyrjgdjjtw6dk",
                "KeyAttributes": {
                    "KeyUsage": "TR31_C0_CARD_VERIFICATION_KEY",
                    "KeyClass": "SYMMETRIC_KEY",
                    "KeyAlgorithm": "TDES_2KEY",
                    "KeyModesOfUse": {
                        "Encrypt": false,
                        "Decrypt": false,
                        "Wrap": false,
                        "Unwrap": false,
                        "Generate": true,
                        "Sign": false,
                        "Verify": true,
                        "DeriveKey": false,
                        "NoRestrictions": false
                    }
                },
                "KeyCheckValue": "F3FB13",
                "KeyCheckValueAlgorithm": "ANSI_X9_24",
                "Enabled": true,
                "Exportable": true,
                "KeyState": "CREATE_COMPLETE",
                "KeyOrigin": "AWS_PAYMENT_CRYPTOGRAPHY",
                "CreateTimestamp": "2023-06-05T06:41:46.648000-07:00",
                "UsageStartTimestamp": "2023-06-05T06:41:46.626000-07:00"
            }
        }
```

キー`KeyArn`を表す を書き留めます。例えば、*arn:aws:payment-cryptography:us-east-2:111122223333:key/dnaeyrjgdjjtw6dk* です。これは次のステップで行います。

### CAVV V7 を生成する
<a name="use-cases-issuers.networkfunctions.visa.cavv-v7.generate"></a>

**Example**  
この例では、仕様で指定された入力を持つ特定のトランザクションの CAVV V7 を生成します。このアルゴリズムでは、フィールドが再利用/再利用される可能性があるため、フィールドラベルが入力と一致すると想定しないでください。  
使用可能なすべてのパラメータについては、 API リファレンスガイドの [CardVerificationValue1](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_CardVerificationValue1.html) を参照してください。  

```
$ aws payment-cryptography-data generate-card-validation-data --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/dnaeyrjgdjjtw6dk --primary-account-number=171234567890123 --generation-attributes CardVerificationValue1='{CardExpiryDate=9431,ServiceCode=431}'
```

```
              {
                  "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/dnaeyrjgdjjtw6dk",
                  "KeyCheckValue": "F3FB13",
                  "ValidationData": "491"
              }
```

### CAVV V7 を検証する
<a name="use-cases-issuers.networkfunctions.visa.cavv-v7.verify"></a>

**Example**  
検証の場合、入力は CVK、計算された入力値、検証するトランザクション中に提供された CAVV です。  
使用可能なすべてのパラメータについては、 API リファレンスガイドの [CardVerificationValue1](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_CardVerificationValue1.html) を参照してください。  
CAVV はユーザーが入力した値 (CVV2 など) ではありませんが、発行者 ACS によって計算されます。提供されたときに常に検証する必要があるかどうかを考慮する必要があります。

```
$ aws payment-cryptography-data verify-card-validation-data --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/dnaeyrjgdjjtw6dk --primary-account-number=171234567890123 --verification-attributes CardVerificationValue1='{CardExpiryDate=9431,ServiceCode=431} --validation-data 491
```

```
{
                "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/dnaeyrjgdjjtw6dk",
                "KeyCheckValue": "F3FB13",
                "ValidationData": "491"
}
```

## dCVV (動的カード検証値) - CVN17
<a name="use-cases-issuers.networkfunctions.visa.dcvv"></a>

dCVV (動的カード検証値) は、非接触 EMV トランザクションに使用される Visa 固有の動的暗号文です。初期 EMV と呼ばれ、トランザクションごとに一意の検証値を生成することでセキュリティを強化します。dCVV は、プライマリアカウント番号 (PAN)、PAN シーケンス番号 (PSN)、アプリケーショントランザクションカウンター (ATC)、予測不可能な番号、トラックデータなどの入力を使用します。まだいくつかの場所で使用されていますが、主に CVN18 などの他のアルゴリズムに置き換えられています。

使用可能なすべてのパラメータについては、 API リファレンスガイドの[DynamicCardVerificationValue](https://docs.aws.amazon.com/payment-cryptography/latest/DataAPIReference/API_DynamicCardVerificationValue.html)」を参照してください。

### キーの作成
<a name="use-cases-issuers.networkfunctions.visa.dcvv.setup"></a>

```
$ aws payment-cryptography create-key --exportable --key-attributes KeyAlgorithm=TDES_2KEY,KeyUsage=TR31_E4_EMV_MKEY_DYNAMIC_NUMBERS,KeyClass=SYMMETRIC_KEY,KeyModesOfUse='{Generate=true,Verify=true}' --tags='[{"Key":"KEY_PURPOSE","Value":"DCVV"},{"Key":"CARD_BIN","Value":"12345678"}]'
```

レスポンスには、後続の呼び出し用の ARN やキーチェック値 (KCV) などのリクエストパラメータがエコーバックされます。

```
{
            "Key": {
                "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/mw7dn3qxvkfh8ztc",
                "KeyAttributes": {
                    "KeyUsage": "TR31_E4_EMV_MKEY_DYNAMIC_NUMBERS",
                    "KeyClass": "SYMMETRIC_KEY",
                    "KeyAlgorithm": "TDES_2KEY",
                    "KeyModesOfUse": {
                        "Encrypt": false,
                        "Decrypt": false,
                        "Wrap": false,
                        "Unwrap": false,
                        "Generate": true,
                        "Sign": false,
                        "Verify": true,
                        "DeriveKey": false,
                        "NoRestrictions": false
                    }
                },
                "KeyCheckValue": "A8E4D2",
                "KeyCheckValueAlgorithm": "ANSI_X9_24",
                "Enabled": true,
                "Exportable": true,
                "KeyState": "CREATE_COMPLETE",
                "KeyOrigin": "AWS_PAYMENT_CRYPTOGRAPHY",
                "CreateTimestamp": "2025-02-02T11:45:30.648000-08:00",
                "UsageStartTimestamp": "2025-02-02T11:45:30.626000-08:00"
            }
        }
```

キー`KeyArn`を表す に注意してください。例えば、*arn:aws:payment-cryptography:us-east-2:111122223333:key/mw7dn3qxvkfh8ztc* です。これは次のステップで行います。

### dCVV の生成
<a name="use-cases-issuers.networkfunctions.visa.dcvv.generate"></a>

**Example**  
この例では、非接触 EMV トランザクションの dCVV を生成します。入力には、PAN、PAN シーケンス番号、アプリケーショントランザクションカウンター、予測不可能な番号、追跡データが含まれます。  

```
$ aws payment-cryptography-data generate-card-validation-data --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/mw7dn3qxvkfh8ztc \
    --primary-account-number=5111112627662122 \
    --generation-attributes DynamicCardVerificationValue='{ApplicationTransactionCounter=01,PanSequenceNumber=00,TrackData=12345,UnpredictableNumber=123}' \
    --validation-data-length 5
```

```
{
    "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/mw7dn3qxvkfh8ztc",
    "KeyCheckValue": "A8E4D2",
    "ValidationData": "36667"
}
```

### dCVV を検証する
<a name="use-cases-issuers.networkfunctions.visa.dcvv.verify"></a>

**Example**  
この例では、トランザクション中に提供された dCVV を検証します。検証のためには、生成に使用されるのと同じ入力を指定する必要があります。  
 AWS Payment Cryptography が検証できる場合、http/200 が返されます。値が検証されない場合、http/400 レスポンスが返されます。  

```
$ aws payment-cryptography-data verify-card-validation-data --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/mw7dn3qxvkfh8ztc \
    --primary-account-number=5111112627662122 \
    --validation-data=36667 \
    --verification-attributes DynamicCardVerificationValue='{ApplicationTransactionCounter=01,PanSequenceNumber=00,TrackData=12345,UnpredictableNumber=123}'
```

```
{
    "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/mw7dn3qxvkfh8ztc",
    "KeyCheckValue": "A8E4D2"
}
```