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