开发者社区> 玄学酱> 正文

仅有 0.09% 的 HTTPS 站点使用了 HPKP 证书钉

简介:
+关注继续查看

一份最近的调查报告显示,HTTPS 站点中仅有 0.09% 的站点(大约 4100 个)使用了HTTP 公钥钉HTTP Public Key Pinning(HPKP)来增强其域名的 SSL/TLS 证书。

HPKP 是一个 HTTP 安全扩展,最初发布于 2015 年 4 月(RFC 7469)。该标准定义了一种避免浏览器访问到伪造证书的 HTTPS 网站方法。在浏览器访问 HTTPS 网站时,网站可以锁定浏览器所应接受的该网站的公钥列表;只有浏览器接受的证书同之前通过 HPKP 头所申明的一致时才能访问该网站。

screenshot

为防止攻击者使用一个以你的域名签发的有效证书来伪造你的网站时,HPKP 很有用

这种机制可以用于防护攻击者运行一个假冒网站并使用有效证书来欺骗浏览器的攻击行为。

攻击者有几种方式可以得到有效的证书。他们可以通过对 CA 的社会工程攻击、对技术薄弱点的攻击、CA 的数据泄露、利用脆弱的证书签发策略等来得到。另外,如果攻击者本身得到了浏览器可信任的 CA 的授权,也是可以做到的。

HPKP 就是用来解决这种问题的。

HPKP 如何工作?

当网站管理人员为他的网站设置 HPKP 头时,第一次连接到该域名的用户将接收到一个包括了公钥指纹的列表,以后对该网站的访问必定使用这些公钥之一才能进行。

这些公钥存储在用户的浏览器里面,当用户再次访问该网站时,在建立 HTTPS 连接前,浏览器和服务器会确认它们都使用了正确公钥和服务器证书。如果不是,那么支持 HPKP 的浏览器会拒绝用户访问该网站。

screenshot

这对于防止攻击者通过假冒网站来欺骗用户是一件好事,但是如果合法的网站配置错误的话,这会让你的用户几个月都无法访问你的网站了。

错误配置的 HPKP 会让你的用户无法访问你的网站

做这个调查的 netcraft 公司估计是因为这个原因才导致在该标准发布一年之后,HPKP 的使用率仍然很低。

支持 HPKP 除了需要不断的维护工作,还需要维护人员如踩钢丝般的细心,才能避免整站的访问被完全关闭掉。

“即使是网站管理员们设置好了有效策略,还需要时时注意:日常的维护和紧急处置都有可能造成阻挡合法访客的事故,而且会持续阻挡很长时间。” netcraft 的 Paul Mutton 解释说。

这就是为什么只有 4100 个网站的管理员们决定使用 HPKP 头的原因。不幸的是, netcraft 说,实际上这个数字只有 3000 左右,因为大约有 1/4 的网站的 HPKP 头设置不正确。

实现 HPKP 并不太复杂,只是需要很细心

积极的一面是,当网站管理员熟悉了如何管理白名单中的证书及其客户端密钥,HPKP 可以为大多数带有敏感数据的网站提供了必要的安全措施。

一些著名的服务已经实施了 HPKP ,比如 GiHub、Mozilla 和 Pixabay 等。

尽管如此,像 Lenovo Superfish 和 Dell eDellRoot 这样的丑闻中,他们在其产品中包含了根证书,可以让攻击者绕开 HPKP。此外如果攻击者可以访问用户的浏览器,也能修改浏览器的可信任公钥列表来取消 HPKP 防护,或者禁止用户访问合法网站而去访问恶意伪造的网站。

====================================分割线================================
文章转载自 开源中国社区[http://www.oschina.net]

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
使用Docker生成SSL证书
本文讲的是使用Docker生成SSL证书【编者的话】学习如何使用Docker生成SSL证书,而不是在主机上生成。
2533 0
教你如何使用阿里云云服务器搭建https的网站
所需材料: 域名1个。 虚拟机或者云服务器1台。 ssl证书1个。 前提准备: 域名最好要备案,在国内使用比较方便。 推荐使用阿里云服务器。 ECS为Linux系统,安装的是宝塔控制面板 阿里云可以免费申请ssl证书。
1578 0
Centos+Apache实现多站点及强制https访问
本文介绍了如何通过Centos+Apache在一个服务器上搭建多个http站点,以及如何实现http访问时,强制跳转到https。
1899 0
gdy
Tomcat9使用免费的Https证书加密网站
1.概述 Apache Tomcat是一款优秀的Java Web容器,对于各个站长来说,可以很方便的使用Tomcat将自己的网站博客放在公网的服务器上,分享自己的心得以及个人博客。 那么在公网中的访问,没有被第三方公认可信的机构加密时,会默认使用Http协议,以明文将自己的网站在公网上传输。
2525 0
一起谈.NET技术,构建高性能ASP.NET站点之优化HTTP请求
  本篇就开始细化页面的请求过程并且提出优化的方案.同时,在上篇文章中,不少朋友也提出了一些问题,在本篇中也对这些问题给出了回答!   本篇的议题如下:   HTTP请求的优化   HTTP请求的优化   在一个网页的请求过程中,其实整个页面的html结构(就是页面的那些html骨架)请求的时间是很短的,一般是占整个页面的请求时间的10%-20%.
853 0
为阿里云站点部署免费 HTTPS
本文记录了部署在阿里云的站点,在申请了免费的 SSL 证书后如何正确的部署到站点上,让站点支持 HTTPS 访问。 阿里云引入了沃通作为 CA 证书供应商,并开放了免费 SSL 申请的页面,之前一直想给 咕咕监控 部署上全站 HTTPS,所以就申请了一个,但是部署的过程中遇到了些问题,所以记录下来备忘。
1188 0
+关注
玄学酱
这个时候,玄酱是不是应该说点什么...
20683
文章
438
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载