http和https的区别

一、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了,后续的操作就和上面的一样了

相关推荐
JMchen1233 小时前
Android UDP编程:实现高效实时通信的全面指南
android·经验分享·网络协议·udp·kotlin
JMchen1234 小时前
Android网络安全实战:从HTTPS到双向认证
android·经验分享·网络协议·安全·web安全·https·kotlin
m0_737302584 小时前
安卓证书在线生成_免费一键制作apk打包 一键制作工具
网络协议·https·ssl
Zach_yuan4 小时前
传输层之TCP/UDP 核心原理全解析:从协议基础到实战机制
linux·网络协议·tcp/ip·udp
chenjingming6665 小时前
浏览器(如chrome)代理抓包时提示Your Connection is not private 问题临时处理
chrome·https
阿钱真强道5 小时前
13 JetLinks MQTT:网关设备与网关子设备 - 温控设备场景
python·网络协议·harmonyos
寻星探路11 小时前
【深度长文】万字攻克网络原理:从 HTTP 报文解构到 HTTPS 终极加密逻辑
java·开发语言·网络·python·http·ai·https
王达舒199411 小时前
HTTP vs HTTPS: 终极解析,保护你的数据究竟有多重要?
网络协议·http·https
朱皮皮呀11 小时前
HTTPS的工作过程
网络协议·http·https
Binary-Jeff11 小时前
一文读懂 HTTPS 协议及其工作流程
网络协议·web安全·http·https