确保安全的HTTPS

你未必出类拔萃,但一定与众不同

确保安全的HTTPS


经常使用HTTPS来代替HTTP进行项目的访问
就像微信小程序默认使用HTTPS,APP也是如此,还有像很多网站的URL都是HTTPS项目的最终上线完全离不开HTTPS 今日就来了解一下HTTPS

1.HTTP + 通信加密 + 证书 + 完整性保护

  • 在HTTP协议通信的过程中使用未经加密的明文,如果这条通信线路遭到窃听,那么信息就暴露了

  • 另外对于HTTP来说,服务器和客户端都无法确认通信双方

为了解决这些问题,需要在HTTP上再加入加密处理和认证等机制,我们把添加了加密,认证机制的HTTP称为HTTPS

2.HTTPS 是身穿SSL外壳的HTTP

  • HTTPS并不是一种新协议,只是HTTP通信接口部分用SSL和TLS协议代替而已

  • 通常HTTP协议直接和TCP通信,而使用SSL以后,则变成先和SSL通信,再用SSL和TCP通信

  • SSL是独立于HTTP的协议,他还可以配合SMTP和Telet等协议配合使用,是目前较为广泛的网络安全技术

3.相互交换秘钥的公开秘钥加密技术

SSL采用公开秘钥加密的加密处理方式。

共享秘钥加密(对称秘钥加密)

加密和解密同用一个秘钥的方式称为共享秘钥加密,也被叫做对称秘钥加密

在这里插入图片描述

  • 共享秘钥加密的方式必须把秘钥发送给对方,而这样就加大了秘钥被透露的风险,不够安全。
公开秘钥加密

公开秘钥加密采用一对非对称的秘钥,一把叫做私有秘钥,一把叫做公开秘钥。

  • 使用公开秘钥加密方式,发送密文的一方使用对方的公开秘钥进行加密处理,对方接受到被加密的信息候,再使用自己的私有秘钥进行解密,这种方式不需要发送解密的私有秘钥,比较安全。

在这里插入图片描述

混合加密机制
  • HTTPS采用共享秘钥加密和公开秘钥加密两者混合并用的混合加密机制,

  • 在交换秘钥环节使用公开秘钥加密方式,之后建立的通信交换报文阶段则使用共享秘钥加密方式

证书

公开秘钥加密方式终究存在一些问题,无法确认公开的秘钥本身就是货真价实的公开秘钥

因此为解决这个问题,就使用数字证书认证机构和其相关机关颁发的公开秘钥证书
就像我们本机安装的这些证书

在这里插入图片描述
以及在服务器上安装的SSL证书都是其中的一种

4.数字证书认证机构的业务流程

  • 服务器的运营人员向数字证书认证机构提出公开秘钥的申请,数字证书认证机构在判明提出申请者的身份之后,对已经申请的公开秘钥做数字签名,然后分配这个已签名的公开秘钥,并将该公开秘钥放入公钥证书后绑定在一起
  • 服务器将这份数字证书机构颁发的公钥证书发送给客户端,以进行公开秘钥加密方式通信。公钥证书也就是我们所说的证书
  • 接到证书的客户端就使用数字证书认证机构的公开秘钥,对证书上的签名进行认证,验证通过,客户端便明确两个点
    • 认证服务器的公开秘钥的真实性
    • 服务器的公开秘钥的信任度

5.HTTPS的安全通信机制

  • 客户端发送Client Hello报文开始SSL通信,报文中包含客户端支持的SSL的指定版本,加密组件列表
  • 服务器进行SSL通信时,会以Server Hello报文作为应答,和客户端一样,在报文中包含SSL版本以及加密组件,服务器的加密组件内容是从接收到的客户端加密组件内容筛选出来
  • 之后服务器发送Certificate报文,报文中包含公开秘钥证书
  • 最后服务器发送Server Hello Done报文通知客户端,SSL握手协商结束
  • SSL第一次握手结束以后,客户端以Client Key Exchange报文作为回应,报文中包含通信加密中使用的一种Pre-master secre随机密码串,该报文已经使用公开秘钥加密
  • 接着客户端继续发送Change Cipher Spec报文,该报文提示服务器此后通信使用Pre-master secret秘钥加密
  • 客户端发送Finished报文,该报文包含连接至今全部报文的整体校验值,这次握手能够成功取决于服务器能够正确解密该报文
  • 服务器同样发送Change Cipher Spec报文
  • 服务器同样发送Finished报文
  • 服务器和客户端的Finished报文交换完毕之后,SSL连接就算建立完成,通信会受到SSL的保护
  • 应用层协议通信,发送HTTP响应
  • 最后客户端断开连接

6.为什么所有的通信不都采用HTTPS

  • 加密通信会消耗更多的CPU以及内存资源
  • 通信速度较慢,网络负载可能会慢2-100倍,除去和TCP连接发送HTTP请求响应之外,还需要和SSL通信。
  • 某些非敏感信息是由HTTP通信更快更佳
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鱼爱吃柚子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值