MAC の生成 - AWS Payment Cryptography

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

MAC の生成

Generate MAC API は、既知の暗号化キーを使用して送信側と受信側間のデータ検証用の MAC (メッセージ認証コード) を生成することで、カード磁気ストライプからのトラックデータなどのカード関連データを認証するために使用されます。MAC の生成に使用されるデータには、メッセージデータ、秘密 MAC 暗号化キー、および送信用の固有の MAC 値を生成する MAC アルゴリズムが含まれます。MAC の受信側は、同じ MAC メッセージデータ、MAC 暗号化キー、およびアルゴリズムを使用して、比較とデータ認証のために別の MAC 値を再現します。メッセージの文字が 1 字でも変わっている場合、またはシークレットキーが同一ではない場合、結果として得られる MAC の値はまったく異なるものになります。API は、このオペレーションで ISO 9797-1 アルゴリズム 1 および ISO 9797-1 アルゴリズム 3 MAC (静的 MAC キーと派生 DUKPT キーを使用)、HMAC および EMV MAC 暗号化キーをサポートしています。

message-data の入力値は HexBinary データでなければなりません。

この API のすべてのオプションの詳細については、GenerateMac」とVerifyMac」を参照してください。

オプションのパラメータ mac-length を使用すると、出力値を切り捨てることができます (ただし、これはコード内で実行することもできます)。8 文字の長さは、8 バイトまたは 16 進数文字を指します。

MAC キーは、CreateKey を呼び出して AWS Payment Cryptography で作成することも、ImportKey を呼び出してインポートすることもできます。

注記

CMAC アルゴリズムと HMAC アルゴリズムにはパディングは必要ありません。その他はすべて、TDES の場合は 8 バイト (16 進数文字)、AES の場合は 16 バイト (32 進数文字) の倍数であるアルゴリズムのブロックサイズにデータをパディングする必要があります。

HMAC の生成

この例では、HMAC HMAC_SHA256 アルゴリズムと HMAC 暗号化キーを使用してカードデータ認証用の HMAC (ハッシュベースのメッセージ認証コード) を生成します。キーは、KeyUsage が TR31_M7_HMAC_KEY に設定され、KeyModesOfUse が Generate に設定されている必要があります。ハッシュの長さ (256 など) は、キーの作成時に定義され、変更できません。

オプションの mac-length パラメータは出力 MAC をトリミングしますが、これは サービス外で実行することもできます。この値はバイト単位であるため、16 の値は長さ 32 の 16 進文字列を想定します。

$ aws payment-cryptography-data generate-mac \ --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/qnobl5lghrzunce6 \ --message-data "3b313038383439303031303733393431353d32343038323236303030373030303f33" \ --generation-attributes Algorithm=HMAC
{ "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/qnobl5lghrzunce6", "KeyCheckValue": "2976E7", "Mac": "ED87F26E961C6D0DDB78DA5038AA2BDDEA0DCE03E5B5E96BDDD494F4A7AA470C" }

ISO 9797-1 アルゴリズム 3 を使用して MAC を生成する

この例では、カードデータ認証に ISO 9797-1 アルゴリズム 3 (小売 MAC) を使用して MAC を生成します。キーは、KeyUsage が TR31_M3_ISO_9797_3_MAC_KEY に設定され、KeyModesOfUse が Generate に設定されている必要があります。

$ aws payment-cryptography-data generate-mac \ --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/kwapwa6qaifllw2h \ --message-data "3b313038383439303031303733393431353d32343038323236303030373030303f33" \ --generation-attributes="Algorithm=ISO9797_ALGORITHM3"
{ "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/kwapwa6qaifllw2h", "KeyCheckValue": "2976EA", "Mac": "A8F7A73DAF87B6D0" }

CMAC を使用して MAC を生成する

CMAC はキーが AES の場合に最も一般的に使用されますが、TDES もサポートしています。この例では、AES キーによるカードデータ認証に CMAC (ISO 9797-1 アルゴリズム 5) を使用して MAC を生成します。キーは、KeyUsage が TR31_M6_ISO_9797_5_CMAC_KEY に設定され、KeyModesOfUse が Generate に設定されている必要があります。

$ aws payment-cryptography-data generate-mac \ --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi \ --message-data "3b313038383439303031303733393431353d32343038323236303030373030303f33" \ --generation-attributes Algorithm="CMAC"
{ "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi", "KeyCheckValue": "C1EB8F", "Mac": "1F8C36E63F91E4E93DF7842BF5E2E5F7" }

DUKPT CMAC を使用して MAC を生成する

この例では、カードデータ認証に CMAC を使用する DUKPT (トランザクションあたりの派生一意キー) を使用して MAC を生成します。キーは KeyUsage を に設定TR31_B0_BASE_DERIVATION_KEYし、KeyModesOfUse を true DeriveKeyに設定する必要があります。DUKPT キーは、基本派生キー (BDK) とキーシリアル番号 (KSN) を使用して、トランザクションごとに一意のキーを取得します。

$ aws payment-cryptography-data generate-mac --key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/qnobl5lghrzunce6 --message-data "3b313038383439303031303733393431353d32343038323236303030373030303f33" --generation-attributes="DukptCmac={KeySerialNumber="932A6E954ABB32DD00000001",Direction=BIDIRECTIONAL}"
{ "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/qnobl5lghrzunce6", "KeyCheckValue": "C1EB8F" }