密码编码学与网络安全

第1章 概览

思考题
1.1 osi安全框架是什么?
osi:开放式系统互联,七层模型。
osi安全框架是提供安全的一种组织方法,主要关注:安全攻击、安全机制、安全服务。
1.2 被动攻击主动攻击的区别
被动攻击的特点是对传输进行窃听和监测,但不涉及数据的修改;
而主动攻击会修改或伪造数据流。
因此被动攻击易预防难检测,主动攻击易检测难预防。
1.3 被动攻击主动攻击的种类
被动攻击:信息内容泄漏、流量攻击
主动攻击:伪装、重播、篡改、拒绝服务
1.4 安全服务的种类(x.800

  • 认证:保证通信的实体是他所声称的实体

  • 访问控制:阻止非授权访问

  • 数据保密性:防止数据泄漏

  • 数据完整性:保证收到的数据确实是授权实体发出的数据

  • **不可否认性:**防止任意通信实体否认发过的消息

  • **可用性服务:**根据系统的性能要求,能够按被授权的系统实体店要求访问或使用系统资源。(即当用户请求服务时,若系统能提供符合系统设计的这些服务,则系统是可用的)。
    1.5 安全机制的种类
    特定安全机制:

  • 加密

  • 数字签名

  • 访问控制

  • 数据完整性

  • 认证交换:通过信息交换来保证实体身份

  • 流量填充:在数据流空隙插入若干以阻止流量分析

  • 路由控制:为某些数据选择特殊的物理上安全的线路

  • 公正

普通安全机制:

  • 可信功能:据某些标准被认为是正确的功能
  • 安全标签:指定资源的安全属性
  • 事件检测
  • 安全审计跟踪
  • 安全恢复

关键术语

  • 真实性:能验证该用户是他声称的那个人
  • 拒绝服务:向服务器发送大量垃圾信息或干扰信息,导致服务器无法提供服务
  • 重放:将获得的信息再次发送以产生非授权访问
  • 流量分析:通过观察传输消息的频率和长度等,判断通信的性质

第一部分 对称密码

第二章 传统加密技术

学习目标
1.密码分析和穷举攻击的区别
密码分析:利用算法的特征推导出明文或者密钥
穷举攻击:攻击者对一条密文尝试所有可能的密钥直到将其转化为有意义的明文
2.简要介绍HILL密码
HILL算法将m个连续的明文字母替换成m个密文字母
例如,加密密钥 K 为 m×m 的矩阵,则每次加密 m 个明文字母,即长度为 m 的行向量 P,加密结果即长度为 m 的行向量 C。
C=E(K,P)=PK mod 26

3.描述转轮机的操作
单筒轮转机:每次按下一个输入键,圆筒就旋转一个位置,内部连线也就相应改变,因此定义了不同的单表代替密码。经过26个明文字母之后,圆筒回到初始位置,于是得到一个周期为26的多表代替密码。
【单表代换:明文字母与密文字母是一一对应的关系。
多表代换:明文字母与密文字母不是一一对应的,相同的明文可能产生不同的密文。】
多筒转轮机:使用多个圆筒,每个筒的输出接下一个筒的输入。每按一次输入键,第一层圆筒(最内层)就旋转一个位置,第一层每转完一圈,第二层旋转一个位置,第二层转完一圈,第三层旋转一个位置,依次类推。

思考题

2.1 对称密码的组成
明文、密文、加密算法、解密算法、密钥
2.2. 密码算法中的两个基本函数:置换和代替
2.3 用密码通信的两个人需要多少密钥
对称加密:一个;
非对称加密:两个(单向通信)或四个(双向通信)
2.4 分组密码和流密码的区别
流密码一次加密一个比特或者一个字节
分组密码一次处理一个分组
2.5 攻击密码的两种一般方法:
穷举、密码分析
2.6密码分析攻击类型

攻击类型密码分析者已知信息
唯密文攻击加密算法 密文
已知明文攻击加密算法 密文 同一密钥加密的名密文对
选择明文攻击加密算法 密文 分析者选择的明文及对应密文
选择密文攻击加密算法 密文 分析者选择的密文及对应明文
选择文本攻击选择明文攻击+选择密文攻击

2.7 无条件安全和计算上安全的区别
无条件安全:无论有多少可使用的密文,都无法唯一确定密文对应的明文
计算上安全:破译密码的代价超过密文的价值或破译所需时间超出密文有效期
2.8 Caesar 密码
设 k 为密钥(1~25 的整数),p 为明文,C 为密文
加密:C=E(k,p)=(p+k) mod 26
解密:p=D(k,C)=(C-k) mod 26
2.9 单表代替密码
将明文字母表的每个字母分别映射到密文字母表的唯一字母
2.10 Playfair 密码
基于一个由密钥词构成的 5×5 矩阵,将密钥词去掉重复字母后,从左到右、从上到下填入矩阵,再将剩下的字母按顺序填入(I 和 J 当作一个字母),一次加密两个字母。
2.11 单表代替与多表代替的区别
多表代替是单表代替的简单改进:在明文中采用不同的单表代替。
2.12 一次一密的两个难点
①产生大规模随机密钥有实际困难。
②庞大的密钥分配问题。
2.13 什么是置换密码?
置换密码将原来明文中的元素重新排列。
2.14 什么是隐写术?
使用字符标记、不可见墨水、针刺等方法隐藏信息的存在。
关键术语
一次一密:使用与消息等长的无重复的随机密钥加密消息,密钥使用一次后就丢弃不用。
栅栏密码:按对角线顺序写出明文,按行的顺序读出作为密文。
Vigenere 密码:最著名和最简单的多表代替密码。

第3章 分组密码和数据加密标准

思考题
3.1 为什么说研究 Feistel 密码很重要?
现在大多数对称分组加密算法都是基于Feistel分组密码结构的。

3.3 为什么采用大规模的任意可逆代替密码是不可行的?
因为这样的变换,映射本身就是密钥,对于n位的代替,密钥规模为n*2^n位,当n很大时,制作这样的系统是不实际的。
3.4 什么是乘积密码?
依次使用两个或两个以上的基本密码,所得的密码强度高于所有单个密码的强度。
3.5 混淆与扩散的区别?
扩散:使明文和密文之间的统计关系变得复杂。
混淆:使密文和密钥之间的统计关系变得复杂。
3.6 哪些参数决定了实际的 Feistel 密码算法?
分组长度、密钥长度、迭代轮数、子密钥产生算法、轮函数F

3.7 什么是雪崩效应?

明文或者密钥的某一位发生变化会导致密文的很多位发生变化。

第4章 数论和有限域的基本概念

4.1 简短定义一个群
满足封闭性、结合律、有单位元和逆元的一个二元元算的集合。

  • 封闭性:在数学中,若对某个集合的成员进行一种运算,生成的仍然是这个集合的元素,则该集合被称为在这个运算下闭合。
  • 结合律:意指在一个包含有二个以上的可结合运算子的表示式,只要算子的位置没有改变,其运算的顺序就不会对运算出来的值有影响。
  • 单位元:当它和其他元素结合时,并不会改变那些元素。
  • 逆元:逆元素是指一个可以取消另一给定元素运算的元素

4.2 简短定义一个环
环是关于加法的一个交换群,且满足乘法的封闭性、结合律、分配律

4.3 简短定义一个域
域是一个交换环(有乘法逆元、无零因子的环)、域中的任意元素(除0外),都存在一个乘法逆元。

4.6 列举三类多项式计算

  • 使用代数基本规则的普通多项式计算
  • 系数运算是模p的多项式计算
  • 系数模p,且多项式被定义为模一个n次多项式m(x)的多项式运算

第5章高级加密标准

5.1 NIST 评估 AES 候选算法的最初标准是什么?

  • 安全性
  • 成本
  • 算法和实现特征

5.2 NIST 评估 AES 候选算法的最终标准是什么?

总体安全、空间受限的环境、软硬件实现、对实现的攻击、加密和解密、密钥的灵活性、指令级并行的潜力。

5.3 Rijnael 和 AES 的区别

Rijnael允许128,192,256位的分组长度,AES只允许128位的分组长度。

5.4 使用状态数组的目的是什么?

存放128位分组在处理过程中的值。

5.5 如何构造 S 盒?

①按字节值升序逐行初始化 S 盒。第一行为{00}, {01},…, {0F};第二行为{10}, {11}, …, {1F};…(y 行 x 列字节值为{yx})
②把 S 盒中的每个字节映射为它在 GF(28)中的逆,{00}被映射为其本身。

在密码学中,S盒(Substitution-box)是对称密钥算法 执行置换计算的基本结构。S盒用在分组密码算法中,是唯一的非线性结构,其S盒的指标的好坏直接决定了密码算法的好坏。

5.6什么是字节代替?

将该字节的高四位作为行值,低四位作为列值,在s盒中查表,将对应位置的元素输出。

5.7什么是行移位变换?

状态的第一行保持不变,第二行循环左移一个字节,第三行循环左移两个字节,第四行循环左移三个字节

5.8行移位影响了状态中的多少字节?

除了状态的第一行之外,都被影响了,故共影响了12字节。

5.9 什么是列混淆?

列混淆对每列独立进行操作,每列中的每个字节被影射成一个新值值(用一个4×4 矩阵乘以状态矩阵)

5.10 什么是轮密钥加?

128位的状态与128位的轮密钥按位 XOR(异或)

5.11 简述密钥扩展算法

AES密钥扩展算法的输入是4个字,输出是一个44字组成的一维线性数组。
具体步骤如下:
①字循环,每个字中的 4 个字节循环左移一个字节
②利用 S 盒进行字节代替
③将①②的结果与轮常量 XOR

5.12 字节代替和字代替有何不同?

字节代替对状态数组进行操作,字代替对输入字进行操作。

5.13 行移位与字循环有何不同?
字循环仅相当于行移位中对第二行的操作。

5.14 AES 解密算法和其等价逆算法之间有何不同?

AES解密算法:虽然加密、解密中密钥扩展的形式一样,但加解密中变换的顺序不同。

等价逆算法:与加密算法有同样的结构,且变换顺序相同。

不可约多项式:即该多项式不能被表示为次数更小的两个多项式的乘积。

补充:AES 的参数
明文分组长度(位) 128 128 128
密钥长度(位) 128 192 256
轮数 10 12 14
每轮的密钥长度(位)128 128 128
扩展密钥长度(字) 44 52 60

第6章 分组密码的工作模式

1. 分组密码工作模式描述与应用

ECB模式:用相同的密钥分别对明文分组独立加密,例如:单个数据的安全传输

CBC:加密算法的输入是当前明文和上一密文的XOR,例如:面向分组的通用传输和认证

CFB:一次处理s位,加密算法的输入是上一密文,加密算法输出的前s位与s位明文分组XOR,作为当前分组的密文,例如:面向数据流的通用传输和认证
数据流(data stream)是一组有序,有起点和终点的字节的数据序列。包括输入流和输出流。

OFB:加密算法的输入是上一加密算法的输出,当前加密的输出与明文分组XOR作为当前密文,例如:噪声信道上的数据流传输

CTR:每个明文分组与经过加密的额计数器xor,对后续分组的额计数器递增,例如:面向分组的额通用传输和用于高速需求

2. 分组密码工作模式优缺点

ECB:
优点:
①实现简单
②可并行加密
③硬件实现速度快
缺点:
保留了单表代替的缺点,
相同明文产生相同密文,
不能隐藏统计规律。

CBC 优点:
①隐藏了明文的统计规律
②自同步
缺点:
错误传播

CFB优点:
①适用于每次处理 s 位明文的特殊要求
②自同步
缺点:
①错误传播
②加密效率低

OFB 优点:
错误不会传播
缺点:
不能实现完整性认证

CTR优点:
①设计简单
②效率高
③可预处理(提高了吞吐量)
④可并行计算
⑤可证明安全性
缺点:
始终要保存一个状态值,
且加解密双方必须同步。

2. 简单介绍 XTS-AES 工作模式

AES 分组加密操作模式有三种 ECB CBC XTS我们知道一个功能模块 如果所有的输入相同 那么输出也相同 AES模块也一样 大量数据输入之后很容易找到一些规律, 这就是明显的攻击点。ECB到CBC到XTS主要需要解决的问题是 (1 相同的数据块 得到的密文是否相同 2 能否随机访问各个数据块 解密一个数据块是否需要解密相邻的其他数据块)ECB 相同的数据块 密钥一样的话 输出的密文也一样 这样有严重的漏洞 容易被攻击。
CBC 引入了一个IV值递归 上一组加密后产生新的IV值作为下一数据块加密的输入 这样至少有个一个参数不同 但带来的问题是没有办法随机访问各个区块了,访问某个区块必须解出前一个区块数据。
XTS 加入了tweak key 与 AES key 互相配合, 各个区块用同样的AES key 但Tweak key 不相同 比如设置为与区块的index 成对应关系, 这样各个区块数据加密解密互相独立(独立的tweak key)
综上所述 XTS 相比 ECB CBC解决的两个问题是
1 相同的数据块得到的密文不可以相同
2 不同数据块可以独立加密和解密

6.1 什么是三重加密?

对明文分组进行三次加密,上一次加密的输出结果,作为下一次加密的输入。
典型的情况是,第二阶段使用解密算法而不是加密算法。

6.2 什么是中间相遇攻击?
给定明密文对(p,C),C=E(K2, E(K1, p))。攻击如下:

  1. 将明文p按所有可能的密钥k1加密,将加密结果放入一个表中
  2. 将密文C按所有可能的密钥k2解密
  3. 每解密一次就将结果与表中的数据比对,若相同,则用这两个密钥进行验证,如果产生正确的密文,则认为密钥是正确的。

6.3 三重加密中用到多少个密钥?
可三个阶段使用不同密钥(3个);
也可第一阶段和第三阶段使用相同密钥(2个)

6.4 为什么 3DES 的中间部分采用解密而不是加密?

没有密码学上的含义,仅仅是为了让使用3DES的用户可以实现单DES

这样做的好处是当你用同样的key(即k1=k2=k3=k)带入E(k3,D(k2,E(k1,m)))时,里面两层的D和E消去,3DES就会退化为一个普通的DES。

6.5 为什么某些分组密码的操作模式仅使用加密算法而其他模式既使用加密算法又使用解密算法?

对于实时性强,用于高速需求时,既使用加密算法又使用解密算法会降低效率。

第7章 伪随机数的产生和流密码

1. 真随机数发生器、伪随机数发生器、伪随机函数的区别
真随机数发生器把一个很随机的源(熵源)作为输入。熵源是从计算机的物理环境抽取的,比如键盘敲击、鼠标移动等。
伪随机数发生器用确定的算法来生成随机数,这些数并非统计随机但可以经受随机性检测。
伪随机函数和伪随机数发生器的唯一区别是产生位的长度。
伪随机数发生器:产生不限长位流。
伪随机函数:产生固定长度的伪随机位串。

2. 对伪随机数发生器(PRNG)的要求
(1)随机性:
①均匀性:0 和 1 出现概率大约相等。
②可伸缩性:任意抽取的子序列都应通过随机性测试。
③一致性:对于所有的种子,发生器的行为都必须具有一致性。
(2)不可预测性:
①前向不可预测:如果不知道种子,不管知道序列的前多少位都不能预测序列的下一位。
②后向不可预测:从产生的任何值都不能推断出种子。

3. 分组密码如何构建伪随机数发生器
CTR、OFB 模式。

4. 什么是偏差?如何消偏?
一个真随机数发生器的输出有时会产生偏差(0 和 1 出现的概率不同)。消偏算法很多,例如将一个位串通过 Hash 函数进行处理。

7.1 随机数的统计随机性和不可预测性的区别
随机性即满足:
①均匀性:0 和 1 出现的频率大致相等。
②独立性:任意子序列与其他子序列相互独立。
不可预测性:不能由前面的随机数推出后面的随机数。

7.2 设计流密码的重要考虑因素

1.加密序列的周期要长
2.密钥流尽可能接近真随机数的特征
3.为防止穷举攻击,密钥应足够长

7.3 为什么流密码重用密钥不好?
如果重用密钥,那么密文流的 XOR 就是明文的 XOR。如果明文是一些已知属性的字节流,容易对其进行密码分析。

7.4 RC4 使用了什么原语造作?
RC4(来自Rivest Cipher 4的缩写)是一种流加密算法,密钥长度可变。

应用:SSL/TLS,IEEE 802.11 中的 WEP(Wired Equivalent Privacy, 有线等效保护)和 WPA(Wi-Fi Protected Access, Wi-Fi 受保护访问)等

算法描述:S 为 256 个字节的状态向量,K 为密钥,T 为临时向量。
①初始化
for i = 0 to 256 do
S[i] = i;//S 中的元素按升序被置为 0~255
T[i] = K[ i mod keylen ];
//若密钥 K 为 256 字节,则将 K 赋给 T;若 K 的长度为 keylen(keylen<256),
则将 K 的值赋给 T 的 keylen 个元素,并循环使用 K 的值给 T 剩下的元素赋值
②S 的初始置换
j = 0;
for i = 0 to 255 do
j = ( j + S[i] + T[i] ) mod 256;
Swap ( S[i], S[j]);//根据 T,将 S[i]置换成 S 中的另一个字节
③密钥流的产生
i, j = 0;
while (true)
i = ( i + 1 ) mod 256;
j = ( j + S[i] ) mod 256;
swap ( S[i], S[j]);
t = ( S[i] + S[j] ) mod 256;
k = S[t];

第8章 数论入门

1. 费马小定理
若 p 是素数,𝑎是任意整数,则𝑎^𝑝 ≡ 𝑎 (𝑚𝑜𝑑 𝑝)
2. 欧拉定理
对任意互素的𝑎和 n,有𝑎^ɸ(𝑛) ≡ 1 (𝑚𝑜𝑑 𝑛)
8.3 什么是欧拉函数?
ɸ(n),指小于 n,且与 n 互素的正整数的个数。
8.4 Miller-Rabin 测试可以确定一个数不是素数,但不能确定一个数是素数,该算法如何用来进行素性测试?

算法输入整数 n,若 n 不是素数,则返回“合数”;若 n 可能是素数也可能
不是,则返回“不确定”。重复使用 Miller-Rabin 算法,若连续 t 次返回“不确定”,t 足够大时,可以认为 n 是素数。

8.5 一个数的本原根是什么?
如果使得a^m≡1 mod n成立的最小正幂m满足m=φ(n),则称a是n的本原根。
其中φ(n)为欧拉函数。
8.6 指标和离散对数的区别

这两个是同义词。
双射:既是单射又是满射的映射。
阶:若(𝑎, n) = 1,使𝑎^𝑚 ≡ 1 (𝑚𝑜𝑑 𝑛)成立的最小正幂 m,即为𝑎 (mod n)的阶,也称𝑎 (mod n)的指数,或𝑎所产生的周期长。

第9章 公钥密码学和 RSA

9.1 公钥密码体制的主要成分是什么?
公钥、私钥、加密算法、解密算法、明文、密文。

9.2 公钥和私钥的作用是什么?
公钥是公开的,私钥是保密的。A 将消息传给 B,可以用自己的私钥加密,B 收到后用 A 的公钥解密。或者 A 用 B 的公钥加密,B 收到消息后用自己的私钥解密。

9.3 公钥密码体制的三种应用是什么?
①加密解密
②数字签名
③密钥交换

9.4 公钥密码体制的安全性应满足哪些要求?
①两个密钥之一必须保密
②若无其他信息,解密消息不可行
③已知算法和其中一个密钥以及若干密文,不能推出另一个密钥。

9.5 什么是单向函数?
计算函数值容易,但求逆不可行。

9.6 什么是单向陷门函数?
计算函数值容易,且在缺乏一些附加信息时,求逆不可行。
但已知这些附加信息时,可在多项式时间内计算出函数的额逆
拓展:在输入长度的多项式时间内解决,即若输入长度为n,则计算函数值所需时间与与𝑛^𝑎成正比(𝑎是一个固定常数),这样的算法成为 P 类算法。

9.7 用一般术语描述一个挑选素数的有效过程

1.随机选择一个期望大小的奇数n
2.随机选择一个整数a<n
3.执行素性测试。若n未通过测试,则转1
让n依次除以2到sqrt(n)以内的整数。如果有出现除尽的情况,则为合数。
4.若n通过足够多次,则接收n,否则转2

关键术语:
计时攻击:攻击者可以通过记录计算机解密消息所用的时间来确定私钥。
如何防止计时攻击?
①保证幂运算时间不变
②在算法中加入随机延时
③执行幂运算前乘上随机数

对RSA算法的可能的攻击:

  • 穷举攻击
  • 数学攻击
  • 计时攻击
  • 基于硬件故障的攻击
  • 选择密文攻击

第10章 密钥管理和其他公钥密码体制

1.用非对称密码产生伪随机数的两种技术

  • 基于RSA的PRNG
  • 基于椭圆曲线的PRNG

10.1 简要说明 Diffie-Hillman 密钥交换

Diffie-Hellman算法是Whitefield Diffie和Martin Hellman在1976年公布的一种秘钥交换算法。
它是一种建立秘钥的方法,而不是加密方法,所以秘钥必须和其他一种加密算法结合使用。
这种秘钥交换技术的目的在于使两个用户安全的交换一个秘钥一遍,后面的报文加密。

背景:

DH秘钥交换算法的有效性依赖于计算离散对数的难度。
如下定义离散对数:首先定义一个素数p的原根,为其各次幂产生1到p-1的所有整数根。
如果a是素数p的一个原根,那么
a mod p ,a2 mod p,…,ap-1 mod p 是各不相同的整数,并且以某种排列方式组成了1~(p-1)的所有整数根,即:如果a是素数p的一个原根,那么数值a mod p ,a2 mod p,…,ap-1 mod p 是各不相同的整数,并且以某种排列方式组成了从1~(p-1)的所有整数。
对于一个整数b和素数p的一个原根a,可以找到惟一的指数i,使得
b=ai mod p , 其中0≤i≤p-1
指数i称为b的以a为基数的模p的离散对数或者指数。

离散对数

当模m有原根时,设l是模m的一个原根,则当x≡lk (mod m)时:
Indlx=k(mod ø(m))

Indlx 为以l为底 模ø(m)时的离散对数值

本原根

如果使得am≡1 mod n成立的最小正幂m满足m=φ(n),则称a是n的本原根。 其中φ(n)为欧拉函数。
欧拉函数:对正整数n,欧拉函数是小于或等于n的正整数中与n互质的数的数目因此(φ(1)=1)

原根:

若a模m的阶等于φ(m),则称a为模m的一个原根。

DH秘钥交换算法

1、有两个全局公开的参数,一个是素数q和q的一个原根a。
2、假设用户A和B希望交换一个密钥,用户A选择一个作为私有密钥的随机数XA(<q),计算YA=aXA mod q.A对XA的值保密,把YA、a和q传给B。用户B选择一个随机数XB(<q),计算YB=aYA mod q.把YB传给A。
3、用户A产生共享密钥K=YBXA mod q
用户B产生共享密钥K=YAXB mod q
这两个计算产生相同的结果
因此相当于双方已经交换了一个相同的秘密密钥。

4、因为XA和XB是保密的,一个敌对方可以利用的参数只有q、a、YA和YB。因而敌对方被迫取离散对数来确定密钥。
为了使这个例子变得安全,必须使用非常大的XA, XB 以及p, 否则可以实验所有的可能取值。

DH算法具有两个吸引力的特征:
仅当需要时才生成密钥,减小了将密钥存储很长一段时间而遭受攻击的机会
除了对全局参数的约定以外,密钥交换不需要事先存在的基础结构
DH也有不足:
没有提供双方身份的任何信息
它是计算密集型的,所以很容易遭受阻塞型攻击,即:对手请求大量的密钥。受攻击者花费了相当多的计算资源来求解无用的幂系数而不是在做真正的工作
没办法防止重演攻击
容易遭受中间人攻击。第三方C在和A通信时扮演B;和B通信时扮演A。A和B都与C协商了一个密钥,然后C就可以监听和传递通信量。中间人的攻击按如下进行:

(1)B在给A的报文中发送他的公开密钥。

(2)C截获并解析该报文。C将B的公开密钥保存下来并给A发送报文,该报文具有B的用户ID但使用C的公开密钥YC,仍按照好像是来自B的样子被发送出去。A收到C的报文后,将YC和B的用户ID存储在一块。类似地,C使用YC向B发送好像来自A的报文。

(3)B基于私有密钥XB和YC计算秘密密钥K1。A基于私有密钥XA和YC计算秘密密钥K2。C使用私有密钥XC和YB计算K1,并使用XC和YA计算K2。

(4)从现在开始,C就可以转发A发给B的报文或转发B发给A的报文,在途中根据需要修改它们的密文。使得A和B都不知道他们在和C共享通信。

10.2 什么是椭圆曲线?
y2 +axy+by=x3 +cx2 +dx+e

10.3 什么是椭圆曲线的零点?
零点记为 O,是加法的单位元,对椭圆曲线上的任一点 P,都有 P+O=P

10.4 椭圆曲线上同在一条直线上的三个点的和是什么?
P+Q+R=O
素曲线:在𝑍𝑝上定义的椭圆曲线。
二元曲线:在GF(2𝑚)上构造的椭圆曲线。

第11章 密码学 Hash 函数

1. 密码学 Hash 函数的基本结构

Hash函数又称哈希函数、散列函数、杂凑函数。
它是一种单向密码体制。即:从一个明文到密文的不可逆映射,只有加密过程,没有解密过程。
hash函数h将可变长度的数据块M作为输入,产生固定长度的额hash值h=H(M)
在安全应用中使用的Hash函数称为密码学hash函数。(单向性,抗碰撞性)
弱抗碰撞性:给定一个消息M,要找到另一个消息M’,使得H(M)=H(M’)很难
强抗碰撞性:要找到两个随机明文M和M’,使得H(M)=H(M’)很难

Hash函数结构:(p249)
将输入消息分为L个固定长度的分组,每一分组长为b位,最后一个分组不足b位时需要将其填充为b位,最后一个分组包含输入的总长度。由于输入中包含长度,所以攻击者必须找出具有相同的Hash值且长度相等的两条消息,或者找出两条长度不等但加入消息长度后Hash值相同的消息,从而增加了攻击的难度。
Hash函数中重复使用了压缩函数f,它的输入包括两个部分:前一步得出的n位结果(谅解变量),和一个b位分组,输出为一个n位分组。
链接变量的初值由算法在开始时指定。

-消息认证:用来验证消息完整性的一种机制或服务

Hash码能通过如下各种不同的方法用于提供消息认证(p241)

  1. 使用对称密码算法加密消息和Hash码。因为只有A和B共享密钥,所以消息必然是发自A处,并且未被更改过。这里附加的hash码提供了实现认证功能的结构。因为对于整个消息以及hash码都使用了加密,保密性也被提供。
  2. 使用对称密码算法只对hash码加密。对无需保密性的应用,这种方案减少了加解密操作的负担。
  3. 不使用加密算法,仅使用hash函数也能实现消息认证。该方案假设通信双方共享相同秘密值s。发送方A将消息M和秘密值s串联后计算其hash值,并将得到的hash值附在消息M后发送。因为接收方B同时掌握s,所以能重新计算该hash值进行验证。由于秘密值s本身并没有在信道传送,攻击者不能够对在信道上拦截的消息进行修改,进而也不能制作假消息。
  4. 通过将整个消息和hash值加密,能够在方案3的基础上提供保密性。
    当hash函数用于提供消息认证功能时,hash函数值通常称为消息摘要

-数字签名

在进行数字签名过程中使用用户的私钥加密消息的hash值,其他任何知道该用户公钥的人都能够通过数字签名来验证消息的完整性。

Hash码用于提供数字签名的方案

  1. 使用发送方的私钥,利用公钥密码算法仅对hash码进行加密。这种方法可以提供认证;由于只有发送方可以产生加密后的hash值,所以这种方法也提供了数字签名,这就是数字签名的本质。
  2. 若希望保证保密性又希望有数字签名,则先用发送方的私钥对hash码进行加密,再用对称密码中的密钥对消息和公钥算法加密结果进行加密,这种技术比较常用。

-其他应用

单向口令文件
入侵检测
病毒检测
构建随机函数(PRF)或用做伪随机数发生器(PRNG)

安全Hash算法

安全Hash算法(SHA)是使用最广泛的Hash函数。
SHA算法建立在MD4算法之上,其基本框架与MD4相似

SHA-1产生160位的Hash值。

SHA-2:SHA-256(hash长度256位),SHA-384,SHA-512

SHA-512逻辑

算法的输入是最大长度小于2128 位的消息,输出是512位的消息摘要,输入消息以1024位的分组为单位进行处理。(p251)

  1. 附加填充位。填充消息使其长度模1024与896(1024-128)同余【即:长度≡896(mod 1024)】,即使消息已经满足上述长度要求,仍然需要进行填充,因此填充位数在1~1024之间。

  2. 附加长度。在消息后附加一个128位的块,将其视为128位的无符号整数(最高有效字节在前),它包含填充前消息的长度。
    前两步的结果是产生了一个长度为1024整数倍的消息。扩展消息的长度为N*1024位

  3. 初始化Hash缓冲区。hash函数的中间结果和最终结果保存于512位的缓冲区中,缓冲区用8个64位的寄存器(a,b,c,d,e,f,g,h)表示,并将这些寄存器初始化为下列64位的整数(16进制值)

  4. 以1024位的分组(128字节)为单位处理消息。算法的核心是具有80轮运算的模块,该模块标记为F。
    每一轮都把512位缓冲区的值abcdefgh作为输入,并更新缓冲区的值。
    第一轮时,缓冲区里的值是中间值Hi-1 。每一轮,如第t轮,使用一个64位的值Wi ,该值由当前被处理的1024位消息分组Mi导出,导出算法是下面将要讨论的消息扩展算法。每一轮还将使用附加的常数Kt(0≤t≤79),用来使每轮都运算不同。这些常数的获得方法如下:对前80个素数开立方根,取小数部分的前64位。这些常数提供了64位随机串集合,可以初步消除输入数据里的统计规律。
    第80轮的输出和第一轮的输入Hi-1相加产生Hi。缓冲区中的8个字和Hi-1中对应的字分别进行模264的加法运算。

  5. 输出。所有的N个1024位分组都处理完以后,从第N阶段输出的是512位的消息摘要。

11.1 安全 Hash 函数需要具有哪些特征?

  1. 输入长度可变
  2. 输出长度固定
  3. 软硬件皆可实现
  4. 抗原像攻击(单向性)
  5. 抗弱碰撞性
  6. 抗强碰撞性
  7. 伪随机性

11.2 抗强碰撞性和抗弱碰撞性的区别
抗弱碰撞性:对于任意指定的 x,找到满足H(x) = H(y) (𝑦 ≠ 𝑥)的 y 在计算
上不可行。
抗强碰撞性:找到任意满足H(x) = H(y)的偶对(𝑥, 𝑦)在计算上不可行。

11.3 Hash 函数中的压缩函数的作用?
使输出得到固定长度的分组

11.4 高位在前格式和低位在前格式的区别
高位在前:高字节存在低地址(SHA)
低位在前:低字节存在低地址(MD5)

11.5 SHA 中使用的基本算术和逻辑函数是什么?
模264加,循环移位,与,或,非,XOR。

11.6 NIST 评估 SHA-3 候选算法的标准
①安全性:评估候选算法之间以及与 SHA-2 比较的相对安全性。
②效率:具有高效率和低内存要求。
③算法和实现:灵活性、在各种软硬件实现上的适用性。

11.7 海绵结构的定义(p257)
SHA-3的基本迭代结构称为海绵结构。
在海绵函数中,输入消息被分块为固定长度的分组。每个分组逐次作为每轮迭代的输入,同时上轮迭代的输出也反馈至下轮到迭代中,最终产生一组输出块。
海绵函数由三组参数定义:
f为内部函数,用于处理每轮都输入分组
r为输入分组的位长度,称其为位速率
pad为填充算法

海绵函数允许输入长度和输出长度都可变。
由于具有这个灵活的结构特点,海绵函数能够用于设计Hash函数(固定输出长度)、伪随机数发生器(固定输入长度),以及其他密码函数。
海绵结构包括2个阶段:
吸水阶段包括:对于每轮迭代,通过填充若干个0,将输入数据块的长度从r位扩展为b位;然后将扩展后的消息分组和s位进行XOR异或运算得到b位的结果,并作为迭代函数f的输入;f函数的输出作为下一轮迭代中s的取值。
如果需要的输出长度满足l≤b,那么在吸水阶段完成后,则返回s的前l位,海绵结构的运行结束。否则,海绵结构进入挤压阶段。首先,s的前l位被保留作为输出分组Z0,然后在每轮迭代中通过重复执行f函数来更新s的值,s的前l位被依次保留作为输出分组Zi,并与前面已生成的分组连接起来。该处理过程共需要j-1次迭代,直到满足(j-1)r<l≤jr.将各输出分组连接Y的前l位作为输出返回。

11.8 迭代函数 f 的内部结构
SHA-3的迭代函数f,输入是1600位的状态变量S,将s转换成由64位纵组成的5*5矩阵,对矩阵进行24轮操作,每轮5步。

11.9 f 的各步函数

关键术语
生日攻击:23 人中,至少有两个人生日相同的概率大于 0.5。(设哈希函数 H 有 2𝑚个可能的输出,即输出长 m 比特,如果 H 的 k 个随机输入中至少有两个相同
输出的概率大于 0.5,则k ≈ 2m/2)

第12章 消息认证码

学习目标
1.MAC的安全性需求
MAC:消息认证码。它是消息和密钥的函数,它产生定长的值,以该值作为认证符。
T = MAC(K, M)
其中 M 是变长的消息,K 是收发双方共享的密钥,MAC(K, M)是定长的认证
符。假设攻击者已知 MAC 函数,但不知道 K。MAC 函数应具有以下性质:
①构造能产生相同 MAC 值的消息,在计算上不可行。
②可以阻止基于选择明文的穷举攻击
③认证算法的某部分或位不应比其他部分或位更弱

12.1 消息认证是为了针对哪些攻击?
伪装、内容修改、顺序修改、计时修改

12.2 消息认证或数字签名的两层功能

  1. 下层有产生认证符的函数(认证符是用来产生认证消息的值)
  2. 上层协议将该函数作为原语,使接收方可以验证消息的真实性

原语:计算机进程的控制通常由原语完成。所谓原语,一般是指由若干条指令组成的程序段,用来实现某个特定功能,在执行过程中不可被中断。

12.3 产生消息认证有哪些方法?

  1. Hash函数:它是将任意长的消息映射为定长的Hash值的函数,以该Hash值作为认证符。
  2. 消息加密:对整个消息加密后的密文作为认证符。
  3. 消息认证码(MAC):它是消息和密钥的函数,它产生定长的值,以该值作为认证符。

12.4 对称加密和错误控制码一起用于消息认证时,这两个函数必须以何种顺序
执行?

先附错误控制码,再加密(内部错误控制)
理由:对于内部错误控制,攻击者很难产生解密之后错误控制码正确的密文,故可以提供认证。

12.5 什么是消息认证码?

使用密钥和消息生成的一个固定长度的短消息块。

12.6 MAC 和单向 Hash 函数之间的区别

Hash函数是不带密钥的,Hash函数本身不提供消息认证
Mac利用密钥和消息生成,用于认证。

12.7 为了提高消息认证码,可以用何种方式保证 Hash 值的安全?

  1. 用对称密码对消息及附加在消息后的Hash值一起加密
  2. 用对称密码加密hash值
  3. 用发送方私钥加密hash值
  4. 用发送方私钥加密hash值 将结果附加在消息后,再用对称密码加密
  5. 通信双方共享秘密值s,计算消息加上s的hash值
  6. 通信双方共享秘密值s,计算消息加上s的hash值,再用对称密码加密

12.8 为了攻击 MAC,一定要恢复密钥吗?
不需要。可以攻击mac值,这种攻击的目的是对给定消息产生有效的mac或者对给定mac产生相应的消息。

12.9 为了使用一个 Hash 函数代替另一个 Hash 函数,HMAC 中需要进行哪些
改变?

HMAC:基于hash的mac

  • 一般像MD5和SHA这样的密码箱hash函数,软件执行速度比诸如DES这样的对称分组密码要快
  • 有许多共享的密码箱hash函数代码库

HMAC只需删去现有的hash函数模块,并加入新的模块。

第13章 数字签名

思考题
13.1 消息认证中出现的两种争议

否认、伪造。

13.2 数字签名应该具有哪些性质?

①能验证签名者、签名时间
②能认证被签的内容
③签名由第三方仲裁

13.3 数字签名应满足哪些要求?

①数字签名是与消息相关的二进制位串
②签名必须使用发送方独有的信息,防止伪造和否认
③产生、识别、验证容易
④伪造签名在计算上不可行
⑤保存副本不可行

13.4 直接数字签名和仲裁数字签名的区别

直接签名只涉及通信双方,这种方法的缺点是依赖发送方私钥的安全性,发送方可声称自己的私钥被盗用而否认自己发送过消息。
仲裁数字签名在通信双方的基础上引入仲裁者

13.5 签名函数和加密函数应以什么顺序出现?

先签名后加密。攻击者难以伪造签名。

13.6 直接数字签名会遇到哪些威胁?

①发送方声称私钥丢失,否认自己发送过消息
②X 的私钥可能在时刻 T 被盗用,到攻击者可用 X 的签名签发一条消息并
加盖 T 或 T 之前的时间戳。

第四部分 相互信任

第14章 密钥管理和分发

思考题
14.1 通信双方分发密钥的方法
①A 用物理方式传送密钥给 B
②第三方选择密钥后用物理方式分发给 A 和 B
③若 AB 先前使用过一个密钥,A 可用旧密钥加密新密钥后传给 B
④A 和 B 到第三方有加密连接,C 可在加密连接上传送密钥给 A 和 B

14.2 会话密钥和主密钥的区别

主密钥是用户之间长期共享的密钥,用于加密会话密钥等信息。而会话密钥往往用于逻辑连接中,随着连接的断开而丢弃。

14.3 什么是临时交互号?

临时交互号是某次传输的唯一标志,可以是时间戳、计数器或随机数。

14.4 什么是密钥分发中心?

KDC(Key Distribution Center)是一个可信的第三方,负责为用户分发密钥。

14.5 基于公钥加密的两种不同的密钥分发方法是什么?

①公钥方案分发会话密钥
②公钥方案分发主密钥

14.6 公钥分发模型(4 种)

①公开发布
②公开可访问目录
③公钥授权
④公钥证书

14.7 公钥目录的必要要素是什么?

通信方姓名、通信方公钥。

14.8 什么是公钥证书?

证书包括公钥和公钥拥有者的标志,整个数据块由可信第三方签名。

14.9 公钥证书的使用有哪些要求?

①任何通信方都可以读取证书并确定证书拥有者的姓名和公钥
②任何通信方都可以验证证书出自证书管理员
③只有证书管理员可以产生并更新证书
④任何通信方都可以验证证书的时效性

14.10 X.509 的用途
用于规范公钥证书的格式。

14.11 什么是证书链?
是一连串的认证过程,以根证书为起点,通过层层认证,使终端实体证书的
拥有者可以获得转授的信任,以证明身份

14.12 X.509 证书如何撤销?
公钥的所有者可以发放一张撤销一个或多个证书的 CRL(证书撤销列表)
CRL: Certificate Revocation List

端到端加密:端到端加密是在源结点和目的结点中对传送的消息进行加密,因此
消息的安全性不会因中间结点的不可靠而受到影响。
公钥目录:管理用户信息数据库的服务器,其中用户信息包含用户名到网络地址
的映射等。
X.509:用于规范公钥证书的格式。包含元素:版本号、序列号、签名算法标志、
发行商姓名、有效期、证书主体名、证书主体公钥信息、发行商唯一标志、证书
主体唯一标志、扩展、签名。

第15章 用户认证

  1. 身份鉴定与身份核实的区别
    鉴定:给安全系统提供身份标志。
    核实:提供或者产生可以证明实体与标志之间对应关系的认证信息。

  2. 概述基于对称加密的远程用户认证技术
    使用一个两层的加密密钥为通信提供保密性,该方案需要一个可信的密钥分
    发中心(KDC),每一方和 KDC 都共享一个主密钥,KDC 负责产生通信方之间
    的会话密钥,并使用主密钥对会话密钥加密后分发。

  3. 用户认证和消息认证的区别
    用户认证:是使其声明的身份有效的方式。
    消息认证:允许通信双方验证接收到的消息是否被篡改或资源是否可信。

  4. 联合身份管理系统的必要性
    可以提供身份共享,使得用户只需要一次认证就可以访问多个域中的应用和
    资源。

  5. Kerberos 在多个领域中的使用

Kerberos是一种计算机网络授权协议,用来在非安全网络中,对个人通信以安全的手段进行身份认证。

思考题
15.6 三种确保分布式环境中用户认证安全的方法

①由客户端确保用户的身份,由服务器提供基于用户标志 ID 的安全策略
②客户端向服务器提供身份认证,相信客户端提供用户身份
③客户端向服务器提供身份认证,同时服务器向客户端提供身份认证
(注:封闭的环境应选择①②,开放的环境应选择③。Kerberos 支持③)

15.7 Kerberos 的四个需求

①安全性:不能通过冒充其他用户获取有用信息
②可靠性:使用分布式服务器结构,即一个系统可以备份其他系统
③透明性:用户除输入口令外,不需要知道其他信息
④可伸缩性:系统应支持大量的客户端和服务器

15.8 组成一个完全服务的 Kerberos 环境需要哪些实体?
客户端 C、认证服务器(AS)、票据授权服务器(TGS)、应用服务器 V

15.9 在 Kerberos 中,什么是域?
Kerberos 域是一组受管节点,它们共享统一 Kerberos 数据库。

关键术语

  1. 联合身份管理
  2. 填充密码块链模式 PCBC(Propagating Cipher Block Chaining)

第五部分 网络安全与 Internet 安全

第16章 网络访问控制与云安全

  1. 一个网络访问控制系统的主要元素
    ①访问请求者 AR(Access Request)
    AR 是试图访问网络的节点,他可能是NAC系统管理的任何设备,包括工作站、服务器、打印设备、摄像机及其他具有ip的设备。AR通常被认为是请求者或者简单说是客户端
    ②策略服务器
    根据AR的信息和企业制定的策略,策略服务器决定哪些访问是被允许的。策略服务器通常依赖后台系统,包括反病毒软件、补丁管理系统及用来帮助决定主机环境的用户字典。
    ③网络接入服务器(NAS)
    NAS是一个接入控制点。为用户远程连接企业的内部网络提供访问控制。通常它也被称为媒体网关,远程访问服务器或者策略服务器。一个NAS可能包含自己的认证服务器,或是依赖策略服务器提供的认证服务。

  2. 主要的网络访问实施方法
    实施方法是为了控制对企业网络的访问而实施在AR上的行为。许多供应商支持多种实施法,允许用户使用一种或多种方法的结合来进行配置。
    ①IEEE802.1X
    这是一个链路层协议,它在一个端口被分配ip之前执行授权。ieee802.1x使用可扩展授权协议进行授权。
    IEEE802.1X协议是基于Client/Server的访问控制和认证协议。它可以限制未经授权的用户/设备通过接入端口(access port)访问LAN/WLAN。
    ②虚拟本地局域网 VLAN
    ③防火墙
    一个防火墙提供一个表单。它允许或者拒绝企业主机和外部用户之间的网络流量。
    ④DHCP 管理(DHCP:Dynamic Host Configuration Protocol 动态主机配置协
    议,是一个可以给主机动态分配 IP 的协议)
    动态主机配置协议是一个可以给主机动态分配ip的网络协议。一个dhcp服务器收到dhcp请求,然后进行ip分配

16.2 什么是 EAP?
ExtensibleAuthentication Protocol,可扩展认证协议。是一个网络访问和授权
协议的框架。EAP 提供很多协议信息,可封装多种认证方法,可适应多种链路
网络的认证需求。

16.3 四种 EAP 认证方法
①EAP-TLS (EAP Transport Layer Security):将 TLS 协议封装到 EAP 消息中
②EAP-TTLS (EAP Tunneled TLS):与①基本相同,不同之处在于服务器首
先要通过证书向客户端证明自己
③EAP-GPAK (EAP Generalized Pre-Shared Key):是一种使用交互认证的方
法,会话密钥有预共享密钥(PSK)产生
④EAP-IKEv2:基础是互联网密钥交换协议版本 2(IKEv2)

16.4 什么是 EAPOL?
EAP over LAN,基于局域网的可扩展认证协议

16.5 IEEE802.1X 的功能是什么?
IEEE802.1X 是一种应用于 LAN交换机和无线 LAN接入点的用户认证技术,
为局域网提供访问控制。

16.6 定义云计算
云计算:一种能够对共享的联合可配置计算资源进行普遍、方便、按需的网
络访问模式。
云计算有5个基本特性、3种服务模式、4种部署模式
5个基本特性:广域网络访问。在网络和通过标准机制的访问都是可用的。
快速弹性。云计算可以使你根据自己的特殊服务需求来扩展或减少资源
计量服务。
按需自助服务。
资源组合。
4种部署模式:公有云、私有云、社区云、混合云。

16.7 列出并定义 3 种云服务模式
①软件即服务 SaaS:用户可以使用提供者在云上提供的应用程序。
②平台即服务 PaaS:用户可以使用提供者支持的编程语言或工具创建自己
需要的应用程序并部署在云平台上。
③基础设施即服务 Iaas:用户可以部署、运行任意的系统或应用软件。

16.8 什么是云计算相关基础设施?
包括服务器、网络、存储、托管基础设施

16.9 描述一些主要的对于云的安全威胁
①云计算的滥用。比如拒绝服务攻击、垃圾邮件、恶意代码攻击…
②不安全的接口和 API(Application Programming Interface,应用程序编程接
口)
③恶意的内部成员
④共享技术问题
IaaS提供商通过共享架构,以一种可扩展的方式来实现它们的服务。
⑤数据丢失或泄露
⑥账户或服务劫持
⑦未知的安全威胁

第17章 传输层安全

  1. 总结出 Web 安全威胁和 Web 流量安全方法
    (1) Web 安全威胁:
    ①完整性:篡改消息
    ②保密性:窃听
    ③拒绝服务:破坏用户线程、用假消息使机器溢出、填满硬盘或内存、使用
    DNS 攻击来孤立机器
    ④认证:伪装成合法用户
    (2) Web 流量安全方法:
    ①网络层:使用 IPsec(优点:对终端用户和应用均是透明的、提供通用的
    解决方案、有过滤功能。
    IPsec是一个协议包,通过对IP协议的分组进行加密和认证来保护IP协议的网络传输协议族
    ②传输层:安全套接层(SSL, Secure Sockets Layer)和传输层安全协议(TLS,
    Transport Layer Security)。
    ③应用层:为给定应用定制,比如 Kerberos。

  2. 概述 SSH
    Secure Shell
    SSH 是一种保障网络通信安全的协议,通过在网络中创建安全通道来实现
    SSH 客户端和服务器之间的连接。

17.1 图 17.1 中每种方法的优点
(1)IPsec:对终端用户和应用均是透明的,并且提供通用的解决方案,还具有
过滤功能。
(2)SSL:利用了 TCP 的可靠和流量控制机制。
(3)特定安全服务:为给定应用定制。

17.2 SSL 包含哪些协议?
SSL 记录协议、SSL 握手协议、SSL 修改密码规范协议、SSL 警报协议。

17.3 SSL 连接和 SSL 会话的区别
连接:是提供合适服务类型的一种传输。对 SSL 来说,连接表示的是对等网
络关系,连接是短暂的,每个连接与一个会话相关。
会话:是客户端和服务器间的关联,通过握手协议创建,定义了一组多个连
接共享的密码安全参数。
(一个会话可以有多个连接,而一个连接只属于一个会话。)

17.4 列举并简单定义 SSL 会话状态的参数
①会话标志:用于标志会话状态的随机字节序列。
②对等体证书:对等体的 X509.v3 证书。
③压缩方法:加密前使用的压缩算法。
④密码规范:描述数据加密算法和计算 MAC 的散列算法。
⑤主密钥:客户和服务器共享的 48 字节密钥。
⑥可恢复性:表明会话是否可被用于初始化新连接的标志。
17.5 列举并简单定义 SSL 连接状态的参数
①服务器和客户端随机数:服务器和客户端为每个连接选择字节序列。
②服务器写 MAC 密码:服务器发送数据时在 MAC 操作中使用的密码。
③客户端写 MAC 密码:客户端发送数据时在 MAC 操作中使用的密码。
④服务器写密钥:服务器加密,客户端解密时使用的传统加密密钥。
⑤客户端写密钥:客户端加密,服务器解密时使用的传统加密密钥。
⑥初始化向量
⑦序列号:会话的各方为每个连接(传送和接收消息)维护一个单独的序列
号。

17.6 SSL 记录协议提供哪些服务?
保密性和消息完整性。

17.7 SSL 记录协议传输有哪些步骤?
数据分块→压缩→加上 MAC→加密→添加 SSL 头→放入 TCP 段

17.8 HTTPS 的目的是什么?
结合 HTTP 和 SSL 来实现 Web 浏览器和 Web 服务器之间的安全通信。

17.9 哪些应用程序可以使用 SSH?
远程登录

17.10 列举并简单定义 SSH 协议
①传输层协议:提供服务器认证、数据保密和带前向安全性的数据完整性(如
果密钥在一次会话中泄密了,不会影响之前会话的安全性)。
②用户认证协议:为服务器认证用户。
③连接协议:在单一的低层 SSH 连接上提供多逻辑的通信信道。

第18章 无线网络安全

学习目标

  1. 无线网络的安全威胁
    ①意外关联
    ②恶意关联(将一个无线设备伪装成合法接入点)
    ③自组网络(对等网络,缺少中央控制点)
    ④非传统网络(易受窃听和欺骗)
    ⑤身份盗窃(MAC 欺骗)
    ⑥中间人攻击
    ⑦DoS (Denial of Services)
    ⑧网络注入(用伪造的重置命令来影响路由器和交换机以降低网络性能)

  2. 无线安全措施
    ①安全无线传输:信息隐藏技术(针对窃听)、加密(针对消息的修改)。
    ②安全无线接入点:IEEE 802.1X 标准基于端口的网络接入控制(针对网络
    的非授权访问)
    ③安全无线网络:如防火墙等

思考题
18.1 什么是一个 802.11 WLAN 的基本构建块?
无线局域网最小的组成单元是基本服务集 BSS(Basic Service Set),由一个单
一的协调功能控制基站的集合。包含了执行相同 MAC 协议和竞争访问相同的共
享无线媒体的无线基站。

18.2 定义一个扩展服务集
ESS(Extended Service Set),若干个(通过分布式系统 DS)互联的 BSS 的集
合,整合了 LAN,使任何与其中一个 BSS 相连的基站都觉得是单一的 BSS 到
LLC(Logic Link Control)层的连接。

18.3 列出并简单定义 IEEE 802.11 服务
连接、关闭连接、重新连接、认证、解除认证、分发、整合、MSDU 传输、
隐私。

18.4 分布式系统是一个无线网络吗?
分布式系统是一组计算机通过网络进行通信并协调它们的行为而形成的系
统,这个网络可以是有线网络也可以是无线网络。

分布式系统:它研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给多个计算机进行处理,最后把这些计算结果综合起来得到最终的结果。

18.5 互联性和流动性的观点是如何联系的?
互联性是指基站和 AP 建立关联,流动性是指基站的移动。在 DS 中发送消
息,分发服务需要知道目的基站的位置(例如 BSS 转换,定义了基站从一个 BSS
移动到另一个 BSS,这种情况下,基站的数据传输要求地址功能以识别基站的新
位置),为了消息能到达目的基站,DS 需要知道消息要达到哪个 AP,这需要保
证互联性。

18.6 哪些安全区域是 IEEE 802.11i 提出的?
认证、密钥管理、加密数据传输。

18.7 简要描述 IEEE 802.11i 操作的四个阶段
①发现阶段:让 STA 和 AP 相互辨认,协商安全功能配置,并为将来使用这
些功能建立关联。
②认证阶段:使一个 STA 与 DS 中的一个 AS 能相互认证。
③密钥管理阶段:各种加密密钥被生成并分发给各个 STA。 ④安全数据传输阶段:IEEE 802.11i 定义了两个方案以保护 MPDU 中的数据
传输:TKIP 和 CCMP。
TKIP:Temporal Key Integrity Protocol 临时密钥完整性协议
CCMP:计数器模式 CBC-MAC(加密-阻塞-链接消息验证码)协议

18.8 TKIP 和 CCMP 的区别

第19章 电子邮件安全

  1. 对 PGP 进行概述
    保密且认证:
    ①发送方生成消息和用于对称加密的会话密钥
    ②用 SHA-1 算法生成消息的 160 位 Hash 码
    ③用发送方私钥加密 Hash 码并串联到消息中
    压缩
    ⑤采用 CAST-128(或 IDEA 或 3DES)算法,使用会话密钥加密消息
    ⑥采用 RSA 算法,用接收方公钥加密会话密钥并串联到加密消息中
    ⑦接收方用自己的私钥解密恢复会话密钥
    ⑧用会话密钥加密消息
    ⑨解压缩
    ⑩接收方用发送方公钥解密 Hash 码,再用相同的 Hash 函数生成新的 Hash
    码与其比较。

PGP:可用于电子邮件和文件存储应用的保密性和认证性。

V6 思考题
19.1 PGP 提供的 5 个基本服务是什么?
认证、保密、压缩、电子邮件兼容性、分段

19.2 分离签名的用处是什么?
①一个可执行程序的分离式签名可以用来甄别程序是否被病毒感染。
②分离式签名可以用于多个用户对同一文件的签名,每个成员的签名相互独
立且只用于该文件,否则会签名可能会被嵌套。

19.3 PGP 为什么在压缩前生成签名?
①更有利于仅存储未压缩消息和签名以便于未来的签名验证。
②即使有用户想动态地对消息重新压缩后验证,用 PGP 现有的压缩算法仍
然很困难。

19.4 什么是 Radix-64?
一组三个字节的二进制数据映射成四个 ASCII 字符,并附加 CRC 校验码用
于检查传输错误。
(Radix-64 能将任意的输入流转换成 Radix-64 格式,不管其内容是什么,
即使输入流恰巧也是 ASCII 文本)

19.5 e-mail 应用为什么使用 Radix-64 转换?
大多数电子邮件系统都只允许使用 ASCII 文本组成的数据块,为了适应该
限制,PGP 提供了将源字节流转换成可打印的 ASCII 字符流的服务(Radix-64 转
换)。

19.6 PGP 如何使用信任关系?
用户在建立公钥环时,用一个公钥证书作为公钥环中的一行,其中有三个数
据项表示对该公钥证书的信任程度:密钥合法性字段、签名可信字段、拥有者可
信字段。经过三部流程周期性的处理公钥获得一致性。
19.7 RFC 5322 是什么?
RFC 5322 定义了用电子邮件发送的文本消息的格式(Internet 格式)。

19.8 MIME 是什么?
Multipurpose Internet Mail Extension,多用途网际邮件扩展。是 RFC 5322 的
扩展,目的是解决一些因使用简单邮件传输协议 SMTP 或其他一些邮件传输协
议而产生的限制。

是设定某种扩展名的文件用一种应用程序来打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开。

19.9 S/MIME 是什么?
Secure/Multipurpose Internet Mail Extension,是基于 RSA 数据安全的 MIME
Internet 电子邮件格式标准的安全性增强。

19.10 DKIM 是什么?
Domain Keys Identified Mail,域名密钥识别邮件。是一个用密码学方法签名
电子邮件的规范,它支持一个签名域对邮件流中的某个邮件签名。

V7 思考题补充

  1. S/MIME 提供的四个基本服务
    ①数字签名
    ②消息加密
    ③压缩
    ④电子邮件兼容性

  2. MIME 内容类型和 MIME 传输编码的区别
    内容类型:详细描述了正文中的数据以使接收方的代理能采用合适的机制为
    处理数据。
    内容转换编码:指示转换的类型以使其能将消息正文展现的形式能为邮件传
    输所用。

  3. 简要解释 Base64 编码
    将 6 位输入转为 8 位输出,转换后的数据均为 ASCII 字符。

  4. 什么是 SMTP?
    SMTP:Simple Mail Transfer Protocol,简单邮件传输协议。SMTP 将邮件内
    容封装在信封内,在源端和目的端之间通过多重 MTA(Mail transfer Agent,消息
    传输代理)来转发。

第20章 IP 安全性

安全关联数据库与安全策略数据库的区别

思考题
20.1 IPsec 的应用实例
①分支机构通过 Internet 安全互连
②远程安全访问 Internet
③与合作者建立外联网和内联网联系
④加强电子商务的安全性

20.2 IPsec 提供哪些服务?
①访问控制
②无连接完整性
③数据源认证
④拒绝重放包
⑤保密性
⑥受限的流量保密性

20.3 哪些参数标志 SA,哪些参数刻画一个特定 SA 的本质?
①安全参数索引 SPI
②IP 目的地址
③安全协议标志

20.4 指出传输模式和隧道模式的区别
传输模式:对由 IP 携带的数据进行处理,适合于保护主机间的连接来支持
ESP 特性,不能抵抗流量分析。
隧道模式的:对整个 IP 包加密,加密仅在外部主机和安全网关间以及两个
安全网关之间进行,可以抵抗流量分析。

20.5 什么是重放攻击?
重放攻击是指攻击者在得到一个经过认证的包后,又将其传送到目的站点的
行为。

20.6 为什么 ESP 含填充域?
①ESP 格式需要填充长度位和邻接头域为右对齐的 32 位字,密文长度需要
32 位的整数倍,不足位用填充域确保。
②可以隐藏载荷的实际长度,并提供部分流量保护。

20.7 形成 SA 束有哪些基本方法?
①传输临接:在不调用隧道的情况下,对一个 IP 包使用多个安全协议,仅
允许一级组合。
②隧道迭代:指通过 IP 隧道应用多层安全协议,允许多层嵌套。

20.8 IPsec 中 Oakley 密钥确定协议和 ISAKMP 的作用是什么?
ISAKMP/Oakley 是默认的 IPsec 自动密钥管理协议,Oakley 提供增值安全
性,基于 DH 密钥交换协议;ISAKMP 提供 Internet 密钥管理框架和特定协议支
持,包括格式和安全属性协商。

第六部分 系统安全

第21章 恶意软件
学习目标

  1. 理解病毒、蠕虫和木马的基本操作
    病毒:执行时向可执行文件传播自身副本的恶意代码,被感染的程序在被调
    用时,首先执行病毒代码,再执行程序的原始代码。
    蠕虫:可独立执行的计算机程序,可以主动寻找更多的目标机器进行感染,
    并向网络中其他主机传播自身副本。
    木马:是一种有用的,或者表面上有用的程序,能规避一些安全机制,利用
    系统的合法授权。
  2. 理解僵尸程序、间谍软件和 Rootkit 造成的不同威胁
    僵尸程序能够以协调的方式运作,可以发起分布式拒绝服务攻击或扩散恶意
    软件等。
    间谍软件的目的是获取个人信息,以机密性为目标。
    Rootkit 用来维持以 root 权限对系统进行隐蔽访问。
    思考题
    21.1 恶意软件用来传播的三种主要机制是什么?
    ①感染已存在的可执行或解释执行的内容,随后传播到其他系统中;
    ②蠕虫或路过式下载程序(drive-by-download)利用本地或网络上软件漏洞使
    恶意软件得以复制;
    ③利用社会工程实施攻击,诱导用户绕过安全机制来安装木马或响应网络钓
    鱼攻击。
    21.2 恶意软件可能携带的四种有效载荷是什么?
    ①系统破坏:实质破坏、逻辑炸弹
    ②攻击代理:僵尸程序
    ③信息窃取:键盘记录器、网络钓鱼和间谍软件
    ④隐藏:后门、Rootkit
    21.3 病毒或蠕虫的典型行为阶段是什么?
    休眠、传播、触发、执行
    21.4 病毒可以用哪些机制去隐藏自己?
    ①加密病毒:病毒的一部分产生加密密钥并加密病毒的其他部分。
    ②隐形飞机式病毒:如采用压缩代码、根工具箱技术等实现病毒隐藏。
    ③多态病毒:在每次感染时都表现出不同的形态(副本的功能一致,但表现
    形式不同)。
    ④变形病毒:与多态病毒类似,不同的是,变形病毒不仅可以改变外观还可
    以改变行为。
    21.5 机器类可执行病毒与宏病毒的区别是什么?
    可执行病毒感染的是可执行程序,而宏病毒感染的目标是文档,比如 Word
    文档中的宏,或者 PDF 文档中的脚本代码。
    21.6 为了传播,蠕虫可以用什么方式访问远程系统?
    ①电子邮件或即时通信设施
    ②文件共享
    ③远程执行功能
    ④远程文件访问或传输能力
    ⑤远程登录能力
    21.7 什么是“路过式下载”?它和蠕虫有什么区别?
    当用户浏览网页时,攻击者利用浏览器的漏洞,在未经用户许可的情况下向
    系统中下载并安装恶意软件。
    路过式下载不像蠕虫那样主动传播,而是等待没有防备的用户去浏览恶意的
    网页来达到传播的目的。
    21.8 什么是“逻辑炸弹”?
    是恶意软件中嵌入的代码,满足触发条件时,激发一些未经授权的动作。
    21.9 以下几种概念的区别是什么:后门,僵尸程序,键盘记录器,间谍软件和
    Rootkit。它们能共存于同一个恶意软件吗?
    后门:能绕过安全检查的机制,允许非授权访问。
    僵尸:活跃在被感染的机器上并向其他机器发射攻击的程序。
    键盘日志:捕获被感染系统中的用户按键。
    间谍软件:从一个计算机上收集信息并发送到其他系统的软件。
    Rootkit:攻击者进入计算机系统并捕获低层通路后使用的攻击工具。
    可以共存于一个恶意软件。
    21.10 列举 Rootkit 可能会使用到的系统中的不同层次。
    注册表或文件系统、内存、用户态、内核态、虚拟机、外部模式(BIOS 或
    系统管理模式)
    21.11 描述一些恶意软件防范策略的要素。
    ①策略
    ②意识
    ③漏洞缓解
    ④威胁缓解
    21.12 列举恶意软件防范机制可部署的三个位置。
    ①感染的系统;
    ②在组织的防火墙和入侵检测系统(IDSs)中作为部分的边界安全机制使用;
    ③使用分布式机制,收集来自主机和边界传感器的数据。
    21.13 简述四代反病毒软件。
    ①简单的扫描器:需要通过恶意软件签名鉴别恶意软件。
    ②启发式扫描器:不依靠签名,使用启发式规则寻找可能的恶意软件。
    ③活动陷阱:是驻留在内存中的程序,通过已感染程序中恶意软件的行为而
    不是结构来鉴别恶意软件。
    ④全功能保护:是各种反病毒技术组成的程序包,包括扫描和活动陷阱组件。
    21.14 行为拦截软件是如何工作的?
    行为拦截软件集成到主机的操作系统中,实时监控恶意程序的行为,在恶意
    软件影响系统之前对其进行拦截。
    21.15 什么是分布式拒绝服务系统?
    借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或
    多个目标发动 DDoS 攻击,从而成倍地提高 DoS 的威力。

第22章 入侵者

学习目标

  1. 理解 Bloom 过滤器在口令管理方面的作用
    增加字典攻击的难度
    思考题
    22.1 列举并简述三种主要的攻击者。
    ①假冒用户:假冒合法用户获得授权访问。
    ②违法用户:未经授权访问数据的合法用户;或获得授权访问,但滥用权限
    的合法用户。
    ③隐秘用户:夺取系统管理控制权限,并使用该权限逃避审计和访问控制,
    或者阻止生成审计记录的入侵者。
    22.2 保护口令文件有哪两种常用方法?
    ①单向函数
    ②访问控制
    22.3 入侵检测系统的三个优点是什么?
    ①如果入侵检测的速度足够快,那么在破坏发生之前就可以找到入侵者,并
    将他们驱逐出系统。就算没有及时检测到入侵者,但入侵检测系统的反应速度越
    快,破坏的程度会越低,恢复得也越快。
    ②作为一种威慑,阻止入侵。
    ③入侵检测可用于收集与入侵技术相关的信息,并用于增强入侵防范技术。
    22.4 统计异常检测和基于规则的入侵检测之间的区别是什么?
    统计异常检测基于对审计记录的分析,基于规则的入侵检测运用规则集来判
    断一个给定的行为模式是否可疑。
    22.5 基于轮廓的入侵检测(即基于用户行为曲线的检测)中有用的检测依据有
    哪些?
    ①计数器
    ②标准值
    ③间隔计时器
    ④资源使用情况
    22.6 基于规则的异常检测和基于规则的渗透检测的差别是什么?
    基于规则的异常检测与统计异常检测相似,不需要具备系统安全漏洞的先验
    知识,而渗透检测利用规则集识别已知的渗透模式和可能发生的对系统安全漏洞
    进行的渗透模式。
    22.7 什么是蜜罐?
    蜜罐是一个诱骗系统,用于把潜在的攻击者从重要系统中引诱开。
    蜜罐设计的目的:
    ①转移攻击者对重要系统的访问
    ②收集攻击者的活动信息
    ③鼓励攻击者停留在系统中足够长的时间,便于管理员做出反应
    22.8 UNIX 口令管理中,salt 指的是什么?
    加盐。在较老的实现中,加盐值和将口令分配给用户时的时间相关。较新的
    实现中,使用随机数。口令和 salt 值作为 Hash 算法的输入,产生一个 Hash 码。
    Hash 算法的设计思想是延缓攻击。口令密文和 salt 的明文及用户 ID 一起保存在
    口令文件中。
    当用户登录 UNIX 系统时,需提供 ID 和口令,操作系统使用 ID 检索口令
    文件取回明文 salt 值和加密的口令。salt 值和用户提供的口令作为加密程序的输
    入,如果结果与存储的值相匹配,则口令被接受。
    Salt 的目的:
    ①防止在口令文件中的口令副本可见
    ②极大增加了离线字典攻击的难度
    ③几乎不可能找到一个用户在两个或多个系统上使用了同一口令
    22.9 列举并简述避免猜测口令的 4 种技术。
    ①用户教育
    ②由计算机生成口令
    ③后验口令校验
    ④先验口令校验

第23章 防火墙

思考题
23.1 列出防火墙的三个设计目标
①所有出入的流量必须经过防火墙
②只有被授权的流量才能通过防火墙
③防火墙本身不能被攻破

23.2 试述防火墙通过哪 4 项技术来进行访问控制和安全策略实施?
①服务控制:确定可以访问的互联网服务类型。
②方向控制:确定特定服务请求发起和通过的方向。
③用户控制:根据用户来控制访问权限。
④行为控制:控制特定服务的使用方法。
23.3 典型的包过滤路由器使用哪些信息来进行过滤?
①源 IP 地址
②目的 IP 地址
③源端和目的端传输层地址(即传输层端口号)
④IP 协议域
⑤接口
23.4 包过滤路由器有哪些不足?
①包过滤器防火墙不检查上层数据,因此无法防范那些利用特定应用漏洞的
攻击。②防火墙可获得的信息有限,使它所提供的日志功能有限。包过滤器日志一
般只记录那些曾经对其进行过过滤判断处理的关键信息(源地址,目的地址和通
信类型)。 ③不支持高级的用户认证方案。
④容易受到利用 TCP/IP 标准和协议栈漏洞的攻击,例如网络层地址欺骗。
⑤包过滤防火墙只根据几个变量来进行访问控制,在配置防火墙时,容易在
不经意间违反组织内部的消息安全策略。
23.5 包过滤路由器和状态检测防火墙有何不同之处?
一个简单的包过滤防火墙必须允许来自基于 TCP 流量的所有高端口上的入
站网络流量,这使其容易被未授权的用户利用。
而状态检测防火墙通过建立一个出站 TCP 连接目录加强了 TCP 流量的规
则。
23.6 什么是应用层网关?
应用层网关也叫做应用程序代理,它在应用层通信中相当于一个消息转发器。
用户使用 Telnet 和 FTP 之类的 TCP/IP 应用程序时会建立一个到网关的连接,该
网关将要求用户提供将要访问的远程主机名。如果用户给出了一个有效的用户
ID 和验证信息,网关就建立一个到远程主机的应用层连接,并开始在访问者和
被访问者之间转发包含应用数据的 TCP 段。
23.7 什么是链路层网关?
也称链路层代理,它是一个独立系统,或是由应用层网关为特定应用实现的
功能模块。与应用层网关一样,链路层网关不允许端到端的直接 TCP 连接;此
网关建立两个 TCP 连接,一个连接位于网关与网络内部的 TCP 用户之间,另一
个连接位于网关与网络外部的 TCP 用户。连接建立后,网关起中继作用,转发
TCP 段,而不检查其内容。安全模块将决定哪些连接被允许建立。
23.8 图 23.1 的各类防火墙之间有何不同?
23.9 堡垒主机有哪些普遍特性?
①堡垒主机硬件系统执行其操作系统的安全版本,使其成为可信系统。
②堡垒主机上只安装网络管理者认为必需的服务。 ③用户访问代理服务之前,堡垒主机要对其进行额外的验证。
④各代理被设为只支持标准应用命令集的子集。
⑤各代理只允许对特定主机的访问。
⑥各代理通过对通信、连接以及连接持续时间的日志管理,来取得详细的审
查信息。⑦各代理模块是专为网络安全而设计的很小的软件包。 ⑧堡垒主机上的代理彼此之间相互独立。 ⑨代理除了读取初始配置文件,不进行磁盘读取操作。
⑩各代理运行在堡垒主机上的私有的安全目录下,它们之间没有优先权的划
分。
23.10 主机防火墙有何作用?
主机防火墙是用来保护个人主机的软件模块。也对数据包进行过滤和限制,
一般位于服务器中。
23.11 什么是 DMZ 网络,你认为哪些类型的系统将部署在这种网络中?
DMZ(demilitarized zone),非军事区,即外部防火墙和内部防火墙之间的网络
区域。
那些可以被外部访问但需要一些保护的系统,通常部署在 DMZ 网络。
23.12 内部防火墙和外部防火墙有何区别?
内部防火墙保护企业网络的大部分,外部防火墙为剩余的企业网络提供基本
保护。
与外部防火墙相比,内部防火墙增加了更严格的过滤能力。

  • 18
    点赞
  • 66
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
密码编码学是研究如何保护信息安全和隐私的学科,它主要关注密码学算法的设计和分析。在网络安全领域,密码编码学起着非常重要的作用。 网络安全是指在计算机网络上保护信息系统的安全性和可靠性,以防止未经授权的访问、使用、泄露、破坏和篡改。密码编码学通过采用各种加密算法保护网络中的数据传输和存储过程,以确保数据的机密性和完整性。 密码编码学的主要任务是设计并应用有效的加密算法,以确保数据在传输和存储过程中不会被未经授权的个人或系统访问。例如,对称加密算法使用相同的密钥进行加密和解密,而非对称加密算法使用一对密钥进行加密和解密。这些算法可以保护敏感数据的机密性,使其只能被拥有密钥的人解密。 此外,密码编码学还研究了数字签名、消息认证代码和身份认证等技术,以确保数据的完整性、真实性和可信度。数字签名用于验证数据的来源和完整性,消息认证代码用于检测数据是否被篡改,身份认证用于确保通信双方的身份和权限。 网络安全是一个复杂的领域,需要综合考虑密码编码学、网络协议、访问控制、恶意软件防护、物理安全等方面的知识和技术。密码编码学为网络安全提供了基础和保障,它的应用可以有效地防止数据被窃取、篡改和破坏,保障用户的信息安全和隐私。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值