http和https的区别

本文探讨了HTTP和HTTPS之间的区别,重点介绍了HTTP的明文传输风险,以及HTTPS如何通过对称加密和非对称加密(包括公钥/私钥系统)来提高安全性,以及CA证书在防止公钥篡改中的作用。
摘要由CSDN通过智能技术生成

一、http

超文本传输协议 HTTP 被用于 Web 浏览器和网站服务器之间传递信息,HTTP 以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了 Web 浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息。因此,HTTP 不适合传输敏感信息,比如:资金账户、密码等,默认端口号是80,是TCP/IPhttp

二、https

因为http是明文传输,所以容易被截取修改,因此需要一种加密算法来把传输的信息进行加密。加密算法有对称加密和非对称加密。https的默认端口号是443,是TCP/IPSSLhttps

1.对称加密

对称加密就是产生一个密钥,可以用其加密也可以用其解密,通俗来讲就是服务端通过一个密钥,将要传输的信息通过算法来进行加密,并且在第一次的传输过程中将这个密钥传递给客户端,客户端通过这个密钥来解密,获取到传递的内容,然后以后的传输都是通过这种加密方式,就算第三方窃取到了传递的数据,也无法解密,这个密钥也称为公钥。但是这种加密有一个问题,那就是如果在第一次传输密钥的过程中,就窃取到了密钥,那么这个加密形如虚设,第三方也可以拿这个密钥来进行解密加密。常见的加密算法有DES、3DES、AES、Blowfish等

2.非对称加密

非对称加密就是产生一对密钥,一个用于加密,一个用于解密,称为公钥key1和私钥key1,如果用公钥key1加密,那么就只能用私钥key1解密,如果用私钥key1加密,那么就只能用公钥key1解密。通俗来讲就是服务端生成公钥key1和私钥key1,服务端把公钥key1给客户端,然后客户端通过这个公钥key1加密信息传递给服务端,服务端通过私钥key1进行解密,但是有一个问题,服务端通过公钥key1加密的信息,客户端因为没有私钥key1,所以不能解密,所以这个时候可以结合对称加密。客户端可以生成一个公钥key2,然后通过公钥key1将这个公钥key2进行加密传递给服务端,服务端用私钥key1解密得到公钥key2,然后后续就通过这个公钥key2来进行对称加密传输,因为这个公钥key2是客户端通过公钥key1加密给服务端的,所以第三方并不知道这个公钥key2。但是这种方式也有一个弊端,那就是被篡改,就是在服务端第一次给客户端公钥key1的时候,第三方把公钥key1保存起来,然后第三方生成一个公钥key3和私钥key3,然后将公钥key3给客户端,客户端并不知道这个公钥key3是被篡改的,也用公钥key3来加密公钥key2,然后第三方窃取到这个加密后的公钥key2,通过私钥key3进行解密就可以拿到公钥key2,进行保存,然后再用之前保存的公钥key1来加密给服务端,这样第三方也能获取到公钥key2。不能理解的话就画图来表示,整个逻辑很简单的。

3.CA证书

可以看出非对称加密结合对称加密还是挺好的,主要的缺陷是被第三方篡改公钥key1,所以直接找一个权威机构来帮忙传递公钥key1,以此来保证公钥key1不会被篡改。具体流程是首先就是服务器把服务器地址和公钥key1以及money一起给权威机构,权威机构也会生成一对公钥key4和私钥key4,然后将服务器地址,证书签发机构,私钥key4加密后的公钥key1,以及私钥key4加密后的证书签名等等弄成一个CA证书,整个CA证书任何人都能读到其中的信息,因为公钥key4是公布于全世界的,但是呢,你改不了,因为你没有私钥key4,你改了之后没法加密,用自己的私钥加密的话,公钥key4就不能解密,并且证书签名的算法是公开的,客户端可以根据服务器地址 + CA公钥key4 + 公钥key1结合证书签名算法得到的结果来比对收到的证书签名,判断收到的CA证书是否一致,不一致表示被篡改了,现在第三方已经不能篡改公钥key1了,后续的操作就和上面的一样了

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值