Topik ini memberikan informasi tentang membuat dan memvalidasi tanda tangan digital berdasarkan kunci MAC.
Kunci tunggal yang digunakan bersama oleh produser dan pemverifikasi digunakan untuk menghitung tag MAC dari data input. Tag MAC berfungsi sebagai tanda tangan digital. Saat pemverifikasi menerima pesan dan tag MAC terkait, mereka membuat tag sendiri dari konten pesan. Pemverifikasi kemudian dapat membandingkan tag yang diterima dengan tag yang dihasilkan untuk melihat apakah tag tersebut cocok. Jika kedua tag cocok, pemverifikasi tahu bahwa pesan yang diterima sama dengan pesan yang ditandatangani oleh produser.
Sebelum memulai
Saat membuat tanda tangan digital MAC, Anda harus menggunakan kunci yang memiliki tujuan utama
MAC
. Saat Anda membuat kunci, gunakanMAC
.Pastikan file yang ingin Anda tanda tangani tidak melebihi batas ukuran file. Saat menggunakan kunci Cloud HSM untuk membuat atau memverifikasi tanda tangan MAC, ukuran file maksimum adalah 16 KiB. Untuk semua kunci lainnya, ukuran file maksimum adalah 64 KiB.
Peran yang diperlukan
Untuk mendapatkan izin yang diperlukan guna membuat dan memverifikasi tanda tangan, minta administrator untuk memberi Anda peran IAM berikut pada kunci:
-
Untuk membuat tanda tangan: Penanda CryptoKey Cloud KMS (
roles/cloudkms.signer
) -
Untuk memverifikasi tanda tangan:
Pemverifikasi CryptoKey Cloud KMS (
roles/cloudkms.verifier
) -
Untuk membuat dan memverifikasi tanda tangan:
Penanda/Pemverifikasi CryptoKey Cloud KMS (
roles/cloudkms.signerVerifier
)
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses.
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, Instal atau upgrade Google Cloud CLI ke versi terbaru terlebih dahulu.
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 key ring.INPUT_FILE_PATH
: Jalur lokal ke file yang ingin Anda tanda tangani.SIGNED_FILE_PATH
: Jalur lokal tempat Anda ingin menyimpan tanda tangan yang dihasilkan.
Untuk mengetahui informasi tentang semua tanda dan nilai yang memungkinkan, jalankan perintah dengan
tanda --help
.
C#
Untuk menjalankan kode ini, siapkan lingkungan pengembangan C# terlebih dahulu lalu instal Cloud KMS C# SDK.
Go
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Go terlebih dahulu lalu instal Cloud KMS Go SDK.
Java
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Java terlebih dahulu dan instal Java SDK Cloud KMS.
Node.js
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Node.js terlebih dahulu, lalu instal Node.js SDK Cloud KMS.
Python
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Python terlebih dahulu lalu instal Cloud KMS Python SDK.
Ruby
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Ruby terlebih dahulu dan instal Ruby SDK Cloud KMS.
API
Contoh ini menggunakan curl sebagai klien HTTP untuk menunjukkan penggunaan API. Untuk informasi selengkapnya tentang kontrol akses, lihat Mengakses Cloud KMS API.
Gunakan metode
CryptoKeyVersions.macSign
untuk melakukan penandatanganan. Respons dari metode ini berisi
tanda tangan berenkode base64.
Memverifikasi tanda tangan MAC
gcloud
Untuk menggunakan Cloud KMS di command line, Instal atau upgrade Google Cloud CLI ke versi terbaru terlebih dahulu.
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 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 tanda dan nilai yang memungkinkan, jalankan perintah dengan
tanda --help
.
C#
Untuk menjalankan kode ini, siapkan lingkungan pengembangan C# terlebih dahulu lalu instal Cloud KMS C# SDK.
Go
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Go terlebih dahulu lalu instal Cloud KMS Go SDK.
Java
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Java terlebih dahulu dan instal Java SDK Cloud KMS.
Node.js
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Node.js terlebih dahulu, lalu instal Node.js SDK Cloud KMS.
Python
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Python terlebih dahulu lalu instal Cloud KMS Python SDK.
Ruby
Untuk menjalankan kode ini, siapkan lingkungan pengembangan Ruby terlebih dahulu dan instal Ruby SDK Cloud KMS.
API
Contoh ini menggunakan curl sebagai klien HTTP untuk menunjukkan penggunaan API. Untuk informasi selengkapnya tentang kontrol akses, lihat Mengakses Cloud KMS API.
Gunakan metode
CryptoKeyVersions.macVerify
untuk menjalankan verifikasi. Tanda tangan yang akan diverifikasi harus
berenkode base64. Respons dari metode ini berisi boolean yang menunjukkan apakah tanda tangan berhasil diverifikasi atau tidak.