前言:快考试了,做篇期末总结,都是重点与必考点。
题型:简答题(4×5分)、协议分析题(2×10分)(给一个报文或工作流程,分析存在的问题)、应用题4-5题(60分)(范围:Web应用、电子邮件PGP收发过程、DNS、SSL)
IPsec(IP Security)
Q:上面的IP数据报有什么安全问题,如果有解决方案是什么?
IPsec 协议族 :
IPsec操作的基础是应用于每一个从源端到目的端传输的IP包上的安全策略。
IPsec安全策略主要由两个交互的数据库(SAD和SPD)来确定
一个SA由以下参数确定:
32
位,接收方根据SPI选择合适的SA处理接收到的数据包SAD定义了所有SA相关的参数,每个SA:
SPD中的每一条SP包括:
主机SPD示例:
协议 本地 IP 端口 远程 IP 端口 动作 备注 UDP 1.2.3.102 500 * 500 Bypass IKE ICMP 1.2.3.102 * * * Bypass 错误消息 * 1.2.3.102 * 1.2.3.0 / 24 * Protect: ESP 传输模式 加密内部网流量 TCP 1.2.3.102 * 1.2.4.11 80 Protect: ESP 传输模式 加密到服务器的流量 TCP 1.2.3.102 * 1.2.4.11 443 Bypass TLS: 避免双重加密 * 1.2.3.102 * 1.2.4.0 / 24 * Discard D M Z 的其它流量 * 1.2.3.102 * − * Bypass Internet \begin{array}{|c|c|c|c|c|c|c|} \hline \text { 协议 } & \text { 本地 IP } & \text { 端口 } & \text { 远程 IP } & \text { 端口 } & \text { 动作 } & \text { 备注 } \\ \hline \text { UDP } & 1.2 .3 .102 & 500 & \text { * } & 500 & \text { Bypass } & \text { IKE } \\ \hline \text { ICMP } & 1.2 .3 .102 & \text { * } & \text { * } & \text { * } & \text { Bypass } & \text { 错误消息 } \\ \hline \text { * } & 1.2 .3 .102 & \text { * } & 1.2 .3 .0 / 24 & \text { * } & \text { Protect: ESP 传输模式 } & \text { 加密内部网流量 } \\ \hline \text { TCP } & 1.2 .3 .102 & \text { * } & 1.2 .4 .11 & 80 & \text { Protect: ESP 传输模式 } & \text { 加密到服务器的流量 } \\ \hline \text { TCP } & 1.2 .3 .102 & \text { * } & 1.2 .4 .11 & 443 & \text { Bypass } & \text { TLS: 避免双重加密 } \\ \hline \text { * } & 1.2 .3 .102 & \text { * } & 1.2 .4 .0 / 24 & \text { * } & \text { Discard } & \mathrm{DMZ} \text { 的其它流量 } \\ \hline \text { * } & 1.2 .3 .102 & \text { * } & - & \text { * } & \text { Bypass } & \text { Internet } \\ \hline \end{array} 协议 UDP ICMP * TCP TCP * * 本地 IP 1.2.3.1021.2.3.1021.2.3.1021.2.3.1021.2.3.1021.2.3.1021.2.3.102 端口 500 * * * * * * 远程 IP * * 1.2.3.0/241.2.4.111.2.4.111.2.4.0/24− 端口 500 * * 80443 * * 动作 Bypass Bypass Protect: ESP 传输模式 Protect: ESP 传输模式 Bypass Discard Bypass 备注 IKE 错误消息 加密内部网流量 加密到服务器的流量 TLS: 避免双重加密 DMZ 的其它流量 Internet
AH协议功能:IP包的数据完整性、数据来源认证和抗重放攻击服务
AH首部:
AH运行模式:
完整性检验:
算法:在SA中指定
96
表示鉴别数据默认字段长,由HMAC计算出完整校验值后再被截短,取前96位。
哪些字段参与计算?如何处理IPv4和IPv6首部中的三种字段:不变字段,可变但可预测字段,可变不可预测字段?
0
;0
;抗重放攻击:序列号 + 滑动窗口机制
AH无法与NAT兼容,因为AH认证的是整个IP包,如果修改IP地址(NAT功能),则无法通过完整性检测。
ESP协议功能:除了提供IP包的数据完整性、数据来源认证和抗重放攻击服务,还提供数据包加密和数据流加密服务
ESP首部:
ESP传输模式:
ESP隧道模式:
ESP不对IP包首部(含选项字段)进行认证,因此不存在和NAT不兼容的问题。
ESP与AH对比:
安全性 | AH | ESP |
---|---|---|
协议号 | 50 | 51 |
数据完整性检验 | 支持 | 支持(不验证IP头) |
数据源认证 | 支持 | 支持 |
数据加解密 | 不支持 | 支持 |
抗重放服务 | 支持 | 支持 |
NAT-T(nat穿透) | 不支持 | 支持 |
Q:IPsec体系结构文档中指出,当两个传输模式SA被绑定,在同一个端对端流中允许AH和ESP两种协议,但认为只有先施ESP协议再实施AH协议才合适,为什么?
A:主要是性能上的考虑,由于解密处理需要大量占用CPU和内存,在通过认证(完整性验证)后再进行解密处理会更好一些,如果认证没有通过就不需要执行耗时的解密操作了。
IPsec支持以下两种密钥管理方式:
Diffie-Hellman回顾:
IKE对Diffie-Hellman的改进:
协商过程分成:
采用模式:
IKEv1交换过程:
简答题:简述IKEv1第一阶段中主模式和积极模式的区别
答:两种模式都有协商提议、密钥交换、身份认证的阶段。
主模式的第一阶段是协商密码,而积极模式第一阶段是协商提议、密钥交换、身份认证都包含。主模式需要6条消息,积极模式只需要3条消息。主模式在第三阶段(身份认证)是有加密保护的,而积极模式没有保护。
IKEv2交换过程:
Q:为什么要组合SA?
A:单个SA只能实现AH协议或ESP协议,而不能同时实现这两者。但在实际应用中,一些流量需要同时调用由AH和ESP提供的服务,某些流量可能需要主机间的IPsec服务的同时还需要在安全网关(如防火墙)间得到IPsec提供的服务。在这些情况下,同一个流量可能需要多个SA才能获得想要的IPsec服务。
提供特定IPsec服务集而组合在一起的SA系列称为“安全关联束(Security Association Bundle)”
IPsec在IP层对所有流量进行加密和/或认证,因此能够保护各种基于IP的应用
将IPsec应用于上述场景的实质就是构建基于IPsec的虚拟专用网(Virtual Private Network, VPN)
路由协议的脆弱性:
UDP协议可用于风暴型DDoS。
利用TCP协议三次握手的安全性分析:
端口扫描(TCP Connect扫描、TCP SYN扫描、TCP FIN扫描、Xmas扫描和Null扫描)
拒绝服务(DoS)攻击(TCP SYN Flooding)
TCP会话劫持攻击(第三方伪造身份)
Seq、Ack
正确,即可被正确接收。当得到入侵者构造的TCP数据包,协议会假设数据包是来源于TCP连接中另一方的合法数据包,并且发送响应包到(入侵者构造的数据包中设置的IP地址)。随后,原来的TCP连接会由于计数器不匹配而断开连接。Seq、Ack
,如果是旁路劫持还需猜测源端口号SSL利用TCP协议为上层应用提供端到端的安全传输服务,包括认证和加密
SSL几个协议之间的关系是:
SSL两个重要概念
任何一对通信实体(如客户和服务器上的HTTP应用)之间可以有多条安全连接,理论上也允许一对实体之间同时有多个会话,实际上很少出现
SSL保障的安全属性:
记录协议在SSL握手协议完成客户端和服务器之间的握手过程后使用,即客户端和服务器完成双方的身份鉴别并确定安全信息交换使用的算法后执行。作用是负责将用户数据进行加密传输。
记录协议对应用数据的处理过程:
操作:
说明:
协议由一个仅包含1字节且值为1的消息组成,使得连接从挂起状态改变到当前状态,用于更新此连接使用的密码组
当客户端和服务器发现错误时,需要通过告警协议向对方发送一个告警消息
SSL握手协议是客户端和服务器用SSL连接通信时使用的第一个子协议,在开始传输上层应用数据之前使用。
客户端与服务器之间建立逻辑连接的初始交换过程包括四个阶段
client_hello
非0
:更新参数/为当前会话创立新连接;0
:为新会话创立新连接server_hello
非0
(客户端):相同值;0
(客户端):新会话的值密钥交换方法:
服务器完成消息:表明服务器的HELLO和相关消息结束了。
此消息不是握手协议的一部分,而是使用修改密码规范协议发送的。
完成消息的作用:确认已经生成主密钥,验证前边所有握手消息完整性
至此,握手过程完成,客户端和服务器可以开始交换应用层数据了。
共享主密钥是利用安全密钥交换为此会话建立的一个一次性48字节的值,生成过程分两步:
两类密钥交换算法:RSA、Diffie-Hellman
计算主密钥:
客户和服务器使用相同的算法和参数计算出对称加密密钥(主密钥)和参数:
主密钥计算:
密钥分组计算:
生成密码参数:
计算过程步骤如下:
Mcs、Msc、Ecs、Esc、lVcs
(客户端初始向量)、和IVsc
(服务器初始向量)。SSL协议的安全性隐患:
1)预主密钥→master_secret→SSL会话密钥
2)能否保证随机数质量也是SSL的安全隐患。
3)有可能遭受中间人攻击。
4)利用SSL的攻击无法被IDS检测和FW过滤到。
5)Web服务器使用SSL时,吞吐量会显著下降。
6)不能保证Web浏览器和服务器自身安全。
增强SSL安全性:
IPsec VPN也有一些不足之处:
利用基于SSL/TLS的VPN可以很好解决远程终端访问内部网络时存在的上述问题(SSL/TLS VPN简称为SSL VPN)
应用场景:Web代理、端口映射、IP连接
除了域名解析外,现代DNS还具有:
域名欺骗:域名系统(包括 DNS 服务器和解析器)接收或使用来自未授权主机的不正确信息,包含事务 ID 欺骗和缓存投毒。
劫持例子:
黑客抢在根域名服务器之前答复递归DNS服务器,并且把它引导到了一个黑客搭建的权威DNS服务器上。
之后,递归DNS服务器会把黑客搭建的DNS服务器误认为是顶级DNS服务器大娃,并且记在小本本里。
于是,黑客接替了大娃的工作。当然,黑客也可以冒充其他权威DNS服务器,总之,葫芦娃中出了个叛徒。
DNS缓存:
网络通信攻击:针对 DNS 的网络通信攻击主要是DDoS攻击、恶意网址重定向和中间人(man-in-the-middle, MITM)攻击
劫持解析路径,并伪装成指定的DNS应答:
DNS 软件,BIND 的漏洞和缺陷无疑会给 DNS 系统带来严重的威胁,其缓冲区溢出漏洞一度占据 UNIX 及 Linux 操作系统相关安全隐患的首位。
由于人为操作或配置错误所带来的安全隐患:域名配置攻击、域名注册攻击和信息泄漏等
攻击目标网站域名注册服务提供商→修改目标网站域名记录→申请网站证书→伪装成目标网站
DNSSEC可以防止针对DNS系统的缓存投毒,以得到广泛支持的RFC4033-4035版本为例简要介绍DNSSEC的基本内容
DNSSEC中新增的四种类型的资源记录:DNSKEY
(DNS Public Key)、RRSIG
(Resource Record Signature)、DS
(Delegation Signer)、NSEC
(Next Secure)
DNSSEC新增的4种资源记录,这些记录的长度远远超过了最初的DNS协议标准规定的512字节,而要求DNS报文大小必须达到1220字节,甚至是4096字节。因此DNS服务器如果要支持DNSSEC,则首先需要支持扩展DNS机制(EDNS)
DNS保密性保护:DoT(DNS over TLS)和DoH(DNS over HTTPS)
Web应用体系结构潜在弱点:
Web应用程序功能与安全隐患的对应关系
HTTP协议安全问题:
HTTP协议是一种简单的、无状态的应用层协议
Cookie的安全问题:
为什么需要Cookie?
Cookie中包含了一些敏感信息,如用户名、计算机名、使用的浏览器和曾经访问的网站等,攻击者可以利用它来进行窃密和欺骗攻击
定义:利用Web应用程序对特殊字符串过滤不完全的缺陷,通过把精心构造的SQL命令插入Web表单递交或输入域名或页面请求的查询字符串中,欺骗服务器执行恶意的SQL命令,最终达到非法访问网站数据库内容、篡改数据库的数据,绕过认证、浏览或者编辑文件等目的。
例子:
"SELECT * FROM USERS WHERE SSN=‘" + ssn + "’“
SSN参数来自于用户的输入:
1234’ OR ‘1’=‘1
应用程序构造查询语句:
SELECT * FROM USERS WHERE SSN=‘1234’ OR ‘1’=‘1’
(永真逻辑)(此处是字符串型)整型参数时的SQL注入漏洞探测
通过输入:1 and 1=1
和1 and 1=2
判断是否进行正常回显,如果前者正常,后者不正常,说明是整型
字符串型参数时的SQL注入漏洞探测
通过输入:1’ and ‘1’=‘1
和1’ and ‘1’=‘2
判断是否进行正常回显,如果前者正常,后者不正常,说明是字符串型
SQLMAP是SQL注入的自动化探测工具
防御注入漏洞:
不当的服务器端输入检查,从而允许用户输入可被客户端浏览器解释的脚本命令。攻击者通过运行脚本进而实现用户session劫持等。
XSS是最普遍的Web程序安全问题。
对网页进行跨站脚本攻击探测:使用观察是否有弹窗。(可以选择的方案,也可以有其他方案)
反射式XSS:
储存式XSS:
DOM式XSS:
防御XSS:
‘<’ , ‘>’ → ‘<’ , ‘>’
‘(‘ , ‘)’ → ‘(’ , ‘)’
‘#‘ , ‘&’ → ‘#’ , ‘&‘
服务器端的HTTPS部署情况:
HSTS (HTTP Strict Transport Security)
基于SMTP、POP3/IMAP等协议的电子邮件系统没有采取必要的安全防护措施,导致:
安全措施:
PGP既是一个特定的安全电子邮件应用软件,也是一个安全电子邮件标准。
PGP最常用于安全电子邮件传输,但它也可以用于任何需要保证传输机密性、完整性和认证(不可否认性)的应用中。
☆ Q:签名、加密、压缩的顺序问题?
A:在PGP中,是对未压缩的邮件正文进行散列计算后,再对散列值进行签名。然后将邮件正文和签名拼接后进行压缩后加密。
在压缩之前进行签名的主要原因有两点:一是对没压缩的消息进行签名,可便于对签名的验证,如果在压缩后再签名,则需要保存压缩后的消息或在验证时重新压缩消息,增加了处理的工作量;二是由于压缩算法ZIP在不同的实现中会在运算速度和压缩率之间寻求平衡,因而可能会产生不同的压缩结果(当然,直接解压结果是相同的),因此压缩后再进行签名就可能导致无法实现鉴别(接收方在验证签名时可能会因压缩的原因而出现验证失败)。
PGP 对加密前的明文(含签名)进行压缩,而不是在加密后再压缩的主要原因也有两点:一方面因为先压缩再加密方案缩短了报文大小,从而减少了网络传输时间和存储空间;另一方面经过压缩实际上是经过了一次变换,变换后减少了明文中上下文的关系,比原始消息的冗余信息更少,再加密的安全性更高,而如果先加密,再压缩,效果会差一些。
概括上述:PGP发送邮件先进行签名,再进行压缩,最后进行加密。先进行签名的目的是为了后边验证的准确性。压缩后进行加密是为了减少数据体量,提高加密效率。
公开密码算法密钥管理:
PGP信任模型:以用户为中心的信任模型(信任网模型,Web of Trust)
没有一个统一的认证中心来管理用户公钥,每个人都可以作为一个CA对某个用户的公钥签名,以此来说明这个公钥是否有效(可信)
当用户接收到新的公钥时,首先要检查公钥证书的签名者,然后根据这个签名者的信任程度计算出该公钥的合法性,如果合法才能把它插入到自己的公钥环中
公钥环中每一个公钥项都有表示信任度的字段,包括:
由拥有者可信性决定签名可信性,由公钥上的多个签名的可信性一起决定密钥合法性。有一个绝对信任的签名,则密钥合法。至少有x个一直信任的签名,则密钥合法。至少有y个部分信任的签名则密钥合法。x和y值由用户决定。
多选题:用户A对用户B和C的公钥拥有者可信性字段打的都是部分信任,D是完全信任,系统要求,两个部分信任或者一个完全信任的签名才能让公钥合法,当前A收到了G的公钥,上边的签名来自于B,Z的公钥签名来自D,以下说法正确的是( )
A. B对G公钥的签名信任性字段为部分信任
B. D对Z公钥的签名信任性字段为部分信任
C. Z的公钥合法
D. G的公钥不合法
答案:ACD
Q:当用户A往公钥环中插入一个新的公钥时,PGP必须为该公钥的拥有者可信性字段设定一个标志,指示公钥拥有者的信任程度。如果用户A插入的新公钥不是自己的公钥,应该由谁制定该公钥拥有者的可信任性字段?
A:用户A
安全问题:
定义:攻击者通过某种手段,有意地造成计算机或网络不能正常运转从而不能向合法用户提供所需服务或者使服务质量降低
DDoS(Distributed Denial of Service):如果处于不同位置的多个攻击者同时向一个或多个目标发起拒绝服务攻击,或者一个或多个攻击者控制了位于不同位置的多台机器并利用这些机器对受害者同时实施拒绝服务攻击。
DDoS为什么能成功?
按攻击机制来分
剧毒包或杀手包(Killer Packet) DoS攻击:利用协议本身或其软件实现中的漏洞,通过一些畸形的数据包使受害者系统崩溃,也称为“漏洞攻击”或“协议攻击”。
风暴型DoS攻击:通过大量的“无用”数据包占用过多的资源以达到拒绝服务的目的,也称为“带宽攻击”
定义:攻击者直接控制僵尸网络对受害者主机或服务器进行攻击。
定义:攻击者直接控制僵尸网络利用反射服务器,伪造原IP,使得反射服务器向受害者主机或服务器响应大量数据包。
用作反射型DDoS的协议一般具有的特点
用于反射型DDoS的协议:NTP、SSDP、DNS等
通过修改网络中的一些参数或ARP表、DNS缓存,使得受害者发出的或者发向受害者的数据包被重定向到了其它地方。
常被用于窃听或中间人攻击。因此,通常在网络窃听中研究,很多人不把它当作DoS攻击。
到目前为止,对付风暴型DDoS攻击的方案主要有四种:
最有效的对抗风暴型DDoS的方法是:流量清洗。
DDoS攻击防御就是对DDoS攻击与正常业务数据混合在一起的流量进行净化,净化掉DDoS攻击流量,保留正常业务流量,保证客户业务7×24小时的不间断提供。
DDoS攻击阻断过程一般包括攻击监测和判断、流量牵引、清洗过滤、流量回送四个关键环节。
定义:通过从计算机系统或网络的关键点收集信息并进行分析,从中发现系统或网络中是否有违反安全策略的行为和被攻击的迹象。
根据检测方法来分:
定义:收集非正常操作的行为特征(signature),建立相关的特征库,当监测的用户或系统行为与库中的记录相匹配时,系统就认为这种行为是入侵。
特征:
特征检测针对的是已知攻击,检测率取决于:攻击特征库的正确性与完备性
模式匹配法:
将收集到的入侵特征转换成模式,存放在模式数据库中。检测过程中将收集到的数据信息与模式数据库进行匹配,从而发现攻击行为。
模式匹配的具体实现手段多种多样,可以是通过字符串匹配寻找特定的指令数据,也可以是采用正规的数学表达式描述数据负载内容。技术成熟,检测的准确率和效率都很高
例子:Snort
定义:首先总结正常操作应该具有的特征(用户轮廓),当用户活动与正常行为有重大偏离时即被认为是入侵。
行为:需要一组能够标识用户特征、网络特征或者系统特征的测量参数,如CPU利用率、内存利用率、网络流量等等。基于这组测量参数建立被监控对象的行为模式并检测对象的行为变化。
数据源评价
机器学习法:
异常检测:指出给定的输入样本 { X i } i = 1 n \{X_i\}_{i=1}^{n} {Xi}i=1n中包含的异常值
它的核心思想是:采用引诱或欺骗战略,诱使入侵者相信网络与信息系统中存在有价值的、可利用的安全弱点,并具有一些可攻击窃取的资源(当然这些资源是伪造的或不重要的),进而将入侵者引向这些错误的资源,同时安全可靠地记录入侵者的所有行为,以便全面地了解攻击者的攻击过程和使用的攻击技术。
网络欺骗用途
蜜罐(Honeypot)是最早采用欺骗技术的网络安全系统。
定义:蜜罐是一种安全资源,其价值在于被探测、攻击或突破
目标:就是使它被扫描探测、攻击或被突破,同时能够很好地进行安全控制
按照实现方式可将蜜罐分为物理蜜罐和虚拟蜜罐
根据交互程度或逼真程度的高低可以分为低交互蜜罐、中交互蜜罐和高交互蜜罐
❗ 转载请注明出处
作者:HinsCoder
博客链接: 作者博客主页