本文共 2916 字,大约阅读时间需要 9 分钟。
说起身份认证我们就会想起AAA ,AAA代表Authentication、Authorization、Accounting,意为认证、授权、记帐,其主要目的是管理哪些用户可以访问服务器,具有访问权的用户可以得到哪些服务,如何对正在使用网络资源的用户进行记帐。
1、 认证:验证用户是否可以获得访问权限——“你是谁?” 2、 授权:授权用户可以使用哪些资源——“你能干什么?”3、 记帐:记录用户使用网络资源的情况——“你干了些什么?”
我们在这主要说下认证:认证是指验证一个端用户或者设备(pc 路由)所声称身份有效的过程,授权指赋予用户,用户组或特定系统访问权限的过程,授权和记账都是在认证之后进行的。其中认证是证明设备或者用户端技术。主要有本地认证(local control)和第三方的方式认证(trusted third party),只有协议有以下几个
1. S/Key一次性口令系统是一个基于MD4 和MD5的一次性口令生成方案。他可以对访问者的身份与设备进行综合验证。S/Key协议的操作时基于客户端/服务器端模式。客户端可以是任何设备,如普通的PC或者是有移动商务功能的手机。而服务器一般都是运行Unix系统。
2. ppp认证协议包括pap chap eap
pap口令认证协议为端点提供双向握手向认证服务器确立身份的简单认证方式,
pap不是强制认证,只认证端点 口令已明文方式发送,只执行一次,不能防止重放攻击和错误攻击,有端点控制频率和时间
CHAP(挑战-握手验证协议 Challenge-Handshake Authentication Protocol)是一种加密的验证方式,能够避免建立连接时传送用户的真实密码。NAS向远程用户发送一个挑战口令(challenge),其中包括会话ID和一个任意生成的挑战字串(arbitrary challengestring)。远程客户必须使用MD5单向哈希算法(one-way hashing algorithm)返回用户名和加密的挑战口令,会话ID以及用户口令,其中用户名以非哈希方式发送
CHAP对PAP进行了改进,不再直接通过链路发送明文口令,而是使用挑战口令以哈希算法对口令进行加密。因为服务器端存有客户的明文口令,所以服务器可以重复客户端进行的操作,并将结果与用户返回的口令进行对照。CHAP为每一次验证任意生成一个挑战字串来防止受到再现攻击(replay attack)。在整个连接过程中,CHAP将不定时的向客户端重复发送挑战口令,从而避免第3方冒充远程客户(remote client impersonation)进行攻击
使用的认证机制协议:
1.TACACS+提供了独立的认证、授权和记账服务尽管RADIUS在用户配置文件中集成了认证和授权,TACACS+分离了这两种操作,另外的不同在于TACACS+使用传输控制协议 (TCP)而RADIUS使用用户报文协议(UDP).多数管理员建议使用TACACS+,因为TCP被认为是更可靠的协议。TACACS+协议的扩展为最初的协议规范提供了更多的认证请求类型和更多的响应代码TACACS+ 使用TCP端口49,包括三种独立的协议,如果需要,能够在独立的服务器上实现。TACACS+提供了多协议支持,如IP和AppleTalk.一般操作都对数据包进行全部加密,以提供更安全的通信,这是一个Cisco对最初的TACACS协议提供的专有的改进。
认证有3个报文
1.START 总是有客户端发出
2.CONTINUE 总是有客户端发出
3.REPLY 总是有服务器发出,又包括3个结果(1.ACCEPT 2.REJECT 3.ERROR)
过程:首先客户端发起认证 START报文 服务器收到报文后觉得认证还没有结束,发送reply报文 ,客户端发送 continue
1.用户向NAS发起ppp
2.NAS 向TACACS+发送start报文
3.TACACS+向NAS发送getuser报文,提示输入口令密码(pap)或chap
4.NAS 返回到远程pc
5.pc 响应NAS
6.NAS 把加密报文发给TACACS+
7.TACACS+认证结果对NAS respond
8.NAS AND TACACA exchange image
9.MAS 根据授权 采取action
2.RAUIDS 协议
RADIUS是一种C/S结构的协议,它的客户端最初就是NAS(Net Access Server)服务器,现在任何运行RADIUS客户端软件的计算机都可以成为RADIUS的客户端。RADIUS协议认证机制灵活,可以采用PAP、 CHAP或者Unix登录认证等多种方式。RADIUS是一种可扩展的协议,它进行的全部工作都是基于Attribute-Length-Value的向量进行的。RADIUS也支持厂商扩充厂家专有属性。
使用udp作为传输协议 其中客户端到radius client 之间是不加密的
3.kerberos 协议
Kerberos 是一种网络认证协议,其设计目标是通过密钥系统为客户机 / 服务器应用程序提供强大的认证服务。该认证过程的实现不依赖于主机操作系统的认证,无需基于主机地址的信任,不要求网络上所有主机的物理安全,并假定网络上传送的数据包可以被任意地读取、修改和插入数据。在以上情况下, Kerberos 作为一种可信任的第三方认证服务,是通过传统的密码技术(如:共享密钥)执行认证服务的。 认证过程具体如下:客户机向认证服务器(AS)发送请求,要求得到某服务器的证书,然后 AS 的响应包含这些用客户端密钥加密的证书。证书的构成为: 1) 服务器 “ticket” ; 2) 一个临时加密密钥(又称为会话密钥 “session key”) 。客户机将 ticket (包括用服务器密钥加密的客户机身份和一份会话密钥的拷贝)传送到服务器上。会话密钥可以(现已经由客户机和服务器共享)用来认证客户机或认证服务器,也可用来为通信双方以后的通讯提供加密服务,或通过交换独立子会话密钥为通信双方提供进一步的通信加密服务。
本文转自q狼的诱惑 51CTO博客,原文链接:http://blog.51cto.com/liangrui/525028,如需转载请自行联系原作者