本文へスキップ

HMAC-SHA256とは?

えいちまっくしゃーにーごーろく

HMAC-SHA256とは、共通鍵と組み合わせデータの改ざん検知と送信元認証を行う、広く使われるメッセージ認証コードアルゴリズムです。

HMAC-SHA256とは、HMAC(Hash-based Message Authentication Code)という仕組みの中でSHA-256ハッシュ関数組み合わせて使う、メッセージ認証コード(MAC)の生成アルゴリズムです。送信するデータが改ざんされていないこと、および正しい送信元から来たことを検証するために広く使われています。

仕組みとしては、送信者と受信者があらかじめ共通の秘密鍵を保有しておき、送信データとその秘密鍵をSHA-256ハッシュ関数を特定の方法(ipad・opadと呼ばれるパディング)で2回適用して固定長の認証コードを生成します。受信者は同じ鍵と受け取ったデータで同様にHMACを計算し、送られてきた値と一致すれば「データが完全で送信元が正しい」と判断できます。

主な利用場面は以下の通りです。

  • Web API認証(AWSの署名方式など)での通信の正当性検証
  • JWTトークンの署名生成と検証
  • HTTPSや各種暗号化プロトコルにおける鍵導出・整合性確認
  • Webhookの署名検証(GitHubなど)

SHA-256ハッシュは256ビット(32バイト)の出力を持ち、現時点では解読が事実上不可能とされる強力なアルゴリズムです。単純なハッシュと異なり秘密鍵が必要なため、鍵を知らない第三者が同じ認証コードを偽造することはできません。セキュリティが求められるシステム間の通信では事実上の標準として採用されています。

使い方・例文

WebhookでGitHubからのリクエストが本物かどうかをサーバー側で確認するとき、HMAC-SHA256を使った署名検証が行われます。

この用語をシェア

𝕏 でポスト LINE

最終更新:

関連用語