写了一阵子文章的,感觉学习、工作、生活,三大巨头吊打了我全部的时间。不禁思考,写博客的目的是为了知识的传播还是自身的愉悦?从VPN整治、网络安全法、到昨天的《互联网新闻信息服务管理规定》,深思。

黑客精神——自由,分享,海纳百川
网络安全——控制、限制、监控

劳动节看了一篇文章,关于http 2.0 特性的研究,想起曾经看到许多优秀的文章,描 https 和 http 的关系,于是乎翻出来,总结一段。

来自翟志军的理解HTTPS更容易

推荐是因为写的简单易懂,其实还没有拿到授权….

先来弄懂什么是公钥加密和对称加密,顶部有一套系列教程,需扶墙。对称加密就是加密解密同一把Key。公钥加密或者非对称加密,加密用公钥,解密用私钥。不严谨的比喻就是:一个人拥有保险柜和钥匙,保险柜是公钥,密钥是钥匙。密钥不可外传,公钥可以外传。不费时间解释,google吧。

請参考原文的图解,再看下面的文章是思路梳理:

  • 首先假设一个A和B通讯的场景,需要加密,用对称的加密

  • 不同Client之间对Server使用的Key必然不一样,否则无异于没加密。导致产生Client和Server协商Key的安全问题(MITM attack),引出公钥加密的需求。

    结论 1:HTTPS握手阶段的随机数用来协商不同客户的对称加密算法。

  • 公钥加密只能解决Client对Server单方向通讯的安全。Server的保险柜丢给每一个Client,Client把数据装进保险柜。锁上后,只有Server的钥匙能打开。

    结论 2: HTTPS需要对称和非对称算法同时支持

  • 如果保险柜是冒充的?Server传递保险箱给client,存在MITM attack的可能,引入数字证书和第三方,第三方负责把Server的保险柜给Client。

    还是怕有读者看不懂数字证书是啥,就是Server的公钥,被第三方用第三方的私钥加密了。

    结论 3: HTTPS需要第三方权威机构参与,需要数字证书

  • 那么第三方给出的Server 保险柜(指Server公钥)就可信了?不,考虑到一个第三方权威机构,可能给互联网众多Server做加密它们保险柜的操作,刚刚的数字证书,只能说它是来自一个权威第三方颁发的,但是为谁颁发的?依然存在MITM attac,最后引入数字签名。

    结论 4:HTTPS需要数字签名

然后就是怎么验证数字签名的问题了,这和浏览器、操作系统自身的缺省配置有关。

题外话

pronhub都有小绿锁的时代,猜猜12306不上绿锁的原因。

阮一峰的这一篇文章或许能给你灵感

非营利网络认证发放机构 Let’s Encrypt 推出了开源免费的HTTPS认证服务。不过,据中关村在线报道,近期有专家发现,Let’s Encrypt 发放的认证证书有被滥用的趋势。该报道还指出“迄今已发行15270个内含 PayPal 字样的证书,当中约有 96.7 %被用于钓鱼网站,这表示约有 14766 个钓鱼网站已经拥有与 PayPal 相关的证书”。—出自雷锋网

Reference


详细的加密细节讲述

CDN HTTPS优化实践 阿里出品

HTTP认证的底层技术简析与揭秘
Http和Https的区别

图文兼并的深度解析HTTPS建立和安全性

好奇的结束词

Punycode钓鱼攻击 + Let’s Encrypt证书
赛门铁克和google的恩怨情仇
HTTP Strict Transport Security 技术