SSL/TLS

HTTP和HTTPS

http是一种超文本传输协议,具体来说,主要是来规范浏览器和服务器端的行为的。
http在传输内容上是明文传输的,容易产生安全问题
所以https来了,它是在http的基础上加上SSL/TLS协议,对通信数据进行加密。
先从下面逐步了解它的工作原理。


对称加密

客户端和服务端都是使用一样的密钥,客户端或者服务端对要发送的数据进行密钥加密,发送给对方,用密钥解密。

优点:简单高效,只要密钥不被第三方获取,是安全的。
缺点:密钥被别人获取从而解密得到数据,不安全。


非对称加密

当客户端要跟服务端通信时,服务端有两把密钥,一把公钥,一把私钥,公钥发送给客户端,私钥由服务端自己保管。客户端用公钥加密数据发送给服务端,服务端用私钥解密得到数据

优点:其他人拿到了客户端用公钥加密发送的数据后,没有服务端的私钥是解不开的。


弊端

两种加密方式的公钥都可能会被中间第三方截取,造成安全问题。


思考

非对称加密只能保证单方的通信安全,如果要保证双方的通信安全,直接客户端和服务端都有自己的一对密钥(公钥和私钥),然后互相发送自己的公钥给对方,然后接收对方用自己的公钥加密的数据时,用自己的私钥解密不就行了?

非对称加解密耗时要远大于对称加解密,对性能有损耗

所以https采用的是 非对称加密 + 对称加密的方案

  1. 服务端自己有一对密钥,公钥和私钥。
  2. 服务端将公钥发送给客户端。
  3. 客户端接收后,自己产生一把对称加密的密钥A1,然后用服务端发给自己的公钥对A1进行加密发送给服务端。
  4. 服务端用自己的私钥进行解密,得到客户发送过来的密钥A1(这样就确保了对称密钥不会被第三方截取)。
  5. 双方通信用对称密钥A1进行对称加密通信。

还是有个问题:这样还有安全问题吗

有的

在上述过程的第二步,服务端发送的公钥有可能被别人截取,中间人发送假的公钥(中间人自己的公钥)给客户端,但是客户端完全不知道这不是服务端发过来的,于是傻乎乎的把自己的对称密钥用中间人的公钥进行加密,最后造成数据完全被中间人获取。

数字签名

如何保证第二步中的公钥不被别人窃取呢,数字签名就是解决此问题的,

image.png

image.png


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值