【密码学原理】用户认证——对称加密认证,Kerberos协议

    科技2026-03-10  5

    在大多数的计算机安全环境中,用户认证是最基本也是最重要的一道防线,用户认证是访问控制以及用户承担责任的基础。认证一个用户的身份大致有四个常用工具,可以单独使用,也可以联合使用

    知道什么:如口令,个人身份拥有什么:如加密密钥,电子密钥卡静态生物特征:如指纹动态生物特征:如声音模式,手写模式

    所有这些方案通过合理的应用都可以提供安全的用户认证,但每种方案也有各自的缺陷。

    对称加密的双向认证 

    双向认证的一个重要应用领域是双向认证协议,双向认证协议能使通信双方互相认证彼此身份并交换会话密钥。

    对于已经认证的密钥交换存在两个问题:保密性和实效性。为了防止伪装和会话密钥泄露,必要的身份鉴别和会话密钥信息必须加密。为了防止重放攻击,也要保住实效性。 

    在分布式环境中,一个两层的对称加密密钥可以用于为通信提供保密性,KDC负责产生两者之间的会话密钥,并使用主密钥来保证会话密钥分发的安全

    过程总结如下:

    但是这个协议还是容易受到重放攻击,为此,在第2步和第3步增加了时间戳

    那么新的问题是,要求整个网络中的时钟是同步的。但是,时钟或者同步机制的破坏或者错误,都可能造成分布的时钟不同步。解决方案:

    强制要求各方定期检查自己的时钟是否与KDC同步依赖使用临时交互号的握手协议,不容易遭受重放攻击,因为接收者选择的临时交互号对发送者来说是不可预测的

    仅仅依赖于临时交互号也存在其他方面的缺陷,对上面的协议再做改进

    该协议为A和B获得会话密钥提供了一个有效安全的方法,使A拥有认证B的密钥,避免了重复的服务器认证。如果在限制时间内A想要和B重新建立会话,执行

    第一步验证时间戳,产生两个新的临时交互号。

    对称加密的单向认证

    单向认证:电子邮件服务中,不需要交互双方同时在线,但邮件消息加密,邮件处理系统不拥有解密密钥,接收者需要确保消息的真实来源。

    在分布式密钥分发环境中,下面的方案使用对称加密是不切实际的

    这个方案中要求发送者先向接收者发起会话请求,等接收到包含会话密钥的回复之后才能发送消息,这就要求双方在线

    对加密电子邮件来说,下面这个方案比较合适

    这个方案虽然可以提供认证,但是不能抵御重放攻击,虽然可以添加时间戳,但是邮件服务的时间延误可能限制邮件的发送。

    Kerberos

    kerberos是作为MIT大学的Athena计划的认证服务而开发的。目前版本4倍广泛应用,版本5作为Internet标准草案。

    当一组用户使用相互独立的计算机而不用网络连接时,每个用户的资源和文件都可以利用物理手段保护,当一组用户使用一个集中式分时系统,则必须由分时系统来提供安全保护,操作系统可以使用基于用户身份的操作控制策略,并通过登录过程来认证用户。在多用户和分布式服务器中,有三个安全方案可以采用:

    由客户端工作站确保用户或者用户组的身份,由服务器提供基于用户标志的安全策略要求客户端系统向服务器提供身份认证,相信客户端系统通过的用户身份要求客户向服务器提供身份认证,同时需要服务器向客户提供身份认证

    Kerberos分布的第一个报告中列出来下列要求:

    安全性:网络监听者不能通过冒充其他用户获得有用信息可靠性:对依赖于Kerberos访问控制的所有服务而言,缺乏可用性意味着其所支持的服务缺乏可用性透明性:理想状态下,用户除了要输入口令外,不需要知道认证发生的地点可伸缩性:系统能支持大量的客户端和服务器,需要具有模块化和分布式的结构

    Kerberos协议和整个会话过程如图所示

    Kerberos中各方的信息交互如图所示

    对应的一些符号:

    Kerberos环境包括Kerberos服务器,若干客户端,若干应用服务器:

    服务器必须有存放用户标志和用户口令的数据库,所有用户必须在服务器注册服务器必须与每个应用服务器共享一个特定密钥,所有应用服务器必须在服务器注册每个互操作域的服务器应和其他域的服务器共享一个密钥,两个域的服务器应互相注册

    根据上面的规则,可以描述该机制如图所示

    每一步的详细描述如下:

    版本5在版本4的基础上做了一些改进

    Processed: 0.114, SQL: 9