网络协议学习(四)
一、网络安全四种威胁
1、ARP欺骗
ARP欺骗举例说明
2、Dos、DDos
SYN洪水攻击
(1)发送SYN请求,但是不发送ACK确认请求,让服务器在第三次握手等待,浪费资源;
(2)修改源IP,让目标送到错误的源ip,正常的ip无法收到服务器发来的ack;
DNS劫持
HTTP劫持
对HTTP数据包进行拦截处理,比如插入JS代码,应用场景:突然弹窗
HTTP协议安全问题
二、单向散列函数
不可逆的加密(比如忘记密码只能重新设置密码)
破解:枚举暴力破解
应用:确认文件是否被篡改(下载文件的时候,下面会有散列值)
三、可逆加密
1、对称加密
常见的算法:
(1)DES
(2)3DES
(3)AES
但是对称加密,一定存在密钥配送的问题,所以出现了非对称加密,就不用传输加密;
2、非对称加密
注:相当于公开一个公钥,当别人想给自己发消息的时候,就要求发送方使用自己的公钥进行加密,我方接收到消息,在用自己的私钥解密
常见算法:RSA
3、混合密码系统
因为非对称加密加密速度比较慢,对称虽然快但是安全性不高,所以需要使用混合密码系统
(1)使用非对称加密的方法加密密钥进行传输;
(2)使用对称加密的密钥发送消息;
三、数字签名
举例说明:
但是由于非对称加密算法的速度较低,所以可以进行以下优化,散列值为固定长度,会增加效率
四、证书
对于上述加密,中间人破解的话,可以先拦截,再伪造公钥,达到窃听目的,因为始终要发送自己的公钥,就算是使用数字签名,依然要发送自己的公钥,所以伪造签名。
由此产生了证书
证书流程
各大CA的公钥已经默认内置在浏览器和操作系统中
五、HTTPS
1、介绍
HTTPS就是HTTP的报文加密
2、SSL/TLS
加密发生在应用层和传输层之间,http协议发送报文给tcp的时候加密
3、HTTPS的成本
(1)证书成本;
(2)加解密计算;
(3)降低了访问速度;
(4)有的企业部分页面http,包含敏感的信息使用https(银行)
4、HTTPS的通信过程
(1)TCP的三次握手;
(2)TLS的连接;
分为10部分,大致的过程为客户端发送hello包(里面包含能选择的相关加密组件),然后服务器返回自己选择的加密组件,上述过程都会传输随机数,然后通过双方的随机生成会话密钥,进行消息传输。
(3)HTTP请求和响应;
六、HTTP的升级与改进
1、不足
(1)一个连接只能对应一个请求,当并发的时候就要创建多个连接,浪费资源;
(2)只允许客户端主动发送请求
比如加载网页,网页的图片都必须由客户端一次次的请求
(3)同一个会话,头信息会有重复,比如COOKIE的值,增大资源消耗
2、SPDY解决传输问题
3、HTTP2
(1)速度对比
使用HTTP1,会建立很多链接,速度慢
使用HTTP2,只建立一个链接(通过双向数据流传输),并且时间短
虽然http2底层进行了很多的变化,但是对于http1的语义上没有变化,开发者的代码不需要修改,只需要升级下服务器和浏览器
(2)二进制传输
(4)多路复用
举例:优化网页(减少请求)
1、内嵌css/js
2、使用base64编码加载图片(一般小图片使用,大图片的编码太长了);
3、精灵图片(很多张图片形成一张大图,然后通过css对大图进行定位)
4、域名分片(使用多个域名发送请求)
(4)HTTP2特性–优先级
举例说明
(5)HTTP2–头部压缩技术
把发过的请求头进行压缩发送,提高效率
(6)服务器推送
(7)队头阻塞问题
因为始终是tcp连接,所以只有按照顺序接收,当队头数据丢失,tcp需要重新等待请求,造成队头后面的数据进行等待;
(8)握手延迟
因为TCP始终要连接,所以可能造成延迟
4、HTTP3
(1)相关疑问
(2)连接迁移
(3)操作系统和CPU负载
如果看完对自己有所帮助,请点赞支持,谢谢