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 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. Google-owned and managed key

Menggunakan Google-owned and managed key

Saat menggunakan a 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 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 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 Kurva Elips 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 kelompok 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 kelompok yang sama memberikan kekuatan keamanan yang lebih besar, kunci ini juga menyebabkan lebih banyak data yang disimpan dan ditransmisikan melalui kabel. 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:

  1. Pilih kelompok algoritma.

    Jika Anda membuat CA subordinat yang dirantai ke CA root yang ada, gunakan kelompok 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 Kurva elips.

  2. 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.

  3. 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 kelompok 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.

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 CryptoKeyPurpose ASYMMETRIC_SIGN. Kunci ini melakukan operasi tanda tangan digital untuk menerbitkan sertifikat.
  • Kunci enkripsi data tidak aktif: Memerlukan kunci dengan CryptoKeyPurpose ENCRYPT_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 di us-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/Verifier CryptoKey Cloud Key Management Service (roles/cloudkms.signerVerifier) ke akun layanan di kunci Cloud Key Management Service.

Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.

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.

Langkah berikutnya