聊聊HTTPS和SSL、TLS协议

1、HTTP协议
http://www.baidu.com/ 就是一个网络协议。大部分网站都是通过HTTP协议来传输Web页面、以及Web页面上的各种东西(图片、CSS样式、JS脚本)。




2、SSL/TLS
SSL是“Secure Sockets Layer”的缩写,中文叫“安全套接层”。它是由网景公司设计的(还发明了许多Web的基础样式----“CSS样式表”和“JS脚本”)

为啥要发明SSL这个协议?因为HTTP协议是明文的,存在许多缺点----比如传输内容会被窥探和篡改,SSL就是为了解决这个问题。

到了1999年,由于SSL使用广泛,已经成为互联网的事实标准,IETF就把SSL标准化。标准化后的名称改为TLS(“Transport Layer Security ”),传输层安全协议

很多文章都把这两者并列称呼(SSL/TLS),因为这两者可视为同一个东西的不同阶段。





3、HTTPS
“HTTP协议”与“SSL/TLS协议”的组合,即“HTTP over SSL” 或 “ HTTP over TLS”






4、HTTP协议的特点
  1. 目前版本:1.1


  1. HTTP与TCP之间的关系
简单的说,TCP协议是HTTP协议的基石——HTTP协议需要TCP协议来传输数据。
在网络分层模型中,TCP被称为“传输层协议”,HTTP被称为“应用层协议”
传输层主要有两个协议:TCP、UDP,TCP比UDP更靠谱,TCP能保证先发送的数据先到达,而UDP很难保证。


3.HTTP协议如何使用TCP连接?
HTTP对TCP连接的使用。分为两种方式:短连接和长连接
假设有个网页,里面包含好多图片,还包含好多(外部的)CSS文件和JS文件。
在短连接模式下,浏览器会先发起一个TCP连接,拿到该网页的HTML源代码(拿到HTML之后,这个TCP连接就关闭了)。然后浏览器开始分析这个网页的源码,直到这个网页包含很多外部资源(图片、CSS、JS)。 然后这对(每一个)外部资源,再分别发起一个个TCP连接,把这些文件获取到本地(同样的,每抓取一个外部资源后,相应的TCP就断开)。

相反,在长连接(Keep-alive)方式下,浏览器也会发起一个TCP连接去抓取页面。但是抓取页面之后,该TCP不会立即关闭,而是暂时先保持着。 然后浏览器分析源码后,发现很多外部资源,就用这个TCP去抓取此页面的外部资源。

在HTTP1.1中,默认采用的是“Keep-Alive”方式。







5、谈谈“对称加密”和“非对称加密”的概念
  1. 加密与解密
加密:就是把“明文”变成“密文”的过程
解密:就是把“密文”变成“明文”的过程
这两个过程都需要一个关键的东西——叫做“密钥”——来参与数学运算。

2.对称加密
“加密”与“解密”使用相同的密钥。就好比你用7zip或WinRAR创建一个带密码的加密压缩包。当你下次要把这个压缩文件解开的时候,你需要输入相同的密码。在这个例子中,密码就如同刚才说的“密钥”。

3.非对称加密
“加密”与“解密”使用不相同的密钥。

4.各自的优缺点
根据定义,“非对称加密”能干的事情比“对称加密”能干的事情多,但是“非对称加密”的实现,通常需要涉及到“复杂的数学问题”。所以“非对称加密”的性能通常要差很多。
这两者的优缺点,也影响到了SSL协议的设计。







6、HTTPS协议的需求是?
  1. 兼容性
a. HTTPS还是要基于TCP来传输
b.单独使用一个新的协议,把HTTP协议包裹起来
(打个比方:如果原来的 HTTP 是塑料水管,容易被戳破;那么如今新设计的 HTTPS 就像是在原有的塑料水管之外,再包一层金属水管。一来,原有的塑料水管照样运行;二来,用金属加固了之后,不容易被戳破。)

2.可扩展性
如今的SSL/TLS除了可以跟HTTP协议搭配,还可以跟很多其他常用的应用层协议(FTP、SMTP、POP、Telnet)搭配,来强化这些应用层协议的安全性。

3.保密性(仿泄密)
HTTPS需要做到足够好的保密性。

4.完整性(防篡改)

5.真实性(防假冒)

6.性能
引入HTTPS之后,不能导致性能变得太差,为了确保性能,SSL设计者至少要考虑如下几点:
1:如何选择加密算法(“对称” or “非对称”)?
2:如何兼顾HTTP采用的“短连接”的TCP方式?

猜你喜欢

转载自blog.csdn.net/weixin_39034984/article/details/80732386