信息安全考点总结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
关于QQ、网银、大师、360等讨论题,你们有谁整理出答案来了hmac是用hash函数做mac的技术
就是分解n啊,不分解n比分解n更难
大家都知道溢出现象一不小心就会发生,所以微软和VC做了预先准备,在临时变量之间设置了缓冲隔离带,万一有溢出,尽可能避免影响到别人,也尽早尽量发现,在debug模式下才有此举,在release模式下隔离带就没有饿了。
缓冲区:
网银安全;
1、Ssl加密,https
2、输入银行账号和密码时的控件:特殊机制
3、对抗口令监听的软件(硬件对抗不了)
4、开通网银时的那句话来鉴别这不是钓鱼网
5、手机交易吗
6、U盾
7、有没有可能网站不存口令
8若是不可能,存了口令,认证期间不要在网上传,传的时候hash一下,传hash值,用随机数挑战,随机数和口令hash。
9、网银ssl加密后给服务器
Qq
登陆方面。
重新设你的密保,复杂一点的,QQ密码也复杂一点,
QQ盗号从单纯的“偷窥”、“键盘钩子”木马、“屏幕快照”木马,到聊天记录监视和“网络钓鱼”
输入账号密码的时候可能网吧里面就双黑色的眼睛正盯着你的键盘可能电脑里面还有你看不到的“眼睛”也监控着你的键盘,然后把获取的账号信息发送出去,而这类木马占了QQ盗号木马的99%以上。
将账号密码加密,QQ账号密码信息本地存放,无须注册。
不用注册的方式比较安全,不用担心信息在传递过程中出现问题
在加密通道中输入QQ账号密码后自动删除所有临时信息
注意电脑系统的清洁
检测键盘钩子程序和木马
以及打开的qq是不是按照目录下的qq.exe
聊天时可以进行身份认证确定和你聊天的确实是那个人
所以现在比较高级的就是用二维码登陆⊙.⊙
手机确认一下
使用qq交换文件的话,服务器会不会有记录?
QQ加密外挂
Pkcs5
密钥分发:
1,公钥CA
2:对称密钥diffie hellman
文件加密的惨剧:
360加密:
无纸化办公:
单表统计规律:
文件共享
密码学和网络信息安全能帮助我们干什么通信安全
偷听和保密
分组网络的存储-转发
假冒和抵赖
无纸化支持
办公和电子商务活动
签章、支付安全和抵赖问题
数字签名
系统安全
漏洞、病毒等问题
系统访问安全体现
恶意代码
病毒、木马、攻击程序数据驱动
黑客
攻击破坏(漏洞,引诱) 未授权使用
系统和软件漏洞
NOS
系统软件
系统安全手段
硬件、NOS、系统软件防火墙
软件、硬件
身份认证
访问控制和授权kerberos
审计/入侵检测
LOG,IDS
网络管理员
关于签名
手写签名数字签名
纸版文件数字文件
手写签名数字小文件
同一页纸如何绑定
必须的特性:
不可伪造
不可重用
不可改变
不可抵赖
四种技术手段
加密
鉴别/数字签名
身份
消息来源和真实性
防抵赖
签名和验证
完整性
校验
网络安全模型
系统安全
病毒、木马、漏洞、黑客、攻击等
防火墙、信息过滤和入侵监测等
传输安全
加密防信息泄密
鉴别和认证:消息来源、身份核认、防抵赖等完整性
* 密码学
加密算法、鉴别和签名算法、安全协议等
* 安全系统
互操作、部署、运行、监控等
密码分析学
目标:恢复密钥或明文
唯密文攻击
只有一些密文
已知明文攻击
知道一些过去的(明文及其密文)作参考和启发选择密文攻击
有一台解密机(能解密选择的密文)
选择明文攻击
缴获有一台加密机(还能加密选择的明文)
Feistel参数特性
分组大小
密钥大小
循环次数
一般仅几轮是不够的,得十几轮才好,如16轮子钥产生算法
越复杂越好
轮函数Round
关键
其他考虑
速度(尤其是软件实现的速度)
便于分析(使用简洁的结构)
不是Feistel结构的
AES、IDEA
* 绝大数分组密码属于或类似Feistel结构
多轮
每轮有XOR(或能恢复的操作)
轮函数
DES
参数
Feistel体制分组密码
分组大小64bit,密钥大小56bit,轮数16轮
S-Boxes
对DES的争议集中在
密钥空间太小Key space
从Lucifer的2^128降到DES的2^56
DES Challenge III, 22 hours 15 minutes
S盒S-Boxes
S盒的设计准则?
陷门?trapdoors by NSA (?)
“Form surprise to suspicion”
从惊喜(甚至能够抵御很后来才发现的各种攻击)
到怀疑(n年前就如此厉害的NSA现在究竟有多厉害)
DES总结
DES算法对个人用户仍值得信赖
DES算法本身没有大的缺陷
对DES攻击方法复杂度为2^47
DES使用的2^56密钥空间不够大,蛮力攻击目前已能够奏效(DES Challenges III),所以关键场合不能使用了
DES已经不再是推荐标准
DES还是AES,或者RC4、RC5、IDEA、BF
Free/Open
DES模块仍广泛存在
保护和延续DES投资
对DES的改造
使用现存的软件硬件在强度上提高
AES(=Rijndael)算法
基本参数
分组大小128bits,被分为4组×4字节处理密钥典型128、192、256bits
非Feistel结构
设计出发点
安全,抵抗已知的攻击方法
代码紧凑,速度够快,适合软硬件实现
结构简单/简明/简
对称算法的应用:
7.1 密码功能的设置
7.2 传输保密性↓
7.3 密钥分配↓
7.4 随机数↓
7.a 案例分析
随机数的用途
用做会话密钥[需保密]
用来产生公钥[需保密]
如产生RSA密钥时素数p和q
鉴别方案中用来避免重放攻击nonce [不需保密]
每次使用不同的随机数
很多挑战-应答协议里的挑战值[不需保密]
salt in /etc/passwd etc [不需保密]
* 安全不仅依赖于密钥的保密,也依赖于随机数的质量非对称算法
密钥:K =(K d,K e)
加密:E (P ,K e)=C
解密:D (C ,K d)=P
要求:从K e K d
K d称为私钥,K e称为公钥
公钥加密算法:
加密(如果有人要给该用户A发送消息P)他先获得该用户的公开钥K e
加密
C = E(P,K e)
传输
解密
D(C,K d)=P
除非拥有K d,象该用户A ,否则不能解开
RSA算法参数建立:
找素数
选取两个512bit的随机素数p,q
计算模n 和Euler 函数φ(n)
n =pq
φ(n)=(p-1)(q-1)
找ed≡1 mod φ(n)
选取数e ,用扩展Euclid 算法求数d
发布
发布(e,n) ,这是公钥k e
d 保密,(d, n) 是私钥k d
RSA加解密:
加密
明文分组m 做为整数须小于n
c = m e mo
d n
解密
m = c d mod n
RSA的正确性
证明
依据Euler 定理,在mod n 的含义下
c d=(m e)d=m e
d mod n
=m kφ(n)+1 mod n
=(mφ(n))k m1 mod n
=m mod n
// 据Euler定理
RSA计算实例:
选p=7,q=17
则n=pq=119
且φ(n)=(p-1)(q-1)=6×16=96
取e=5
则d=77 (5×77 =385 =4×96 +1≡1 mod 96) 公钥(5 ,119 ),私钥(77 ,119 )
加密m =19
则c =m e mod n= 195 mod 119 = 66 mod 119
解密c =66
m =c d mod n = 6677mod 119 =19 mod 119
程序功能:
用p和q为素数,则n=pq且f(n)=(p-1)(q-1)
e为加密指数,则求得解密指数d满足ed=1 mod f(n) 加密明文x,则得密文y=x^e mod n
解密密文y,则得解密明文x2=y^d mod n
注意:e必须和fn互素
用法:pqex <p> <q> <e> <x>
p 和q 都是素数
e 和(p-1)(q-1) 互素
x 小于pq
模幂乘:
97221 % 2003 (都在模2003意义下)
97221=97128+64+16+8+4+1
=97128 9764 9716 978 974 971
依次计算971、972、974、978、9716 (97128)
一直平方下去即可,并保持模2003
如果某次方在1 式出现,则累乘
累积开始是1
* 乘法次数O(log2Y)
攻击RSA
枚举所有可能明文m,用e加密和c比较
枚举所有可能的私钥d(已知明文)
数学方法
分解n=pq ,就可以计算φ(n) ,就可从e 求得d
不分解n ,而直接求φ(n),再求d
不求φ(n) ,直接求d
对RSA的理解
形式简单,易于理解,研究深入支持广泛
既能用来加密,可以用来加密回话密钥,又可签名
它的对称性使它可以可以用来加/解密,同时也可以用来做签名/验证。
安全性的模糊(疑为等价于因子分解的难度)
随机素数产生并不容易
运算量大,速度受局限,尤其在嵌入式设备中
对称短发和公钥算法的比较
速度
典型相差1000倍
密钥管理
对称算法需要额外安全信道
公钥:证书中心CA
混合密码体制
公钥算法用于签名和认证
用公钥算法传输会话密钥
用会话密钥/ 对称算法加密批量(bulk) 数据
公钥算法太慢
公钥的分配方法:
临时索要公钥/自由的扩散/PGP的公钥环
2. 公开的目录服务(在线方式)
3. 公钥授权(在线中心方式)
4. 通过证书中心CA(离线中心方式
公钥授权:在线中心
有在线中心帮助的公钥交换
A 以带时间戳的信息向中心请求
B 的当前公钥
中心用私钥PRauth签署的消息回复A,包括:
原始请求和原始时间戳,B 的公钥PUb,
A 用
B 的公钥加密:将自己的身份IDa 和会话标识号N1包含
在加密的消息里
B 也如法取得A 的公钥
B 用A 的公钥加密:N1 和N2
A 用
B 的公钥加密N2 ,以最后确认会话
在线中心容易成为单点故障和性能瓶颈
Certificate Authentication
CA是受信任的权威机构,有一对公钥私钥。
每个用户自己产生一对公钥和私钥,并把公钥提交给CA申请证书。
CA以某种可靠的方式核对申请人的身份及其公钥,并用自己的私钥“签发”证书。
证书主要内容:用户公钥,持有人和签发人的信息,用途,有效期间,
签名等。
证书在需要通信时临时交换,并用CA的公钥验证。
有了经CA签名保证的用户公钥,则可进行下一步的身份验证和交换会话密钥等。
Diffie-Hellman密钥
目的:使两用户能安全的交换密码,以便在后续的通信中用改密码对消息加密
算法的有效性是建立在计算离散对数是很困难这件事的基础上
步骤
随机
交换y
算k
选取大素数q 和它的一个生成元g ,这些参数公开
A选择随机数X a,B选择随机数X b
A 计算Y a=g^X a mod q ,
B 计算Y b=g^X b mod q
交换Y a,Y b
A 计算K =Y b^X a mod q ,
B 计算K' =Y a^X b mod q
事实上,K =K'
举例q=97,g=5
A选Xa=36,B选Xb=58,则
Ya=5^36%97=50,Yb=5^58%97=44
交换50,44
A算K=44^36%97=75,B算K’=50^58%97=75
分析(别人怎么计算K?)
别人看到了Ya和Yb,但需要计算Xa或Xb,即要算离散对数Ya=g^Xa mod q,或Yb=g^Xb mod q
.b ElGamal加密
准备
1素数p,Zp*中本原元g,公开参数
2私钥a,公钥b=ga mod p
加密
1对明文1<=m<=p-1,选随机数k
2密文(c1, c2)
c1=gk mod p, c2=mbk mod p
解密
1m=c2 (c1a)-1=mbk ((gk)a)-1
=m(ga)k (g-ka)
=m mod p
C2和c1a 先求模再相处
ElGamal加密基于离散对数难题
缺点
需要随机数
密文长度加倍
背景循环群: 从Zp* 到EC 点加群
认证和加密不同。
消息认证是验证消息完整性的一种机制,能发现对消息的篡改或假冒。
使用对称算法可产生消息鉴别码MAC
使用公钥算法可对消息进行签名
身份认证是鉴别通信对方的身份是否属实。
Hash函数是一个单向的消息摘要函数,在产生MAC、签名中有重要用途。
认证函数:
对称加密
2. 公钥加密
3. 消息认证码(MAC)
4. 散列函数(Hash)
认证需要给密文添加结构特征
公钥加密认证方法:
A可以先使用自己的私钥加密消息(这是数字签名),再用B的公钥加密,这样可以提供认证。
亦需要给明文消息添加结构特征
消息认证码mac
利用密钥来生成一个固定长度的短数据块,并将该数据附在消息之后(假定双方共享密钥)
发送方利用密钥从明文产生一个固定长度的短数据块(MAC),和消息一起传输。
接收方考察是否一致,以判断MAC和/或消息是否被改动过。
MAC:CBC模式最后一个分组
MAC函数
计算明文M在密钥K的作用下的特征码
M || MAC(M, K)
验证时,判断明文M 和MAC 码是否一致
HMACK:带key的HASH函数
利用HASH函数从报文和密钥产生MAC码
先计算特征,再把特征加密的思想,或
直接把散列函数和Key结合得MAC
HMAC = Hash Key(Message)
一种实现,比如
HMAC = Hash(Key || Message)
HMACK的含义和用途
HASH函数定义:
对于任意给定的报文,产生固定长度的摘要信息是消息认证的一种变形,输入是大小可变的消息M,输出固定大小的散列码H(M),与MAC不同,HACH并不使用密钥,它仅是输入消息的函数,是所有消息位的函数。
Hash函数强调单向性和抗冲突特性
单向性质:给定h ,要找x 使H(x) =h 是困难的
弱抗碰撞特性:
对于给定的y ,找x ,使H(x) =H(y) 是困难的
强抗碰撞特性(生日攻击):
找x 和y ,使H(x) =H(y) 是困难的
* 如果碰撞则意味着数字签名容易被伪造/欺骗
Hash函数的用途总结下先
Hash函数的用途总结下先
给明文增加结构特征以保护密文
产生MAC码(HMAC)
数字签名前HASH代表参与
从口令衍生密钥
挑战-应答认证协议中
也用来产生随机数
PKCS5用口令到K
数字签名:
是一种认证机制,使得消息的产生者可以添加一个起签名作用的码字。
通过计算消息的散列值并用产生者的私钥加密散列值来生成签名。
签名保证了消息的来源个完整性。
两种模式:
1私钥签名:
输入报文明文、私钥m^d = s
输出报文明文、报文密文(签名) (m, s)
验证s^e =? M
不可伪造
不可改变
2散列签名
讨论
私钥(其实是公钥)的管理: 和身份绑定、更新等
签名过程太慢: 启用散列函数
改进
对报文的散列值用私钥加密得到和n 等宽的签名值使用证书的鉴别过程:例如ssl
A要和B通信,A要弄清楚B是否是他所期望的真的B
A->B:A向B请求证书
A<-B:B的证书
A :A检查B的证书是否是A所信任的中心签发的
A->B:A给B一个随机报文,让B签个名来看看
B :B签名,在签名之前可施加自己的影响成分
A<-B:B的签名
A :检验是否通过了B的证书里的公钥的验证。