HTTPS加密

HTTP 安全性问题:
1.使用明文通信,内容被窃听——加密
2.不验证通信方身份,通信方身份遭伪装——认证
3.无法证明报文完整性,报文有可能被篡改——完整性保护

HTTPS,先让 HTTP 与 SSL 通信,再让 SSL 与 TCP 通信,即 HTTPS 使用隧道通信

1.加密
1)对称密钥加密,加密和解密使用同一密钥
优点:运算速度快,
缺点:无法将密钥安全的传输给通信方

2)非对称密钥加密,加密和解密使用不同的密钥

**即:公钥加密的只能私钥解密,私钥加密的只能公钥解密

优点:可以更安全的将公开密钥传输给发送方
缺点:运算速度慢

HTTPS 使用对称+非对称的加密方式:
服务器将非对称公钥B明文发送给浏览器,浏览器用非对称公钥B将对称密钥X加密,服务器用 私钥B’解密

中间人攻击
在中途截取服务器密钥B,将假的密钥C发送给浏览器,浏览器使用密钥C将对称密钥X发送过去,中间人用自己的私钥C‘解密,获取X,再用C加密发送给服务器

这里的关键问题就在于浏览器无法确认收到的密钥是否网站自己的

数字证书——由“CA机构”颁发数字证书,包含证书持有者、持有者公钥信息等。
通信时,服务器把证书传给浏览器,而浏览器只要从证书里面取公钥就行,证书就相当于身份证?!

如何防止数字证书被篡改?——数字签名
把证书的内容生成一份签名,由浏览器比对证书内容和签名是否一致

如何确保数字签名不会被篡改?
由“CA机构“用私钥将证书内容生成签名,而浏览器会事先保存”CA机构“的公钥
由于中间人是没有“CA机构“的私钥,不可能篡改签名内容

刚学习时在想中间人用“CA机构“公钥解密签名,不就可以篡改签名,何来中间人不能篡改签名一说?但是非对称加密,公钥只能解相对应私钥加密的内容。这里浏览器使用“CA机构“的公钥解密签名,当中间人用其它私钥加密时浏览器公钥是解不开的!?故相当于中间人不能篡改签名内容

HTTPS每次请求都要在SSL层进行握手传输密钥吗?
服务器会为每个浏览器(或客户端软件)维护一个session ID,在TSL握手阶段传给浏览器,浏览器生成好密钥传给服务器后,服务器会把该密钥存到相应的session ID下,之后浏览器每次请求都会携带session ID,服务器会根据session ID找到相应的密钥并进行解密加密操作,这样就不必要每次重新制作、传输密钥了!

https://zhuanlan.zhihu.com/p/43789231

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值