Menandatangani dan memverifikasi data

Tanda tangan digital digunakan untuk memastikan integritas dan keaslian data. Dokumen ini menjelaskan cara menggunakan gdcloud CLI untuk menandatangani data dan memverifikasi tanda tangan menggunakan kunci asimetris yang dikelola oleh Key Management System (KMS).

Halaman ini ditujukan untuk audiens dalam grup operator aplikasi, seperti tim DevOps, saat melakukan operasi pengelolaan kunci dalam lingkungan air-gapped Google Distributed Cloud (GDC). Untuk mengetahui informasi selengkapnya, lihat Audiens untuk dokumentasi GDC yang terisolasi dari internet.

Sebelum memulai

Untuk menandatangani dan memverifikasi data menggunakan kunci, minta izin yang diperlukan, siapkan lingkungan Anda, dan buat kunci penandatanganan jika Anda belum memilikinya.

Meminta peran IAM

Hubungi Admin IAM Organisasi Anda untuk memberi Anda peran berikut di namespace project Anda:

  • KMS Developer (kms-developer): melihat kunci dan melakukan operasi kriptografi seperti mengenkripsi, mendekripsi, menandatangani, dan memverifikasi data dalam project.

Menyiapkan lingkungan Anda

  1. Instal dan inisialisasi gdcloud CLI, jika Anda belum melakukannya.

  2. Lakukan autentikasi ke GDC menggunakan gdcloud CLI. Proses ini memerlukan sertifikat Certificate Authority (CA) untuk konsol organisasi Anda:

    1. Download sertifikat CA:

      echo -n | openssl s_client -showcerts -connect CONSOLE_URL:443 | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > CA_CERT_PATH
      

      Ganti kode berikut:

      • CONSOLE_URL: URL konsol organisasi Anda (seperti console.org-1.zone1.google.gdch.test)
      • CA_CERT_PATH: jalur lengkap tempat Anda ingin menyimpan file sertifikat CA (seperti /tmp/my-org-ca.crt)
    2. Login menggunakan sertifikat CA yang didownload:

      gdcloud auth login --login-config-cert=CA_CERT_PATH
      

Pastikan kunci penandatanganan ada

Untuk menandatangani dan memverifikasi data, Anda harus menggunakan kunci penandatanganan. Pembuatan dan verifikasi kunci memerlukan izin IAM terpisah, seperti yang dijelaskan di halaman yang ditautkan.

Data tanda tangan

Untuk menandatangani data, gunakan perintah gdcloud kms keys asymmetric-sign. Perintah ini membuat tanda tangan digital dari file input menggunakan kunci penandatanganan, dan menyimpan tanda tangan yang dienkode base64:

  gdcloud kms keys asymmetric-sign \
  namespaces/NAMESPACE/signingKeys/KEY_NAME \
  --input-file=INPUT_PATH \
  --signature-file=SIGNATURE_FILE

Ganti kode berikut:

  • NAMESPACE: namespace project—misalnya: kms-test1
  • KEY_NAME: nama kunci yang digunakan untuk menandatangani—misalnya: key-1
  • INPUT_PATH: jalur file input yang ingin Anda tandatangani
  • SIGNATURE_FILE: jalur file output untuk menyimpan tanda tangan berenkode base64

Setelah menjalankan perintah, Anda akan melihat file output yang ditentukan di flag --signature-file yang berisi tanda tangan berenkode base64.

Verifikasi data

Setelah menandatangani data, verifikasi tanda tangan digital base64 menggunakan perintah gdcloud kms keys asymmetric-verify. Perintah ini memverifikasi apakah tanda tangan digital berenkode base64 yang Anda terima setelah menjalankan perintah gdcloud kms keys asymmetric-sign valid atau tidak:

gdcloud kms keys asymmetric-verify \
namespaces/NAMESPACE/signingKeys/KEY_NAME \
  --input-file=INPUT_PATH \
  --signature-file=SIGNATURE_FILE

Ganti kode berikut:

  • NAMESPACE: namespace project—misalnya: kms-test1
  • KEY_NAME: nama kunci yang digunakan untuk menandatangani �misalnya: key-1
  • INPUT_PATH: jalur file input asli yang ditandatangani
  • SIGNATURE_FILE: jalur file yang berisi tanda tangan berenkode base64 yang akan diverifikasi

Setelah menjalankan perintah, Anda akan melihat output Verification OK jika berhasil. Jika tidak berhasil, Anda akan melihat output kegagalan Verification Failure.