HMAC

  • MAC(メッセージ認証符号)の一つ。
    • MAC ... 共通鍵を使ってメッセージを認証する短いコード。メッセージ改ざん防止の為に利用する。
  • HMACはハッシュ関数で秘密鍵とメッセージをハッシュ化する。
    • 今回はHTTPリクエストが正規サーバーから送信されていることを証明するために利用した。
  • MD5 や SHA-1 などの反復暗号ハッシュ関数を使う。
    • それぞれHMAC-MD5, HMAC-SHA1などと呼ばれる。
  • MAC及びHMACで署名したメッセージは、送信者が作成し送信したという保証ができるわけではない。受信者側も同じ鍵を持っているので、受信者側でも署名を行うことができるため。

Goだとこんな感じで書ける。

func MakeHMAC(msg, key string) string {
    mac := hmac.New(sha256.New, []byte(key))
    mac.Write([]byte(msg))
    return hex.EncodeToString(mac.Sum(nil))
}

https://cipepser.hatenablog.com/entry/2017/05/27/100516

今回はHTTPリクエストヘッダーで署名を送ったため、HMACで署名したダイジェスト値をBase64でエンコードまでした。

results matching ""

    No results matching ""