기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
MAC 생성
MAC API 생성은 알려진 암호화 키를 사용하여 전송 당사자와 수신 당사자 간의 데이터 검증을 위한 MAC(메시지 인증 코드)를 생성하여 카드 마그네틱 스트라이프에서 데이터 추적과 같은 카드 관련 데이터를 인증하는 데 사용됩니다. MAC 생성에 사용되는 데이터에는 메시지 데이터, 비밀 MAC 암호화 키 및 전송을 위한 고유한 MAC 값을 생성하는 MAC 알고리즘이 포함됩니다. MAC의 수신 당사자는 동일한 MAC 메시지 데이터, MAC 암호화 키 및 알고리즘을 사용하여 비교 및 데이터 인증을 위해 다른 MAC 값을 다시 만듭니다. 메시지의 한 문자라도 변경되거나 인증에 사용된 MAC 키가 동일하지 않은 경우 결과 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 16진수 문자입니다.
MAC 키는 CreateKey를 호출하여 AWS Payment Cryptography로 생성하거나 ImportKey를 호출하여 가져올 수 있습니다.
참고
CMAC 및 HMAC 알고리즘에는 패딩이 필요하지 않습니다. 다른 모든 경우에는 TDES의 경우 8바이트(16 16진수 문자), AES의 경우 16바이트(32 16진수 문자)의 배수인 알고리즘의 블록 크기로 데이터를 패딩해야 합니다.
HMAC 생성
이 예제에서는 HMAC 알고리즘 HMAC_SHA256과 HMAC 암호화 키를 사용하여 카드 데이터 인증을 위한 HMAC(해시 기반 메시지 인증 코드)를 생성합니다. 키에는 KeyUse가 TR31_M7_HMAC_KEY로 설정되고 KeyModeSofUse는 Generate로 설정되어 있어야 합니다. 해시 길이(예: 256)는 키가 생성될 때 정의되며 수정할 수 없습니다.
선택적 mac 길이 파라미터는 출력 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를 생성합니다. 키에는 KeyUse가 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를 생성합니다. 키에는 KeyUse가 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" }