SSL/TLS をサポートするほとんどのメール クライアントでは、ユーザーは SSL を有効にするかどうかを指定するだけで済みます。ユーザーは、明示的 SSL と暗黙的 SSL およびそれらの違いについて何も知る必要はありません。
では、メール クライアントはどの種類の SSL を使用するかをどのように判断するのでしょうか? デフォルトのポート番号に基づいていますか? それはただ1つを試してからもう1つを試しますか?
メールクライアントは、メッセージで SSL ハンドシェイクを開始する責任があるため、接続時に暗黙の SSL が使用されているかどうかを認識している必要がありClientHello
ます。これをどのように判断するかは、クライアント次第です。ポート番号は重要なヒントですが、一部の UI には、標準の (保護されていない) ポート番号が使用されている場合でも強制的にチェック ボックスが表示される場合もあります。
安全なメール用に IANA に登録されたポート番号がありますが、一部の ISP は他のポートを使用する場合があります。
SMTP/SSL はポート 465 で提供されることがよくありますが、これは登録されておらず、明示的な SSL のサポートが SMTP エージェントによって広くサポートされているため、あまり一般的ではありません。
明示的な SSL のサポートは、プロトコル固有のネゴシエーションを使用してサーバーによってアドバタイズできます。たとえば、クライアントが SMTP サーバーに接続し、EHLO コマンドを発行すると、サーバーはその機能を一覧表示します。これには、STARTTLS コマンドのサポートが含まれる場合があります。
SMTP over SSL をサポートするほとんどのクライアントは、暗号化されていない接続で開始し、HELO ではなく EHLO を発行すると思います。前者には追加のフラグ応答があり、そのうちの 1 つはサーバーが STARTTLS コマンドをサポートしているかどうかを示します。その場合、クライアントは STARTTLS を使用でき、その時点から SSL を使用できます。
例:
% telnet quack.kfu.com 25
220 quack.kfu.com ESMTP ready NO UCE
EHLO client
250-quack.kfu.com Hello client [xx.xx.xx.xx] (may be forged), pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-8BITMIME
250-SIZE 25000000
250-ETRN
250-AUTH PLAIN LOGIN
250-STARTTLS
250-DELIVERBY
250 HELP
starttls
220 2.0.0 Ready to start TLS