Dalam skenario seperti enkripsi data dan tanda tangan digital, Anda dapat memilih jenis manajemen kunci dan spesifikasi kunci yang sesuai berdasarkan persyaratan kepatuhan (misalnya terhadap kriptografi nasional), kebutuhan performa, atau tingkat keamanan. Setelah Anda membeli modul perangkat lunak kriptografi nasional, kunci yang dilindungi perangkat lunak mendukung spesifikasi Aliyun_SM4. Topik ini menjelaskan spesifikasi kunci yang didukung oleh masing-masing jenis manajemen kunci.
Spesifikasi kunci simetris yang didukung
Enkripsi simetris menggunakan kunci yang sama untuk proses enkripsi dan dekripsi. KMS menyimpan bahan kunci secara aman untuk mencegah akses tidak sah, sehingga menjamin kerahasiaan data terenkripsi Anda.
Spesifikasi kunci
Tabel berikut mencantumkan spesifikasi kunci yang didukung oleh masing-masing jenis manajemen kunci untuk kunci simetris.
-
Saat Anda memanggil operasi CreateKey untuk membuat kunci tanpa menentukan KeySpec, KMS secara default membuat kunci simetris dengan spesifikasi Aliyun_AES_256.
-
Kunci HMAC memerlukan versi instans KMS 4.1.0 atau lebih baru. Jika tidak, konsol akan meminta Anda untuk melakukan upgrade image instans. Kunci HMAC tidak mendukung rotasi kunci otomatis.
|
Jenis manajemen kunci |
Spesifikasi kunci |
Algoritma enkripsi yang didukung |
Penggunaan kunci yang didukung |
Padding Mode |
|
Default key |
Aliyun_AES_256 |
GCM (default) |
ENCRYPT/DECRYPT |
N/A |
|
Software-protected key |
Aliyun_AES_256 |
GCM (default) |
ENCRYPT/DECRYPT |
N/A |
|
HMAC_224 |
HMAC_SHA_224 |
SIGN/VERIFY |
N/A |
|
|
HMAC_256 |
HMAC_SHA_256 |
SIGN/VERIFY |
||
|
HMAC_384 |
HMAC_SHA_384 |
SIGN/VERIFY |
||
|
HMAC_512 |
HMAC_SHA_512 |
SIGN/VERIFY |
||
|
Hardware-protected key |
|
GCM (default), ECB, CBC |
ENCRYPT/DECRYPT |
|
|
HMAC_224 |
HMAC_SHA_224 |
SIGN/VERIFY |
N/A |
|
|
HMAC_256 |
HMAC_SHA_256 |
SIGN/VERIFY |
||
|
HMAC_384 |
HMAC_SHA_384 |
SIGN/VERIFY |
||
|
HMAC_512 |
HMAC_SHA_512 |
SIGN/VERIFY |
||
|
External key |
Aliyun_AES_256 |
GCM (default), ECB, CBC |
ENCRYPT/DECRYPT |
|
Standar teknis
-
Aliyun_AES_256: Kunci AES, 256 bit. Mematuhi standar teknis "Advanced Encryption Standard (AES)" (FIPS PUB 197).
-
Aliyun_AES_192: Kunci AES, 192 bit. Mematuhi standar teknis "Advanced Encryption Standard (AES)" (FIPS PUB 197).
-
Aliyun_AES_128: Kunci AES, 128 bit. Mematuhi standar teknis "Advanced Encryption Standard (AES)" (FIPS PUB 197).
-
HMAC_224: Kunci HMAC menggunakan algoritma hash SHA-224 dengan output MAC sepanjang 224 bit. Mematuhi standar teknis "The Keyed-Hash Message Authentication Code (HMAC)" (FIPS 198-1).
-
HMAC_256: Kunci HMAC menggunakan algoritma hash SHA-256 dengan output MAC sepanjang 256 bit. Mematuhi standar teknis "The Keyed-Hash Message Authentication Code (HMAC)" (FIPS 198-1).
-
HMAC_384: Kunci HMAC menggunakan algoritma hash SHA-384 dengan output MAC sepanjang 384 bit. Mematuhi standar teknis "The Keyed-Hash Message Authentication Code (HMAC)" (FIPS 198-1).
-
HMAC_512: Kunci HMAC menggunakan algoritma hash SHA-512 dengan output MAC sepanjang 512 bit. Mematuhi standar teknis "The Keyed-Hash Message Authentication Code (HMAC)" (FIPS 198-1).
Spesifikasi kunci asimetris yang didukung
Kunci asimetris terdiri atas pasangan kunci publik dan kunci privat yang saling terkait secara kriptografis. Kunci publik dapat didistribusikan secara bebas, sedangkan kunci privat harus tetap dilindungi secara aman dan hanya dapat diakses oleh pemilik atau pihak tepercaya.
Untuk kunci asimetris yang dibuat di KMS, kunci publik dapat diperoleh melalui operasi GetPublicKey atau konsol KMS. KMS menjamin keamanan kunci privat dan tidak menyediakan operasi apa pun untuk mengekspornya.
Kunci asimetris biasanya digunakan untuk verifikasi tanda tangan digital atau untuk mengenkripsi dan mendistribusikan data dalam jumlah kecil seperti kunci simetris. Tetapkan penggunaan kunci saat Anda membuat kunci asimetris.
-
ENCRYPT/DECRYPT: Gunakan kunci publik untuk mengenkripsi data melalui operasi Encrypt, dan kunci privat untuk mendekripsi data melalui operasi Decrypt.
-
SIGN/VERIFY: Gunakan kunci privat untuk menghitung tanda tangan digital melalui operasi Sign, dan kunci publik untuk memverifikasi tanda tangan melalui operasi Verify.
Karena biaya komputasi yang tinggi pada operasi kriptografi asimetris, gunakan kunci asimetris hanya untuk blok data kecil seperti distribusi aman kunci simetris.
Spesifikasi kunci
Tabel berikut mencantumkan spesifikasi kunci yang didukung oleh masing-masing jenis manajemen kunci untuk kunci asimetris.
|
Jenis manajemen kunci |
Spesifikasi kunci |
Algoritma enkripsi yang didukung |
Algoritma tanda tangan yang didukung |
|
Software-protected key |
RSA_2048, RSA_3072, RSA_4096 |
RSAES_OAEP_SHA_256 (default) |
RSA_PSS_SHA_256 (default), RSA_PKCS1_SHA_256 |
|
EC_P256, EC_P256K |
ECIES_DH_SHA_1_XOR_HMAC (default) |
ECDSA_SHA_256 (default) |
|
|
Ed25519 |
Not supported |
EdDSA |
|
|
Hardware-protected key |
RSA_2048, RSA_3072, RSA_4096 |
RSAES_OAEP_SHA_256 (default) |
RSA_PSS_SHA_256 (default), RSA_PKCS1_SHA_256 |
|
EC_P256, EC_P256K |
ECIES_DH_SHA_1_XOR_HMAC (default) |
ECDSA_SHA_256 (default) |
Standar teknis
-
RSA_2048: Pasangan kunci RSA dengan panjang modulus 2048 bit. Mematuhi standar teknis "PKCS #1: RSA Cryptography Specifications Version 2.2".
-
RSA_3072: Pasangan kunci RSA dengan panjang modulus 3072 bit. Mematuhi standar teknis "PKCS #1: RSA Cryptography Specifications Version 2.2".
-
RSA_4096: Pasangan kunci RSA dengan panjang modulus 4096 bit. Mematuhi standar teknis "PKCS #1: RSA Cryptography Specifications Version 2.2".
-
EC_P256: Pasangan kunci Elliptic Curve Cryptography (ECC) menggunakan kurva P-256 yang direkomendasikan oleh NIST, juga dikenal sebagai secp256r1 atau ANSI prime256v1 dalam standar lain. Mematuhi standar teknis "NIST SP800-186 Recommendations for Discrete Logarithm-based Cryptography".
-
EC_P256K: Pasangan kunci Elliptic Curve Cryptography (ECC) menggunakan kurva secp256k1 yang direkomendasikan oleh SECG. Mematuhi standar teknis "SEC 2: Recommended Elliptic Curve Domain Parameters".
Algoritma enkripsi
-
RSAES_OAEP_SHA_256: Enkripsi RSA menggunakan mode RSAES-OAEP sebagaimana didefinisikan dalam RFC 3447/PKCS#1, dengan MGF1 dan SHA-256.
-
ECIES_DH_SHA_1_XOR_HMAC: Mematuhi standar SEC 1: Elliptic Curve Cryptography, Version 2.0. Menggunakan ECDH untuk kesepakatan kunci, KDF2 dengan SHA-1 untuk derivasi kunci, HMAC-SHA-1 sebagai algoritma MAC, dan XOR untuk enkripsi simetris.
Algoritma tanda tangan
-
RSA_PSS_SHA_256: Menghitung hash SHA-256 dari data dan signature menggunakan algoritma RSASSA-PSS sebagaimana didefinisikan dalam RFC 3447/PKCS#1, dengan MGF1 (SHA-256).
-
RSA_PKCS1_SHA_256: Menghitung hash SHA-256 dari data dan signature menggunakan algoritma RSASSA-PKCS1-v1_5 sebagaimana didefinisikan dalam RFC 3447/PKCS#1.
-
ECDSA_SHA_256: Signature digital ECDSA menggunakan algoritma hash SHA-256.