http和https区别

Http和Https区别

http是超文本传输协议,明文传输;https是具有安全性的SSL加密协议
https协议需要到申请CA(证书颁发机构)证书
连接的方式不一样,使用的端口也不一样。http使用80端口,https使用443端口。
http是无状态连接,https是基于http+SSL协议构建的加密传输,身份认证的网络协议,比http安全。

对称加密和非对称加密

对称加密:服务端和客户端使用一个密钥进行加密和解密
非对称加密:一组公钥和私钥,用公钥加密后的数据只能用自己的私钥进行解密。用私钥加密后的数据只能用对应公钥进行解密。
为什么不直接对称加密
对称加密使用的是一个密钥,需要确保在传输的过程中不被中间人获取,如果密钥被获取,传输过程的数据就不安全。

为什么不直接非对称加密?

首先,非对称加密如果只使用一组公钥和私钥的话,服务器有公钥和私钥,服务器把公钥传给客户端,服务器把数据通过私钥加密后,客户端可以通过公钥解密,如果公钥被中间人获取,那么就失去了安全。
使用两组公钥和私钥可以解决这个问题,但太耗时和对称加密相比。

如果没有证书会发生什么?

服务端把自己的公钥给客户端,客户端获得这个公钥,生成一个密钥x,使用公钥加密传给服务端,服务端用私钥解密,获得密钥x。理论上这个秘钥只有服务端和客户端有,但如果公钥在传输的过程中被截取,那么之后对称加密传的数据都可以被中间人通过截取的公钥来解密。

数字证书

CA数字证书认证机构给网站颁发的权威的证书,只要证书是可信的,公钥就是可信的。数字证书就相当于一个身份证的作用只要身份是可信的,那么公钥也就是可信得。证书里面有公钥,私钥,域名等信息。

数字签名

用来防止证书被篡改。
CA机构有证书对应的公钥和私钥,先对明文用hash算法进行hash,然后用私钥进行加密,得到一个数字签名,加到证书上。
客户端拿到证书验证时,会用对应公钥进行解密,再通过hash算法对明文进行hash,如果得到的值和数字签名解密后的值相等,就证明证书是可靠的。

如果证书被篡改或者掉包呢?

即使中间人获得证书,篡改原文,那客户端拿到证书后验证得到的数字签名和被篡改的原文经过hash算法得到的数字签名不一致,就可以知道证书和公钥就是不可信的。

中间人掉包证书,掉包证书,但因为证书包含网站的信息,包括域名,客户端看到域名都不对,自然就不相信这个证书里的公钥了。

https请求流程

https使用了非对称加密生成一个密钥,通过对称加密使用生成的这个密钥进行数据的加密和解密。
1.首先客户端和服务端通过TCP建立连接
2.客户端访问https的url,发送https请求,请求建立ssl连接
3.服务端收到请求,然后申请CA证书,CA证书里有公钥和私钥,把含有公钥的证书发给客户端。
4.客户端收到后,验证证书是否真实安全,有问题报警告;如果没有问题的话就生成一个随机值,再通过证书里的公钥进行加密。
5.服务端收到这个加密后的信息,用自己的私钥进行解密,得到这个随机值,作为之后数据传输使用的密钥。
6.客户端和服务端使用这个密钥进行对称加密对信息进行传输。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值