HTTPS 到底加密了什么?

2018/07/03 · 基础技术 ·
HTTPS

原文出处:
云叔_又拍云   

关于 HTTP 和 HTTPS
这个老生常谈的话题,我们之前已经写过很多文章了,比如这篇《从HTTP到HTTPS再到HSTS》,详细讲解了
HTTP 和 HTTPS 的进化之路,对的没错,就是 HTTP 兽进化 HTTPS 兽。

bet36365注册送奖金 1

那么今天我们主要聊一聊 HTTPS 到底加密了些什么内容。

先跟大家讲个故事,我初恋是在初中时谈的,我的后桌。那个时候没有手机这类的沟通工具,上课交流有三宝,脚踢屁股、笔戳后背以及传纸条,当然我只能是那个屁股和后背。

说实话传纸条真的很危险,尤其是这种早恋的纸条,被抓到就是一首《凉凉》。

于是我和我的小女朋友就商量一下加密这个小纸条上面的数据,这样就算被班主任抓到她也奈何不了我们!

我们用将英文字母和数字一一对应,组成一个密码本,然后在小纸条上写上数字,要将他翻译成对应的字母,在拼成拼音才能知道这串数字意思。

上面就是最初我坎坷的感情史。

后来等我长大了,才知道这是回不去的美好。如果给我一个机会,我愿意……啊呸,跑偏了,等长大了才知道,这个就是现在网站数据传输中的
HTTPS。

对 HTTPS 协议的通信内容进行 CDN 加速

对 HTTPS 协议的通信内容进行 CDN 加速主要两个方案。

方案一,服务器(源站)提供证书给 CDN 厂商,包括证书公钥和证书私钥,CDN
负责内容缓存,CDN 有缓存则直接响应,以 HTTP 或 HTTPS
的形式回源。这个方案,适用仅对防劫持、防篡改有需求,而愿意提供证书给 CDN
的源站加速。

方案二,服务器(源站)不提供证书给 CDN 厂商,因此 CDN
需要存放证书公钥,服务器(源站)存放证书私钥。在 CDN 与浏览器进行 TLS
的认证和密钥协商过程中,通过安全的信道把协商过程中的信息以 HTTP 或 HTTPS
的形式转发给源网站。这个方案,CDN
不做缓存,仅以自有的加速网络,将用户的请求快速送到服务器(源站),降低公网延迟。因此,这个方案适用于对安全要求更高,不愿将证书私钥共享给
CDN 的源站加速。

HTTPS=数据加密+网站认证+完整性验证+HTTP

通过上文,我们已经知道,HTTPS 就是在 HTTP
传输协议的基础上对网站进行认证,给予它独一无二的身份证明,再对网站数据进行加密,并对传输的数据进行完整性验证。

HTTPS 作为一种加密手段不仅加密了数据,还给了网站一张身份证。

如果让我回到十年前,那么我一定会这样跟我的女朋友传纸条:

先准备一张独一无二的纸条,并在上面签上我的大名,然后用只有我女朋友可以解密的方式进行数据加密,最后写完后,用胶水封起来,防止隔壁桌的小王偷看修改小纸条内容。

 

1 赞 收藏
评论

bet36365注册送奖金 2

HTTPS 降级攻击的解决之道

目前,解决 HTTPS 降级攻击的唯一方法是禁用 SSL 3.0 协议,并防止 TLS 1.2
协议、 TLS 1.1 协议与 TLS 1.0 协议降级到 SSL 3.0 协议。其中,禁用 SSL
3.0 协议的策略有很多,这里主要介绍下 Nginx 如何防止 TLS 1.2 协议、 TLS
1.1 协议与 TLS 1.0 协议降级到 SSL 3.0 协议以下版本,从而防止 HTTPS
降级攻击。

Nginx 原先的配置,如下所示。此时,如果 Nginx
原先的配置没有额外的配置,那么在 Nginx 中隐性默认是 SSLv3 TLSv1 TLSv1.1
TLSv1.2。

ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;

Nginx 禁用 SSL 3.0 协议,并防止 TLS 1.2 协议、 TLS 1.1 协议与 TLS 1.0
协议降级到 SSL 3.0 协议的配置非常简单,只需要屏蔽 SSLv3
参数即可,如下所示。

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

总结下,HTTPS 能确保通信内容的安全传输吗?答案是不一定,因为设计与实现
SSL/TLS 协议出现了漏洞,导致攻击者同样可以攻击一些旧版本的 SSL/TLS
协议,其中就包括 SSL 3.0,可能会被攻击者进行 HTTPS 的降级攻击。因此,SSL
3.0 协议并不安全,为了防止 HTTPS 的降级攻击,需要禁用 SSL 3.0
协议,确保TLS 1.2 协议、 TLS 1.1 协议与 TLS 1.0 协议降级到 SSL 3.0
协议以下版本。

(完)

更多精彩文章,尽在「服务端思维」微信公众号!

多了 SSL 层的 HTTP 协议

简而言之,HTTPS 就是在 HTTP 下加入了 SSL
层,从而保护了交换数据隐私和完整性,提供对网站服务器身份认证的功能,简单来说它就是安全版的
HTTP。

现在随着技术的发展,TLS 得到了广泛的应用,关于 SSL 与 TLS
的差别,我们不用在意,只要知道 TLS 是 SSL 的升级版本就好。
bet36365注册送奖金 3
一般来说,HTTPS
主要用途有三个:一是通过证书等信息确认网站的真实性;二是建立加密的信息通道;三是数据内容的完整性。
bet36365注册送奖金 4

上文为又拍云官网,我们可以通过点击浏览器地址栏锁标志来查看网站认证之后的真实信息,SSL证书保证了网站的唯一性与真实性。

那么加密的信息通道又加密了哪些信息呢?

签发证书的 CA
中心会发布一种权威性的电子文档——数字证书,它可以通过加密技术(对称加密与非对称加密)对我们在网上传输的信息进行加密,比如我在
Pornhub 上输入:

账号:cbssfaw

密码:123djaosid

可是这个数据被黑客拦截盗窃了,那么加密后,黑客得到的数据可能就是这样的:

账号:çµø…≤¥ƒ∂ø†®∂˙∆¬

密码:∆ø¥§®†ƒ©®†©˚¬

bet36365注册送奖金 5

最后一个就是验证数据的完整性,当数据包经过无数次路由器转发后会发生数据劫持,黑客将数据劫持后进行篡改,比如植入羞羞的小广告。开启HTTPS后黑客就无法对数据进行篡改,就算真的被篡改了,我们也可以检测出问题。

设计一套良好的 API 接口。

原文地址:服务端指南 | HTTPS
项目实战指南

博客地址:http://blog.720ui.com/

对称加密与非对称加密

对称加密

对称加密是指加密与解密的使用同一个密钥的加密算法。小编初中的时候传纸条使用了同一套加密密码,所以我用的加密算法就是对称加密算法。

目前常见的加密算法有:DES、AES、IDEA 等

非对称加密

非对称加密使用的是两个密钥,公钥与私钥,我们会使用公钥对网站账号密码等数据进行加密,再用私钥对数据进行解密。这个公钥会发给查看网站的所有人,而私钥是只有网站服务器自己拥有的。

目前常见非对称加密算法:RSA,DSA,DH等。

HTTPS 使用剖析与项目场景

HTTP 协议没有加密机制,可以通过 SSL 或 TLS 加密 HTTP
的通信内容。因此,HTTPS 是 HTTP 的安全版,在 HTTP 协议中加入 SSL
层,它由两部分组成:HTTP 与 SSL。其中,SSL 是独立于 HTTP
的协议,它不仅可以适用于 HTTP 协议,还可以配合 WebSocket
等协议一起使用。

什么是 HTTPS 降级攻击

因为浏览器的兼容性问题,当浏览器进行 HTTPS
连接失败的时候,将会尝试使用旧的协议版本,于是加密协议由更加安全的协议,比如
TLS 1.2 降级成 SSL 3.0。因此,在 HTTPS 降级攻击中,攻击者利用旧版本的
SSL/TLS 协议的漏洞,其中包括 SSL 3.0
的漏洞,然后攻击者获取安全连接当中某些可以降级成 SSL 3.0
的加密后的明文的通信内容进行攻击。

注意的是,如果服务器支持 SSL 3.0
协议,同时,攻击者又能作为中间人控制浏览器发起漏洞版本的 HTTPS
请求,此时,虽然攻击者窃听到加密的通信内容,但加密的协议存在漏洞,可以进行降级攻击,解密这些加密的通信内容可以获取有价值的信息,例如用户的隐私数据。

HTTPS 项目场景

真实的业务场景是比较复杂的。这里,整理 3
个项目中遇到的比较复杂的应用场景。

SSL 与 TLS

HTTP 协议可以通过 SSL 或 TLS 加密 HTTP 的通信内容。其中,SSL
最初由网景通信公司率先倡导与开发,最新版本是 SSL 3.0。目前,由 IETF
主导与管理。IETF 以 SSL 3.0 为基准,在 SSL 3.0 协议规范之上又制定了 TLS
1.0、 TLS 1.1 和 TLS 1.2。

本文将重点介绍关于 HTTPS 的几个实战指南。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图