読者です 読者をやめる 読者になる 読者になる

dackdive's blog

新米webエンジニアによる技術ブログ。JavaScript(React), Salesforce, Python など

follow us in feedly

HMACについて調べてみた

セキュリティ

過去の記事Basic認証とDigest認証、MD5って何?って話をまとめたんですが
その延長でHMACという認証方式(?)について学ぶ機会があったのでメモ。

HMACとは

Hash-Based Message Authentication Codeの略で、
メッセージ認証符号(MAC; Message Authentication Code)の1つ。
メッセージ認証符号はメッセージ認証コードとも呼ばれている。

メッセージを送受信する際に相手が成りすましでないかとか、途中で改竄されていないかどうかを調べることができる。

そのために、送受信者の間で「秘密鍵」と呼ばれる第三者が知らないデータを使用する。

使うもの

  1. 秘密鍵(または共通鍵とも呼ばれていたり)
  2. メッセージ(データ)
  3. ハッシュ関数

メッセージ本体と秘密鍵を一定の規則に従って組み合わせハッシュ関数に与え、ハッシュ値を計算する。
生成したハッシュ値MACと呼ぶ。

なぜ、HMACか?(Digest認証との違い)

きちんと理解してないんですが、
MD5だと任意のハッシュ値から別のハッシュ値を算出することができるらしい。
このあたりリファレンス読んで勉強したい。

リファレンス

HMAC - Wikipedia

生兵法は怪我の元 (ハッシュ関数と HMAC) - まちゅダイアリー(2006-05-07)

Kazuho@Cybozu Labs: Hash ≠ MAC