一种基于一次性口令机制增强Kerberos协议的方案

2015-01-01 03:05
网络安全技术与应用 2015年11期
关键词:数字签名公钥口令

0 引言

本文在研究一次性口令认证机制的基础上,将一次性口令认证应用到 Kerberos协议的初始认证阶段,在没有增加 Kerberos认证会话次数的前提下,有效解决了Kerberos协议存在的易于遭受口令猜测攻击和重放攻击的问题。实验结果显示,该方案不仅增强了Kerberos的安全性,而且效率相比PKINIT有了较大的提升,初始认证服务交互时间减少了32.3%。

1 一次性口令

S/Key一次性口令认证方案是由Bellcore基于单向散列函数MD4和MD5实现的。该方案基于挑战-应答机制,可以有效抵抗口令猜测攻击和重放攻击,并且简单、易于实施。但是,它不能实现双向认证,存在服务器冒充攻击和小数攻击的缺陷。通过监听网络通信,截获用户的ID和Password来冒充合法用户是一种常见的网络攻击。一次性口令机制的设计目的就是用户在每次登录过程中,使用不同的Password,使得黑客即使截获,也无法应用到下次认证过程中。

1.1 一次性口令机制

一次性口令实现的主要机制有两种:

(1)挑战-应答机制:用户登录时,认证服务器产生一条挑战信息,发给用户,用户根据挑战信息和自身的通行密语产生一次性口令,返回给认证服务器,完成认证过程。

(2)时间同步机制:用户将登录时间作为不确定因素,连同自己的通行密语一起产生一次性口令。

目前使用最多的就是基于挑战应答机制的一次性口令机制,S/KEY一次性口令认证系统就是其中的典型代表。然而S/Key系统不能抵抗小数攻击和冒充攻击。为了改进它的缺陷,提出使用基于公钥加密的数字签名链(Signature Chain)的方法来代替S/Key系统的hash函数链,实现一次性口令机制。

1.2 基于公钥的数字签名链

所谓数字签名链就是对一条初始消息进行重复签名,其过程类似于S/Key系统的hash函数链。但是,数字签名链的长度可以无限扩展,而且即使认证服务器重启后,也不需要重新设置。其具体定义如下:S是一种公钥签名算法(例如,RSA,ECDSA等),PRC是用户C的私钥,V是S对应的公钥签名验证算法PUC是用户C的公钥。那么,可以构造一对签名和验证函数:

2 Kerberos协议与现有改进方案分析

2.1 Kerberos协议分析

Kerberos协议是基于可信第三方的身份认证协议,用于实现用户(Client)和应用程序服务器(Application Server)之间的相互认证。Kerberos密钥分配中心(Key Distribute Center,KDC)由认证服务器(Authentication Server,AS)和票据授权服务器(Ticket Granting Server,TGS)组成。Kerberos协议的认证过程中,最为重要的就是第一步:认证服务交互,只有在验证了用户的合法身份以后,对其颁发票据授权票据(Tickettgs)和服务授权票据(Ticketv)才有意义。

2.2 现有Kerberos协议的改进方案

为了抵抗口令猜测攻击,Kerberos协议在V5版本中引入预认证机制,在KRB_AS_REQ消息中增加预认证块Pre-authentica tor。改进后的Kerberos V5认证服务交换如下:KRB_AS_REQ:

3 OTP-Kerberos方案

我们分两个阶段来解释OTP-Kerberos方案:注册阶段和认证阶段。

3.1 注册阶段

认证开始前,我们选取椭圆曲线,产生一对公私钥,将用户的公钥注册到Kerberos认证服务器,此处,我们采取ECC数字签名算法,因此公钥长度可选取160bits。同时,用户注册自己ID和Password到认证服务器。用户本身并不需要记住自己的password,只需要保存好自己的私钥 PRC就可以了,同时,用户端需要保存KDC的公钥PUc。认证服务器上保存一张表,用以记录用户ID,公钥,本次验证使用的一次性口令以及一次性口令的序号。

3.2 认证阶段

认证服务器收到请求后,首先使用自己的私钥PRas对加密的一次性口令进行解密,获得P1,然后根据用户ID,查找用户公钥PUc,使用PUc对P1做验证。如果H(P0,P1)=1,那么,该用户是合法用户,一次性口令序号加1,保存P1作为新的一次性口令并使用P1作为密钥,加密Kc,tgs和时间戳随机数等加密后,形成KRB_AS_REP消息,返回给用户。否则,拒绝该用户,返回KRB_ERROR消息。第i次登录过程与第一次登录处理过程类似。证明过程如下:因为,所以只有产生正确的一次性口令Pi,才能使得公式(2)H(Pi-1,Pi)=1。OTP-Kerberos方案在保持 Kerberos协议会话次数不增加的基础上,对初始认证服务进行改进,解决Kerberos协议原有的易于遭受口令猜测攻击和重放攻击的缺陷,剩余的Kerberos服务交互会话与原版本一致。

4 结论

本文提出一种基于一次性口令增强 Kerberos的方案OTP-Kerberos,将基于 ECC数字签名链的一次性口令机制应用于 Kerberos协议的初始认证服务交互。经过安全性分析,OTP-Kerberos协议可以有效抵抗口令猜测攻击、重放攻击等原Kerberos协议的缺陷。实验结果显示,我们提出的OTP-Kerberos协议完成认证交互服务的时间相比PKINIT减少32.3%。

猜你喜欢
数字签名公钥口令
浅析计算机安全防护中数字签名技术的应用
高矮胖瘦
口 令
一种基于混沌的公钥加密方案
好玩的“反口令”游戏
P2X7 receptor antagonism in amyotrophic lateral sclerosis
基于数字签名的QR码水印认证系统
SNMP服务弱口令安全漏洞防范
HES:一种更小公钥的同态加密算法
数字签名简述