メッセージ認証符号(MAC・HMAC・CMAC)

更新日:

用語解説

メッセージ認証符号(MAC・HMAC・CMAC)(MAC)は、送信者と受信者が共有する秘密鍵とメッセージから認証用の値(タグ)を作り、改ざんがないことと送信者が本物であることを確認する仕組みです。

■ 試験で押さえるポイント

  • HMACはハッシュ関数を、CMACはAESなどのブロック暗号を使ってMACを作ります。

  • MACは暗号化ではないため、メッセージの内容は隠せません。

  • 共有の鍵を持つ双方がタグを作れるため、第三者に対する否認の防止はできません。

■ 過去問での着眼点

改ざんの検知と送信元の確認はできますが、機密性と否認防止は提供しません。送り直し(リプレイ)には通し番号などで対策します。

例: 送金の電文に通し番号を含めてHMACを付ければ、改ざんと、同じ電文の送り直しを見つけられます。

■ 暗号化・署名・リプレイとの境界

  • 鍵を使わないハッシュだけでは、攻撃者が改変したデータのハッシュも再計算できる。HMACは共有秘密鍵を使うため、鍵を知らない第三者による改変を検出する根拠になる。

  • MACは内容を隠さない。共有鍵を持つ送受信者はどちらもMACを生成できるため、公開鍵で検証する電子署名と同じ第三者への署名者証明にはならない。

  • 正しいMAC付きの古い要求を再送するリプレイには、nonce、シーケンス番号、有効期限と使用済み値の確認等が別途必要である。MACの対象には操作・宛先・重要な値も含め、表現の違いによる解釈ずれを避ける。

音声で聞く

同じ分野の用語