HTTPS 的加密流程

一、HTTPS
1.HTTPS是什么
HTTPS 也是一个应用层协议. 是在 HTTP 协议的基础上引入了一个加密层。之前介绍的HTTP是明文传输,传输的数据,是容易被获取的,也容易被篡改的,引入HTTPS ,对数据加密,也就能更好的保护数据的安全 。
2.加密是什么
加密就是把 明文 (要传输的信息)进行一系列变换, 生成 密文 。
解密就是把 密文 再进行一系列变换, 还原成明文 .
在这个加密和解密的过程中, 往往需要一个或者多个中间的数据, 辅助进行这个过程, 这样的数据称为密钥。
3.HTTPS 的工作过程
既然要保证数据安全, 就需要进行 “加密”。网络传输中不再直接传输明文了, 而是加密之后的 “密文”。加密的方式有很多, 但是整体可以分成两大类: 对称加密 和 非对称加密。
(1)引入对称加密
对称加密其实就是通过同一个 “密钥” , 把明文加密成密文, 并且也能把密文解密成明文。
在这里插入图片描述
引入对称加密之后, 即使数据被截获, 由于黑客不知道密钥是啥, 因此就无法进行解密, 也就不知道请求的真实内容是啥了。
但是考虑到实际情况,服务器同一时刻为很多客户端提供服务的, 这些客户端使用的密钥都必须是不同的,如果相同, 黑客就也能拿到了。因此服务器需要维护每个客户端和每个密钥之间的关联关系。理想的做法就是在客户端和服务器建立连接的时候, 双方协商确定这次的密钥。
在这里插入图片描述
此种情况下,客户端生成密钥,发给服务器,由于密钥刚刚生成,服务器可能不知道,因此只能明文传输,那么密钥很容易被黑客截获。因此密钥的传输也必须加密传输! 此时就需要引入非对称加密。
(2)引入非对称加密
非对称加密要用到两个密钥, 一个叫做 “公钥”, 一个叫做 “私钥”.
公钥和私钥是配对的. 最大的缺点就是运算速度非常慢,比对称加密要慢很多.
非对称加密的两种方式:
1)通过公钥对明文加密, 变成密文;通过私钥对密文解密, 变成明文
2)通过私钥对明文加密, 变成密文;通过公钥对密文解密, 变成明文
在这里插入图片描述基于非对称加密,就可以让服务器自己生成一对公钥和私钥,客户端持有公钥,服务器持有私钥。此时由于中间的网络设备没有私钥, 即使截获了数据, 也无法还原出内部的原文, 也就无法获取到对称密钥。客户端在本地生成对称密钥, 通过公钥加密, 发送给服务器,服务器使用私钥解密得到对称密钥,此时客户端服务器就可以使用这个对称密钥来进行后续数据传输。后续客户端和服务器的通信都只用对称加密即可。由于该密钥只有客户端和服务器两个主机知道, 其他主机/设备不知道即使截获数据也没有意义。
此种情况下,同样会产生相应的问题:中间人攻击。
在这里插入图片描述
此时客户端无法分辨public2是不是服务器真实的公钥,解决方案就是让客户端能够辨别,当前这个响应(公钥)是服务器真实的公钥。就需要引入证书。
(3)引入证书
在客户端和服务器刚一建立连接的时候, 服务器给客户端返回一个 证书.
这个证书包含了刚才的公钥, 也包含了网站的身份信息。客户端向服务器请求公钥的时候,此时就不是单单请i去一个公钥,而是请求一个证书,客户端拿到证书之后对这个证书进行校验,如果发现证书无效,浏览器就会直接弹窗警告。
如何校验?
客户端使用认证机构提供的公钥对签名进行解密,解密之后,得到的结果是一个hash1值,类似于TCP/IP的校验和,然后计算整个证书的hash 值, 记为 hash2. 对比 hash1 和 hash2 是否相等. 若相等,则证明此证书有效。

那么客户端如何获取到公钥并判定这个公钥不是黑客伪造的?

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值