ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

SSL/TLS

2021-06-09 19:33:10  阅读:290  来源: 互联网

标签:TLS 协议 加密 STARTTLS 端口 SSL


历史

1994年,NetScape公司设计了SSL协议(Secure Sockets Layer)的1.0版,但是未发布。

1996年,SSL 3.0版问世,得到大规模应用。

1999年,互联网标准化组织ISOC接替NetScape公司,发布了SSL的升级版TLS 1.0版(Transport Layer Security)。

2006年和2008年,TLS进行了两次升级,分别为TLS 1.1版和TLS 1.2版,2018年 TLS1.3版本。

SSL/TLS协议的基本思路是采用公钥加密法,也就是说,客户端先向服务器端索要公钥,然后用公钥加密信息,服务器收到密文后,用自己的私钥解密。

通信过程

SSL/TLS协议的基本过程是这样的:

(1) 客户端向服务器端索要并验证公钥。

(2) 双方协商生成"对话密钥"。

(3) 双方采用"对话密钥"进行加密通信。

上面过程的前两步,又称为"握手阶段"(handshake)。

SSL、TLS、STARTTLS对比

SSL vs TLS vs STARTTLS

对于不同的术语:SSL、TLS、STARTTLS和stl,常常会有相当大的混淆。

SSL和TLS
SSL和TLS都是加密协议,都提供了一种方法来加密Internet上两台计算机(例如客户端计算机和服务器)之间的通信通道。SSL代表安全套接字层,当前版本为3.0。TLS代表传输层安全,当前版本为1.2。TLS是SSL的继承者。术语SSL和TLS可以互换使用,除非您指的是特定的协议版本。
SSL和TLS之间的版本编号不一致。当TLS将SSL作为首选协议名时,它以一个新的版本号开始。协议从最早到最新的顺序是:SSLv2、SSLv3、TLSv1.0、TLSv1.1、TLSv1.2。

STARTTLS和STL
STARTTLS是一个协议命令,由电子邮件客户端发出。它表示客户端希望使用SSL/TLS加密协议将现有的不安全连接升级到安全连接。STARTTLS命令名由SMTP和IMAP协议使用,而POP3协议使用STLS作为命令名。
尽管名称中有TLS,但STARTTLS并不意味着将使用TLS。SSL和TLS都是可接受的通信安全协议。

明文/纯文本
没有使用任何安全协议。所有命令、响应和数据都以纯文本传输。
client.Connect("mail.example.com");

隐式SSL模式
隐式SSL模式意味着您连接到SSL/TLS加密端口。
client.ConnectSSL("mail.example.com");

显式SSL模式
显式SSL模式意味着您连接到明文端口,然后通过发出STARTTLS(或STLS)命令来保护连接(显式保护连接)。

client.Connect("mail.example.com"); client.StartTLS();

保护连接
无论您使用隐式(连接到SSL/TLS加密端口)还是显式(使用STARTTLS升级现有连接)模式,双方都将协商使用哪个协议和哪个版本。此协商基于客户机和服务器的配置方式以及双方支持的内容。

SSL/TLS支持
对SSL/TLS的支持几乎是通用的,但是支持哪些版本是可变的。几乎所有的东西都支持SSLv3。大多数机器支持TLSv1.0。

端口号

为了增加一些现有协议(IMAP、POP3、SMTP)的安全性,决定只在现有协议下添加SSL/TLS加密层。但是,为了区分软件应该使用SSL/TLS加密版本的协议,而不是纯文本版本,每个协议使用了不同的端口号:

协议     纯文本          SSL

IMAP   143               993

POP3   110               995

SMTP  587或25       465

端口太多? 解决方案:纯文本+ STARTTLS
有时,每个协议有2个端口是很浪费的,而最好有1个以纯文本开头的端口,但是客户端可以使用STARTTLS将连接升级为SSL / TLS加密的连接(或 POP3协议的STLS)命令。

STARTTLS问题

这有一些问题。有很多软件,它们使用具有纯SSL / TLS连接的备用端口号。客户端软件的使用寿命可能很长,因此您不能仅在所有软件都升级之前就禁用加密端口。

每个协议都采用了一些机制来告知客户端 服务器支持升级到SSL / TLS(例如,IMAP的CAPABILITY响应中的STARTTLS),并且他们不应该尝试在未进行STARTTLS升级的情况下尝试登录(IMAP的CAPABILITY响应中的LOGINDISABLED)。这造成了两种不幸的情况:

  • 某些软件只是忽略了“升级之前禁止登录”公告(LOGINDISABLED,STARTTLS),并尝试以任何方式登录,通过明文通道发送用户登录名和密码。服务器拒绝了登录名和密码,但是详细信息已经通过Internet以纯文本格式发送。
  • 其他软件看到了“直到升级之前禁用登录”的公告,但随后不会自动升级连接,因此将登录错误报告给用户,这引起了对错误的困惑。

这两个问题都导致与现有客户端的重大兼容性问题,因此大多数系统管理员继续在一个端口上使用纯文本连接,而在单独的端口号上使用加密的连接。

禁用IMAP和POP3的纯文本
许多公司(例如Gmail,Outlook.com)禁用了普通的IMAP(端口143)和普通的POP3(端口110),因此人们必须使用SSL / TLS加密连接-这完全不需要使用STARTTLS命令。

SMTP STARTTLS保持
上面一个真正的例外是SMTP。大多数电子邮件软件在端口25上使用SMTP将邮件提交到电子邮件服务器,以继续传输到目的地。但是SMTP最初是为传输而不是提交而设计的。因此,为消息提交定义了另一个端口(587)。

587端口没有强制要求使用STARTTLS,但是在意识到客户端和服务器之间的通信进行SSL / TLS加密是一个重要问题的同时,端口587的使用变得很流行。结果是,大多数通过端口587提供消息提交的系统都要求客户端使用STARTLS来升级连接。还需要登录名和密码进行身份验证。

这种方法也有一个额外的好处。通过使用户远离使用端口25进行电子邮件提交的方式,ISP可以阻止来自用户计算机的出站端口25连接,这是垃圾邮件的重要来源,因为用户计算机感染了垃圾邮件发送病毒。

参考

SSL vs TLS vs STARTTLS

SSL/TLS协议运行机制的概述

 

标签:TLS,协议,加密,STARTTLS,端口,SSL
来源: https://www.cnblogs.com/peterYong/p/14385903.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有