计算机网络
计算机网络的概念通常可以从不同角度来理解。
从资源共享的角度来看,计算机网络是能以相互共享资源的方式互连起来的自治计算机系统的集合,有三个特性:
- 分散性 计网所连接的计算机系统可以分布在不同地理位置
- 异构性 计算机网络中的计算机在组成、功能上都可以有显著不同
- 自治性 所有计算机应该实行自我管理
从技术角度来说, 计算机网络 = 通信技术(实现互连互通) + 计算机技术(存储和处理信息)
分类
按传输技术分类
- 广播式网络
- 点对点网络
按网络的覆盖范围与规模分类
- 局域网LAN
- 城域网MAN
- 广域网WAN
按通信技术分类
- 有线网络
- 无线网络
组成
计算机网络主要由 资源子网(负责数据处理的主计算机与终端) 和 通信资源(负责数据通信处理的通信控制处理机与通信线路) 组成。
常见拓扑结构
总线型
- 工作站和服务器均挂在一条总线上,地位平等,无中心点控制,公用总线上的信息多以基带形式串行传递,传递方向从发送信息的节点开始向两端扩散。
- 优点:结构简单,可扩充性好
- 缺点:维护难,分支节点故障查找难
环状
- 由网络中若干节点通过点到点的链路首尾相连形成一个闭合的环,数据在环路中沿着一个方向在各个节点间传输,信息从一个节点传到另一个节点。
- 优点:简化了路径选择,节点控制软件简单。
- 缺点:传输效率低,不便于扩充,可靠性低,维护难
星状
- 各工作站以星状方式连接成网,网络以中央节点为中心,其他节点与中央节点直接相连,又称为集中控制式网络
- 优点:结构简单,便于管理;控制简单,便于建网;网络延迟时间较小,传输误差较低。
- 缺点:成本高、可靠性较低、资源共享能力也较差。
树状
- 分级的集中控制式网络
- 优点:通信线路总长度短,成本较低,节点易于扩充,寻找路径比较方便。
- 缺点:叶节点及其相连的线路外,任一节点或其相连的线路故障都会使系统受到影响。
网状
- 每台设备之间均有点到点的链路连接,这种连接不经济,只有每个站点都频繁发送信息时才使用这种方法。
- 优点:系统可靠性高,容错能力强
- 缺点:连接不经济,每台设备之间均有点到点的链路连接;安装复杂
无线通信与卫星通信网络结构
- 也称为蜂窝网络拓扑结构,以无线传输介质(红外、微波等)点到点和多点传输为特征,是一种无线网,适用于城市网、校园网、企业网。
除了以上这些的话,也有一些拓扑结构是上面几种结构的混合型,这里就按下不表了。
两种计算机网络的基础模型
因为太常见了就不详细说了,直接上图。
OSI参考模型
TCP/IP协议栈
TCP/IP协议栈各层常见的协议示意图
每个协议一般包含两个部分:
- 协议头: 规定协议语法、语义和时序控制
- 协议体: 具体的内容
每次发送端要发送数据的时候,应用将数据交给应用层,应用层根据协议为其添加一个 应用层协议头(Application Header, AH) 得到应用层的数据,然后传到传输层,再在应用层数据的前面添加一个 传输层协议(Transporation Header, TH) 得到传输层数据报,并继续往下传递,如下图所示。
其中AH是应用层协议头,TH是传输层协议头,IH(IP Header)是网络层协议头,在数据链路层,为其添加帧头(Frame Header, FH)和帧尾(Frame Tail, FT),封装成物理层对应的数据帧,并最终通过物理层以比特流的方式发送到网络上,在接收端收到封包后,再一层一层地把数据拆开(剥洋葱中……(´-灬-‘) ),去掉相应的协议头,并最终将数据交给相对应的应用程序进行处理。
网络协议的安全问题
互联网设计之初的使用目的是用于科学研究,其基本假设就是节点的诚实性;但由于计算机网络的广泛使用,这种假设在今天已经无法成立,因此可能导致各种各样的攻击。
这些攻击主要针对两方面的缺陷:
- 协议设计的缺陷,这种攻击会一直存在,直至该协议更新;
- 协议实现的缺陷,这种攻击会随着软件的更新而消除
这里我们主要讨论利用协议设计的缺陷 的攻击,也即假消息攻击。
- 假消息攻击是指利用网络协议设计中的缺陷,通过发送伪造的数据包达到欺骗目标、从中获利的目的的攻击手段。
常见的假消息攻击主要是以下几类。
下面自底向上对各种威胁进行介绍。 其中数据链路层和物理层也被合并称为网络接口层
网络接口层的威胁
最常见的网络接口层技术是以太网
- 采用星型拓扑结构
- 使用 集线器 和 交换机 连接网络节点
集线器
物理层设备,单位为比特,直接将信息广播给所有接口,没有任何机密性可言。
交换机
根据交换机表来决定把到达的帧发送到哪个端口,通过自学习功能来建立交换机表,因为不采用广播的方式发送数据所以降低了被窃听的风险。但,如果①帧的目的MAC地址为广播地址(FF-FF-FF-FF-FF-FF)或②帧的目的MAC地址在交换机表中查不到对应的表项,就会广播该帧。
交换机毒化攻击 原因:交换表的空间是有限的,新的“MAC地址——端口”映射对的到达会替换旧的表项。 操作:
- 攻击者发送大量的具有不同伪造源MAC地址的帧
- 由于交换机的自学习功能,这些新的“MAC地址—端口”映射对会填充整个交换机表,而这些表项都是无效的
- 交换机完全退化为广播模式,攻击者达到窃听数据的目的。
地址解析协议(ARP)的威胁
ARP协议的作用是,将IP地址映射为MAC地址,而将MAC地址映射为IP地址的为反向地址解析协议(RARP)
ARP协议的运作主要是基于ARP表,每个在局域网上的IP节点都有ARP表,ARP表实际上就是局域网上一些节点的IP/MAC地址映射。
<IP address; MAC address; TTL>
- TTL (Time To Live): 映射地址的失效时间(典型为20分钟)
通常来说,ARP协议的运作方式 为:
- A想发送分组给B,A知道B的IP地址
- 假设B的MAC地址不在A的ARP表中, A广播包含B的IP地址的ARP查询包
- 目的MAC地址= FF-FF-FF-FF-FF-FF
- 在局域网上的所有机器都能收到ARP查询
- B收到ARP包,回给A一个带有B的MAC地址的包(包单播unicast发送给A的MAC地址)
- A缓存IP-to-MAC地址对在ARP表中,直到信息过期(timeout)
因为主动的应答会被视为有效信息被A主机接受,所以常见的ARP攻击过程 如下:
- 攻击者在局域网网段发送虚假的IP/MAC对应信息,篡改网关MAC地址,使自己成为假网关
- 受害者将数据包发送给假网关(攻击者)
- 假网关(攻击者)分析接收到的数据包,把有价值的数据包记录下来(比如QQ以及邮箱登录数据包)
- 假网关再把数据包转发给真正的网关
发生ARP欺骗的原因:
- ARP协议设计之初没有考虑安全问题,所以任何计算机都可以发送虚假的ARP数据包。
- ARP协议的无状态性。响应数据包和请求数据包之间没有什么关系,如果主机收到一个ARP响应却无法知道是否真的发送过对应的ARP请求。
- ARP缓存需要定时更新,给攻击者以可乘之机。
ARP欺骗的危害:
- 嗅探
- DOS
- 中间人攻击
ARP欺骗的局限性:
- ARP欺骗只能被用于局域网(也就是说黑客必须已经获得局域网中某台机子的访问权限。)
IP层协议的威胁——IP假冒攻击(IP Spoofing)
根据IP协议,路由器只是根据IP分组的目的IP地址来确定该IP分组从哪一个端口发送的,而不关心该IP分组的源IP 地址。基于该原理,任意节点均可以构造IP分组,即使其源IP地址并非当前结点的IP地址,该IP分组仍然能够顺利到达目的结点,即IP假冒攻击(IP Spoofing)
IP假冒攻击主要用于两类网络攻击:
- 拒绝服务攻击DOS
- 避免被追踪而受到惩罚,构造针对同一目的IP 地址的IP 分组,而源IP 地址为随机的IP地址。接收方把这类包作为合法协议包进行处理从而占用接收方的大量资源,直至无法接收新的请求,导致拒绝服务攻击。
- 目前因为服务器性能强大,直接通过单个主机构造DOS可能性很小,更常见的方式是通过僵尸网络(Botnet)构造大规模分布式拒绝服务攻击(DDOS)
- 基于IP地址认证的网络服务攻击 假冒可信的IP 地址而非法访问计算机资源
防范IP假冒攻击的方法:
- 入口/出口过滤
- 入口过滤:通过设置一个网络的网关,配置网关过滤源IP地址非法的IP分组可以在一定程度上防范IP假冒攻击。对于进入网络的IP分组,如果其源IP属于该网络,则认为是非法的IP分组。
- 出口过滤:反之,对于传出网络的IP分组,如果其源IP地址不属于当前网络,则认为是非法的IP分组。
- IP回溯技术
- 原因:实际网络环境中很少应用入口/出口过滤,因为 ① 不是所有网络设备都支持入口/出口过滤功能;② 开启入口/出口过滤功能会影响网络的性能。
- IP回溯技术能回溯一个IP分组到其所在的网络,从而能够追踪攻击者到其所在的网络,给攻击者造成一定的威慑,如随机包标记技术。
传输层协议的威胁
TCP
TCP协议头部格式
TCP连接的特点
- 全双工连接 该连接的两端有两条彼此独立、方向相反的传输通道
- 面向连接 通信双方在开始传输数据前,必须通过“三次握手”的方式在二者之间建立一条逻辑上的链路(虚电路),用于传输数据。
- 可靠性
- 自动分片
- 保证传送给应用层的数据顺序是正确的
- 自动过滤重复的封包
- 确认-重传确保数据包可靠到达
- 面向字节流 将应用程序和网络传输相分割,为流传输服务提供了一个一致的接口
TCP面临的安全威胁
- SYN Flooding 攻击
- ACK Flooding 攻击
- 序列号预测攻击
- LAND攻击
下面依次对这四种安全威胁进行介绍。
SYN Flooding 攻击
特点:
- 针对TCP/IP协议的薄弱环节进行攻击;
- 发动攻击时,只要很少的数据流量就可以产生显著的效果;
- 攻击来源无法定位;
- 在服务端无法区分TCP连接请求是否合法。
防御措施:
- 在防火墙上过滤来自同一主机的后续连接。
- 采用SYN Cookie,无法防范全连接拒绝服务
ACK Flooding 攻击 主机接收到带有ACK状态的数据包,需要检测数据包所包含的连接四元组是否存在,如存在需要检查数据包状态数据是否合法。
序列号预测攻击 攻击者通过猜测序列号,在TCP会话中插入自己构造的数据包
LAND攻击 构造一个SYN包,其源地址和目标地址都被设置成某一个服务器地址;导致接收服务器向它自己的地址发送SYN-ACK消息,结果这个地址又发回ACK消息并创建一个空连接;每一个这样的连接都将保留直到超时;
UDP
UDP协议头部格式
UDP协议特点
- 无连接
- 不可靠
- 不保序
UDP面临的安全威胁
UDP假冒 UDP假冒的本质是IP假冒攻击,即攻击者可以构造UDP数据包,其源IP地址为某个可信节点的IP地址,通过这种方式向服务器发起请求,从而触发服务器的某些操作。如果攻击者能够窃听UDP应答包,则攻击者能够从这样的攻击行为中获得所需的信息。
UDP劫持 UDP劫持攻击本质上也是UDP假冒攻击,如图所示,可信客户端发起UDP请求后,攻击者假冒服务器发出UDP应答,这种应答有可能造成错误的结果。虽然服务器的应答也能到达客户端,但是如果客户端的操作已经出发,则可能会造成损失。
应用层协议的威胁
域名服务协议(DNS)
DNS:将域名和IP地址相互映射的一个分布式数据库
- DNS劫持攻击
- DNS缓存毒化 攻击者掌控有一个自己的域(attack.net)和一个已被攻陷的DNS服务器(ns.attack.net)。攻击者通过查询www.attack.net,迫使本地域名服务器A和ns.attack.net通信,并使ns.attack.net回复针对www.attack.net的查询,同时通过区域传送(zone transfer)的方式将错误的或篡改过的DNS信息(如,www.google.com = 91.91.91.91)返回给本地域名服务器A。当其他用户向域名服务器A查询www.google.com时,服务器会返回91.91.91.91。
- DNS ID欺骗
- DNS协议基于无状态的UDP,因此任何攻击者都可以发送伪造的响应包给请求者,而请求者无法判断该包是否合法。
- 如果攻击者能够窃听到该DNS请求,比如攻击者和被攻击者在同一局域网,则攻击者能够获得DNS查询的ID号,从而可以构造合法的响应包,而其中的域名解析内容则是由攻击者来任意确定的。
- 基于DNS的DDOS攻击 攻击者利用僵尸网络发送大量伪造的查询请求至DNS服务器。这些查询请求包的源IP地址被设置为受害者的IP地址,因此DNS服务器会把响应信息发送给受害者。大量的响应信息会导致被攻击者的处理能力被占用,从而形成DOS
超文本传输协议(HTTP)
HTTP是一个应用层协议,设计用于分布式的、协同的和超媒体的信息系统。是一个通用的无状态协议。
HTTP协议面临的安全威胁
- 钓鱼攻击 HTTP没有考虑用户认证,也就是说,用户并不能确定远端服务器的真实身份。
- 跨站脚本攻击(XSS)
电子邮件协议
常见电子邮件协议:
- SMTP:主要负责底层的邮件系统如何将邮件从一台机器传至另外一台机器
- POP:目前的版本为POP3,POP3是把邮件从电子邮箱中传输到本地计算机的协议
- IMAP:目前的版本为IMAP4,是POP3的一种替代协议,提供了邮件检索和邮件处理的新功能
- S/MIME:支持邮件加密的传输协议
电子邮件协议的安全
传输安全
存储安全
发送者身份确认
接收者已收到确认
邮箱炸弹攻击