HTTPS究竟是如何保证通信安全的

  • 时间:2018-06-21 23:21 作者:大岩不灿 来源:大岩不灿 阅读:99
  • 扫一扫,手机访问
摘要:一直对https有个模糊的概念,只是知道https安全,信息是加密的,但是对于细节一直是不明白,特别是为什么要买个证书。今天看图灵图书的《图解HTTP》一书,看到https这一章节,终于知道个大概是咋回事了。第一:https的概念https就是把http协议包裹在SSL协议里,再加上少量证书的东西,

一直对https有个模糊的概念,只是知道https安全,信息是加密的,但是对于细节一直是不明白,特别是为什么要买个证书。今天看图灵图书的《图解HTTP》一书,看到https这一章节,终于知道个大概是咋回事了。

第一:https的概念

https就是把http协议包裹在SSL协议里,再加上少量证书的东西,就称为https。https就是躲在SSL协议之后的http协议。

http是把http请求或者者响应传给传输层,传输层把请求或者者响应包装之后发给http通信的另外一端。

https是SSL协议先把通信的两端加密方式协商好,http再把请求和响应传给SSL协议层,SSL层把请求和响应加密之后,再传给传输层,传给通信的另外一端,另外一端也是先由SSL层解密,再交给http层。

第二:SSL协议

SSL协议是介于传输层(tcp协议)和应使用层(http协议)之间的一个协议。

SSL协议之前是网景公司提出的,后来由另外一个标准制定组织接收了,又提出了基于SSL协议发展的TLS协议.

SSL协议就是使用于通信两端建立安全连接,完成加密传输,保证传输的完整性。

第三:https通信过程。

1、SSL协议层先握手建立连接,协商用的加密算法。

2、服务器先把公钥发给用户端。

3、这样用户端能用公钥加密发给服务器,服务器使用私钥解密。这组密钥一般不会使用于直接通信,服务器和用户端会协商出另外一组密钥进行后面的通信。比方用户端能生成临时密钥,使用公钥加密后发给服务器,从而实现共享密钥。

(备注;ssl协议不仅仅用非对称加密,还会混合用对称加密,由于非对称加密很耗CPU,性可以不好,ssl在建立连接之后,后面会协商一个共享秘钥进行内容通信。)

4、后面就开始正式的http通信,由于传输是通过共享密钥加密传输的,所以是安全的。

第四:证书

上面的通信过程建立链接之后是安全的,但是有一个漏洞。

第一:就是黑客能冒充服务器发送假的公钥,和用户端通信

第二:就是黑客能冒充假的用户端和服务器通信

先说第一个问题:

用户端如何证明是真的服务器发过来的真的公钥呢?这就出现了服务端的证书。

方法是通过第三方权威机构颁发的证书,所谓证书,就是第三方权威机构使用自己的私钥,对某服务器的公钥进行的数字签名。

服务器在把公钥发给用户端的时候,也要发送自己的证书(也就是第三方机构的数字签名)。

用户端使用第三方机构的公钥对数字签名进行验证,验证通过,就认为这个公钥是合法的。由于第三方权威机构的私钥是很安全的(我们暂且这么认为),所以伪造不了。

这就处理了第一个问题。

第三方权威机构必需是有信誉的公司,例如VeriSign公司是专门的证书颁发机构,当然假如这个公司靠不住,以上都不成立了。

有人会问,这个第三方机构的公钥也是假的呢? 这个第三方机构的公钥一定要以一种更安全的方式传给用户端。

那就是各大浏览器在发布的时候,已经把少量权威机构的公钥预置进去了,除非你下载了盗版的浏览器。

再说第二个问题,服务端如何识别用户端是真的用户端呢?

最安全的方式就是用户端也用证书,每个专门的使用户一个证书,但是这个代价比较高,由于申请证书要收费的。

目前大部分互联网企业做法是只对服务器端进行证书认证,只需确保用户端可以识别真的服务器即可以了。

至于对用户端的真伪,一般的做法是通过使用户名密码,只需使用户名密码对了,我就认为和服务器连得用户端就是那个我认为的用户端。

再安全一点的做法就是验证手机号,弄个不断变化的密令,宝令,usb密码狗之类的。

所以使用户千万不可以把你的密码告诉别人。

以上看来,https通信还是比较安全的,怪不得那么多互联网公司都在转向全网https,这是一个趋势。

对于https还有很多细节,我这里只是大概形容个https的概念,更专业的东西就让专业搞密码学的人去搞吧。

  • 全部评论(0)
最新发布的资讯信息
【系统环境|】学习Web前端想要做到事半功倍,只要掌握好这3点(2019-08-23 10:37)
【系统环境|】WEB前端学习:JS实现中文简体繁体切换(2019-08-22 12:38)
【系统环境|服务器应用】前台开发入门到实战:HTML5语义化元素你真的用的正确吗?(2019-08-22 04:16)
【系统环境|服务器应用】Vue仿微信app页面跳转动画(2019-08-22 04:16)
【系统环境|服务器应用】webstorm使用快捷键快速修正单个文件的style(2019-08-22 04:16)
【系统环境|服务器应用】程序员从学生到阿里经历的5次蜕变:海阔凭鱼跃,天高任鸟飞(2019-08-22 04:16)
【系统环境|服务器应用】var、let、const的区别(2019-08-22 04:16)
【系统环境|服务器应用】mini-ui加载框Indicator 被遮挡问题(2019-08-22 04:15)
【系统环境|服务器应用】【对讲机的那点事】玩对讲机,对于对讲机的亚音你理解吗?(2019-08-22 04:15)
【系统环境|服务器应用】前台中高级面试,内功心法(上)(2019-08-22 04:15)
手机二维码手机访问领取大礼包
返回顶部