Kerberos
使用密码作为认证方式的弊端
1.人为问题:设置的密码容易破解
2.技术问题:网络中明文传输密码不安全
Kerberos解决了这两个问题
1:整个网络使用一个kerberos密码
2:incorporates encryption and message integrity
Kerberos特色:
security:使用票据证明用户ID,既不在网络中明文传输密码,也不在本地磁盘存储密码
single-sign-on:只需登陆一次就可以访问所有支持Kerberos的网络服务
trusted third-party:KDC
mutual authentication:双向认证
kerberos目标:安全和方便
每一个KDC都有一个数据库,保存用户和服务的名字及密码
authentication:证明你是你
what he knows:密码
what he has:不常用(SecurID)
what he is:生物识别
一个安全系统通常包含一个或多个,比如RAS SecurID包含了密码和SecurID,kerberos没有具体实现没有指定需要包含哪种,但是最长用的还是密码的形式.
1.kerberos认证过程:
C:客户端 S:服务端
第一步:C向KDC请求session-key
第二步:KDC向C发送经过C的master key加密的session key和经过S的master key加密的数据包(包含C的一些信息)
第三步:C用自己的master key解密KDC发过来的session key,然后将自己的信息用session key加密组成Authentication(验证器),最后将验证器和KDC发送过来的数据包一起发送给S
第四步:S用自己的master key解密接受到的数据包获取session key和C的信息,然后用session key解密Authentication获取C的信息。然后对比Authentication中C的信息和数据包中C的信息是否一致
2.keytab:stores long-term keys(即是master key)
key分为两种:long-term key和short-term key
long-term key:相当于长期不变的密码,Kerberos不允许在网络中传输这种密码,客户端和服务端的master key即是long-term key。
short-term key:短期不变的密码,生命周期通常是一个会话的时间,session key即是这种密码。