期末复习【网络安全】
- 前言
- 推荐
- 期末复习
- 第1章 引言
- 1.1 计算机安全概念
- 1.2 OSI安全体系结构 6
- 1.3 安全攻击 7
- 1.3.1 被动攻击
- 1.3.2 主动攻击
- 第2章 对称加密和消息机密性
- 2.1 对称加密原理 23
- 2.1.3 Feistel密码结构 25
- 2.2 对称分组加密算法 27
- 2.2.1 数据加密标准
- 2.2.2 三重DES
- 2.2.3 高级加密标准
- 第3章 公钥密码和消息认证
- 3.2 安全散列函数
- 3.2.1 散列函数的要求 51
- 3.2.4 SHA安全散列函数 54
- 3.4 公钥密码原理
- 3.4.1 公钥密码思想 61
- 3.4.2 公钥密码系统的应用 63
- 3.5 公钥密码算法
- 3.5.1 RAS公钥密码算法 64
- 第6章 传输层安全
- 6.1 Web安全需求
- 6.1.1 Web安全威胁 135
- 6.2 传输层安全
- 6.2.1 TLS体系结构 136
- 6.2.2 TLS记录协议 138
- 6.2.5 握手协议 141
- 第8章 电子邮件安全
- 8.2 邮件格式
- 8.2.1 多用途互联网邮件扩展类型 191
- 8.4 S/MIME
- 8.4.1 操作描述 199
- 第11章 入侵者
- 11.1 入侵者概述 285
- 最后
前言
2023-6-19 22:13:26
本专栏将于考试期间设置为付费
考试结束后关闭付费
时间为2023/6/26
以下内容源自《【网络安全】》
仅供学习交流使用
参考:
网络安全基础(第六版)
推荐
第2章 作业(2456)【网络安全】
第3章 作业(268EF)【网络安全】
第6章 作业(346)【网络安全】
第8章 作业(356)【网络安全】
期末复习
不会有人划重点不知道在哪,现在找不到了吧
这是我当时不仅在书上画出重点
并且在备忘录上记录的页码位置
IT专业相关介绍【活动】:六、计算机思维能力测试
简单的索引思想的应用
推荐:
网络安全基础期末复习总结
第1章 引言
1.1 计算机安全概念
计算机安全
对某个自动化信息系统的保护措施,其目的在于实现信息系统资源的完整性、可用性以及机密性(包括硬件、软件、固件、信息/数据、电信)。
这个定义包括三个关键的目标,它们组成了计算机安全的核心内容。
- 机密性:这个术语涵盖了如下两个相关的概念:
- 数据机密性:保证私有的或机密的信息不会被泄露给未经授权的个体。
- 隐私性:保证个人可以控制和影响与之相关的信息,这些信息有可能被收集、存储和泄露。
- 完整性:这个术语涵盖了如下两个相关的概念:
- 数据完整性:保证只能由某种特定的、已授权的方式来更改信息和代码。
- 系统完整性:保证系统正常实现其预期功能,而不会被故意或偶然的非授权操作控制。
- 可用性:保证系统及时运转,其服务不会拒绝已授权的用户。
这三个概念组成了CIA三元组。它们体现了对于数据和信息计算服务的基本安全目标。例如,NIST的美国联邦信息安全分级标准与信息系统(FIPS199)指出,机密性、完整性和可用性是信息和信息系统的三个安全目标。FIPS199 从需求和安全损失角度,分别给出了对这三个目标的描述。
- 机密性:维持施加在数据访问和泄露上的授权限制,包括保护个人隐私和私有信息的措施。机密性损失是指非授权的信息泄露。
- 完整性:防范不当的信息修改和破坏,包括保证信息的认证与授权。完整性损失是指未经授权的信息修改和破坏。
- 可用性:保证及时且可靠地获取和使用信息。可用性损失是指对信息或信息系统访问或使用的中断。
尽管CIA三元组对安全目标的定义有其根据,但有人认为,在安全领域有必要再加入些额外概念以给出一个全面的场景(如图1.1)。其中两个最常被提及的是:
- 真实性:可以被验证和信任的属性,或对于传输、信息、信息发送方的信任。这意味着要验证使用者的身份以及系统每个输入信号是否来自可靠的信息源。
- 可计量性:这个安全目标要求每个实体的行为可以被唯一地追踪到。它支持不可否认、威慑、错误隔离、入侵侦测和防范、恢复和合法行为。由于真正意义上的安全系统还不是一个可以实现的目标,我们必须能够追踪安全违规的责任方。系统必须记录自己的活动,使得以后可以用于法庭分析、追踪安全违规或者处理交易纠纷。
1.2 OSI安全体系结构 6
1.3 安全攻击 7
OSI安全系统作为一种组织提供安全服务的途径是非常有效的,同时这个结构使用的是国际标准,计算机和通讯厂商已经开发了符合这个结构化服务和机制标准的产品和服务安全特性。
- 安全攻击:任何可能会危及机构的信息安全行为。
- 安全机制:用来检测,防范安全攻击并从中恢复系统的机制。
- 安全服务:一种用来增强组织的数据处理系统的安全性和信息传递的安全性的服务。
1.3.1 被动攻击
被动攻击(见图1.2(a))的本质是窃听或监视数据传输。攻击者的目标是获取传输的数据信息。
被动攻击的两种形式是消息内容泄露攻击和流量分析攻击。
1.3.2 主动攻击
主动攻击(见图1.2(b))包含改写数据流的改写和错误数据流的添加,它可以划分为4类:假冒、重放、改写消息和拒绝服务。
第2章 对称加密和消息机密性
2.1 对称加密原理 23
一个对称加密方案由5部分组成(见图2.1):
- 明文:这是原始消息或数据,作为算法的输入。
- 加密算法:加密算法对明文进行各种替换和转换。
- 秘密密钥:秘密密钥也是算法的输入。算法进行的具体替换和转换取决于这个密钥。
- 密文:这是产生的已被打乱的消息输出。它取决于明文和秘密密钥。对于一个给定的消息,两个不同的密钥会产生两个不同的密文。
- 解密算法:本质上是加密算法的反向执行。它使用密文和同一密钥产生原始明文。
2.1.3 Feistel密码结构 25
Feistel 结构是所有对称分组密码都使用的更通用结构的一个特例。通常,一个对称分组密码包含一系列轮迭代,每轮都进行由密钥值决定的替换和置换组合。对称分组密码的具体操作取决于以下参数和设计属性:
- 分组大小:越大的分组意味着越高的安全性(所有其他条件都相同),但减小了加密/解密速率。128比特大小的分组是一个合理的折中并且几乎是近来分组密码设计的普遍选择。
- 密钥大小:越长的密钥意味着越高的安全性,但也许会减小加密/解密速率。现代算法最普遍的密钥长度为128比特。
- 迭代轮数:对称分组密码的本质是单轮处理不能提供充分的安全性,多轮处理能提供更高的安全性。迭代轮数的典型大小是16。
- 子密钥产生算法:此算法复杂度越高,密码破译难度就越高。·轮函数:同样,越高的复杂度意味着对破译越高的阻力。
在对称分组密码设计中还有两个其他的考虑因素:
- 快速软件加密/解密:在很多情况下,密码通过这种方法嵌入在应用程序或实用工具中以避免用硬件实现。因此,软件执行速度成为一个重要因素。
- 容易分析:尽管希望算法尽可能地难以攻破,但使算法容易分析有很大的好处。这是因为,如果算法能被简明清楚地解释,则容易分析该算法的弱点并因此给出对其强度更高级别的保障。例如,DES不具有容易分析的性质。
对称分组密码的解密过程本质上和加密过程相同。规则如下:使用密文作为算法的输入,但是逆序使用子密钥Ki。即在第一轮迭代使用Kn,第二轮迭代使用Kn-1。依次类推直到最后一轮迭代使用K1。这是一个好的性质,因为它意味着不需要实现两个不同的算法:一个用于加密、一个用于解密。
2.2 对称分组加密算法 27
最常用的对称加密算法是分组密码。分组密码处理固定大小的明文输入分组,且对每个明文分组产生同等大小的密文分组。本节重点介绍三个重要的对称分组密码:数据加密标准(DES)、三重数据加密标准(triple DES,3DES),以及高级加密标准(AES)。
2.2.1 数据加密标准
在2001年推出高级加密标准(AES)之前,最广泛使用的加密方案是基于**数据加密标准(DES)**的,DES由原美国国家标准局(现美国国家标准与技术研究所,NIST))于F采用,以美国联邦信息处理标准FIPS PUB 46发布。这个算法本身被称为数据加密算法(DEA)。
算法描述
明文长度为64比特,密钥长度为56比特;更长的明文被分为64比特的分组来贝DES结构在图2.2所示的Feistel网络的基础上做了微小的变化。它采用16轮迭代,从原始56比特密钥产生16组子密钥,每一轮迭代使用一个子密钥。
DES的解密过程在本质上和加密过程相同。规则如下:使用密文作为DES算法的输入是子密钥Ki的使用顺序与加密时相反。即第一次使用K16,第二次使用K15,依次类推直到第16次也就是最后一次使用K1。
2.2.2 三重DES
对三重DES(trinle DES.3DES)的标准化最初出现在1985年的 ANSI标准X9.17中。为了把它用于金融领域,1999年随着FIPS PUB 46-3的公布,把它合并为数据加密标准的一部分。
3DES使用3个密钥并执行3次DES 算法,其组合过程依照加密-解密-加密(EDE)的顺序(见图2.3(a))进行:
C=E(K3,D(K2, E(K1, P)))
其中:
C=密文;
P=明文;
E[K,X]=使用密钥K加密X;
D[K,Y]=使用密钥K解密Y。
解密仅仅是使用相反的密钥顺序进行相同的操作(见图2.3(b)):
P=D(K1,E(K2,D(K3,C))
3DES 加密过程中的第二步使用的解密没有密码方面的意义。它的唯一好处是让3DES的使用者能够解密原来单重DES使用者加密的数据:
C=E(K1,D(K1,E(K1,P))=E[K,P]
通过3个不同的密钥,3DES的有效密钥长度为168比特。FIPS 46-3同样允许使用两个密钥,令K1=K3;这样密钥长度就为112比特。FIPS 46-3包含了下列3DES的规定:
- 3DES是 FIPS批准的可选对称加密算法。
- 使用单个56比特密钥的原始 DES,只在以往系统的标准下允许,新设计必须支持3DES。
- 鼓励使用以往DES 系统的政府机构转换到3DES 系统。
- 预计3DES与高级加密标准(AES)将作为FIPS 批准的算法共存,并允许3DES 逐步过渡到AES。
可以看出,3DES是一个强大的算法,因为底层密码算法是 DEA,DEA声称的对基于其算法的破译的抵抗能力,3DES同样也有。不仅如此,由于168比特的密钥长度,穷举攻击更没有可能。
最终AES将取代3DES,但是这个过程将花费很多年的时间。NIST 预言在可预见的将来3DES仍将是被批准的算法(为美国政府所使用)。
2.2.3 高级加密标准
算法概述
AES 使用的分组大小为128比特、密钥长度可以为128、192或256比特。在本节的描述中,假设密钥长度为128比特(这可能是最常用的长度)。
图2.5给出了AES的总体结构。加密和解密算法的输入是一个128比特的分组。在FIPS PUB 197中,分组被描述为一个字节方阵。分组被复制到状态数组,这个数组在加密或解密的每一步都会被更改。最后一步结束后,状态数组将被复制到输出矩阵。类似地,128比特的密钥也被描述为一个字节方阵。然后,密钥被扩展成为一个子密钥字的数组;每个字是4字节,而对于128比特的密钥,子密钥总共有44个字。矩阵中字节的顺序是按列排序的。比如,128比特的明文输入的前4个字节占输入矩阵的第1列,接下来4个字节占第2列,依次类推。类似地,扩展密钥的前4字节即一个字占w矩阵的第1列。
接下来的注释给出AES更清楚的面貌:
(1)值得指出的特点之一是该结构不是 Feistel结构。回忆典型Feistel结构,数据分组的一半用来更改另一半,然后两部分对换。AES没有使用Feistel结构,而是在每轮替换和移位时都并行处理整个数据分组。
(2)输入的密钥被扩展成为44个32比特字的数组w[i]。4个不同的字(128比特)用作每轮的轮密钥。
(3)进行了4个不同的步骤,一个是移位,3个是替换:
- 字节替换:使用一个表(被称为S盒(S-box))来对分组进行逐一的字节替换;
- 行移位:对行做简单的移位;
- 列混合:对列的每个字节做替换,是一个与本列全部字节有关的函数;
- 轮密钥加:将当前分组与一部分扩展密钥简单地按位异或。
(4)结构非常简单。对于加密和解密,密码都是从轮密钥加开始,接下来经过9轮选代,每轮包含4个步骤,最后进行一轮包含3个步骤的第10轮迭代。图2.5描述了整个轮加密的结构。
(5)只有轮密钥加步骤使用了密钥。由于这个原因,密码在开始和结束的时候进行轮密钥加步骤。对于任何其他步骤,如果在开始或者结束处应用,都可以在不知道密钥的情况下进行反向操作,并且不会增强安全。
(6)轮密钥加步骤本身并不强大。另外3个步骤一起打乱了数据比特,但是因为没有使用密钥,它们本身不提供安全。将这个密码用于先对分组做异或加密(轮密钥加)操作,接下来打乱这个分组(另外3个步骤),再做异或加密,依次类推。这个结构既高效又高度安全。
(7)每一步都简单可逆。对于字节替换、行移位、列混合步骤,在解密算法中使用逆函数。对轮密钥加步骤,反向操作用同一个轮密钥异或数据分组,利用A日B的B=B这个结果。
(8)像大多数分组密码一样,解密算法也是按照相反的顺序使用扩展密钥。但是解密算法并不与加密算法相同,这是AES特殊结构的结果。
(9)如果4个步骤都可逆,则容易证明解密确实能够恢复明文。图2.4将加密和解密摆放成以垂直相反的方向运行。在每个水平节点(比如图2.4中的虚线),加密和解密的状态数组是相同的。
(10)加密和解密的最后一轮都只包含3个步骤。同样,这也是AES 的特殊结构的结果,这么做是为了使密码可逆。
第3章 公钥密码和消息认证
3.2 安全散列函数
3.2.1 散列函数的要求 51
散列函数的目的是为文件、消息或其他数据块产生“指纹”。为满足在消息认证中的应用,散列函数H必须具有下列性质:
(1)H可适用于任意长度的数据块。
(2)H能生成固定长度的输出。
(3)对于任意给定的x,计算H(x)相对容易,并且可以用软/硬件方式实现。
(4)对于任意给定值h,找到满足H(x)=h的x在计算上不可行。满足这一特性的散列函数称为具有单向性,或具有抗原像攻击性。
(5)对于任意给定的数据块x,找到满足H(y)=H(x)的y≠x在计算上是不可行的。满足这一特性的散列函数被称为具有抗第二原像攻击性,有时也称为具有抗弱碰撞攻击性。
(6)找到满足Hx)= H(y)的任意一对(x,y)在计算上是不可行的。满足这一特性的散列函数被称为抗碰撞性,有时也被称为抗强碰撞性。
前三个性质是使用散列函数进行消息认证的实际可行要求。第四个属性,抗原像攻击性,是单向性:给定消息容易产生它的散列码,但是给定散列码几乎不可能恢复出消息。如果认证技术中使用了秘密值(见图3.2(c)),则单向性很重要。秘密值本身并不会传输;然而,假如散列函数不是单向的,而攻击者能够分析或截获消息M和散列码C=H(SABlIM),则攻击者很容易发现秘密值。攻击者对散列函数取逆得到SAnlM=H1©。因为这时攻击者拥有M和SABllM,所以他们可以轻而易举地恢复SAB。
抗第二原像攻击性质保证了对于给定的消息,不可能找到具有相同散列值的可替换消息。利用加密的散列码可防止消息被伪造(见图3.2(a)和图3.2(b))。如果该性质非真,则攻击者可以进行如下操作:第一,分析或截获消息及其加密的散列码;第二,根据消息产生没有加密的散列码;第三,生成具有相同散列码的可替换消息。
满足上面前5个性质的散列函数称为弱散列函数。如果还能满足第6个性质则称其为强散列函数。第6个性质可以防止像生日攻击这种类型的复杂攻击。生日攻击的细节超出了本书的范围。这种攻击把m比特的散列函数的强度从2m简化到2m/2。详细内容可参考[STAL11]。
除提供认证之外,消息摘要还能验证数据的完整性。它与帧检测序列具有相同的功能:如果在传输过程中,意外地篡改任意比特,消息摘要则会出错。
3.2.4 SHA安全散列函数 54
3.4 公钥密码原理
3.4.1 公钥密码思想 61
公钥密码方案由6个部分组成(见图3.9(a)):
- 明文:算法的输入,它是可读的消息或数据。
- 加密算法:加密算法对明文进行各种形式的变换。
- 公钥和私钥:算法的输入,这对密钥如果一个密钥用于加密,则另一个密钥就用于解密。加密算法所执行的具体变换取决于输入端提供的公钥或私钥。
- 密文:算法的输出,取决于明文和密钥。对于给定的消息,两个不同的密钥将产生两个不同的密文。
- 解密算法:该算法接收密文和匹配的密钥,生成原始的明文。
顾名思义,密钥对中的公钥是公开供其他人使用的,而只有自己知道私钥。通常的公钥密码算法根据一个密钥进行加密,根据另一个不同但相关的密钥进行解密。
基本步骤如下:
(1)每个用户都生成一对密钥用来对消息进行加密和解密。
(2)每个用户把两个密钥中的一个放在公共寄存器或其他可访问的文件里,这个密钥便是公钥,另一个密钥自己保存。如图3.7(a)所示,每个用户都收藏别人的公钥。
(3)如果 Bob希望给Alice发送私人消息,则他用Alice的公钥加密消息。
(4)当Alice 收到这条消息,她用私钥进行解密。因为只有Alice知道她自己的私钥,其他收到消息的人无法解密消息。
用这种方法,任何参与者都可以获得公钥。由于私钥由每一个参与者在本地产生,故不需要分发。只要能够保护好他或她的私钥,以后的通信就会安全。在任何时候,用户都能够改变私钥,且发布相应的公钥代替旧公钥。
传统密码算法中使用的密钥被特别地称为密钥。用于公钥密码的两个密钥被称为公钥和私钥。私钥总是保密的,但仍然被称为私钥而不是密钥,这是为了避免与传统密码混淆。
3.4.2 公钥密码系统的应用 63
在广义上可以把公钥密码系统分为如下三类。
- 加密/解密:发送方用接收方的公钥加密消息。
- 数字签名:发送方用自己的私钥“签名”消息。签名可以通过对整条消息加密或者对消息的一个小的数据块加密来产生,其中该小数据块是整条消息的函数。
- 密钥交换:通信双方交换会话密钥。这可以使用几种不同的方法,且需要用到通信一方或双方的私钥。
3.5 公钥密码算法
3.5.1 RAS公钥密码算法 64
基本的RSA加解密 对于某明文块M和密文块C加密和解密有如下的形式:
C=Memod n
M=Cd mod n=(M3)d mod n = Med mod n
发送方和按牧方那必须知道和e的值,并且只有接收方知道d的值。RSA公钥密码算法的公钥KU={e,u}私钥KR={d,n}。为使该算法能够用于公钥加密,它必须满足下列要求:
(1)可以找到e、d、n的值, 使得对所有的M<n Medmod n=M成立。
(2)对所有满足M<n的值, 计算Me和Cd相对容易。
(3)给定e和n,不可能推出d。
前两个要求很容易得到满足。当e和n取很大的值时,第三个要求也能够得到满足。
图3.10总结了RSA算法。开始时选择两个素数p和q,计算它们的积n作为加密和解密时的模。接着需要计算n的欧拉函数值Φ(n)。Φ(n)表示小于n且与n互素的正整数的个数。然后选择与Φ(n)互素的整数e(即e和Φ(n)的最大公约数为1)。最后,计算e关于模d(n)的乘法逆元d,d和e具有所期望的属性。
假设用户A已经公布了他的公钥,且用户B希望给A发送消息M。那么B计算C=Md mod n并且发送C。当接收到密文时,用户A通过
计算M=Cd(mod n)解密密文。
图3.11显示了[SING99]中的一个个例子。对于这个例子,按下列步骤生成密钥:
(1)选择两个素数: p=17和q=11。
(2)计算n=p=17x11=187.
(3)计算Φ(n)=(p-1)(q-1)=16×10=160
(4)选择e,使得e与Φ(n)=160互素且小于Φ(n):选择e=7。
(5)计算d,使得de mod 160=1且d<160。正确的值是d=23,这是因为23x7= 161=10×16+1。
这样就得到公钥PU={7,187},私钥PR={23,187}。下面的例子说明输入明文M=时密钥的使用情况。
对于加密,需要计算C=887 mod 187。利用模运算的性质,计算如下:
887 mod 187 =[(884mod 187)×(882 mod 187)×(881 mod 187)]mod 187
881mod 187= 88
883mod 187=7744 mod 187=77
884 mod 187=59 969 536 mod 187=132
887 mod 187=(88×77×132) mod 187 = 894 432 mod187=11
对于解密,计算M=1123mod 187 :
1123 mod 187 =[(111mod 187)×(112 mod 187)x(114 mod 187)
×(118 mod 187)×(118 mod 187)]mod 187
111 mod 187=11
112 mod 187=121
114 mod 187=14 64 mod 187 = 55
118 mod 187=214 358 881mod 187=33
1123 mod 187=(11×121×55×33×33)mod 187
=79 720 245 mod 187=88
第6章 传输层安全
6.1 Web安全需求
6.1.1 Web安全威胁 135
6.2 传输层安全
6.2.1 TLS体系结构 136
6.2.2 TLS记录协议 138
6.2.5 握手协议 141
- 第一阶段:客户端发起建立连接请求.建立安全连接请求.包括协议版本、会话ID、密码套件、压缩方法和初始随机数
- 第二阶段:服务器认证和密钥交换。服务器发送证书、密钥交换数据和证书请求.最后发送hello消息阶段的结束信号
- 第三阶段:客户端认证和密钥交换。如果有证书请求,客户端发送证书。之后客户端发送密钥交换数据,也可以发送证书验证消息
- 第四阶段:完成。变更密码套件和结束握手协议
第8章 电子邮件安全
8.2 邮件格式
8.2.1 多用途互联网邮件扩展类型 191
8.4 S/MIME
8.4.1 操作描述 199
第11章 入侵者
11.1 入侵者概述 285
入侵者是两种对安全威胁最大的方式之一,也叫黑客,令一种叫病毒,入侵者分三类:
- 假冒用户:未授权使用计算机的个体,或潜入系统的访问控制来获取合法用户的账户。
- 违法用户:系统的合法用户访问未授权的数据、程序或者资源,或者授权者误用其权限。
- 隐秘用户:通过某些方法夺取系统的管理控制权限,并使用这种控制权躲避审计机制和访问控制,或者取消审计集合的个体。
最后
2023-6-24 22:58:59
你对我百般注视,
并不能构成万分之一的我,
却是一览无余的你。
祝大家逢考必过
点赞收藏关注哦