HTTPS协议

 一、HTPPS是什么

是在HTTTP的基础上加上一个加密层

S指的就是SSL加密机制

二、为什么要给HTTP数据包加密

为了防止他人窃取请求中的数据或篡改里面的信息

比如在你发送一个登录请求时,里面的body部分就包含了你的账号和密码的信息

如果不加密,相当于是明文发送,一旦被黑客劫持数据包,那么有会泄露个人账户密码了

比起不让别人随意截取你的数据包,加密是一种成本更低更有效的方法

三、HTTPS的工作过程

HTTPS只是对HTTP进行了加密

解密之后的数据就是HTTP数据

加密的本质就是,解决掉HTTP明文传输的特点

3.1引入加密

3.1.1对称加密

对称加密:加密和解密用的是同一个密钥("密码本")

这里有两个问题:

  1. 首先对称加密要求客户端和服务器双方使用同一个密钥
  2. 不同客户端和服务器之间应当使用另一套密钥

因为:如果所以客户和服务器用的都是同一套密钥,那加密就没有意义了

这就意味着,当客户端(服务器) 中的一方连接到另一方的时候

  1. 需要生成一个随机的密钥
  2. 通过网络传输把这个密钥告知给对方

这里又又有个问题,那你在传输密钥的过程,因为对方还不知道密钥是啥,所以密钥不可能加密之后再传输把?

问题来了:如果传输过程中,被黑客获取到了密钥,那不就前功尽弃了码

这里就相当于在监控底下输入银行卡密码

所以对称加密这条路算是走不通了,这时候就要引入非对称加密了

3.1.2非对称加密

非对称加密:也就是拥有两个密钥,一般是一个公钥(公开的),一个私钥

公钥加密,私钥解密

那既然如此,上面为什么还要提到对称加密呢?

非对称加密,只是用来传输密钥的,并不适合传输数据

因为,非对称加密和解密对于系统CPU来说需要消耗大量的资源

           针对少量的数据可以使用非对称加密

           传输大量的数据就需要使用对称加密

非对称加密是怎样做到,把密钥安全的传输给对方的呢?

上面说过,公钥加密,私钥解密

公钥人尽皆知,黑客也能知道

私钥是一方,进行私密保存的

比如:客户端使用 公钥 对明文(原始数据)进行加密

                           得到密文 (明文加密后的数据 ) 发送给服务器 

这个过程中黑客是可以知道公钥的,但是他不知道私钥,无法解密

上述这种情况,是由服务器生成公钥和私钥

私钥服务器进行私密保存

公钥通过传输告知给客户端

尽管如此,这还不是很安全

黑客也可以冒充服务器,创建出一套公钥和私钥

我画个丑图解释一下

相当于客户端用了黑客的公钥,对数据进行了加密

黑客只需要用自己的密钥就可以轻松对数据进行解密了

后续的步骤呢就是:

  1. 黑客使用服务器真正的 公钥 对原始数据进行加密
  2. 再发送给服务器
  3. 服务器用自己的密钥对数据进行解密,发现没问题

如此一来,客户端和服务器都不会发现自己的数据泄露了

所以就引入了证书

3.2引入证书

证书的作用:

证书用来验证 拿到的公钥是否是真的,而不是黑客伪造的

证书的格式:

证书是一个结构化的数据(包含有很多属性,最终以字符串的形式提供)

证书中包含了一系列的信息

比如服务器的主域名,公钥,证书有效期......

证书咋申请

证书由服务器方,去向第三方机构进行申请

证书保证真伪性的流程

刚才说过,证书中保存有公钥的信息

那么黑客是否能故技重施

修改里面的公钥,把他的公钥改成自己的呢?

不行!

客户端拿到证书之后会先进行验证证书的真伪

证书验证真伪的过程

首先证书里的信息包括

服务器的域名:xxxxxx

证书的有效时间:xxxxxx

服务器的公钥:xxxxxx

公证机构的信息:xxxxxx

........................等等信息

最重要的是

证书的签名:xxxxxxx

证书签名其实就是一个经过加密校验和

这个签名是由,把以上所以信息中的字段通过CRC/MD5等算法

计算后得到的一个较短的字符串,作为校验和

校验和是一种,极难逆推的结果,他是防止数据被篡改的关键

所以,一旦里面的字段发生改变,那么算出来的校验和就肯定不同

不仅如此,公证机构还会对这个校验和也就是证书签名,使用公证机构 的 私钥进行加密

客户端在拿到 证书信息之后

1.会先根据以上字段进行同样的校验和计算                                   得到结果 result1

2.然后再根据 公证机构公钥  对证书签名的校验和进行解密     得到结果 result2

然后对比两个结果是否相等

相等:说明证书中的内容没有被修改过

不想等:说明证书中内容被修改过了,此时浏览器会弹出一个警告,"你访问的页面有风险"

这个警告经常半夜学习的小伙伴都见过

还有一点就是,这些知名的公证机构的公钥,是存储在客户端的设备系统当中的

  • 19
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值