HMAC生成・検証

APIリクエスト、Webhook、署名付きURL、コールバックのペイロードに使うHMAC署名を端末内で生成・検証します。バイト列が完全に一致する必要があり、改行、JSONの空白、正規化したリクエスト形式も、署名を生成・確認するシステムと同じでなければなりません。

一般的なAPI管理画面から得た秘密鍵にはテキスト形式を使い、鍵が未加工のバイト列として提供された場合は16進数またはBase64を選びます。期待する署名を貼り付けると、秘密鍵をサーバーへ送らずに比較できます。

HMACは秘密鍵を使う認証方式です

HMACはメッセージと秘密鍵を組み合わせ、同じ鍵を持つ相手が完全性と真正性を確認できるようにします。メッセージ自体は暗号化しません。新しい連携ではHMAC-SHA256が実用的な既定値で、SHA-1は旧式サービスが明示的に要求する場合だけ選ぶのが一般的です。

バイト列とエンコード形式を合わせる

秘密鍵がUTF-8テキスト、16進数バイト列、Base64、Base64URLのどれかを確認し、必要な署名出力形式も合わせてください。検証ではデコード後の署名バイトを定数時間で比較しますが、一致に意味があるのは、期待値が信頼できる情報源から得られた場合だけです。

関連ツール: ハッシュ生成 · JWTデコード・検証