首页 > 技术笔记 > 其他 > 说说HTTPS那些事儿
2016
09-20

说说HTTPS那些事儿

HTTPS的时代已经到来! ——白岩松
在WWDC 2016开发者大会上,苹果宣布到2017年1月1日App Store中所有应用都必须启用ATS。这项功能会屏蔽HTTP资源加在,连接必须经过更安全的HTTPS。而在最近几年内,国外的google、facebook、Twitter等公司,国内的百度、淘宝等站点都已实现HTTPS。甚至连搜索引擎都调整算法,让使用HTTPS的网站在搜索结果中更靠前。不得不说,https的时代真的已经到来。 最近本站也跟风实现了对https的支持,并查阅了一下相关的资料。今天就聊聊https那些事儿。

一、 什么是https?

由于HTTP存在通信使用明文可能被窃听,不验证通信方的身份就可能遭遇伪装,无法证明报文完整性可能遭篡改等缺点,为了解决这些问题,就需要在HTTP上面再加入加密处理和认证等机制,而添加了这种机制的HTTP被称为HTTPS(HTTP Secure)。通常,HTTP直接与TCP通信,但是使用了SSL时,就会演变为先和SSL通信,将数据加密后,再由SSL和TCP通信进行传输。这样数据就不会在网络上明文裸奔,在一定程度上确保数据安全。 http_and_https

二、 加密方式

加密方式分为对称密钥加密和公开密钥加密。 对称密钥加密中加密和解密使用的是同一个密钥,有点是效率高,但是在互联网上转发密钥的时候,如果密钥落入攻击者手中,那加密就失去意义了,数据基本也是在裸奔了。如何安全的发送密钥是个问题。 duichen 公开密钥加密中加密和解密使用的是不同的密钥,一个叫做公钥,一个要做私钥,公钥可以随意发布,给任何人。使用公钥加密的东西可以使用私钥解密,使用私钥加密的东西也可以使用公钥解密。该方法的缺点就是单向安全,因为私钥加密的数据,公钥可以解开,加上公钥是公开的,那数据只不过是换了种方式裸奔。 feiduichen HTTPS采用的是对称密钥加密和公开密钥加密两者并用的混合加密机制。其实,只要使用公开密钥实现密钥的安全交换,那么就可以考虑使用对称密钥加密来进行通信。因为公开密钥加密处理起来比共享密钥加密更复杂,因此若在通信时仍然使用公开密钥加密方式,效率就会很低。 hunhe

三、 如何获取公钥

目前我们还无法证明公钥就是货真价实的公钥。为了解决这个问题,就需要说说证书和数字证书认证机构。 数字证书认证机构(CA)处于客户端与服务器双方都可信赖的第三方机构的立场上。我们来介绍一下数字证书认证机构的业务流程。首先,服务器的运营人员向数字证书认证机构提出公开密钥的申请。数字证书认证机构在判明提出申请者的身份之后,会对已申请的公开密钥做数字签名,然后分配这个已签名的公开密钥,并将该公开密钥放入公钥证书后绑定在一起。 在使用时,服务器将这份数字证书认证机构颁发的公钥证书发送给客户端,以公开密钥加密的方式通信。这个公钥证书也被叫做数字证书或者证书。 但是颁发证书的CA有很多,只有少数几个是被认为权威公正的,这些浏览器才会认为是信得过的。当然,2011 年 7 月,荷兰的一家名叫 DigiNotar 的认证机构曾遭黑客不法入侵,颁布了 google.com 和 twitter.com 等网站的伪造证书事件。这一事件从根本上撼动了 SSL 的可信度。

四、 如何保证数据传输安全?

1. 客户端访问网站 ,服务器将证书返回给客户端 2. 客户端从证书中拿到公钥 3. 浏览器生成一个只有自己知道的对称密钥,并用公钥加密,然后再传给服务器 4. 服务器通过私钥解密,拿到对称密钥 5. 在后续的通信中,都是用这个对称密钥加解密。 流程如下: https_flow   部分图片来源:《图解HTTP》 参考资料:
  1. 《图解HTTP》
  2. 《HTTPS科普扫盲帖》: https://segmentfault.com/a/1190000004523659
 
最后编辑:
作者:射雕天龙
转载请注明:转载自射雕天龙的博客(http://blog.wangjunfeng.com)
捐 赠如果您觉得这篇文章有用处,请支持作者!鼓励作者写出更好更多的文章!

说说HTTPS那些事儿》有 1 条评论

  1. 李阳博客 说:

    最近沃通和startcom也出问题了。

留下一个回复

你的email不会被公开。