网络安全概论——TCP/IP协议族的安全性
TCP/IP不同层次的协议
网际协议(IP)
- 不可靠,不能保证数据包传送成功,也不能保证按特定次序传输,也不能校验正确性。头部的校验和部分只能用于校验数据包IP头部的正确性,没有任何机制保证数据净荷传输的正确性。不能保证数据一定是从数据包中所给的源地址发送的。
- 使用了“IP source routing”这一选项的网际协议的数据包好像总是从路径最后一个系统上传递过来的。
- 根据IP协议规定、中间节点不能对小数据包进行拼接组合。
地址解析协议(ARP)
将32bit的IP地址(IP4)转化为48bit的MAC地址
传输控制协议(TCP)
- TCP三次握手
- SYN Flood攻击和防范。
开放TCP链接是一个三步握手过程。在服务器收到初始的SYN(同步序列编号Synchronize Sequence Numbers)数据包后,该链接处于半开放状态。此后,服务器返回自己的序号,并等待确认。最后客户机发送第三个数据包使TCP链接开放,在客户机和服务器之间建立连接。
客户端:服务器,你能听到我吗?
服务器:我能听到你,客户端,你能听到我吗?
客户端:我能听到你,我跟你讲………………
三步握手所交换的信息如下:
- 客户机首先向服务器发送设置了SYN标志位的数据包和一个初始的客户机序号CSEQ;
- 服务器返回的数据包既有SYN标志位,又有ACK信息(将客户机的序号加1),同时附加服务器的序号SSED;
- 客户机将服务器的序号加1作为返回数据包的ACK值。
当TCP协议处于半开放状态时,攻击者可以成功利用SYN Flood对服务器发动攻击,攻击者使用第一个数据包对服务器进行大流量冲击,使服务器一直处于半开放连接状态,导致服务器无法完成三步握手协议。
用户数据报协议(UDP)
TCP与UDP的区别:
- UDP传输数据时,既没有纠错和重传机制,也没有对数据包进行丢包,复制,重新排列的检查机制,进行大流量的数据传输时会造成路由器堵塞和数据包丢失。
- UDP忽略了源地址和目的地址
- UDP没有交换握手信息和序号的过程,因此易受到欺骗
UDP的控制端口的常见端口是21
Internet控制消息协议(ICMP)
ICMP用来处理传输错误,当某个网关发现传输错误,立刻向信源主机发送ICMP报文,报告出错信息。它是一种差错和控制报文协议。不仅传输差错报文还传输控制报文。
路由协议
- 路由协议是一种在Internet上动态寻找恰当路径的机制
- 路由信息产生两个通道:主叫主机到目标主机,目标主机到主叫,当这两个不互逆时叫做非对称路由(优点:负载均衡 缺点:有多个防火墙引发安全问题)
- 路由协议的攻击和防范:攻击者通过自封包或修改网络节点的IP地址来冒充某个可信节点的IP地址进行攻击。抛弃外网进来却声称内部主机的报文,关闭路由器的源路由功能
- 边界网关协议(BGP):通过TCP连接在路由器之间分配路由信息。
- 有限开放最短路径协议(OSPF)三个优点
- 验证机制:支持空验证,简单口令验证,加密验证三种方式对路由器之间交换的信息进行验证。
- 扩散机制:链路状态定时刷新,或链路变化时发送,独立计算最佳路径,对错误链路进行反击。
- 分层路由:对其他区域屏蔽使得危害对于整个自治区最小,其他区域路由仍能正常使用。
动态主机配置协议(DHCP)
端口:67、68
DNS域名系统协议
53端口,将前向命名和后向命名分离,可能会带来安全问题
IPV6
128bit,与IPV4不同,IPV6头部没有校验和字段,并且去掉了所有与分段相关的字段
IPV6地址缩写(可以删除前导0,例如0DB8->DB8)
2001: 0DB8: 0000: 0000: 0000: 0000: 1428: 57ab这个IP地址可以缩写为
2001: DB8: 0000: 0000: 0000: : 1428: 57ab
2001: DB8: 0: 0: 0: 0: 1428: 57ab
2001: DB8: 0: : 0: 1428: 57ab
2001: DB8: : : 1428: 57ab
电子邮件协议
- 简单邮件传输协议(SMTP端口:25)
- 邮局协议(POP3端口:110)
- Internet消息访问协议(IMAP端口:143)
消息传输协议
- 简单文件传输协议(TFTP UDP67)
- 文件传输协议(FTP) 21端口是控制连接,20端口是数据连接
远程登录协议
Telnet服务 远程登录 TCP23
SSH(Secure Shell安全壳)服务安全的远程登录 TCP22
简单网络管理协议(SNMP)
对网元的管理 UDP161
网络时间协议(NTR)
所有设备时钟保存一致 UDP123