HTTPS的通信介绍

1、客户端发起HTTPS请求
用户在浏览器里输入一个https网址,然后连接到server的443端口。

2、服务器的配置
采用HTTPS协议的服务器必须要有一套数字证书,可以自己制作,也可以向组织申请。区别就是自己颁发的证书需要客户端验证通过(即需要自己在网络验证接口写验证代码),才可以继续访问,而使用受信任的公司申请的证书则不会弹出提示页面。
这套数字证书是一对公钥和私钥,即不对称的加密方式。

3、服务器传送证书
服务器接受到请求,向客户端传送证书。这个证书其实就是公钥及数字签名,只是包含了很多信息,如证书的颁发机构,过期时间等等。

4、客户端解析证书
客户端会验证数字签名是否有效(CA证书会客户端内置CA公钥自动验证,自定义证书需要自己代码验证),比如颁发机构,过期时间等等。如果发现异常,则会弹出一个警告框,提示证书存在问题。
如果证书没有问题,那么就产生一个hash值,然后对该hash值用公钥进行加密。

5、服务端解密信息
HTTPS协议继而传送的是用证书加密后的hash值给服务器。服务器通过私钥解密获得hash值。这个hash值就是秘钥。以后客户端和服务端的通信就通过秘钥进行对称加密。现在客户端和服务端都知道这个私钥,所以只要加密算法够彪悍,私钥够复杂,数据就够安全。

** HTTPS的优缺点**

总结:

HTTPS并非绝对安全,掌握根证书的机构、掌握加密算法的组织同样可以进行中间人形式的攻击。
2.当你使用第三方不安全WIFI的时候,也很容易受中间人攻击。
HTTPS仍是现行架构下最安全的解决方案。
申请SSL证书还需要资金的支持。
HTTPS协议由于需要验证,加密解密数据。会降低机器的性能,相关测试数据表明使用HTTPS协议只有使用HTTP协议传输效率的十分之一。
关于“客户端证书”

前面介绍的过程仅仅使用了“服务端证书”——通过服务端证书来确保服务器不是假冒的。  
除了“服务端证书”,在某些场合中还会涉及到“客户端证书”。所谓的“客户端证书”就是用来证明客户端(浏览器端)访问者的身份。  
比如在某些金融公司的内网,你的电脑上必须部署“客户端证书”,才能打开重要服务器的页面。  
客户端证书的验证类似服务端证书验证,一般大多数场景是不需要验证访问者身份的,毕竟你的产品就是给别人使用的。
此外额外再验证客户端,会使性能进一步下降。

作者:女街景地图
链接:http://haowaiwenda.com/article/169
来源:号外问答网
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值