五、认证应用
1、身份验证
身份验证包括身份识别和身份认证。
身份识别是用户向系统出示自己的身份证明过程。
身份认证是系统查核用户的身份证明过程。
2、Kerberos 基于UDP实现 基于对称密码建立的认证协议
在一个开放的分布式网络环境中,用户通过工作站访问服务器上提供的服务。
问题:一个非授权用户能够获得其无权访问的服务或数据。
Kerberos采用常规加密算法,根本不用公钥加密。
Kerberos提供一个中心认证服务器,提供用户到服务器和服务器到用户的认证服务。
Kerberos系统满足要求:安全、可靠、透明、可伸缩
3、Kerberos-认证服务器(AS)
它知道所有用户的口令并将它们存储在一个中央数据库中。AS与每一个服务器共有一个唯一的保密密钥。这些密钥已经物理上或以更安全的手段分发。
4、更安全的认证对话
ticket reusable
ticket-granting server
Password-to-Key Transformation ð
从用户口令得到的密钥加密票据
只有正确的用户知道口令,则只有该用户能够恢复票据
5、Kerberos分析
可信第三方
(1)所需的共享密钥分配和管理变得十分简单
(2)AS担负认证工作,减轻应用服务器的负担
(3)安全相关数据的集中管理和保护,从而使攻击者的入侵很难成功
Ticket
(1)AS的认证结果和会话密钥安全地传送给应用服务器
(2)在生存期内可重用,减少认证开销,提高方便性
Ticket发放服务
(1)降低用户口令的使用频度,更好地保护口令
(2)减轻AS的负担,提高认证系统的效率
时间戳
(1)防止对Ticket和Authenticator的重放攻击
以共享秘密(密钥)为认证依据
重放攻击
(1)ticket-granting ticket具有较长的生存期,很容易被重放
(2)对于有准备的攻击者,5分钟的生存期内也可能进行重放攻击
(3)保存所有存活认证符并通过比较检测重放攻击的办法难以实现
(4)与其他攻击形式结合的重放攻击更容易成功
PCBC与CBC的不同:也反馈了明文
6、X.509认证服务
X.509以公钥密码和数字签名的使用为基础。
每个证书都包含用户的公钥,并有可信任的证书权威机构(CA)的私钥进行签署。
公钥算法推荐使用RSA,数字签名方案需要使用哈希函数。
7、X.509证书
用户A可以通过一个证书链获得B的公钥。N个元素的证书链可表示为:
X1〈〈X2〉〉X2〈〈X3〉〉…XN〈〈B〉〉
此时,链中的(X i,Xi+1)的每个CA对必须已经相互创建了证书。
正向证书:其他CA产生的X的证书。
反向证书:X生成的其他CA的证书
8、认证过程:单向认证、双向认证、三向认证
9、公开密钥基础设施PKI
认证:数据源认证服务/身份认证服务
完整性:数字签名/MAC
保密性:用公钥分发随机密钥,然后用随机密钥对数据加密
不可否认性:收条+数字签名
10、Kerberos和X.509比较
与Kerberos协议相比,X.509认证交换协议有一个很大的优点:X.509不需要物理上安全的在线服务器,因为一个证书包含了一个认证授权机构的签名。公钥证书可通过使用一个不可信的目录服务被离线地分配。
X.509双向交换拥有Kerberos的缺陷,即依赖于时戳,而X.509三向交换克服了这一缺陷。