Cryptography-message-authentication
提供:Dev Guides
メッセージ認証
前の章では、データの整合性の脅威と、データに変更攻撃が行われたかどうかを検出するハッシュ手法の使用について説明しました。
データに存在する別のタイプの脅威は、*メッセージ認証*の欠如です。 この脅威では、ユーザーはメッセージの発信者について不明です。 メッセージ認証は、暗号化の場合に行われるように秘密鍵を使用する暗号化技術を使用して提供できます。
メッセージ認証コード(MAC)
MACアルゴリズムは、メッセージ認証を提供する対称キー暗号化技術です。 MACプロセスを確立するために、送信者と受信者は対称キーKを共有します。
基本的に、MACはメッセージ認証を保証するためにメッセージとともに送信される、基になるメッセージで生成される暗号化されたチェックサムです。
認証にMACを使用するプロセスは、次の図に示されています-
プロセス全体を詳細に理解してみましょう-
- 送信者は、既知のMACアルゴリズムを使用して、メッセージと秘密鍵Kを入力し、MAC値を生成します。
- ハッシュと同様に、MAC関数も任意の長い入力を固定長の出力に圧縮します。 ハッシュとMACの主な違いは、MACが圧縮中に秘密鍵を使用することです。
- 送信者はメッセージをMACとともに転送します。 ここでは、機密性ではなくメッセージ発信元認証の提供を懸念しているため、メッセージは平文で送信されると想定しています。 機密性が必要な場合、メッセージには暗号化が必要です。
- メッセージとMACを受信すると、受信者は受信したメッセージと共有秘密鍵KをMACアルゴリズムに送り、MAC値を再計算します。
- 受信者は、新しく計算されたMACと送信者から受信したMACの同等性を確認します。 それらが一致する場合、受信者はメッセージを受け入れ、メッセージが目的の送信者によって送信されたことを確認します。
- 計算されたMACが送信者によって送信されたMACと一致しない場合、受信者は、それが変更されたメッセージであるか、改ざんされた発信元であるかを判断できません。 ボトムラインとして、受信者はメッセージが本物ではないと安全に想定します。
MACの制限
MACには2つの主要な制限があり、どちらも動作の対称性のためです-
- 共有シークレットの確立
- 共有キーを持つ事前に決定された正当なユーザー間でメッセージ認証を提供できます。
- これには、MACを使用する前に共有秘密を確立する必要があります。
- 否認防止を提供できない
- 否認防止とは、メッセージの発信者が以前に送信されたメッセージとコミットメントまたはアクションを拒否できないことの保証です。
- MAC技術は否認防止サービスを提供しません。 送信者と受信者がメッセージの発信をめぐる紛争に巻き込まれた場合、MACは送信者によってメッセージが実際に送信されたという証拠を提供できません。
- 第三者はMACを計算できませんが、送信者はメッセージを送信したことを拒否し、受信者がメッセージを偽造したと主張できます。
これらの制限は両方とも、次のセクションで説明する公開鍵ベースのデジタル署名を使用することで克服できます。