認証方式はサーバーの実装依存で、様々なものが使われる。
- PLAIN
- 「認可識別子<NULL>認証識別子<NULL>パスワード」というスタイルで、認証情報を平文で送信するもの。
- 考えられる中で最も実装しやすいが、最もセキュリティレベルが低い。
- LOGIN
- ユーザーIDやパスワードを順次送りメールサーバーにログインするスタイルの認証。これもパスワード等は平文で送信される。
- 標準が存在しないらしく、セキュリティレベルだけでなく互換性にも問題がある。
- CRAM-MD5
- チャレンジ&レスポンス型認証を用いるもの。メッセージダイジェストの作成にはMD5を使う。
- クライアントがMTAに接続すると文字列チャレンジが送られるので、この文字列とパスワードをMD5アルゴリズムでメッセージダイジェストを作りMTAへ送り返す。MTAは同様の手順でメッセージダイジェストを作り、一致していればログインを許可する。
- 生のパスワードがネットワークを流れないため、PLAINやLOGINより安全性が高い。
- 「まともな認証方式」(PLAINやLOGINはまともでは無い)の中では、最も普及している。Becky!2ほか、日本国内で流通しているMUAが対応するまともな認証は、このCRAM-MD5だけのようである。
- DIGEST-MD5
- CRAM-MD5は、辞書攻撃やブルートフォースアタック(総当たり攻撃)に弱いという欠点があるので、その対処をしたもの。
- その他
- Kerberos、GSSAPI、S/Keyなどが用いられる実装もある。