ここで、次のような状況について考えてみます。
これは、中間者攻撃と呼ばれています。
これに対する解決策は、ソフトウェアでハッシュも暗号化して送信することです。ただし、ハッシュの暗号化には独自のプライベート キーを使用します。パブリック キーは公開しているため、受信者のソフトウェアでハッシュを解読して使用できます。パブリック キーと一致するプライベート キーを知っているのは送信元のソフトウェアだけであるため、受信者はその送信元からのメッセージであると確信できます。
プライベート キーで暗号化されたハッシュをデジタル署名と呼びます。
したがって、この方法で署名されたメッセージを送信すると、受信者に送信元が認識されます。これが、上記で SSL の利点として 3 つ目に挙げた認証です。
実際、デジタル署名があれば、受信者は送信元を特定できます。送信元が否定しようとしても、それはできません。これが、上記の 4 つ目の利点である否認防止です。世界には、デジタル署名に従来の手書きの署名と同等の法的な効力が認められている地域もあります。
ただし、デジタル署名は添付されたメッセージのハッシュを暗号化したものであり、手書きの署名とは違って毎回異なることに注意してください。
これと似た概念にメッセージ認証コード (MAC) があります。これは、対称アルゴリズムのシークレット キーで暗号化されたハッシュです。一部のシステムでは、デジタル署名の代わりに MAC を使用して、整合性、認証、および否認防止を提供しています。