View a markdown version of this page

美国运通的特定功能 - AWS 支付密码学

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

美国运通的特定功能

CSC1

CSC 版本 1 也被称为经典 CSC 算法。该服务可以以 3,4 或 5 位数字的形式提供。

有关所有可用参数,请参阅 API 参考指南中的 AmexCardSecurityCodeVersion1

创建密钥

$ 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":"CSC1"},{"Key":"CARD_BIN","Value":"12345678"}]'

响应会回显请求参数,包括后续调用的 ARN 以及密钥检查值 (KCV)。

{ "Key": { "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/esh6hn7pxdtttzgq", "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": "8B5077", "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/esh6hn7pxd tttzgq。您需要在下一步中执行该操作。

生成一个 CSC1

$ aws payment-cryptography-data generate-card-validation-data --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/esh6hn7pxdtttzgq --primary-account-number=344131234567848 --generation-attributes AmexCardSecurityCodeVersion1='{CardExpiryDate=1224}' --validation-data-length 4
{ "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/esh6hn7pxdtttzgq", "KeyCheckValue": "8B5077", "ValidationData": "3938" }

验证 CSC1

在此示例中,我们将验证 a CSC1。

如果 AWS 支付密码学能够验证,则会返回 http/200。如果该值未经过验证,它将返回 http/400 响应。

$ aws payment-cryptography-data verify-card-validation-data --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/esh6hn7pxdtttzgq --primary-account-number=344131234567848 --verification-attributes AmexCardSecurityCodeVersion1='{CardExpiryDate=1224}'' --validation-data 3938
{ "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/esh6hn7pxdtttzgq", "KeyCheckValue": "8B5077" }

CSC2

CSC 版本 2 也被称为增强型 CSC 算法。该服务可以以 3,4 或 5 位数字的形式提供。的服务代码通常 CSC2 为 000。

有关所有可用参数,请参阅 API 参考指南中的 AmexCardSecurityCodeVersion2

创建密钥

$ 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":"CSC2"},{"Key":"CARD_BIN","Value":"12345678"}]'

响应会回显请求参数,包括后续调用的 ARN 以及密钥检查值 (KCV)。

{ "Key": { "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/erlm445qvunmvoda", "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": "BF1077", "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/erlm445qvunmvoda。您需要在下一步中执行该操作。

生成一个 CSC2

在此示例中,我们将生成长 CSC2 度为 4 的。可以生成长度为 3,4 或 5 的 CSC。对于美国运通, PANs 应为 15 位数字,并以 34 或 37 开头。过期日期的格式通常为 YYMM。服务代码可能有所不同-请查看您的手册,但典型值为 000、201 或 702

$ aws payment-cryptography-data generate-card-validation-data --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/erlm445qvunmvoda --primary-account-number=344131234567848 --generation-attributes AmexCardSecurityCodeVersion2='{CardExpiryDate=2412,ServiceCode=000}' --validation-data-length 4
{ "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/erlm445qvunmvoda", "KeyCheckValue": "BF1077", "ValidationData": "3982" }

验证 CSC2

在此示例中,我们将验证 a CSC2。

如果 AWS 支付密码学能够验证,则会返回 http/200。如果该值未经过验证,它将返回 http/400 响应。

$ aws payment-cryptography-data verify-card-validation-data --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/erlm445qvunmvoda --primary-account-number=344131234567848 --verification-attributes AmexCardSecurityCodeVersion2='{CardExpiryDate=2412,ServiceCode=000}' --validation-data 3982
{ "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/erlm445qvunmvoda", "KeyCheckValue": "BF1077" }

ICSC

iCSC 也被称为静态 CSC 算法,使用 CSC 版本 2 进行计算。该服务可以以 3,4 或 5 位数字的形式提供。

使用服务代码 999 计算联系人卡片的 icSC。使用服务代码 702 计算非接触式卡的 iSCC。

有关所有可用参数,请参阅 API 参考指南中的 AmexCardSecurityCodeVersion2

创建密钥

$ 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":"CSC1"},{"Key":"CARD_BIN","Value":"12345678"}]'

响应会回显请求参数,包括后续调用的 ARN 以及密钥检查值 (KCV)。

{ "Key": { "KeyArn": "arn:aws:payment-cryptography:us-east-1:111122223333:key/7vrybrbvjcvwtunv", "KeyAttributes": { "KeyUsage": "TR31_C0_CARD_VERIFICATION_KEY" "KeyAlgorithm": "TDES_2KEY", "KeyClass": "SYMMETRIC_KEY", "KeyModesOfUse": { "Decrypt": false, "DeriveKey": false, "Encrypt": false, "Generate": true, "NoRestrictions": false, "Sign": false, "Unwrap": false, "Verify": true, "Wrap": false }, }, "KeyCheckValue": "7121C7", "KeyCheckValueAlgorithm": "ANSI_X9_24", "Enabled": true, "Exportable": true, "KeyOrigin": "AWS_PAYMENT_CRYPTOGRAPHY", "KeyState": "CREATE_COMPLETE", "CreateTimestamp": "2025-01-29T09:19:21.209000-05:00", "UsageStartTimestamp": "2025-01-29T09:19:21.192000-05:00" } }

注意代表密钥的那个KeyArn,例如 arn: aws: payment-cryptography: us-east-1:111122223333: key/7vrybrbvjcvjcvw tunv。您需要在下一步中执行该操作。

生成一个 iSCC

在此示例中,我们将为使用服务代码 702 的非接触式卡生成长度为 4 的 iCSC。可以生成长度为 3,4 或 5 的 CSC。对于美国运通, PANs 应为 15 位数字,并以 34 或 37 开头。

$ aws payment-cryptography-data generate-card-validation-data --key-identifier arn:aws:payment-cryptography:us-east-1:111122223333:key/7vrybrbvjcvwtunv --primary-account-number=344131234567848 --generation-attributes AmexCardSecurityCodeVersion2='{CardExpiryDate=1224,ServiceCode=702}' --validation-data-length 4
{ "KeyArn": arn:aws:payment-cryptography:us-east-1:111122223333:key/7vrybrbvjcvwtunv, "KeyCheckValue": 7121C7, "ValidationData": "2365" }

验证 iSCC

在此示例中,我们将验证 iSCC。

如果 AWS 支付密码学能够验证,则会返回 http/200。如果该值未经过验证,它将返回 http/400 响应。

$ aws payment-cryptography-data verify-card-validation-data --key-identifier arn:aws:payment-cryptography:us-east-1:111122223333:key/7vrybrbvjcvwtunv --primary-account-number=344131234567848 --verification-attributes AmexCardSecurityCodeVersion2='{CardExpiryDate=1224,ServiceCode=702}' --validation-data 2365
{ "KeyArn": arn:aws:payment-cryptography:us-east-1:111122223333:key/7vrybrbvjcvwtunv, "KeyCheckValue": 7121C7 }

3DS AEVV

3DS AEVV(三维安全账户验证值)用于美国运通三维安全认证。它使用与之相同的算法 CSC2 ,但输入参数不同。到期日期字段应填入不可预测的(随机)数字,服务代码由 AEVV 身份验证结果代码(1 位)加上第二因素身份验证码(2 位数)组成。输出长度应为 3 位数。

有关所有可用参数,请参阅 API 参考指南中的 AmexCardSecurityCodeVersion2

创建密钥

$ 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":"3DS_AEVV"},{"Key":"CARD_BIN","Value":"12345678"}]'

响应会回显请求参数,包括后续调用的 ARN 以及密钥检查值 (KCV)。

{ "Key": { "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/kw8djn5qxvfh3ztm", "KeyAttributes": { "KeyUsage": "TR31_C0_CARD_VERIFICATION_KEY" "KeyAlgorithm": "TDES_2KEY", "KeyClass": "SYMMETRIC_KEY", "KeyModesOfUse": { "Decrypt": false, "DeriveKey": false, "Encrypt": false, "Generate": true, "NoRestrictions": false, "Sign": false, "Unwrap": false, "Verify": true, "Wrap": false }, }, "KeyCheckValue": "8F3A21", "KeyCheckValueAlgorithm": "ANSI_X9_24", "Enabled": true, "Exportable": true, "KeyOrigin": "AWS_PAYMENT_CRYPTOGRAPHY", "KeyState": "CREATE_COMPLETE", "CreateTimestamp": "2025-02-02T10:30:15.209000-05:00", "UsageStartTimestamp": "2025-02-02T10:30:15.192000-05:00" } }

注意代表密钥的那个KeyArn,例如 arn: aws: payment-cryptography: us-east-2:111122223333: key/kw8djn5qxvfh3z tm。您需要在下一步中执行该操作。

生成 3DS AEVV

在此示例中,我们将生成一个长度为 3 的 3DS AEVV。到期日期字段包含不可预测的(随机)数字(例如 1234),服务代码由 AEVV 身份验证结果代码(1 位数)加上第二因素身份验证码(2 位数)组成,例如 543,其中 5 是身份验证结果代码,43 是第二因素身份验证码。对于美国运通, PANs 应为 15 位数字,并以 34 或 37 开头。

$ aws payment-cryptography-data generate-card-validation-data --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/kw8djn5qxvfh3ztm --primary-account-number=344131234567848 --generation-attributes AmexCardSecurityCodeVersion2='{CardExpiryDate=1234,ServiceCode=543}' --validation-data-length 3
{ "KeyArn": arn:aws:payment-cryptography:us-east-2:111122223333:key/kw8djn5qxvfh3ztm, "KeyCheckValue": 8F3A21, "ValidationData": "921" }

验证 3DS AEVV

在本示例中,我们将验证 3DS AEVV。

如果 AWS 支付密码学能够验证,则会返回 http/200。如果该值未经过验证,它将返回 http/400 响应。

$ aws payment-cryptography-data verify-card-validation-data --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/kw8djn5qxvfh3ztm --primary-account-number=344131234567848 --verification-attributes AmexCardSecurityCodeVersion2='{CardExpiryDate=1234,ServiceCode=543}' --validation-data 921
{ "KeyArn": arn:aws:payment-cryptography:us-east-2:111122223333:key/kw8djn5qxvfh3ztm, "KeyCheckValue": 8F3A21 }