http和https的区别、什么是对称密钥,什么是非对称密钥

最近花了好长时间才搞懂https,所以写了该博文进行总结。许多细节之处,还有待完善,如有错误,欢迎大家在评论区批评指正。

1 区别

(1)http是明文传输的,数据都是未加密的,安全性较差。https(SSL/TLS+http)数据传输过程是加密的,安全性较好。

(2)使用 HTTPS 协议需要到 CA(Certificate Authority,数字证书认证机构) 申请证书,一般免费证书较少,因而需要一定费用。证书颁发机构如:Symantec、Comodo、GoDaddy 和 GlobalSign 等。

(3)HTTP 页面响应速度比 HTTPS 快,主要是因为 HTTP 使用 TCP 三次握手建立连接,而 HTTPS除了 TCP,还要加上 ssl 握手。

(4)http 和 https 使用的是完全不同的连接方式,用的端口也不一样,前者是 80,后者是 443。

(5)HTTPS 其实就是建构在 SSL/TLS 之上的 HTTP 协议,所以,要比较 HTTPS 比 HTTP 要更耗费服务器资源

2 http问题

  • 明文传输

  • 不会验证对方身份

  • 无法保证数据的完整性和安全性

3 对称加密和非对称加密

对称加密用的同一个密钥。非对称加密有两个密钥,一个公钥,一个私钥。

在https的过程中,使用了两次非对称加密

  • CA对服务器公钥以及其他新的信息使用私钥加密,形成数字签名(证书),服务器发送给客户端以后。CA用公钥进行解密,得到服务器的公钥。

  • 客户端将会话密钥 使用服务器的公钥,加密以后,发送给服务器,服务器使用自己的私钥对数据进行解密,得到会话密钥。

之后的通信就是使用会话密钥来进行通话的。会话密钥的通信就是对称加密

4 https

https是使用ssl+http来进行数据传输的。

首先建立ssl连接。(前提:服务器向CA申请证书。并把自己的公钥给CA,CA将服务器的公钥以及一些其他信息使用CA的私钥进行加密,生成数组签名(证书))

(1)首先客户端向服务器发送请求。(包含随机数、TLS版本号、)

(2)服务器向客户端发送自己的证书。(包含随机数、确认TLS版本号)

(3)客户端使用内CA的公钥(CA的公钥已经事先置入到了浏览器或操作系统中)进行解密,并且取出服务器的公钥。

(4)客户端使用 客户端生成的随机数以及服务器生成的随机数,以及pre-master生成会话秘钥。

(5)客户端使用服务器的公钥 对会话秘钥进行加密,并发送给客户端

(6)服务器收到 以后,用自己的私钥对信息进行解密,得到会话秘钥

(7)在后续传输内容的过程中,就可以使用对称秘钥来对数据进行加密。保证了数据的安全性。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值