翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
EMV MAC の生成と検証
EMV MAC は、EMV 派生キーの入力を使用して MAC になり、結果のデータに対して ISO9797-3 (小売) MAC を実行します。EMV MAC は通常、ブロック解除スクリプトなどの EMV カードにコマンドを送信するために使用されます。
注記
AWS Payment Cryptography はスクリプトの内容を検証しません。含める特定のコマンドの詳細については、スキームまたはカードマニュアルを参照してください。
詳細については、 API ガイドのMacAlgorithmEmv」を参照してください。
キーを作成する
$
aws payment-cryptography create-key --exportable --key-attributes KeyAlgorithm=TDES_2KEY,KeyUsage=TR31_E2_EMV_MKEY_INTEGRITY,KeyClass=SYMMETRIC_KEY,KeyModesOfUse='{DeriveKey=true}' --tags='[{"Key":"KEY_PURPOSE","Value":"CVN18"},{"Key":"CARD_BIN","Value":"12345678"}]'
レスポンスには、後続の呼び出し用の ARN やキーチェック値 (KCV) などのリクエストパラメータがエコーバックされます。
{ "Key": { "KeyArn": "arn:aws:payment-cryptography:us-east-2::key/pw3s6nl62t5ushfk", "KeyAttributes": { "KeyUsage": "TR31_E2_EMV_MKEY_INTEGRITY", "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" } }
arn:aws:payment-cryptography:us-east-2::key/pw3s6nl62t5ushfk など、キーKeyArn
を表す を書き留めます。これは次のステップで行います。
EMV MAC の生成
一般的なフローは、バックエンドプロセスが EMV スクリプトを生成し (カードのブロック解除など)、このコマンドを使用して署名し (1 つの特定のカードに固有の 1 回限りのキーを取得)、MAC を返すことです。次に、適用するカードにコマンド + MAC が送信されます。コマンドをカードに送信することは AWS Payment Cryptography の範囲外です。
注記
このコマンドは、暗号化されたデータ (PIN など) が送信されない場合のコマンドを対象としています。EMV Encrypt をこのコマンドと組み合わせて、このコマンドを呼び出す前に暗号化されたデータを発行者スクリプトに追加できます。
- メッセージデータ
メッセージデータには、APDU ヘッダーとコマンドが含まれます。これは実装によって異なる場合がありますが、この例はブロック解除 (84 24 00 00 08) の APDU ヘッダーで、その後に ATC (0007) が続き、次に前のトランザクションの ARQC (999E57FD0F47CACE) が続きます。サービスはこのフィールドの内容を検証しません。
- セッションキー取得モード
このフィールドは、セッションキーの生成方法を定義します。EMV_COMMON_SESSION_KEY は新しい実装に一般的に使用されますが、EMV2000 | AMEX | MASTERCARD_SESSION_KEY | VISA も使用できます。
- MajorKeyDerivationMode
EMV はモード A、B、または C を定義します。モード A が最も一般的であり、 AWS Payment Cryptography は現在モード A またはモード B をサポートしています。
- PAN
アカウント番号。通常はチップフィールド 5A または ISO8583 フィールド 2 で使用できますが、カードシステムから取得することもできます。
- PSN
カードシーケンス番号。使用しない場合は、00 と入力します。
- SessionKeyDerivationValue
これはセッションごとの取得データです。取得スキームに応じて、フィールド 9F26 の最後の ARQC (ApplicationCryptogram) または 9F36 の最後の ATC のいずれかになります。
- [Padding] (パディング)
パディングは自動的に適用され、ISO/IEC 9797-1 パディング方法 2 を使用します。
$
aws payment-cryptography-data generate-mac --message-data 84240000080007999E57FD0F47CACE --key-identifier arn:aws:payment-cryptography:us-east-2::key/pw3s6nl62t5ushfk --message-data 8424000008999E57FD0F47CACE0007 --generation-attributes EmvMac="{MajorKeyDerivationMode=EMV_OPTION_A,PanSequenceNumber='00',PrimaryAccountNumber='2235521304123282',SessionKeyDerivationMode=EMV_COMMON_SESSION_KEY,SessionKeyDerivationValue={ApplicationCryptogram='999E57FD0F47CACE'}}"
{ "KeyArn": "arn:aws:payment-cryptography:us-east-2::key/pw3s6nl62t5ushfk", "KeyCheckValue": "08D7B4", "Mac":"5652EEDF83EA0D84" }