このトピックでは、MAC 鍵に基づくデジタル署名の作成と検証について説明します。
プロデューサーと確認ツールの両方で共有される 1 つの鍵が、入力データに対する MAC タグ(署名)の計算に使用されます。確認ツールは、メッセージと関連する MAC タグを受け取ると、コンテンツ用の独自のタグを生成し、タグを比較して一致するかどうかを確認します。
始める前に
MAC デジタル署名を作成するときは、
MAC
を鍵の目的とする鍵を使用する必要があります。鍵の作成には、MAC
を使用します。署名を行うユーザーまたはサービスに、MAC 鍵に対する
cloudkms.cryptoKeyVersions.useToSign
権限を付与します。Cloud Key Management Service の権限については、権限とロールをご覧ください。署名を検証する場合は、検証を行うユーザーまたはサービスに MAC 鍵に対する
cloudkms.cryptoKeyVersions.useToVerify
権限を付与します。
MAC 署名の作成
gcloud
コマンドラインで Cloud KMS を使用するには、まず Google Cloud CLI の最新バージョンをインストールまたはアップグレードします。
gcloud kms mac-sign \ --version key-version \ --key key \ --keyring key-ring \ --location location \ --input-file input-file \ --signature-file signature-file
key-version は、署名に使用する鍵のバージョンに置き換えます。key は、鍵名で置き換えます。key-ring は、鍵が配置されている鍵リングの名前に置き換えます。location を鍵リングの Cloud KMS の場所に置き換えます。input-file と signature-file は、署名するファイルのローカルパスと署名ファイルに置き換えます。
すべてのフラグと有効な値については、--help
フラグを指定してコマンドを実行してください。
C#
このコードを実行するには、まず C# 開発環境を設定し、Cloud KMS C# SDK をインストールします。
Go
このコードを実行するには、まず Go 開発環境を設定し、Cloud KMS Go SDK をインストールします。
Java
このコードを実行するには、まず Java 開発環境を設定し、Cloud KMS Java SDK をインストールします。
Node.js
このコードを実行するには、まず Node.js 開発環境を設定し、Cloud KMS Node.js SDK をインストールします。
Python
このコードを実行するには、まず Python 開発環境を設定し、Cloud KMS Python SDK をインストールします。
Ruby
このコードを実行するには、まず Ruby 開発環境を設定し、Cloud KMS Ruby SDK をインストールします。
API
これらの例では、HTTP クライアントとして curl を使用して API の使用例を示しています。アクセス制御の詳細については、Cloud KMS API へのアクセスをご覧ください。
CryptoKeyVersions.macSign
メソッドを使用して署名を行います。このメソッドからのレスポンスに、base64 エンコードの署名が含まれています。
MAC 署名を検証する
gcloud
コマンドラインで Cloud KMS を使用するには、まず Google Cloud CLI の最新バージョンをインストールまたはアップグレードします。
gcloud kms mac-verify \ --version key-version \ --key key \ --keyring key-ring \ --location location \ --input-file input-file \ --signature-file signature-file
key-version は、検証に使用する鍵のバージョンに置き換えます。key は、鍵名で置き換えます。key-ring は、鍵が配置されている鍵リングの名前に置き換えます。location を鍵リングの Cloud KMS の場所に置き換えます。input-file と signature-file は、入力データのローカルパスと検証する署名ファイルに置き換えます。
すべてのフラグと有効な値については、--help
フラグを指定してコマンドを実行してください。
C#
このコードを実行するには、まず C# 開発環境を設定し、Cloud KMS C# SDK をインストールします。
Go
このコードを実行するには、まず Go 開発環境を設定し、Cloud KMS Go SDK をインストールします。
Java
このコードを実行するには、まず Java 開発環境を設定し、Cloud KMS Java SDK をインストールします。
Node.js
このコードを実行するには、まず Node.js 開発環境を設定し、Cloud KMS Node.js SDK をインストールします。
Python
このコードを実行するには、まず Python 開発環境を設定し、Cloud KMS Python SDK をインストールします。
Ruby
このコードを実行するには、まず Ruby 開発環境を設定し、Cloud KMS Ruby SDK をインストールします。
API
これらの例では、HTTP クライアントとして curl を使用して API の使用例を示しています。アクセス制御の詳細については、Cloud KMS API へのアクセスをご覧ください。
CryptoKeyVersions.macVerify
メソッドを使用して検証を行います。検証対象の署名は base64 でエンコードされている必要があります。このメソッドからのレスポンスに、署名が正常に検証されたかどうかを示すブール値が含まれています。