翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
目次
対称キーのエクスポート
重要
開始する前に、AWS CLI V2 の最新バージョンがあることを確認してください。アップグレードするには、「AWS CLI のインストール」を参照してください。
非対称技術 (TR-34) を使用してキーをエクスポートする
TR-34 は RSA 非対称暗号化を使用して、交換のために対称キーを暗号化して署名します。暗号化は機密性を保護し、署名は整合性を確保します。キーをエクスポートすると、 AWS Payment Cryptography がキー分散ホスト (KDH) として機能し、ターゲットシステムがキー受信デバイス (KRD) になります。
注記
HSM が TR-34 エクスポートをサポートしているがTR-34 インポートをサポートしていない場合は、まず TR-34 を使用して HSM と AWS Payment Cryptography 間で共有 KEK を確立することをお勧めします。その後、TR-31 を使用して残りのキーを転送できます。
-
エクスポートプロセスを初期化する
get-parameters-for-export を実行して、キーエクスポート用のキーペアを生成します。このキーペアを使用して TR-34 ペイロードに署名します。TR-34 の用語では、これは KDH 署名証明書です。証明書は有効期間が短く、 で指定された期間のみ有効です
ParametersValidUntilTimestamp
。注記
すべての証明書は base64 エンコードです。
$
aws payment-cryptography get-parameters-for-export \
--signing-key-algorithm
RSA_2048 \--key-material-type
TR34_KEY_BLOCK{ "SigningKeyCertificate": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUV2RENDQXFTZ0F3SUJ...", "SigningKeyCertificateChain": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS....", "SigningKeyAlgorithm": "RSA_2048", "ExportToken": "export-token-au7pvkbsq4mbup6i", "ParametersValidUntilTimestamp": "2023-06-13T15:40:24.036000-07:00" }
-
AWS Payment Cryptography 証明書を受信システムにインポートする
ステップ 1 の証明書チェーンを受信システムにインポートします。
-
受信システムの証明書を設定する
送信されたペイロードを保護するために、送信側 (KDH) はペイロードを暗号化します。受信システム (通常は HSM またはパートナーの HSM) は、パブリックキーを生成し、X.509 パブリックキー証明書を作成する必要があります。 AWS Private CA を使用して証明書を生成できますが、任意の認証機関を使用できます。
証明書を取得したら、 ImportKey コマンドを使用してルート証明書を AWS Payment Cryptography にインポートします。
KeyMaterialType
をRootCertificatePublicKey
に、KeyUsageType
をTR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE
に設定します。これはリーフ証明書に署名するルートキー
KeyUsageType
であるため、TR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE
を として使用します。Payment AWS Cryptography にリーフ証明書をインポートする必要はありません。インラインで渡すことができます。注記
以前にルート証明書をインポートした場合は、このステップをスキップします。中間証明書の場合は、 を使用します
TrustedCertificatePublicKey
。 -
キーをエクスポートする
を
KeyMaterialType
に設定して ExportKey API を呼び出しますTR34_KEY_BLOCK
。以下を指定する必要があります。-
ステップ 3 のルート CA の keyARN。
CertificateAuthorityPublicKeyIdentifier
-
としてのステップ 3 のリーフ証明書
WrappingKeyCertificate
-
としてエクスポートするキーの keyARN (またはエイリアス)
--export-key-identifier
-
ステップ 1 のエクスポートトークン
$
aws payment-cryptography export-key \
--export-key-identifier
"example-export-key" \--key-material
'{"Tr34KeyBlock
": { \ "CertificateAuthorityPublicKeyIdentifier
": "arn:aws:payment-cryptography:us-east-2:111122223333:key/4kd6xud22e64wcbk", \ "ExportToken
": "export-token-au7pvkbsq4mbup6i", \ "KeyBlockFormat
": "X9_TR34_2012", \ "WrappingKeyCertificate
": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUV2RENDQXFXZ0F3SUJBZ0lSQ..."} \ }'{ "WrappedKey": { "KeyMaterial": "308205A106092A864886F70D010702A08205923082058...", "WrappedKeyMaterialFormat": "TR34_KEY_BLOCK" } }
-
非対称手法 (ECDH) を使用したキーのエクスポート

ECDH は ECC 非対称暗号化を使用して 2 者間のジョイントキーを確立し、事前交換されたキーに依存しません。ECDH キーはエフェメラルであることを目的としているため、 AWS Payment Cryptography では保存されません。このプロセスでは、ECDH を使用して 1 回限りの KBPK/KEK が確立されます (派生)。その派生キーは、転送する実際のキーをすぐにラップするために使用されます。別の KBPK、BDK、IPEK キーなどです。
エクスポートするとき AWS 料金見積りツール は、党 U (イニシエーター) と呼ばれ、受信システムは党 V (レスポンダー) と呼ばれます。
注記
ECDH を使用して任意の対称キータイプを交換できますが、KEK がまだ確立されていない場合に AES-256 キーを転送するために使用できる唯一のアプローチです。
-
ECC キーペアの生成
create-key
を呼び出して、このプロセスに使用される ECC キーペアを作成します。この API は、キーのインポートまたはエクスポート用のキーペアを生成します。作成時に、この ECC キーを使用して派生できるキーの種類を指定します。ECDH を使用して他のキーを交換 (ラップ) する場合は、 の値を使用しますTR31_K1_KEY_BLOCK_PROTECTION_KEY
。注記
低レベルの ECDH は、任意の目的 (または複数の目的) に使用できる派生キーを生成しますが、 AWS Payment Cryptography は、キーを単一の派生キータイプにのみ使用できるようにすることで、複数の目的でキーを誤って再利用することを制限します。
$
aws payment-cryptography create-key --exportable --key-attributes KeyAlgorithm=ECC_NIST_P256,KeyUsage=TR31_K3_ASYMMETRIC_KEY_FOR_KEY_AGREEMENT,KeyClass=ASYMMETRIC_KEY_PAIR,KeyModesOfUse='{DeriveKey=true}' --derive-key-usage "TR31_K1_KEY_BLOCK_PROTECTION_KEY"
{ "Key": { "KeyArn": "arn:aws:payment-cryptography:us-east-2:111122223333:key/wc3rjsssguhxtilv", "KeyAttributes": { "KeyUsage": "TR31_K3_ASYMMETRIC_KEY_FOR_KEY_AGREEMENT", "KeyClass": "ASYMMETRIC_KEY_PAIR", "KeyAlgorithm": "ECC_NIST_P256", "KeyModesOfUse": { "Encrypt": false, "Decrypt": false, "Wrap": false, "Unwrap": false, "Generate": false, "Sign": false, "Verify": false, "DeriveKey": true, "NoRestrictions": false } }, "KeyCheckValue": "2432827F", "KeyCheckValueAlgorithm": "CMAC", "Enabled": true, "Exportable": true, "KeyState": "CREATE_COMPLETE", "KeyOrigin": "AWS_PAYMENT_CRYPTOGRAPHY", "CreateTimestamp": "2025-03-28T22:03:41.087000-07:00", "UsageStartTimestamp": "2025-03-28T22:03:41.068000-07:00" } }
-
パブリックキー証明書の取得
を呼び出し
get-public-key-certificate
て、特定のリージョンの AWS Payment Cryptography に固有のアカウントの CA により、パブリックキーを X.509 証明書として受信します。$
aws payment-cryptography get-public-key-certificate \
--key-identifier
arn:aws:payment-cryptography:us-east-2:111122223333:key/wc3rjsssguhxtilv{ "KeyCertificate": "LS0tLS1CRUdJTi...", "KeyCertificateChain": "LS0tLS1CRUdJT..." }
-
カウンターパーティシステムにパブリック証明書をインストールする (PartyV)
多くの HSMs では、ステップ 1 で生成されたパブリック証明書をインストール、ロード、または信頼して、それを使用してキーを確立する必要があります。これには、HSM に応じて、証明書チェーン全体またはステップ 1 のルート証明書のみが含まれます。詳細については、 マニュアルを参照してください。
-
ソースシステムで ECC キーペアを生成し、証明書チェーンを AWS Payment Cryptography に提供する
ECDH では、各当事者がキーペアを生成し、共通のキーについて合意します。派生キーへの AWS Payment Cryptography には、X.509 パブリックキー形式のカウンターパーティパブリックキーが必要です。
HSM からキーを転送する場合は、その HSM にキーペアを作成します。キーブロックをサポートする HSMs の場合、キーヘッダーは次のようになります
D0144K3EX00E0000
。証明書を作成するときは、通常、HSM で CSR を生成し、HSM、サードパーティー、 などのサービスが証明書を生成 AWS Private CA できます。KeyMaterialType が
RootCertificatePublicKey
、KeyUsageType が のimportKey
コマンドを使用して、ルート証明書を AWS Payment Cryptography にロードしますTR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE
。中間証明書の場合は、KeyMaterialType が
TrustedCertificatePublicKey
、KeyUsageType が のimportKey
コマンドを使用しますTR31_S0_ASYMMETRIC_KEY_FOR_DIGITAL_SIGNATURE
。複数の中間証明書に対してこのプロセスを繰り返します。チェーンで最後にインポートされた証明書KeyArn
の を、後続のエクスポートコマンドの入力として使用します。注記
リーフ証明書をインポートしないでください。エクスポートコマンド中に直接指定します。
-
AWS Payment Cryptography からキーとエクスポートキーを取得する
エクスポート時に、サービスは ECDH を使用してキーを取得し、すぐにそれを KBPK として使用して、TR-31 を使用してエクスポートするキーをラップします。エクスポートするキーは、TR-31 の有効な組み合わせの対象となる任意の TDES キーまたは AES キーにすることができます。ただし、ラッピングキーがエクスポートするキーと同じ強度でない限りです。
$
aws payment-cryptography export-key \ --export-key-identifier arn:aws:payment-cryptography:us-west-2:529027455495:key/e3a65davqhbpjm4h \ --key-material='{ "DiffieHellmanTr31KeyBlock": { "CertificateAuthorityPublicKeyIdentifier": "arn:aws:payment-cryptography:us-east-2:111122223333:key/swseahwtq2oj6zi5", "DerivationData": { "SharedInformation": "ADEF567890" }, "DeriveKeyAlgorithm": "AES_256", "KeyDerivationFunction": "NIST_SP800", "KeyDerivationHashAlgorithm": "SHA_256", "PrivateKeyIdentifier": "arn:aws:payment-cryptography:us-east-2:111122223333:key/wc3rjsssguhxtilv", "PublicKeyCertificate": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FUR..." } }'
{ "WrappedKey": { "WrappedKeyMaterialFormat": "TR31_KEY_BLOCK", "KeyMaterial": "D0112K1TB00E00007012724C0FAAF64DA50E2FF4F9A94DF50441143294E0E995DB2171554223EAA56D078C4CFCB1C112B33BBF05597EE700", "KeyCheckValue": "E421AD", "KeyCheckValueAlgorithm": "ANSI_X9_24" } }
-
partyV HSM で ECDH を使用してワンタイムキーを取得する
多くの HSMsおよび関連システムは、ECDH を使用したキーの確立をサポートしています。ステップ 1 のパブリックキーをパブリックキーとして指定し、ステップ 3 のキーをプライベートキーとして指定します。取得方法などの許容されるオプションについては、 API ガイドを参照してください。
注記
ハッシュタイプなどの派生パラメータは、両側で正確に一致する必要があります。それ以外の場合は、別のキーを生成します。
-
キーをターゲットシステムにインポートする
最後に、標準の TR-31 コマンドを使用して AWS Payment Cryptography からキーをインポートします。ECDH 派生キーを KBPK として指定し、TR-31 キーブロックは AWS Payment Cryptography から以前にエクスポートされたものになります。
非対称手法を使用したキーのエクスポート (RSA ラップ)
TR-34 が利用できない場合は、RSA ラップ/ラップ解除をキー交換に使用できます。TR-34 と同様に、このメソッドは RSA 非対称暗号化を使用して対称キーを暗号化します。ただし、RSA ラップには以下は含まれません。
-
送信側によるペイロード署名
-
転送中にキーメタデータの整合性を維持するキーブロック
注記
RSA ラップを使用して TDES キーと AES-128 キーをエクスポートできます。
-
受信システムで RSA キーと証明書を作成する
ラップされたキーを受信するための RSA キーを作成または識別します。キーは X.509 証明書形式である必要があります。Payment Cryptography AWS にインポートできるルート証明書によって証明書が署名されていることを確認します。
-
AWS Payment Cryptography にルートパブリック証明書をインポートする
--key-material
オプションimport-keyで を使用して証明書をインポートする$
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" } }
-
キーをエクスポートする
AWS Payment Cryptography に、リーフ証明書を使用してキーをエクスポートするように指示します。以下を指定する必要があります。
-
ステップ 2 でインポートしたルート証明書の 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": "LS0tLS1CRUdJTiBDEXAMPLE...", "WrappingSpec": "RSA_OAEP_SHA_256" } } }
$
aws payment-cryptography export-key \
--cli-input-json
file://export-key.json{ "WrappedKey": { "KeyMaterial": "18874746731E9E1C4562E4116D1C2477063FCB08454D757D81854AEAEE0A52B1F9D303FA29C02DC82AE7785353816EFAC8B5F4F79CC29A1DDA80C65F34364373D8C74E5EC67E4CB55DEA7F091210DCACD3C46FE4A5DAA0F0D9CAA7C959CA7144A5E7052F34AAED93EF44C004AE7ABEBD616C955BBA10993C06FB905319F87B9B4E1B7A7C7D17AF15B6154E807B9C574387A43197C31C6E565554437A252EFF8AC81613305760D11F9B53B08A1BA79EC7E7C82C48083C4E2D0B6F86C34AB83647BDD7E85240AD1AF3C0F6CA8C5BF323BB2D3896457C554F978F4C9436513F494130A6FADBC038D51898AAD72E02A89FF256C524E7B5D85B813751B718C4933D9DC6031F2C5B2E13351A54B6021B2DB72AA0C7EA54727FBCD557E67E5E7CC2E165576E39DB4DA33510BA9A3C847313103A18EF3B23A3440471864D58C79C569D5CD2A653AC16043CA9A61E6878F74C18EE15F9AB23754C37A945B68C0437C19F0079F74B573D9B59DAC25A20781DBE8075C947C9EDC76177A1B0794288CBF89567A541E8401C74E85B8E1C3E501860AF702F641CAA04327018A84EF3A82932A2BCF37047AB40FE77E0A6F68D0904C7E60983CD6F871D5E0E27EEF425C97D39E9394E8927EEF5D2EA9388DF3C5C241F99378DF5DADE8D0F0CF453C803BA38BA702B9651685FAFA6DCB4B14333F8D3C57F2D93E0852AA94EEC3AF3217CAE5873EFD9", "WrappedKeyMaterialFormat": "KEY_CRYPTOGRAM" } }
-
-
受信システムにキーをインポートする
多くの HSMsおよび関連システムは、RSA アンラップ ( AWS Payment Cryptography を含む) を使用したキーのインポートをサポートしています。インポートするときは、以下を指定します。
-
暗号化証明書としてのステップ 1 のパブリックキー
-
RSA としての形式
-
PKCS#1 v2.2 OAEP としてのパディングモード (SHA 256 を使用)
注記
ラップされたキーは hexBinary 形式で出力されます。base64 など、システムが別のバイナリ表現を必要とする場合は、 形式を変換する必要がある場合があります。
-
あらかじめ設定されているキー交換キー (TR-31) を使用して対称キーをエクスポートする
複数のキーを交換する場合やキーローテーションをサポートする場合は、通常、最初に紙のキーコンポーネントを使用して初期キー暗号化キー (KEK) を交換するか、 AWS Payment Cryptography で TR-34 を使用します。KEK を確立したら、それを使用して、他の KEKs を含む後続のキーを転送できます。HSM ベンダーによって広くサポートされている ANSI TR-31 を使用して、このキー交換をサポートしています。
-
キー暗号化キー (KEK) の設定
KEK をすでに交換し、keyARN (または keyAlias) が使用可能であることを確認します。
-
AWS Payment Cryptography でキーを作成する
キーがまだ存在しない場合は作成します。または、他のシステムで キーを作成し、インポートコマンドを使用することもできます。
-
AWS Payment Cryptography からキーをエクスポートする
TR-31 形式でエクスポートする場合は、エクスポートするキーと使用するラッピングキーを指定します。
例 – TR31 キーブロックを使用したキーのエクスポート
$
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" } }
-
システムにキーをインポートする
システムのインポートキー実装を使用してキーをインポートします。
DUKPT 初期キーのエクスポート (IPEK/IK)
DUKPT を使用する場合、ターミナルのフリートに対して 1 つのベース導出キー (BDK) を生成できます。ターミナルは BDK に直接アクセスできません。代わりに、各ターミナルは IPEK または初期キー (IK) と呼ばれる一意の初期ターミナルキーを受け取ります。各 IPEK は、一意のキーシリアル番号 (KSN) を使用して BDK から取得されます。
KSN 構造は暗号化タイプによって異なります。
-
TDES の場合: 10 バイトの KSN には以下が含まれます。
-
キーセット ID の 24 ビット
-
ターミナル ID の 19 ビット
-
トランザクションカウンターの 21 ビット
-
-
AES の場合: 12 バイトの KSN には以下が含まれます。
-
BDK ID の 32 ビット
-
取得識別子 (ID) の 32 ビット
-
トランザクションカウンターの 32 ビット
-
これらの初期キーを生成してエクスポートするメカニズムが用意されています。生成されたキーは、TR-31, TR-34、または RSA ラップメソッドを使用してエクスポートできます。IPEK キーは保持されず、 AWS Payment Cryptography での以降のオペレーションには使用できません。
KSN の最初の 2 つの部分間の分割は強制しません。取得識別子を BDK に保存する場合は、 AWS タグを使用できます。
注記
KSN のカウンター部分 (AES DUKPT の場合は 32 ビット) は、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" } }
エクスポート用のキーブロックヘッダーを指定する
ASC TR-31 または TR-34 形式でエクスポートするときに、キーブロック情報を変更または追加できます。次の表は、TR-31 キーブロック形式と、エクスポート中に変更できる要素を示しています。
キーブロック属性 | 目的 | エクスポート中に を変更できますか? | メモ |
---|---|---|---|
バージョン ID |
キーマテリアルを保護するために使用される方法を定義します。この標準には、次のものが含まれます。
|
いいえ |
TDES ラッピングキーにはバージョン B、AES ラッピングキーにはバージョン D を使用します。バージョン A と C は、インポートオペレーションでのみサポートされています。 |
キーブロックの長さ |
残りのメッセージの長さを指定します。 |
いいえ |
この値は自動的に計算されます。指定に応じてキーパディングを追加する可能性があるため、ペイロードを復号する前に長さが正しくないように見える場合があります。 |
キーの使用方法 |
キーで許可される目的を定義します。次に例を示します。
|
いいえ |
|
アルゴリズム |
基盤となるキーのアルゴリズムを指定します。以下がサポートされています。
|
いいえ |
この値はそのままエクスポートされます。 |
キーの使用方法 |
次のような許可されたオペレーションを定義します。
|
はい* |
|
キーバージョン |
キーの置換/ローテーションのバージョン番号を示します。指定しない場合、デフォルトは 00 です。 |
はい - 追加できます |
|
キーのエクスポート可能性 |
キーをエクスポートできるかどうかを制御します。
|
はい* |
|
オプションのキーブロック |
はい - 追加できます |
オプションのキーブロックは、キーに暗号でバインドされた名前と値のペアです。たとえば、DUKPT キーの KeySetID などです。名前と値のペアの入力に基づいて、ブロック数、各ブロックの長さ、パディングブロック (PB) が自動的に計算されます。 |
*値を変更する場合、新しい値は AWS Payment Cryptography の現在の値よりも制限されている必要があります。例:
-
現在のキーモードが Generate=True、Verify=True の場合、Generate=True、Verify=False に変更できます。
-
キーがすでにエクスポート不可に設定されている場合は、エクスポート可能に変更することはできません。
キーをエクスポートすると、エクスポートするキーから現在の値が自動的に適用されます。ただし、受信システムに送信する前に、これらの値を変更または追加することもできます。一般的なシナリオをいくつか示します。
-
キーを支払いターミナルにエクスポートする場合、ターミナルは通常キーをインポートするだけであり、エクスポートすべきではない
Not Exportable
ため、そのエクスポート可能性を に設定します。 -
関連するキーメタデータを受信システムに渡す必要がある場合は、TR-31 オプションのヘッダーを使用して、カスタムペイロードを作成する代わりにメタデータをキーに暗号化的にバインドします。
-
キーローテーションを追跡するには、
KeyVersion
フィールドを使用してキーバージョンを設定します。
TR-31/X9.143 は一般的なヘッダーを定義しますが、 AWS Payment Cryptography パラメータを満たし、受信システムが受け入れることができる限り、他のヘッダーを使用できます。エクスポート中のキーブロックヘッダーの詳細については、 API ガイドの「キーブロックヘッダー」を参照してください。
次の仕様で BDK キー (KIF など) をエクスポートする例を示します。
-
キーバージョン: 02
-
KeyExportability: NON_EXPORTABLE
-
KeySetID: 00ABCDEFAB (00 は TDES キー、ABCDEFABCD は初期キーを示します)
キーモードは指定されないため、このキーは arn:aws:payment-cryptography:us-east-2:111122223333:key/5rplquuwozodpwsp (DeriveKey = true) から使用モードを継承します。
注記
$
aws payment-cryptography export-key \
--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": "EXAMPLE_KEY_MATERIAL_TR31", "KeyCheckValue": "A4C9B3", "KeyCheckValueAlgorithm": "ANSI_X9_24" } }
非対称 (RSA) キーのエクスポート
証明書形式でパブリックキーをエクスポートするには、 get-public-key-certificate コマンドを使用します。このコマンドは以下を返します。
-
証明書
-
ルート証明書
両方の証明書は base64 エンコードです。
注記
このオペレーションはべき等ではありません。後続の呼び出しでは、同じ基盤となるキーを使用していても、異なる証明書を生成する場合があります。
$
aws payment-cryptography get-public-key-certificate \
--key-identifier
arn:aws:payment-cryptography:us-east-2:111122223333:key/5dza7xqd6soanjtb
{ "KeyCertificate": "LS0tLS1CRUdJTi...", "KeyCertificateChain": "LS0tLS1CRUdJT..." }