• 締切済み

HMAC-MD5のしくみ

例えば、SMTP-AUTHのCRAM-MD5で認証する場合、メールサーバに生パスワードを保存しておかなければならないと思っていたのですが、生パスワードではなくHMAC-MD5で暗号化したパスワードをサーバで持っていれば認証できてしまいます。 どのような仕組みで認証しているのでしょうか? お分かりになる方、教えていただけませんでしょうか。よろしくお願いします。

みんなの回答

回答No.1

仰るとおり CRAM-MD5 はその仕様上サーバ側に生パスワードを保存しておかなくてはなりませんが、PLAIN/LOGIN の場合はサーバ側にはハッシュ化した値だけ保存しておき、クライアントから受け取った生パスワードをサーバ側で都度ハッシュ化して比較します。 つまり、CRAM-MD5 は『サーバ上に生パスワードを保存する代わりに通信経路上には生パスワードが流れない』方法で、LOGIN/PLAIN は『サーバ上に生パスワードを保存しなくて良い代わりに通信経路上に生パスワードが流れる』です。 LOGIN/PLAIN を使う場合は通常 over SSL や STARTTLS などの通信経路暗号化と併用すべきです。でないと盗聴されたら一発でアウトですから。

関連するQ&A