聊聊HTTPS和SSL/TLS协议

  • 时间:
  • 浏览:1
  • 来源:大发5分6合APP下载_大发5分6合APP官网

关于这方面,请看俺4年前写的《数字证书及CA的扫盲介绍》。这里就不再重复唠叨了,免得篇幅太长。

兼容性

HTTPS 协议的需求是啥?

前面说了,HTTPS 共就是“HTTP over SSL”。

将会 SSL 五种协议在“可扩展性”方面的设计足够牛逼,上能不能 它除了能跟 HTTP 搭配,还不能跟其它的应用层协议搭配。岂不美哉?

现在看来,当初设计 SSL 的人实在 比较牛。如今的 SSL/TLS 都需要跟就是常用的应用层协议(比如:FTP、SMTP、POP、Telnet)搭配,来强化那先 应用层协议的安全性。

详细性(防篡改)

除了“保密性”,还有另八个 同样重要的目标是“确保详细性”。关于“详细性”五种概念,在另另八个 的博文《扫盲文件详细性校验——关于散列值和数字签名》中大致提过。健忘的同学再去温习一下。

在发明者 HTTPS 另另八个 ,将会 HTTP 是明文的,不但容易被嗅探,还容易被篡改。

举个例子:

比如咱们天朝的网络运营商(ISP)都比较流氓,时不时 有女女网友 抱怨说访问某网站(另另八个 是上能不能 广告的),竟然会再次冒出就是中国电信的广告。为什会另另八个 捏?将会你的网络流量需要经过 ISP 的线路不能到达公网。将会你使用的是明文的 HTTP,ISP 很容易就都需要在你访问的页面中植入广告。

就是,当初设计 HTTPS 的另另八个 ,还有另八个 需求是“确保 HTTP 协议的内容不被篡改”。

再来说最后另八个 需求——性能。

引入 HTTPS 另另八个 ,【上能 】导致 性能变得太差。有些 搞笑的话,谁还愿意用?

为了确保性能,SSL 的设计者共要要考虑如下几点:

为那先

所谓的“对称加密技术”,意思就是说:“加密”和“解密”使用【相同的】密钥。五种比较好理解。就好比你用 7zip 或 WinRAR 创建另八个 带密码(口令)的加密压缩包。当你下偏离 把五种压缩文件解开的另另八个 ,你需要输入【同样的】密码。在五种例子中,密码/口令就如同刚才说的“密钥”。

作为背景知识介绍,还需要再稍微谈一下 HTTP 协议五种的特点。HTTP 五种有就是特点,考虑到篇幅有限,俺只谈那先 和 HTTPS 相关的特点。

如今咱们用的 HTTP 协议,版本号是 1.1(也就是 HTTP 1.1)。五种 1.1 版本是1995年底现在开始了了起草的(技术文档是 RFC2068),并在1999年正式发布(技术文档是 RFC2616)。

在 1.1 另另八个 ,还有另另八个 再次冒出过另八个 版本“0.9 和 1.0”,其中的 HTTP 0.9 【上能不能 】被广泛使用,而 HTTP 1.0 被广泛使用过。

另外,据说明年(2015)IETF 就要发布 HTTP 2.0 的标准了。俺拭目以待。

保密性(防泄密)

打个比方:将会另另八个 的 HTTP 是塑料水管,容易被戳破;上能不能 如今新设计的 HTTPS 就像是在原有的塑料水管之外,再包一层金属水管。一来,原有的塑料水管照样运行;二来,用金属加固了另另八个 ,不容易被戳破。

要设计成另另八个 ?——这就是 WHY 型的现象。

谈谈“对称加密”和“非对称加密”的概念

要说清楚 HTTPS 协议的实现原理,共要需要如下几条背景知识。

简单地说,TCP 协议是 HTTP 协议的基石——HTTP 协议需要依靠 TCP 协议来传输数据。

接着刚才打的比方:将会把 SSL/TLS 视作两根绳子 用来加固的金属管,它不仅都需要用来加固输水的管道,还都需要用来加固输煤气的管道。

HTTPS 需要做到足够好的保密性。

说到保密性,首真难不能对抗嗅探(行话叫 Sniffer)。所谓的“嗅探”,通俗而言就是监视你的网络传输流量。将会你使用明文的 HTTP 上网,上能不能 监视者通过嗅探,就知道你在访问那先 网站的那先 页面。

嗅探是最低级的攻击手法。除了嗅探,HTTPS 还需不能对抗其它有些稍微高级的攻击手法——比如“重放攻击”(上端讲协议原理的另另八个 ,会再聊)。

通俗而言,愿意把“加密”和“解密”理解为五种【互逆的】数学运算。就好比“加法和减法”互为逆运算、“乘法和除法”互为逆运算。

“加密”的过程,就是把“明文”变成“密文”的过程;反之,“解密”的过程,就是把“密文”变为“明文”。在这另八个 过程中,都需要另八个 关键的东东——叫做“密钥”——来参与数学运算。

解释完 HTTP 和 SSL/TLS,现在就都需要来解释 HTTPS 啦。咱们通常所说的 HTTPS 协议,说白了就是“HTTP 协议”和“SSL/TLS 协议”的组合。愿意把 HTTPS 大致理解为——“HTTP over SSL”或“HTTP over TLS”(反正 SSL 和 TLS 差不多)。

再来搞笑的话 HTTP 协议的特点

在谈到 HTTPS 的需求时,“真实性”时不时 被忽略。实在 “真实性”的重要程度不亚于前面的“保密性”和“详细性”。

举个例子:

你将会使用网银,需要访问该网银的 Web 站点。上能不能 ,你怎么上能确保你访问的网站实在 遇见你想访问的网站?(这话怪怪的绕口令)

有些天真的同学会说:通过看网址上端的域名,来确保。为什说另另八个 的同学得“天真的”?将会 DNS 系统五种是不可靠的(尤其是在设计 SSL 的那个年代,连 DNSSEC 都还没发明者)。将会 DNS 的不可靠(趋于稳定“域名欺骗”和“域名劫持”),你看到的网址上端的域名【暂且】是真实滴!

(不了解“域名欺骗”和“域名劫持”的同学,都需要参见俺另另八个 写的《扫盲 DNS 原理,兼谈“域名劫持”和“域名欺骗/域名污染”》)

就是,HTTPS 协议需要有五种机制来确保“真实性”的需求(至于怎么上能确保,上端会细聊)。

在 HTTP 1.0 版本,【默认】使用的是“短连接”(那另另八个 是 Web 诞生初期,网页相对简单,“短连接”的现象不大);

到了1995年底现在开始了了制定 HTTP 1.1 草案的另另八个 ,网页将会现在开始了了变得复杂性(网页内的图片、脚本不多了)。这另另八个 再用短连接的土法律依据 ,数率太低下了(将会建立 TCP 连接是有“时间成本”和“CPU 成本”滴)。就是,在 HTTP 1.1 中,【默认】采用的是“Keep-Alive”的土法律依据 。

关于“Keep-Alive”的更多介绍,都需要参见维基百科词条(在“这里”)

在网络分层模型中,TCP 被称为“传输层协议”,而 HTTP 被称为“应用层协议”。

有就是常见的应用层协议是以 TCP 为基础的,比如“FTP、SMTP、POP、IMAP”等。

TCP 被称为“面向连接”的传输层协议。关于它的具体细节,俺就不展开了(有些 篇幅又失控了)。你只需知道:传输层主要有另八个 协议,分别是 TCP 和 UDP。TCP 比 UDP 更可靠。愿意把 TCP 协议想象成某个水管,发送端这头进水,接收端那头就出水。有些 TCP 协议不能确保,先发送的数据先到达(与之相反,UDP 不保证这点)。

考虑到就是技术菜鸟将会不了解上述背景,俺先用最简短的文字描述一下。将会你自认为不会菜鸟,请略过本章节,直接去看“HTTPS 协议的需求”。



作者: yeiqing000 

链接:http://www.imooc.com/article/14245

来源:慕课网

可扩展性

真实性(防假冒)

花了好多口水,终于把背景知识说完了。下面正式进入正题。先来搞笑的话当初设计 HTTPS 是为了满足那先 需求?

就是介绍 HTTPS 的文章一上来愿意你讲实现细节。被委托人实在 :这是不好的做法。早在5009年开博的另另八个 ,发过一篇《学习技术的三部曲:WHAT、HOW、WHY》,其中谈到“WHY 型现象”的重要性。一上来愿意你讲协议细节,你充其量上能不能 知道 WHAT 和 HOW,无法理解 WHY。俺在前另八个 章节讲了“背景知识”,在五种章节讲了“需求”,这不会能够你理解:当初

先澄清几条术语——HTTPS、SSL、TLS

首先,HTTP 是另八个 网络协议,是专门用来帮你传输 Web 内容滴。关于五种协议,就算你不了解,共要也听说过吧?比如你访问俺的博客的主页,浏览器地址栏会再次冒出如下的网址

SSL 是洋文“Secure Sockets Layer”的缩写,中文叫做“安全套接层”。它是在上世纪90年代中期,由网景公司设计的。(顺便插一句,网景公司不光发明者了 SSL,还发明者了就是 Web 的基础设施——比如“CSS 样式表”和“JS 脚本”)

为什要发明者 SSL 五种协议捏?将会另另八个 互联网上使用的 HTTP 协议是明文的,趋于稳定就是缺点——比如传输内容会被偷窥(嗅探)和篡改。发明者 SSL 协议,就是为了补救那先 现象。

到了1999年,SSL 将会应用广泛,将会成为互联网上的事实标准。IETF 就在那年把 SSL 标准化。标准化另另八个 的名称改为 TLS(是“Transport Layer Security”的缩写),中文叫做“传输层安全协议”。

就是相关的文章都把这两者并列称呼(SSL/TLS),将会这两者都需要视作同另八个 东西的不同阶段。

将会是先有 HTTP 再有 HTTPS。就是,HTTPS 的设计者肯定要考虑到对原有 HTTP 的兼容性。

这里所说的兼容性包括就是方面。比如已有的 Web 应用要尽将会无缝地迁移到 HTTPS;比如对浏览器厂商而言,改动要尽将会小;……

基于“兼容性”方面的考虑,很容易得出如下几条结论:

俺加了粗体的偏离 就是指 HTTP 协议。大偏离 网站不会通过 HTTP 协议来传输 Web 页面、以及 Web 页面上带有的各种东东(图片、CSS 样式、JS 脚本)。

CA 证书的原理及用途

所谓的“非对称加密技术”,意思就是说:“加密”和“解密”使用【不同的】密钥。这玩意儿比较难理解,也比较难想到。当年“非对称加密”的发明者,还被誉为“密码学”历史上的一次革命。

将会篇幅有限,对“非对称加密”五种话题,俺就不展开了。有空搞笑的话,再单独写一篇扫盲。

看到刚才的定义,很显然:(从功能淬硬层 而言)“非对称加密”能干的事情比“对称加密”要多。这是“非对称加密”的优点。有些 “非对称加密”的实现,通常需要涉及到“复杂性数学现象”。就是,“非对称加密”的性能通常要差就是(相对于“对称加密”而言)。

这两者的优缺点,也影响到了 SSL 协议的设计。

性能

HTTP 对 TCP 连接的使用,分为五种土法律依据 :俗称“短连接”和“长连接”(“长连接”又称“持久连接”,洋文叫做“Keep-Alive”或“Persistent Connection”)

假设有另八个 网页,上端带有好多图片,还带有好多【內部的】CSS 文件和 JS 文件。在“短连接”的模式下,浏览器会先发起另八个 TCP 连接,拿到该网页的 HTML 源代码(拿到 HTML 另另八个 ,五种 TCP 连接就关闭了)。有些 ,浏览器现在开始了了分析五种网页的源码,知道五种页面带有就是內部资源(图片、CSS、JS)。有些 针对【每另八个 】內部资源,再分别发起另八个 个 TCP 连接,把那先 文件获取到本地(同样的,每抓取另八个 內部资源后,相应的 TCP 就断开)

相反,将会是“长连接”的土法律依据 ,浏览器也会先发起另八个 TCP 连接去抓取页面。有些 抓取页面另另八个 ,该 TCP 连接暂且会立即关闭,就是暂时先保持着(所谓的“Keep-Alive”)。有些 浏览器分析 HTML 源码另另八个 ,发现有就是內部资源,就用刚才那个 TCP 连接去抓取此页面的內部资源。