Mengonfigurasi kunci penandatanganan CA
Certificate Authority (CA) di Certificate Authority Service (CA Service) memerlukan kunci kriptografi untuk menandatangani sertifikat yang diterbitkannya. Kunci penandatanganan ini menetapkan kepercayaan untuk Infrastruktur Kunci Publik (PKI) Anda.
Dokumen ini menjelaskan strategi pengelolaan kunci yang dapat Anda pilih untuk kunci penandatanganan CA, dan cara mengonfigurasinya. Anda dapat memilih kunci yang dikelola Google 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.
Menggunakan kunci yang dikelola Google Google-owned and managed key
Saat menggunakan kunci yang dikelola Google Google-owned and managed key, Anda memilih algoritma kriptografi dan ukuran kunci. CA Service membuat dan mengelola siklus proses kunci Cloud Key Management Service khusus dalam project yang dikelola Google.
Meninjau algoritma kunci penandatanganan yang didukung
Cloud KMS mendukung dua keluarga 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 aman secara terverifikasi serta direkomendasikan untuk sebagian besar implementasi 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 untuk performa dan efisiensi pada sistem modern.
Rantai campuran
Menggunakan keluarga algoritma yang berbeda dalam rantai sertifikat yang sama dapat menyebabkan masalah bagi 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 yang disimpan dan ditransmisikan melalui jaringan. Selain itu, operasi enkripsi dan penandatanganan terkadang dapat memerlukan waktu lebih lama dengan ukuran kunci yang lebih besar, meskipun perbedaannya mungkin tidak terlihat.
Untuk kunci yang lebih tahan lama, seperti kunci yang terkait dengan CA root atau CA subordinat yang tahan lama, 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 singkat.
Memilih algoritma penandatanganan untuk kunci CA
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 menggunakan 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 Elliptic curve.
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 singkat, Anda dapat menggunakan ukuran kunci yang lebih kecil, seperti 2048 bit untuk RSA atau 256 bit untuk ECDSA.
Kesetaraan kekuatan kunci
Kekuatan keamanan ukuran kunci pribadi bergantung pada algoritma yang digunakan. Tabel berikut menunjukkan ukuran kunci yang memberikan keamanan yang kira-kira setara:
| Kekuatan kunci | Setara dengan RSA | Setara dengan ECDSA |
|---|---|---|
| 112 bit | RSA-2048 | - |
| 128 bit | RSA-3072 | P-256 |
| 156 bit | RSA-4096 | - |
| 192 bit | - | P-384 |
Menggunakan kunci yang dikelola pelanggan
Anda dapat mengonfigurasi CA untuk menggunakan kunci penandatanganan asimetris baru atau yang sudah 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 tidak aktif. Perbedaan utama antara kedua jenis kunci ini adalah CryptoKeyPurpose yang dikonfigurasi di Cloud KMS:
- Kunci penandatanganan CA: Memerlukan kunci dengan
CryptoKeyPurposeASYMMETRIC_SIGN. Kunci ini melakukan operasi tanda tangan digital untuk menerbitkan sertifikat. - Kunci enkripsi data tidak aktif: Memerlukan kunci dengan
CryptoKeyPurposeENCRYPT_DECRYPT. Kunci ini mengenkripsi dan mendekripsi data. Kunci enkripsi data tidak aktif juga dikenal sebagai kunci enkripsi yang dikelola pelanggan (CMEK).
Anda tidak dapat menggunakan satu kunci Cloud KMS untuk penandatanganan dan enkripsi data tidak aktif. Tujuan ini saling eksklusif, dan Anda menetapkannya saat pembuatan kunci.
CA Service juga mendukung enkripsi data tidak aktif 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 berada 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 Anda rencanakan untuk digunakan harus diaktifkan.
Peran yang diperlukan
Untuk memastikan akun layanan memiliki izin yang diperlukan untuk menggunakan kunci yang dikelola pelanggan untuk operasi penandatanganan, minta administrator untuk memberikan peran IAM Penanda Tangan/Pemverifikasi CryptoKey Cloud Key Management Service (roles/cloudkms.signerVerifier) ke akun layanan di kunci Cloud Key Management Service.
Administrator Anda mungkin juga dapat memberikan izin yang diperlukan kepada akun layanan melalui peran kustom atau peran yang telah ditetapkan.
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 Certificate Authority.
Cara memilih kunci sertifikat entitas akhir
Saat meminta sertifikat entitas akhir dari CA Service, Anda memberikan kunci publik dalam Certificate Signing Request (CSR). Sertifikat entitas akhir mengautentikasi klien dan server, membuat sesi TLS, atau menandatangani kode. Karena sertifikat entitas akhir memiliki batasan performa dan kompatibilitas yang berbeda dengan kunci Certificate Authority (CA), Anda harus memilih algoritma kunci yang sesuai.
Pertimbangkan faktor-faktor berikut saat memilih algoritma kunci asimetris untuk sertifikat entitas akhir Anda:
- Kompatibilitas klien dan server:
- Algoritma RSA: Memberikan kompatibilitas terluas dengan sistem lama. Gunakan RSA-2048 atau RSA-3072 untuk sertifikat entitas akhir standar.
- Algoritma ECDSA: Memberikan keamanan yang setara dengan RSA pada ukuran kunci yang jauh lebih kecil, yang meningkatkan performa koneksi. Gunakan ECDSA P-256 atau P-384 untuk infrastruktur modern.
- Masa berlaku sertifikat dan kekuatan kunci:
- Sertifikat jangka pendek: Sertifikat yang berlaku selama beberapa hari atau bulan dapat menggunakan RSA-2048 atau ECDSA P-256 dengan aman.
- Sertifikat jangka panjang: Untuk sertifikat yang berlaku selama beberapa tahun, gunakan RSA-3072 atau ECDSA P-384 untuk mempertahankan kekuatan kriptografi dari waktu ke waktu.
Langkah berikutnya
- Pelajari cara Membuat CA root.
- Pelajari cara Membuat CA subordinat.
- Pelajari tentang Cloud KMS: Tujuan utama dan algoritma.
- Pelajari Cloud KMS: Tanda tangan digital.
- Pelajari cara Mengonfigurasi bucket penyimpanan.