1 概述
随着信息化的快速发展,对国家、组织、公司或个人来说至关重要的信息越来越多的通过网络来进行存储、传输和处理,为获取这些关键信息的各种网络犯罪也相应急剧上升。当前,网络安全在某种意义上已经成为一个事关国家安全,社会经济稳定的重大问题,得到越来越多的重视。
在网络安全中,身份认证技术作为第一道,甚至是最重要的一道防线,有着重要地位,可靠的身份认证技术可以确保信息只被正确的“人”所访问。身份认证技术提供了关于某个人或某个事物身份的保证,这意味着当某人(或某事)声称具有一个特别的身份时,认证技术将提供某种方法来证实这一声明是正确的。
本文主要从局域网接入和接入用户身份认证的角度,讨论常用的认证机制、认证协议,以及采用这些认证技术的不同接入协议。
2 认证技术概述
身份认证可分为用户与系统间的认证和系统与系统之间的认证。身份认证必须做到准确无误地将对方辨认出来,同时还应该提供双向的认证。目前使用比较多的是用户与系统间的身份认证,它只需单向进行,只由系统对用户进行身份验证。随着计算机网络化的发展,大量的组织机构涌入国际互联网,以及电子商务与电子政务的大量兴起,系统与系统之间的身份认证也变得越来越重要。
身份认证的基本方式可以基于下述一个或几个因素的组合:
所知(Knowledge):即用户所知道的或所掌握的知识,如口令;
所有(Possesses):用户所拥有的某个秘密信息,如智能卡中存储的用户个人化参数,访问系统资源时必须要有智能卡;
特征(Characteristics):用户所具有的生物及动作特征,如指纹、声音、视网膜扫描等。
根据在认证中采用的因素的多少,可以分为单因素认证、双因素认证、多因素认证等方法。身份认证系统所采用的方法考虑因素越多,认证的可靠性就越高。
3 认证机制与协议
一般而言,用于用户身份认证的技术分为两类:简单认证机制和强认证机制。简单的认证中认证方只对被认证方的名字和口令进行一致性的验证。由于明文的密码在网上传输极容易被窃听,一般解决办法是使用一次性口令(OTP,One-Time Password)机制。这种机制的最大优势是无需在网上传输用户的真实口令,并且由于具有一次性的特点,可以有效防止重放攻击。RADIUS协议就是属于这种类型的认证协议。
强认证机制一般将运用多种加密手段来保护认证过程中相互交换的信息,其中,Kerberos协议是此类认证协议中比较完善、较具优势的协议,得到了广泛的应用。
下面简单介绍一些常用的认证机制与协议。
3.1 常用的认证机制
3.1.1 基于口令的身份认证机制
基于口令的身份认证技术因其简单易用,得到了广泛的使用。但随着网络应用的深入和网络攻击手段的多样化,口令认证技术也不断发生变化,产生了各种各样的新技术。最常采用的身份认证方式是基于静态口令的认证方式,它是最简单、目前应用最普遍的一种身份认证方式。但它是一种单因素的认证,安全性仅依赖于口令,口令一旦泄露,用户即可被冒充;同时易被攻击,采用窥探、字典攻击、穷举尝试、网络数据流窃听、重放攻击等很容易攻破该认证系统。相对静态口令,动态口令也叫一次性口令,它的基本原理是在用户登录过程中,基于用户口令加入不确定因子,对用户口令和不确定因子进行单向散列函数变换,所得的结果作为认证数据提交给认证服务器。认证服务器接收到用户的认证数据后,把用户的认证数据和自己用同样的散列算法计算出的数值进行比对,从而实现对用户身份的认证。在认证过程中,用户口令不在网络上传输,不直接用于验证用户的身份。动态口令机制每次都采用不同的不确定因子来生成认证数据,从而每次提交的认证数据都不相同,提高了认证过程的安全性。
3.1.2 挑战/响应认证机制
挑战/响应方式的身份认证机制就是每次认证时认证服务器端都给客户端发送一个不同的“挑战”码,客户端程序收到这个“挑战”码,根据客户端和服务器之间共享的密钥信息,以及服务器端发送的“挑战”码做出相应的“应答”。服务器根据应答的结果确定是否接受客户端的身份声明。从本质上讲,这种机制实际上也是一次性口令的一种。
一个典型的认证过程如下图所示:
认证过程为:
1) 客户向认证服务器发出请求,要求进行身份认证;
2) 认证服务器从用户数据库中查询用户是否是合法的用户,若不是,则不做进一步处理;
3) 认证服务器内部产生一个随机数,作为“挑战”码,发送给客户;
4) 客户将用户名字和随机数合并,使用单向Hash函数(例如MD5算法)生成一个字节串作为应答;
5) 认证服务器将应答串与自己的计算结果比较,若二者相同,则通过一次认证;否则,认证失败;
6) 认证服务器通知客户认证成功或失败。
3.1.3 EAP认证机制
EAP(Extensible Authentication Protocol)扩展认证协议在RFC2248中定义,是一个普遍使用的认证机制,它常被用于无线网络或点到点的连接中。EAP不仅可以用于无线局域网,而且可以用于有线局域网,但它在无线局域网中使用的更频繁。EAP实际是一个认证框架,不是一个特殊的认证机制。EAP提供一些公共的功能,并且允许协商所希望的认证机制。这些机制被称为EAP方法。由于EAP方法除了IETF定义了一部分外,厂商也可以自定义方法,因此EAP具有很强的扩展性。IETF的RFC中定义的方法包括EAP-MD5、EAP-OTP、EAP-GTC、EAP-TLS、EAP-SIM和EAP-AKA等。无线网络中常用的方法包括EAP-TLS、 EAP-SIM、 EAP-AKA、 PEAP、LEAP和EAP-TTLS。目前EAP在802.1X的网络中使用广泛,可扩展的EAP方法可以为接入网络提供一个安全认证机制。
3.2 公钥认证机制
随着网络应用的普及,对系统外用户进行身份认证的需求不断增加,即某个用户没有在一个系统中注册,但也要求能够对其身份进行认证,尤其是在分布式系统中,这种要求格外突出。这种情况下,公钥认证机制就显示出它独特的优越性。
公钥认证机制中每个用户被分配给一对密钥,称之为公钥和私钥,其中私钥由用户保管,而公钥则向所有人公开。用户如果能够向验证方证实自己持有私钥,就证明了自己的身份。当它用作身份认证时,验证方需要用户方对某种信息进行数字签名,即用户方以用户私钥作为加密密钥,对某种信息进行加密,传给验证方,而验证方根据用户方预先提供的公钥作为解密密钥,就可以将用户方的数字签名进行解密,以确认该信息是否是该用户所发,进而认证该用户的身份。
公钥认证机制中要验证用户的身份,必须拥有用户的公钥,而用户公钥是否正确,是否是所声称拥有人的真实公钥,在认证体系中是一个关键问题。常用的办法是找一个值得信赖而且独立的第三方认证机构充当认证中心(Certificate Authority,CA),来确认声称拥有公开密钥的人的真正身份。要建立安全的公钥认证系统,必须先建立一个稳固、健全的CA体系,尤其是公认的权威机构,即“Root CA”,这也是当前公钥基础设施(PKI)建设的一个重点。
3.3 使用认证机制的认证协议
许多协议在向用户或设备授权访问和访问权限之前需要认证校验,通常要用到认证相关的机制,前面讨论了常用的认证机制,本节介绍使用这些认证机制的协议,这些协议包括RADIUS、TACACS、Kerberos、LDAP等。RADIUS和TACACS通常用在拨号环境中,Kerberos是在校园网中用的比较多的协议。LDAP提供一种轻量级的目录服务,严格来说不能算作一种认证协议,而对用户进行认证授权只是LDAP的一种应用。
3.3.1 RADIUS认证协议
RADIUS(Remote Authentication Dial In User Service)协议最初是由Livingston公司提出的,目的是为拨号用户进行认证和计费。后来经过多次改进,形成了一个通用的AAA协议。
RADIUS协议认证机制灵活,能够支持各种认证方法对用户进行认证。可以采用上述任何一种认证机制。RADIUS是一种可扩展的协议,它进行的全部工作都是基于属性进行的,由于属性可扩展性,因此很容易支持不同的认证方式。
RADIUS协议通过UDP协议进行通信,RADIUS服务器的1812端口负责认证,1813端口负责计费工作。采用UDP的基本考虑是因为NAS和RADIUS服务器大多在同一个局域网中,使用UDP更加快捷方便。
3.3.2 TACACS认证协议
TACACS(Terminal Access Controller Access Control System)最先是由BBN为MILNET开发的一种基于UDP的访问控制协议,一些厂商对协议进行了扩展,最终形成了一种新的AAA协议,其中CISCO公司对TACACS协议多次进行增强扩展,目前成为TACACS+协议,H3C在TACACS(RFC1492)基础上进行了功能增强,形成了H3C扩展的TACACS协议。无论TACACS、TACACS+还是H3C扩展TACACS协议,其认证、授权和计费是分离的,并且与原始TACACS协议相比,TACACS+和HWTACACS可以使用TCP作为传输层协议,端口号为49。
TACACS+允许任意长度和内容的认证交换,与RADIUS一样,具有很强的扩展性,并且客户端可以使用任何认证机制。由于TACACS+的认证与其他服务是分开的,所以认证不是强制的,这点与RADIUS是不同的。
3.3.3 Kerberos认证协议
在一个分布式环境中,采用上述两种认证协议时,如果发生账号改动的情况,每台机器上的都要进行相应的账号修改,工作量非常大。Kerberos是MIT为解决分布式网络认证而设计的可信第三方认证协议。Kerberos基于对称密码技术,网络上的每个实体持有不同的密钥,是否知道该密钥便是身份的证明。网络上的Kerberos服务起着可信仲裁者的作用,可提供安全的网络认证。Kerberos常见的有两个版本:第4版和第5版,目前使用的标准版本是版本5。
Kerberos是一种受托的第三方认证服务,它是建立在Needham和Schroeder认证协议基础上,它要求信任第三方,即Kerberos认证服务器(AS)。AS为客户和服务器提供证明自己身份的票据以及双方安全通信的会话密钥。Kerberos中还有一个票据授予服务器(TGS),TGS向AS的可靠用户发出票据。除客户第一次获得的初始票据是由Kerberos认证服务器签发外,其他票据都是由TGS签发的,一个票据可以使用多次直至期限。客户方请求服务方提供一个服务时,不仅要向服务方发送从票据授予服务器领来的票据,同时还要自己生成一个鉴别码(Authenticator,Ac)一同发送,该证是一次性的。
3.3.4 LDAP协议
LDAP(Lightweight Directory Access Protocol)是基于X.500标准的,但是比X.500简单,并且可以根据需要定制。与X.500不同,LDAP支持TCP/IP,这对访问Internet是必须的。LDAP是一个目录服务协议,目前存在众多版本的LDAP,而最常见的则是V2和V3两个版本,它们分别于1995年和1997年首次发布。一般在分布式、跨平台认证的场景下,LDAP比前面介绍的认证协议具有一定优势。
LDAP协议严格来说并不属于单纯认证协议,对用户进行授权认证是LDAP协议的一个典型应用。例如Microsoft的Windows操作系统就使用了Active Directory Server来保存操作系统的用户、用户组等信息,用于用户登录Windows时的认证和授权。目录服务其实也是一种数据库系统,只是这种数据库是一种树形结构,而不是通常使用的关系数据库。目录服务与关系数据库之间的主要区别在于:二者都允许对存储数据进行访问,只是目录主要用于读取,其查询的效率很高,而关系数据库则是为读写而设计的。所以LDAP协议非常适合数据库相对稳定,而查询速度要求比较高的认证场合。
4 接入认证技术
以上介绍了常见的认证技术,这些认证技术与不同的局域网接入技术结合,可以实现对接入用户的认证授权,从而实现对局域网接入用户的访问控制。在局域网中对接入用户的认证控制,已成为网络安全的重要组成部分。目前在局域网中常见的接入认证技术包括802.1X、Portal、MAC地址认证等。本节简单介绍这些常用的局域网接入认证技术,具体协议细节以及实现原理在后续文章中会有相应介绍。
4.1 IEEE 802.1X接入认证技术
802.1X协议是为解决无线局域网网络安全问题而提出来的。但是随着该技术的广泛应用,目前802.1X协议作为局域网接入控制机制在以太网中被广泛应用,主要解决以太网内认证和安全方面的问题。
802.1X协议是一种基于端口的网络接入控制协议。“基于端口的网络接入控制”是指,在局域网接入设备的端口这一级,对所接入的用户设备通过认证来控制对网络资源的访问。802.1X可以与不同的认证协议结合实现对接入用户的认证,目前在使用802.1X接入时常与RADIUS配合实现对接入用户的认证与授权。
802.1X技术可以扩展到基于MAC地址对用户接入进行控制,即对共用同一个物理端口的多个用户分别进行认证控制。另外H3C对802.1X接入协议进行了扩展,与EAD解决方案结合,加强了对用户的集中管理,提升了网络的整体防御能力。
4.2 Portal接入认证技术
Portal技术通常也称为Web认证技术,一般将Portal认证网站称为门户网站。
Portal认证是一种三层网络接入认证,在认证之前用户首先要获取地址,这点与802.1X不同。未认证用户上网时,设备强制用户登录到特定站点,用户可以免费访问其中的服务。当用户需要使用互联网中的其它信息时,必须在门户网站进行认证,只有认证通过后才可以使用互联网资源。
不同的组网方式下,可采用的Portal认证方式不同。按照网络中实施Portal认证的网络层次来分,Portal的认证方式分为两种:二层认证方式和三层认证方式。前者在二层接口上启用Portal功能,而后者是在三层接口上启用Portal功能。
目前H3C Portal除了支持Web认证方式之外,还支持客户端方式的Portal认证,这样Portal协议就可以与EAD解决方案结合,提供端点接入控制,从而提高网络的安全性。
4.3 MAC接入认证技术
MAC地址认证是一种基于端口和MAC地址对用户的网络访问权限进行控制的认证方法,是一种二层网络接入认证技术,与802.1X以及Portal不同,用户不需要安装任何客户端软件就可进行认证。设备在启动了MAC地址认证的端口上首次检测到用户的MAC地址以后,即启动对该用户的认证操作。认证过程中,不需要用户手动输入用户名或者密码。若该用户认证成功,则允许其通过端口访问网络资源,否则该用户的MAC地址就被添加为静默MAC。在静默时间内(可通过静默定时器配置),来自此MAC地址的用户报文到达时,设备直接做丢弃处理,以防止非法MAC短时间内的重复认证。
4.4 Triple接入认证技术
在客户端形式多样的网络环境中,不同客户端支持的接入认证方式有所不同,为灵活地适应这种网络环境中的多种认证需求,需要在接入用户的端口上对多种认证方式进行统一部署,使得用户可以选择任何一种适合的认证机制来进行认证,且只需要成功通过一种方式的认证即可实现接入,无需通过多种认证。
Triple认证方案可满足以上需求,允许在设备的二层端口上同时开启Portal认证、MAC地址认证和802.1X认证功能,使得选用其中任意一种方式进行认证的客户端均可通过该端口接入网络。
5 结束语
用户身份识别与认证是网络安全的重要组成部分,对接入用户进行身份认证,是保障网络安全的重要环节。本文简单介绍了常见认证机制、认证协议以及接入认证技术,相关内容的详细介绍,请参考后续文章。