Memformat kunci untuk impor

Topik ini menjelaskan cara memformat kunci agar dapat diimpor oleh Cloud KMS sebagai versi kunci baru.

Format yang benar untuk materi kunci Anda bervariasi berdasarkan apakah materi kunci diimpor ke kunci simetris, atau ke kunci asimetris. Untuk informasi selengkapnya tentang perbedaan antara kunci simetris dan asimetris, lihat Tujuan dan algoritma kunci.

Format kunci yang didukung

  • Kunci simetris untuk enkripsi harus berukuran 16 byte (khusus enkripsi simetris mentah) atau 32 byte data biner, dan tidak boleh dienkode. Jika kunci Anda berenkode hex atau berenkode base64, Anda harus mendekodenya sebelum mencoba mengimpornya.

  • Kunci simetris untuk penandatanganan (kunci MAC) harus memiliki panjang yang sama dengan panjang output fungsi hash kriptografis yang digunakan (misalnya, kunci HMAC-SHA256 harus memiliki panjang 32 byte), dan tidak boleh dienkode. Jika kunci Anda berenkode hex atau berenkode base64, Anda harus mendekodenya sebelum mencoba mengimpornya.

  • Kunci asimetris untuk enkripsi atau penandatanganan harus dalam format PKCS #8 dan harus dienkode DER. Format PCKS #8 ditentukan dalam RFC 5208. Encoding DER ditentukan dalam International Telecommunications Union X.680. Kunci asimetris harus menggunakan salah satu kombinasi panjang dan algoritma yang didukung oleh Cloud KMS.

Beberapa aspek kunci, seperti panjang kunci, tidak dapat diubah setelah kunci dibuat. Dalam kasus ini, kunci tidak dapat diimpor ke Cloud KMS.

Memeriksa kunci simetris

Gunakan perintah wc untuk memeriksa panjang kunci simetris.

wc -c /path/to/unwrapped-key
  • Anda tidak dapat mengimpor kunci enkripsi simetris dengan panjang selain 32.

  • Kunci penandatanganan simetris (kunci MAC) harus memiliki panjang yang sama dengan panjang output fungsi hash kriptografis yang digunakan (misalnya, kunci HMAC-SHA256 harus memiliki panjang 32 byte).

Gunakan perintah file untuk memeriksa format kunci.

file /path/to/unwrapped-key
  • Jika output-nya adalah data, kunci tersebut memiliki format yang benar untuk diimpor.

  • Jika outputnya adalah ASCII text, gunakan perintah cat untuk menampilkan konten file.

    • Jika berupa string huruf dan angka yang diakhiri dengan tanda =, string tersebut mungkin dienkode base64. Gunakan perintah base64 (Base64.exe di Windows) untuk mendekodenya. Berikut adalah contoh kunci yang dienkode base64:

      THzArjassB+giKeNeT1Zr74OgV24t+Ep+37Ec6ojB3Y=
      
    • Jika berisi satu atau beberapa baris angka heksadesimal, file tersebut mungkin dienkode hex. Gunakan perintah xxd (atau perintah PowerShell Format-Hex di Windows) untuk mendekodenya. Berikut adalah contoh kunci yang dienkode dalam heksadesimal:

      00000000: 4c7c c0ae 36ac b01f a088 a78d 793d 59af  L|..6.......y=Y.
      00000010: be0e 815d b8b7 e129 fb7e c473 aa23 0776  ...]...).~.s.#.v
      
    • Jika berisi teks lain, kunci tersebut mungkin bukan kunci simetris yang valid.

Memformat kunci asimetris

Kunci asimetris yang menggunakan salah satu algoritma yang didukung dapat diimpor. Dalam praktiknya, sulit untuk menentukan secara retroaktif algoritma yang digunakan untuk membuat kunci asimetris. Oleh karena itu, sebaiknya Anda menjalankan perintah berikut pada setiap kunci asimetris sebelum mencoba mengimpornya ke Cloud KMS.

  1. Gunakan perintah file untuk memeriksa format kunci.

    file /path/to/unwrapped-key
    
    • Jika outputnya adalah PEM, kuncinya dalam format PEM. Jika ASCII text, formatnya mungkin PEM. Dalam kedua kasus tersebut, jalankan perintah berikut untuk mengonversinya ke format DER PCKS#8:

      openssl pkcs8 -topk8 -nocrypt -inform PEM -outform DER \
          -in /path/to/asymmetric-key-pem \
          -out /path/to/formatted-key
      
    • Jika outputnya adalah data, kunci kemungkinan dalam format DER, tetapi mungkin tidak dalam format PKCS #8. Jalankan perintah berikut untuk memastikan bahwa kunci dalam format yang benar. Perintah tidak akan berpengaruh jika kunci sudah dalam format yang benar. Dalam hal ini, Anda dapat menggunakan perintah diff untuk memverifikasi bahwa file input dan output identik.

      openssl pkcs8 -topk8 -nocrypt -inform DER -outform DER \
          -in /path/to/asymmetric-key-der \
          -out /path/to/formatted-key
      

Pemecahan masalah

Jika Anda menjalankan perintah di atas dan yakin kunci tersebut dalam format yang sesuai, tetapi impor masih gagal, periksa error di konsol Google Cloud, lalu lihat Memecahkan masalah impor yang gagal.

Langkah selanjutnya