Firefox守望者报告[2]HTTPS简介steemCreated with Sketch.

in #cn7 years ago

在我警示游民星空疑似存在登录密码明文显示的 Bug 的帖子里, @redtea 评论

真正的安全问题在于登录时是否有https……

远离钓鱼网站,注意自己Steemit账户的安全中, @etzel 推荐HTTPS-Everywhere(以下简称 Ew)扩展。

最近几年,我给 Ew 项目贡献了几百条 Pull Requests。虽然基本都是维护规则的体力活,但还是学到了很多东西。
在这过程中,我发现很多网友,包括一些站长,对 HTTPS (不限于 Ew 项目)的使用有不同程度的误解。这次正好趁着 steemit.com 遭到 DDoS 的风波还没有完全散去,开一个小专题,简单说一说 Ew 项目的目标与现状,以及一些客户端使用 HTTPS 的个人建议,欢迎交流指正。

背景知识

本专题的内容可能需要一丢丢的 HTTPS 基础知识,可以先行浏览相关维基百科:

超文本传输安全协议

HTTP严格传输安全

进阶用户和站长推荐阅读:

JerryQu 的小站

用 nginx 建置一個 A+ 等級的 https 網頁伺服器

简言之 HTTPS 比 HTTP 协议更加安全,目前也已经不存在性能问题,所以只要服务器支持,客户端就应该尽可能地使用 HTTPS。
这不仅仅是为了用户自己,也是对 网络服务提供者 的支持:

Google指出,共有8个百度网域遭到劫持,被注入不同大小的Javascript代码。Google认为,全面启用HTTPS加密将能防御这类攻击。

分级分类

各网站服务端对 HTTPS 的支持程度是不一样的。为方便行文,特将情形简化,大致分级分类如下:

  1. 服务端已部署 HSTS 且已加入 PreloadList
  2. 服务端已部署 HSTS 但未加入 PreloadList
  3. 服务端将 HTTP 请求重定向到 HTTPS
  4. 服务端同时支持 HTTP 与 HTTPS,用户怎么请求就怎么响应
  5. Mixed Content
    • 部分静态资源支持但不使用 HTTPS
    • 部分静态资源不支持 HTTPS
  6. Mixed Content Blocking(MCB)
    • 部分动态资源支持但不使用 HTTPS
    • 部分动态资源不支持 HTTPS
  7. 服务端支持 HTTPS 但配置有问题
  8. 服务端不支持 HTTPS

示例:
1:Steemit.com server sent invalid HSTS policy
4:github.io
5 & 6:apprcn.com
7:Steemreports.com has Incomplete cert chain issue

以上示例已尽可能选取不会变动的带有说明的页面,但随着时间推移,页面变化,仍然可能变得难以理解,各位领会精神即可。

简单说明如下:
以上分类不是简单线性互斥关系,除了 1 和 8,任意多的情形可以共存。
1 是目前最安全的状态,全程加密。
2 和 3 的状态下,因服务端强制选择加密模式,一般用户基本感觉不出与 1 的区别,但依然存在被攻击或劫持的可能。
4 很好理解,就不多说了。
5 和 6 需要稍作解释。
目前的主流浏览器政策对 HTTPS 网页内嵌 HTTP 资源的默认态度较为一致:静态资源(图片等)放行,动态资源(CSS/JS 等)则阻止,前者称为混合内容(Mixed Content),后者因被默认屏蔽,称为 Mixed Content Blocking(MCB)。该屏蔽由浏览器直接执行,原则上不是扩展能干预的。

下一篇正式介绍 HTTPS-Everywhere.
干预混合内容的方法预计于本系列第 [5] 篇中介绍,敬请期待。

前文阅读:
Firefox守望者报告[0]源起
Firefox守望者报告[1]为什么说火狐到了最危险的时候

Sort:  

长知识啦!!

Coin Marketplace

STEEM 0.17
TRX 0.13
JST 0.027
BTC 59209.84
ETH 2659.93
USDT 1.00
SBD 2.43