java 发表于 2017-12-7 16:20:25

SSL TLS STARTTLS

本帖最后由 java 于 2017-12-7 16:22 编辑

#连接smtp服务器,明文/SSL/TLS三种方式,根据你使用的SMTP支持情况选择一种
#普通明文方式,通信过程不加密

#tls加密方式,通信过程加密,邮件数据安全,使用正常的smtp端口

#纯粹的ssl加密方式,通信过程加密,邮件数据安全

smtp port 25,pop3 port 110,imap port 143然而,这三个标准的端口在默认的状态都是属于明文的联机的(无安全性),但是,以目前最新的应用来说,出现了一组相当重要的指令,能够将这三个标准的端口升级到SSL(TLS)的安全性,这个指令就是STARTTLS(在POP3版本当中,叫STLS),基本上运作方式就是当邮件客户端联机到邮件服务器之后,观察服务器的性能列表(capability),然后送出STARTLS指令,等待服务器响应允许或拒绝之后,就开始进行SSL或TLS的交涉,Outlook 2010还支持一组相当实用的TLSv1.1扩充命令叫做TLS SNI(Server Name Indication),也就是说在交涉的过程当中,会告知邮件服务器目前想要联机的服务器之域名,让服务器能够送出正确的ssl凭证,当然了邮件客户端本身也会去验证这个ssl凭证是否属于有效的凭证,如果有误,会跳出凭证错误的警告。当ssl/tls联机建立之后,不论用的是第一种或是第二种验证方式,都能更加确保帐户密码的安全性。

除了以上的STARTTLS方式之外,尚存在着另一种ssl的联机方式,这种方式是直接以ssl联机到某个端口,通常smtp是465,pop3是995,imap是993,这种方式也就是俗称的ssl connect或是implicit ssl。这种方式在现今的网络上,算是比较属于被淘汰的方式,但仍然许多厂商都还是支持这样的方式来确保兼容性,不过在可能的状况下,笔者较为推荐STARTTLS,毕竟这样只需要一个端口就够了。
http://bbs.csdn.net/topics/370165806

java 发表于 2017-12-7 16:22:21

1、STARTTLS是对纯文本通信协议的扩展。它将纯文本连接升级为加密连接(TLS或SSL), 而不是使用一个单独的加密通信端口。
2、RFC 2595定义了IMAP和POP3的STARTTLS,RFC 3207定义了SMTP的STARTTLS,RFC 4642定义了NNTP的STARTTLS。
3、TLS 是独立于应用层的协议。高层协议可以透明地分布在 TLS 协议上面。然而,TLS 标准并没有规定应用程序如何在 TLS 上增加安全性;它把如何启动 TLS 握手协议以及如何解释交换的认证证书的决定权留给协议的设计者和实施者来判断。

页: [1]
查看完整版本: SSL TLS STARTTLS