Key Management Service (KMS) は、一般的な対称キーと非対称キーをサポートし、暗号化されたデータのセキュリティを確保します。このトピックでは、対称キーと非対称キーのキー仕様について説明します。
対称暗号化
対称暗号化は、機密データを保護するために一般的に実装されています。同じキーを使用して、データを暗号化および復号化できます。KMS は、対称キーが不正なユーザーによって使用されたり、盗まれたりするのを防ぐために、対称キーのキーマテリアルを機密に保ちます。これにより、暗号化されたデータのセキュリティが確保されます。
キー仕様
ほとんどの場合、対称キーはデータ暗号化に使用されます。次の表に、さまざまなタイプの対称キーでサポートされているキー仕様を示します。
保護レベル | キー仕様 | データ暗号化モード | パディングモード |
ソフトウェア保護キー | Aliyun_AES_256 | GCM (デフォルト) | N/A |
ハードウェア保護キー |
| GCM (デフォルト)、電子コードブック (ECB)、暗号ブロック連鎖 (CBC) |
|
外部キー | Aliyun_AES_256 | GCM (デフォルト)、ECB、CBC |
|
CreateKey 操作を呼び出してキーを作成する際に KeySpec を設定しない場合、KMS はキー仕様が Aliyun_AES_256 の対称キーを作成します。
技術標準への準拠
Aliyun_AES_256: 256 ビットの高度暗号化標準 (AES) キー。高度暗号化標準 (AES) (FIPS PUB 197) に準拠しています。
Aliyun_AES_192: 192 ビットの AES キー。高度暗号化標準 (AES) (FIPS PUB 197) に準拠しています。
Aliyun_AES_128: 128 ビットの AES キー。高度暗号化標準 (AES) (FIPS PUB 197) に準拠しています。
非対称暗号化
非対称キーは、数学的に相互に関連する公開鍵と秘密鍵で構成されます。公開鍵はすべてのユーザーが利用できますが、秘密鍵は所有者または信頼できるユーザーのみが使用できます。
KMS で非対称キーを作成した後、KMS コンソールで、または GetPublicKey 操作を呼び出すことによって公開鍵を取得できます。KMS は秘密鍵のセキュリティを確保し、操作を呼び出すことによる秘密鍵のエクスポートをサポートしていません。
ほとんどの場合、非対称キーペアは、署名と検証、または対称キーなどの少量の機密情報の暗号化と送信に使用されます。非対称キーを作成するときに、キーの目的を指定できます。
キーの目的が [ENCRYPT/DECRYPT] の場合、Encrypt 操作を呼び出して公開鍵でデータを暗号化し、Decrypt 操作を呼び出して秘密鍵でデータを復号化できます。
キーの目的が [SIGN/VERIFY] の場合、Sign 操作を呼び出して秘密鍵でデジタル署名を生成し、Verify 操作を呼び出して公開鍵で署名を検証できます。
非対称暗号化は計算負荷が高くなります。ほとんどの場合、非対称暗号化操作は、対称キーを安全に配布するなど、データを小さな断片で暗号化するために使用されます。
キー仕様
次の表に、さまざまなタイプの非対称キーでサポートされているキー仕様を示します。
CMK | キー仕様 | サポートされている暗号化アルゴリズム | サポートされている署名アルゴリズム |
ソフトウェア保護キー | RSA_2048, RSA_3072, RSA_4096 | RSAES_OAEP_SHA_256 (デフォルト) | RSA_PSS_SHA_256 (デフォルト)、RSA_PKCS1_SHA_256 |
EC_P256, EC_P256K | ECIES_DH_SHA_1_XOR_HMAC (デフォルト) | ECDSA_SHA_256 (デフォルト) | |
ハードウェア保護キー | RSA_2048, RSA_3072, RSA_4096 | RSAES_OAEP_SHA_256 (デフォルト) | RSA_PSS_SHA_256 (デフォルト)、RSA_PKCS1_SHA_256 |
EC_P256, EC_P256K | ECIES_DH_SHA_1_XOR_HMAC (デフォルト) | ECDSA_SHA_256 (デフォルト) |
技術標準への準拠
RSA_2048: 2048 ビットの Rivest-Shamir-Adleman (RSA) キーペア。PKCS #1: RSA Cryptography Specifications Version 2.2 に準拠しています。
RSA_3072: 3072 ビットの RSA キーペア。PKCS #1: RSA Cryptography Specifications Version 2.2 に準拠しています。
RSA_4096: 4096 ビットの RSA キーペア。PKCS #1: RSA Cryptography Specifications Version 2.2 に準拠しています。
EC_P256: P-256 曲線上で生成された楕円曲線暗号 (ECC) キーペア。P-256 は、米国国立標準技術研究所 (NIST) が推奨する曲線の 1 つであり、他の標準では secp256r1 または ANSI prime256v1 とも呼ばれます。NIST SP800-186 Recommendations for Discrete Logarithm-based Cryptography に準拠しています。
EC_P256K: secp256k1 曲線上で生成された ECC キーペア。この曲線は、Standards for Efficient Cryptography Group (SECG) によって推奨されているものの 1 つです。SEC 2: Recommended Elliptic Curve Domain Parameters に準拠しています。
暗号化アルゴリズム
RSAES_OAEP_SHA_256: RFC 3447 の PKCS #1 で定義されているように、RSAES-OAEP パディングモードで MGF1 と SHA-256 を使用する RSA 暗号化アルゴリズム。
ECIES_DH_SHA_1_XOR_HMAC: SEC 1: Elliptic Curve Cryptography, Version 2.0 に準拠し、キー合意に楕円曲線ディフィー・ヘルマン (ECDH) を使用し、キー派生に SHA-1 を使用したキー派生関数 2 (KDF2) を使用し、メッセージ認証コード (MAC) アルゴリズムとして HMAC-SHA-1 を使用し、対称暗号化に XOR を使用します。
署名アルゴリズム
RSA_PSS_SHA_256: SHA-256 アルゴリズムを使用してハッシュ値を計算し、RFC 3447 の PKCS #1 で定義されている RSASSA-PSS アルゴリズムに基づいて MGF1 と SHA-256 を使用して署名を計算します。
RSA_PKCS1_SHA_256: SHA-256 アルゴリズムを使用してハッシュ値を計算し、RFC 3447 の PKCS #1 で定義されている RSASSA-PKCS1-v1_5 アルゴリズムに基づいて署名を計算します。
ECDSA_SHA_256: 楕円曲線デジタル署名アルゴリズム (ECDSA) を使用して署名を計算し、SHA-256 を使用してハッシュ値を計算します。