身份认证技术

身份认证是对系统的用户进行有效性、真实性验证。
1.口令认证方式
使用口令认证方式,用户必须具有一个唯一的系统标识,并且保证口令在系统的使用和存储过程中是安全的,同时口令在传输过程中不能被窃取、替换。另外特别要注意的是在认证前,用户必须确认认证者的真实身份,以防止把口令发给冒充的认证者。
使用口令的单向身份认证过程一般是:请求认证者和认证者之间建立安全连接、并确认认证者身份等;然后请求认证者向认证者发送认证请求,认证请求中必须包括请求认证者的 ID 和口令;认证者接受 ID 和口令,在用户数据库中找出请求认证的 ID 和口令;查找是否有此用户并比较两口令是否相同;最后向请求认证者发回认证结果。如果请求认证者的 ID 在认证者的用户数据库中,并且请求认证者发送的口令与数据库中相应的口令相同,则允许请求认证者通过认证。
2.基于公钥签名的认证方式
公开密钥签名算法的身份认证方式,是通过请求认证者与认证者(对于双向身份认证而言,双方互为请求认证者和认证者)之间对于一个随机数做数字签名与验证数字签名来实现的。这种方式中认证双方的个人秘密信息不用在网络上传送,从而减少了口令等秘密信息泄漏的风险。
采用数字签名技术认证与口令认证方式有一个很大的不同:口令认证通常在正式数据交换开始之前进行。认证一旦通过,双方即建立安全通道进行通信,此后的通信被认为是安全的,不再进行身份认证;而数字签名认证在每一次的请求和响应中进行,即接收信息的一方先从接收到的信息中验证发送者的身份信息,验证通过后才对收到的信息进行相应处理。
使用公钥加密算法进行身份认证要求:请求认证者必须具有私钥实现数字签名的功能;认证者必须具有使用公钥验证数字签名的功能;认证者必须具有产生随机数的功能,而且随机数的质量必须达到一定要求。
使用公钥加密算法进行身份认证的方式,对用于数字签名的私钥由参与通信的认证者自己保密,而用于验证数字签名的公钥则需要采用可靠的方式进行安全分发。一般可以采用公钥数据库方式或者使用认证机构签发数字证书的方式(认证机构与数字证书的内容参见前文 PKI 部分)。
如果使用公钥数据库的方式管理公钥,则请求认证者 ID 就包含在认证请求中发给认证者,认证者使用该 ID 从公钥数据库中获得请求认证者的公钥。
如果使用认证机构签发数字证书的方式管理公钥,则请求认证者的数字证书包含在认证请求中发给认证者,认证者验证请求认证者的数字证书后,从数字证书中获取请求认证者的公钥。
3.持卡认证方式
持卡认证方式最早采用磁卡。磁卡中最重要的部分是磁道,不仅存储数据,而且还存储用户的身份信息。目前所用的卡是 IC 卡,与磁卡相比,它除了存储容量大之外,还可一卡多用,同时具有可靠性高,寿命长,读写机构简单可靠,造价便宜,维护方便,容易推广等诸多优点。正由于上述优点,使得 IC 卡在世界各地广泛使用。IC 卡上一般分为不加密的公共区、加密的数据区等,有些还有自己的操作系统和微处理器。IC 卡已被广泛应用于身份认证领域。
一般 IC 卡与用户的个人 PIN 一起使用。在脱机系统中,PIN 以加密的形式存在卡中,识别设备读出 IC 卡中的身份信息,然后将其中的 PIN 解密,与用户输入的 PIN 比较,以决定 IC 卡持有者是否合法。在联机系统中,PIN 可不存在 IC 卡上,而存在主机系统中,鉴别时,系统将用户输入的 PIN 与主机的 PIN 比较,而由此认证其身份的合法性。
4.基于人体生物特征的认证方式
这种方式是指通过计算机,利用人体固有的生理特征或行为特征进行个人身份鉴定。与传统的身份鉴别手段相比,基于生物特征的认证技术具有突出的优点:一是不会遗忘或丢失;二是防伪性能好,无法伪造;三是随时随地可用。能够用来鉴别身份的生物特征一般具有广泛性(每个人都应该具有这种特性)、唯一性(每个人拥有的特征应各不相同)、稳定性(所选择的特征应该不随时间变化而发生变化)和可采集性(所选择的特征应该便于采集、测量)。目前,可用于身份鉴别的生物特征主要有指纹、笔迹、脸像、红外温、视网膜、手形、掌纹等。
由于生物特征识别的设备比其他身份认证的设备要复杂,所以一般用在非常重要的机密场合,如军事等。生物特征识别主要采用模式识别技术。身份识别系统工作方式分为识别模式和鉴定模式,其性能指标主要有错误拒绝率和错误接受率等。在选择这种认证方式时需要对这些参数作认真的考虑。
5.动态口令技术(一次性口令技术)
一般情况下,所使用的计算机口令都是静态的,也就是说在一定的时间内是相对不变的,而且可重复使用。这种口令很容易被系统中的嗅探程序所劫持,而且很容易受到基于字典的暴力攻击。
针对这种静态口令认证方式的缺陷,人们提出了利用散列函数产生一次性口令的方法,即用户每次登录系统时使用的口令都是变化的。一次性口令是动态变化的密码,其变化来源于产生密码的运算因子。一次性口令的产生因子一般都采用双运算因子:一是用户的私钥,它代表用户身份的识别码,是固定不变的。二是变动因子,正是变动因子的不断变化,才能够产生动态的一次性口令。
动态口令技术认证方式中要用到动态口令密码卡,这是一种便于携带的智能化硬件产品。这种密码卡内置的构件和程序能通过密码卡内的密钥加上其他因子动态地计算出新的口令。
当密码卡持有者将这个口令输入计算机时,系统中的认证服务器会根据相同的算法和动态因子计算出对应于该密码卡的认证口令,并把这个口令与密码卡产生的口令比对,进行身份认证。
6.PPP 中的认证协议
点到点协议(Point-to-Point Protocol,PPP)提供了一种在点到点链路上封装网络层协议信息的标准方法。PPP 也定义了可扩展的链路控制协议。链路控制协议使用验证协议磋商机制,在链路层上传输网络层协议前验证链路的对端。
PPP 包含如下几个部分:在串行链路上封装数据报的方法;建立、配置和测试数据链路连接的链路控制协议(Link Control Protocol,LCP);建立和配置不同网络层协议的一组网络控制协议(Network Control Protocol,NCP)。
PPP 协议定义了两种验证协议:密码验证协议(Password Authentication Protocol,PAP)和挑战—握手验证协议(Challenge-Handshake Authentication Protocol,CHAP),此外还有扩展认证协议(Extensible Authentication Protocol,EAP)。
一个典型的 PPP 链路建立过程分为三个阶段:创建阶段、认证阶段和网络层协商阶段。
(1)创建阶段。在这个阶段,将对基本的通信方式进行选择。链路两端设备通过 LCP 向对方发送配置信息,建立链路。在链路创建阶段,只是对验证协议进行选择,具体的用户验证过程在认证阶段实现。
(2)认证阶段。在这个阶段,客户端会将自己的身份发送给远端的接入服务器。该阶段使用一种安全的验证方式避免第三方窃取数据或冒充远程客户接管与客户端的连接。认证成功,则转到网络层协商阶段。如果认证失败,则链路终止。
(3)网络层协商阶段。认证阶段完成之后,PPP 将调用在链路创建阶段选定的各种 NCP 协商高层协议问题,例如,在该阶段 IP 控制协议可以向拨入用户分配动态地址。这样,经过三个阶段以后,一条完整的 PPP 链路就建立起来了。
最常用的认证协议有 PAP 和 CHAP,此外还有 EAP。
(1)PAP。PAP 是一种简单的明文验证方式。网络接入服务器要求用户提供用户名和口令,PAP 以明文方式返回用户信息,并且对回送或者重复验证和错误攻击没有保护措施。很明显,这种验证方式的安全性较差,第三方可以很容易地获取被传送的用户名和口令,并利用这些信息与网络接入服务器建立连接获取网络接入服务器提供的资源。所以,一旦用户密码被第三方窃取,PAP 无法提供避免受到第三方攻击的保障措施。
(2)CHAP。CHAP 是一种加密的验证方式,能够避免建立连接时传送用户的明文密码。网络接入服务器向远程用户发送一个挑战口令,其中包括会话 ID 和一个任意生成的挑战字串。远程客户端使用 MD5 散列算法返回用户名和加密的挑战口令、会话 ID 及用户口令。
CHAP 对 PAP 进行了改进,不再直接通过链路发送明文口令,而是使用挑战口令以散列算法对口令进行加密。因为服务器端存有客户的明文口令,所以服务器可以重复客户端进行的散列操作,并将结果与用户返回的口令进行对照。
CHAP 为每一次验证任意生成一个挑战字串来防止受到攻击。在整个连接过程中, CHAP 将不定时地随机向客户端重复发送挑战口令,从而避免非法入侵者冒充远程客户进行攻击。
HAP 验证方式具有如下的优点:
① 通过可变的挑战口令和随机地、重复地发挑战口令,CHAP 防止了重放攻击。
② 该认证方法依赖于认证者和对端共享的密钥,密钥不是通过链路发送的。
③ 虽然该认证是单向的,但是在两个方向都进行 CHAP协商,同一密钥可以很容易地实现交互认证。
④ 由于 CHAP 可以用在许多不同的系统认证中,因此可以用用户名作为索引,以便在一张大型密钥表中查找正确的密钥。这样也可以在一个系统中支持多个用户名—密钥对,在会话中随时改变密钥。
CHAP 在设计上的要求:
① CHAP 算法要求密钥长度必须至少是1 字节,至少应该不易让人猜出,密钥最好至少是散列算法所选用的散列码的长度,如此可以保证密钥不易受到穷举搜索攻击。所选用的散列算法,必须保证从已知挑战口令和响应值来确定密钥在计算上是不可行的。
② 每一个挑战口令应该是唯一的,否则在同一密钥下,重复挑战口令将使攻击者能够用以前截获的响应值应答挑战口令。由于希望同一密钥可以用于地理上分散的不同服务器的认证,因此挑战口令应该做到全局临时唯一。
③ 每一个挑战口令也应该是不可预计的,否则攻击者可以欺骗对方,让对方响应一个预计的挑战口令,然后用该响应冒充对端欺骗认证者。虽然 CHAP 不能防止实时地主动搭线窃听攻击,但是只要能产生不可预计的挑战口令就可以防范大多数的主动攻击。
(3)EAP。EAP 是一个用于 PPP 认证的通用协议,可以支持多种认证方法。EAP 并不在链路控制阶段而是在认证阶段指定认证方法,这样认证方就可以在得到更多的信息以后再决定使用什么认证方法。这种机制还允许 PPP 认证方简单地把收到的认证信息传给后方的认证服务器,由后方的认证服务器来真正实现各种认证方法。
EAP 的认证过程是:在链路阶段完成以后,认证方向对端发送一个或多个请求报文。在请求报文中有一个类型字用来指明认证方所请求的信息类型,例如,可以是对端的 ID、 MD5 的挑战口令、一次性密码及通用密码卡等。MD5 的挑战口令对应于 CHAP 认证协议的挑战口令。典型情况下,认证方首先发送一个 ID 请求报文随后再发送其他的请求报文。对端对每一个请求报文响应一个应答报文。和请求报文一样,应答报文中也包含一个类型字段,对应于所回应的请求报文中的类型字段。认证方再通过发送一个成功或者失败的报文来结束认证过程。
EAP 具有突出的优点:它可以支持多种认证机制,而不需要在建立连接阶段指定;某些设备,例如,网络接入服务器,不需要关心每一个请求信息的真正含义,而是作为一个代理把认证报文直接传给后端的认证服务器,设备只需关心认证结果是成功还是失败,然后结束认证阶段。
当然 EAP 也有一些缺点:它需要在 LCP 中增加一个新的认证协议,这样现有的 PPP 要想使用 EAP 就必须进行修改。同时,使用 EAP 也和现有的在 LCP 协商阶段指定认证方法的模型不一致。
7.RADIUS 协议
RADIUS(Remote AuthenticationDial-in User Service)协议是由朗讯公司提出的客户/ 服务器方式的安全认证协议,它能在拨号网络中提供注册、验证功能,现已成为 Internet 的正式协议标准,是当前流行的 AAA(Authentication、Authorization、Accountion)协议。
RADIUS 协议可以把拨号和认证这两种功能放在两个分离的服务器——网络接入服务器(NAS)和后台认证服务器(RADIUS 服务器)上。在 RADIUS 服务器上存放有用户名和它们相应的认证信息的一个大数据库,来提供认证用户名和密码及向用户发送配置服务的详细信息等。
RADIUS 具有非常突出的特点:
① RADIUS 协议使用 UDP 进行传输,它使用 1812 号端口进行认证,以及认证通过后对用户授权,使用 1813 号端口对用户计费。
② 支持多种认证方法,RADIUS 能支持 PAP、CHAP、UNIX Login 及其他认证方法;
③ 支持认证转接(AuthenticationForwarding),一个 RADIUS 服务器可以作为另一个
RADIUS 服务器的客户端向它要求认证,这叫作认证转接。
④ 协议扩展性好,通过协议中变长的属性串能够进一步扩展 RADIUS 协议。
⑤ 认证信息都加密传输,安全性高。RADIUS服务器和接入服务器之间传递的认证信息用一个事先设置的口令进行加密,防止敏感信息泄露,因此安全性高。
RADIUS 的认证过程如下:
① 接入服务器从用户那里获取用户名和口令(PAP口令或 CHAP 口令),把它同用户的一些其他信息(如主叫号码、接入号码、占用的端口等)组成 RADIUS 认证请求数据包发送给 RADIUS 服务器,请求认证。
② RADIUS 服务器收到认证请求包后,首先查看接入服务器是否已经登记,然后根据请求中用户名、口令等信息验证用户是否合法。如果用户非法,则向接入服务器发送访问拒绝包;如果用户合法,那么 RADIUS 服务器会将用户的配置信息,例如,用户类型、IP 地址、连接协议、端口信息、ACL 授权等信息,一起组成访问接受包发送回接入服务器。
③ 接入服务器收到访问接受/拒绝包时,首先要判断包中的签名是否正确,如果不正确将认为收到了一个非法的包。验证签名的正确性后,如果收到了访问接受包,那么接入服务器会接受用户的上网请求,并用收到的授权信息对用户进行配置、授权,限制用户对资源的访问;如果收到的是访问拒绝包则拒绝该用户的上网请求。
④ 当用户成功登录后,接入服务器会向 RADIUS服务器发送一个连接开始的记账信息包,其中包括用户使用的连接种类、协议和其他自定义的用户记账的信息;当用户断开连接后,接入服务器再向 RADIUS 服务器发送一个连接结束的记账信息包,通知 RADIUS 服务器停止对该用户记账。RADIUS 服务器根据收到的记账信息包按照该用户的设置为用户记账。

  • 10
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值