南京大学网络安全与检测技术复习笔记

个人应对网络安全与检测技术2024年期末考试的复习笔记。

考试形式

线下;有限条件的开卷

纸质材料:参考教材等书籍不限

电子材料

课件

所有材料必须下载到本地,不得本地部署ai大模型。

概论

基本安全属性的理解

  • Confidentiality机密性、Integrity 完整性、Availability 可用性

Confidentiality(机密性)

  • 定义:保证信息在传输、存储和处理过程中不被未经授权的主体访问或获取。
  • 目标:防止数据泄露。
  • 实现方法
    • 加密技术(如 AES、RSA)
    • 访问控制(如基于角色的访问控制 RBAC)
    • 隐私保护技术(如差分隐私)
  • 示例:用户的密码在数据库中使用哈希算法存储,防止管理员直接读取密码。

Integrity(完整性)

  • 定义:确保信息在传输、存储和处理过程中未被未授权的篡改、伪造或破坏。
  • 目标:防止数据被篡改或伪造,确保数据的真实性和准确性。
  • 实现方法
    • 数字签名(如 RSA 签名)
    • 消息认证码(MAC)
    • 校验和(如 SHA-256)
  • 示例:文件传输时通过哈希值校验,验证文件是否被篡改。

Availability(可用性)

  • 定义:确保系统或服务在需要时可以被合法用户访问和使用。
  • 目标:防止系统因攻击、故障或资源枯竭而不可用。
  • 实现方法
    • 分布式架构(如负载均衡和容灾备份)
    • 抗 DDoS 防护(如流量清洗)
    • 服务监控(如实时故障修复)
  • 示例:银行的在线支付系统能在高并发的双十一期间正常运行。

Threats and Attacks

  • 两种攻击模型:Passive、Active

  • 能够初步完成威胁模型(Threatmodel)的分析

两种攻击模型

  1. Passive Attacks(被动攻击)

    • 特点:攻击者仅窃听或监控通信,不直接改变信息。

    • 目标:窃取机密信息。

    • 示例

      • 窃听:攻击者监听网络数据包,试图提取敏感信息。
  • 流量分析:观察通信流量模式,从中推测用户行为。

    • 防御方法

      • 数据加密(如 TLS 加密传输)。
  • 使用匿名通信(如 Tor 网络)。

  1. Active Attacks(主动攻击)

    • 特点:攻击者通过篡改、伪造或干扰通信,改变信息内容或破坏系统功能。

    • 目标:篡改信息、伪造身份、拒绝服务等。

    • 示例

      • 中间人攻击(MITM):攻击者拦截并篡改双方通信内容。
  • 拒绝服务攻击(DoS/DDoS):使目标系统无法响应合法用户请求。

    • 防御方法

      • 数据完整性校验(如 HMAC)。
  • 系统冗余和防火墙设置。

威胁模型(Threat Model)

威胁模型用于系统化分析潜在安全威胁和攻击路径,常包括以下步骤:

  1. 定义目标:明确系统的核心资产及其安全需求。

    • 如用户数据需要机密性,服务需要可用性。
  2. 识别威胁:分析系统可能面临的威胁。

    • 使用 STRIDE 模型:

      • Spoofing(身份伪造)
  • Tampering(数据篡改)
    • Repudiation(抵赖)
  • Information Disclosure(信息泄露)
    • Denial of Service(拒绝服务)
    • Elevation of Privilege(权限提升)
  1. 评估攻击路径:评估威胁的可能性和影响。

    • 建立数据流图,分析系统中数据流的潜在漏洞。
  2. 设计防御措施:为每个威胁提供缓解方案。

    • 如使用 TLS 防止窃听,使用防火墙缓解 DDoS。

安全原则 Security Principles

  • 能够理解各安全原则的基本含义,识别出遵从/违背安全原则的设计

安全原则是设计安全系统时应遵循的指导规则,以减少漏洞并提高系统的安全性。常见原则包括:

  1. 最小权限原则(Principle of Least Privilege, PoLP)
    • 定义:系统中每个用户或进程只应拥有完成任务所需的最小权限。
    • 示例:普通用户无法访问管理员权限的文件。
    • 违反后果:权限过大可能导致恶意操作或滥用。
  2. 默认拒绝原则(Default Deny)
    • 定义:系统应默认拒绝所有访问请求,仅允许明确授权的请求。
    • 示例:防火墙默认禁止所有入站流量,需明确配置规则开放特定端口。
  3. 分层防御原则(Defense in Depth)
    • 定义:通过多个独立的安全层防御攻击,即使某一层被攻破,系统仍有其他防线保护。
    • 示例:同时使用防火墙、入侵检测系统(IDS)和加密技术保护网络。
  4. 安全设计原则(Secure by Design)
    • 定义:从设计阶段开始就考虑安全性,避免依赖事后补丁。
    • 示例:设计 API 时限制输入范围,避免 SQL 注入攻击。
  5. 开闭原则(Open Design Principle)
    • 定义:安全性不应依赖系统实现的保密性,而是依赖公开的、经过验证的加密算法等机制。
    • 示例:AES 是公开的标准加密算法,但仍然安全。

遵从与违背安全原则的示例

遵从案例:

  • 银行系统实现最小权限原则,普通员工无法访问高权限管理操作。
  • 防火墙默认关闭所有入站流量,只有明确规则开放的端口可以访问。

违背案例:

  • 应用程序使用硬编码的默认管理员密码,违背了“安全设计原则”。
  • 用户所有操作都运行在管理员权限下,违背了“最小权限原则”。

对称加密

了解基本的密码学术语及对应关系

  • 明文、密文、密钥、加密、解密、

明文(Plaintext)
指未经加密的原始信息,是加密算法的输入。
示例:明文消息:Hello World

密文(Ciphertext)
加密后的信息,由加密算法和密钥将明文转换而来,无法直接被理解。
示例:密文消息:7E4A89B3F21C

密钥(Key)
加密和解密过程中使用的关键参数,是保护信息安全的核心。密钥的保密性决定了整个系统的安全性。
示例:对称加密密钥:0xA1B2C3D4E5F6

加密(Encryption)
将明文转换为密文的过程,以保护数据机密性。
公式:$C = E_k(M)$

其中 C 是密文,M 是明文,k 是密钥,E 是加密算法。

解密(Decryption)
将密文还原为明文的过程,需要使用正确的密钥和算法。
公式:$M = D_k(C)$

其中 M 是明文,C 是密文,k 是密钥,D 是解密算法。

针对加密消息的攻击类型

  • 唯密文、已知明文、选择明文、选择密文等
  1. 唯密文攻击(Ciphertext-Only Attack, COA)

    • 定义:攻击者只有加密后的密文可用,试图推断明文或密钥。
    • 应对方法
      • 采用强密码学算法(如 AES)。
      • 增加密钥长度以抵御暴力破解。
  2. 已知明文攻击(Known-Plaintext Attack, KPA)

    • 定义:攻击者已知部分明文及其对应的密文,试图推断密钥或其他明文。
    • 示例
      • 在电报加密中,攻击者知道“ATTACK AT DAWN”的明文和密文关系。
    • 应对方法
      • 使用随机填充(Padding)。
  3. 选择明文攻击(Chosen-Plaintext Attack, CPA)

    • 定义:攻击者可以选择一些明文,并获得其加密后的密文,以此分析加密算法的规律或推断密钥。
    • 示例
      • 在加密系统中,通过请求服务端加密特定消息,观察输出。
    • 应对方法
      • 使用强加密模式(如 CBC)。
  4. 选择密文攻击(Chosen-Ciphertext Attack, CCA)

    • 定义:攻击者可以选择一些密文并获得其解密后的明文,通过分析解密过程推测密钥或破解算法。

    • 示例

      • 通过伪造密文请求服务端解密服务。
    • 应对方法

      • 使用抗选择密文攻击的加密方案(如 OAEP)。

对称加密的基本构成

  • 密钥生成、加密、解密

  • 性质:正确性、高效性、安全性

  1. 密钥生成
    • 生成随机的对称密钥,长度通常为 128 位、192 位或 256 位。
    • 工具:随机数生成器(如 SecureRandom)。
  2. 加密
    • 使用密钥和加密算法对明文进行处理,生成密文。
    • 常见算法:AES、DES、3DES。
  3. 解密
    • 使用密钥和解密算法将密文还原为明文。
    • 解密过程与加密过程对称,使用相同密钥。

对称加密的性质

  • 正确性
    确保加密和解密能够正确还原数据:$D_k(E_k(M)) = M$
  • 高效性
    由于加密和解密使用相同的密钥,对称加密算法通常比非对称加密更高效。
  • 安全性
    加密过程必须确保攻击者无法在有限时间内通过暴力破解或分析算法推测明文或密钥。

One-Time Pad与流密码

One-Time Pad(一次性密码本)

  1. 定义
    使用一个与明文等长的随机密钥流进行加密,密钥只能使用一次。
    加密公式:$C = M \oplus K$

    解密公式:$M = C \oplus K$

    其中 $\oplus$ 表示按位异或操作。

  2. 性质

    • 理论上绝对安全(信息论意义上的安全性)。
    • 实际中难以实现,因为密钥生成和管理的成本极高。
  3. 缺点

    • 密钥需要绝对随机,且长度必须等于明文。
    • 密钥不能重复使用,否则会导致密文被破解。

流密码(Stream Cipher)

  1. 定义
    通过伪随机数生成器生成密钥流,与明文按位异或进行加密。

    • 密钥流生成器:使用初始密钥和随机向量(IV)生成伪随机序列。
    • 加密公式: $C_i = M_i \oplus S_i$ 其中 $S_i$ 为密钥流,$M_i$ 为明文,$C_i$ 为密文。
  2. 常见算法

    • RC4
    • Salsa20/ChaCha20
  3. 优点

    • 高效,适合处理连续流数据(如音视频加密)。
  4. 缺点

    • 如果密钥流重复,安全性会完全丧失(与 One-Time Pad 类似)。
    • RC4 存在已知漏洞,不再被推荐使用。

DES

Feistel Cipher结构

定义

Feistel Cipher 是一种对称加密的基本结构,其核心思想是将明文分组后反复应用特定的加密步骤(称为轮函数),最终结合密钥生成密文。
特点:加密和解密结构对称,使用相同的算法。

基本工作流程

假设明文为 M,密钥为 K,分组长度为 n,分为左右两部分 $L_0$ 和 $R_0$:

  1. 初始化:将 M 分为两部分:$L_0, R_0$。
  2. 轮迭代:对于每一轮 i: $L_i = R_{i-1}$,$R_i = L_{i-1} \oplus F(R_{i-1}, K_i)$。其中 F 是轮函数,$K_i$ 是第 i 轮的子密钥。
  3. 最终输出:将最后一轮的 $L_n$ 和 $R_n$ 拼接生成密文。

优点

  • 解密过程简单,只需按照加密过程逆序执行,因为 Feistel 结构的设计天然支持对称解密。
  • 灵活性:轮函数 F 可以自由选择,只需保证其非线性性和混淆特性。

DES的发展以及其基本结构

发展历程

  • 1970年代初:由 IBM 公司提出 Lucifer 加密算法,为 DES 的前身。
  • 1977年:DES(Data Encryption Standard)成为美国联邦政府的加密标准。
  • 后续发展
    • 随着计算能力提高,DES 的 56 位密钥长度被证明不够安全,逐步被 3DES 和 AES 取代。

DES 基本结构

  1. 输入分组

    • 明文长度固定为 64 位,密钥长度为 64 位(其中 8 位为校验位,实际密钥为 56 位)。
  2. 初始置换(Initial Permutation, IP)

    • 对输入的 64 位数据按固定表进行置换,增加混淆性。
  3. Feistel 结构的 16 轮加密
    每轮执行以下操作:

    • 扩展置换(E-Box):将 32 位数据扩展为 48 位。
    • 子密钥混合:将扩展后的数据与子密钥进行 XOR。
    • S-Box 替换:将 48 位数据压缩为 32 位。
    • P-置换:对替换后的 32 位数据进行置换。
  4. 逆置换(Inverse Permutation, IP-1)

    • 将 16 轮加密的输出重新排列,生成最终密文。

理解Avalanche Effect 雪崩效应

雪崩效应指加密算法的输入(明文或密钥)发生微小变化时,输出的密文会发生大范围不可预测的改变。

意义

  • 安全性:有效的加密算法必须满足雪崩效应,否则攻击者可能通过输出的微小变化推测明文或密钥。
  • 测试标准:在理想情况下,对输入数据修改 1 位,输出密文中约有一半的位发生变化。

DES 雪崩效应分析

  • DES 中的 S-Box 和 P-置换设计是雪崩效应的主要来源。
  • 示例
    修改密钥或明文的 1 位,观察最终密文中 64 位的变化数量,通常会接近 50%。

多重加密的安全性,以2DES的安全性为主

多重加密的定义

通过重复执行加密算法增强加密强度,通常使用多个密钥。

  • 2DES:两次 DES 加密,使用两个密钥 $K_1$ 和 $K_2$。
    加密过程: $C = E_{K_2}(E_{K_1}(M))$

    解密过程: $M = D_{K_1}(D_{K_2}(C))$

  • 3DES:三次 DES 加密(加密-解密-加密模式,EDE)。

2DES 的安全性问题

  • 密钥空间:理论上 2DES 的密钥空间为 $2^{112}$,比单一 DES 的 $2^{56}$ 更安全。

  • 中间相遇攻击(Meet-in-the-Middle Attack)
    攻击者利用加密和解密过程中的中间值缩小密钥搜索空间:

    1. 计算所有可能的 $K_1$ 的加密结果 $E_{K_1}(M)$。
    2. 计算所有可能的 $K_2$ 的解密结果 $D_{K_2}(C)$。
    3. 找到两者匹配的密钥对 $(K_1, K_2)$。

    复杂度:约为 $2^{57}$,只比单 DES 稍强,但仍远低于理想的 $2^{112}$。

改进方法:3DES

通过三次加密增加安全性:$C = E_{K_3}(D_{K_2}(E_{K_1}(M)))$

  • 优点:抵御了中间相遇攻击。
  • 缺点:计算开销较大,被 AES 替代。

总结:DES 的优缺点

优点

  1. 结构简单,基于 Feistel 结构易于实现。
  2. 雪崩效应显著,满足基本的密码学要求。

缺点

  1. 密钥长度过短(56 位),易被暴力破解。
  2. 2DES 不完全安全,中间相遇攻击降低了多重加密的效果。
  3. 现代计算技术(如并行计算)加速了 DES 的破解过程。

AES

AES的发展历史以及其一般结构了解AES中的四种变换及其设计原理(不需要记忆Boxes)

发展历史

  1. 背景
    • 随着 DES 被证明不再安全,美国国家标准与技术研究院 (NIST) 在 1997 年开始寻求替代方案。
    • 1998 年,Daemen 和 Rijmen 提出的 Rijndael 算法被选为新标准。
    • 2001 年,Rijndael 正式成为 AES (Advanced Encryption Standard)。
  2. 目标
    • 提供更强的安全性。
    • 支持不同的密钥长度(128, 192, 256 位)。
    • 具备高效的软件和硬件实现。

一般结构

AES 是一种分组密码,分组长度固定为 128 位,支持 128/192/256 位密钥长度
AES 的加密过程分为多个轮次,具体轮数取决于密钥长度:

  • 128 位密钥:10 轮
  • 192 位密钥:12 轮
  • 256 位密钥:14 轮

每一轮由一组固定的操作组成,最后一轮略有不同(省略部分步骤)。

  1. Substitute Bytes (字节替换)
  • 作用:非线性变换,将输入的每一个字节替换为另一个字节(通过 S-Box 完成)。
  • 原理
    • S-Box 基于有限域上的数学操作,确保抗线性攻击和差分攻击。
    • 提供了 AES 加密的非线性性。
  • 特点:每个字节独立替换,彼此不影响。

  1. Shift Rows (行移位)
    • 作用:行级别的排列变换,用于打乱数据的列间关系。
    • 操作
      • 第一行保持不变。
      • 第二行循环左移 1 字节。
      • 第三行循环左移 2 字节。
      • 第四行循环左移 3 字节。
    • 原理
      • 打乱了列间数据的排列,增强加密效果。
      • 配合 Mix Columns 提供更高的扩散性。

  1. Mix Columns (列混淆)
    • 作用:通过列的数学变换实现数据的扩散。
    • 操作
      • 每一列看作一个多项式,在有限域 GF(28)GF(2^8)GF(28) 上与固定矩阵相乘。
    • 原理
      • 每一列的输出依赖于输入列的所有字节,确保数据扩散。
      • 增强抗差分攻击能力。
    • 设计细节:固定矩阵的选择平衡了扩散性和计算效率。

  1. Add Round Key (轮密钥加)
    • 作用:将密钥与数据混合。
    • 操作
      • 每一轮的状态矩阵与对应的轮密钥逐字节 XOR。
    • 原理
      • XOR 操作快速且不可逆。
      • 将密钥融入加密过程,每轮使用不同的子密钥。

AES密钥扩展算法以及其设计原理

密钥扩展算法简介

AES 的每一轮都需要使用一个独特的子密钥,密钥扩展算法用于从主密钥生成这些子密钥。

  • 输入:主密钥 K(128, 192 或 256 位)。
  • 输出:每一轮所需的子密钥(包括初始密钥)。

主要步骤

  1. 初始密钥:将输入密钥作为第一个子密钥 $W[0], W[1], …, W[N_k-1]$,其中 $N_k$ 为密钥分组数(4/6/8)。
  2. 密钥扩展迭代:使用以下规则生成后续的密钥分组 W[i]W[i]W[i]:
    • 对于每个 i,$W[i] = W[i-N_k] \oplus T$,其中 T 的计算取决于 i 是否为 $N_k$的倍数:
      • 如果 $i % N_k == 0$,$T = SubWord(RotWord(W[i-1])) \oplus Rcon[i/N_k]$
        • RotWord:循环左移一个字节。
        • SubWord:对字的每个字节进行 S-Box 替换。
        • Rcon:轮常数,增加非线性性。
      • 如果 $N_k > 6$ 且 $i % N_k == 4$:
        $T = SubWord(W[i-1])$
      • 否则,T = W[i-1]。

设计原理

  • 扩展性:生成的子密钥满足 AES 轮次需求,确保每轮的独立性。
  • 非线性性:通过 S-Box 替换和轮常数 RconRconRcon 添加非线性性,增加安全性。
  • 扩散性:主密钥的微小变化会对所有子密钥产生较大影响。

分组加密工作模式 Modes of Operation

消息填充

分组加密要求输入数据的长度是分组长度(通常为 128 比特)的倍数。如果消息长度不足分组长度,需要进行填充。
常见的填充方式有:

  1. PKCS#7 填充:添加 nnn 个值为 nnn 的字节,其中 nnn 是需要填充的字节数。
    例如,明文 “HELLO”(5 字节),128 比特分组需要填充 11 字节:

    $\text{“HELLO”} \rightarrow \text{“HELLO”} | \text{11 11 11 11 11 11 11 11 11 11 11}$

  2. 零填充:填充字节为全零。

  3. ISO/IEC 7816-4:在消息尾部添加一个字节的 80,后面填充全零。

常见工作模式及其比较

1. ECB (Electronic Codebook)

过程

  • 每个分组独立加密,不涉及前后分组。
  • 优点:简单高效;可以并行加密。
  • 缺点:模式化,不能隐藏数据模式,易受明文相同导致密文相同的攻击。
  • 应用场景:不适合传输重要数据,通常用于无关紧要的数据(如数据库密钥)。

2. CBC (Cipher Block Chaining)

过程

  • 每个分组的明文与前一个分组的密文进行异或后加密,第一个分组与初始向量(IV)异或。

$C_i = Enc(K, M_i \oplus C_{i-1})$ $M_i = Dec(K, C_i) \oplus C_{i-1}$

特点

  • 优点:每个分组依赖于前一个分组,避免模式化;适合流式传输。
  • 缺点:不能并行加密;错误传播特性强,某个分组密文出错会影响后续分组的解密。
  • 应用场景:数据传输,文件加密。

3. CFB (Cipher Feedback)

过程

  • 将 IV 或上一个密文块加密后与明文异或,生成密文。

$C_i = M_i \oplus Enc(K, C_{i-1})$

特点

  • 优点:密文块长度不必等于分组长度,适合流式传输。
  • 缺点:解密过程中错误传播到下一个分组。
  • 应用场景:实时数据加密(如网络通信)。

4. OFB (Output Feedback)

过程

  • 将 IV 加密后作为伪随机流,与明文异或生成密文。

$O_i = Enc(K, O_{i-1}), \quad C_i = M_i \oplus O_i$

特点

  • 优点:不直接依赖密文分组,错误不会传播到后续分组。
  • 缺点:无法并行处理;需要唯一且随机的 IV。
  • 应用场景:噪声信道中的数据加密。

5. CTR (Counter Mode)

过程

  • 以初始计数器为输入生成伪随机流,与明文异或生成密文,计数器每次加一。

$C_i = M_i \oplus Enc(K, \text{Counter}_i)$

特点

  • 优点:高效并行处理;错误仅影响当前分组。
  • 缺点:计数器必须唯一,重复会导致严重问题。
  • 应用场景:高性能环境下的数据加密(如磁盘加密)。

**工作模式的安全性与鲁棒性 *! **

1. CBC 修改密文块攻击

  • 攻击原理:由于 CBC 的解密过程中,明文依赖密文和前一块密文,攻击者可以通过修改某块密文来操控下一块的明文。
  • 示例: $M_i = Dec(K, C_i) \oplus C_{i-1}$ 如果攻击者修改$C_{i-1}$ 为 $C_{i-1}’$,则解密得到的明文变为: $M_i’ = Dec(K, C_i) \oplus C_{i-1}$
  • 防御措施:使用消息认证码 (MAC) 验证完整性。

2. 分组加密模式的错误传播

  • 不同模式对错误的传播影响不同:
    • ECB:错误只影响当前块。
    • CBC:错误影响当前块和下一个块的解密。
    • CFB:错误影响当前块和下一个块的解密。
    • OFB 和 CTR:错误只影响当前块。

工作模式的应用场景

  • ECB:结构化数据(如密钥表),但安全性较低。
  • CBC:文件加密、消息加密。
  • CFB:适用于实时流数据。
  • OFB:适用于无差错需求的环境(如卫星通信)。
  • CTR:高性能要求的场景(如 HTTPS 传输)。

总结:CTR 是综合效率与安全性最优的模式,但需确保计数器的唯一性。

完整性 Hashes

Hash函数的基本思想

Hash 函数是一种将任意长度输入映射到固定长度输出的数学函数。

输出通常称为哈希值或摘要,特性如下:

  1. 定长输出:输出长度固定,与输入长度无关。
  2. 快速计算:对任意输入,计算 Hash 值的效率高。
  3. 不可逆性(One-wayness):无法通过 Hash 值反推输入。
  4. 抗碰撞性(Collision Resistance):不同输入映射到相同输出的概率极低。

理解One-wayness、(Weak/Strong)Collision resistance的含义以及其之间关系 *!

  1. One-wayness
    • 给定 Hash 值 h=H(x),找到满足H(x′)=h 的 x′ 是计算上不可行的。
    • 应用:密码存储、数字签名。
  2. Weak Collision Resistance
    • 对任意给定 x,找到不同的 x′,使得 H(x) = H(x’) 是不可行的。
    • 关系:Weak collision resistance 假设攻击者知道特定的初始值。
  3. Strong Collision Resistance
    • 找到任意两个不同的输入 x≠x,使得 H(x)=H(x′) 是不可行的。
    • 应用:保护文件完整性,防止伪造。

关系总结

  • 强碰撞抗性 ⟹ 弱碰撞抗性 ⟹ 单向性。
  • 如果 Hash 函数能够抵抗强碰撞攻击,则也满足其他弱形式的安全性。

了解常用的Hash函数以及其一般结构

  1. MD5
    • 已不安全,存在严重碰撞问题。
  2. SHA-1
    • 160 位输出,已被破解,不再推荐使用。
  3. SHA-2 (SHA-256, SHA-512)
    • 提供更高安全性和较大输出长度,广泛使用。
  4. SHA-3 (Keccak)
    • 使用 Sponge 架构,抵抗各种碰撞攻击。

一般结构

  • 多采用 Merkle-Damgård 架构:将输入分成固定大小分组,并逐步压缩。

理解生日悖论

  • 通过概率论解释,在只有 $\sqrt{2^n}$ 次尝试中找到碰撞的概率即超过 50%。
  • 对于 n 位 Hash 输出,攻击复杂度约为 $2^{n/2}$。

应用:攻击需要碰撞抗性的系统,例如数字签名伪造

应用:Password Hashing

用途:存储用户密码的加密形式,防止数据库泄露时泄露明文密码。

增强安全性的方法

  • **使用盐值 (Salt)**:为每个密码添加唯一的随机值,防止彩虹表攻击。
  • 使用密钥推导函数:如 PBKDF2、Argon2,提高破解难度

理解Hash函数在何种情况无法提供完整性保护? *!

Hash 函数单独使用时,只能验证数据是否被修改,但不能提供认证能力。

攻击者可以通过以下方式绕过 Hash 的完整性保护:

  • 中间人攻击:攻击者可以截取数据及其 Hash 值,并替换为伪造的版本。
  • 伪造数据与 Hash:如未使用密钥的情况下,攻击者可以生成与被篡改数据匹配的 Hash 值。

解决方法:使用带密钥的消息认证码 (MAC) 提供身份认证。

MACs

消息认证码的使用方式和定义

  • 消息认证码 (MAC) 是一种利用密钥生成的摘要,用于验证消息的完整性和来源真实性。
  • 给定一个密钥 K 和消息 m,MAC 的计算为: $\text{MAC}(K, m) = H(K | m) $
  • 验证时,接收方计算 MAC 并比较接收到的值。

区别伪造攻击的几种方式

存在形伪造 (Existential Forgery)

  • 攻击者伪造出一个合法的消息及其 MAC 值。
  • 常见于弱 MAC 算法或随机猜测成功的情况下。

选择性伪造 (Selective Forgery)

  • 攻击者针对目标消息伪造合法的 MAC 值。

通用伪造 (Universal Forgery)

  • 攻击者能够伪造任意消息的合法 MAC。
  • 最严重的攻击,通常需要破解 MAC 算法。

完整性基本概念与机密性的区别

  • 完整性:确保数据未被修改或篡改。
  • 机密性:确保数据未被未经授权的用户访问。
  • 两者可以通过加密和 MAC 结合实现。

消息认证码的几种构造方式

  • NMAC (Nested MAC)

    • 结构: $\text{NMAC}(K, m) = H(K_1, H(K_2, m))$
    • 用两个密钥 $K_1 和 K_2$ 加强安全性。
  • HMAC (Hash-based MAC)

    • 结构: $\text{HMAC}(K, m) = H((K \oplus \text{opad}) | H((K \oplus \text{ipad}) | m))$
    • 优点:广泛使用,基于标准 Hash 函数,安全性强。
  • 基于分组密码的 MAC

    • 通过分组密码(如 AES-CMAC)构造,适合硬件实现。

理解MACs的完整性保证和机密性保证

完整性:通过密钥确保消息未被篡改。

机密性:需配合加密使用,如结合加密模式中的 GCM。

Authenticated Encryption

定义:同时提供机密性与完整性保护的加密方法。

常见方案:

  • GCM (Galois/Counter Mode):流加密结合 MAC。
  • CCM (Counter with CBC-MAC):结合分组加密和 MAC。

优点:无需单独计算 MAC,与加密过程结合更高效。

非对称加密

基于公钥密码学的加密基本流程

密钥生成:生成一对密钥(公钥和私钥)。

  • 公钥用于加密,可公开分发。
  • 私钥用于解密,必须保密。

加密:发送方使用接收方的公钥对消息 mmm 加密,生成密文 ccc。

  • $c = Enc_{PK}(m)$。

解密:接收方用自己的私钥解密密文 ccc,恢复原消息 mmm。

  • $m = Dec_{SK}$。

基于公钥密码学的认证基本流程

签名生成:发送方用自己的私钥对消息 mmm 生成签名 sigsigsig。

  • $sig = Sign_{SK}(m)$。

签名验证:接收方用发送方的公钥验证签名是否有效。

  • $Verify_{PK}(m, sig)=\text{True/False}$

公钥加密的要求

加密有效性:用公钥加密的消息,只有对应的私钥可以解密。

加密安全性:对攻击者而言,解密密文是计算不可行的。

密钥独立性:公钥和私钥具有数学上的对应关系,但不能通过公钥推导出私钥。

基本的模运算

模算术性质

  • 加法:$(a + b) \mod n = ((a \mod n) + (b \mod n)) \mod n$。
  • 乘法:$(a \cdot b) \mod n = ((a \mod n) \cdot (b \mod n)) \mod n$。
  • 幂运算:$a^k \mod n = ((a \mod n)^k) \mod n$。

模逆元

  • 给定 a 和 n,模逆元 $a^{-1}$ 满足 $a \cdot a^{-1} \equiv 1 \mod n$。
  • 存在条件:a 和 n 必须互素

Diffe-Hellman

协议流程

  • 公共参数:质数 ppp 和基数 ggg(ggg 是 ppp 的生成元)。
  • 双方生成私钥 a 和 b:
    • $A = g^a \mod p$
    • $B = g^b \mod p$
  • 共享密钥:
    • $K = B^a \mod p = A^b \mod p = g^{ab} \mod p$。

用途:生成共享密钥,用于对称加密。

了解Diffe-Hellman的安全性

**计算 Diffie-Hellman 问题 (CDH)**:

  • 给定 $g^a \mod p $ 和 $ g^b \mod p$,计算$g^{ab} \mod p$ 是计算上不可行的。

**离散对数问题 (DLP)**:

  • 给定 $g^a\mod p$,找到 a 是困难的。

Diffe-Hellman的中间人攻击(MITM Attack)

攻击流程

  • Mallory 拦截 Alice 和 Bob 的公钥 A, B,并发送自己的公钥 M。
  • 建立两个独立的共享密钥:
    • $K_{AM} = g^{am} \mod p$(Alice 和 Mallory 之间)。
    • $K_{MB} = g^{bm} \mod p$(Mallory 和 Bob 之间)。
  • Mallory 可以解密和篡改双方消息。

防御措施

  • 使用数字签名验证公钥身份。

RSA

RSA的加密解密流程

加密

  • 公钥(e, n)
  • $c = m^e \mod n$。

解密

  • 私钥 (d,n)。
  • $m = c^d \mod n$。

理解并应用Square-and-multiply算法

用途:高效计算 $a^b \mod n$。

步骤

  1. 将指数 b 转换为二进制。
  2. 从高位到低位遍历,每次平方当前结果;若位为 1,则再乘以 a。

优势:减少模运算次数,提高效率。

RSA密钥生成过程

选择两个大素数 p 和 q。

计算模数 $n = p \cdot q$。

计算欧拉函数 $\phi(n) = (p-1)(q-1)$。

选择加密指数 e:满足 $1 < e < \phi(n)$且 $\gcd(e, \phi(n)) = 1$。

计算解密指数 d:满足 $e \cdot d \equiv 1 \mod \phi(n)$。

公钥为 (e, n),私钥为 (d,n)。

理解RSA的安全性保证

基于大数分解难题:攻击者必须分解 $n = p \cdot q$ 才能破解私钥。

选择适当的密钥长度(如 2048 位或更高)以确保安全性。

了解针对RSA的一些攻击

小加密指数攻击:当 e 过小(如 3),并且消息未填充时可能被破解。

模不互质攻击:多个模数 n 之间有公因数时,可以通过最大公约数攻击。

低加密指数攻击:密文短时可能被恢复

数字签名

定义:使用私钥生成签名,提供消息的真实性和完整性。

RSA 签名流程

  • 发送方:
    • 用私钥签名消息:$sig = m^d \mod n$。
  • 接收方:
    • 用公钥验证签名:检查 $m = sig^e \mod n$。

用途:身份认证、不可抵赖性、完整性验证。

如何用RSA实现数字签名:RSA Signature

签名生成:发送方用自己的私钥对消息哈希值签名:$sig = H(m)^d \mod n$

签名验证:接收方用公钥验证签名: $H(m) \stackrel{?}{=} sig^e \mod n$

注意:签名时通常对消息先进行 Hash,以确保签名高效和安全性。

PKI

理解密钥分发问题与Certifcates的基本概念

  1. 密钥分发问题

    • 公钥加密需要发送方和接收方拥有对方的公钥,但在公开的网络环境下,如何安全分发和验证公钥是真实的(即不被中间人替换)是一个挑战。
  2. Certificates 的基本概念

    • 证书是由受信任的第三方(CA,Certificate Authority)签发的,包含实体的公钥及相关信息,用来证明公钥的真实性。

    • 证书包括以下内容:

      • 公钥
      • 证书所有者信息(如域名、组织名)
      • 证书有效期
      • 颁发机构(CA)的签名

了解几种PKI信任模型

1. Monopoly (Trusted Directory) - *!
  • 一个单一的、完全受信任的 CA(如根 CA)管理所有证书。
  • 优势:简单且集中化,信任来源单一。
  • 缺点:如果该 CA 被攻破,整个系统的安全性就会崩溃。
2. Monopoly + Registration Authorities (RAs)
  • 在单一的根 CA 下,通过 RA 进行用户身份验证和注册,但证书仍由根 CA 颁发。
  • 优势:减轻了根 CA 的负担,提升效率。
  • 缺点:仍然存在单点故障。
3. Monopoly + Delegated CAs (Trusted Directory) - *!
  • 根 CA 将签发证书的职责委派给子 CA,形成分布式的信任体系。
  • 优势:分散管理、可扩展性强。
  • 缺点:需要对子 CA 的行为进行严格监督。
4. Oligarchy
  • 信任多个独立的 CA,每个 CA 可以签发自己的证书。
  • 优势:没有单点故障。
  • 缺点:如果其中一个 CA 被攻破,会影响到与其相关的信任链。
5. Anarchy Model (无 CA)
  • 每个人自己管理公钥,依赖个人信任网络(如 PGP)。
  • 优势:完全分布式,无需中心化的信任机构。
  • 缺点:缺乏强有力的信任保证,管理复杂。
6. Name Constraints & Hierarchical Name Constraints
  • Name Constraints 是对 CA 签发证书的名称范围进行限制,例如只能签发特定域名下的证书。
  • Hierarchical Name Constraints 进一步将这种限制以层级方式实施,确保严格的范围控制。

x.509

Certificate Revocation 的含义

  1. 证书吊销的原因
    • 密钥泄露或私钥被盗。
    • 证书中包含错误信息。
    • 证书持有人不再符合信任要求。
  2. 实现方式
    • **CRL (Certificate Revocation List)**:定期发布已吊销证书的列表。
    • **OCSP (Online Certificate Status Protocol)**:实时查询证书状态

认证

认证的目标:

Mutual Authentication

  • 双方需要相互验证身份,确保双方是通信的真实参与者。

Key Establishment

  • 通过认证协议,双方建立共享密钥,用于后续安全通信。

理解并应用基于对称密钥的认证 *!

流程

  • 双方共享一个对称密钥 K。
  • 使用 K 加密随机挑战或消息,验证对方身份。

优点

  • 高效,适合资源有限的环境。

缺点

  • 密钥分发难度大。

理解并应用基于非对称密钥的认证 *!

流程

  • 使用公钥加密挑战消息,验证对方私钥持有者身份。
  • 或用私钥签名消息,接收方用公钥验证签名。

优点

  • 无需提前共享密钥,适合开放网络。

缺点

  • 加密计算成本较高。

了解Kerberos并理解其设计原理

核心思想

  • 通过可信的第三方(Key Distribution Center, KDC)提供基于对称密钥的认证和密钥分发服务。

流程

  • 身份认证:用户向 KDC 请求认证,KDC 使用共享密钥验证用户身份。
  • 票据分发:KDC 生成服务票据(Ticket),用户使用该票据访问服务。

特点

  • 使用时间戳防止重放攻击。
  • 减少直接使用密码的次数,提升安全性。

Kerberos Realm

定义

  • 一个 Kerberos 域(Realm)是一个管理范围,包含用户、服务、以及一个 KDC。

跨域认证

  • 通过信任关系,允许不同 Realm 的用户进行认证和访问。

数据隐私

如何定义数据隐私?

数据隐私强调保护个人信息,确保在数据处理和共享过程中,防止个人信息被滥用或未经授权访问。它的目标包括:

  1. 机密性:防止数据被未授权方访问。
  2. 透明性:清晰告知数据主体数据使用的范围和目的。
  3. 控制权:让用户对自己的数据有更多的管理权。
  4. 最小化原则:收集和处理的个人数据应尽量减少,且仅用于明确的合法目的。

了解匿名化中的基本概念的常见攻击

  • 匿名化概念

    匿名化是指通过技术手段对数据进行处理,使得无法通过数据直接或间接识别出特定的个人身份。常用方法包括:

    • 删除标识符(如姓名、身份证号)。
    • 混淆数据(如聚合、随机化)。

    常见攻击

    1. Quasi-Identifiers(准标识符)

      • 定义:准标识符是指单独看无法直接标识个人,但结合其他数据来源可能间接识别个人身份的属性。例如:

        • 出生日期、性别、邮政编码、职业等。
      • 移除显式标识符(如姓名)后,如果数据中包含准标识符,攻击者可通过其他外部数据集将其关联,恢复个人身份信息。

    2. Linkage Attack(关联攻击)

      • 概念:攻击者将匿名化数据与外部数据源进行匹配,利用准标识符重新识别个人。例如:

        • 某匿名医疗数据包含“出生日期、性别、邮政编码”,攻击者结合选举记录匹配,重新识别患者身份。
  • 防御:通过技术手段(如k-Anonymity)减少准标识符与外部数据的匹配可能性。

     - 使用更严格的匿名化技术(如 k-Anonymity、l-Diversity、t-Closeness)。
    

理解k-Anonymity(k匿名化)的含义

定义:k-Anonymity 要求匿名化数据中的每条记录与至少 k-1 条记录在准标识符属性上完全相同。

目标:通过增加“模糊性”减少个体信息被重新识别的风险。

例子:假设数据集的准标识符包括“性别、邮编、年龄”,如果 k=3,每组数据中这些属性的组合必须至少出现 3 次。

不足

  1. **同质性攻击 (Homogeneity Attack)**:如果同组数据中敏感属性值高度一致(如所有患者的疾病都是“流感”),攻击者仍可推断隐私信息。
  2. **背景知识攻击 (Background Knowledge Attack)**:攻击者结合额外信息缩小可能性范围,从而识别个体。

了解l-Diversity (Homogeneity attack)与t-Closeness

1. l-Diversity

  • 目标:解决 k-Anonymity 的同质性问题。
  • 定义:每个准标识符等价类中,敏感属性的值至少有 lll 种不同,且频率相对均匀。
  • 问题:
    • 如果某些敏感值特别“罕见”,即便分布多样化,攻击者仍可能识别出特定个体。

2. t-Closeness

  • 目标:解决 l-Diversity 对分布均衡性缺乏考虑的问题。
  • 定义:要求每个等价类中敏感属性的分布与整体数据集中敏感属性的分布差距不超过 ttt(通过地球移动距离(EMD)度量分布差异)。
  • 优势:进一步降低因敏感值分布偏差导致的隐私泄露风险。

Aggregation与推断攻击

Aggregation:通过分析多个记录的统计特性,推断出超出单个记录的信息。

  • 风险:即使数据被聚合,攻击者仍可能从中挖掘个体信息。
  • 例子:攻击者统计某区域收入后,推断个别富裕家庭。

**推断攻击 (Inference Attack)**:通过分析数据的特定模式或依赖关系,推导出隐私信息。

  • 例子:从患者的病症推断疾病遗传信息或家族病史。

  • 防御:

    • 添加噪声(如差分隐私)。
    • 限制查询次数或灵敏度。

差分隐私

基本定义与性质

差分隐私(Differential Privacy, DP)是保护数据隐私的数学框架,保证查询结果不会显著暴露某个单个数据记录的存在与否。

公式定义:对于数据集 D 和任意相邻数据集 D′(仅相差一条记录),机制 M 满足: $Pr[M(D) \in S] \leq e^\epsilon $

  • ϵ:隐私预算,衡量隐私泄露程度。值越小,隐私保护越强。

Laplace机制

Laplace 分布

  • Laplace 分布是对称分布,其概率密度函数为: $f(x|\lambda) = \frac{1}{2\lambda} e^{-\frac{|x|}{\lambda}}$ 其中,$\lambda = \Delta f / \epsilon$ 决定噪声幅度,Δf\ 是查询的敏感度,ϵ 是隐私预算。

机制公式

  • 对任意查询 f(D),在输出时添加噪声: $M(D) = f(D) + \text{Noise}, \quad \text{Noise} \sim \text{Laplace}(\lambda)$其中,λ = Δf / ϵ。

敏感度分析Sensitivity *!

  • 敏感度定义为查询函数输出的最大变化幅度(针对任意相邻数据集)。
  • 添加的噪声量取决于敏感度和隐私预算 ϵ\epsilonϵ。

公式:添加服从 Laplace 分布的噪声:噪声 ∼ Laplace( Δf / ϵ )

  • Δf :查询的敏感度。

后处理(Post-processing)的特性

差分隐私保证任何对噪声查询结果的后处理不会增加隐私风险。

组合定理 Basic Composition Theorem *!

对多个独立查询的组合,隐私预算 ϵ 会累加:

  • 串行组合:总预算为 $\epsilon_1 + \epsilon_2 + \cdots + \epsilon_k$ 。
  • 并行组合:如果查询作用于不同的记录,则总预算为 $max(\epsilon_1, \epsilon_2, \cdots, \epsilon_k)$。

Privacy for Non-Numeric Queries

主要解决数据类别或顺序等非数值属性的隐私问题,例如用户的偏好、选择或分类数据。这些场景不能直接使用数值差分隐私方法(如添加噪声)。因此,需要特别的设计方法来确保隐私保护。

  • 隐私的选择:Randomized Response:针对非数值问题,随机化用户响应,提升隐私保护。

Private Median的设计方法:

中值查询是一种常见的非数值查询,保护隐私时需要防止特定用户的数据对中值结果产生过大影响。

  1. 原理
    • 将中值问题转化为一系列分位数问题。
    • 对分位数查询结果添加噪声,从而间接保护中值。

本地化差分隐私 (Local Differential Privacy) 基本定义

  • Randomized Response
  • Trade off between Utility and Privacy

在每个用户设备本地添加噪声,减少中心化数据暴露的风险。

Randomized Response:对用户回答进行随机化,用于问卷调查等场景。

权衡:本地化隐私降低了隐私风险,但可能损失数据实用性。

实用安全Usable Security

实用的实人认证

实人认证旨在验证用户的真实性和身份,广泛用于在线服务和金融领域。以下是常见的实人认证机制及其优缺点:

常见实人认证机制及其优缺点

  • 身份证明文件验证:通过上传身份证件(如护照、身份证)进行验证。
    • 优点:可直接验证身份真实性。
    • 缺点:容易被伪造;需高质量扫描件;隐私泄露风险。
  • 人脸识别:通过拍摄照片或视频进行生物特征验证。
    • 优点:便捷,用户无需复杂操作。
    • 缺点:可能被照片或视频欺骗(面具攻击);依赖算法性能。
  • 活体检测:结合人脸识别和动态操作(如眨眼、摇头)。
    • 优点:增强了防伪能力。
    • 缺点:受限于设备质量和用户技术水平。
  • 生物特征认证:如指纹、虹膜识别。
    • 优点:唯一性高,不易被仿冒。
    • 缺点:传感器硬件要求高;无法更改生物特征,存在隐私风险。

Two-Factor Authentication (2FA)

2FA通过增加第二层验证机制,提升了安全性。常见的组合包括:

  1. 第一因子:知识因子(如密码、PIN码)。
  2. 第二因子:拥有因子(如动态口令、短信验证码)或生物因子(如指纹、人脸识别)。
  • 优点
    • 显著提升攻击者的破解难度。
    • 在密码泄露的情况下,提供额外保护。
  • 缺点
    • 短信验证码可能被劫持(SIM劫持、信道窃听)。
    • 动态口令设备易遗失,增加用户负担。

分析认证机制的安全性与攻击面

给定认证机制时,分析其安全性需考虑以下因素:

  1. 攻击方式
    • Phishing(钓鱼攻击):窃取用户密码和验证码。
    • Man-in-the-Middle(中间人攻击):拦截认证数据。
    • Replay Attack(重放攻击):利用旧的认证数据重新登录。
    • Brute Force(暴力破解):针对密码或PIN进行穷举。
    • 设备丢失或被盗:针对硬件令牌或手机。
  2. 改进建议
    • 强化密钥管理和传输通道安全(如HTTPS)。
    • 使用硬件安全模块(如U2F密钥)替代短信验证码。
    • 增强活体检测和生物认证。

传输层安全 SSL/TLS

SYN Flooding Attack

SYN Flooding 是一种经典的 TCP DoS(拒绝服务)攻击,利用 TCP 三次握手的设计缺陷,通过伪造大量 SYN 包占用服务器资源。

  • 攻击原理
    1. 攻击者发送伪造的 SYN 包(源地址是伪造的)。
    2. 服务器响应 SYN-ACK,但攻击者不会完成握手(不发送 ACK)。
    3. 服务器的连接队列逐渐被填满,导致正常用户无法连接。
  • TCP DoS 原因
    • TCP 的三次握手机制需要服务器预留资源。
    • 在握手未完成时,服务器依然占用内存队列。
    • 伪造源地址使服务器无法确定请求的真实性。
  • 防御措施
    1. SYN Cookie:在握手完成前不分配资源,使用 Cookie 记录状态。
    2. 防火墙过滤:限制单个 IP 的连接频率。
    3. 黑名单和流量限制:检测并屏蔽可疑的流量。

理解SSL/TLS协议的基本流程和设计原理

TLS(传输层安全协议)是为网络通信提供安全性的标准协议,主要包括以下两部分:

TLS Handshake(握手协议)

  • 目标:协商会话密钥和验证身份。
  • 典型流程:
    1. 客户端发送支持的加密算法和随机数。
    2. 服务器选择算法并发送公钥证书和随机数。
    3. 客户端验证证书,生成会话密钥并加密发送给服务器。
    4. 双方使用协商密钥加密通信。

SSL/TLS Record Protocol(记录协议)

  • 提供数据传输的完整性和机密性。

  • 使用对称密钥加密会话数据,同时计算 MAC 验证完整性。

  • SSL/TLS Record Protocol

    1. SSL/TLS Record Protocol 的目标

    SSL/TLS Record Protocol 是 SSL/TLS 协议的核心组件之一,负责在通信过程中提供以下两项主要保障:

    • 完整性:防止数据在传输过程中被篡改。
    • 机密性:通过加密防止数据被窃听。

    2. 工作流程

    SSL/TLS Record Protocol 的核心操作如下:

    1. 分段:将应用数据分割为适合传输的块。
    2. 压缩:可选步骤,对数据进行压缩以减小传输量。
    3. MAC 计算 :
      • 利用 HMAC 算法计算消息认证码,确保完整性。
      • HMAC 输入包括消息内容、密钥和其他协议相关信息。
    4. 加密 :
      • 使用对称加密算法(如 AES)对分段后的数据和 MAC 一起加密。
      • 加密后生成密文,保障机密性。
    5. 封装 :
      • 为密文添加协议版本号、内容类型和长度等元数据,形成 TLS Record。

    3. 提供的保障

    1. 完整性
      • 实现方式:使用 HMAC 验证数据未被篡改。
      • 具体保障:接收端重新计算 MAC 并与消息附带的 MAC 比较,若匹配则认为数据完整。
    2. 机密性
      • 实现方式:通过对称加密(如 AES、ChaCha20)对数据加密。
      • 具体保障:数据即便被窃听,也无法被破解读取。

    4. 常见的对称加密模式

    • CBC(Cipher Block Chaining):逐块加密,依赖前一块密文。
      • 缺点:容易遭受填充攻击。
    • GCM(Galois Counter Mode):提供加密和认证。
      • 优点:高效且更安全,适合现代应用。
    • ChaCha20-Poly1305:适合低功耗设备的快速加密模式。

TLS in Practice

1. TLS 提供的保障

  1. 机密性(Confidentiality)
    • 使用对称加密保护通信内容。
    • 即使攻击者窃取数据,无法解密获取有意义的信息。
  2. 完整性(Integrity)
    • 使用 MAC 校验确保数据未被篡改。
  3. 身份认证(Authentication)
    • 通过服务器证书(使用公钥加密)验证服务器身份。
    • 可选地,客户端也可通过证书认证自己。
  4. 密钥协商(Key Agreement)
    • 使用非对称加密算法(如 DHE 或 ECDHE)协商会话密钥,确保密钥安全性。

2. TLS 不提供的保障

  1. 应用层数据的语义安全
    • TLS 仅保护传输中的数据,无法防止应用层攻击(如 SQL 注入、XSS)。
    • 例子:即使数据加密,攻击者仍可利用系统逻辑漏洞。
  2. 服务器端或客户端的数据安全
    • TLS 不保护数据在服务器端或客户端的存储安全。
    • 例子:攻击者通过恶意软件或数据泄露可直接获取明文。
  3. 证书验证漏洞
    • 如果客户端未正确验证证书(如受中间人攻击),TLS 无法提供安全保障。
  4. 流量模式分析
    • TLS 无法隐藏流量特征(如数据包大小和传输时间)。
    • 例子:攻击者通过流量模式推测用户行为(如访问网站)。

DNS

DNS Lookup 工作原理

DNS(Domain Name System)将人类可读的域名(如example.com)解析为IP地址,以便客户端能够与服务器通信。
DNS Lookup 主要步骤

  1. 本地缓存检查:客户端首先检查本地缓存是否已有域名对应的IP地址。
  2. 递归查询:
    • 递归解析器向根域名服务器(Root Server)发出请求。
    • 根服务器返回对应顶级域(TLD)服务器的地址。
    • 递归解析器查询 TLD 服务器(如.com),获取权威 DNS 服务器的地址。
    • 最后向权威服务器发出查询请求,获取最终的 IP 地址。
  3. 返回结果:递归解析器将结果返回给客户端,并进行缓存。

DNS Security

  1. **DNS over TLS (DoT)**:
    • 目的:通过 TLS 加密 DNS 查询,保护查询内容免受窃听。
    • 性能影响:
      • 增加加密开销,尤其在首次建立 TLS 连接时。
      • 开启连接后,后续查询的性能接近传统 DNS。
    • 缓存问题:
      • DoT 本身不影响缓存机制,但递归解析器需要支持 TLS 的缓存实现。
    • 对恶意 NS(Name Server)的防御:
      • DoT 只加密传输过程,但无法验证返回的响应数据是否真实(需要配合 DNSSEC)。
  • **DNSSEC (Domain Name System Security Extensions)**:

    • 设计思想:通过数字签名验证 DNS 数据的真实性和完整性,防止数据篡改和伪造。

      • 每个 DNS 响应附带签名,客户端可以验证其来源和内容。
    • 优点:

      • 防止 DNS 劫持和中间人攻击。
    • 缺点:

      • 增加数据传输的负担。
      • 部署复杂性较高,需要权威 DNS 服务器和客户端支持。

Web安全

基本模型

  • Web 安全主要保护三大核心属性:

    1. 机密性(Confidentiality):防止未授权的访问和数据泄露。
    2. 完整性(Integrity):防止数据被篡改。
    3. 可用性(Availability):确保服务在恶意攻击下持续可用。
  • 常见威胁:

    • SQL 注入
    • 跨站脚本攻击(XSS)
    • 跨站请求伪造(CSRF)
    • Session 劫持

Cookies 机制与安全应用

  1. Cookies 的作用
    • 存储用户信息(如会话 ID)。
    • 跟踪用户活动(如购物车内容)。
    • 实现状态管理(如登录状态)。
  2. 安全 Cookies 的实现
    • Secure 属性:仅通过 HTTPS 传输,防止中间人窃取。
    • HttpOnly 属性:防止 JavaScript 读取,降低 XSS 攻击风险。
    • SameSite 属性:限制跨站请求使用 Cookies,防止 CSRF。

网络安全协议

ARP攻击与DHCP攻击

1. ARP 攻击

  • 原理:攻击者通过伪造 ARP 响应,将受害者的 IP 地址映射到攻击者的 MAC 地址,劫持通信。
    • 目标:截获、篡改或中断数据传输。
    • 常见类型:
      • 中间人攻击(Man-in-the-Middle, MITM)
      • 拒绝服务攻击(DoS)

2. DHCP 攻击

  • 原理:攻击者伪造 DHCP 服务器,向客户端发送虚假配置(如错误的网关或 DNS 服务器地址),劫持流量。
    • 目标:截获敏感数据或实施中间人攻击。

3. ARP 攻击与 DHCP 攻击的相似点

  1. 攻击目标:两者都试图劫持网络通信,干扰正常的数据流向。
  2. 基于局域网:都利用局域网的弱点(缺乏认证)进行攻击。
  3. 恶意伪造:
    • ARP 攻击:伪造 ARP 响应。
    • DHCP 攻击:伪造 DHCP 配置。
  4. 典型用途:都可以用于实施 MITM 攻击或 DoS 攻击。
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.

请我喝杯咖啡吧~

支付宝
微信