网络安全复习
计算机网络安全,也称“网络安全”,是指计算机网络中的硬件资源和信息资源的安全性,它通过网络信息的产生、存储、传输和使用过程来体现,包括网络设备的安全性和网络信息的安全性。其是否安全通过可用性、保密性、完整性、不可抵赖性、可控制性来评估。
计算机网络概述
a) 计算机网络结构和组成,典型的网络体系结构;网络协议及封装协议;IPv4地址及端口
计算机网络结构和组成:
主机:连接在网络上的计算机和非计算机设备
计算机网络:简单定义为有通信信道连接的主机和网络设备的集合,方便用户共享资源和通信;
通用定义为凡将地理位置不同的、并具有独立功能的多个计算机系统通过通信线路和设备连接起来、以功能完善的网络软件实现网络中资源共享的系统。
计算机传输文件的必须工作:
- 计算机之间存在一条传输数据的通路
- 发起通信的计算机必须将数据通信的通路激活,即发出指令保证数据可以在通路上正确发送和接受。
- 告诉网络如何识别和接收数据。
- 发起通信方必须确认对方计算机是否准备好接收数据
- 发起通信方必须确认对方计算机的问题管理系统是否做好接受文件的准备
- 两台计算机文件格式不兼容,至少一台计算机应该完成格式转换
- 可靠的措施避免差错和意外,保证对方收到正确的文件
计算机网络中,每层都有各自的传送数据单位,这个数据单位因为是协议之间交换的,故称协议数据单元
| 层 | 协议数据单元 |
| :--------: | :----------------: |
| 应用层 | 用户数据、用户信息 |
| 传输层 | 数据段(报文) |
| 网络层 | 分组或包 |
| 数据链路层 | 帧 |
| 物理层 | 位 |
分组交换技术:
+ 工作原理:在发送端先把较长的报文划分成较短的、固定长度的数据段。数据段前添加首部构成分组。
#### **IPV4地址**:
+ 概览
+ Internet上的主机至少拥有一个地址。
+ 任何两台主机的IP地址不能相同,但是允许一台主机拥有多个IP地址。
+ IP地址的划分经过三个阶段:分类的IP地址、子网的划分和无分类编址。
+ 分类IP地址结构及类别
+ IP地址由32位二进制数,即4个字节,与硬件没有关系,也称逻辑地址
+ IP地址由网络号和主机号两个字段组成,也叫两级IP地址结构
+ 先按IP地址中的网络号找到网络,再按主机号找到主机
+ IP地址不只是计算机代号,同时指出计算机所属网络
+ IP地址划分为5类,即A类到E类
+ 保留地址:特殊的地址格式
+ 网络地址:主机号全0,用来指明单个网络的地址,它不会出现在目的地址中
+ 10.0.0.0(A类)
+ 175.89.0.0(B类)
+ 201.123.45.0(C类)
+ 直接广播地址:主机号全1,网络号不为0,表示一个物理网络上的所有主机。
+ 此时包的一次发送将到达一个特定网络上所有的计算机
+ 有线广播地址:IP地址的32位都为1时为有限广播地址。它不会出现在源地址中。
+ 有线广播指一个本地物理网的一次广播
+ 本机地址:IP地址的32位全为0。不会出现在目的地址中。
+ 子网和子网掩码:
+ 两级IP地址缺点:
+ 地址空间利用率低
+ 每个物理网络分配一个网络号会使路由表过大,降低网络性能
+ 在IP地址中增加一个subnet-id字段,使两级IP地址结构变为三级的IP地址结构,也叫划分子网。
+ 子网号subnet-id是从主机号中“借用”的若干位
+ 每个子网都有自己的网络地址
+ IP地址和物理地址:
+ 在IP数据报的首部既有源地址IP地址也有目的IP地址
+ 在通信中路由器只根据目的的IP地址进行路由选择
+ 一个路由器至少有两个IP地址和两个MAC地址
+ 路由器的MAC地址不会出现在IP数据报中
+ 物理网络的数据链路层看到的只是MAC帧
+ IP数据报被封装在MAC帧中
+ 不同网络MAC首部会变化
#### **端口**:
+ 端口是传输层的概念。端口号是按照应用进程的功能对应用进程实行的标识,长16位
+ 端口号分两类:
+ 熟知端口号:数值一般在0~1023.当一个新的应用服务程序出现,必须为它指派一个熟知端口;
+ 如HTTP协议对应端口号80,SMTP对应25,FTP对应21
+ 一般端口:用来随时分配给请求应用服务的客户进程。
+ 每台主机对端口号独立编号,所以端口号只有本地意义
+ 通信过程中,采用端口号和IP地址绑定使用。端口号和IP地址绑定后形成的标识称为插口(Socket),表示为:
1 | Socket = (IP Address: Port Number) |
1 | TCP Connection::= (Socket1,Socket2) = ((IP1:Port1),(IP2:Port2)) |
- 网络安全是指网络环境下的信息系统中分布在主机、链路和转发节点中的信息不受威胁,没有危险、危害和损失。
- 引发网络安全问题的技术原因:
- 通信协议的缺陷:如SYN泛洪攻击、源IP导致欺骗攻击、地址接卸协议(ARP)欺骗攻击
- 系统漏洞
- 网路安全内涵:
- 基础理论
- 网络安全协议
- 网络安全技术
- 主机安全技术
- 安全标准
- 安全模型:安全模型以建模的方式给出解决安全问题的方法和过程
- 作用:
- 安全模型以建模的方式给出解决安全问题的方法和过程
- 描述构成安全保障机制的要素及要素之间的关系。
- 描述信息系统的行为
- 描述信息系统的运行过程
- 描述信息系统行为与安全保障机制之间的相互关系
- P2DR安全模型:
- 组成:
- 策略
- 防护
- 检测
- 响应
- 优点:
- 描述了策略、防护、检测和响应之间的相互关系
- 表明保障安全过程是一个不断调整防护措施、实时检测攻击行为并及时做出响应的动态过程。
- 表明需要提供相关的安全技术
- 给出了详细的安全信息系统的设计、实施过程
- 缺点:
- 没有清楚描述网络环境下信息系统的组成、结构和行为。
- 也没有描述出信息系统和安全保障机制之间的相互关系。
- 没有突出人员的因素和安全信息系统的运行过程
- 组成:
- IATF安全模型:

- 人员:核心
- 技术:基础
- 运行:实现过程
- P2DR与IATF区别:
- IATF突出了人员的因素,表明了人员在设计、实施、维护、管理和运行过程中的重要作用
- IATF该出了网络环境下信息系统的组成,根据功能将其分为四部分
- IATF针对每一部分提出响应的安全技术
- IATF采用纵深防御战略。
- IATF强调运行中安全功能的实现过程
- IATF强调基于信息系统安全寿命保障安全目标
- 作用:
网络攻击
a) 主要的定义及分类
定义
- 网络安全威胁指网络环境下的i西南西系统中分布在主机、链路和转发节点中的信息受到威胁,存在危险,遭受损失,信息系统无法持续正常提供服务。
- 网络攻击是指利用网络存在的漏洞和安全缺陷对网络中的硬件、软件及信息进行的攻击,其目的时破坏网路中信息的保密性、完整性、可用性、可控制性和不可抵赖性等安全特性,削弱、甚至瘫痪网络服务功能。
- 可分为主动攻击和被动攻击
- 被动攻击由于对网络和主机都是透明的,因此难以检测,指不会对网络传输的信息、网络状态和网络信息流模式产生影响的攻击行为。被动攻击一般只破坏信息的保密性。
- 嗅探攻击(主体)
- 非法访问
- 数据流分析
- 主动攻击是指会改变网络中的信息、状态和信息流模式的攻击行为,破坏信息的保密性、完整性和可用性。
- 篡改攻击
- 欺骗攻击
- 路由欺骗攻击时用伪造的路由项来该改变路由器中路由表的内容
- 拒绝服务攻击
- 重放攻击

- 被动攻击由于对网络和主机都是透明的,因此难以检测,指不会对网络传输的信息、网络状态和网络信息流模式产生影响的攻击行为。被动攻击一般只破坏信息的保密性。
b) 嗅探攻击,定义及原理
嗅探攻击
原理
- 终端A向终端B传输信息,信息还沿着终端A至黑客终端的传输路径传输
- A——>黑客的传输路径对A和B都是透明的。

后果
- 破坏信息的保密性
- 嗅探攻击是实现数据流分析攻击的前提
- 实施重放攻击
过程
集线器是广播设备
- 集线器接受MAC帧,通过过除接受端口以外的所有其他端口输出该MAC帧
- 若有黑客接入集线器,则A发给B的MAC帧同样发给了黑客终端。

交换机(注意和集线器的图示区别)
转发表中存在终端B对应的转发项,该转发项表明MAC地址为MAC B的终端连接在端口2上
A发送的源MAC地址为MAC A,目的MAC地址为MAC B的MAC帧到达交换机时,交换机只从端口2输出MAC帧
即使黑客终端与B连在同一个交换机,也无法接受MAC帧

如果转发表中没有MAC地址为MAC B的转发项,交换机完成的MAC帧A到B的传输过程与集线器完成的过程是一样的。
交换机转发表建立MAC地址为MAC B的转发项的前提:
- 终端B项交换机发送源MAC地址为MAC B的MAC帧
- 交换机的转发表中存在没有使用的存储空间
- MAC表(转发表)溢出攻击是指通过耗尽交换机转发表的存储空间,使得交换机无法根据接收到的MAC帧的转发表中添加转发项的攻击行为 + 黑客终端不断发送源MAC地址变化的MAC帧,如发送一系列源MAC地址分别为MAC1、MAC2...的MAC帧使得交换机转发表中添加MAC地址分别为MAC 1、MAC 2...的转发项,这些转发项耗尽交换机转发表的存储空间 + 当交换机接受到终端B发送的源MAC地址为MAC B的MAC帧时,由于转发表的存储空间已经耗尽,因此无法添加新的MAC地址为MAC B的转发项 + 导致交换机以广播方式完成MAC帧终端A至终端B传输过程

- 实现过程如下:该以太网结构式交换机以太网,因此,只有在各台交换机以广播的形式转发各个终端之间传输的MAC帧时,黑客终端才能嗅探到以太网中各个终端之间的传输的MAC帧。黑客终端需要实施MAC表溢出攻击,持续发送以随机产生的单播MAC地址为源MAC地址、广播MAC地址为目的MAC地址的MAC帧。导致交换机S1、S2、S3中的MAC表溢出,交换机S1、S2、S3以广播形式转发各个终端的MAC帧。
嗅探攻击防御:
- 对于集线器:需要防止黑客终端接入集线器
- 交换机:
- 需要防止黑客终端接入交换机
- 交换机需要有防御MAC表溢出攻击的机制
- 无线通信过程,嗅探攻击是无法避免的,此时需要对信息进行加密
c) 拒绝服务攻击原理/防御机制
拒绝服务攻击
概念:攻击者通过某种手段,有意的造成计算机或网络不能正常运转从而不能像合法用户提供所需服务或者使服务质量降低
- 服务:系统提供,用户使用受益
- 拒绝服务:任何对服务的干涉如果使得器可用性降低或失去可用性成为拒绝服务,如:带宽耗尽
- 攻击方式:消耗系统或网络资源;阻断访问路径;更改系统配置
- 攻击目标:主要以网站、路由器、域名服务器等网络基础设施
分类:
Dos(拒绝服务攻击);DDos(分布拒绝攻击)
按攻击方式:
- 资源破坏型Dos:耗尽资源
- 物理破坏型Dos:摧毁主机或网络节点
- 服务终止型Dos:攻击导致服务崩溃
- 按攻击是否针对受害者:
- 直接型Dos:
- 间接型Dos:
- 按攻击机制:
- 剧毒包型攻击:利用协议或软件漏洞发送异常数据包导致系统崩溃,对攻击者计算能力和网络带宽没有要求
- 风暴型拒绝服务攻击:发送大量数据包导致系统崩溃,“带宽攻击”
- 重定向攻击:修改网络参数攻击,
- 重定向目标是攻击者主机,“中间人攻击”
- 目标是不存在的主机,拒绝服务攻击
- 属性分类法
- 攻击静态属性
- 攻击动态属性
- 攻击交互属性
Dos攻击原理:
- 剧毒包Dos:也叫漏洞攻击或协议攻击
- WinNuke攻击
- 特征:以带外数据攻击目标端口,导致受害者处理带外数据时出现异常,从而使系统停止响应并显示蓝屏,也叫“带外攻击”、“蓝屏攻击”
- 被攻击端口:139、138、137、113、53
- Land攻击
- 特征:利用主机处理TCP连接请求的漏洞,构造特殊的TCP SYN包(第一步中用于发起TCP连接请求),该数据包的源地址和目标地址都被设置成受害者主机的IP地址,导致收到数据包的主机向自己回复TCP SYN+ACK消息,同时主机又发回自己一个ACK消息创建一个空连接。
- Ping of death攻击:
- 原理:利用协议实现时的漏洞,向受害者发送超长的Ping数据包,导致受害者系统异常早期路由器对包的最大尺寸有限制,如TCP/IP协议栈规定ICMP包不能超过64KB,当加载的数据大小超过64KB上限时,出现内存分配错误,导致接收方死机
- 别名:ssping
- 泪滴攻击
- 循环攻击
- 两个都会产生输出的端口建立连接,第一个的输出可能是第二的输入同时又作为第一个的输入,进而导致大量数据包产生,导致拒绝服务
- WinNuke攻击
- 风暴型Dos攻击:通过大量无用数据包占用资源达到拒绝服务目的,“带宽攻击”
- 直接风暴型攻击
- 反射攻击(DRDos):通过中间主机发起攻击
- 成功的根本原因:网络带宽和系统资源是有限的
- Dos攻击原理:攻击代理通常采用向目标主机发送大量的网络分组:
- TCP洪流:向目标主机发送大量设置不同标志位的TCP分组
- ICMP Echo请求/响应报文:向目标主机发送大量的ICMP分组
- UDP洪流:向目标主机发送大量各种基于UDP协议的应用协议包,
- 应用层协议:向目标直接或间接发送大量特定应用协议数据包,常用攻击的协议又HTTP/HTTPS、NTP
- 剧毒包Dos:也叫漏洞攻击或协议攻击
DDos攻击原理:
- 攻击者寻找可入侵主机
- 控制主机,用于放置后门等
- 选出满足建立网络需要的主机,放置编译好的守护程序,对控制的计算机发出命令
- 黑客发送控制命令给主控机,启动对目标系统的攻击
- 主控机发送攻击信号给被控机,被控机开始对目标系统发动攻击
- 目标系统被无数伪造的请求淹没,无法对合法用户进行响应。
防御机制:
- 防御难点:
- 不容易定位攻击者的位置
- 依据DDoS攻击工具的特征检测:
- 特定端口
- 标志位
- 特定数据内容
- 统计检测
- 主机网络连接特征检测
- 根据异常流量检测
- Dos工具产生的网络通信信息有控制信息和攻击时的网络通信。根据以下异常现象检测:
- 大量目标主机域名解析
- 极限通信流量
- 特大型的ICMP和UDP数据包
- 不属于正常连接通信的TCP和UDP数据包
- 数据段内容只含文字和数字的数据包
- Dos工具产生的网络通信信息有控制信息和攻击时的网络通信。根据以下异常现象检测:
- 拒绝服务攻击响应技术:从原理上有四种:丢弃恶意分组、源端控制、追溯发起攻击端、路由器动态检测流量并控制
- 分组过滤:对特定的流量进行过滤
- 源端控制:通常参与DoS攻击的分组的源IP地址都是假冒的,源端过滤可以减少或者消除假冒IP现象
- 追溯:假定存在源地址假冒,试图在攻击的源头控制攻击:
- IP追溯:路由器标记路过的分组
- ICMP追溯:路由器概率抽样标记转发分组
- 链路测试:攻击进行时才有效
- 路由器动态检测和控制:在路由器上动态检测和控制Dos攻击引起的拥塞,攻击分组可能来源于多个流,但是存在某种共同特征。
- 对抗风暴型DDos:流量清洗
- 针对互联网数据中心或云服务的中大型用户
- 对进入IDC或云的数据流量进行实时监控,及时发现包括DDos攻击在内的异常流量
- 在不影响业务的前提下,清洗掉异常流量
- 通常分成3个部分,攻击检测、攻击缓解、监控管理
- 攻击检测:对用户业务流量进行逐包检测,发现隐藏的非法流量。技术有静态漏洞攻击特征检查、动态规则过滤、异常流量限速、用户流量模型异常检测等
- 攻击缓解:将可疑流量从原始网络路径中重定向到净化清洗中心上进行恶意流量的识别和剥离,还原出的合法流量被回注到原网络、
- 监控管理:对流量清洗系统的设备进行集中管理配置
- 拒绝服务攻击时最容易实现,同时也是最难防护的攻击手段
- 防御难点:
d) 截获攻击,Mac地址欺骗攻击;Arp欺骗攻击
截获攻击
- 攻击原理:截获攻击需要改变信息传输路径,使得信息传输路径经过黑客终端,黑客终端截获信息后,可以继续转发该信息、转发篡改后的信息、重复多次转发该信息。截获攻击是主动攻击。
- 黑客首先需要改变终端A至终端B的传输路径,将终端A至终端B的传输路径变为终端A——->黑客终端———>终端B,使得终端A传输给终端B的信息必须经过黑客终端
- 黑客终端截获A传出给B的信息,可进行如下操作:
- 篡改信息后发给B
- 保持信息一段时间后再发给B或反复多次转发同一信息给B
- 保持信息,不转发给B

- 攻击后果:
- 获得用户的私密信息:如获取Telnet访问服务器使用的用户名和口令
- 篡改信息
- 实施重放攻击:即使用户采用密文方式传输信息,黑客终端截获某个IP分组后,可以实施重放攻击 + 如用户通过Web服务器进行网上购物,黑客截获IP分组,根据分组所属TCP连接和连接另一端的服务器类型,确定用于电子购物的IP分组; + 黑客终端可以不立即转发该IP分组,而是在一段时间后再转发,造成服务器的信息错误
MAC地址欺骗攻击
MAC帧的正常转发过程:
当交换机在转发表中为连接在以太网的每一个终端建立转发项后,能够以单播的方式实现以太网中任何两个终端之间的MAC帧传输过程。

eg:终端C至终端A的MAC帧传输路径为:
终端C——>S3.端口1——>S3.端口2——>S2.端口2——>S2.端口1——>S1.端口3——>S1.端口1——>端口A
交换机S2通过转发表中MAC地址为MAC A的转发项
确定S2.端口2到S2.端口1的交换过程 交换机S1通过转发表中MAC地址为MAC A的转发项
确定S1.端口3到S1.端口1的交换过程
MAC地址欺骗攻击流程:
接入以太网,黑客终端通过连接到交换机S3的端口3接入以太网
- 将自己的MAC地址修改为终端A的MAC地址MAC A
发送以MAC A为源MAC地址、以广播地址为目的地址的MAC帧
黑客完成上述操作,以太网中各个交换机的转发表如图,


黑客操作前 黑客操作后
转发表中MAC地址为MAC A的转发项将通过黑客终端的交换路径作为目的MAC地址为MAC A的MAC帧的传输路径
如果此时终端B向终端A发送MAC帧,该MAC帧传输路径如下:
终端B——>S1.端口2——>S1.端口3——>S2.端口1——>S2.端口2——>S3.端口2——>S3.端口3——>黑客终端
防御机制:
- 阻止黑客终端接入以太网
- 阻止黑客终端发送的伪造的MAC地址为源MAC地址的MAC帧进入以太网
DHCP欺骗攻击
- 攻击原理:
- 终端访问网络前需要配置网络信息,如IP地址。子网掩码。默认网关地址和地域服务器地址
- 网络信息可以手动配置,也可以通过DHCP自动从服务器获取
- 终端网络信息(包括电脑、手机)一般都是自动获取:当网络中存在多个DHCP服务器时,终端随机选择一个能够提供DHCP服务的服务器为其提供网络信息,为攻击提供可能
- 黑客可以伪造一个DHCP服务器,并将其接入网络
- 伪造的DHCP服务器中将黑客终端的IP地址作为默认网关地址
- 当终端从伪造的DHCP服务器获取错误的默认网关地址后,所有发送给其他网络的IP分组将首先发送给黑客终端

- 攻击过程:

- 正常DHCP服务器网络设置在局域网LAN 2内,DHCP服务器的IP地址为192.2.2.5,路由器R通过配置中继地址192.2.2.5,将其他局域网内终端发送的DHCP发现和请求消息转发给DHCP服务器
- 如果黑客终端想要截获所有LAN 1内终端发送给其他局域网的IP分组,可以在LAN 1内连接一个伪造的DHCP服务器,伪造的DHCP服务器配置的子网掩码和可分配的IP地址范围与正常DHCP服务器为LAN 1配置的参数基本相同
- 但是将默认网关地址设置为黑客终端地址,如图示的192.1.1.253;如果LAN 1内终端通过伪造的DHCP服务器获得网络信息,其中的网络默认网关地址时黑客终端地址,从而使得LAN 1内终端将发送给其他局域网的IP分组先传输给黑客终端,黑客终端复制IP分组,再将分组转发给真正的默认网关,如图的192.1.1.254,以此使得LAN 1内终端感觉不到发送给其他局域网的IP分组已经被黑客终端截获
- LAN 1内终端发现DHCP服务器过程中,往往选择先向其发送的DHCP服务器作为其配置网络信息的DHCP服务器。由于伪造的DHCP服务器位于LAN 1内,因此,LAN 1内终端一般情况会先收到伪造的DHCP服务器提供的信息,选择伪造的DHCP服务器
- 防御机制:
- 关键时不允许伪造的DHCP服务器接入局域网
ARP欺骗攻击
ARP(地址解析协议):已知一个机器的IP地址,找出其对应的硬件地址
- 作用:从网络使用的IP地址解析出数据链路层使用的硬件地址
- 每一个终端都有ARP缓冲区,一旦完成地址解析过程,ARP缓冲区中建立IP地址与MAC地址的绑定项。如果已经存在,租用绑定项中的结果作为解析结果,不在进行地址解析过程
- 如果终端A已经获取终端B的IP电子地址IP B,需要解析出终端B的MAC地址,A会广播如图的ARP请求报文。请求报文给出终端A的IP地址IP A与终端A的MAC地址MAC A的绑定项,同时给出终端B的IP地址IP B。

- 该广播报文被以太网中的所有终端接收,所有终端的ARP缓冲区中记录下终端A的IP地址IP A和MAC地址MAC A的绑定项,只有终端B向终端A发送ARP响应报文,其中给给出终端B的IP地址IP B与MAC地址MAC B的绑定项。
- 终端A将绑定项记录在ARP缓冲区中。当以太网中的终端需要向终端A发送MAC帧时,可通过ARP缓冲区IP A与MAC A的绑定项直接获得终端A的MAC地址。
攻击原理:
- 由于以太网中终端无法鉴别ARP请求报文中给出的IP地址与MAC地址绑定的真伪。只是将绑定项记录在ARP缓冲区
- 如果终端A想要截获其他终端发送给终端B的IP分组,在发送的ARP请求报文中给出IP地址IP B和MAC地址MAC A的绑定项
- **其他终端在ARP缓冲区中记录IP B与MAC A的绑定项**
- 如果需要向IP地址为IP B的节点传输IP分组
- 该IP分组被封装称以MAC A为目的MAC地址的MAC帧
该MAC帧经过以太网传输最后到达A,而不是B(取决于MAC地址到底是谁)

- 黑客终端分配的IP地址为IP C,网卡的MAC地址为MAC C,而终端A分配的IP地址为IP A,网卡的MAC地址为MAC A。
- 正常情况下,路由器ARP缓冲区中应该将IP A和MAC A绑定在一起,当路由器需要转发目的IP地址为IP A的IP分组时,或者通过ARP地址解析协议过程解析出IP A对应的MAC地址(ARP缓冲区中没有IP A对应的MAC地址),或者直接从ARP缓冲区检索IP A对应的MAC地址时
- 将IP分组封装称以MAR R为源MAC地址。MAC A为目的MAC地址的MAC帧,然后,通过连接路由器和终端的A的以太网将该MAC帧发送给终端A
- 当黑客终端希望通过ARP欺骗来截获发送给终端A的IP分组时,首先广播一个ARP请求报文,并在请求报文中将终端A的IP地址IP A和自己的MAC地址MAC C绑定在一起,路由器接收到该ARP请求报文后,在ARP缓冲区记录IP A和MAC C的绑定项
- 当路由器需要转发目的地址为IP A的IP分组时,将该IP分组封装成以MAC R为源MAC地址、MAC C为目的地址的MAC帧,这样连接路由器和终端的以太网将MAC帧传输给黑客终端,而不是终端A;通常黑客在拦截前,会通过攻击瘫痪掉终端A
防御机制:
- 终端没有鉴别ARP请求报文能力,需要以太网交换机提供鉴别ARP请求和响应报文中IP地址与MAC地址绑定项真伪的能力,只需转发正确的IP地址和MAC地址绑定项的ARP请求
e)路由欺骗攻击,原理及过程
生成树欺骗攻击
工作原理:
- 交换机工作原理要求不允许交换机之间出现环路
协议允许设计一个存在冗余链路的网络,但在网络运行时,通过阻塞某些端口使整个网络没有 环路。
交换机标识符:
| 交换机优先级 | 交换机MAC地址 |
| :—————: | :—————-: |
| | |- 所有交换机中交换机标识符值最小的交换机为根交换机
攻击过程:
防御:
- 不允许黑客终端参与网络生成树建立过程
路由欺骗攻击
- 攻击原理:

- 如果黑客终端想要截获路由器R1传输给网络W的IP分组,向路由器R1发送一项伪造的路由项,该伪造的路由项将通往网络W的距离设置为0。路由器R接收到该路由项,选择黑客终端作为下一条,并计算出路由表中目的网络为网络W的路由项

- 黑客接收到IP分组后,再将分组发给路由器R2,使得IP分组最终可以到达网络W,以此欺骗路由器R1和该IP分组的发送端

- 路由器R1通过路由协议生成正确的路由表,A发送B的IP分组:
- A——>路由器R1——>R2——>R3——>B
- 如果黑客想要截获LAN 1终端发送给LAN 4的IP分组,连接在LAN 2的黑客终端发送一个黑客终端IP地址为源地址、组播地址为224.0.0.9为目的地址的路由消息,其伪造了一项黑客终端直接和LAN 4连接的路由项。
- 与黑客连在同一网络的R1和R2接收路由消息,对R1来说,由于伪造路由项给出的到达LAN 4的距离最短所以路由表发生错误改变,终端A发送的IP分组最后从R1错误的转发给黑客,而不是正确路径的R2
- 防御机制:
- 路由器接收消息先鉴别发送端,对消息进行检测
- 确定路由消息是由认证的相邻路由器发送且未被篡改
IP与路由安全
a) IPv4协议,主要的安全问题
IPV4协议
- 安全性分析:
- 没有认证机制:
- 没有源地址认证:源地址假冒
- 没有完整性认证:篡改
- 没有加密机制:
- 无机密性:监听应用数据
- 泄露拓扑等信息:网络侦察
- 无带宽控制:
- DDoS攻击
- 没有认证机制:
b)IPSec安全策略,运行模式
IPsec
端到端的确保IP同通信安全:认证、加密及密钥管理;为IPv6制定,支持IPv4
IP数据包通过IPsec隧道进行加密传输,有效保证数据在不安全的网络环境中传输的安全性。
标准内容:

- IPsec通过允许系统选择所需的安全协议(AH或ESP),决定服务使用的加密或认证算法,提供任何服务需要的密钥来提供IP级的安全服务
- RFC4301列出的安全服务包括:访问控制、无连接完整性、数据源认证、拒绝重放包、保密性等
安全策略:基础是应用于每一个从源端到目的端传输的IP包上的安全策略,主要有两个交互的数据库安全关联数据库(SAD),安全策略数据库(SPD)
- 安全关联SA:指定由通信主机识别的安全属性;单个SA保护单一方向数据
- 一个SA:发送端和接收端之间的单向逻辑连接,为数据流提供安全服务;经过同一SA的数据流得到相同的安全服务;AH或ESP
- SA对:双向安全数据交换
- 同时支持AH、ESP且双向:需要两队SA
- 一个SA参数:
- 安全参数索引(SPI):32位,接收方根据SPI选择合适的SA
- IP目的地址:仅单播
- 安全协议标识:AH/ESP
- SAD定义了所有SA相关的参数:
- 安全参数索引
- 序列号计算器
- 序列计数器溢出
- 反重放窗口
- AH信息
- ESP信息
- 安全关联的生存期
- IPsec协议模式:隧道、传输或通配符
- 最大传输单元路径

- 安全策略SP:指定对IP数据包提供何种保护,并以何种方式实施保护
- 根据源IP、目的IP、出入数据来标识
- 用户设定自己的安全策略的粒度:IP地址,传输层协议等
- 操作:Discard、Bypass、Protect
- SPD中每一条SP包括:
- 本地IP
- 远程IP
- 下一层协议
- 名称
- 本地或远程端口


- 安全关联SA:指定由通信主机识别的安全属性;单个SA保护单一方向数据
运行模式:传输模式和隧道模式
区别:

| | 传输模式SA | 隧道模式SA |
| :——: | :—————————————————————————————: | :—————————————————————————————: |
| AH | 对IP载荷和IP首部的选中部分、IPv6的扩展首部进行认证 | 对整个内部IP包(内部首部和IP载荷)和外部IP首部的选中部分、外部IPv6的扩展首部进行认证 |
| ESP | 对IP载荷和跟在ESP首部后面的任何IPv6扩展首部进行加密 | 加密整个内部IP包 |
| AH+ESP | 对IP载荷和ESP首部后面任何的IPv6扩展首部进行加密,同时对IP载荷进行认证,但不认证IP首部 | 加密认证整个内部IP包 |传输模式:常用在两台主机的安全通信
- 隧道模式(默认):常用于网关之间,或在网关的终端站
c) AH协议,定义及结构
AH协议(报文验证头协议)
- AH和ESP关注的问题:
- 加密、认证的范围(即对IP协议报文的哪些部分进行保护)
- 传输模式和隧道模式在保护对象、性能、适用场景等方面的差别
- 与NAT的兼容性问题
- AH:IP包的数据完整性。、数据来源认证和抗重放攻击服务
- 完整性:采用HMA算法:HMAC-MD5(必须)、HMAC-SHA1(必须)
- 抗重放:序列号
- AH首部:

- AH运行模式:传输模式
- 隧道模式
- 抗重放攻击:序列号+滑动窗口机制
- 完整性校验:
- 算法:在SA中指定
- 哪些字段参与计算:
- 如何处理IPv4和IPv6首部中的三种字段:不变字段,可变但可预测字段、可变不可预测字段
- IP数据包头:只包括在传输期间不变的字段或接收方可预测的字段,其余不定的字段全置为0
- AH:出“鉴别数据”字段外其他的所有字段,“鉴别数据”字段被指为0
- IP数据包中的所有上层协议数据
- 完整性校验值ICV
- IPv6基本首部三种字段
- IPv6扩展首部三种字段
d) ESP协议,定义及结构
ESP协议(报文安全封装协议)
除了提供IP包的数据完整性、数据来源认证和抗重放攻击服务,还提供数据包加密和数据流加密服务
- 完整性:采用HMAC算法;ESP认证的数据范围要小于AH协议
- 加密:对称加密,必须支持:DES-CBC和NULL算法(认证和加密不能同时为NULL)
ESP首部:
运行模式:传输模式
隧道模式
ESP传输模式与隧道模式对比:
- 隧道模式对整个IP包进行认证和加密,因此可以提供数据流加密服务,而传输模式由于IP包首部不被加密,因此无法提供数据流加密服务。但是隧道模式由于增加了一个新IP首部,降低了链路的带宽利用率
- 传输模式适合保护支持ESP协议的主机之间的通信连接,而隧道模式则在包含防火墙或其他用于保护可信内网不受外网攻击的安全网关的配置中比较有效
与NAT兼容问题:
- AH与NAT不兼容
- ESP不对IP包首部进行认证,因此不存在和NAT不兼容的问题。如果通信的任何一方具有私有地址或在安全网关后面,仍然可以用ESP来保护其安全,因为NAT网关或安全网关可以修改IP首部中的源/目的IP地址来确保双方的通信不受影响。
AH与ESP比较
| | ESP和AH比较 | |
| :——————: | :————-: | :———————: |
| 安全性 | AH | ESP |
| 协议号 | 50 | 51 |
| 数据完整性校验 | 支持 | 支持(不验证IP头) |
| 数据源验证 | 支持 | 支持 |
| 数据加解密 | 不支持 | 支持 |
| 抗重服务 | 支持 | 支持 |
| NAT-T(nat穿透) | 不支持 | 支持 |IPsec体系结构文档中指出,当两个传输模 式SA被绑定,在同一个端对端流中允许AH和ESP两种协议,但认为只有先ESP协议 再实施AH协议才合适,为什么?(大概率会考)
- 由于AH需要对整个IP数据包进行认证,如果先AH再使用ESP,ESP的头部和尾部会改变数据包的长度;另外,ESP的填充字段也会改变数据包的长度,造成AH认证失败。所以应该先使用ESP

e) 网络密钥交换,定义及结构
网络密钥交换
- IPsec密钥管理方式:
- 手动:手动分配,适用于规模小,节点配置稳定环境
- 自动:系统通过IKE协议自动为SA创建密钥,适用于大型分布式系统
- IKE(密钥交换协议)
- IKEv1:默认的IPsec自动型密钥管理协议是ISAKMP/Oakley:
- ISAKMP:互联网安全关联和密钥管理协议
- Oakley密钥确定协议,基于Diffie-Hellman算法的密钥交换协议
- IKEv1:默认的IPsec自动型密钥管理协议是ISAKMP/Oakley:
- 密钥确定协议:
- Diffie-Hellman
- IKE改进:
- 采用Cookie机制来防止拥塞攻击
- 允许双方协商得到一个组,相录与Diffie-Hellman密钥交换的全局参数
- 使用现时值来阻止重放攻击
- 允许交换Diffie-Hellman的公钥值
- 对Diffie-Hellman交换进行身份认证,阻止中间人🐓
- Cookie机制:
- Cookie交换要求各方在初始消息中发送一个伪随机数Cookie,并要求对方确认
- Cookie的产生必须满足:
- Cookie必须依赖与特定的通信方,从而防止攻击者得到一个正在使用的真正的IP地址和UDP端口的Cookie时,也无法用该Cookie向目标主机发动攻击
- 除了发起实体以外的任何实体都不可能产生被它承认的Cookie,即在产生和验证Cookie时要使用本地的秘密信息,而且不能从Cookie中推出秘密信息
- Cookie的产生和验证必须尽快完成
- 一种产生方法:对以下信息进行Hash运算,取前64位:
- 源IP地址+目的IP地址+UDP源端口+UDP目的端口+随机数+当前日期+当前时间
- 组(Group)
- 每个组包含两个全局参数的定义和算法标识
- 防重放攻击:IKE使用现时值(nonce)来反重放攻击,即使用本地产生的伪随机数。
- 身份认证:
- 数字签名:使用散列值签名进行身份认证
- 公钥加密:利用公钥对用户身份参数加密
- 对称密钥加密:通过带外机制得到密钥,利用密钥加密
- 密钥交换:
- IKE消息格式
- Diffie-Hellman
SA的四种分组
区块链安全
a) 区块链结构,链式结构、哈希链、区块结构
区块链结构
区块链是一种按时间顺序将数据区块以顺序相连的方式组合成的链式数据结构。区块链构建了一种分布式的价值传输网络,允许缺乏信息的个体之间进行价值互联和数据共享。
类型
- 公有链/非许可链:所有人可访问,完全去中心化,任何人任何时间都可以访问系统读数据确认交易并竞争交易记录修改权。
- 许可链:
- 私有链:严格限制的参与节点,指定的阻止控制区块数据写权限
- 联盟链:由多家机构管理,管理机构运营的多个节点,只有这些特定节点可以有读写交易数据
- 其他:每个参与节点都需要得到许可。
核心技术:
- 哈希函数
- 数字签名
- 网路技术:TCP/IP、路由器技术、对等网络P2P技术
结构概述:
在比特币中,区块包含区块链网络的交易,矿工节点确认通过基于工作量证明协议确认区块有效性并添加于链上。
区块分叉现象:
- 指由于网络传输延迟,区块链矿工节点可能会在同一时间点产生两个或多个有效的区块
硬分叉现象:
- 软件升级使得新老软件不兼容,旧节点不愿意接收新节点产生的区块所形成的分叉现象。
软分叉现象:
- 当新共识规则发布后,在区中心化架构中节点不一定要升级到新的公式规则,新老节点最终都接受新老规则产生出的区块并相互认可,如新节点算力占优,则经过分支博弈后网络中节点最后认同新链的区块
比特币使用Merkle Tree的数据结构把交易打包成“块”
区块是容纳了多笔交易的数据单元,每个区块包括两个数据结构,分别是区块头和区块体
区块具体结构:
| 字段 | 描述 | 大小 |
| :———: | :————————————————————: | :—————————————————————————————: |
| 区块头 | 记录本区块的摘要信息,包含前一区块的哈希值 | 80字节 |
| 区块大小 | 记录本区块的具体大小,以字节表示 | 4字节 |
| 交易计数 | 记录本区块所包含的交易总数 | 1-9可变整数 |
| 交易 | 记录每笔交易的详细信息 | 可变大小(每个区块所能存放的交易数量有限,与网络交易验证和区块传播速度有关) |
区块的链接起始于一个称为创世区块的特殊区块,后续区块随着矿工节点解决密码学难题而产生
目标值:

- 目标值越小,满足目标值的解的个数越少,哈希值的计算越难。
激励机制:区块奖励(块奖励+交易费)
- 块奖励:每210000个块,奖励减半,每四年减半一次
- 交易费:交易的发布者为激励矿工付出额外的交易费用
交易是区块体最基本的单元,包括输入、输出、交易哈希值、版本号、时间戳数据域,输入和输出分别指向一个未花费的地址单元,UTXO。
- 输入:上一笔交易未被花费的输出
- 输出:标识一笔转到新地址的UTXO
- 版本号:标识交易遵循哪一种交易验证原则
区块链上的用户通过花费其可以解锁的UTXO进行交易,交易过程满足:
- 交易的所有输出UTXO数值总和必须等于所有输入UTXO数字的总和
- 交易的输入必须为未被花费的UTXO
- 一个UTXO在一次交易必须被完全花费
区块链的发展:4个阶段
- 区块链1.0:数字货币的启蒙时代
- 主要包括比特币、莱特币等在内的数字加密货币项目,仅能支持非图灵完备的脚本语言
- 区块链2.0:智能合约
- 以太坊,支持用户在分布式平台搭建去中心化应用
- 区块链3.0:演升应用平台
- 增加政务、智慧医疗、数字知识产权等;针对数字资产保护技术的集合;实现高并发、低能耗的并行分布式数据账本
- 区块链1.0:数字货币的启蒙时代
b)区块链主要协议,共识协议、地址生成
区块链三元悖论
- 高性能瓶颈与关键技术
- 大规模节点或大规模数据量场景下,性能急剧下降
- 高性能的公式算法设计
- 智能合约执行引擎的效率优化
- 采取新型共识机制提高共识效率和安全性
c) 节点运行机制,P2P点对点网络
P2P点对点网络
- P2P对等式网络,又称点对点技术,减低以往路传输中的节点,以降低资料遗失的风险;每个用户端既是一个节点,也有服务器的功能,任何一个节点无法直接找到其他节点,必须依靠其用户群进行信息交流
- 网络层是系统节点之间进行数据交互的组成部分。目前大多数区块链网络层采用的是分布式P2P组网架构,依赖P2P组网架构,区块链节点可以在无需依赖可信的第三方节点完成通信;其主要功能是为共识层提供可靠、对等和安全的网络结构和通信环境
- 攻击方式:日蚀攻击、BGP劫持攻击、窃听攻击和拒绝服务攻击
- 传播机制:指建立连接的节点之间进行广播通信,针对传播机制常发起交易延展攻击
- 验证机制:保证节点在传播和写入的区块信息的真实性
- 网络层安全目标:匿名性、抗DoS攻击、拓扑结构隐藏
- 常见攻击方式:拒绝服务攻击、女巫攻击
- 拒绝服务攻击:故意耗尽被攻击对象资源,使其无法正常提供服务
- 防御手段:
- 增强协议容忍性
- 流量监控及系统扫描
- 端口过滤
- 防御手段:
- 女巫攻击:通过少量节点伪装出大量的节点身份标记来欺骗在区块链网络中的其他节点,把数据备份到少量的真实节点中,从而只需要控制这些节点就能破化系统的数据备份功能
- 攻击类型:
- 直接攻击:诚实节点直接收到Sybil节点的影响
- 间接攻击:与Sybil节点直接通信的节点攻击诚实节点
- 防御手段:
- 向不同成员赋予不同权力
- 增加身份创建成本
- 身份验证:直接和间接
- 攻击类型:
- 拒绝服务攻击:故意耗尽被攻击对象资源,使其无法正常提供服务
传输层安全
a) 传输层协议,UDP协议、TCP协议
传输层协议
- 传输层提供应用数据安全传输服务的协议,包括:安全套接字(SSL)、传输层安全协议(TLS)和SSL/TLS VPN
- TCP/IP体系结构中包含两个重要的传输层协议:
- 用户数据报协议UDP
- 传输控制协议TCP
- S/MIME:安全/多用途,Internet邮件扩展
- Kerberos:可信的第三方认证协议
- SMTP:简单的邮件传输协议
- HTTP:超文本传输协议
UDP协议

- UDP是无连接通信协议,提供的是不可靠的端到端数据传输服务
- UDP位于IP层之上。应用程序访问UDP层,然后使用IP层传送数据报。IP包的数据部分就是UDP数据报。IP层的报头指明了源主机和目的主机地址,而UDP层的报头指明了主机上的源端口和目的端口,UDP传输的段由8个字节的报头和有效载荷字段构成
- 源端口:源端口号,2字节,由于UDP协议提供的是不可靠的数据传输服务,所以不需要应答,因此UDP的源端口号是可选的,不用设置为0
- 目的端口
- 长度:UDP用户数据报的长度(包括首部和数据部分在内的总的字节数)
- 检验和:防止UDP用户数据包在传输中出错,可选
- UDP使用报头中的校验值来保证数据的安全
- 校验值传递到接收方之后,还需要重新计算(IP数据报的检验和只检验IP数据报的首部)
- UDP协议可用于风暴型DDoS攻击
TCP协议

与UDP协议不同,TCP协议是面向链接的,提供可靠、有序的端到端数据传输服务
- 来源链接端口
- 目的链接端口
- 序列号
- 确认号
- 数据偏移
- 保留
- 标志符
- 窗口
- 校验和
- 紧急指针
- TCP连接有关的控制比特:
- 确认位(ACK):当ACK=1时,确认号字段才有效;当ACK=0时,确认号无效
- 复位号(RST):当RST=1时,表明TCP连接中出现严重差错,必须释放连接,然后重新建立传输连接
- 同步位(SYN):在连接建立时用来同步序号。当SYN=1而ACK=0时,表明这是一个连接请求报文段。对方同意建立连接,则响应报文段中SYN=1和ACK=1
- 终止位(FIN):用来释放连接。当FIN=1,表明报文发送完毕,需要释放

- 安全性分析:
- 网络扫描:利用TCP连接建立过程进行端口扫描,从而获得目标主机上的网络服务状态
- Dos
- TCP会话劫持攻击:TCP协议对数据包没有加密和认证措施,因此攻击者可以监听到TCP报头内同,或伪造TCP报文,实施TCP会话劫持攻击
b) SSL体系结构、协议模式,握手协议
SSL体系结构
- 安全套接字(SSL)协议,为Web浏览器与Web服务器之间安全交换信息提供支持
- 两种使用模式
- 一种是将SSL作为传输层之上、应用层之下的一个独立协议子层,对用户程序完全透明;
- 将SSL嵌入到特定的应用里,如绝大多数浏览器和Web服务器中都实现了SSL协议
- SSL利用TCP协议为上层应用提供端到端的安全传输服务,包括认证和加密

- SSL分两个子层,下面一层是SSL’记录协议,为高层协议,如HTTP协议;提供基本的安全服务
- 上面一层包括三个协议:SSL握手协议、SSL密码变更规格协议和SSL报警协议;对SSL信息交换进行管理
- 有了SSL,应用层数据不再直接传递给传输层,而是传递给SSL层,由SSL层对应用层收到的数据加密,并增加SSL首部
- eg:

- eg:
- 几个协议的关系:
- 使用握手协议协商加密和MAC算法以及保密密钥、身份认证
- 使用密码变更规格协议变更连接上使用的密码机制
- 使用记录协议对交换的数据进行加密和签名
- 使用报警协议定义数据传输过程中出现的问题并通知相关方
- 两个重要概念:
- 连接:一种能够提供合适服务类型的传输通道;每天连接都与一个会话关联
- 会话:指客户与服务器之间的一种关联;目的是避免为每次建立连接而进行复杂的密码参数协商过程
- 任何一对通信实体之间可以有多条安全连接,理论上也允许一对实体之间同时有多个会话,实际很少出现
- 每个会话有多种状态;一旦会话建立,就进入当前操作状态。在握手协议执行期间,会进入读挂起状态和写挂起状态。握手完成,挂起状态又回到当前操作状态
- SSL保障了机密性、完整性、认证性
SSL记录协议
- 记录协议在SSL握手协议完成客户端和服务器之间的握手过程后使用,即客户端和服务器完成双方身份鉴别并确定安全信息交换使用的算法后执行;保密性和完整性;
- 报文格式:

- 首部包括4个字段:内容类型、主版本、次版本和压缩后的长度
- 处理过程:

- 记录协议接收到一个要传送的应用消息后,将其分段为块、压缩、添加MAC(消息认证码)、加密,最后加上SSL首部,并将得到的最终数据单元交TCP协议发送
- 接收方对接收的数据执行相反的操作:解密、完整性验证、解压、报文重组,最后将重组完成的数据交上层用户
- SSL采用的是链式加密的方法:采用对称加密算法机密消息(SSL记录协议),用公开密码算法交换对称加密算法的对称密钥(SSL握手协议)
SSL密码变更规格协议
- 协议又一个仅包含一个字节且值为1的消息组成,使得连接从挂起状态改变到当前状态,用于更新此连接使用的密码组
- 为什么不作为其它协议(如握手协议)的一 条报文而要独立成一个协议?
- 因为SSL规定通信双方知道他们发送或收到更改密码规格协议信息时才能开始使用前面已经协商好的密码套件
Alert报警协议
- 当客户端和服务器端发现错误,需要通过报警协议向对方发送报警消息
- 同应用数据一样,SSL报警协议报文同样交由SSL记录进行压缩和加密处理后发送
- 格式:
- 第一个字节表示报警类型:1表示报警;2表示致命错误;如果是2,则关闭SSL连接,会话中的其他连接继续
- 第二个字节包含报警信息
握手协议
- SSL握手协议是客户端和服务器用SSL连接通信时的第一个子协议,在开始传输上层应用数据之前使用。
- 该协议允许服务器和客户端相互验证,协商加密和MAC算法以及加密密钥,用来保护在SSL记录协议中发送的数据
- 协议格式:

- 类型:消息类型码
- 长度:消息长度字节数
- 内容:与消息相关的参数
- 客户端与服务器之间建立逻辑连接的初始交换过程包括四个阶段

- 阶段一:建立安全连接请求,包括协议版本,会话标志,密码构件,压缩方法和初始随机数
- 阶段二:服务器发送证书,密钥交换,请求证书。服务器发出问候消息阶段结束信号
- 阶段三:如果收到证书请求,客户端发送证书。客户端发送密钥交换数据,也可以发送证书验证消息
- 阶段四:变更密码构件,结束握手协议
密钥生成
- 共享密钥是利用安全密钥交换为此会话建立的一个一次性48字节的值,生成过程分为:
- 交换预备主密钥
- 双方计算主密钥
- 得到主密钥后,从共享主密钥中计算出密钥参数
SSL安全分析
- 安全隐患:
- 预主密钥——->主密钥———>SSL会话密钥
- 能否保证随机数质量也是SSL的安全隐患
- 有可能遭受中间人攻击
- 利用SSL的攻击无法被IDS检测和FW过滤
- web服务器使用SSL时,吞吐量下降
- 不能保证Web浏览器和服务器自身安全
- 增强安全性:
- 增强主密钥的保密性:
- 预主密钥的口令加密方法和硬件加密方法
- 提高随机数的质量
- 提高证书CA的可靠性
- 增强主密钥的保密性:
c) TLS结构与协议模式,TLS与SSL差异
TLS
- 传输层安全TLS
- TLS与SSL的差异:
- 版本号:TLS 1.0的主版本号为3,次版本号为1,而SSL 3.0的主版本号为3,次版本号为0;
- 消息认证码:TLS的MAC与SSL的MAC有两点不同:
- TLS使用RFC2104中定义的HMAC算法
- TLS使用称为“PRF”的伪随机函数
- 报警码:TLS继承了SSL中定义的所有报警码(除no_certificate),同时还定义了新的报警码
- 密码套件:TLS不支持Fortezza密钥交换、加密算法
- 客户端证书类型
- CertificateVerify消息
- Finished消息
- 密码计算:计算主密钥的方式不同
- 填充:SSL中,填充后的数据长度正好是分组加密算法中分组长度的最小整数倍。而TLS可以时分组长度的任意整数倍。
SSL/TLS VPN
- 简称SSL VPN
- IPsec VPN有不足之处:
- 无法实现基于用户的授权
- 可能泄露内部网络结构
- 利用基于SSL/TLS的VPN可以很好解决远程终端访问内部网络的问题
- 实现过程:

- 与单纯SSL/TLS相比SSL VPN利用TCP以及SSL对TCP会话的保护,可实现对基于TCP。UDP、IP的应用的保护
- 与IPsec VPN相比,可以提供更细粒度的访问控制
- 实际应用中,IPsec VPN与SSL VPN应用场景不同
- IPsec VPN在网络层实现加密通信,主要应用于将远程终端或分支机构网络于机构内部网络安全连接起来
- SSL VPN用于远程终端通过Web浏览器访问内部网络中的应用服务器。
DNS安全
a) DNS服务,定义及原理
b) DNS运营机制

- DNS采用客户服务器方式:每一个域名服务器不但能够进行一些域名到IP地址的转换,而且还必须具有连向其他域名服务器的信息
- 当一个应用进程需要将主机名映射为IP地址时,该应用进程就成为域名系统DNS的一个客户,并将待转换的域名放在DNS请求报文中,以UDP数据报方式发给本地域名服务器
- 本地域名服务器在查找域名后,将对应的IP地址放在回答报文中返回
- 应用进程获得目的主机的IP地址后即可进行通信
- 域名服务器不能回答该请求,则此域名服务器就暂时成为DNS中的另一个客户,直到找到能回答该请求的域名服务器为止。
- 域名服务器也叫域名解析器;对于用户来说,解析器是服务端,对于域名服务器而言,解析器又是客户端
- DNS有两种方式:递归和迭代
- DNS客户端一般都是递归服务器:
- 服务器之间采用迭代方式
- 循环与迭代结合:
- 递归查询举例:
- 浏览器缓存——->系统hosts文件——->本地DNS解析器缓存——->本地域名服务器——->根域名服务器——->主域名服务器——->下一级域名域名服务器 客户端——->本地域名服务器(递归)本地域名服务器——->DNS服务器的交互查询是迭代查询
- DNS客户端一般都是递归服务器:
c) 域名系统,主要流转流程
域名系统
- 域名系统DNS:作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网
- 将难记的IP地址映射为容易记忆的主机名称
- DNS使用UDP端口53
- 域名解析就是域名到IP地址的转换过程,由DNS服务器完成;用户可以通过输入IP访问,也可以输入域名访问
- 除域名解析,现代DNS还有:
- 应用层路由:DNS把用户的访问指向离用户最近的那个CDN服务器节点,实现负载均衡
- CDN(内容分发网络):构建在现有网络基础上的智能虚拟网络,依靠边缘服务器和中心平台,降低网络拥塞
- CDN的关键技术:内容存储和分发技术
- DNS时CDN的基础:除指向外也为服务器提供了负载均衡的功能,相当于DNS实现了应用层路由
- 邮件交换记录MX:一种资源记录类型,用于指定负责处理发往收件人域名的邮件服务器;MX记录允许设置一个优先级决定多个邮件服务器使用哪个
- 简单邮件传输协议(SMTP):根据MX记录值决定邮件的路由过程
- 作为信任的基础:放伪造邮件、验证证书申请者身份
- 作为公钥基础设施PKI:防止CA在未经网站所有者授权的前提下,签发非法证书,防止假冒网站和中间人攻击
d) DNS主要安全威胁
DNS建立在互相模型的基础上,是一个完全开放的协作体系,没有信息保护和认证机制,也没有对各种查询进行准确识别,对网络基础设施和核心骨干设备的攻击没有足够重视;主要表现为:协议脆弱性、实现脆弱性、操作脆弱性;
协议脆弱性:在协议设计之初对假设条件考虑不充分或条件发生改变或设计错误导致安全问题;由于DNS协议缺乏必要的认证机制,客户无法确认接收消息的真实性和权威性,基于名字的认证过程并不能起到真正的识别作用,而且接收的应答报文中往往有额外的附加信息;此外,DNS的绝大部分通信使用UDP,数据报文易丢失、劫持和欺骗
面临的主要威胁是域名欺骗和网络通信攻击:
- 域名欺骗:域名系统接收或使用来自未授权主机的不正确信息,事务ID欺骗和缓存投毒,攻击者伪装成客户可行DNS服务器,然后将伪造的恶意信息反馈给用户。
最常见的域名欺骗攻击是针对DNS数据报首部的事务IP进行欺骗:
- 客户端会使用该ID作为响应数据报是否与查询数据包匹配的判断依据,通过伪装DNS服务器提前向客户发送与查询数据包ID相同的响应报文,只要该伪造的响应报文在真正报文之前到达客户端,就可以实现域名欺骗
- ID获取主要采用:网络监听和序列号猜测
- 常使用ARP地址解析协议欺骗的方法进行监听,要求攻击者和客户处在同意网络环境中
- 由于DNS查询报文的事务ID字段为2个字节,其值只能是0~65535
缓存投毒:为减少带宽消耗和客户端延迟,名字服务器会将资源记录缓存起来,在数据生存期(TTL)可以直接查询;
- 攻击者将“污染”的缓存记录插入到正常的DNS服务器的缓存记录中,所谓污染的缓存记录是指DNS解析服务器中域名所对应的IP地址不是真实的地址,而是攻击者篡改的地址,对应着攻击者控制的服务器
- 攻击者利用DNS协议中缓存机制对附加区数据不做任何检查的漏洞,欺骗名字服务器缓存具有较大TTL的虚假资源记录达到长期欺骗客户端的目的


- 有效TTL时段内,虚假记录会扩散到其他名字服务器:
- 攻击具有隐蔽性:不用消耗太多网络资源
- 采用间接攻击方式使得客户端和服务端受到攻击
- 使用貌似合法的记录污染缓存
- 缺乏相应的反污染机制
- 网络通信攻击:针对DNS的网络通信攻击主要是DDoS攻击、恶意网址重定向和中间人攻击
- 针对DNS的拒绝服务器攻击通常为:
- 攻击DNS系统本身,包括对名字服务器和客户端进行攻击
- 利用DNS系统作为反射点🐓其他目标
- 针对DNS系统客户端的DoS攻击,主要通过发送否定回答显示域名不存在,制造黑洞效应,对客户端造成事实上的DoS攻击
- 反射式攻击中,攻击者利用域名服务器作为反射点,用DNS应答对目标进行泛洪攻击。DNS承担域名和IP地址映射任务,从而收到大量亲贵导致崩溃
- 在恶意网址重定向和中间人攻击过程中,攻击者伪装成客户可信任实体对通信过程进行分析和篡改,将客户请求重定向到假冒网站或与请求不符的的目的地址窃取信息。


- DNS解析路径劫持:
- 第一类劫持方法是请求转发,用户的DNS请求将直接定向到其他的服务器,此时,权威域名服务器只收到来自这个服务器的请求,用户指定的公共DNS服务器完全排除在外
- 第二类劫持方法是请求复制,用户的DNS请求被网络中间设备复制,一份去往原来目的地,一份去往劫持者使用的解析服务器,此时,权威域名服务器将收到两个相同的查询
- 第三类劫持方法是直接应答,用户发生的请求同样被转发,但解析服务器并未进行后续查询而是直接返回一个响应,此时,权威域名服务器没有收到任何查询,但是客户端收到解析结果
安全威胁:
- 协议脆弱性:
- 网络通信攻击:DNS域名解析过程劫持;劫持解析路径,并伪装成指定的DNS应答
- 实现脆弱性:
- DNS软件,BIND漏洞和缺陷带来威胁;缓冲区溢出漏洞;
- 操作脆弱性:
- 人为操作或配置错误带来的安全隐患:域名配置攻击、域名注册攻击和信息泄露
- 协议脆弱性:
安全多方计算
a) 主要技术路线分类
- 主要三种技术路线:基于密码学的安全多方计算、联邦学习、可信硬件TEE

b) 基础秘密分享协议,三元加法分享、三元乘法分享等
基础密码分享协议
- Shamir门限:秘密s分成n份,每个参与方获得一份;拆分时规定至少t个参与者聚在一起才可以恢复s,少于t个参与者无法恢复
- 原理:任意一个t-1次多项式函数,已知t个点就能求解
- 过程:

- 恢复:

三元加法分享
- Replicated2-out-of-3算数秘密分享:
三元乘法分享



- 每个计算方要知道三份秘密份额(z1,z2,z3)中的两份
- P1将自己份额z1发给P2
- P2将自己份额z2发给P3
- P3将自己份额z3发给P1



Web安全
a) 万维网,主要的体系架构
- 万维网:简称Web,采用链接的方式使互联网用户能够非常方便地从因特网上的一个站点访问另一个站点‘基于超文本传输协议的、全球性的、动态交互的、跨平台的分布式图形信息系统
- 主要漏洞:SQL注入漏洞、跨站脚本漏洞
体系结构:

- 万维网以客户服务器方式工作
- 用户计算机上运行的客户程序叫做浏览器
- 万维网文档所驻留的计算机称为万维网服务器或Web服务器
- 客户程序通过HTTP/HTTPS协议向服务器程序发出请求,服务器程序向客户程序返回万维网文档
- 在一个客户程序主窗口显示的万维网文档称为页面
- Web应用程序,一般使用C++,JSP,PHP等语言开发
- Web应用程序把处理结果以页面的形式返回给客户端
- Web应用的数据一般保存在数据库中
跨站被动攻击:跨站请求伪造(CSRF),跨站脚本攻击(XSS)和HTTP消息头注入攻击

- Domain表示Cookie发送对象服务器的域名,不指定则Cookie只发送到生成它的服务器,发送范围小,安全性高。
b) SQL注入攻击及防范,典型的SQL注入过程
- 结构化查询语言SQL
- SQL注入攻击通过构建特殊的输入作为参数传入Web应用程序,这些输入大多是SQL语法里的一些组合,通过执行SQL语言进而执行攻击者想要的操作。
- SQL注入攻击以网站数据库为目标,利用Web应用程序对特殊字符过滤不完全的缺陷,通过把构造的SQL命令插入Web表单递交或输入域名或页面请求的查询字符串中,欺骗服务器执行恶意的SQL命令,最终非法访问网站数据库、篡改内容、绕过认证等。
典型SQL注入过程
```
url链接 + and 1=1
http://26.28.249.154/asd/wyqy/and 1=11
2
3
4
+ ```
url链接 + and 1=2
http://26.28.249.154/asd/wyqy/and 1=2两次结果不同,可能存在注入漏洞
判断是否是sysadmin(SA)权限,构造注入语句:
```
http://26.28.249.154/asd/wyqy/and 1=(select is_srvrolemember(‘sysadmin’))1
2
3
4
5
6
7
+ 页面正常返回说明链接数据库权限是sysadmin
+ 增加一个test用户(以该靶场为例)
+ ```
http://26.28.249.154/asd/wyqy/execmaster..xp_cmdshell'net user test test/add'--增加到管理员组
http://26.28.249.154/asd/wyqy/execmaster..xp_cmdshell'net localgroup administrators test /add'+ 即注入信息为: +1
2
3
4
5
6
7
#### <font color=pink>**注入原理**</font>
+ 构造永真逻辑:
+ ```
SELECT * FROM USERS WHERE SSN=' 1234' OR '1'= '1 '1234’ OR ‘1’ = ‘1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
+ 结果返回数据库的每一个用户
+ 攻击流程:
+ Web程序提供了用户输入的表单
+ 攻击者通过填写表单数据发起攻击
+ Web程序通过SQL语句的形式将攻击递交给数据库
+ 数据库执行SQL语句,将执行结果加密后返回给应用程序
+ 应用程序揭秘数据,将结果发送给用户,即攻击者
+ 注入检测:
+ <img src="https://qitiantaile.oss-cn-guangzhou.aliyuncs.com/blog/image-20230702184708091.png" alt="image-20230702184708091" style="zoom:67%;" />
+ 整型参数的SQL注入漏洞探测:
+ 在abc.asp中SQL语句大致如下:select * from 表名 where 字段 = YYhttp://xxx.xxx.xxx/abc.asp?p=YY’1
2
3
4
5
+ 以下三种情况全满足,则abc.asp一定存在SQL注入
+ **在URL中附加单引号:**select * from 表名 where 字段=YY’1
2
3
+ 此时abc.asp中的SQL语句变成http://xxx.xxx.xxx/abc.asp?p=YY and 1=11
2
3
4
5
+ 测试结果:abc.asp运行异常
+ **在URL链接中附加字符串and 1=1:**http://xxx.xxx.xxx/abc.asp?p=YY and 1=21
2
3
4
5
+ 测试结果:abc.asp运行正常,且与初始运行结果一致
+ **在URL链接中附加字符串and 1=2:**select * from 表名 where 字段 = ‘YY'1
2
3
4
5
6
7
+ 测试结果:abc.asp运行异常
+ 字符串型参数SQL注入漏洞检测:
+ 在abc.asp中SQL语句大致如下:http://xxx.xxx.xxx/abc.asp?p=YY’1
2
3
4
5
+ 以下三种情况全满足,则abc.asp一定存在SQL注入
+ **在URL链接中附加一个单引号**http://xxx.xxx.xxx/abc.asp?p=YY’ and '1'='11
2
3
4
5
+ 测试结果:运行异常
+ **在URL链接中附加字符串‘and ‘1’=‘1:**http://xxx.xxx.xxx/abc.asp?p=YY' and '1'='2 ``` + 测试结果:运行异常1
2
3
4
5
+ 测试结果:运行正常,且与初始结果相同
+ **在URL链接中附加字符串‘and ’1‘=’2:**
防御
- 由于SQL注入攻击的Web应用程序运行在应用层,对于绝大多数防火墙,这种攻击是合法的,解决应该依赖于完善编程:
- 过滤单引号:过滤特殊字符
- 在构造动态SQL语句时,一定使用类安全的参数编码机制
- 禁止将敏感性数据以明文存放在数据库中
- 遵循最小特权原则:只给访问数据库的Web应用所需的最低权限,撤销不必要的公共许可
- 尽量不要使用动态拼装的SQL
- 应用异常信息应该给出尽可能少的提示
- 防御XSS(跨站脚本攻击):
- 对Web程序的所有输入进行过滤,对危险HTML字符编码
- 用户培训
- 防止访问已知的恶意网站
- 执行手工或者自动化代码扫描,确定并消除潜在的XSS漏洞















