http与https

http和https协议的区别

我是这样理解HTTP和HTTPS区别的 - Jesse131 - 博客园

http数据是直接通过tcp发送的, 一切数据都是明文的,不能保证数据的有效性和完整性(比如代理就能进行劫持、篡改、窃听、伪造等)。

https数据是先发送到ssl层进行加密再由ssl层通过tcp发送的, 能确保数据的安全性,但是效率会比http差一点(加密那些本身需要使用资源)。

https演化过程 :

一、对称加密

流程:服务的生成密钥, 客户端请求的时候返回给客户端,后面一直用这个密钥加解密。

缺点 : 服务端密钥容易泄露,且如果是多个人,可能需要保存多个密钥。

二、非对称加密

流程:

  1. 服务端生成一个公私钥对
  2. 客户端向服务端请求公钥,服务的返回公钥
  3. 客户端使用返回的公钥对数据进行加密,服务端使用私钥对数据进行解密
  4. 服务的使用私钥对返回的数据进行加密,客户端使用公钥对返回的数据进行解密

缺点 : 性能太低

三、对称加密+非对称加密

流程:

  1. 服务端生成公私钥
  2. 客户端想服务端请求公钥,服务的返回公钥
  3. 客户端用公钥对自己生成的randkey进行加密,发送给服务端,服务端进行解密得到randkey(非对称加密)
  4. 客户端和服务端都使用randkey对数据进行加解密(对称加密)

缺点:客户端在请求公钥的时候,可能拿到的是中间人的公钥,中间人再获取服务端的公钥,这样客户端发消息的时候中间人进行解密,然后再用自己拿到的服务端的公钥进行加密发送给服务端。

四、使用CA证书避免中间人身份伪造攻击

流程:

  1. 服务端将颁发公钥和私钥的工作交给权威的CA机构,证书上有签名、发布机构、有效时间、签名算法、所有者七七八八的。
  2. 客户端提前拿到CA机构的根证书,自己永远保存,用来验证公钥的合法性。
  3. 客户端在请求的时候, 公钥的时候, 可以通过跟证书校验公钥的有效性以及所有者等。 中间人如果返回假的公钥,则校验不通过, 如果返回他自己生成的CA证书的公钥, 则返回的信息跟请求的信息不匹配, 也会被校验出来。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值