https比http哪些地方改良了

1.http

tcp三次握手,明文传输。

(1)为什么http协议是无状态的?
http无状态特性简化了http服务器的设计,是服务器更容易支持大量并发的http请求。
(2)http/1.1使用持续连接?
非持续连接每次请求都要进行tcp重连,每一次建立新的tcp连接都要分配缓存和量,开销很大不利于并发。持续连接是服务器发生响应后仍在一段时间内保持这条连接,使同一个客户和该服务器可以继续在这条连接上传送后续的http请求和响应报文。

2.https

tcp三次握手,ssl加密,加密传输。

步骤:

  1. tcp三次握手之后,
  2. 客户端向服务器hello,里面携带有加密算法列表
    服务器选择认为最佳的算法之后,生成公钥和私钥,用证书(公钥)回复。(所以说,是在ssl第一次握手时就确定了用哪一种加密算法。)
  3. 然后客户端生成一个随机数,用证书的公钥加密后发送给服务器,
  4. 服务器用私钥解密后得到随机数。
  5. 之后,服务器就可以把information+随机数 用之前商定好的算法进行对称加密。发送给客户端。
  6. 客户端收到后用之前确定的加密算法逆运算进行解密。
  7. 安全通信完成。

(1)中间经过了多次通信,内容格式分别是什么?
SSL握手协议报文:
协议报文类型 + 报文长度 + 报文内容
(2)https协议开始的时候会切换加密算法,由非对称加密(RSA)切换为对称加密(AES),这个过程是怎么实现的?
首先,什么是非对称加密,什么是对称加密?
非对称加密:公钥加密的密文只有私钥可以解密;私钥只有一个人有公钥可以发给所有人。
对称加密:加密和解密都是通过同一个密钥进行的。

用非对称加密算法 协商 要用的对称加密算法是什么。
客户端 Client Hello ,携带加密列表。
服务器 Server Hello , 携带SSL证书。
客户端校验证书,如果证书可信,浏览器读取证书的公钥,确保是真正的公钥。
客户端用公钥对随机数进行加密,发送到服务器。这个加密数据只有私钥能解密。这就是非对称加密。
服务器收到后,用私钥解密,得到随机数。这时候,就使用对称加密了。将information和随机数用之前协商的加密算法,加密后,发送给客户端。
加密和解密都是通过这同一个随机数key。只要第三方不知道这个key,就是安全的。

SSL/TSL证书把公钥和私钥存到服务器中,公钥由客户端验证,私钥用于解密过程

(3)https是否能防御中间人攻击?如果可以,那他是怎么做到的

防御中间人攻击的方法是确保客户端收到的公钥是真正的公钥,不是被篡改的。

安全的获取公钥:SSL 证书(需要购买)和CA机构

SSL 证书中包含的具体内容有证书的颁发机构、有效期、公钥、证书持有者、签名,通过第三方的校验保证了身份的合法,解决了公钥获取的安全性
校验过程:

  • 浏览器读取证书中的所有者、有效期等信息进行校验
  • 浏览器查找操作系统内置的受信任的证书颁发机构CA,与服务器发来的证书的颁发者CA比对,校验证书是否为合格机构颁发
  • 如果找不到,浏览器会报错,说明服务器发来的证书不可信任。
  • 如果找到,浏览器会从操作系统中去除颁发者CA的公钥,对服务器发来的证书里面的签名进行解密。
  • 浏览器使用相同的hash算法计算服务器发来的证书的hash值,与证书中的签名对比
  • 对比结果一致则证明服务器发来的证书合法,没有被冒充。这时客户端可以读取证书的公钥用于后续加密。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值