Mengonfigurasi kunci penandatanganan CA
Certificate authority (CA) di Certificate Authority Service (CA Service) memerlukan kunci kriptografi untuk menandatangani sertifikat yang diterbitkannya. Kunci penandatanganan ini membangun kepercayaan untuk Infrastruktur Kunci Publik (PKI) Anda.
Dokumen ini menjelaskan strategi pengelolaan kunci yang dapat Anda pilih untuk kunci penandatanganan CA Anda, dan cara mengonfigurasinya. Anda dapat memilih Google-owned and managed key untuk pengelolaan yang disederhanakan dengan penyiapan minimal, atau Anda dapat memilih kunci yang dikelola pelanggan untuk kontrol yang lebih langsung atas siklus proses dan properti kunci.
Gunakan Google-owned and managed key
Saat menggunakan Google-owned and managed key, Anda memilih algoritma kriptografi dan ukuran kunci. Layanan CA membuat dan mengelola siklus proses kunci Cloud Key Management Service khusus di project yang dikelola Google.
Meninjau algoritma kunci penandatanganan yang didukung
Cloud KMS mendukung dua kelompok algoritma untuk operasi penandatanganan asimetris yang cocok untuk CA: RSA dan ECDSA.
RSA
Skema tanda tangan berbasis RSA menawarkan kompatibilitas yang luas. Gunakan RSA jika Anda perlu mendukung sistem lama. Cloud KMS menawarkan varian RSA_SIGN_PSS dan RSA_SIGN_PKCS1. Untuk mengetahui informasi selengkapnya, lihat RFC 8017.
RSA-PSS adalah skema tanda tangan yang lebih baru dan lebih terverifikasi keamanannya, serta direkomendasikan untuk sebagian besar penerapan baru. RSA_SIGN_PKCS1 disediakan untuk kompatibilitas dengan sistem sebelumnya yang belum mendukung PSS.
ECDSA
Kunci Elliptic Curve memberikan keamanan yang serupa dengan RSA dengan ukuran kunci yang lebih kecil. Cloud KMS mendukung EC_SIGN_P256 dan EC_SIGN_P384. ECDSA sering kali lebih disukai karena performa dan efisiensinya pada sistem modern.
Rantai campuran
Penggunaan berbagai jenis algoritma dalam rantai sertifikat yang sama dapat menyebabkan masalah pada beberapa sistem. Untuk mengurangi potensi masalah, sebaiknya buat rantai terpisah untuk RSA dan ECDSA.
Meninjau ukuran kunci yang didukung
Meskipun ukuran kunci yang lebih besar dalam keluarga yang sama memberikan kekuatan keamanan yang lebih besar, kunci ini juga menyebabkan lebih banyak data disimpan dan ditransmisikan melalui kabel. Selain itu, operasi enkripsi dan penandatanganan terkadang memerlukan waktu lebih lama dengan ukuran kunci yang lebih besar, meskipun perbedaannya mungkin tidak terlihat.
Untuk kunci yang lebih tahan lama, seperti yang terkait dengan CA bawahan yang berumur panjang atau root, Anda dapat menggunakan ukuran kunci dengan kekuatan keamanan yang lebih besar daripada kunci lainnya. Misalnya, Anda dapat menggunakan kunci RSA 4096-bit untuk CA root, dan kunci RSA 2048-bit untuk CA subordinat dengan masa aktif yang lebih pendek.
Memilih algoritma penandatanganan untuk kunci CA Anda
Pertimbangkan langkah-langkah berikut saat memilih algoritma penandatanganan untuk kunci CA Anda:
Pilih keluarga algoritma.
Jika Anda membuat CA subordinat yang dirantai ke CA root yang ada, gunakan keluarga yang sama dengan root.
Jika Anda membuat CA root baru, tetapi Anda perlu bekerja dengan sistem lama yang tidak mendukung ECDSA, gunakan salah satu algoritma penandatanganan RSA.
Jika tidak ada kondisi ini yang berlaku untuk Anda, sebaiknya gunakan salah satu algoritma penandatanganan kurva elips.
Khusus RSA: Pilih algoritma tanda tangan.
Jika Anda berencana menggunakan library atau framework lama yang tidak mendukung PSS, gunakan salah satu algoritma
RSA_SIGN_PKCS1.Jika tidak, gunakan salah satu algoritma
RSA_SIGN_PSS.Pilih ukuran kunci.
Untuk CA root baru atau CA subordinat yang diharapkan memiliki masa aktif dalam urutan tahun, sebaiknya gunakan ukuran kunci terbesar yang tersedia untuk keluarga algoritma tersebut.
- Untuk RSA, ukuran kunci terbesar yang didukung adalah 4096 bit.
- Untuk ECDSA, ukuran kunci terbesar yang didukung adalah 384 bit.
Untuk CA subordinat dengan masa aktif yang lebih pendek, Anda dapat menggunakan ukuran kunci yang lebih kecil, seperti 2048 bit untuk RSA atau 256 bit untuk ECDSA.
Menggunakan kunci yang dikelola pelanggan
Anda dapat mengonfigurasi CA untuk menggunakan kunci penandatanganan asimetris baru atau yang ada yang dikelola di project Cloud KMS Anda sendiri. Opsi ini memberikan kontrol langsung atas siklus proses, izin, dan properti kunci. Cloud KMS menentukan algoritma dan ukuran kunci. Saat mengonfigurasi dan membuat CA, Anda memilih versi kunci yang ada, bukan parameter algoritma.
Membedakan kunci penandatanganan dari kunci enkripsi
Menggunakan kunci Cloud Key Management Service sebagai kunci penandatanganan CA berbeda dengan menggunakan satu atau beberapa kunci Cloud KMS untuk enkripsi data dalam penyimpanan. Perbedaan utama
antara kedua jenis kunci ini adalah CryptoKeyPurpose yang dikonfigurasi di
Cloud KMS:
- Kunci penandatanganan CA: Memerlukan kunci dengan
CryptoKeyPurposedariASYMMETRIC_SIGN. Kunci ini melakukan operasi tanda tangan digital untuk menerbitkan sertifikat. - Kunci enkripsi data dalam penyimpanan: Memerlukan kunci dengan
CryptoKeyPurposeENCRYPT_DECRYPT. Kunci ini mengenkripsi dan mendekripsi data. Kunci enkripsi data saat istirahat juga dikenal sebagai kunci enkripsi yang dikelola pelanggan (CMEK).
Anda tidak dapat menggunakan satu kunci Cloud KMS untuk penandatanganan dan enkripsi data saat istirahat. Tujuan ini tidak dapat terjadi bersamaan, dan Anda menetapkannya saat pembuatan kunci.
Layanan CA juga mendukung enkripsi data saat istirahat untuk resource seperti kumpulan CA, yang Anda konfigurasi secara terpisah menggunakan kunci dengan tujuan ENCRYPT_DECRYPT. Untuk mengetahui informasi selengkapnya, lihat Membuat kumpulan CA.
Sebelum memulai
Pastikan persyaratan berikut terpenuhi:
- Kunci harus ada di project Cloud KMS Anda. Lihat Membuat kunci.
Tujuan kunci harus
ASYMMETRIC_SIGN.Algoritma kunci harus berupa algoritma penandatanganan asimetris yang didukung.
Kunci harus berada di lokasi yang sama dengan kumpulan CA Anda. Misalnya, jika kumpulan CA Anda berada di
us-central1, kunci Cloud KMS juga harus berada dius-central1. Untuk mengetahui informasi tentang lokasi Cloud KMS, lihat Lokasi Cloud KMS.Versi kunci yang akan Anda gunakan harus diaktifkan.
Peran yang diperlukan
Untuk memastikan akun layanan memiliki izin yang diperlukan untuk menggunakan kunci yang dikelola pelanggan untuk operasi penandatanganan,
minta administrator Anda untuk memberikan
peran IAM Penanda Tangan/Verifikator CryptoKey Cloud Key Management Service (roles/cloudkms.signerVerifier)
kepada akun layanan di kunci Cloud Key Management Service.
Administrator Anda mungkin juga dapat memberikan izin yang diperlukan kepada akun layanan melalui peran khusus atau peran yang telah ditetapkan lainnya.
Mendapatkan ID resource versi kunci
Saat membuat CA, Anda harus memberikan ID resource lengkap dari CryptoKeyVersion Cloud KMS tertentu. Salin string ini untuk digunakan dalam proses pembuatan CA.
Format ID resource yang diperlukan adalah sebagai berikut:
projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KMS_KEY/cryptoKeyVersions/VERSION
Ganti kode berikut:
- KMS_PROJECT_ID: ID project yang berisi kunci KMS Anda.
- LOCATION: lokasi kunci KMS. Lokasi ini harus sama dengan lokasi kumpulan CA Anda.
- KEY_RING: nama key ring KMS.
- KMS_KEY: nama kunci KMS.
- VERSION: versi kunci KMS.
Untuk mempelajari lebih lanjut, lihat Mendapatkan ID resource Cloud KMS. Gunakan ID ini saat Anda Membuat Otoritas Sertifikat.
Langkah berikutnya
- Pelajari cara Membuat CA root.
- Pelajari cara Membuat CA turunan.
- Pelajari Cloud KMS: Tujuan dan algoritma kunci.
- Pelajari Cloud KMS: Tanda tangan digital.
- Pelajari cara Mengonfigurasi bucket penyimpanan.