一、概述
1. 安全基本目标有哪些?其含义分别是什么?(p7)
1)保密(机密)性:对信息的访问和公开进行授权限制,包括保护个人隐私和秘密信息。保密性缺失的定义是信息的非授权泄露;
2)完整性:防止对信息的不恰当修改或破坏,包括确保信息的不可否认性和真实性。完整性缺失的定义是对信息的非授权修改和毁坏;
3)可用性:确保对信息的及时和可靠的访问与使用。可用性的缺失是对信息和信息系统访问与使用的中断。
尽管CIA三元组足以定义安全目标,但是许多从事安全领域研究的人认为还需要其他概念来定义才更全面。下面是其中两个被提及较多的概念:
真实性:一个实体是真实性的、是可被验证的和可被信任的特性;对传输信息来说,信息和信息的来源是正确的。也就是说,能够验证那个用户是否是他声称的那个人,以及系统的每个输入是否均来自可信任的信源。
可追溯性:这一安全目标要求实体的行为可以唯一追溯到该实体。这一属性支持不可否认性、阻止、故障隔离、入侵检测和预防、事后恢复、以及法律诉讼。
2. OSI安全框架定义了哪三个方面?其中安全攻击被分成哪两个类别,有什么特点?分别有哪些实例?(p10)
(1)OSI安全框架可以简短地定义如下:
①安全攻击:任何危及信息系统安全的行为;
②安全机制:用来检测、阻止攻击或者从攻击状态恢复到正常状态的过程(或实现该过程的设备)
③安全服务:加强数据处理系统和信息传输的安全性的一种处理过程或通信服务。其目的在于利用一种或多种安全机制进行反攻击
(2)安全攻击被分为被动攻击和主动攻击两种:
①被动攻击的特点:对传输进行窃听和监测,攻击者的目标是获得传输的信息,难以检测,但可以防止。
实例:信息内容的泄露、流量分析。
②主动攻击:包括对数据流进行修改或伪造数据流,难以绝对预防,但容易监测
实例:伪装、重播、消息修改、拒绝服务
二、信息加密技术和信息隐藏技术
3. 现代密码算法分为哪两种?
现代密码算法:对称加密算法(密钥加密)、非对称加密算法(公钥加密)
对称钥匙加密系统是加密和解密均采用同一把秘密钥匙,而且通信双方都必须获得这把钥匙,并保持钥匙的秘密。
非对称密钥加密系统采用的加密钥匙(公钥)和解密钥匙(私钥)是不同的。
对称密码
流密码
4. 对称密码算法按照对明文的处理方式不同可以分成哪两类? 对称密码算法有哪些?
基本的参数 (明密文分组长度,密钥长度) ?
(1)分组密码和流密码
(2)DES、3DES和AES
(3)如图:
5. 分组密码的工作方式有哪些?
(1)电码本模式ECB
(2)密文分组链接模式CBC
(3)密文反馈模式CFB
IV 64bit,IV用Key加密得到移位寄存器R
IV不必保密,但是必须相同
明文s比特,与R的高位s比特XOR,得密文s比特
s比特的密文同时从R的低位进入,挤掉R的高位的s比特
* 优点:流密码 stream cipher
(4)输出反馈模式OFB
(5)计数器模式CTR
CTR计数方式(也是一种流方式应用,但是可以非顺序存取)
重复加密初始counter++,得密钥流
明文与之XOR
优点:适合随机存取
注意:Counter的初值须不能预测
6. 公钥密码有哪些算法,主要的应用是什么?
(1) RSA、ElGamal、背包算法、Diffie-Hellman (D-H) 密钥交换协议中的公钥加密算法
EllipTIc Curve Cryptography(ECC,椭圆曲线加密算法)
(2)应用:
①加密/解密:发送方用接收方的公钥对消息进行加密
②数字签名:发送方用其私钥对消息“签名”。签名可以通过对整条消息加密或者对消息的一个小的数据块加密来产生,其中该小数据块是整条消息的函数
③密钥交换:通信双方交换会话密钥。有几种不同的方法可以用于密钥交换,这些方法都使用了通信一方或双方的私钥
7. 公钥算法安全性的数学基础有哪些?
素数、欧几里得(Euclid)算法、费马定理、
欧拉定理、素性测试、中国剩余定理、离散对数
8. RSA算法的计算过程?针对RSA算法有哪些类型的攻击?
(1)RSA算法的计算过程(p200)
- RSA算法是一种非对称密码算法,所谓非对称,就是指该算法需要一对密钥,使用其中一个加密,则需要用另一个才能解密。
- RSA的算法涉及三个参数,n、e1、e2。其中,n是两个大质数p、q的积,n的二进制表示时所占用的位数,就是所谓的密钥长度。
- e1和e2是一对相关的值,e1可以任意取,但要求e1与(p-1)*(q-1)互质;再选择e2,要求(e2×e1)≡1(mod(p-1)×(q-1))。
- (n,e1),(n,e2)就是密钥对。其中(n,e1)为公钥,(n,e2)为私钥。
- RSA加解密的算法完全相同,设A为明文,B为密文,则:A≡B^e2( mod n);B≡A^e1 (mod n);(公钥加密体制中,一般用公钥加密,私钥解密)e1和e2可以互换使用,即:
A≡B^e1 (mod n);B≡A^e2( mod n)。
(2)针对RSA算法的攻击:(p205)
- 穷举攻击:这种方法试图穷举所有可能的私钥。
- 枚举所有可能明文m,用e加密和c比较
- 枚举所有可能的私钥d(已知明文)
- 数学攻击:有多种数学攻击方法,他们的实质都是试图分解两个素数的成积。
- 分解n=pq,就可以计算φ(n),就可从e求得d
- 不分解n,而直接求φ(n),再求d
- 不求φ(n),直接求d
- 计时攻击:这种方法依赖于解密算法的运行时间。
- 基于硬件故障的攻击:这种方法应用产生签名过程中处理器发生的故障。
- 选择密文攻击:这种攻击利用了RSA算法的性质。
9. DH算法的实现过程?针对DH算法的中间人攻击是如何发生的?(p216)
(1)DH算法的实现过程:
双方选择素数q以及q的一个原根a
用户A选择一个随机数Xa < q,计算Ya=aXa mod q
用户B选择一个随机数Xb < q,计算Yb=aXb mod q
每一方保密X值,而将Y值交换给对方
用户A计算出K=YbXa mod q
用户B计算出K=YaXb mod q
双方获得一个共享密钥(aXaXbmod q)
(素数q以及q的原根a可由一方选择后发给对方)
(2)DH算法的中间人攻击:(p221)
1 双方选择素数q以及q的一个原根a(假定D知道)
2 .A选择Xa<q,计算Ya=aXa mod q, AàB: Ya
3 .D截获Ya,选Xd,计算Yd=aXd mod p,冒充AàB:Yd
4 .B选择Xb<q,计算Yb=aXb mod q, BàA: Yb
5 .D截获Yb,冒充BàA:Yd
6 .A计算: K1=(Yd)Xa≡(aXd)Xa≡aXdXa mod q
7 .B计算: K2=(Yd)Xb≡(aXd)Xb≡aXdXb mod q
8 .D计算: K1=(Ya)Xd≡aXaXd mod q, K2=(Yb)Xd≡aXbXd mod q
10. 作为保密通信的一种方式,信息隐藏和数据加密的主要区别是什么?
答:(1)区别:
目标不同:加密仅仅隐藏了信息的内容; 信息隐藏既隐藏了信息内容,还掩盖了信息的存在。
实现方式不同:加密依靠数学运算;而信息隐藏充分运用载体的冗余空间。
应用场合不同:加密只关注加密内容的安全,而信息隐藏还关注载体与隐藏信息的关系。
(2)联系:
理论上相互借用,应用上互补。信息先加密,再隐藏
三、消息认证技术
11. 什么是消息认证?为什么需要消息认证?如何实现消息认证(或消息认证函数的实现方式)?(p272)
(1)消息认证是用来验证消息完整性的一种机制或服务。消息认证确保收到的数据确实和发送时的一样(没有修改、插入、删除和重放)。此外,通常还要求消息认证机制确保发送方声称的身份是真实有效的。(它也能验证消息的顺序和及时性。)
(2) 在网络通信环境中,消息很可能受到攻击。如:对消息的伪装、内容修改、顺序修改和计时修改,等等。因此需要消息认证来确认消息的安全性。
防止网络通信的攻击(4类)
窃听 流量分析
伪装(假冒) 篡改内容 修改顺序 修改时间(包括重放)
发送方抵赖(拒绝承认曾发出过某消息)
接收方抵赖
(3)如何实现消息认证:
①Hash函数:将任意长的消息映射为定长的Hash值的函数以该Hash值作为认证符;
②消息加密:对整个消息加密后的密文作为认证符;
③消息认证码(MAC):它是消息和密钥的函数,它产生定长的值,以该值作为认证符。
12. 散列函数可被应用于哪些方面?(p239)密码学散列函数需哪些安全性需求?(p245)常见的散列函数有哪些?(p251)基本参数(输入、输出长度、安全性等)?
(1)应用方面:
①消息认证;
②数字签名;
③其他应用(产生单向口令文件、入侵检测和病毒检测、构建随机函数(PRF)或用作伪随机数发生器(PRNG))。
(2)安全性需求:
(如果一个函数满足前5条,弱Hash函数;满足前6条,强Hash函数):
实际应用的需求:
①输入长度可变:函数H可应用与任意大小的数据块;
②输出长度固定:H产生定长的输出;
③效率:对任意给定的x,计算H(x)比较容易,用硬件和软件均可实现。
安全性特性:
④抗原像攻击(单向性):对任意给定的Hash码h,找到满足H(y)的y在计算上是不可行的;
⑤抗第二原像攻击(抗弱碰撞性):对任何给定的分块x,找到满足y!=x且H(x) = H(y)的y在计算上是不可行的 ;(使用对Hash码加密的方式防止伪造)
⑥ 抗碰撞攻击(抗强碰撞性):找到任何满足H(x) = H(y)的偶对(x,y)在计算上是不可行的 ;
⑦伪随机性:H的输出满足伪随机性测试标准。
(Hash+数字签名:满足④⑤⑥;入侵检测和病毒检测满足⑤;单向口令文件④;
MAC满足④⑤⑥(⑥需要攻击者能够实现选择信息攻击))
(3) 常见的散列函数:安全Hash算法(SHA)系列算法,比如SHA -512、SHA-3、MD5。
(MD5 和 SHA1 可以说是目前应用最广泛的Hash算法,而它们都是以 MD4 为基础设计的)
(4)基本参数:
IV = 初始值 CV = 链接值 Yi = 第i 个输入数据块
f = 压缩算法 n = Hash码的长度 b = 输入块的长度
13. 消息认证码的实现方式有哪两种?常见的算法有哪些?
(1)基于Hash函数的MAC、基于分组密码的MAC;
(2)基于散列(Hash函数)的MAC:HMAC算法
基于分组密码的MAC:DAA(数据认证算法,目前已被废止)和CMAC(基于密码的消息认证码)
14. 消息认证和加密的关系(同时提供认证和加密的通用方案有哪些)
加密和认证的独立:
1、加密本身不能实现认证功能
2、认证和加密的分离带来灵活性
只要认证而不需保密:
如公文,软件完整性鉴别(防病毒) 网络管理广播报文(如SNMP)等
不能加密的场合(如法规限制)
存档期间的保护(而不仅是传输期间)
同时提供认证和加密的通用方案:
1)HtE:先hash再加密
2)MtE:先MAC再加密
3)EtM:先加密在MAC
4)E&M:加密并且MAC
(消息认证(message authentication)就是验证消息的完整性,当接收方收到发送方的报文时,接收方能够验证收到的报文是真实的和未被篡改的。它包含两层含义:一是验证信息的发送者是真正的而不是冒充的,即数据起源认证;二是验证信息在传送过程中未被篡改、重放或延迟等。
加密:加密算法强度复杂、安全性依赖于算法与密钥。对称密码体制中只有一种密钥,并且是非公开的,如果要解密就得让对方知道密钥。所以保证其安全性就是保证密钥的安全,而非对称密钥体制有两种密钥,其中一个是公开的,这样就可以不需要像对称密码那样传输对方的密钥了,安全性就大了很多。)
(有先hash在加密
先认证再加密:ssl
先加密再认证:ipsec
独立进行加密和认证:ssh)