Halaman ini menunjukkan cara membuat dan memvalidasi tanda tangan digital berdasarkan kunci MAC.
Satu kunci, yang dibagikan oleh produsen dan verifikator, digunakan untuk menghitung tag MAC dari data input. Tag MAC berfungsi sebagai tanda tangan digital. Saat verifikator menerima pesan dan tag MAC terkait, mereka akan membuat tag sendiri dari konten pesan. Verifikator kemudian dapat membandingkan tag yang diterima dengan tag yang dibuat untuk melihat apakah keduanya cocok. Jika kedua tag cocok, verifikator mengetahui bahwa pesan yang mereka terima sama dengan pesan yang ditandatangani oleh produsen.
Sebelum memulai
Saat membuat tanda tangan digital MAC, Anda harus menggunakan kunci yang memiliki tujuan kunci dari
MAC. Saat Anda membuat kunci, gunakanMAC.Pastikan file yang ingin Anda tandatangani berada dalam batas ukuran file.Saat Anda menggunakan kunci Cloud HSM, ukuran file maksimum yang dapat Anda gunakan untuk membuat tanda tangan MAC adalah 16 KiB. Untuk semua kunci lainnya, ukuran file maksimum adalah 64 KiB.
Peran yang diperlukan
Untuk mendapatkan izin yang diperlukan untuk membuat dan memverifikasi tanda tangan, minta administrator untuk memberi Anda peran IAM berikut pada kunci:
-
Untuk membuat tanda tangan:
Cloud KMS CryptoKey Signer (
roles/cloudkms.signer) -
Untuk memverifikasi tanda tangan:
Cloud KMS CryptoKey Verifier (
roles/cloudkms.verifier) -
Untuk membuat dan memverifikasi tanda tangan:
Cloud KMS CryptoKey Signer/Verifier (
roles/cloudkms.signerVerifier)
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Membuat tanda tangan MAC
gcloud
Untuk menggunakan Cloud KMS di command line, pertama-tama Instal atau upgrade ke versi terbaru Google Cloud CLI.
gcloud kms mac-sign \
--version KEY_VERSION \
--key KEY_NAME \
--keyring KEY_RING \
--location LOCATION \
--input-file INPUT_FILE_PATH \
--signature-file SIGNED_FILE_PATH
Ganti kode berikut:
KEY_VERSION: nomor versi kunci.KEY_NAME: nama kunci.KEY_RING: nama key ring yang berisi kunci.LOCATION: lokasi Cloud KMS dari key ring.INPUT_FILE_PATH: Jalur lokal ke file yang ingin Anda tandatangani.SIGNED_FILE_PATH: Jalur lokal tempat Anda ingin menyimpan tanda tangan yang dihasilkan.
Untuk mengetahui informasi tentang semua flag dan nilai yang mungkin, jalankan perintah dengan flag --help.
C#
Untuk menjalankan kode ini, pertama-tama siapkan lingkungan pengembangan C# dan instal Cloud KMS C# SDK.
Go
Untuk menjalankan kode ini, pertama-tama siapkan lingkungan pengembangan Go dan instal Cloud KMS Go SDK.
Java
Untuk menjalankan kode ini, pertama-tama siapkan lingkungan pengembangan Java dan instal Cloud KMS Java SDK.
Node.js
Untuk menjalankan kode ini, pertama-tama siapkan lingkungan pengembangan Node.js dan instal Cloud KMS Node.js SDK.
Python
Untuk menjalankan kode ini, pertama-tama siapkan lingkungan pengembangan Python dan instal Cloud KMS Python SDK.
Ruby
Untuk menjalankan kode ini, pertama-tama siapkan lingkungan pengembangan Ruby dan instal Cloud KMS Ruby SDK.
API
Contoh ini menggunakan curl sebagai klien HTTP untuk menunjukkan cara menggunakan API. Untuk mengetahui informasi selengkapnya tentang kontrol akses, lihat Mengakses Cloud KMS API.
Gunakan
CryptoKeyVersions.macSign
metode untuk melakukan penandatanganan. Respons dari metode ini berisi tanda tangan berenkode base64.
Memverifikasi tanda tangan MAC
gcloud
Untuk menggunakan Cloud KMS di command line, pertama-tama Instal atau upgrade ke versi terbaru Google Cloud CLI.
gcloud kms mac-verify \
--version KEY_VERSION \
--key KEY_NAME \
--keyring KEY_RING \
--location LOCATION \
--input-file INPUT_FILE_PATH \
--signature-file SIGNED_FILE_PATH
KEY_VERSION: nomor versi kunci.KEY_NAME: nama kunci.KEY_RING: nama key ring yang berisi kunci.LOCATION: lokasi Cloud KMS dari key ring.INPUT_FILE_PATH: Jalur lokal ke file yang ditandatangani.SIGNED_FILE_PATH: Jalur lokal ke file tanda tangan yang akan diverifikasi.
Untuk mengetahui informasi tentang semua flag dan nilai yang mungkin, jalankan perintah dengan flag --help.
C#
Untuk menjalankan kode ini, pertama-tama siapkan lingkungan pengembangan C# dan instal Cloud KMS C# SDK.
Go
Untuk menjalankan kode ini, pertama-tama siapkan lingkungan pengembangan Go dan instal Cloud KMS Go SDK.
Java
Untuk menjalankan kode ini, pertama-tama siapkan lingkungan pengembangan Java dan instal Cloud KMS Java SDK.
Node.js
Untuk menjalankan kode ini, pertama-tama siapkan lingkungan pengembangan Node.js dan instal Cloud KMS Node.js SDK.
Python
Untuk menjalankan kode ini, pertama-tama siapkan lingkungan pengembangan Python dan instal Cloud KMS Python SDK.
Ruby
Untuk menjalankan kode ini, pertama-tama siapkan lingkungan pengembangan Ruby dan instal Cloud KMS Ruby SDK.
API
Contoh ini menggunakan curl sebagai klien HTTP untuk menunjukkan cara menggunakan API. Untuk mengetahui informasi selengkapnya tentang kontrol akses, lihat Mengakses Cloud KMS API.
Gunakan metode
CryptoKeyVersions.macVerify
untuk melakukan verifikasi. Tanda tangan yang akan diverifikasi harus dienkode base64. Respons dari metode ini berisi nilai boolean yang menunjukkan apakah tanda tangan berhasil diverifikasi atau tidak.