密钥管理
出发点:在一种安全策略指导下的密钥产生,存储,分配,删除,归档和应用方案。
目的:维持系统各实体之间的密钥关系,抗击各种威胁:
1.密钥泄露
2.密钥和公钥身份真实性丧失
3.未授权使用
内容:产生,登记,装入,存储和保护,分配和密钥协定,使用控制,备份恢复,更新,撤销和销毁。
密钥类型
会话密钥:两个终端在一次通信中使用的密钥。用于加密文件时就叫文件密钥,加密数据时就叫数据加密密钥
密钥加密密钥:用于对会话密钥或文件密钥进行加密时采用的密钥。又称辅助(二级)密钥或密钥传送密钥。
主机主密钥:对密钥加密密钥加密的密钥,存于主机处理器
基本密钥:也叫初始密钥,用户密钥。由用户指定或者系统分配给用户的,可以在较长时间内由一对用户专用的密钥。
公钥体制下还有公开密钥,秘密密钥,签名密钥
密钥产生
密钥产生不当会导致密钥空间的减小和字典式攻击。
要尽可能随机等概率产生密钥。
不同等级的密钥产生不一样。
主机主密钥最重要,要保证完全随机。
密钥加密密钥可以伪随机或者安全算法产生
会话密钥可以通过密钥加密密钥和某些算法产生
初始密钥可以用类似主机主密钥的方式
密钥登记
将密钥和特定使用者绑定。
密钥装入
主机主密钥和终端主密钥装入时要有电磁屏蔽,装入后不可再读出,可间接验证。
会话密钥不存在装入问题
密钥保护
最好放在物理安全的地方。
否则要使用机密性和完整性服务来保护
公钥的存储:一次性发放给用户;用户存放在公共媒体上;利用公钥建立密钥环分散保存
密钥分配和密钥协定
密钥分配协议:系统内一个成员选择密钥,并安全传送给别的成员的协议。
密钥协定协议:系统内两个或多个成员在公开信道上联合建立秘密密钥,连个成员的密钥协定也称为密钥交换,如著名的hellman密钥交换。
一个是单成员确定,一个是协商确定。
主密钥的分配:将密钥切分成多部分,通过多种方式传输
密钥分配体制:
1.集中式:中心服务器负责密钥的分发,密钥的存储量和用户量差不多。代表Kerboros协议
2.分布式:用户协商密钥交换。例如Diffie-hellman密钥交换。但这个交换没有鉴别能力,不能抵抗中间人攻击。
密钥的分配技术:
1.静态分配:中心以脱线方式预分配
2.动态分配:请求-分发的在线分发技术
密钥的分配说明了一种密钥是由哪个主体分发到哪些主体的。而密钥的静态配置是密钥统一由KMC产生,分发,更换的集中式管理体制。
静态配置的管理体制分成:
1.点对点配置,此时单个体需要存储n-1密钥,整体密钥量为n^2
2.网状配置:此时用户统一和一个KMC交互,总密钥量为n。此时KMC容易成为整体的性能瓶颈。
3.星状配置:局部的网状配置再进一步集中到一个KMC,因此可以配置局部KMC,综合了密钥管理量和性能下的选择,是一种密钥的层次管理方案。
公钥分配方案
首先是著名的hellman密钥交换,这个协议可以被中间人攻击
主要是利用了解离散对数的复杂度来保证密钥不被获取,通过原根和选定的随机数密钥来进行密钥协定,通过幂运算的性质来协定密钥,但是中间人可以不停的截获并伪造双方的密钥,再进行转发从而进行攻击。
端到端协议,STS协议
假设用户的签名和验证算法是sig和ver,可信中心的签名和验证为
s
i
g
sig
sig和ver,用户有证书
(
I
D
(
u
)
,
v
e
r
u
,
s
i
g
T
A
(
I
D
(
u
)
,
v
e
r
u
)
)
(ID(u),veru,sig_{TA}(ID(u),veru))
(ID(u),veru,sigTA(ID(u),veru))
1.用户U随机选
x
u
∈
z
p
x_u\in z_p
xu∈zp计算
a
x
u
m
o
d
p
a^{xu} mod p
axumodp发给v
2.用户v随机选
x
v
∈
z
p
x_v\in z_p
xv∈zp计算
a
x
v
m
o
d
p
,
S
v
=
s
i
g
v
(
a
x
u
m
o
d
p
∣
∣
a
x
v
m
o
d
p
)
a^{xv}modp,S_v=sig_v(a^{xu}modp||a^{xv}modp)
axvmodp,Sv=sigv(axumodp∣∣axvmodp),发送
(
C
(
V
)
,
a
x
v
m
o
d
p
,
S
v
)
(C(V),a^{xv}modp,S_v)
(C(V),axvmodp,Sv)发给u;同时计算
K
=
a
x
u
x
v
K=a^{xuxv}
K=axuxv
3.用户u计算
K
=
a
x
u
x
v
m
o
d
p
K=a^{xuxv}modp
K=axuxvmodp,用verv验证S_v,用ver_TA验证C(V),计算
S
u
=
s
i
g
u
(
a
x
u
m
o
d
p
∣
∣
a
x
v
m
o
d
p
)
S_u=sig_u(a^{xu}modp||a^{xv}modp )
Su=sigu(axumodp∣∣axvmodp)再把
(
C
(
U
)
,
S
u
)
(C(U),S_u)
(C(U),Su)发给V
4.V验证一下veru(Su)和ver_TA(C(U))
可以看到STS协议是一个密钥交换协议,其工作方式和hellman机制相同,但引入了TA的证书校验机构,在交换密钥的同时补充了身份认证的问题,因此解决了hellman算法的中间人攻击。身份认证核心思想在于数字签名算法和证书的作用。
证书起到的作用是:用户在TA完成了认证,只有TA可以签名,因此ID和ver是对的,但ID和ver是可以被监听的,因此用户要证明自己是id,同时用户进行了签名,用ver可以解出来,说明确实是这个用户在进行密钥交换。同理,另一个用户在检查完身份之后,也把自己的认证方式发了一遍,于是双方完成了身份鉴定。在这个过程中,同时完成了密钥交换和密钥的检验。
因此用户需要同时丢失证书和签名密钥时算法才能被攻击。
端到端协议,MIT协议
引入了证书,但是双方不进行签名。
可以看见MIT协议在用户丢失证书时可以进行中间人攻击。
密钥使用控制
目标是标识密钥的种类,使得密钥值和合法使用范围绑定起来。通常标识有:密钥拥有者,密钥标识符,有效时间,特定算法,特定使用环境和用户,密钥产生注册认证的实体,完整性检查
密钥长度
目标是保证系统安全,但是不能开销太大
确定长度的信息:保存信息的价值,信息的保密时间,信息的攻击者的资源情况