首页 理论教育身份认证概述及常用技术

身份认证概述及常用技术

【摘要】:身份认证的目的在于对通信中某一方的身份进行标识和验证。口令技术由于其简单易用,因此成为目前一种常用的身份认证技术。身份认证协议是一种特殊的通信协议,它定义了参与认证服务的所有通信方在身份认证过程中需要交换的消息格式、消息发生的次序及消息的语义。KDC负责给通信双方创建并分发共享密钥,通信双方获得共享密钥后再使用对称加密算法的协议进行相互之间的身份认证。

身份认证的目的在于对通信中某一方的身份进行标识和验证。其方法主要是验证用户所拥有的可被识别的特征。一个身份认证系统一般由以下几个部分组成:一方是提出某种申请要求,需要被验证身份的人;另一方是验证者,验证申请者身份的人;第三方是攻击者,可以伪装成通信中的任何一方,或者对消息进行窃取等攻击的人。与此同时,在某些认证系统需要引入第四方,即可信任的机构作为仲裁或调解机构。

现实世界中的身份认证可以通过出示带相片的身份证件来完成,某些特殊的区域可能还使用指纹或虹膜等生物特征对进出人员的身份进行确认。不管用什么方法,身份认证机制就是将每个人的身份标识出来,并确认其身份的合法性。

在计算机系统中,传统的物理身份认证机制并不适用,其身份认证主要通过口令和身份认证协议来完成。在计算机网络通信中,身份认证就是用某种方法来证明正在被鉴别的用户身份是合法的授权者。

口令技术由于其简单易用,因此成为目前一种常用的身份认证技术。使用口令技术存在的最大隐患就是口令的泄露问题。口令泄露可以有多种途径,如登录时被他人窥视、攻击者从计算机存放口令的文件中获取、口令被在线攻击者破解、也可能被离线攻击者破解。

由于基于口令的认证方法存在较大的问题,因此在网络环境中,常使用身份认证协议来鉴别通信中的对方是否合法,是否与他所声称的身份一致。身份认证协议是一种特殊的通信协议,它定义了参与认证服务的所有通信方在身份认证过程中需要交换的消息格式、消息发生的次序及消息的语义。

使用密码学方法的身份认证协议比传统的基于口令的认证更安全,并能提供更多的安全服务。通过使用各种加密算法,可以对通信过程中的密钥进行很好的保护。在通信过程中,当需要传输用户提供的口令时,这种方法可以将用户口令首先进行加密处理,对加密后的口令进行传输,在接收端再进行相应的解密处理,从而对用户口令或密钥进行很好的保护。

身份认证协议一般有两个通信方,可能还会有一个双方都信任的第三方参与。其中一个通信方按照协议的规定向另一方或第三方发出认证请求,对方按照协议的规定做出响应,当协议顺利执行完毕时双方应该确信对方的身份。

从使用加密的方法来看,身份认证可分为基于对称密钥的身份认证和基于公钥加密的身份认证。

基于对称密钥的身份认证思想是从口令认证的方法发展而来的。传统检验对方传递来的口令是否合法的做法很简单,口令容易在传递过程中被窃听而泄露。因此在实际网络环境中,必须采用既能够验证对方拥有共同的秘密,又不会在通信过程中泄露该秘密的方法。与此同时,在实际通信过程中,一台计算机可能需要与多台计算机进行身份认证,如果全部采用共享密钥的方式,那么就需要与众多的计算机都建立共享密钥。这样做在大型网络环境中既不经济也不安全,同时大量共享密钥的建立、维护和更新将是非常复杂的。这时需要一个可信赖的第三方来负责完成密钥的分配工作,被称为密钥分发中心(Key Distribution Center,KDC)。在通信开始阶段,通信中的每一方都只与KDC有共享密钥,通信双方之间的认证借助KDC才能完成。KDC负责给通信双方创建并分发共享密钥,通信双方获得共享密钥后再使用对称加密算法的协议进行相互之间的身份认证。

基于公钥加密的身份认证协议比基于对称密钥的身份认证能提供更强有力的安全保障,公钥加密算法可以让通信中的各方通过加密、解密运算来验证对方的身份。在使用公钥方式进行身份认证时需要事先知道对方的公钥,因此同样需要一个可信第三方来负责分发公钥。在实际应用中,公钥的分发是采用证书的形式来实现的。证书中含有证书所有人的名字、身份信息、公钥,以及签发机构、签发日期、序列号、有效期等相关数据,并用证书权威机构自己的私钥进行签名。证书被设计存放在目录服务系统中,通信中的每一方都拥有证书权威机构的公钥,可以从目录服务中获得通信对方的证书,通过验证证书权威机构签名可以确认对方证书中公钥的合法性。

与此同时,从认证的方向性来看,可分为相互认证和单向认证。

相互认证用于通信双方的互相确认,同时可进行密钥交换。认证过程中密钥分配是重点。保密性和时效性是密钥交换中的两个重要问题。从机密性的角度来看,为防止假冒和会话密钥的泄露,用户的身份信息和会话密钥等重要信息必须以密文的形式传送。同时,攻击者可以利用重放攻击对会话密钥进行攻击或假冒通信双方中的某一方,密钥的时效性可防止重放攻击的威胁。(www.chuimin.cn)

常见的重放攻击如下:

(l)简单重放。攻击者简单地复制消息并在此之后重放这条消息。

(2)可检测的重放。攻击者在有效的时限内重放有时间戳的消息。

(3)不可检测的重放。由于原始消息可能被禁止而不能到达接收方,只有通过重放消息才能发送给接收方,此时可能出现这种攻击。

(4)不加修改的逆向重放。如果使用对称密码,并且发送方不能根据内容来区分发出的消息和接收的消息,那么可能出现这种攻击。

对于重放攻击,一般可使用以下方式来预防:

(l)序列号。这种方法是为每个需要认证的消息添加一个序列号,新的消息到达后先对序列号进行检查,只有满足正确次序的序列号的消息才能被接收。这种方法存在的一个问题,即通信各方都必须记录最近处理的序列号,而且还必须保持序列号的同步。

(2)时间戳。这种方法是为传送的报文添加时间戳,当系统接收到新的消息时,首先对时间戳进行检查,只有在消息的时间戳与本地时钟足够接近时才认为该消息是一个新的消息。时间戳要求通信各方必须保持时钟的同步。使用时间戳方法存在3个问题:第一,通信各方的时间同步需要由某种协议来维持,同时为了能够应对网络的故障和恶意攻击,该协议还必须具有容错性和安全性;第二,如果由于通信一方时钟机制出错,那么攻击者的成功率将大大增加;第三,网络延时的可变性和不可预知性不可能保持各分布时钟精确同步,因此需要申请足够大的时间窗口以适应网络延时,这与小时间窗口的要求是矛盾的。

(3)随机数/响应。这种方法是在接收消息前首先要发送一个临时的交互号(随机数),并要求所发送的消息要包含该临时交互号。随机数/响应不适合于无连接的应用,因为它要求在任何无连接传输之前必须先握手,这与无连接的特征相违背。

单向认证主要用于电子邮件等应用中。其主要特点在于发送方和接收方不需要同时在线。以电子邮件为例,邮件消息发送到接收方的电子邮箱中,并一直保存在邮箱中,等待接收方阅读邮件。电子邮件的存储转发一般是由SMTP(简单邮件传输协议)或X.400来处理的,因此邮件报头必须是明文形式。但是,用户都希望邮件以密文的形式传输或转发,邮件要能够加密,而且邮件处理系统无法对其进行解密。此外,电子邮件的认证还包括邮件的接收方必须能够确认邮件消息是来自真正的发送方。