为什么我们应该尽快升级到 HTTPS?

发表于 5年以前  | 总阅读数:978 次

最近一年,我写了不少有关 HTTPS 和 HTTP/2 的文章。很多同学都问我,HTTPS 真的有那么好吗,我的 WEB 服务需要迁移到 HTTPS 吗?对此我的观点是:HTTPS 早就不是锦上添花的可有可无项,它已经逐渐成为 WEB 服务的标配,推荐大家尽早升级。

HTTPS 可以给用户带来更安全、更好隐私保护的网络体验,这些好处大家都耳熟能详,本文不再赘述。目前各大浏览器都在积极推进 HTTPS 的普及,我们重点来说说这个。

HTTP/2 通过引入二进制分帧层,将 HTTP 的请求和响应报文拆分为二进制帧,从而实现了多路复用、优先级、Server Push 等诸多新特性,大大提升了 WEB 性能。HTTP/2 还引入了基于静态字典和动态字典的头部压缩算法 ---- HPACK,有效减少了 HTTP 协议头部开销。现阶段,所有浏览器都只支持 HTTP/2 Over TLS,也就是说浏览器中的 HTTP/2 必须基于 HTTPS 部署

一些 HTML5 API 可以用来获取用户地理位置、摄像头音视频等隐私数据。尽管网站在使用这些权限前需要获得用户授权,但由于 HTTP 很容易被劫持,通过 HTTP 传输这些隐私数据将会十分危险。

于是,Chrome 启用了 Deprecating Powerful Features on Insecure Origins 计划,今后以下 API 必须在安全环境(Secure Contexts)中才能使用

  • Geolocation
  • Device motion / orientation
  • EME
  • getUserMedia
  • AppCache

其中,列表中的 Geolocaiton 和 getUserMedia 在 Chrome 50 中已经只能用于安全环境。也就是说在最新的 Chrome 中,要想通过 HTML5 API 获取用户位置,或者要用 WebRTC 实现视频聊天,都需要先部署 HTTPS。

EME 全称是 Encrypted Media Extensions(加密媒体扩展),它扩展了 HTMLMediaElement,提供了一组 API 用于控制受保护的文档,实现 HTML 媒体的数字版权保护能力。EME 是一个比较冷门的 API。

AppCache 功能已经被废弃,不推荐继续使用,类似需求建议用 Service Workers 来实现。更多说明请看 MDN 这篇文档。

至于什么是安全环境(Secure Contexts),W3C 这份文档进行了详细的解释。简而言之,HTTP 页面一定不是安全环境;HTTPS 页面不一定是安全环境。尤其需要注意的是,在 HTTP 页面中打开的 HTTPS 页面,如果 window.opener 不为空,不属于安全环境。

至于大家担心的本地调试问题,Chrome 也有考虑:

  • localhost 会被认为是安全的环境,所以可以继续使用 localhost 域名测试上述 API;
  • 通过 \--user-data-dir=/test/only/profile/dir 参数创建一个新的 Profile 后,可以通过 \--unsafely-treat-insecure-origin-as-secure="http://example.com 参数让 Chrome 信任指定的网站;

另外,Mozilla 公司在一年前也明确表态会逐步淘汰不安全的 HTTP,详见:Deprecating Non-Secure HTTP。

在往 HTTPS 迁移的过程中,大家普遍有一些担心,我挑选了一些有代表性的看法进行讨论。

HTTPS 会增加系统复杂性?首先,部署 HTTPS 确实会引入很多新工作,例如证书、SSL 配置、全站资源替换等等,确实会给开发和运维同学增加工作量。从 HTTP 切换到 HTTPS 的过程是比较麻烦,但一旦完成了切换,之后就不需要投入太多精力在这上面。通常,部署 HTTPS 只需要改造直接跟用户打交道的 HTTP 接入层,内部系统之间的调用无需改造。推荐阅读系列文章:启用 HTTPS 的经验分享。

HTTPS 证书会增加成本?首先,对于个人及小公司来说,有很多零费用的证书方案可供选择,其中以 Let's Encrypt 最为出名,足够简单好用。而对于中大型公司来说,相比其他开销,HTTPS 证书采购成本基本可以忽略不计。

HTTPS 会导致性能下降?HTTPS 增加了 TLS 握手环节,再加上 HTTPS 应用数据传输需要经过对称加密,HTTPS 确实给性能优化提出了更大的挑战。好在随着服务器、浏览器以及 SSL 库在性能上的大幅提升,经过良好优化后 HTTPS 带来的性能损耗完全可以接受。更重要的是,部署了 HTTPS 意味着可以使用 HTTP/2,从而带给用户更好的性能体验。如果对 TLS 优化细节有兴趣,推荐阅读 TLS 握手优化详解,还可以访问 Google 性能优化专家 Ilya Grigorik 创办的 Is TLS Fast Yet? 网站。

非敏感内容不需要 HTTPS?很多人觉得只有银行、电商等跟钱打交道的网站才需要部署 HTTPS,其实不然。首先,非 HTTPS 网站很容易被劫持并插入广告,影响用户体验;其次,即使你的网站上没有交易支付等敏感功能,但只要有用户登录,帐号密码被第三方盗取也可以用来社工或撞库;最后,一些流量很大的网站,如果不部署 HTTPS 很容易被别有用心的人利用,例如 2015 年某大型网站的 JS 就被人劫持用来 DDoS 攻击 Github。

最后纠正一个误区:并不是说部署了 HTTPS,安全方面就可以高枕无忧。HTTPS 解决的只是数据传输过程的安全性和保密性,如果 WEB 程序或者服务器有安全漏洞,或者用户电脑中病毒了,那安全性无从谈起。最后,要让 HTTPS 发挥最大作用,往往还需要结合其它技术一起使用,例如 HSTS、HPKP 等,本文不展开讨论了。

专题「Web 服务器」的其他文章 »

  • HTTPS 常见部署问题及解决方案 (Dec 12, 2016)
  • 开始使用 VeryNginx (Dec 10, 2016)
  • 开始使用 ECC 证书 (Aug 27, 2016)
  • 本博客 Nginx 配置之完整篇 (Mar 21, 2016)
  • 从无法开启 OCSP Stapling 说起 (Mar 13, 2016)
  • Certificate Transparency 那些事 (Feb 03, 2016)
  • Let's Encrypt,免费好用的 HTTPS 证书 (Dec 25, 2015)
  • 从 Nginx 默认不压缩 HTTP/1.0 说起 (Dec 15, 2015)
  • TLS 握手优化详解 (Nov 08, 2015)
  • 使用 BoringSSL 优化 HTTPS 加密算法选择 (Oct 15, 2015)
 相关推荐

刘强东夫妇:“移民美国”传言被驳斥

京东创始人刘强东和其妻子章泽天最近成为了互联网舆论关注的焦点。有关他们“移民美国”和在美国购买豪宅的传言在互联网上广泛传播。然而,京东官方通过微博发言人发布的消息澄清了这些传言,称这些言论纯属虚假信息和蓄意捏造。

发布于:8月以前  |  808次阅读  |  详细内容 »

博主曝三大运营商,将集体采购百万台华为Mate60系列

日前,据博主“@超能数码君老周”爆料,国内三大运营商中国移动、中国电信和中国联通预计将集体采购百万台规模的华为Mate60系列手机。

发布于:8月以前  |  770次阅读  |  详细内容 »

ASML CEO警告:出口管制不是可行做法,不要“逼迫中国大陆创新”

据报道,荷兰半导体设备公司ASML正看到美国对华遏制政策的负面影响。阿斯麦(ASML)CEO彼得·温宁克在一档电视节目中分享了他对中国大陆问题以及该公司面临的出口管制和保护主义的看法。彼得曾在多个场合表达了他对出口管制以及中荷经济关系的担忧。

发布于:8月以前  |  756次阅读  |  详细内容 »

抖音中长视频App青桃更名抖音精选,字节再发力对抗B站

今年早些时候,抖音悄然上线了一款名为“青桃”的 App,Slogan 为“看见你的热爱”,根据应用介绍可知,“青桃”是一个属于年轻人的兴趣知识视频平台,由抖音官方出品的中长视频关联版本,整体风格有些类似B站。

发布于:8月以前  |  648次阅读  |  详细内容 »

威马CDO:中国每百户家庭仅17户有车

日前,威马汽车首席数据官梅松林转发了一份“世界各国地区拥车率排行榜”,同时,他发文表示:中国汽车普及率低于非洲国家尼日利亚,每百户家庭仅17户有车。意大利世界排名第一,每十户中九户有车。

发布于:8月以前  |  589次阅读  |  详细内容 »

研究发现维生素 C 等抗氧化剂会刺激癌症生长和转移

近日,一项新的研究发现,维生素 C 和 E 等抗氧化剂会激活一种机制,刺激癌症肿瘤中新血管的生长,帮助它们生长和扩散。

发布于:8月以前  |  449次阅读  |  详细内容 »

苹果据称正引入3D打印技术,用以生产智能手表的钢质底盘

据媒体援引消息人士报道,苹果公司正在测试使用3D打印技术来生产其智能手表的钢质底盘。消息传出后,3D系统一度大涨超10%,不过截至周三收盘,该股涨幅回落至2%以内。

发布于:8月以前  |  446次阅读  |  详细内容 »

千万级抖音网红秀才账号被封禁

9月2日,坐拥千万粉丝的网红主播“秀才”账号被封禁,在社交媒体平台上引发热议。平台相关负责人表示,“秀才”账号违反平台相关规定,已封禁。据知情人士透露,秀才近期被举报存在违法行为,这可能是他被封禁的部分原因。据悉,“秀才”年龄39岁,是安徽省亳州市蒙城县人,抖音网红,粉丝数量超1200万。他曾被称为“中老年...

发布于:8月以前  |  445次阅读  |  详细内容 »

亚马逊股东起诉公司和贝索斯,称其在购买卫星发射服务时忽视了 SpaceX

9月3日消息,亚马逊的一些股东,包括持有该公司股票的一家养老基金,日前对亚马逊、其创始人贝索斯和其董事会提起诉讼,指控他们在为 Project Kuiper 卫星星座项目购买发射服务时“违反了信义义务”。

发布于:8月以前  |  444次阅读  |  详细内容 »

苹果上线AppsbyApple网站,以推广自家应用程序

据消息,为推广自家应用,苹果现推出了一个名为“Apps by Apple”的网站,展示了苹果为旗下产品(如 iPhone、iPad、Apple Watch、Mac 和 Apple TV)开发的各种应用程序。

发布于:8月以前  |  442次阅读  |  详细内容 »

特斯拉美国降价引发投资者不满:“这是短期麻醉剂”

特斯拉本周在美国大幅下调Model S和X售价,引发了该公司一些最坚定支持者的不满。知名特斯拉多头、未来基金(Future Fund)管理合伙人加里·布莱克发帖称,降价是一种“短期麻醉剂”,会让潜在客户等待进一步降价。

发布于:8月以前  |  441次阅读  |  详细内容 »

光刻机巨头阿斯麦:拿到许可,继续对华出口

据外媒9月2日报道,荷兰半导体设备制造商阿斯麦称,尽管荷兰政府颁布的半导体设备出口管制新规9月正式生效,但该公司已获得在2023年底以前向中国运送受限制芯片制造机器的许可。

发布于:8月以前  |  437次阅读  |  详细内容 »

马斯克与库克首次隔空合作:为苹果提供卫星服务

近日,根据美国证券交易委员会的文件显示,苹果卫星服务提供商 Globalstar 近期向马斯克旗下的 SpaceX 支付 6400 万美元(约 4.65 亿元人民币)。用于在 2023-2025 年期间,发射卫星,进一步扩展苹果 iPhone 系列的 SOS 卫星服务。

发布于:8月以前  |  430次阅读  |  详细内容 »

𝕏(推特)调整隐私政策,可拿用户发布的信息训练 AI 模型

据报道,马斯克旗下社交平台𝕏(推特)日前调整了隐私政策,允许 𝕏 使用用户发布的信息来训练其人工智能(AI)模型。新的隐私政策将于 9 月 29 日生效。新政策规定,𝕏可能会使用所收集到的平台信息和公开可用的信息,来帮助训练 𝕏 的机器学习或人工智能模型。

发布于:8月以前  |  428次阅读  |  详细内容 »

荣耀CEO谈华为手机回归:替老同事们高兴,对行业也是好事

9月2日,荣耀CEO赵明在采访中谈及华为手机回归时表示,替老同事们高兴,觉得手机行业,由于华为的回归,让竞争充满了更多的可能性和更多的魅力,对行业来说也是件好事。

发布于:8月以前  |  423次阅读  |  详细内容 »

AI操控无人机能力超越人类冠军

《自然》30日发表的一篇论文报道了一个名为Swift的人工智能(AI)系统,该系统驾驶无人机的能力可在真实世界中一对一冠军赛里战胜人类对手。

发布于:8月以前  |  423次阅读  |  详细内容 »

AI生成的蘑菇科普书存在可致命错误

近日,非营利组织纽约真菌学会(NYMS)发出警告,表示亚马逊为代表的电商平台上,充斥着各种AI生成的蘑菇觅食科普书籍,其中存在诸多错误。

发布于:8月以前  |  420次阅读  |  详细内容 »

社交媒体平台𝕏计划收集用户生物识别数据与工作教育经历

社交媒体平台𝕏(原推特)新隐私政策提到:“在您同意的情况下,我们可能出于安全、安保和身份识别目的收集和使用您的生物识别信息。”

发布于:8月以前  |  411次阅读  |  详细内容 »

国产扫地机器人热销欧洲,国产割草机器人抢占欧洲草坪

2023年德国柏林消费电子展上,各大企业都带来了最新的理念和产品,而高端化、本土化的中国产品正在不断吸引欧洲等国际市场的目光。

发布于:8月以前  |  406次阅读  |  详细内容 »

罗永浩吐槽iPhone15和14不会有区别,除了序列号变了

罗永浩日前在直播中吐槽苹果即将推出的 iPhone 新品,具体内容为:“以我对我‘子公司’的了解,我认为 iPhone 15 跟 iPhone 14 不会有什么区别的,除了序(列)号变了,这个‘不要脸’的东西,这个‘臭厨子’。

发布于:8月以前  |  398次阅读  |  详细内容 »
 相关文章
为Electron程序添加运行时日志 4年以前  |  19600次阅读
Node.js下通过配置host访问URL 5年以前  |  5632次阅读
用 esbuild 让你的构建压缩性能翻倍 4年以前  |  5367次阅读
 目录