网络安全与基础总复习
零——复习资料
- 网络安全基础应用与标准(第六版)
- Netsec中文译版课件
第一章——引言
1.1 CIA三元组
- 机密性(Confidentiality):数据机密性;隐私性
- 完整性(Integrity):数据完整性;系统完整性
- 可用性(Availability)
为了使安全场景更全面又提出新的概念,提及较多的有:真实性,可计量性
安全的三个等级
分为低中高(了解)
1.2 OSI安全体系结构
- 安全攻击:威胁信息安全的行为
- 安全机制:检测防范恢复的机制
- 安全服务:增强,传递安全的服务
X.800定义OSI安全体系结构
RFC4949 定义威胁和攻击
- 威胁:可能造成攻击的潜在攻击
- 攻击:故意避开安全防范进行破坏安全的行为
1.3 安全攻击
被动攻击
本质是监听,获取传输的目标信息,被动攻击有两种形式。
- 消息内容泄露攻击
- 流量分析攻击
主动攻击(则试图改变系统资源或影响系统操作)
)
有四类
- 假冒 :一个实体假冒成另一个实体
- 重放 :截取,重传,产生非授权
- 改写信息 : 篡改,延迟,重排等
- 拒绝服务 :禁止已授权对象或设备
对比
-
被动攻击:不影响系统资源,不影响系统操作
主动攻击:试图改变系统资源或影响系统操作 -
被动攻击:易发现
主动攻击:不易发现
1.4 安全服务(X.800定义)
- 认证(authentication):确保信息实体是真实的
- 访问控制(access control):限制控制通过通讯链路访问主机的活动
- 数据机密性(data confidentiality):防御被动攻击(passive attack),防止流量劫持。
- 数据完整性(data integrity):确保消息收发是一致的
- 不可抵赖性(nonrepudiation):防止发送者或接收者否认一个传输消息
- 可用性服务(availability service):当收到命令,主机可以正常处理服务
第二章 对称加密和信息机密性
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密码结构
很多对称加密算法的结构
简而言之:文本一分为二,右端由一个初始的轮函数加密,与左端进行异或,并将结果对换,如此往复,且每次子密钥/轮函数(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再用私钥解密,其他人不可对公钥进行逆向解密,只有公钥发行者才可以通过密钥解密。
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=MemodN。
-
解密:给定密文C,计算明文M=CdmodN。
算法安全
①数学攻击:使用越大位数d的数字,越可以防范数学攻击。
②时间攻击:通过解密的运行时间推断d的长度,可以引入随机延迟
③选择密文攻击:通过选择发送目的性的数据块分析所需的信息,可以引入无意义的文本填充。
Diffie-Hellman密钥交换
目的:安全交换密钥
算法步骤
①甲与乙共享一个大的质数p和一个基g(1<g<p)
②甲选择一个密钥a,计算A=gamodp,发送A给乙
③乙选择一个密钥b,计算B=gbmodp,发送B给甲
④甲计算s=Bamodp 乙计算s=Abmodp,他们拥有共同的密钥s。
中间人攻击
假设一个中间人丙可以劫持甲乙之间的通信
则甲乙都是向丙进行通信,而不是甲乙单向通信。
①甲乙分别计算公钥YAYB,甲向乙发送YA
②丙自己单独计算两个公钥XD1和XD2。丙劫持YA,并且向乙发送XD1,计算K2=(YA)XD2modq
③乙接收XD1,K1=(YD1)XBmodq,向甲发送XA
④丙劫持乙发送的消息,向甲发送YD2,计算K1=(YB)XD1modq
⑤甲接收YD2,并且计算K2=(YD2)XAmodq
简单的说,就是甲和丙共享K2,乙和丙共享K1。K2是用甲的YA和丙的YD2计算得到的,K1是由乙的YB和丙的YD1计算得到的
预防方法为使用数字签名和公钥证书
其他公钥密码
数字签名标准
由美国国家标准与技术研究所(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 | 服务器 |
IDC | 客户端上用户的身份标识 |
IDV | 服务器上的身份标识 |
PC | 客户端上用户的口令 |
ADC | 客户端的网络地址 |
KV | 认证服务器和登录服务器的共享密钥 |