Key Management Service (KMS) mendukung kunci simetris dan asimetris umum serta memastikan keamanan data terenkripsi. Topik ini menjelaskan spesifikasi kunci dari kunci simetris dan asimetris.
Enkripsi simetris
Enkripsi simetris biasanya diimplementasikan untuk melindungi data sensitif. Anda dapat menggunakan kunci yang sama untuk mengenkripsi dan mendekripsi data. KMS menjaga materi kunci dari kunci simetris tetap rahasia untuk mencegah kunci simetris digunakan oleh pengguna tidak berwenang atau dicuri, sehingga memastikan keamanan data terenkripsi.
Spesifikasi kunci
Dalam sebagian besar kasus, kunci simetris digunakan untuk enkripsi data. Tabel berikut menjelaskan spesifikasi kunci yang didukung oleh berbagai jenis kunci simetris.
Tingkat perlindungan | Spesifikasi kunci | Mode enkripsi data | Mode padding |
Kunci yang dilindungi perangkat lunak | Aliyun_AES_256 | GCM (default) | Tidak ada. |
Kunci yang dilindungi perangkat keras |
| GCM (default), electronic codebook (ECB), cipher block chaining (CBC) |
|
Kunci Eksternal | Aliyun_AES_256 | GCM (default), ECB, CBC |
|
Jika Anda memanggil operasi CreateKey untuk membuat kunci tanpa mengonfigurasi KeySpec, KMS akan membuat kunci simetris dengan spesifikasi kunci Aliyun_AES_256.
Kepatuhan standar teknis
Aliyun_AES_256: Kunci Standar Enkripsi Lanjutan (AES) 256-bit. Mematuhi Standar Enkripsi Lanjutan (AES) (FIPS PUB 197).
Aliyun_AES_192: Kunci AES 192-bit. Mematuhi Standar Enkripsi Lanjutan (AES) (FIPS PUB 197).
Aliyun_AES_128: Kunci AES 128-bit. Mematuhi Standar Enkripsi Lanjutan (AES) (FIPS PUB 197).
Enkripsi asimetris
Kunci asimetris terdiri dari kunci publik dan kunci privat yang saling terkait secara matematis. Kunci publik tersedia untuk semua pengguna, sedangkan kunci privat hanya dapat digunakan oleh pemilik atau pengguna tepercaya.
Setelah Anda membuat kunci asimetris di KMS, Anda dapat memperoleh kunci publik di Konsol KMS atau dengan memanggil operasi GetPublicKey. KMS memastikan keamanan kunci privat dan tidak mendukung ekspor kunci privat melalui pemanggilan operasi.
Dalam sebagian besar kasus, pasangan kunci asimetris digunakan untuk penandatanganan dan verifikasi atau untuk mengenkripsi dan mentransmisikan sejumlah kecil informasi rahasia, seperti kunci simetris. Anda dapat menentukan tujuan kunci saat membuat kunci asimetris.
Jika tujuan kunci adalah ENCRYPT/DECRYPT, Anda dapat memanggil operasi Encrypt untuk mengenkripsi data menggunakan kunci publik dan memanggil operasi Decrypt untuk mendekripsi data menggunakan kunci privat.
Jika tujuan kunci adalah SIGN/VERIFY, Anda dapat memanggil operasi Sign untuk menghasilkan tanda tangan digital menggunakan kunci privat dan memanggil operasi Verify untuk memverifikasi tanda tangan menggunakan kunci publik.
Enkripsi asimetris sangat intensif komputasi. Dalam sebagian besar kasus, operasi kriptografi asimetris digunakan untuk mengenkripsi data dalam potongan kecil, seperti distribusi aman kunci simetris.
Spesifikasi kunci
Tabel berikut menjelaskan spesifikasi kunci yang didukung oleh berbagai jenis kunci asimetris.
CMK | Spesifikasi kunci | Algoritma enkripsi yang didukung | Algoritma tanda tangan yang didukung |
Kunci yang dilindungi perangkat lunak | 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) | |
Kunci yang dilindungi perangkat keras | 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) |
Kepatuhan standar teknis
RSA_2048: Pasangan kunci Rivest-Shamir-Adleman (RSA) 2048-bit. Mematuhi PKCS #1: Spesifikasi Kriptografi RSA Versi 2.2.
RSA_3072: Pasangan kunci RSA 3072-bit. Mematuhi PKCS #1: Spesifikasi Kriptografi RSA Versi 2.2.
RSA_4096: Pasangan kunci RSA 4096-bit. Mematuhi PKCS #1: Spesifikasi Kriptografi RSA Versi 2.2.
EC_P256: Pasangan kunci Kriptografi Kurva Eliptik (ECC) yang dihasilkan pada kurva P-256. P-256 adalah salah satu kurva yang direkomendasikan oleh National Institute of Standards and Technology (NIST) dan juga dikenal sebagai secp256r1 atau ANSI prime256v1 di standar lain. Mematuhi NIST SP800-186 Rekomendasi untuk Kriptografi Berbasis Logaritma Diskrit.
EC_P256K: Pasangan kunci ECC yang dihasilkan pada kurva secp256k1. Kurva ini adalah salah satu yang direkomendasikan oleh Kelompok Standar untuk Kriptografi Efisien (SECG). Mematuhi SEC 2: Parameter Domain Kurva Eliptik yang Direkomendasikan.
Algoritma enkripsi
RSAES_OAEP_SHA_256: Algoritma enkripsi RSA yang menggunakan MGF1 dan SHA-256 dalam mode padding RSAES-OAEP seperti yang didefinisikan dalam PKCS #1 di RFC 3447.
ECIES_DH_SHA_1_XOR_HMAC: Mematuhi SEC 1: Kriptografi Kurva Eliptik, Versi 2.0, menggunakan Elliptic-curve Diffie–Hellman (ECDH) untuk kesepakatan kunci, menggunakan fungsi derivasi kunci 2 (KDF2) dengan SHA-1 untuk derivasi kunci, menggunakan HMAC-SHA-1 sebagai algoritma Message Authentication Code (MAC), dan menggunakan XOR untuk enkripsi simetris.
Algoritma tanda tangan
RSA_PSS_SHA_256: Menggunakan algoritma SHA-256 untuk menghitung nilai hash dan menggunakan MGF1 dengan SHA-256 untuk menghitung tanda tangan berdasarkan algoritma RSASSA-PSS yang didefinisikan dalam PKCS #1 di RFC 3447.
RSA_PKCS1_SHA_256: Menggunakan algoritma SHA-256 untuk menghitung nilai hash dan menghitung tanda tangan berdasarkan algoritma RSASSA-PKCS1-v1_5 yang didefinisikan dalam PKCS #1 di RFC 3447.
ECDSA_SHA_256: Menggunakan algoritma tanda tangan digital kurva eliptik (ECDSA) untuk menghitung tanda tangan dan SHA-256 untuk menghitung nilai hash.