https

http与https:

  • http为明文传输,不安全,https在tcp和http之间加入ssl/tls安全协议来加密。在tcp三次握手后在进行ssl/tsl握手进入加密报文传输。
  • 为什么不在客户端直接加密,比如用MD5加密:MD5 并不是加密算法,其全称是 Message Digest Algorithm MD5,意为信息摘要算法,是一种不可逆的哈希算法,也就是说经过前端 MD5 处理过的数据在服务器端是无法复原的。这里以密码举例,前端把用户密码通过 MD5 进行处理,并把得到的哈希值发送给服务器,服务器由于无法复原密码,就会直接用这个哈希值处理用户请求。所以第三方在获取这个哈希值后,可以绕过前端登录页面直接访问服务器,造成安全问题。
  • http端口号:80。https端口号:443。

https:

加密算法:

  • 对称加密:双方使用一个密钥进行加密,速度快,计算量小,适合加密比较大的数据,但是无法做到密钥传输时的安全交换。常见的对称加密算法有 DES、3DES 和 AES 等
  • 非对称加密:公钥和私钥,公钥由服务器发布,私钥服务器自己保密,客户端使用公钥加密然后服务端使用私钥解密。 常用的非对称加密算法是 RSA 算法。但是计算量比较大,加密和解密速度相比对称加密要慢很多,加密和解密使用不同的钥匙,私钥不需要通过网络进行传输,安全性很高。

数字证书:

  • 能对公钥进行验证,所以这里就需要借助第三方权威机构 CA (数字证书认证机构),将服务器公钥放在数字证书(由数字证书认证机构颁发)中,只要证书是可信的(客户端向CA验证证书是否来源于可信服务器),公钥就是可信的。
    在这里插入图片描述

https如何握手:

  • "client hello"消息:客户端通过发送"client hello"消息向服务器发起握手请求,该消息包含了客户端所支持的 TLS 版本和密码组合以供服务器进行选择,还有一个"client random"随机字符串。
  • "server hello"消息:服务器发送"server hello"消息对客户端进行回应,该消息包含了数字证书,服务器选择的密码组合和"server random"随机字符串。
  • 验证:客户端对服务器发来的证书进行验证,确保对方的合法身份,验证过程可以细化为以下几个步骤:
    • 检查数字签名
    • 验证证书链
    • 检查证书的有效期
    • 检查证书的撤回状态
    • “premaster secret"字符串:客户端向服务器发送另一个随机字符串"premaster secret (预主密钥)”,这个字符串是经过服务器的公钥加密过的,只有对应的私钥才能解密。
  • 使用私钥:服务器使用私钥解密"premaster secret"。
  • 生成共享密钥:客户端和服务器均使用 client random,server random 和 premaster secret,并通过相同的算法生成相同的共享密钥 KEY。
  • 客户端就绪:客户端发送经过共享密钥 KEY加密过的"finished"信号。
  • 服务器就绪:服务器发送经过共享密钥 KEY加密过的"finished"信号。
  • 达成安全通信:握手完成,双方使用对称加密进行安全通信。

摘自:https://www.cnblogs.com/hynblogs/p/12251317.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值