キーのエクスポート - AWS Payment Cryptography

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

キーのエクスポート

対称キーのエクスポート

重要

例としては、最新バージョンの AWS CLI V2 が必要になる場合があります。開始する前に、最新バージョンの にアップグレードしていることを確認してください。

非対称技術 (TR-34) を使用してキーをエクスポートする

概要: TR-34 はRSA非対称暗号化を利用して、交換用の対称キーを暗号化し、データのソース (署名) を確保します。これにより、ラップされたキーの機密性 (暗号化) と完全性 (署名) の両方が保証されます。エクスポート時に、 AWS Payment Cryptography がキー分散ホスト (KDH) になり、ターゲットシステムがキー受信デバイス () になりますKRD。

1. エクスポートの初期化コマンドを呼び出す

get-parameters-for-export を呼び出してエクスポートプロセスを初期化します。これによりAPI、キーエクスポートの目的でキーペアが生成され、キーに署名して、証明書と証明書ルートが返されます。最終的には、このコマンドで生成された秘密キーがエクスポートペイロードの署名に使用されました。TR-34 の用語では、これはKDH署名証明書と呼ばれます。これらの証明書は有効期間が短く、この目的のみを目的としていることに注意してください。パラメータ ParametersValidUntilTimestampは期間を指定します。

NOTE: すべての証明書は base64 エンコード形式で返されます

$ aws payment-cryptography get-parameters-for-export \ --signing-key-algorithm RSA_2048 --key-material-type TR34_KEY_BLOCK
{ "SigningKeyCertificate": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUV2RENDQXFTZ0F3SUJBZ0lRZFAzSzNHNEFKT0I4WTNpTmUvYlF0akFOQmdrcWhraUc5dzBCQVEwRkFEQ0IKaVRFTE1Ba0dBMVVFQmhNQ1ZWTXhHVEFYQmdOVkJBb01FRUZYVXlCRGNubHdkRzluY21Gd2FIa3hJVEFmQmdOVgpCQXNNR0VGWFV5QlFZWGx0Wlc1MElFTnllWEIwYjJkeVlYQm9lVEVSTUE4R0ExVUVDQXdJVm1seVoybHVhV0V4CkZUQVRCZ05WQkFNTUREVXlPVEF5TnpRMU5UUTVOVEVTTUJBR0ExVUVCd3dKUVhKc2FXNW5kRzl1TUI0WERUSXoKTURZd05qSXhOREF5TVZvWERUSXpNRFl4TXpJeU5EQXlNRm93TERFVk1CTUdBMVVFQXd3TU5USTVNREkzTkRVMQpORGsxTVJNd0VRWURWUVFGRXdveE9ETTROemt5TWpNeU1JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBCk1JSUJDZ0tDQVFFQXNTLzZ0TkhPK29RaTczVFMvYXJFSE40aEhRSjdFVThaT3dXN0RuNVlTTlZmZmM0b1B6ZVUKNHQ5Q045djViamxrL3p5TTJORllVL0NsTHNueFk2Y3IvaWwwY2hROVFtM1hUMHZVWGZGNzdRSzFSWnZzNkVkdApicVFaWGlqVDZ4UkJGcUxUMjV0dGJYQTlXMjlUd1d1eXdVN1c4dDZDZEIxSVFoOFFhYlBGaHRhWmVpWmVVWjNPCnRSa2NZU1VtRDRncWJxTElEL2M2RlpmdGpkYS9HbkhkZ1dmMk5oUUFvVnkxOS9ZZXhlZzdmTlVOZXVzWmRYSWYKZkNpM0VNaFF4S3lYY3dUMC9TZ2g5alZNakQwSDdyZWpCMGF4Tit0RUNqeVFEcm5XS2ZvbVA2ZFdkMExCSUM2bgpNQ1VKcmVtSDV3emVzZjFrWnF1VjRMbjYwdzZSNDNhQzRRSURBUUFCbzN3d2VqQUpCZ05WSFJNRUFqQUFNQjhHCkExVWRJd1FZTUJhQUZDNklyYUZzYnRUMDFGL2JjQ0c3Z3RVR1phM1RNQjBHQTFVZERnUVdCQlRXbldEWXNsMXMKalhnVExRRmFCYm1DakFZcHNUQU9CZ05WSFE4QkFmOEVCQU1DQmFBd0hRWURWUjBsQkJZd0ZBWUlLd1lCQlFVSApBd0VHQ0NzR0FRVUZCd01DTUEwR0NTcUdTSWIzRFFFQkRRVUFBNElDQVFCdUJmVjJmVFBlM0VkSEhnODFoVnZECnRQZUJsQzAvRy8wQ25XNFhPVEt2NUJtNXNudDBpczg4Yzc1SlRRUXdvdm9ScEVUTzZLdXdxMUFuUFR1c3RyRDYKL0I1bDd0MGw3ZUh6Z3pPVGZSN29Wem9TZXlGamkvVEVwK2M0NXBHWDBpY0ovTDlMaE0ybUVOZHhqNmtzVUcxMApuZnJCbzJyejkwRUJQYTVFb1lhMlRYYW90VlU4NFRiSFVyMlUzaFhrRExDWmhpSTdLY2I5cWRwenVlV0dWRzRTCmFreGJQcW5LQjMrek9JSzFZYTl2aENHZjRaMDFtWFFtVmRjQlpnbGE5SWFyeEcvKy9xWXEvNzBKalFnYk5HOUUKcUd1UFFadE5QQ0lJckJXOFN4cVpmUjVJbmxtUDlkZEY0SStOR002aHNoRUNXeWJCWkdUZjhYVCtwYVRFZXA2ZQpZUHp2UXI2cWQ4TExDYk5wOEI3ZTNrcmRKc0VUV0tBaU93TzFoZ1BReld2ZTRWKzBNdVlQaDczNk0xUS9rUTJVCmN5VmhDVDNCWENmOFhXVjMwYzg2c2J2dlhIeGJ5cVl1dWs4anZvRHl6T3R0T0QxbVdlRDBNeXV6OU1Fb3JTanIKM3ZwUDhBWXowMVI0UWNBMUR5cVl1dVErQ1BFRHlqU3VPK2tTQ1JIYXFLRzFOVzY5aVMxWWQyWG9LZTdtRlVpaAp3REM0WTlISlZjNjk5bWNMQ0NXWmhyYlZmZUJrOUxDS1BlUzZWUFZDMGdpVnJRYUtxbFhkTnh5SGJ2ZzBsRlUvCjZkUm5nYmVPMTZQdUhhN1hjL2FCUUF6N3JNaWlvRFFjSVdrQVdyK0NIOHl0UVFXZXRjSFdHNWRMMmZiSFgzOU0KMWhIeXFraHAwdDhXc0dTdVhjbWJBQT09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0=", "SigningKeyCertificateChain": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUY0VENDQThtZ0F3SUJBZ0lSQUtlN2piaHFKZjJPd3FGUWI5c3VuOEV3RFFZSktvWklodmNOQVFFTkJRQXcKZ1lreEN6QUpCZ05WQkFZVEFsVlRNUmt3RndZRFZRUUtEQkJCVjFNZ1EzSjVjSFJ2WjNKaGNHaDVNU0V3SHdZRApWUVFMREJoQlYxTWdVR0Y1YldWdWRDQkRjbmx3ZEc5bmNtRndhSGt4RVRBUEJnTlZCQWdNQ0ZacGNtZHBibWxoCk1SVXdFd1lEVlFRRERBdzFNamt3TWpjME5UVTBPVFV4RWpBUUJnTlZCQWNNQ1VGeWJHbHVaM1J2YmpBZUZ3MHkKTXpBMk1EWXdNalEzTlRKYUZ3MHlPREEyTURZd016UTNOVEphTUlHSk1Rc3dDUVlEVlFRR0V3SlZVekVaTUJjRwpBMVVFQ2d3UVFWZFRJRU55ZVhCMGIyZHlZWEJvZVRFaE1COEdBMVVFQ3d3WVFWZFRJRkJoZVcxbGJuUWdRM0o1CmNIUnZaM0poY0doNU1SRXdEd1lEVlFRSURBaFdhWEpuYVc1cFlURVZNQk1HQTFVRUF3d01OVEk1TURJM05EVTEKTkRrMU1SSXdFQVlEVlFRSERBbEJjbXhwYm1kMGIyNHdnZ0lpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElDRHdBdwpnZ0lLQW9JQ0FRQzJyMld2eGJxZjJSUHhOem1JUk5ZeWZRQ2labGxYUVBQSDQycnAyQ1VtTk1VMkc2ZzdFRUZBCm5TWnNvRlN6Z1NJaEhUSWU4UDdUd1l3ckpPL3VNcEtka3lac1ppTEhUNGo4M1l1VkNlT1dSVERjdnRWMFV0M1IKaCs5UWVyaHhRQnVrK2dnZkRkT0FFUkR3S1pWckZqM3diT1FFMXY2WnRYSmpVZytWTXZKcEphUTg0WkFvYnpyUgpuY2JaL0hnbFhDM09xampSSk1laGJFaE93ZFJCTU4yQ2dTNHlhWTB3YlBvazhMSlRORVp5ZnkxUEtkaTd1UmxxCm9qeEdjc3pCRHFvdCsvTURBNVdZUjd5NVhiOGdOdSt0alkrMWdQSGRkWHFhRTR2bXV2cEtsQUttcml2SDRYWXQKZk9sa1kzYnRJckVuWDEwQkp1UXVGN0dRNyt3ZjN6TDZ4NFNIcGpiQWxpMDQyUmdXTVpibmlscW15YnhuUkRrUwpjZXZ3aEx2L0tnT09WM05KZlplWlVzT1N6NWNzTmRLME4rM2FCUlZQcVc5b2k3dDJ2dTc5eCtvb1pIS2FibFdiCmJDMDJxR1VDaTE3cHhDQ0JJdUVDZWJiWDhSS3dLa3RwbTRSOUZWYjBXZGFqNUc1ekdudTBsUlRMUVNaZ0QyU1EKSjRmQjh2em9Bb3BYenpSSStMSjNBaC9NcThXSTNHTHFIakhzcm5vdVJzMmNzcjVBYnNMbXUyUTlvMFJmNTd1RApwK1R1cXpKTysrNFpUWDlsb0N3UXdzKzNEZWUyL1pUSmJCNkFCdy9xdnovQjhsL2duY29Wc3lHTFhkaXdleTV1CjJHNnl2NGgrN0FBQldvdjhwWVBPUlRMY1FkanhVdWNDdllRYjJiRXY4ZGh1anN6TWo2ZDBDUUlEQVFBQm8wSXcKUURBUEJnTlZIUk1CQWY4RUJUQURBUUgvTUIwR0ExVWREZ1FXQkJRdWlLMmhiRzdVOU5SZjIzQWh1NExWQm1XdAowekFPQmdOVkhROEJBZjhFQkFNQ0FZWXdEUVlKS29aSWh2Y05BUUVOQlFBRGdnSUJBSS9Ta1NaS0pyMm1JakJ6ClJxQXQ3dmJ4eWNhQXhCU3VqbDlqVSttYkh1RDg4Qyt3TDh4TzNYRHJ1Vm9IZTdYanhrNXpaN0RWMjMza3haQlEKR3BET1hWaGNZdE5UNzk2YXd1K0VNU2kzK3RzTVJBMmMxODJ2ZVNDSE9HQmVseTlRS3FHWkJBZGU2ZGNzTkpMTwpiRE10NlB3NXpiRHNqalJnMGY5SGQrRFZheXV6QzBtdXVGWEZkT0txU0VWZVNmZWVNOUl5KzFMWDMzOFlVd05zCjdhS2ppaFVFSkg4ZkVFU1NEUGE5OGNOSEsyZ0t5UENrRUorMGlNZkJiTi9yUE1CYlhqTUtHYWpXSFFhWWtieDUKalVRUmdvd25ZbStycDRwRnNhalpSTFB0NE9mbkswNWYvRHdCUXVGWUUzUFJ2d2NQSWxJNHpkcWh0NE9ZSVY4RAo2MktleVEzb3R6eTdsVXIxamNrZldkSHpHc3NKVjYxc0xRTTBudVFNUnRTZjlHeEpYTEkyNjFaRWFMYVY5WFduCnY3YnByb090UTNiYk9RbjI0elJDVm5kZ0Z3aCtUVHMzVmFOQjhURmY2QjFoV1R5aTYzOCtoa1FTRnJTbXI1WTcKTXNGUXZXSVZVbjQ2cWNjVGNuNlc2Y2JIUlhyQkRiR0tlWUJiVjVXSkJwRUtSN0JuQ25HNnJCbmxGNjZ5eTUyLwpSbWZLRWZwWG1qbkh0WW94UnlQVlJZWDhPcnkzUFQrYSt0REtlMDBXY1MyM0U3MWl2QTBNdnVrODlwTzJIUVorCjNHUU9xdWJpQ3RMbVppdVFCZC9aN1NGWGlzcUxyTE5aOW52Q2VRSkxTckVDajRpZjV2dmJkWVhLdkozamhtSjkKeVZvc0xZVzA3SklzSFE0aDAwVWphSnhrVjdoWgotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0t", "SigningKeyAlgorithm": "RSA_2048", "ExportToken": "export-token-au7pvkbsq4mbup6i", "ParametersValidUntilTimestamp": "2023-06-13T15:40:24.036000-07:00" }
2. AWS Payment Cryptography 証明書を受信システムにインポートする

必要に応じて、ステップ 1 で提供した証明書チェーンを受信側のシステムにインポートします。

3. キーペアを生成し、パブリック証明書を作成し、証明書のルートを AWS Payment Cryptography に提供します。

送信されたペイロードの機密性を確保するために、送信側 (キーディストリビューションホストまたは と呼ばれる) によって暗号化されますKDH。受取人 (通常は HSMまたはパートナーの HSM) はこの目的のためにパブリックキーを生成し、次に AWS Payment Cryptography に返すことができるパブリックキー証明書 (x.509) を作成する必要があります。 AWS Private CA は証明書を生成するための 1 つのオプションですが、使用する認証局に制限はありません。

証明書を取得したら、 の ImportKey コマンドと および を使用して、ルート証明書を AWS Payment Cryptography KeyMaterialType ROOT_PUBLIC_KEY_CERTIFICATE KeyUsageType にロードしますTR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE

この証明書 KeyUsageType の は、ルートキーであり、リーフ証明書の署名に使用されるため、TR31_S0FOR_ASYMMETRICKEY_DIGITAL__SIGNATURE です。インポート/エクスポート用のリーフ証明書は AWS Payment Cryptography にインポートされませんが、インラインで渡されます。

注記

ルート証明書が以前にインポートされたことがある場合は、このステップは省略できます。

4. エクスポートキーを呼び出す

最後のステップとして、 の ExportKey APIを使用して KeyMaterialType を呼び出しますTR34_KEY_BLOCKcertificate-authority-public-key-identifier はステップ 3 のルート CA インポートのキーARNWrappingKeyCertificateになり、 はステップ 3 のリーフ証明書になり、 export-key-identifierはエクスポートするキーARN (またはエイリアス) になります。また、ステップ 1 のエクスポートトークンを指定する必要があります。

非対称手法を使用したキーのエクスポート (RSAラップ)

概要: AWS Payment Cryptography はTR-34 がカウンターパーティが利用できるオプションでない場合、キー交換のRSAラップ/アンラップをサポートしています。TR-34 と同様に、この手法ではRSA非対称暗号化を使用して対称キーを暗号化して交換します。ただし、TR-34 とは異なり、このメソッドには送信側によって署名されたペイロードはありません。また、このRSAラップ手法には、転送中のキーメタデータの整合性を維持するために使用されるキーブロックは含まれません。

注記

RSA ラップは、 TDES および AES-128 キーのエクスポートに使用できます。

1. 受信システムで RSAキーと証明書を生成する

ラップされたRSAキーの受信に使用される キーを作成 (または識別) します。 AWS Payment Cryptography では、X.509 証明書形式のキーが必要です。証明書は、 AWS Payment Cryptography にインポートされた (またはインポートできる) ルート証明書によって署名する必要があります。

2. AWS Payment Cryptography にルートパブリック証明書をインストールする
$ aws payment-cryptography import-key --key-material='{"RootCertificatePublicKey":{"KeyAttributes":{"KeyAlgorithm":"RSA_4096","KeyClass":"PUBLIC_KEY","KeyModesOfUse":{"Verify": true},"KeyUsage":"TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE"},"PublicKeyCertificate":"LS0tLS1CRUdJTiBDRV..."}}'
{ "Key": { "CreateTimestamp": "2023-09-14T10:50:32.365000-07:00", "Enabled": true, "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/nsq2i3mbg6sn775f", "KeyAttributes": { "KeyAlgorithm": "RSA_4096", "KeyClass": "PUBLIC_KEY", "KeyModesOfUse": { "Decrypt": false, "DeriveKey": false, "Encrypt": false, "Generate": false, "NoRestrictions": false, "Sign": false, "Unwrap": false, "Verify": true, "Wrap": false }, "KeyUsage": "TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE" }, "KeyOrigin": "EXTERNAL", "KeyState": "CREATE_COMPLETE", "UsageStartTimestamp": "2023-09-14T10:50:32.365000-07:00“ } }
3. コールエクスポートキー

次に、リーフ証明書を使用してキーをエクスポートするように AWS Payment Cryptography に指示します。以前にインポートしたルート証明書ARNの 、エクスポートに使用するリーフ証明書、およびエクスポートする対称キーを指定します。出力は、対称キーの 16 進エンコードされたバイナリラップ (暗号化) バージョンになります。

$ cat export-key.json
{ "ExportKeyIdentifier": "arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi", "KeyMaterial": { "KeyCryptogram": { "CertificateAuthorityPublicKeyIdentifier": "arn:aws:payment-cryptography:us-east-2:111122223333:key/zabouwe3574jysdl", "WrappingKeyCertificate": "LS0tLS1CRUdJTiBD...", "WrappingSpec": "RSA_OAEP_SHA_256" } } }
$ aws payment-cryptography export-key --cli-input-json file://export-key.json
{ "WrappedKey": { "KeyMaterial": "18874746731E9E1C4562E4116D1C2477063FCB08454D757D81854AEAEE0A52B1F9D303FA29C02DC82AE7785353816EFAC8B5F4F79CC29A1DDA80C65F34364373D8C74E5EC67E4CB55DEA7F091210DCACD3C46FE4A5DAA0F0D9CAA7C959CA7144A5E7052F34AAED93EF44C004AE7ABEBD616C955BBA10993C06FB905319F87B9B4E1B7A7C7D17AF15B6154E807B9C574387A43197C31C6E565554437A252EFF8AC81613305760D11F9B53B08A1BA79EC7E7C82C48083C4E2D0B6F86C34AB83647BDD7E85240AD1AF3C0F6CA8C5BF323BB2D3896457C554F978F4C9436513F494130A6FADBC038D51898AAD72E02A89FF256C524E7B5D85B813751B718C4933D9DC6031F2C5B2E13351A54B6021B2DB72AA0C7EA54727FBCD557E67E5E7CC2E165576E39DB4DA33510BA9A3C847313103A18EF3B23A3440471864D58C79C569D5CD2A653AC16043CA9A61E6878F74C18EE15F9AB23754C37A945B68C0437C19F0079F74B573D9B59DAC25A20781DBE8075C947C9EDC76177A1B0794288CBF89567A541E8401C74E85B8E1C3E501860AF702F641CAA04327018A84EF3A82932A2BCF37047AB40FE77E0A6F68D0904C7E60983CD6F871D5E0E27EEF425C97D39E9394E8927EEF5D2EA9388DF3C5C241F99378DF5DADE8D0F0CF453C803BA38BA702B9651685FAFA6DCB4B14333F8D3C57F2D93E0852AA94EEC3AF3217CAE5873EFD9", "WrappedKeyMaterialFormat": "KEY_CRYPTOGRAM" } }
4. 受信システムにキーをインポートする

多くの HSMsおよび関連システムは、RSAアンラップ ( AWS Payment Cryptography を含む) を使用してキーをインポートする機能をサポートしています。そのためには、ステップ 1 のパブリックキーを (暗号化) 証明書として指定します。形式は RSA、パディングモード = PKCS#1 v2.2 OAEP (256 を含む) SHA として指定する必要があります。正確な用語は、 によって異なる場合がありますHSM。

注記

AWS Payment Cryptography は、ラップされたキーを に出力しますhexBinary。システムで base64 のような別のバイナリ表現が必要な場合は、インポート前に 形式を変換する必要がある場合があります。

あらかじめ設定されているキー交換キー (TR-31) を使用して対称キーをエクスポートする

パートナーが複数のキーを交換する場合 (またはキーローテーションをサポートする場合)、まずペーパーキーコンポーネントなどの手法を使用して、または Payment Cryptography AWS の場合は TR-34 を使用して、初期キー暗号化キー (KEK) を交換するのが一般的です。KEK が確立されたら、このキーを使用して後続のキー (他の を含むKEK) を転送できます。 AWS Payment Cryptography は、HSMベンダーによって広く使用およびサポートされている ANSI TR-31 を使用したこの種のキー交換をサポートしています。

1. Exchange キー暗号化キー (KEK)

を既に交換KEKしており、キーARN (または keyAlias) が使用可能であることを前提としています。

2. AWS Payment Cryptography でキーを作成する

このキーが存在していない場合は、作成します。逆に、他のシステムでキーを作成し、代わりにインポートコマンドを使用することもできます。

3. AWS Payment Cryptography からキーをエクスポートする

エクスポート時の形式は TR-31 になります。を呼び出すときはAPI、エクスポートするキーと使用するラッピングキーを指定します。

$ aws payment-cryptography export-key --key-material='{"Tr31KeyBlock": {"WrappingKeyIdentifier": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ov6icy4ryas4zcza"}}' --export-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/5rplquuwozodpwsp
{ "WrappedKey": { "KeyCheckValue": "73C263", "KeyCheckValueAlgorithm": "ANSI_X9_24", "KeyMaterial": "D0144K0AB00E0000A24D3ACF3005F30A6E31D533E07F2E1B17A2A003B338B1E79E5B3AD4FBF7850FACF9A3784489581A543C84816C8D3542AE888CE6D4EDDFD09C39957B131617BC", "WrappedKeyMaterialFormat": "TR31_KEY_BLOCK" } }
4. システムにインポートする

ユーザーまたはパートナーは、システム上のインポートキー実装を使用してキーをインポートします。

DUKPT 初期キーのエクスポート (IPEK/IK)

を使用する場合DUKPT、ターミナルのフリートに対して 1 つの Base Derivation Key(BDK) を生成できます。ただし、ターミナルは元のターミナルにはアクセスできませんBDKが、それぞれ IPEKまたは Initial Key (IK) と呼ばれる一意の初期ターミナルキーが挿入されます。各 IPEKは から派生したキーBDKであり、ターミナルごとに一意であることが意図されていますが、元の から派生していますBDK。この計算の派生データは、キーシリアル番号 () と呼ばれますKSN。X9.24 では、TDES10 バイトKSNは通常、キーセット ID に 24 ビット、ターミナル ID に 19 ビット、トランザクションカウンターに 21 ビットで構成されます。の場合AES、12 バイトKSNは通常、BDKID に 32 ビット、取得識別子 (ID) に 32 ビット、トランザクションカウンターに 32 ビットで構成されます。

AWS Payment Cryptography は、これらの初期キーを生成してエクスポートするメカニズムを提供します。生成されたキーは、TR-31, TR-34およびRSAラップメソッドを使用してエクスポートできます。IPEK キーは保持されず、 AWS Payment Cryptography で後続のオペレーションには使用できません

AWS Payment Cryptography では、 の最初の 2 つの部分間の分割は強制されませんKSN。取得識別子を とともに保存する場合はBDK、この目的で AWS タグ機能を使用できます。

注記

のカウンター部分 KSN ( の AES 32 ビットDUKPT) は IPEK/IK 取得には使用されません。したがって、12345678901234560001 と 12345678901234569999 の入力は同じ を出力しますIPEK。

$ aws payment-cryptography export-key --key-material='{"Tr31KeyBlock": {"WrappingKeyIdentifier": "arn:aws:payment-cryptography:us-east-2:111122223333:key/ov6icy4ryas4zcza"}}' --export-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/tqv5yij6wtxx64pi --export-attributes 'ExportDukptInitialKey={KeySerialNumber=12345678901234560001}'
{ "WrappedKey": { "KeyCheckValue": "73C263", "KeyCheckValueAlgorithm": "ANSI_X9_24", "KeyMaterial": "B0096B1TX00S000038A8A06588B9011F0D5EEF1CCAECFA6962647A89195B7A98BDA65DDE7C57FEA507559AF2A5D601D1", "WrappedKeyMaterialFormat": "TR31_KEY_BLOCK" } }

エクスポート時のキーブロックヘッダーの指定

AWS Payment Cryptography は、ASCTR-31 または TR-34 形式でエクスポートするときにキーブロック情報を変更または追加する機能をサポートしています。次の表は、TR-31 キーブロック形式と、エクスポート時に変更できる要素を示しています。

キーブロック属性 目的 エクスポート時に変更または追加しますか? メモ

バージョン ID

基盤となるキーマテリアルを保護するために使用されるメソッドを表します。この標準では、バージョン A とバージョン C (キーバリアント)、バージョン B ( を使用した派生TDES)、バージョン D ( を使用したキー派生) を定義しますAES。

変更不可

AWS Payment Cryptography は、ラッピングキーが の場合はバージョン B TDESを使用し、ラッピングキーが の場合はバージョン D を使用しますAES。バージョン A とバージョン C は廃止され、インポートオペレーションでのみサポートされています。

キーブロックの長さ

残りのメッセージの長さを表します。

変更不可

この値は、サービスによって自動的に計算されます。サービスは、仕様の要求に応じてキーパディングを使用する場合があるため、ペイロードを復号する前に長さが正しく表示されない場合があります。

キーの使用方法

C0 (カード検証) や B0 (ベース導出キー) など、キーの許可された目的を表します。

変更不可

アルゴリズム

基になるキーのアルゴリズムを表します。この標準は、T (TDES)、A()、E(AES) などの複数のキータイプをサポートしていますECC。 AWS Payment Cryptography は現在、T、H、A の値をサポートしています。

変更不可

これは Payment AWS Cryptography からそのままエクスポートされます。

キーの使用方法

使用できるオペレーションのタイプを表します。例としては、生成と検証 (C) や Encrypt/Decrypt/Wrap/Unwrap(B) などがあります。

変更*

キーバージョン

キーが置き換え/ローテーションされた場合のキーのバージョン番号を表します。これは数値であり、指定しない場合はデフォルトで 00 になります。

Append

キーのエクスポート可能性

キーをエクスポートできるかどうかを表します。N はエクスポート不可、E は X9.24 (キーブロック) に従ったエクスポート、S はキーブロック形式または非キーブロック形式でのエクスポートを意味します。

変更*

オプションのキーブロック

Append

オプションのキーブロックは、キーに暗号的にバインドできる一連の名前と値のペアです。一般的な例は、 DUKPTキーの KeySetID です。実際の形式には、オプションのブロック数、各ブロックの長さ、パディングブロック (PB) が含まれますが、 AWS Payment Cryptography は名前と値のペアの入力に基づいてこれらを自動的に計算します。

*変更する場合、新しい値は AWS Payment Cryptography 内の現在の値よりも制限されている必要があります。例えば、現在のキーモードが Generate=True、Verify=True の場合、エクスポート時に Generate=True、Verify=False に変更できます。同様に、キーがすでにエクスポート不可に設定されている場合は、エクスポート可能に変更することはできません。

キーをエクスポートする場合、 AWS Payment Cryptography はエクスポートされるキーの現在の値を変更せずに自動的に適用します。ただし、場合によっては、 AWS Payment Cryptography 内で によって許可されている場合でも、受信システムに送信する前にこれらの値を変更または追加することをお勧めします。1 つの例として、キーを支払いターミナルにエクスポートする場合、ターミナルのエクスポート可能性を に制限するのが一般的です。Not Exportableターミナルは通常、キーをインポートすることを目的としているため、後でキーをエクスポートすべきではないためです。

もう 1 つの例は、関連するキーメタデータを受信システムに渡す場合です。TR-31 以前は、このような情報を送信するカスタムペイロードを作成することが一般的でしたが、TR-31 を使用すると、特定の形式でキーに暗号化バインドできます。キーバージョンは、 KeyVersionフィールドを使用して設定できます。TR-31/X9.143 は特定の共通ヘッダーを指定しますが、 AWS Payment Cryptography パラメータ内に収まり、受信システムがそれを受け入れることができる限り、他のヘッダーの使用に制限はありません。エクスポート中にキーブロックを指定する方法の詳細については、「 APIガイド」の「キーブロックヘッダー」を参照してください。

この例では、BDKキー ( など) をエクスポートしますKIF。キーバージョンを 02 として指定し、 KeyExportability を NON_EXPORTABLE に設定し、 KeySetID に 00ABCDEFAB のオプション値を指定しています。つまり、TDESキー (00) で、初期キーは ですABCDEFABCD。キーモードが指定されていないため、このキーは、arn:aws: Payment-cryptography:us-east-2:111122223333:key/5rplquuwozodpwsp から使用モードを継承します。 DeriveKey = true

注記

この例ではエクスポート可能性はエクスポート不可に設定されていますが、 KIFは で使用される IPEK/IK などのキーを引き続き取得できDUKPT、これらの派生キーはデバイスに をインストールするためにエクスポート可能です。これは、標準で特に許可されています。

$ aws payment-cryptography --key-material='{"Tr31KeyBlock": {"WrappingKeyIdentifier":"arn:aws:payment-cryptography:us-east-2:111122223333:key/ov6icy4ryas4zcza","KeyBlockHeaders":{"KeyModesOfUse":{"Derive":true},"KeyExportability":"NON_EXPORTABLE","KeyVersion":"02","OptionalBlocks":{"BI":"00ABCDEFABCD"}}}} --export-key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/5rplquuwozodpwsp
{ "WrappedKey": { "WrappedKeyMaterialFormat": "TR31_KEY_BLOCK", "KeyMaterial": "D0128B0TX02N0100BI1000ABCDEFABCD1A2C0EADE244321640E94FE3A3C9D33800D47CE64238D9327DDBFE25B902352B29511AED4EF9BF65AF1E812BE665210F", "KeyCheckValue": "A4C9B3", "KeyCheckValueAlgorithm": "ANSI_X9_24" } }

非対称 (RSA) キーのエクスポート

get-public-key-certificate を呼び出して、パブリックキーを証明書形式でエクスポートします。これによりAPI、証明書と base64 形式でエンコードされたルート証明書がエクスポートされます。

NOTE: これはAPI冪等ではありません。後続の呼び出しでは、基になるキーが同じであっても、異なる証明書が発生する可能性があります。

$ aws payment-cryptography get-public-key-certificate \ —key-identifier arn:aws:payment-cryptography:us-east-2:111122223333:key/5dza7xqd6soanjtb
{ "KeyCertificate": "LS0tLS1CRUdJTi...", "KeyCertificateChain": "LS0tLS1CRUdJT...“ }