网络安全与基础总复习

零——复习资料

  • 网络安全基础应用与标准(第六版)
  • Netsec中文译版课件

第一章——引言

1.1 CIA三元组

image

  • 机密性(Confidentiality):数据机密性;隐私性
  • 完整性(Integrity):数据完整性;系统完整性
  • 可用性(Availability)

为了使安全场景更全面又提出新的概念,提及较多的有:真实性,可计量性

安全的三个等级

分为低中高(了解)
image

1.2 OSI安全体系结构

  • 安全攻击:威胁信息安全的行为
  • 安全机制:检测防范恢复的机制
  • 安全服务:增强,传递安全的服务

X.800定义OSI安全体系结构
RFC4949 定义威胁和攻击


  • 威胁:可能造成攻击的潜在攻击
  • 攻击:故意避开安全防范进行破坏安全的行为

1.3 安全攻击

被动攻击

本质是监听,获取传输的目标信息,被动攻击有两种形式。

  • 消息内容泄露攻击
  • 流量分析攻击

主动攻击(则试图改变系统资源或影响系统操作)

有四类

  • 假冒 :一个实体假冒成另一个实体
  • 重放 :截取,重传,产生非授权
  • 改写信息 : 篡改,延迟,重排等
  • 拒绝服务 :禁止已授权对象或设备

对比

  1. 被动攻击:不影响系统资源,不影响系统操作
    主动攻击:试图改变系统资源或影响系统操作

  2. 被动攻击:易发现
    主动攻击:不易发现

1.4 安全服务(X.800定义)

  • 认证(authentication):确保信息实体是真实的
  • 访问控制(access control):限制控制通过通讯链路访问主机的活动
  • 数据机密性(data confidentiality):防御被动攻击(passive attack),防止流量劫持。
  • 数据完整性(data integrity):确保消息收发是一致的
  • 不可抵赖性(nonrepudiation):防止发送者或接收者否认一个传输消息
  • 可用性服务(availability service):当收到命令,主机可以正常处理服务

第二章 对称加密和信息机密性

image

2.1 密码分类

按一下三个角度分类

  • 明文转换密文的类型
    所有算法都基于替换和换位,要求信息不得缺失

  • 使用的密钥数
    若双方使用同意密钥则为:对称,单钥,私钥或传统加密
    若不同,则为非对称,双钥,宫钥加密

  • 明文处理方式
    分组密码一次处理一个元素
    流密码连续地处理输入元素,每次产生一个输出元素

攻击类型

攻击类型 攻击所需要的信息
唯密文(Ciphertext only) 1.加密算法 2.要解密的密文
已知密文(Known plaintext) 1.加密算法 2.要解密的密文 3.一个/多个密钥产生的密文
选择明文(Chosen plaintext) 1.加密算法 2.要解密的密文 3.某段明文+该段明文的密文
选择密文(Chosen ciphertext) 1.加密算法 2.要解密的密文 3.密文+该段密文解密出的明文
选择文本(Chosen text) 1.加密算法 2.要解密的密文 3. 密文+该段密文解密出的明文 4.某段明文+该段明文的密文

暴力攻击(Brute Force Attack)

破译是很难预估的,若算法无弱点,有x个可能的密钥,则需要x/2次才有可能完全破解。暴力攻击就是穷举所有的可能性。


Feistel密码结构

很多对称加密算法的结构
image

简而言之:文本一分为二,右端由一个初始的轮函数加密,与左端进行异或,并将结果对换,如此往复,且每次子密钥/轮函数(k/f)都不同,都是基于上一次迭代演算来的。迭代16次。

Felstel设计要素

  • 分组大小:分组越细致安全性越高,但是加密解密效率降低,目前都为128bit
  • 密钥大小:同上,目前主流也为128bit
  • 迭代轮数:轮次多少不能显著提升安全性,因为本质是单局处理,一般16轮。
  • 子密钥产生算法:越复杂越难破解
  • 轮函数:同上
  • 快速软件加密/解密:算法执行速度
  • 容易分析:越容易越易破解

2.2 对称加密算法

数据加密标准(DES)

算法描述:明文64bit,密钥长度56bit,16轮迭代,以原始56比特密钥为基础产生16组子密钥。第一次使用第16次的子密钥,最后一次使用第一次的子密钥。

强度:至少目前无公开说明该算法有缺陷。只能通过穷举

2.5 分组密码工作方式(了解)

工作模式 简略
电子密码本模式(ECB) 1.每次加密密钥相同 2.相同明文=相同密文 3. 64bit工作模式易暴露
密码分组连接模式(CBC) 1.每次加密密钥相同 2. 从第二次输入开始,输入是当前密文与前一个密文分组的异或
密码反馈模式(CFB) 1. 某一初始向量(IV)首先进行加密,然后与明文进行异或,最后继续反馈到加密算法内 2. 不能并行输入 3. 不损失安全性前提下更简单的处理一个块
计数器模式(CTR) 1.一个计数器对应一个分组,计数器+密钥进行加密

第三章 公钥密码和消息认证

消息认证:防止被动攻击(窃听),主动攻击(伪造数据和业务)的方法。

常规加密的消息认证

  • 密钥:使用相同密钥才能加密解密消息
  • 序列号:感知是否被篡改
  • 时间戳:是否在正确的时间接收消息

非加密消息认证

特点:在内容上附加认证标签。不加密信息

消息认证码(MAC)

内容:将一段加密的消息认证码(MAC),附着到明文上传递给目标,目标有相同密钥可以解密加密的MAC,解密MAC和传递的MAC一样,则说明消息未被篡改,消息来源合法。

3.2 安全散列函数

特性/要求

  • 散列函数适用任意长度的数据
  • 散列函数生成的散列值是定长的
  • 计算密文是易实现的
  • 单向性:不可由密文推演到明文
  • 抗第二原像攻击性:对于相同的密文,他们的明文不可一致
  • 抗碰撞性:凭计算是不可能计算(或者说很难计算),明文不一致的输入他们的密文相同。
  • 预映射阻力:对于给定的输出,应该非常困难(在实际上是不可能)找到一个输入,使得哈希函数的输出等于给定的输出。
  • 二次预映射阻力:对于给定的输入,应该非常困难(在实际上是不可能)找到另一个输入,使得两个输入的哈希函数的输出相同。
  • 碰撞阻力:应该非常困难(在实际上是不可能)找到两个不同的输入,使得他们的哈希函数的输出相同。
    ————copilot

满足前五个为弱散列函数,前六个为强散列函数

3.4 公钥密码

组成

  • 明文
  • 加密/解密算法
  • 公钥和私钥
  • 密文

思想

假设两个通信方A,B,通信前每人会生成两个密钥,一个为公钥一个为私钥,公钥是公开的。若A向B发送消息,则A需要使用公钥进行加密,发送给B,B再用私钥解密,其他人不可对公钥进行逆向解密,只有公钥发行者才可以通过密钥解密。

image

image

3.5 公钥密码算法

RSA (重要)

算法步骤

①选择两个不相等质数p,q
②计算φ(n)=(p-1)(q-1) ; n=pq
③选择一个整数e,满足:1<e<φ(n);e与φ(n)互为质数
④再选择一个d,满足ed≡1(mod φ(N)) (ed/φ(N)=1)
⑤则公钥为(e,n)
⑥私钥为(d,n)

  • 加密:给定明文M,计算密文\(C=M^e mod N\)

  • 解密:给定密文C,计算明文\(M=C^d mod N\)

算法安全

①数学攻击:使用越大位数d的数字,越可以防范数学攻击。
②时间攻击:通过解密的运行时间推断d的长度,可以引入随机延迟
③选择密文攻击:通过选择发送目的性的数据块分析所需的信息,可以引入无意义的文本填充。

Diffie-Hellman密钥交换

目的:安全交换密钥

算法步骤

①甲与乙共享一个大的质数p和一个基g(1<g<p)
②甲选择一个密钥a,计算\(A=g^a mod p\),发送A给乙
③乙选择一个密钥b,计算\(B=g^bmodp\),发送B给甲
④甲计算\(s=B^amodp\) 乙计算\(s=A^bmodp\),他们拥有共同的密钥s。

中间人攻击

假设一个中间人丙可以劫持甲乙之间的通信
则甲乙都是向丙进行通信,而不是甲乙单向通信。

①甲乙分别计算公钥\(Y_A\)\(Y_B\),甲向乙发送\(Y_A\)
②丙自己单独计算两个公钥\(X_{D1}\)\(X_{D2}\)。丙劫持\(Y_A\),并且向乙发送\(X_{D1}\),计算\(K_2=(Y_A)^{X_{D2}}modq\)
③乙接收\(X_{D1}\)\(K_1=(Y_{D1})^{X_B}mod q\),向甲发送\(X_A\)
④丙劫持乙发送的消息,向甲发送\(Y_{D2}\),计算\(K_1=(Y_B)^{X_{D1}}modq\)
⑤甲接收\(Y_{D2}\),并且计算\(K_2=(Y_{D2})^{X_A}modq\)

简单的说,就是甲和丙共享\(K_2\),乙和丙共享\(K_1\)\(K_2\)是用甲的\(Y_A\)和丙的\(Y_{D2}\)计算得到的,\(K_1\)是由乙的\(Y_B\)和丙的\(Y_{D1}\)计算得到的

预防方法为使用数字签名和公钥证书

其他公钥密码

数字签名标准

美国国家标准与技术研究所(NIST) 定制的数字签名标准(DSS),后期提出了数字签名算法(DSA)

椭圆曲线密码

对标RSA算法的产物 (ECC)

3.6 数字签名

数字签名算法(DSA)

算法步骤

甲的消息首先经过密码哈希函数加密后,附上甲的私钥输入数字签名产生算法内,生成一个短块,附在消息上,发送给乙。然后乙收到该消息+签名后,把甲的消息放入密码哈希函数内,加上签名和甲的私钥进入数字签名验证算法内。

第四章

4.2 密钥分配

有以下四种密钥分配的选择

  • A选定密钥并且通过物理方法给B
  • 第三方可以选定密钥并通过物理方法传递给A和B
  • 若AB之前使用过一个密钥,那么一方可以通过被旧密钥加密的新密钥传递给另一方
  • 如果AB各自有一条到达第三方C的加密链路,那么C可以在加密链路上传递A和B

基于第四种思想的是密钥分发中心(Key Distribution Center KDC),KDC决定哪些系统之间允许通信,两个系统被允许建立连接时,KDC为这条链路提供一次性密钥。

Kerberos 4

关键词

简写 意义
C 客户端
AS 认证服务器
V 服务器
\(ID_C\) 客户端上用户的身份标识
\(ID_V\) 服务器上的身份标识
\(P_C\) 客户端上用户的口令
\(AD_C\) 客户端的网络地址
\(K_V\) 认证服务器和登录服务器的共享密钥

image

posted @ 2023-11-25 16:36  魔法少女小胖  阅读(33)  评论(0编辑  收藏  举报