博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
确保安全的HTTPS
阅读量:3956 次
发布时间:2019-05-24

本文共 1849 字,大约阅读时间需要 6 分钟。

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

确保安全的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通信更快更佳

转载地址:http://pftzi.baihongyu.com/

你可能感兴趣的文章
如何阅读科研论文
查看>>
理解本真的REST架构风格
查看>>
10款免费且开源的项目管理工具
查看>>
java调用javascript :js引擎rhino
查看>>
asp 中常用的文件处理函数
查看>>
ADO中sqlserver存储过程使用
查看>>
Linux KernelTech版FAQ 1.0
查看>>
ntfs分区iis故障的解决
查看>>
个人创业“六大死穴”
查看>>
最重要的 12个 J2EE 最佳实践
查看>>
通过Java Swing看透MVC设计模式
查看>>
Java 理论与实践: 关于异常的争论
查看>>
编写高效的线程安全类
查看>>
提高Java代码可重用性的三个措施
查看>>
编写跨平台Java程序注意事项
查看>>
富人和穷人的12个经典差异
查看>>
java 注意事项[教学]
查看>>
MetaWeblogAPI测试
查看>>
软件配置管理概念-1,介绍
查看>>
软件配置管理概念-2,用户角色
查看>>