家装工装
身份认证系统认证协议的设计与分析 摘 要 认证协议是身份认证系统最关键的部分,研究和分析系统认证协议,是保证网络安全通信的必要条件。Kerberos是一个典型的认证协议,其使用专门的服务器进行统一的身份认证和权限管理,但是由于当初使用环境的原因,并没有使用公钥体制,这影响了系统的扩展性和易管理性。本文描述了一个身份认证系统认证协议的设计思想,使用公钥对kerberos协议进行了改进,并使用BAN逻辑分析了协议的安全性。 关键词 身份认证,认证协议 认证协议是身份认证系统最关键的部分,它直接影响到系统效率、安全性等等。Kerberos是一个典型的认证协议,其使用专门的服务器进行统一的身份认证和权限管理,但是由于当初使用环境的原因,并没有使用公钥体制,这影响了系统的扩展性和易管理性。本文描述了一个身份认证系统认证协议的设计思想,使用公钥对kerberos协议进行了改进,并使用BAN逻辑证明了协议的安全性较高。 1 Kerberos协议分析 Kerberos是一个典型网络安全认证协议,它是应用对称密钥来对客户机(Client)/服务器(Server)应用程序作精确鉴定的。Kerberos主要为网络通信提供可信第三方服务的面向开放系统的认证机制。每当用户(Client)申请得到某服务程序(Server)的服务时,用户和服务程序会首先向Kerberos要求认证对方的身份,认证是建立在用户和服务程序对Kerberos的信任的基础上。在申请认证时,Client和Server都可看成是Kerberos认证服务的用户。为了和其它服务的用户区别,Kerberos将用户和服务器统称为参与者(Principle)。因此Principle既可以是用户也可以是某项服务。认证双方与Kerberos的关系用图1表示。 图1 Kerberos之间的认证关系 当用户登录到工作站时,Kerberos对用户进行初始认证,通过认证的用户可以在整个登录期间得到相应的服务。Kerberos既不依赖用户登录系统的终端,也不依赖用户所请求的服务的安全机制,它凭借本身提供的认证服务来完成对用户的认证工作。而时间戳技术被用来抵御可能发生的重放攻击(Replay Attack)。 Kerberos建立并保存本网络域中每个参与者的名称及其私有密钥的数据库,这样仅有参与者和Kerberos数据库掌握该参与者的私有密钥。使用私有密钥,Kerberos可以对参与者进行身份认证。另外,Kerberos还会随机生成一个会话密钥用来对通信双方的具体内容进行加密。 Kerberos存在以下局限性: 1)原有的认证服务可能被存储或替换,虽然时间戳是专门用于防止重放攻击的,但在票据的有效时间内仍然可能奏效,假设在一个Kerberos认证域内的全部时钟均保持同步,收到消息的时间在规定的范围内(假定规定为5分钟),就认为该消息是新的。而事实上,攻击者可以事先把伪造的消息准备好,一旦得到票据就马上发出伪造的票据,在这5分钟内是难以检查出来的。 2)认证票据的正确性是基于网络中所有的时钟保持同步,如果主机的时间发生错误,则原来的认证票据就是可能被替换的。因为大多数网络的时间协议是不安全的,所以,分布式计算机系统中这将导致极为严重的问题。 3) Kerberos防止口令猜测攻击的能力很弱,攻击者通过长期监听可以收集大量的票据,经过计算和密钥分析进行口令猜测。当用户选择的口令不够强时,就不能有效地防止口令猜测攻击。 4)Kerberos服务器与用户共享的秘密是用户的口令字,服务器在回应时不验证用户的真实性,而是假设只有合法用户拥有口令字。如果攻击者记录申请回答报文,就易形成代码本攻击。 5)实际上,最严重的攻击是恶意软件攻击。Kerberos认证协议依赖于Kerberos软件的绝对可信,而攻击者可以用执行Kerberos协议和记录用户口令的软件来代替所有用户的Kerberos软件,达到攻击的目的。一般而言,装在不安全计算机内的密码软件都会面临这一问题。 6)在分布式系统中,认证中心星罗棋布,域间的会话密钥数量惊人,密钥的管理、分配、存储都是很严峻的问题。 2 认证协议初步设计 Kerberos在最初设计时避免采用公钥体系,这是因为当时应用公钥体系的某些条件不完全成熟。但是随着时间的推移和技术的进步,目前采用公钥体系的一些条件已经具备或者正在具备,特别是从将来的发展来看,将公钥体系结合进现有的系统中去是一种趋势。从对于Kerberos的局限性分析可以看出,其很多缺陷均是由于单独采用对称密钥技术造成的。如果能将公钥技术有机地融合到Kerberos中去,便能克服其保密性不强,扩展性差等缺点。基于这种考虑,这里设计了一个认证协议。在此协议中使用代表用户访问次数的“共享变量”N来防止重放,符号表示说明: ◆CA:认证中心; ◆AA:认证代理服务器(Authentication Agent); ◆C:客户端(Client)唯一标识; ◆S:应用服务器(Server)唯一标识; ◆PRIx:X的私钥; ◆PUBx:X的公钥; ◆CERTc:C的证书序列号; ◆(Info)SIGNx:用X的私钥对信息Info签名; ◆(Info)ENCpubx:用X的公钥对Info加密; ◆(Info)K:用对称密钥K对Info加密; ◆Ts:认证代理为用户C访问服务器S而颁发的票据; ◆Nc:用户端C保存的一个整数,记录用户访问次数; ◆Ns:应用服务器S所保存的用户访问次数,用于防止重放; ◆N:协议消息中使用的用于防止重放的整数,其值由Nc决定,在此称之为“同步变量”。 协议具体工作流程如下: 1)票据请求 当客户端C想访问服务器S时,客户程序要求其输入私钥口令,以便将私钥文件解密,如果私钥口令不正确,则禁止用户进一步的操作。如果正确则发送Ticket_req消息到认证代理AA: C->AA:(C,S,N)SIGNc,CERTcTicket_req消息的具体构造过程如下: 用户取得本地所保存的Nc,然后使N=Nc 1,而后对用户标识C和要访问应用服务器S使用C的私钥签名,此签名可以证明自已的身份。为了便于身份的认证,客户端还需要将自已的证书序列号CERTc传送给AA。参量N的使用主要为了保持用户发送信息的新鲜性,当请求发送完之后,为了下一次会话做准备,需要使Nc=Nc 1。 2)票据发放 当认证代理服务器AA收到Ticket_req消息后,首先根据CERTc从CA或本地缓冲取得用户证书,利用CRL完成对证书有效性的检查。如果证书验证通过,则从用户终端C的证书中取得其公钥PUBc,用此公钥来验证C对信息(C,S,N)的签名,如果签名验证失败,则向客户端发送验证失败消息。签名验证通过后,AA找出C要访问的服务器S,检查其是否有对服务器S的信 息的访问权限,如果权限满足,将产生Ticket_rep消息: AA->C:Ts,((Kcs,N)SIGNAA)ENCpubc 其中Ts=((C,S,Kcs,N)SIGNAA)ENCpubs为用户用以访问服务的票据 Ticket_rep消息的构造过程如下: AA首先产生一个会话密钥Kcs,用于构造票据Ts,在Ts中要加入用户C的标识,以说明此票据为用户C所拥有,其他人不能使用;加入S说明此票据的目的是用于C向S发出的访问;而后还要加入N以保证票据的新鲜性;然后将这些信息签名,证明是由AA发出的,其它人不能假冒或篡改;最后用S的公钥将其加密,使得其它人不能查看其中的会话密钥Kcs。 Ts构造完后,还要将会话密钥Kcs通知用户C,与对票据Ts的处理相似,首先将其用AA的私钥签名,然后用C公钥加密以防止其他人查看会话密钥Kcs。为了保持其新鲜性,在其中加入了N。 3)服务请求 当用户收到Ticket_rep消息后,用户C利用自己的私钥解开((Kcs,N)SIGNAA)ENCpubc,用户检查得到的N,看N=Nc是否成立,如果成立,则证明了其新鲜性;如果N
鼠标定位目录前面,插入空白页。文档会自动插入分页符。
大头的陈小晶 8人参与回答 2023-12-10 错过紧贴身旁的幸福我们有许多与他人相遇,听到令你感动的话语,看到令你难忘的眼神,但或许因为我们的一个疏忽,误会和偶然的以为而错过了这些机会。正如,往往想把握住自
happppylee 2人参与回答 2023-12-08 毕设都是自己一个人做的,即使几个人一个类似课题,最后论文肯定是不同方向。另外毕设一般都是学校确定题目方向和老师,学生选一个。还几个人做,论文咋写,你想啥呢。
yingyingwp 3人参与回答 2023-12-09 帮不了你。我也没写过论文
盖世在在 3人参与回答 2023-12-11 答:论文查重不可以多篇论文合在一起检测
贪吃的小四 4人参与回答 2023-12-09